UserAwardRepository.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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. $key = [
  56. ['name' => '直推收益', 'key' => 'user_group_rate'],
  57. ['name' => '锁客收益', 'key' => 'user_group_lock_rate'],
  58. ['name' => '推广店铺收益', 'key' => 'user_group_store_rate'],
  59. ['name' => '分红', 'key' => 'user_group_red_rate'],
  60. ];
  61. $list = [];
  62. foreach ($key as $item) {
  63. $user_group_rate = Db::name("system_config_value")->where(["config_key"=>$item['key']])->value("value");
  64. $user_group_rate = json_decode($user_group_rate, true);
  65. $list[] = [
  66. 'name' => $item['name'],
  67. 'key' => $item['key'],
  68. 'user_groub_1' => $user_group_rate[0]['rate']??0,
  69. 'user_groub_2' => $user_group_rate[1]['rate']??0,
  70. 'user_groub_3' => $user_group_rate[2]['rate']??0,
  71. 'user_groub_4' => $user_group_rate[3]['rate']??0,
  72. 'user_groub_5' => $user_group_rate[4]['rate']??0,
  73. 'user_groub_6' => $user_group_rate[5]['rate']??0,
  74. 'user_groub_7' => $user_group_rate[6]['rate']??0,
  75. 'user_groub_8' => $user_group_rate[7]['rate']??0,
  76. 'user_groub_9' => $user_group_rate[8]['rate']??0,
  77. ];
  78. }
  79. $count = count($list);
  80. return compact('count', 'list');
  81. }
  82. /**
  83. * @param array $formData
  84. * @return Form
  85. * @throws FormBuilderException
  86. * @author xaboy
  87. * @day 2020-05-07
  88. */
  89. public function form(array $formData = [])
  90. {
  91. $action = Route::buildUrl('configAwardUpdate' , $formData)->build();
  92. return Elm::createForm($action, [
  93. Elm::number('user_groub_1', '普通用户(%)')->min(0)->size('large'),
  94. Elm::number('user_groub_2', '业务员(%)')->min(0)->size('large'),
  95. Elm::number('user_groub_3', '业务经理(%)')->min(0)->size('large'),
  96. Elm::number('user_groub_4', '初级合伙人(%)')->min(0)->size('large'),
  97. Elm::number('user_groub_5', '中级合伙人(%)')->min(0)->size('large'),
  98. Elm::number('user_groub_6', '高级合伙人(%)')->min(0)->size('large'),
  99. Elm::number('user_groub_7', '董事(%)')->min(0)->size('large'),
  100. Elm::number('user_groub_8', '联创(%)')->min(0)->size('large'),
  101. Elm::number('user_groub_9', '股权(%)')->min(0)->size('large'),
  102. ])->setTitle($formData['name'].'设置')->formData($formData);
  103. }
  104. /**
  105. * @param $id
  106. * @return Form
  107. * @throws FormBuilderException
  108. * @throws DataNotFoundException
  109. * @throws DbException
  110. * @throws ModelNotFoundException
  111. * @author xaboy
  112. * @day 2020-05-07
  113. */
  114. public function updateForm($data)
  115. {
  116. return $this->form($data);
  117. }
  118. /**
  119. * @param $id
  120. * @param data
  121. * @return array
  122. * @day 2020-05-07
  123. */
  124. public function updateAward($key, $data)
  125. {
  126. $user_group_rate = Db::name("system_config_value")->where(["config_key"=>$key])->value("value");
  127. $user_group_rate = json_decode($user_group_rate, true);
  128. $user_group_rate[0]['rate'] = $data['user_groub_1'];
  129. $user_group_rate[1]['rate'] = $data['user_groub_2'];
  130. $user_group_rate[2]['rate'] = $data['user_groub_3'];
  131. $user_group_rate[3]['rate'] = $data['user_groub_4'];
  132. $user_group_rate[4]['rate'] = $data['user_groub_5'];
  133. $user_group_rate[5]['rate'] = $data['user_groub_6'];
  134. $user_group_rate[6]['rate'] = $data['user_groub_7'];
  135. $user_group_rate[7]['rate'] = $data['user_groub_8'];
  136. $user_group_rate[8]['rate'] = $data['user_groub_9'];
  137. Db::name("system_config_value")->where(["config_key"=>$key])->where('mer_id', 0)->update(['value' =>json_encode($user_group_rate)]);
  138. }
  139. /**
  140. * @param array $where
  141. * @return array
  142. * @throws DataNotFoundException
  143. * @throws DbException
  144. * @throws ModelNotFoundException
  145. */
  146. public function getIdentityList(array $where = [])
  147. {
  148. $query = $this->dao->search($where);
  149. return $query->select()->toArray();
  150. }
  151. }