dongxiaoqin 1 rok temu
rodzic
commit
6a61874452

+ 19 - 0
app/api/controller/GroupActivityController.php

@@ -17,6 +17,9 @@ class GroupActivityController extends BaseApiController
     public array $notNeedLogin = [];
     public array $notNeedLogin = [];
 
 
 
 
+    /**
+     * 活动详情
+     */
     public function detail()
     public function detail()
     {
     {
         $id = $this->request->param('id');
         $id = $this->request->param('id');
@@ -24,11 +27,27 @@ class GroupActivityController extends BaseApiController
         return $this->data($result);
         return $this->data($result);
     }
     }
 
 
+    /**
+     * 拼团订单详情
+     */
     public function orderDetail(){
     public function orderDetail(){
         $sn = $this->request->param('sn');
         $sn = $this->request->param('sn');
         $result = GroupActivityLogic::orderDetail($sn,$this->userId);
         $result = GroupActivityLogic::orderDetail($sn,$this->userId);
         return $this->data($result);
         return $this->data($result);
     }
     }
+
+    /**
+     * 用户订单详情
+     */
+    public function userOrderDetail(){
+        $sn = $this->request->param('sn');
+        $result = GroupActivityLogic::userOrderDetail($sn,$this->userId);
+        return $this->data($result);
+    }
+
+    /**
+     * 用户的订单列表
+     */
     public function orderList(){
     public function orderList(){
         return $this->dataLists(new UserOrderLists());
         return $this->dataLists(new UserOrderLists());
     }
     }

+ 22 - 11
app/api/logic/GroupActivityLogic.php

@@ -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']
         ];
         ];
     }
     }

+ 1 - 1
app/common/model/group_activity/GroupActivity.php

@@ -31,7 +31,7 @@ class GroupActivity extends BaseModel
     protected $deleteTime = 'delete_time';
     protected $deleteTime = 'delete_time';
     public function goods()
     public function goods()
     {
     {
-        return $this->hasOne(EquityConfig::class, 'id', 'goods_id')
+        return $this->hasOne(EquityConfig::class, 'id', 'equity_id')
             ->field('id,equity_name,number,day_num,goods_id');
             ->field('id,equity_name,number,day_num,goods_id');
     }
     }
 
 

+ 0 - 4
app/common/model/group_activity/GroupOrder.php

@@ -32,8 +32,4 @@ class GroupOrder extends BaseModel
     {
     {
         return !empty($data['create_time'])?date('Y-m-d H:i:s',$data['create_time']):'';
         return !empty($data['create_time'])?date('Y-m-d H:i:s',$data['create_time']):'';
     }
     }
-    public function getEndTimeAttr($value,$data)
-    {
-        return !empty($data['end_time'])?date('Y-m-d H:i:s',$data['end_time']):'';
-    }
 }
 }

+ 1 - 1
app/common/model/group_activity/GroupUserOrder.php

@@ -31,7 +31,7 @@ class GroupUserOrder extends BaseModel
     protected $name = 'group_user_order';
     protected $name = 'group_user_order';
 
 
     public function groupOrder(){
     public function groupOrder(){
-        return $this->hasOne(GroupOrder::class,'id','group_order_id')->field('id,sn,status,num,create_time,end_time');
+        return $this->hasOne(GroupOrder::class,'id','group_order_id')->field('id,equity_id,goods_id,sn,status,num,create_time,end_time');
     }
     }
     public function getCreateTimeAttr($value,$data)
     public function getCreateTimeAttr($value,$data)
     {
     {