|
@@ -8,6 +8,7 @@ use app\common\logic\BaseLogic;
|
|
|
use app\common\logic\RefundLogic;
|
|
use app\common\logic\RefundLogic;
|
|
|
use app\common\model\goods\Goods;
|
|
use app\common\model\goods\Goods;
|
|
|
use app\common\model\equity\UserEquity;
|
|
use app\common\model\equity\UserEquity;
|
|
|
|
|
+use app\common\model\equity\EquityConfig;
|
|
|
use app\common\model\refund\RefundRecord;
|
|
use app\common\model\refund\RefundRecord;
|
|
|
use app\common\model\equity\UserEquityLog;
|
|
use app\common\model\equity\UserEquityLog;
|
|
|
use app\common\model\service_area\ServiceArea;
|
|
use app\common\model\service_area\ServiceArea;
|
|
@@ -64,6 +65,7 @@ class GroupActivityLogic extends BaseLogic
|
|
|
->order('a.create_time','asc')
|
|
->order('a.create_time','asc')
|
|
|
->select()
|
|
->select()
|
|
|
->toArray();
|
|
->toArray();
|
|
|
|
|
+ $detail['timestamp'] = time();
|
|
|
}
|
|
}
|
|
|
return $detail;
|
|
return $detail;
|
|
|
}
|
|
}
|
|
@@ -72,8 +74,11 @@ class GroupActivityLogic extends BaseLogic
|
|
|
* @notes 用户订单详情
|
|
* @notes 用户订单详情
|
|
|
*/
|
|
*/
|
|
|
public static function userOrderDetail($sn,$userId){
|
|
public static function userOrderDetail($sn,$userId){
|
|
|
- $detail = GroupUserOrder::where(['sn'=>$sn, 'user_id' => $userId])->findOrEmpty()->toArray();
|
|
|
|
|
-
|
|
|
|
|
|
|
+ $detail = GroupUserOrder::with('groupOrder')->where(['sn'=>$sn, 'user_id' => $userId])->field('id,status,pay_way,pay_time,pay_status,remark,create_time,group_order_id')->findOrEmpty()->toArray();
|
|
|
|
|
+ if ($detail) {
|
|
|
|
|
+ $detail['goods'] = EquityConfig::where('id', $detail['groupOrder']['equity_id'])->field('id,equity_name,number,day_num')->findOrEmpty()->toArray();
|
|
|
|
|
+ $detail['timestamp'] = time();
|
|
|
|
|
+ }
|
|
|
return $detail;
|
|
return $detail;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -87,11 +92,11 @@ class GroupActivityLogic extends BaseLogic
|
|
|
Db::startTrans();
|
|
Db::startTrans();
|
|
|
try {
|
|
try {
|
|
|
|
|
|
|
|
- $is_join = GroupUserOrder::where('pay_status',1)->where('refund_status',0)->where(['group_activity_id' => $params['group_activity_id'], 'user_id' => $params['user_id']])->value('id');
|
|
|
|
|
- if ($is_join) {
|
|
|
|
|
|
|
+ $userOrder = GroupUserOrder::where(['group_activity_id' => $params['group_activity_id'], 'user_id' => $params['user_id']])->findOrEmpty()->toArray();
|
|
|
|
|
+ if ($userOrder && $userOrder['pay_status'] == 1 && $userOrder['refund_status'] == 0) {
|
|
|
throw new Exception('您已参加过该活动!');
|
|
throw new Exception('您已参加过该活动!');
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ //$params['sn'] = $userOrder ? $userOrder['sn'] : $params['sn'];
|
|
|
//校验拼团活动
|
|
//校验拼团活动
|
|
|
if (empty($params['sn'])) {
|
|
if (empty($params['sn'])) {
|
|
|
//新开团
|
|
//新开团
|
|
@@ -103,7 +108,7 @@ class GroupActivityLogic extends BaseLogic
|
|
|
if (time() < strtotime($activity['start_time'])) {
|
|
if (time() < strtotime($activity['start_time'])) {
|
|
|
throw new Exception('拼团活动未开始!'); //拼团活动未开始
|
|
throw new Exception('拼团活动未开始!'); //拼团活动未开始
|
|
|
}
|
|
}
|
|
|
- if (time() > strtotime($activity['end_time'])) {
|
|
|
|
|
|
|
+ if (time() > $activity['end_time']) {
|
|
|
throw new Exception('拼团活动已结束!'); //拼团活动已结束
|
|
throw new Exception('拼团活动已结束!'); //拼团活动已结束
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -112,7 +117,8 @@ class GroupActivityLogic extends BaseLogic
|
|
|
$data = [
|
|
$data = [
|
|
|
'sn' => generate_sn(GroupOrder::class, 'sn'),
|
|
'sn' => generate_sn(GroupOrder::class, 'sn'),
|
|
|
'group_activity_id' => $params['group_activity_id'],
|
|
'group_activity_id' => $params['group_activity_id'],
|
|
|
- 'goods_id' => $activity['goods_id'],
|
|
|
|
|
|
|
+ 'equity_id' => $activity['equity_id'],
|
|
|
|
|
+ 'goods_id' => EquityConfig::where('id', $activity['equity_id'])->value('goods_id'),
|
|
|
'user_id' => $params['user_id'],
|
|
'user_id' => $params['user_id'],
|
|
|
'origin_price' => $activity['origin_price'],
|
|
'origin_price' => $activity['origin_price'],
|
|
|
'price' => $order_amount,
|
|
'price' => $order_amount,
|
|
@@ -135,7 +141,7 @@ class GroupActivityLogic extends BaseLogic
|
|
|
if ($group_order['status'] >= 1 ) {
|
|
if ($group_order['status'] >= 1 ) {
|
|
|
throw new Exception('拼团已取消!');
|
|
throw new Exception('拼团已取消!');
|
|
|
}
|
|
}
|
|
|
- if (strtotime($group_order['end_time']) < time()) {
|
|
|
|
|
|
|
+ if ($group_order['end_time'] < time()) {
|
|
|
throw new Exception('拼团活动已结束!'); //拼团活动已结束
|
|
throw new Exception('拼团活动已结束!'); //拼团活动已结束
|
|
|
}
|
|
}
|
|
|
$order_amount = $group_order['price'];
|
|
$order_amount = $group_order['price'];
|
|
@@ -151,8 +157,13 @@ class GroupActivityLogic extends BaseLogic
|
|
|
'order_amount' => $order_amount,
|
|
'order_amount' => $order_amount,
|
|
|
'order_terminal' => $params['terminal'],
|
|
'order_terminal' => $params['terminal'],
|
|
|
];
|
|
];
|
|
|
- $group_user_order = GroupUserOrder::create($data);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ if ($userOrder) {
|
|
|
|
|
+ $data['create_time'] = time();
|
|
|
|
|
+ $data['update_time'] = $data['delete_time'] = null;
|
|
|
|
|
+ GroupUserOrder::where('id',$userOrder['id'])->update($data);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $userOrder = GroupUserOrder::create($data);
|
|
|
|
|
+ }
|
|
|
Db::commit();
|
|
Db::commit();
|
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
|
Db::rollback();
|
|
Db::rollback();
|
|
@@ -161,7 +172,7 @@ class GroupActivityLogic extends BaseLogic
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return [
|
|
return [
|
|
|
- 'order_id' => (int)$group_user_order['id'],
|
|
|
|
|
|
|
+ 'order_id' => (int)$userOrder['id'],
|
|
|
'sn' => $group_order['sn']
|
|
'sn' => $group_order['sn']
|
|
|
];
|
|
];
|
|
|
}
|
|
}
|