فهرست منبع

add - 收益规则

liugc 1 سال پیش
والد
کامیت
9a90653129

+ 17 - 3
app/adminapi/controller/master_commission/MasterWorkerCommissionConfigController.php

@@ -51,7 +51,9 @@ class MasterWorkerCommissionConfigController extends BaseAdminController
      */
     public function add()
     {
-        $params = (new MasterWorkerCommissionConfigValidate())->post()->goCheck('add');
+        $params = (new MasterWorkerCommissionConfigValidate())->post()->goCheck('add',[
+            'adminId' => $this->adminId
+        ]);
         $result = MasterWorkerCommissionConfigLogic::add($params);
         if (true === $result) {
             return $this->success('添加成功', [], 1, 1);
@@ -68,7 +70,9 @@ class MasterWorkerCommissionConfigController extends BaseAdminController
      */
     public function edit()
     {
-        $params = (new MasterWorkerCommissionConfigValidate())->post()->goCheck('edit');
+        $params = (new MasterWorkerCommissionConfigValidate())->post()->goCheck('edit',[
+            'adminId' => $this->adminId
+        ]);
         $result = MasterWorkerCommissionConfigLogic::edit($params);
         if (true === $result) {
             return $this->success('编辑成功', [], 1, 1);
@@ -104,5 +108,15 @@ class MasterWorkerCommissionConfigController extends BaseAdminController
         return $this->data($result);
     }
 
-
+    public function examine()
+    {
+        $params = (new MasterWorkerCommissionConfigValidate())->post()->goCheck('delete',[
+            'adminId' => $this->adminId
+        ]);
+        $result = MasterWorkerCommissionConfigLogic::examine($params);
+        if (true === $result) {
+            return $this->success('启动成功', [], 1, 1);
+        }
+        return $this->fail(MasterWorkerCommissionConfigLogic::getError());
+    }
 }

+ 77 - 18
app/adminapi/logic/master_commission/MasterWorkerCommissionConfigLogic.php

@@ -17,6 +17,7 @@ namespace app\adminapi\logic\master_commission;
 
 use app\common\model\master_commission\MasterWorkerCommissionConfig;
 use app\common\logic\BaseLogic;
+use app\common\model\master_commission\MasterWorkerCommissionRatio;
 use think\facade\Db;
 use think\facade\Log;
 
@@ -53,15 +54,18 @@ class MasterWorkerCommissionConfigLogic extends BaseLogic
         }
         Db::startTrans();
         try {
-            MasterWorkerCommissionConfig::create([
-                'master_worker_id' => $params['master_worker_id'],
-                'submit_admin_id' => $params['submit_admin_id'],
-                'examine_admin_id' => $params['examine_admin_id'],
-                'voucher_status' => $params['voucher_status'],
-                'notice_rule' => $params['notice_rule'],
-                'block_data' => $params['block_data'],
-            ]);
-
+            $info = MasterWorkerCommissionConfig::where('master_worker_id',$params['master_worker_id'])->where('voucher_status',3)->findOrEmpty();
+            if($info->isEmpty()){
+                MasterWorkerCommissionConfig::create([
+                    'master_worker_id' => $params['master_worker_id'],
+                    'submit_admin_id' => $params['adminId'],
+                    'voucher_status' => 3,
+                    'notice_rule' => $params['notice_rule'],
+                    'block_data' => $params['block_data'],
+                ]);
+            }else{
+                throw new \Exception('存在审核中规则,无法新增');
+            }
             Db::commit();
             return true;
         } catch (\Exception $e) {
@@ -94,15 +98,18 @@ class MasterWorkerCommissionConfigLogic extends BaseLogic
         }
         Db::startTrans();
         try {
-            MasterWorkerCommissionConfig::where('id', $params['id'])->update([
-                'master_worker_id' => $params['master_worker_id'],
-                'submit_admin_id' => $params['submit_admin_id'],
-                'examine_admin_id' => $params['examine_admin_id'],
-                'voucher_status' => $params['voucher_status'],
-                'notice_rule' => $params['notice_rule']?json_encode($params['notice_rule']):0,
-                'block_data' => $params['block_data']?json_encode($params['block_data']):0,
-            ]);
-
+            $info = MasterWorkerCommissionConfig::where('master_worker_id',$params['master_worker_id'])->where('voucher_status',3)->findOrEmpty();
+            if($info->isEmpty()){
+                throw new \Exception('不存在待审核规则,无法编辑');
+            }else{
+                MasterWorkerCommissionConfig::where('id', $params['id'])->update([
+                    'master_worker_id' => $params['master_worker_id'],
+                    'submit_admin_id' => $params['adminId'],
+                    'voucher_status' => $params['voucher_status'],
+                    'notice_rule' => $params['notice_rule']?json_encode($params['notice_rule']):0,
+                    'block_data' => $params['block_data']?json_encode($params['block_data']):0,
+                ]);
+            }
             Db::commit();
             return true;
         } catch (\Exception $e) {
@@ -122,6 +129,7 @@ class MasterWorkerCommissionConfigLogic extends BaseLogic
      */
     public static function delete(array $params): bool
     {
+        MasterWorkerCommissionRatio::where('commission_config_id',$params['id'])->delete();
         return MasterWorkerCommissionConfig::destroy($params['id']);
     }
 
@@ -137,4 +145,55 @@ class MasterWorkerCommissionConfigLogic extends BaseLogic
     {
         return MasterWorkerCommissionConfig::findOrEmpty($params['id'])->toArray();
     }
+
+    public static function examine($params): bool
+    {
+
+        Db::startTrans();
+        try {
+            $info = MasterWorkerCommissionConfig::where('id',$params['id'])->where('voucher_status',3)->findOrEmpty();
+            if($info->isEmpty()){
+                throw new \Exception('不存在待审核规则,无法审核');
+            }else{
+                // 关闭所有旧规则
+                MasterWorkerCommissionConfig::where('master_worker_id',$info->master_worker_id)
+                    ->where('voucher_status',2)->update(['voucher_status'=>1]);
+
+                // 生成比例数据 [{"block_key":"0","category_ids":"59,54,53,20,36,35,34,33,32,48","ratio":"0.2"},{"block_key":"1","category_ids":"3","ratio":"0.7"}]
+                $ratioData = [];
+                foreach ($info->block_data as $data){
+                    $category_ids = explode(',',$data['category_ids']);
+                    foreach ($category_ids as $category_id) {
+                        $ratioData[] = [
+                            'commission_config_id' => $params['id'],
+                            'goods_category_id' => $category_id,
+                            'ratio' => $data['ratio'],
+                            'create_time' => time(),
+                            'update_time' => time(),
+                        ];
+                    }
+                }
+                Db::name('master_worker_commission_ratio')->insertAll($ratioData);
+
+                // 启动
+                MasterWorkerCommissionConfig::where('id', $params['id'])->update([
+                    'examine_admin_id' => $params['adminId'],
+                    'voucher_status' => 2
+                ]);
+            }
+            Db::commit();
+            return true;
+        } catch (\Exception $e) {
+            Db::rollback();
+            if (str_contains($e->getMessage(), "key 'category_config_id'")) {
+                self::setError('规则中存在重复商品分类,请重新编辑');
+            }else{
+                self::setError($e->getMessage());
+            }
+            return false;
+        }
+
+
+    }
+
 }

+ 34 - 0
app/common/model/master_commission/MasterWorkerCommissionRatio.php

@@ -0,0 +1,34 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeadmin快速开发前后端分离管理后台(PHP版)
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
+// | github下载:https://github.com/likeshop-github/likeadmin
+// | 访问官网:https://www.likeadmin.cn
+// | likeadmin团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeadminTeam
+// +----------------------------------------------------------------------
+
+namespace app\common\model\master_commission;
+
+
+use app\common\model\BaseModel;
+
+
+
+/**
+ * MasterWorkerCommissionRatio模型
+ * Class MasterWorkerCommissionRatio
+ * @package app\common\model
+ */
+class MasterWorkerCommissionRatio extends BaseModel
+{
+    
+    protected $name = 'master_worker_commission_ratio';
+    
+
+    
+}