1
0
dongxiaoqin 1 жил өмнө
parent
commit
c9abc2412c

+ 1 - 1
app/adminapi/controller/group_activity/GroupUserOrderController.php

@@ -61,7 +61,7 @@ class GroupUserOrderController extends BaseAdminController
         $params = $this->request->post();
         $filename = "用户拼团订单列表";
         $result = ExportLogic::add([
-            'download_type' => 10,
+            'download_type' => 11,
             'params' => $params,
             'name' => $filename,
             'admin_id' => $this->adminId,

+ 12 - 0
app/adminapi/lists/group_activity/GroupUserOrderLists.php

@@ -74,6 +74,7 @@ class GroupUserOrderLists extends BaseAdminDataLists implements ListsSearchInter
             ->where($this->searchWhere)
             ->where($this->queryWhere())
             ->field(['a.*', 'b.title','b.image','c.sn as group_order_sn','c.status as group_order_status','d.mobile'])
+            ->append(['group_order_status_text','status_text','pay_status_text','pay_way_text','refund_status_text'])
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['a.id' => 'desc'])
             ->select()
@@ -99,4 +100,15 @@ class GroupUserOrderLists extends BaseAdminDataLists implements ListsSearchInter
         ->count();
     }
 
+    public function setExcelComplexFields(): array
+    {
+        $zh_cn_fields = [
+            '订单ID','活动标题', '拼团编号','拼团状态','用户ID','手机号','小区','详细地址','订单状态','应付金额','已付金额','支付方式','支付状态','支付时间','退款状态','下单时间'
+        ];
+        $data_fields = ['id','title','group_order_sn','group_order_status_text','user_id','mobile','area','address','status_text','order_amount','paid_amount','pay_way_text','pay_status_text','pay_time','refund_status_text','create_time'];
+        return [
+            'zh_cn_fields' => $zh_cn_fields,
+            'data_fields' => $data_fields
+        ];
+    }
 }

+ 1 - 1
app/adminapi/lists/works/ServiceWorkLists.php

@@ -70,7 +70,7 @@ class ServiceWorkLists extends BaseAdminDataLists implements ListsSearchInterfac
     public function setSearch(): array
     {
         return [
-            '=' => ['id','category_type', 'base_service_fee', 'service_fee', 'work_status', 'service_status',  'data_type',  'finished_images', 'master_worker_id', 'work_amount','work_type','appoint_approval','refund_approval', 'city','tenant_id','third_type'],
+            '=' => ['id','category_type', 'base_service_fee', 'service_fee', 'work_status', 'service_status',  'data_type',  'finished_images', 'master_worker_id', 'work_amount','work_type','appoint_approval','refund_approval', 'city','tenant_id','third_type','group_order_id'],
             '%like%'=>[ 'work_sn','mobile','real_name', 'title', 'address']
         ];
     }

+ 1 - 0
app/api/logic/GroupActivityLogic.php

@@ -174,6 +174,7 @@ class GroupActivityLogic extends BaseLogic
                 //生成拼团单
                 $data = [
                     'sn' => generate_sn(GroupOrder::class, 'sn'),
+                    'group_category_id' => $activity['group_category_id'],
                     'group_activity_id' => $params['group_activity_id'],
                     'equity_id' => $activity['equity_id'],
                     'goods_id' => EquityConfig::where('id', $activity['equity_id'])->value('goods_id'),

+ 2 - 3
app/common/command/GroupOrder.php

@@ -40,12 +40,11 @@ class GroupOrder extends Command
         $last_id = 0;
         while($last_id >= 0) {
             $list = GroupOrderModel::alias('a')
-                        ->leftJoin('group_activity b','a.group_activity_id=b.id')
-                        ->leftJoin('group_activity_category c','b.group_category_id=c.id')
+                        ->leftJoin('group_activity_category b','a.group_category_id=b.id')
                         ->where('a.status',0)
                         ->where('a.end_time','<',time())
                         ->where('a.id','>',$last_id)
-                        ->field('a.id,a.num,a.equity_id,c.participant_num,c.is_simulate_form,c.simulate_num')
+                        ->field('a.id,a.num,a.equity_id,b.participant_num,b.is_simulate_form,b.simulate_num')
                         ->order('a.id','asc')
                         ->limit(30)
                         ->select()->toArray();

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

@@ -37,7 +37,7 @@ class GroupActivity extends BaseModel
     public static function getDetail($id) {
         $detail = GroupActivity::alias('a')->leftJoin('group_activity_category b','a.group_category_id=b.id')
                     ->where('a.id',$id)
-                    ->field('a.id,a.title,a.image,a.equity_id,a.origin_price,a.price,a.work_amount,b.start_time,b.end_time,b.service_time,b.area,b.participant_num,b.form_time_limit,b.is_simulate_form,b.simulate_num,b.type')
+                    ->field('a.id,a.title,a.image,a.equity_id,a.origin_price,a.price,a.work_amount,a.group_category_id,b.start_time,b.end_time,b.service_time,b.area,b.participant_num,b.form_time_limit,b.is_simulate_form,b.simulate_num,b.type')
                     ->findOrEmpty()
                     ->toArray();
         if(!empty($detail)){

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

@@ -16,6 +16,7 @@ namespace app\common\model\group_activity;
 
 
 use app\common\model\BaseModel;
+use app\adminapi\logic\ConfigLogic;
 use think\model\concern\SoftDelete;
 
 
@@ -42,4 +43,30 @@ class GroupUserOrder extends BaseModel
     {
         return !empty($data['pay_time'])?date('Y-m-d H:i:s',$data['pay_time']):'';
     }
+
+    public function getGroupOrderStatusTextAttr($value,$data)
+    {
+        $dictType = array_column(ConfigLogic::getDictByType('group_order_status')['group_order_status'],'name','value');
+        return $dictType[$data['group_order_status']];
+    }
+    public function getStatusTextAttr($value,$data)
+    {
+        $dictType = array_column(ConfigLogic::getDictByType('group_user_order_status')['group_user_order_status'],'name','value');
+        return $dictType[$data['status']];
+    }
+    public function getPayStatusTextAttr($value,$data)
+    {
+        $dictType = array_column(ConfigLogic::getDictByType('pay_status')['pay_status'],'name','value');
+        return $dictType[$data['pay_status']];
+    }
+    public function getRefundStatusTextAttr($value,$data)
+    {
+        $dictType = array_column(ConfigLogic::getDictByType('refund_status')['refund_status'],'name','value');
+        return $dictType[$data['refund_status']];
+    }
+    public function getPayWayTextAttr($value,$data)
+    {
+        $dictType = array_column(ConfigLogic::getDictByType('pay_way')['pay_way'],'name','value');
+        return $dictType[$data['pay_way']];
+    }
 }

+ 1 - 52
app/common/service/ExcelExportService.php

@@ -74,7 +74,7 @@ class ExcelExportService
         }
     }
     // 获取下载文件路径
-    public function getDownloadFileUrl($downloadObj){print_r($downloadObj);exit;
+    public function getDownloadFileUrl($downloadObj){
         $lists = $downloadObj->excelExportList($this->infoExport['params']?:[]);
         $filename = $downloadObj->setFileName()?:($this->infoExport['name']?:'');
         $fields = $downloadObj->setExcelComplexFields();
@@ -263,55 +263,4 @@ class ExcelExportService
         }
     }
 
-
-    //用户拼团订单列表导出
-    public function GroupUserOrderDownload($infoExport){
-        try{
-            $filename = $infoExport['name'];
-            $params = $infoExport['params']?:[];
-            $where = [];
-            if($params){
-                if (isset($params['select_ids']) && !empty($params['select_ids'])) {
-                    $where[] = ['id','in' ,$params['select_ids']];
-                }
-                if (isset($params['sn']) && !empty($params['sn'])) {
-                    $where[] = ['a.sn','=' ,$params['sn']];
-                }
-                if (isset($params['mobile']) && !empty($params['mobile'])) {
-                    $where[] = ['a.mobile','=' ,$params['mobile']];
-                }
-                if(!empty($this->params['area'])){
-                    $where[] = ['a.area', 'like', '%'.$this->params['area'].'%'];
-                }
-                if(!empty($this->params['title'])){
-                    $where[] = ['b.title', 'like', '%'.$this->params['title'].'%'];
-                }
-                if (isset($this->params['group_order_status'])) {
-                    $where[] = ['c.status', '=', $this->params['group_order_status']];
-                }
-            }
-            
-            $lists = GroupUserOrder::alias('a')
-                ->leftJoin('group_activity b', 'b.id = a.group_activity_id')
-                ->leftJoin('group_order c', 'c.id = a.group_order_id')
-                ->leftJoin('user d', 'd.id = a.user_id')
-                ->where($where)
-                ->field(['a.*', 'b.title','b.image','c.sn as group_order_sn','c.status as group_order_status','d.mobile'])
-                ->order(['a.id' => 'desc'])
-                ->select()
-                ->toArray();
-            
-            $this->sheet->generateExcelFile([
-                '订单ID','活动标题', '拼团编号','拼团状态','用户ID','手机号','小区','详细地址','订单状态','应付金额','已付金额','支付方式','支付状态','支付时间','退款状态','下单时间'
-            ], $lists,$filename.'-'.$infoExport->id, ['id','title','group_order_sn','group_order_status','user_id','mobile','area','address','status','order_amount','paid_amount','pay_way','pay_status','pay_time','refund_status','create_time']);
-            $infoExport->file_url = $this->sheet->fileUrl();
-            $infoExport->generate_status = 1;
-            $infoExport->updatetime = time();
-            $infoExport->save();
-            return $infoExport->file_url;
-        }catch (\Exception $e){
-            throw new Exception($e->getMessage());
-        }    
-    }
-
 }

+ 40 - 4
app/job/AddServiceWorkJob.php

@@ -7,6 +7,7 @@ use think\facade\Log;
 use app\common\enum\WorkEnum;
 use app\common\model\equity\UserEquity;
 use app\common\model\works\ServiceWork;
+use app\common\model\recharge\OrderGoods;
 use app\common\model\equity\UserEquityLog;
 use app\common\model\orders\RechargeOrder;
 use app\common\model\group_activity\GroupOrder;
@@ -19,9 +20,16 @@ class AddServiceWorkJob
         
         $group_order_id = $data['id'];//拼团订单ID
         $goods = [];
+        $category = GroupOrder::alias('a')
+                    ->leftJoin('group_activity_category b','a.group_category_id=b.id')
+                    ->where('a.id', $group_order_id)
+                    ->field('b.service_time,b.master_worker_id')
+                    ->findOrEmpty()
+                    ->toArray();
         try {
             //查询拼团用户订单
-            $userOrder = GroupUserOrder::alias('a')->leftJoin('user b','a.user_id=b.id')
+            $userOrder = GroupUserOrder::alias('a')
+                        ->leftJoin('user b','a.user_id=b.id')
                         ->where('group_order_id', $group_order_id)
                         ->where('pay_status', 1)
                         ->where('refund_status', 0)
@@ -38,7 +46,7 @@ class AddServiceWorkJob
                 if (empty($goods)) {
                     $goods = UserEquity::alias('a')->leftJoin('goods b','a.goods_id=b.id')
                         ->where('a.id', $item['user_equity_id'])
-                        ->field('a.number,b.goods_name,b.category_type,b.goods_category_ids,b.goods_category_id,b.base_service_fee')
+                        ->field('a.number,a.goods_id,b.*')
                         ->findOrEmpty()
                         ->toArray();
                 }
@@ -58,7 +66,8 @@ class AddServiceWorkJob
                     'base_service_fee' => $goods['base_service_fee'],
                     'service_fee' => $item['paid_amount'],
                     'work_pay_status'=>WorkEnum::IS_PAY_STATUS,
-                    'appointment_time' => time(),
+                    'master_worker_id' => $category['master_worker_id'],
+                    'appointment_time' => $category['service_time'],
                     'dispatch_time' => time(),
                     'receive_time' => time(),
                     'user_id'=>$item['user_id'],
@@ -71,7 +80,6 @@ class AddServiceWorkJob
                     'work_status' => 5,
                     'user_confirm_status' => 3,
                     'service_status' => 1,
-                    'master_worker_id' => 7,
                     'remark' => '拼团单:'.$item['id'],
                     'user_equity_id' => $item['user_equity_id'],
                     'group_order_id' => $item['id'],
@@ -88,10 +96,38 @@ class AddServiceWorkJob
                     'user_id' => $item['user_id'],
                     'pay_status' => $item['pay_status'],
                     'pay_way' => $item['pay_way'],
+                    'pay_time' => time(),
                     'order_total' => 0,
                     'order_amount' => 0,
                 ];
                 $order = RechargeOrder::create($data);
+
+                //生成订单服务详情
+                OrderGoods::create([
+                    'sn' => $order['sn'],
+                    'goods_id' => $goods['goods_id'],
+                    'category_type' => $goods['category_type'],
+                    'goods_category_ids' => $goods['goods_category_ids'],
+                    'goods_category_id' => $goods['goods_category_id'],
+                    'goods_name' => $goods['goods_name'],
+                    'goods_image' => $goods['goods_image'],
+                    'goods_video' => $goods['goods_video'],
+                    'goods_number' => $goods['goods_number'],
+                    'good_unit' => $goods['good_unit'],
+                    'goods_size' => $goods['goods_size'],
+                    'goods_type' => $goods['goods_type'],
+                    'goods_brand' => $goods['goods_brand'],
+                    'install_guide' => $goods['install_guide'],
+                    'goods_payment_type'=>$goods['goods_payment_type'],
+                    'base_service_fee' => $goods['base_service_fee'],
+                    'service_total' => $goods['service_total'],
+                    'service_fee' => $goods['service_fee'],
+                    'service_image' => $goods['service_image'],
+                    'warranty_period'=>$goods['warranty_period'],
+                    'fee_schedule' => $goods['fee_schedule'],
+                    'goods_status' => $goods['goods_status'],
+                ]);
+                
                 //更新用户的权益卡剩余次数
                 UserEquity::where('id', $item['user_equity_id'])->update(['number' => 0, 'update_time' => time()]);