Procházet zdrojové kódy

奖励设置模块接口

xialei před 1 rokem
rodič
revize
1f49a114f8

+ 224 - 0
app/common/repositories/user/UserAwardRepository.php

@@ -0,0 +1,224 @@
1
+<?php
2
+/**
3
+ * @package merchant
4
+ *
5
+ * @author xaboy
6
+ * @day 2020-05-07
7
+ *
8
+ * 
9
+ */
10
+
11
+namespace app\common\repositories\user;
12
+
13
+
14
+use app\common\dao\user\UserIdentityDao;
15
+use app\common\repositories\BaseRepository;
16
+use FormBuilder\Exception\FormBuilderException;
17
+use FormBuilder\Factory\Elm;
18
+use FormBuilder\Form;
19
+use think\db\exception\DataNotFoundException;
20
+use think\db\exception\DbException;
21
+use think\db\exception\ModelNotFoundException;
22
+use think\facade\Route; 
23
+use think\facade\Db;
24
+
25
+/**
26
+ * Class UserAwardRepository
27
+ * @package app\common\repositories\user
28
+ * @author xaboy
29
+ * @day 2020-05-07
30
+ * @mixin UserIdentityDao
31
+ */
32
+class UserAwardRepository extends BaseRepository
33
+{
34
+    /**
35
+     * @var UserIdentityDao
36
+     */
37
+    protected $dao;
38
+
39
+    /**
40
+     * UserGroupRepository constructor.
41
+     * @param UserIdentityDao $dao
42
+     */
43
+    public function __construct(UserIdentityDao $dao)
44
+    {
45
+        $this->dao = $dao;
46
+    }
47
+
48
+    /**
49
+     * @param array $where
50
+     * @param $page
51
+     * @param $limit
52
+     * @return array
53
+     * @throws DataNotFoundException
54
+     * @throws DbException
55
+     * @throws ModelNotFoundException
56
+     * @author xaboy
57
+     * @day 2020-05-07
58
+     */
59
+    public function getList(array $where, $page, $limit)
60
+    {
61
+        $count = 0;
62
+        $list = [];
63
+
64
+
65
+        $brokerage_fugou_rate = Db::name("system_config_value")->where(["config_key"=>"brokerage_fugou_rate"])->value("value");
66
+        $brokerage_fugou_rate = json_decode($brokerage_fugou_rate, true);
67
+
68
+        $user_group_rate = Db::name("system_config_value")->where(["config_key"=>"user_group_rate"])->value("value");
69
+        $user_group_rate = json_decode($user_group_rate, true);
70
+
71
+        $user_group_fugou_rate = Db::name("system_config_value")->where(["config_key"=>"user_group_fugou_rate"])->value("value");
72
+        $user_group_fugou_rate = json_decode($user_group_fugou_rate, true);
73
+
74
+        $brokerage_guquan_rate = Db::name("system_config_value")->where(["config_key"=>"brokerage_guquan_rate"])->value("value");
75
+        $fugou_guquan_rate = Db::name("system_config_value")->where(["config_key"=>"fugou_guquan_rate"])->value("value");
76
+
77
+        $brokerage_lianchuang_rate = Db::name("system_config_value")->where(["config_key"=>"brokerage_lianchuang_rate"])->value("value");
78
+        $fugou_lianchuang_rate = Db::name("system_config_value")->where(["config_key"=>"fugou_lianchuang_rate"])->value("value");
79
+
80
+        $list[] = [
81
+            'name' => '佣金',
82
+            'key' => 'brokerage',
83
+            'number_rate' => $brokerage_fugou_rate['brokerage_rate']??0,
84
+            'guquan_rate' => $brokerage_guquan_rate??0,
85
+            'lianchuang_rate' => $brokerage_lianchuang_rate??0,
86
+            'user_groub_1' => $user_group_rate[0]['rate']??0,
87
+            'user_groub_2' => $user_group_rate[1]['rate']??0,
88
+            'user_groub_3' => $user_group_rate[2]['rate']??0,
89
+            'user_groub_4' => $user_group_rate[3]['rate']??0,
90
+            'user_groub_5' => $user_group_rate[4]['rate']??0,
91
+            'user_groub_6' => $user_group_rate[5]['rate']??0,
92
+            'user_groub_7' => $user_group_rate[6]['rate']??0,
93
+        ];
94
+
95
+        $list[] = [
96
+            'name' => '复购金',
97
+            'key' => 'fugou',
98
+            'number_rate' => $brokerage_fugou_rate['fugou_rate']??0,
99
+            'guquan_rate' => $fugou_guquan_rate??0,
100
+            'lianchuang_rate' => $fugou_lianchuang_rate??0,
101
+            'user_groub_1' => $user_group_fugou_rate[0]['rate']??0,
102
+            'user_groub_2' => $user_group_fugou_rate[1]['rate']??0,
103
+            'user_groub_3' => $user_group_fugou_rate[2]['rate']??0,
104
+            'user_groub_4' => $user_group_fugou_rate[3]['rate']??0,
105
+            'user_groub_5' => $user_group_fugou_rate[4]['rate']??0,
106
+            'user_groub_6' => $user_group_fugou_rate[5]['rate']??0,
107
+            'user_groub_7' => $user_group_fugou_rate[6]['rate']??0,
108
+        ];
109
+
110
+        $count = count($list);
111
+        return compact('count', 'list');
112
+    }
113
+
114
+    /**
115
+     * @param array $formData
116
+     * @return Form
117
+     * @throws FormBuilderException
118
+     * @author xaboy
119
+     * @day 2020-05-07
120
+     */
121
+    public function form(array $formData = [])
122
+    {
123
+        $action = Route::buildUrl('configAwardUpdate' , $formData['key'])->build();
124
+        return Elm::createForm($action, [
125
+            Elm::number('number_rate', $formData['name'].'占比(%)')->min(0)->size('large'),
126
+            Elm::number('guquan_rate', '联创占比(%)')->min(0)->size('large'),
127
+            Elm::number('lianchuang_rate', '股权占比(%)')->min(0)->size('large'),
128
+            Elm::number('user_groub_1', '消费者占比(%)')->min(0)->size('large'),
129
+            Elm::number('user_groub_2', '业务员占比(%)')->min(0)->size('large'),
130
+            Elm::number('user_groub_3', '业务经理占比(%)')->min(0)->size('large'),
131
+            Elm::number('user_groub_4', '初级合伙人占比(%)')->min(0)->size('large'),
132
+            Elm::number('user_groub_5', '中级合伙人占比(%)')->min(0)->size('large'),
133
+            Elm::number('user_groub_6', '高级合伙人占比(%)')->min(0)->size('large'),
134
+            Elm::number('user_groub_7', '董事占比(%)')->min(0)->size('large'),
135
+        ])->setTitle($formData['name'].'设置')->formData($formData);
136
+    }
137
+
138
+    /**
139
+     * @param $id
140
+     * @return Form
141
+     * @throws FormBuilderException
142
+     * @throws DataNotFoundException
143
+     * @throws DbException
144
+     * @throws ModelNotFoundException
145
+     * @author xaboy
146
+     * @day 2020-05-07
147
+     */
148
+    public function updateForm($data)
149
+    {
150
+        return $this->form($data);
151
+    }
152
+
153
+    /**
154
+     * @param $id
155
+     * @param data
156
+     * @return array
157
+     * @day 2020-05-07
158
+     */
159
+    public function updateAward($key, $data)
160
+    {
161
+        if ($key == 'brokerage') {
162
+            //修改佣金比例
163
+            $brokerage_fugou_rate = Db::name("system_config_value")->where(["config_key"=>"brokerage_fugou_rate"])->value("value");
164
+            $brokerage_fugou_rate = json_decode($brokerage_fugou_rate, true);
165
+            $brokerage_fugou_rate['brokerage_rate'] = $data['number_rate'];
166
+            Db::name("system_config_value")->where(["config_key"=>"brokerage_fugou_rate"])->where('mer_id', 0)->update(json_encode($brokerage_fugou_rate));
167
+
168
+            //修改佣金等级分成比例
169
+            $user_group_rate = Db::name("system_config_value")->where(["config_key"=>"user_group_rate"])->value("value");
170
+            $user_group_rate = json_decode($user_group_rate, true);
171
+            $user_group_rate[0]['rate'] = $data['user_groub_1'];
172
+            $user_group_rate[1]['rate'] = $data['user_groub_2'];
173
+            $user_group_rate[2]['rate'] = $data['user_groub_3'];
174
+            $user_group_rate[3]['rate'] = $data['user_groub_4'];
175
+            $user_group_rate[4]['rate'] = $data['user_groub_5'];
176
+            $user_group_rate[5]['rate'] = $data['user_groub_6'];
177
+            $user_group_rate[6]['rate'] = $data['user_groub_7'];
178
+            Db::name("system_config_value")->where(["config_key"=>"user_group_rate"])->where('mer_id', 0)->update(json_encode($user_group_rate));
179
+
180
+            //修改佣金股权比例
181
+            Db::name("system_config_value")->where(["config_key"=>"brokerage_guquan_rate"])->where('mer_id', 0)->update($data['guquan_rate']);
182
+            //修改佣金联创比例
183
+            Db::name("system_config_value")->where(["config_key"=>"brokerage_lianchuang_rate"])->where('mer_id', 0)->update($data['lianchuang_rate']);
184
+        }
185
+
186
+        if ($key == 'fugou') {
187
+            //修改复购金比例
188
+            $brokerage_fugou_rate = Db::name("system_config_value")->where(["config_key"=>"brokerage_fugou_rate"])->value("value");
189
+            $brokerage_fugou_rate = json_decode($brokerage_fugou_rate, true);
190
+            $brokerage_fugou_rate['fugou_rate'] = $data['number_rate'];
191
+            Db::name("system_config_value")->where(["config_key"=>"brokerage_fugou_rate"])->where('mer_id', 0)->update(json_encode($brokerage_fugou_rate));
192
+            //修改复购金等级分成比例
193
+            $user_group_fugou_rate = Db::name("system_config_value")->where(["config_key"=>"user_group_fugou_rate"])->value("value");
194
+            $user_group_fugou_rate = json_decode($user_group_fugou_rate, true);
195
+            $user_group_fugou_rate[0]['rate'] = $data['user_groub_1'];
196
+            $user_group_fugou_rate[1]['rate'] = $data['user_groub_2'];
197
+            $user_group_fugou_rate[2]['rate'] = $data['user_groub_3'];
198
+            $user_group_fugou_rate[3]['rate'] = $data['user_groub_4'];
199
+            $user_group_fugou_rate[4]['rate'] = $data['user_groub_5'];
200
+            $user_group_fugou_rate[5]['rate'] = $data['user_groub_6'];
201
+            $user_group_fugou_rate[6]['rate'] = $data['user_groub_7'];
202
+            Db::name("system_config_value")->where(["config_key"=>"user_group_fugou_rate"])->where('mer_id', 0)->update(json_encode($user_group_fugou_rate));
203
+            //修改复购金股权比例
204
+            Db::name("system_config_value")->where(["config_key"=>"fugou_guquan_rate"])->where('mer_id', 0)->update($data['guquan_rate']);
205
+            //修改复购金联创比例
206
+            Db::name("system_config_value")->where(["config_key"=>"fugou_lianchuang_rate"])->where('mer_id', 0)->update($data['lianchuang_rate']);
207
+        }
208
+
209
+        return true;
210
+    }
211
+
212
+    /**
213
+     * @param array $where
214
+     * @return array
215
+     * @throws DataNotFoundException
216
+     * @throws DbException
217
+     * @throws ModelNotFoundException
218
+     */
219
+    public function getIdentityList(array $where = [])
220
+    {
221
+        $query = $this->dao->search($where);
222
+        return $query->select()->toArray();
223
+    }
224
+}

+ 94 - 0
app/controller/admin/system/config/Award.php

@@ -0,0 +1,94 @@
1
+<?php
2
+/**
3
+ * @package merchant
4
+ *
5
+ * @author xaboy
6
+ * @day 2020-03-24
7
+ *
8
+ * 
9
+ */
10
+
11
+namespace app\controller\admin\system\config;
12
+
13
+
14
+use crmeb\basic\BaseController;
15
+use app\common\repositories\user\UserAwardRepository;
16
+use FormBuilder\Exception\FormBuilderException;
17
+use think\App;
18
+use think\db\exception\DataNotFoundException;
19
+use think\db\exception\DbException;
20
+use think\db\exception\ModelNotFoundException;
21
+
22
+/**
23
+ * Class Config
24
+ * @package app\controller\admin\system\config
25
+ * @author xaboy
26
+ * @day 2020-03-27
27
+ */
28
+class Award extends BaseController
29
+{
30
+    /**
31
+     * @var UserAwardRepository
32
+     */
33
+    protected $repository;
34
+
35
+    /**
36
+     * Config constructor.
37
+     * @param App $app
38
+     * @param UserAwardRepository $repository
39
+     */
40
+    public function __construct(App $app, UserAwardRepository $repository)
41
+    {
42
+        parent::__construct($app);
43
+        $this->repository = $repository;
44
+    }
45
+
46
+    /**
47
+     * @return mixed
48
+     * @throws DataNotFoundException
49
+     * @throws DbException
50
+     * @throws ModelNotFoundException
51
+     * @author xaboy
52
+     * @day 2020-03-31
53
+     */
54
+    public function lst()
55
+    {
56
+        $where = $this->request->params(['keyword']);
57
+        [$page, $limit] = $this->getPage();
58
+        $lst = $this->repository->getList($where, $page, $limit);
59
+
60
+        return app('json')->success($lst);
61
+    }
62
+
63
+    /**
64
+     * @param int $id
65
+     * @return mixed
66
+     * @throws DataNotFoundException
67
+     * @throws DbException
68
+     * @throws ModelNotFoundException
69
+     * @throws FormBuilderException
70
+     * @author xaboy
71
+     * @day 2020-03-31
72
+     */
73
+    public function updateTable()
74
+    {
75
+        $data = $this->request->param();
76
+        $form = $this->repository->updateForm($data);
77
+        return app('json')->success(formToData($form));
78
+    }
79
+
80
+    /**
81
+     * @param int $key
82
+     * @return mixed
83
+     * @throws DbException
84
+     * @author xaboy
85
+     * @day 2020-03-27
86
+     */
87
+    public function update($key)
88
+    {
89
+        $data = $this->request->param();
90
+        $this->repository->updateAward($key,$data);
91
+        return app('json')->success('修改成功');
92
+    }
93
+
94
+}

+ 7 - 0
route/admin.php

@@ -93,6 +93,13 @@ Route::group(config('admin.api_admin_prefix') . '/', function () {
93 93
             Route::get('lst', '/lst')->name('configIdentityLst');
94 94
         })->prefix('admin.system.config.Identity');
95 95
 
96
+        //用户奖励配置
97
+        Route::group('config/award', function () {
98
+            Route::get('lst', '/lst')->name('configAwardLst');
99
+            Route::post('update/:key', '/update')->name('configAwardUpdate');
100
+            Route::get('update/table/:id', '/updateTable')->name('configAwardUpdateForm');
101
+        })->prefix('admin.system.config.award');
102
+
96 103
         Route::group('config/others', function () {
97 104
             Route::get('lst', 'ConfigOthers/lst')->name('configOthersSettingLst');
98 105
             Route::post('update', 'ConfigOthers/update')->name('configOthersSettingUpdate');