Prechádzať zdrojové kódy

Merge branch 'master' of e.coding.net:zdap/weixiu/weixiu_api into m--tmp

liugc 11 mesiacov pred
rodič
commit
3c1caf47e9

+ 13 - 0
app/adminapi/controller/external/ExternalConsultationController.php

@@ -85,6 +85,19 @@ class ExternalConsultationController extends BaseAdminController
         }
         return $this->fail(ExternalConsultationLogic::getError());
     }
+
+
+    public function followLog()
+    {
+        $params = (new ExternalConsultationValidate())->post()->goCheck('edit');
+        $result = ExternalConsultationLogic::followLog($params);
+        if (true === $result) {
+            return $this->success('添加成功', [], 1, 1);
+        }
+        return $this->fail(ExternalConsultationLogic::getError());
+    }
+
+
     /**
      * @notes 删除
      * @return \think\response\Json

+ 12 - 5
app/adminapi/lists/external/ExternalConsultationLists.php

@@ -38,12 +38,19 @@ class ExternalConsultationLists extends BaseAdminDataLists implements ListsSearc
     public function setSearch(): array
     {
         return [
-            '=' => ['external_platform_id'],
-            '%like%' => ['user_name', 'mobile', 'unique_code'],
+            '=' => ['external_platform_id','follow_status'],
+            '%like%' => ['user_name', 'mobile', 'unique_code','remark'],
         ];
     }
 
-
+    public function queryWhere(){
+        $where = [];
+        if(isset($this->params['create_time_range']) && !empty($this->params['create_time_range'][0]) && !empty($this->params['create_time_range'][1])){
+            $time = [strtotime($this->params['create_time_range'][0]), strtotime($this->params['create_time_range'][1])+86400-1];
+            $where[] = ['create_time', 'between', $time];
+        }
+        return  $where;
+    }
     /**
      * @notes 获取列表
      * @return array
@@ -55,7 +62,7 @@ class ExternalConsultationLists extends BaseAdminDataLists implements ListsSearc
      */
     public function lists(): array
     {
-        return ExternalConsultation::with(['goods'])->where($this->searchWhere)
+        return ExternalConsultation::with(['goods','customerLog','customerOrder'])->where($this->searchWhere)->where($this->queryWhere())
             ->field(['*'])
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['id' => 'desc'])
@@ -72,7 +79,7 @@ class ExternalConsultationLists extends BaseAdminDataLists implements ListsSearc
      */
     public function count(): int
     {
-        return ExternalConsultation::where($this->searchWhere)->count();
+        return ExternalConsultation::where($this->searchWhere)->where($this->queryWhere())->count();
     }
 
 }

+ 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','group_order_id'],
+            '=' => ['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','external_platform_id','group_order_id'],
             '%like%'=>[ 'work_sn','mobile','real_name', 'title', 'address']
         ];
     }

+ 40 - 1
app/adminapi/logic/external/ExternalConsultationLogic.php

@@ -18,6 +18,8 @@ namespace app\adminapi\logic\external;
 use app\common\logic\ThirdOrderLogic;
 use app\common\model\external\ExternalConsultation;
 use app\common\logic\BaseLogic;
+use app\common\model\external\ExternalConsultationFollowLog;
+use app\common\model\external\ExternalConsultationOrder;
 use think\facade\Db;
 
 
@@ -119,6 +121,7 @@ class ExternalConsultationLogic extends BaseLogic
 
             // userName mobile goods_id userAddress amount appointment_time lon lat
             $work_id = ThirdOrderLogic::submitOrders([
+                'external_platform_id' => $params['external_platform_id'],
                 'userName' => $params['user_name'],
                 'mobile' => $params['mobile'],
                 'goods_id' => $params['goods_id'],
@@ -147,9 +150,45 @@ class ExternalConsultationLogic extends BaseLogic
                 'amount' => $params['amount'],
                 'lon' => $params['lon'],
                 'lat' => $params['lat'],
-                'work_id' => $work_id,
+                //'work_id' => $work_id,
                 'remark' => $params['remark']
             ]);
+            ExternalConsultationOrder::create([
+                'consultation_id' => $params['id'],
+                'user_address' => $params['user_address'],
+                'lon' => $params['lon'],
+                'lat' => $params['lat'],
+
+                'appointment_time' => $params['appointment_time'],
+                'goods_id' => $params['goods_id'],
+                'amount' => $params['amount'],
+                'work_id' => $work_id,
+            ]);
+            Db::commit();
+            return true;
+        } catch (\Exception $e) {
+            Db::rollback();
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
+    public static function followLog(array $params): bool
+    {
+        Db::startTrans();
+        try {
+
+            $consultation = ExternalConsultation::where('id', $params['id'])->findOrEmpty();
+            if(empty($consultation->follow_start_time)) $consultation->follow_start_time  = time();
+            $consultation->follow_status = 1;
+            $consultation->save();
+
+            ExternalConsultationFollowLog::create([
+                'consultation_id' => $params['id']??0,
+                'content' => $params['content']??'',
+                'admin_id' => $params['admin_id']??0,
+                'create_time' => time(),
+            ]);
+
             Db::commit();
             return true;
         } catch (\Exception $e) {

+ 1 - 0
app/common/logic/ThirdOrderLogic.php

@@ -300,6 +300,7 @@ class ThirdOrderLogic extends BaseLogic
                 'lat'=>$message['lat'],
                 'property_activity_id'=>0,
                 'user_equity_id'=>0,
+                'external_platform_id'=>$message['external_platform_id']??0,
                 'work_total'=>$message['amount'],
                 'work_amount'=>$message['amount']
             ];

+ 9 - 1
app/common/model/external/ExternalConsultation.php

@@ -39,5 +39,13 @@ class ExternalConsultation extends BaseModel
         return $this->hasOne(ExternalPlatform::class, 'id', 'external_platform_id')
             ->field('id,name,tel');
     }
-    
+
+    public function customerLog()
+    {
+        return $this->hasMany(ExternalConsultationFollowLog::class,'consultation_id','id')->order(['id'=>'desc']);
+    }
+    public function customerOrder()
+    {
+        return $this->hasMany(ExternalConsultationOrder::class,'consultation_id','id')->order(['id'=>'desc']);
+    }
 }

+ 10 - 0
app/common/model/external/ExternalConsultationFollowLog.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace app\common\model\external;
+
+use app\common\model\BaseModel;
+
+class ExternalConsultationFollowLog extends BaseModel
+{
+    protected $name = 'external_consultation_follow_log';
+}

+ 10 - 0
app/common/model/external/ExternalConsultationOrder.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace app\common\model\external;
+
+use app\common\model\BaseModel;
+
+class ExternalConsultationOrder extends BaseModel
+{
+    protected $name = 'external_consultation_order';
+}