UserServiceClient.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package com.webchat.rmi.user;
  2. import com.webchat.common.bean.APIPageResponseBean;
  3. import com.webchat.common.bean.APIResponseBean;
  4. import com.webchat.domain.vo.request.CreateAccountRequestVO;
  5. import com.webchat.domain.vo.request.CreateRobotRequestVO;
  6. import com.webchat.domain.vo.request.UserRegistryInfoRequestVO;
  7. import com.webchat.domain.vo.response.UserBaseResponseInfoVO;
  8. import com.webchat.domain.vo.response.UserBaseResponseVO;
  9. import org.springframework.cloud.openfeign.FeignClient;
  10. import org.springframework.web.bind.annotation.GetMapping;
  11. import org.springframework.web.bind.annotation.PathVariable;
  12. import org.springframework.web.bind.annotation.PostMapping;
  13. import org.springframework.web.bind.annotation.RequestBody;
  14. import org.springframework.web.bind.annotation.RequestParam;
  15. import java.util.List;
  16. import java.util.Map;
  17. import java.util.Set;
  18. /**
  19. * @Author 程序员七七
  20. * @webSite https://www.coderutil.com
  21. * @Date 2025/1/14 00:51
  22. * @description
  23. */
  24. @FeignClient(name = "webchat-user-service", contextId = "userServiceClient")
  25. public interface UserServiceClient {
  26. /**
  27. * 查询用户详情
  28. *
  29. * @param userId 用户ID
  30. * @return
  31. */
  32. @GetMapping("/user-service/user/info/{userId}")
  33. APIResponseBean<UserBaseResponseInfoVO> userInfo(@PathVariable String userId);
  34. /**
  35. * 获取群聊下所有用户id
  36. *
  37. * @param account
  38. * @return
  39. */
  40. @GetMapping("/user-service/subscriber/{relationType}/{account}")
  41. APIResponseBean<Set<String>> getAllSubscriberByAccount(@PathVariable Integer relationType, @PathVariable String account);
  42. /**
  43. * 获取群聊下所有用户id
  44. *
  45. * @param account
  46. * @return
  47. */
  48. @GetMapping("/user-service/isSubscribe/{relationType}/{userAccount}/{account}")
  49. APIResponseBean<Boolean> isSubscribe(@PathVariable Integer relationType, @PathVariable String userAccount, @PathVariable String account);
  50. /**
  51. * 根据手机号查询用户基础信息
  52. *
  53. * @param mobile
  54. * @return
  55. */
  56. @GetMapping("/user-service/user/mobile/info/{mobile}")
  57. APIResponseBean<UserBaseResponseVO> userBaseInfo(@PathVariable String mobile);
  58. /**
  59. * 新账号注册
  60. *
  61. * @param request
  62. * @return
  63. */
  64. @PostMapping("/user-service/user/register")
  65. APIResponseBean<Boolean> registry(@RequestBody UserRegistryInfoRequestVO request);
  66. /**
  67. * 账号列表查询
  68. *
  69. * @param roleCode
  70. * @param userName
  71. * @param mobile
  72. * @param pageNo
  73. * @param pageSize
  74. * @return
  75. */
  76. @GetMapping("/user-service/account/page")
  77. APIPageResponseBean<UserBaseResponseInfoVO> page(
  78. @RequestParam(value = "userId", required = false) String userId,
  79. @RequestParam(value = "roleCode") Integer roleCode,
  80. @RequestParam(value = "userName", required = false) String userName,
  81. @RequestParam(value = "mobile", required = false) String mobile,
  82. @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo,
  83. @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize);
  84. /**
  85. * 创建机器人
  86. *
  87. * @return
  88. */
  89. @PostMapping("/user-service/account/createRobot")
  90. APIResponseBean createRobot(@RequestBody CreateRobotRequestVO requestPram);
  91. /**
  92. * 创建公众号
  93. * 默认只有管理员可以创建公众号
  94. *
  95. * @return
  96. */
  97. @PostMapping("/user-service/account/createPublicAccount")
  98. APIResponseBean createPublicAccount(@RequestBody CreateAccountRequestVO requestPram);
  99. /**
  100. * 创建服务号
  101. * 默认只有管理员可以创建公众号
  102. *
  103. * @return
  104. */
  105. @PostMapping("/user-service/account/createServerAccount")
  106. APIResponseBean createServerAccount(@RequestBody CreateAccountRequestVO requestPram);
  107. /**
  108. * 批量查询用户详情
  109. * 底层走Redis
  110. *
  111. * @param userIds
  112. * @return
  113. */
  114. @PostMapping("/user-service/account/batchGet")
  115. APIResponseBean<Map<String, UserBaseResponseInfoVO>> batchGet(@RequestBody Set<String> userIds);
  116. /**
  117. * 批量查询用户详情缓存
  118. *
  119. * @param userIds
  120. * @return
  121. */
  122. @PostMapping("/user-service/account/batchGetList")
  123. APIResponseBean<List<UserBaseResponseInfoVO>> batchGet(@RequestBody List<String> userIds);
  124. /**
  125. * 账号搜索
  126. * 根据query参数对手机号/账号做完全匹配
  127. *
  128. * @param account
  129. * @return
  130. */
  131. @GetMapping("/user-service/account/query")
  132. APIResponseBean<UserBaseResponseInfoVO> queryAccount(@RequestParam String account);
  133. }