MerchantController.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | saiadmin [ saiadmin快速开发框架 ]
  4. // +----------------------------------------------------------------------
  5. namespace plugin\saiadmin\app\controller\merchant;
  6. use plugin\saiadmin\app\logic\merchant\MerchantLogic;
  7. use plugin\saiadmin\app\validate\merchant\MerchantValidate;
  8. use plugin\saiadmin\basic\BaseController;
  9. use plugin\saiadmin\service\Permission;
  10. use support\Request;
  11. use support\Response;
  12. /**
  13. * 我的商户控制器
  14. */
  15. class MerchantController extends BaseController
  16. {
  17. public function __construct()
  18. {
  19. $this->logic = new MerchantLogic();
  20. $this->validate = new MerchantValidate();
  21. parent::__construct();
  22. }
  23. #[Permission('商户列表', 'core:merchant:index')]
  24. public function index(Request $request): Response
  25. {
  26. $where = $request->more([
  27. ['scope', 'own'],
  28. ['agent_id', ''],
  29. ['name', ''],
  30. ['phone', ''],
  31. ['distributed', ''],
  32. ['status', ''],
  33. ['profit_method', ''],
  34. ['device_category', 'all'],
  35. ['agent_type', ''],
  36. ['sort', 'default'],
  37. ]);
  38. return $this->success($this->logic->indexList($where));
  39. }
  40. #[Permission('商户详情', 'core:merchant:read')]
  41. public function read(Request $request): Response
  42. {
  43. return $this->success($this->logic->readAccessible((int) $request->input('id', 0)));
  44. }
  45. #[Permission('导出商户', 'core:merchant:export')]
  46. public function export(Request $request): Response
  47. {
  48. $where = $request->more([
  49. ['scope', 'own'],
  50. ['agent_id', ''],
  51. ['name', ''],
  52. ['phone', ''],
  53. ['distributed', ''],
  54. ['status', ''],
  55. ['profit_method', ''],
  56. ['device_category', 'all'],
  57. ['agent_type', ''],
  58. ['sort', 'default'],
  59. ]);
  60. return $this->logic->export($where);
  61. }
  62. #[Permission('新增商户', 'core:merchant:save')]
  63. public function save(Request $request): Response
  64. {
  65. $data = $request->post();
  66. $this->validate('save', $data);
  67. $id = $this->logic->addMerchant($data);
  68. return $this->success(['id' => $id], '添加成功');
  69. }
  70. #[Permission('编辑商户', 'core:merchant:update')]
  71. public function update(Request $request): Response
  72. {
  73. $data = $request->post();
  74. $this->validate('update', $data);
  75. $this->logic->editMerchant((int) $data['id'], $data);
  76. return $this->success([], '保存成功');
  77. }
  78. #[Permission('删除商户', 'core:merchant:destroy')]
  79. public function destroy(Request $request): Response
  80. {
  81. $this->logic->destroyAccessible($request->input('ids', []));
  82. return $this->success([], '删除成功');
  83. }
  84. #[Permission('重置商户密码', 'core:merchant:password')]
  85. public function password(Request $request): Response
  86. {
  87. $data = $request->post();
  88. $this->validate('password', $data);
  89. $this->logic->resetPassword((int) $data['id'], (string) $data['password']);
  90. return $this->success([], '密码重置成功');
  91. }
  92. #[Permission('商户绑定设备列表', 'core:merchant:device:index')]
  93. public function devices(Request $request): Response
  94. {
  95. return $this->success($this->logic->boundDevices((int) $request->input('id', 0)));
  96. }
  97. #[Permission('商户绑定设备', 'core:merchant:device:bind')]
  98. public function bindDevice(Request $request): Response
  99. {
  100. $data = $request->post();
  101. $this->validate('deviceBind', $data);
  102. $result = $this->logic->bindDevices((int) $data['merchant_id'], $data['device_sns']);
  103. return $this->success($result, (string) $result['message']);
  104. }
  105. #[Permission('商户解绑设备', 'core:merchant:device:unbind')]
  106. public function unbindDevice(Request $request): Response
  107. {
  108. $data = $request->post();
  109. $this->validate('deviceUnbind', $data);
  110. $this->logic->unbindDevice((int) $data['merchant_id'], (int) $data['device_id']);
  111. return $this->success([], '设备解绑成功');
  112. }
  113. #[Permission('商户提现更新配置', 'core:merchant:withdrawalSetting:read')]
  114. public function withdrawalSetting(Request $request): Response
  115. {
  116. return $this->success(
  117. $this->logic->readWithdrawalSetting((int) $request->input('id', 0))
  118. );
  119. }
  120. #[Permission('保存商户提现更新配置', 'core:merchant:withdrawalSetting:update')]
  121. public function updateWithdrawalSetting(Request $request): Response
  122. {
  123. $data = $request->post();
  124. $this->validate('withdrawalSetting', $data);
  125. $this->logic->updateWithdrawalSetting(
  126. (int) $data['merchant_id'],
  127. (int) $data['update_mode'],
  128. (int) $data['update_day']
  129. );
  130. return $this->success([], '提现更新设置保存成功');
  131. }
  132. #[Permission('商户营业时间', 'core:merchant:update')]
  133. public function businessTime(Request $request): Response
  134. {
  135. return $this->success(
  136. $this->logic->readBusinessTime((int) $request->input('id', 0))
  137. );
  138. }
  139. #[Permission('保存商户营业时间', 'core:merchant:update')]
  140. public function updateBusinessTime(Request $request): Response
  141. {
  142. $data = $request->post();
  143. $this->validate('businessTime', $data);
  144. $this->logic->updateBusinessTime(
  145. (int) $data['merchant_id'],
  146. (string) $data['business_time_des']
  147. );
  148. return $this->success([], '营业时间保存成功');
  149. }
  150. #[Permission('商户数据统计', 'core:merchant:statistics')]
  151. public function statistics(Request $request): Response
  152. {
  153. return $this->success($this->logic->statistics(
  154. (int) $request->input('id', 0),
  155. (string) $request->input('start_date', ''),
  156. (string) $request->input('end_date', '')
  157. ));
  158. }
  159. #[Permission('导出商户数据统计', 'core:merchant:statistics:export')]
  160. public function statisticsExport(Request $request): Response
  161. {
  162. return $this->logic->statisticsExport(
  163. (int) $request->input('id', 0),
  164. (string) $request->input('start_date', ''),
  165. (string) $request->input('end_date', '')
  166. );
  167. }
  168. }