liugc 11 mēneši atpakaļ
vecāks
revīzija
76cb4024e9

+ 12 - 1
app/adminapi/controller/works/ServiceWorkController.php

@@ -267,7 +267,18 @@ class ServiceWorkController extends BaseAdminController
         return $this->success('操作成功', [], 1, 1);
     }
 
-
+    /**
+     * 给用户发券
+     */
+    public function userAddVoucher()
+    {
+        $params = request()->post();
+        $result = ServiceWorkLogic::userAddVoucher($params);
+        if (false === $result) {
+            return $this->fail(ServiceWorkLogic::getError());
+        }
+        return $this->success('发券成功', [], 1, 1);
+    }
 
 
 }

+ 28 - 0
app/adminapi/logic/works/ServiceWorkLogic.php

@@ -15,6 +15,7 @@
 namespace app\adminapi\logic\works;
 
 use app\adminapi\logic\user\UserLogic;
+use app\api\logic\UserCouponLogic;
 use app\common\enum\ThirdTypeEnum;
 use app\common\enum\worker\WorkerAccountLogEnum;
 use app\common\logic\ThirdOrderLogic;
@@ -1285,4 +1286,31 @@ class ServiceWorkLogic extends BaseLogic
             return false;
         }
     }
+
+
+    /**
+     * 给用户发券
+     */
+    public static function userAddVoucher($params): bool
+    {
+        try {
+            $serviceWork = ServiceWork::where('id',$params['id'])->findOrEmpty();
+            if(!$serviceWork->isEmpty()){
+                $codes = [];
+                foreach ($params['coupon_data'] as $coupon_data) {
+                    $coupon_data['code'] && $codes[] = $coupon_data['code'];
+                }
+                if($codes){
+                    $userCouponLogic = UserCouponLogic::add(['codes'=>$codes,'user_id'=>$serviceWork->user_id]);
+                    Log::info('工单中给用户发券:'.$serviceWork->user_id.'--'.json_encode($codes).'--'.json_encode($userCouponLogic));
+                    if($userCouponLogic === false) throw new \Exception(UserCouponLogic::getError());
+                }
+            }
+            return true;
+        } catch (\Exception $e) {
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
+
 }

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

@@ -81,6 +81,7 @@ class UserCouponLogic extends BaseLogic
                 (new UserCoupon())->saveAll($createData);
             }
             Db::commit();
+            $errMsgArr && self::setError(implode(',',$errMsgArr));
             return $errMsgArr;
         }catch(\Exception $e){
             Db::rollback();