Pārlūkot izejas kodu

恢复权益卡

liugc 1 gadu atpakaļ
vecāks
revīzija
594d0c9c89

+ 2 - 0
app/adminapi/controller/works/ServiceWorkController.php

@@ -18,6 +18,7 @@ namespace app\adminapi\controller\works;
 
 use app\adminapi\controller\BaseAdminController;
 use app\adminapi\lists\works\ServiceWorkLists;
+use app\adminapi\logic\equity\UserEquityLogic;
 use app\adminapi\logic\master_worker\MasterWorkerLogic;
 use app\adminapi\logic\works\ServiceWorkLogic;
 use app\adminapi\validate\works\ServiceWorkValidate;
@@ -138,6 +139,7 @@ class ServiceWorkController extends BaseAdminController
         $params = (new ServiceWorkValidate())->post()->goCheck('detail');
         $result = ServiceWorkLogic::cancel($params);
         if (true === $result) {
+            UserEquityLogic::cancelServiceWorkRestoredNumber($params);
             return $this->success('取消工单成功!', [], 1, 1);
         }
         return $this->fail(ServiceWorkLogic::getError());

+ 34 - 0
app/adminapi/logic/equity/UserEquityLogic.php

@@ -21,7 +21,9 @@ use app\common\model\equity\UserEquity;
 use app\common\logic\BaseLogic;
 use app\common\model\user\User;
 use app\common\model\works\ServiceWork;
+use app\common\model\works\ServiceWorkLog;
 use think\facade\Db;
+use think\facade\Log;
 use think\facade\Validate;
 
 
@@ -146,4 +148,36 @@ class UserEquityLogic extends BaseLogic
         return ServiceWork::where('user_equity_id',$params['user_equity_id'])->append(['work_status_text'])->select()->toArray();
     }
 
+
+    /**
+     * 取消工单操作-恢复权益次数
+     * @param array $params
+     * @return bool
+     */
+    public static function cancelServiceWorkRestoredNumber(array $params): bool
+    {
+        Db::startTrans();
+        try {
+            $serviceWorkInfo = ServiceWork::find($params['id']);
+            if(empty($serviceWorkInfo['user_equity_id'])){
+                throw new \Exception('该工单非权益卡工单!!!');
+            }
+
+            if((int)$serviceWorkInfo['service_status'] == 4){
+                // 恢复权益次数
+                UserEquity::where('id', $serviceWorkInfo['user_equity_id'])->inc('number')->save();
+            }else{
+                throw new \Exception('该工单非权益卡工单!!!');
+            }
+
+            Db::commit();
+            Log::info('权益卡取消工单'.json_encode([$serviceWorkInfo]));
+            return true;
+        } catch (\Exception $e) {
+            Db::rollback();
+            Log::info('权益卡取消工单-Error'.json_encode([$e->getMessage()]));
+            return false;
+        }
+    }
+
 }