Member.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\adminapi\controller\member;
  12. use app\dict\member\MemberDict;
  13. use app\dict\member\MemberRegisterChannelDict;
  14. use app\dict\member\MemberRegisterTypeDict;
  15. use app\service\admin\member\MemberService;
  16. use core\base\BaseAdminController;
  17. use think\db\exception\DataNotFoundException;
  18. use think\db\exception\DbException;
  19. use think\db\exception\ModelNotFoundException;
  20. use think\Response;
  21. class Member extends BaseAdminController
  22. {
  23. /**
  24. * 会员列表
  25. * @return Response
  26. */
  27. public function lists()
  28. {
  29. $data = $this->request->params([
  30. ['keyword', ''],
  31. ['register_type', ''],
  32. ['register_channel', ''],
  33. ['create_time', []],
  34. ['member_label', 0],
  35. ]);
  36. return success((new MemberService())->getPage($data));
  37. }
  38. /**
  39. * 会员详情
  40. * @param int $id
  41. * @return Response
  42. */
  43. public function info(int $id)
  44. {
  45. return success((new MemberService())->getInfo($id));
  46. }
  47. /**
  48. * 添加会员
  49. * @return Response
  50. */
  51. public function add()
  52. {
  53. $data = $this->request->params([
  54. ['nickname', ''],
  55. ['mobile', ''],
  56. ['member_no', ''],
  57. ['init_member_no', ''],
  58. ['password', ''],
  59. ['headimg', ''],
  60. ['member_label', []],
  61. ['sex', 0],
  62. ['birthday', ''],
  63. ]);
  64. $this->validate($data, 'app\validate\member\Member.add');
  65. $res = (new MemberService())->add($data);
  66. return success('ADD_SUCCESS', ['member_id' => $res]);
  67. }
  68. /**
  69. * 修改会员
  70. * @param $member_id
  71. * @param $field
  72. * @return Response
  73. */
  74. public function modify($member_id, $field)
  75. {
  76. $data = $this->request->params([
  77. ['value', ''],
  78. ['field', $field],
  79. ]);
  80. $data[$field] = $data['value'];
  81. $this->validate($data, 'app\validate\member\Member.modify');
  82. (new MemberService())->modify($member_id, $field, $data['value']);
  83. return success('MODIFY_SUCCESS');
  84. }
  85. /**
  86. * 更新
  87. * @return Response
  88. */
  89. public function edit($member_id)
  90. {
  91. $data = $this->request->params([
  92. ['nickname', ''],
  93. ['headimg', ''],
  94. ['password', ''],
  95. ['member_label', []],
  96. ['sex', 0],
  97. ['birthday', ''],
  98. ]);
  99. $this->validate($data, 'app\validate\member\Member.edit');
  100. $res = (new MemberService())->edit($member_id, $data);
  101. return success('EDIT_SUCCESS');
  102. }
  103. public function del($member_id)
  104. {
  105. $res = (new MemberService())->deleteMember($member_id);
  106. return success('DELETE_SUCCESS');
  107. }
  108. /**
  109. * 会员使用场景
  110. * @return Response
  111. */
  112. public function getMemberRegisterType()
  113. {
  114. return success(MemberRegisterTypeDict::getType());
  115. }
  116. /**
  117. * 会员列表
  118. * @return Response
  119. * @throws DataNotFoundException
  120. * @throws DbException
  121. * @throws ModelNotFoundException
  122. */
  123. public function getMemberList()
  124. {
  125. $data = $this->request->params([
  126. ['keyword', ''],
  127. ]);
  128. return success((new MemberService())->getList($data));
  129. }
  130. /**
  131. * 获取会员注册渠道
  132. * @return Response
  133. */
  134. public function getMemberRegisterChannelType()
  135. {
  136. return success(MemberRegisterChannelDict::getType());
  137. }
  138. /**
  139. * 设置会员的状态
  140. * @param $status
  141. * @return Response
  142. */
  143. public function setStatus($status)
  144. {
  145. $data = $this->request->params([
  146. ['member_ids', []],
  147. ]);
  148. $this->validate(['status' => $status], 'app\validate\member\Member.set_status');
  149. (new MemberService())->setStatus($data['member_ids'], $status);
  150. return success('EDIT_SUCCESS');
  151. }
  152. /**
  153. * 获取状态枚举
  154. * @return Response
  155. */
  156. public function getStatusList()
  157. {
  158. return success(MemberDict::getStatus());
  159. }
  160. /**
  161. * 获取会员编码
  162. * @return Response
  163. */
  164. public function getMemberNo()
  165. {
  166. $member_no = (new MemberService())->getMemberNo();
  167. return success('SUCCESS', $member_no);
  168. }
  169. /**
  170. * 获取会员权益字典
  171. * @return mixed
  172. */
  173. public function getMemberBenefitsDict() {
  174. return success((new MemberService())->getMemberBenefitsDict());
  175. }
  176. /**
  177. * 获取会员礼包字典
  178. * @return array|null
  179. */
  180. public function getMemberGiftDict() {
  181. return success((new MemberService())->getMemberGiftDict());
  182. }
  183. /**
  184. * 获取成长值规则字典
  185. * @return array|null
  186. */
  187. public function getGrowthRuleDict() {
  188. return success((new MemberService())->getGrowthRuleDict());
  189. }
  190. /**
  191. * 获取积分规则字典
  192. * @return array|null
  193. */
  194. public function getPointRuleDict() {
  195. return success((new MemberService())->getPointRuleDict());
  196. }
  197. /**
  198. * 获取会员权益内容
  199. * @return Response
  200. */
  201. public function getMemberBenefitsContent() {
  202. $data = $this->request->params([
  203. [ 'benefits', [] ],
  204. ]);
  205. return success((new MemberService())->getMemberBenefitsContent($data['benefits']));
  206. }
  207. /**
  208. * 获取会员礼包内容
  209. * @return Response
  210. */
  211. public function getMemberGiftsContent() {
  212. $data = $this->request->params([
  213. [ 'gifts', [] ],
  214. ]);
  215. return success((new MemberService())->getMemberGiftsContent($data['gifts']));
  216. }
  217. }