UserAwardRepository.php 9.5 KB

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