浏览代码

修改拼团

dongxiaoqin 1 年之前
父节点
当前提交
f8c3adf245

+ 2 - 2
app/api/controller/GroupActivityController.php

@@ -14,13 +14,13 @@ use app\api\lists\group_activity\UserOrderLists;
  */
 class GroupActivityController extends BaseApiController
 {
-    public array $notNeedLogin = ['detail','orderDetail'];
+    public array $notNeedLogin = [];
 
 
     public function detail()
     {
         $id = $this->request->param('id');
-        $result = GroupActivityLogic::detail($id);
+        $result = GroupActivityLogic::detail($id,$this->userId);
         return $this->data($result);
     }
 

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

@@ -27,7 +27,7 @@ class GroupActivityLogic extends BaseLogic
     /**
      * @notes 拼团活动详情
      */
-    public static function detail($id){
+    public static function detail($id,$userId){
         $detail = GroupActivity::with('goods')->where(['id'=>$id])->visible([
             'id','title','image','start_time','end_time','type','equity_id',
             'participant_num','origin_price','price','form_time_limit'
@@ -39,7 +39,8 @@ class GroupActivityLogic extends BaseLogic
             $detail['timestamp'] = time();
             $goods = Goods::where('id',$detail['goods']['goods_id'])->field('service_image,goods_category_id')->findOrEmpty()->toArray();
             $detail['goods'] = array_merge($detail['goods'],$goods);
-            
+            //查询用户是否已有付款订单
+            $detail['order'] = GroupUserOrder::with('group_order')->where(['user_id'=>$userId,'group_activity_id'=>$detail['id'],'pay_status'=>1])->field('id,status,pay_way,pay_time,pay_status,remark,create_time,group_order_id')->findOrEmpty()->toArray();
         }
 
         return $detail;
@@ -85,16 +86,8 @@ class GroupActivityLogic extends BaseLogic
     {
         Db::startTrans();
         try {
-            // 订单位置是否在服务区内
-            $area = ServiceArea::serviceArea(['lon'=>$params['lon'],'lat'=>$params['lat']]);
-            if (!$area) {
-                throw new Exception('已超出服务区域!-1001');
-            }
             
-            if(empty($params['mobile'])){
-                throw new Exception('请先补充您的联系方式后在提交订单');
-            }
-            $is_join = GroupUserOrder::where('status','<>',4)->where(['group_activity_id' => $params['group_activity_id'], 'user_id' => $params['user_id']])->value('id');
+            $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) {
                 throw new Exception('您已参加过该活动!');
             }
@@ -137,10 +130,10 @@ class GroupActivityLogic extends BaseLogic
                     throw new Exception('拼团人数已满!'); //拼团人数已满
                 }
                 if ($group_order['status'] == 1 ) {
-                    throw new Exception('订单已支付!');
+                    throw new Exception('活动已成团');
                 }
                 if ($group_order['status'] >= 1 ) {
-                    throw new Exception('订单已取消!');
+                    throw new Exception('拼团已取消!');
                 }
                 if (strtotime($group_order['end_time']) < time()) {
                     throw new Exception('拼团活动已结束!'); //拼团活动已结束
@@ -154,15 +147,7 @@ class GroupActivityLogic extends BaseLogic
                 'group_order_id' => $group_order['id'],
                 'group_activity_id' => $params['group_activity_id'],
                 'user_id' => $params['user_id'],
-                'real_name' => $params['real_name'],
-                'mobile' => $params['mobile'],
-                'address' => $params['address'],
-                'lon'   => $params['lon'],
-                'lat'   => $params['lat'],
-                'province' => $areas['province']??0,
-                'city' => $areas['city']??0,
-                'area_name' => $areas['area_name']??'',
-                'service_area_id' => $areas['id']??0,
+                'remark' => $params['remark'],
                 'order_amount' => $order_amount,
                 'order_terminal' => $params['terminal'],
             ];

+ 1 - 17
app/api/validate/GroupOrderValidate.php

@@ -14,33 +14,22 @@ class GroupOrderValidate extends BaseValidate
     protected $rule = [
         'order_id'=>'require',
         'sn'=>'require',
-        'address' => 'require',
         'pay_way' => 'require',
         'group_activity_id' => 'require',
-        'contact_number' => 'require',
-        'contact_people' => 'require',
-        'lon' => 'require',
-        'lat' => 'require',
-        'worker_id'=>'require'
     ];
 
 
     protected $message = [
         'order_id.require' => '订单ID错误',
         'sn.require' => '订单编号错误',
-        'address.require' => '请填写地址',
         'pay_way.require' => '请选择支付方式',
         'group_activity_id.require' => '拼团活动不存在',
-        'mobile.require' => '联系电话不存在',
-        'real_name.require' => '联系人不存在',
-        'lon.require' => '经度不存在',
-        'lat.require' => '纬度不存在',
     ];
 
 
     public function sceneAdd()
     {
-        return $this->only(['address','pay_way','group_activity_id','mobile','real_name','lon','lat']);
+        return $this->only(['pay_way','group_activity_id,remark']);
     }
 
     public function sceneDetail()
@@ -53,11 +42,6 @@ class GroupOrderValidate extends BaseValidate
         return $this->only(['sn']);
     }
 
-    public function sceneLonLat()
-    {
-        return $this->only(['lon','lat']);
-    }
-
     /**
      * @notes 支付方式场景
      * @return ShopPayValidate

+ 3 - 0
app/common/model/group_activity/GroupUserOrder.php

@@ -30,6 +30,9 @@ class GroupUserOrder extends BaseModel
     protected $deleteTime = 'delete_time';
     protected $name = 'group_user_order';
 
+    public function groupOrder(){
+        return $this->hasOne(GroupOrder::class,'id','group_order_id')->field('id,sn,status,num,create_time,end_time');
+    }
     public function getCreateTimeAttr($value,$data)
     {
         return !empty($data['create_time'])?date('Y-m-d H:i:s',$data['create_time']):'';