whitefang 1 год назад
Родитель
Сommit
e8d15c97f1

+ 15 - 0
app/api/controller/IssueWorkController.php

@@ -1,6 +1,8 @@
 <?php
 namespace app\api\controller;
 
+use app\api\logic\works\IssueWorkLogic;
+use app\api\validate\IssueWorkValidate;
 use app\common\model\dict\DictData;
 
 /**
@@ -22,4 +24,17 @@ class IssueWorkController extends BaseApiController
         $list = DictData::where(['type_value'=>'complaint_type','status'=>1])->field('value,name')->select()->toArray();
         return $this->data($list);
     }
+
+    public function complaint()
+    {
+        $params = (new IssueWorkValidate())->post()->goCheck('add', [
+            'user_id' => $this->userId,
+            'user_info' => $this->userInfo
+        ]);
+        $result = IssueWorkLogic::add($params);
+        if (false === $result) {
+            return $this->fail(IssueWorkLogic::getError());
+        }
+        return $this->success('评论成功', [], 1, 1);
+    }
 }

+ 63 - 0
app/api/logic/IssueWorkLogic.php

@@ -0,0 +1,63 @@
+<?php
+namespace app\api\logic\works;
+
+
+use app\common\model\recharge\RechargeOrder;
+use app\common\model\works\IssueWork;
+use app\common\logic\BaseLogic;
+use app\common\model\works\ServiceWork;
+use think\facade\Db;
+
+
+/**
+ * IssueWork逻辑
+ * Class IssueWorkLogic
+ * @package app\api\logic\works
+ */
+class IssueWorkLogic extends BaseLogic
+{
+
+
+    /**
+     * @notes 添加
+     * @param array $params
+     * @return bool
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public static function add(array $params): bool
+    {
+        Db::startTrans();
+        try {
+            $order = RechargeOrder::where('sn',$params['sn'])->findOrEmpty()->toArray();
+            $work = ServiceWork::findOrEmpty($params['work_id']);
+            IssueWork::create([
+                'sn' => $params['sn'],
+                'work_sn' => $work['work_sn'],
+                'service_work_id' => $params['work_id'],
+                'master_worker_id' => $params['master_worker_id'],
+                'complaint_details' => $params['complaint_details'],
+                'complaint_images' => !empty($params['complaint_images']) ? $params['complaint_images'] : '',
+            ]);
+
+            Db::commit();
+            return true;
+        } catch (\Exception $e) {
+            Db::rollback();
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
+
+    /**
+     * @notes 获取详情
+     * @param $params
+     * @return array
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public static function detail($params): array
+    {
+        return IssueWork::findOrEmpty($params['id'])->toArray();
+    }
+}

+ 44 - 0
app/api/validate/IssueWorkValidate.php

@@ -0,0 +1,44 @@
+<?php
+namespace app\api\validate;
+
+use app\common\validate\BaseValidate;
+
+
+/**
+ * IssueWorkValidate验证器
+ * Class IssueWorkValidate
+ * @package app\api\validate
+ */
+class IssueWorkValidate extends BaseValidate
+{
+
+    /**
+     * 设置校验规则
+     * @var string[]
+     */
+    protected $rule = [
+        'sn' => 'require',
+        'complaint_type' => 'require',
+        'complaint_details'=>'require',
+    ];
+
+
+    /**
+     * 参数描述
+     * @var string[]
+     */
+    protected $field = [
+        'sn' => '订单编号',
+        'complaint_type' => '投诉类别',
+        'complaint_details' => '投诉详情',
+    ];
+
+    /**
+     * @notes 添加场景
+     * @return GoodsValidate
+     */
+    public function sceneAdd()
+    {
+        return $this->only(['sn','complaint_type','complaint_details']);
+    }
+}