MerchantSubaccountController.java 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.ruoyi.app.user;
  2. import com.ruoyi.app.user.dto.MerchantSubaccountCreateRequest;
  3. import com.ruoyi.app.user.dto.MerchantSubaccountPasswordRequest;
  4. import com.ruoyi.app.user.dto.MerchantSubaccountStatusRequest;
  5. import com.ruoyi.app.user.dto.MerchantSubaccountUpdateRequest;
  6. import com.ruoyi.common.annotation.Anonymous;
  7. import com.ruoyi.common.core.controller.BaseController;
  8. import com.ruoyi.common.core.domain.AjaxResult;
  9. import com.ruoyi.system.utils.Auth;
  10. import com.ruoyi.system.utils.AuthContext;
  11. import org.springframework.web.bind.annotation.GetMapping;
  12. import org.springframework.web.bind.annotation.PathVariable;
  13. import org.springframework.web.bind.annotation.PostMapping;
  14. import org.springframework.web.bind.annotation.PutMapping;
  15. import org.springframework.web.bind.annotation.RequestBody;
  16. import org.springframework.web.bind.annotation.RequestHeader;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestParam;
  19. import org.springframework.web.bind.annotation.RestController;
  20. @RestController
  21. @RequestMapping("/merchant/subaccounts")
  22. public class MerchantSubaccountController extends BaseController {
  23. private final MerchantSubaccountApplicationService applicationService;
  24. public MerchantSubaccountController(MerchantSubaccountApplicationService applicationService) {
  25. this.applicationService = applicationService;
  26. }
  27. @Anonymous
  28. @Auth
  29. @GetMapping
  30. public AjaxResult list(@RequestHeader String token) {
  31. return success(applicationService.listForOwner(AuthContext.requireUserId()));
  32. }
  33. /**
  34. * 按门店查询可联系账号(商家主账号 + 启用的分管账号),供用户端/骑手端 App 发起 IM 会话/通话。
  35. * 与本控制器其它接口不同:只要求有效登录 token,不要求商家身份。
  36. */
  37. @Anonymous
  38. @Auth
  39. @GetMapping("/byStore")
  40. public AjaxResult listByStore(@RequestHeader String token, @RequestParam Long storeId) {
  41. return success(applicationService.listStoreAccounts(storeId));
  42. }
  43. @Anonymous
  44. @Auth
  45. @PostMapping
  46. public AjaxResult create(@RequestHeader String token,
  47. @RequestBody MerchantSubaccountCreateRequest request) {
  48. return success(applicationService.create(AuthContext.requireUserId(), request));
  49. }
  50. @Anonymous
  51. @Auth
  52. @PutMapping("/{subaccountUserId}")
  53. public AjaxResult update(@RequestHeader String token,
  54. @PathVariable Long subaccountUserId,
  55. @RequestBody MerchantSubaccountUpdateRequest request) {
  56. return success(applicationService.update(AuthContext.requireUserId(),
  57. subaccountUserId, request));
  58. }
  59. @Anonymous
  60. @Auth
  61. @PutMapping("/{subaccountUserId}/password")
  62. public AjaxResult updatePassword(@RequestHeader String token,
  63. @PathVariable Long subaccountUserId,
  64. @RequestBody MerchantSubaccountPasswordRequest request) {
  65. applicationService.updatePassword(AuthContext.requireUserId(),
  66. subaccountUserId, request);
  67. return success();
  68. }
  69. @Anonymous
  70. @Auth
  71. @PutMapping("/{subaccountUserId}/status")
  72. public AjaxResult updateStatus(@RequestHeader String token,
  73. @PathVariable Long subaccountUserId,
  74. @RequestBody MerchantSubaccountStatusRequest request) {
  75. applicationService.updateOwnerStatus(AuthContext.requireUserId(),
  76. subaccountUserId, request);
  77. return success();
  78. }
  79. }