SysMessageController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package com.ym.mec.teacher.controller;
  2. import io.swagger.annotations.Api;
  3. import io.swagger.annotations.ApiOperation;
  4. import java.io.IOException;
  5. import org.apache.commons.lang3.StringUtils;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.http.HttpStatus;
  8. import org.springframework.web.bind.annotation.GetMapping;
  9. import org.springframework.web.bind.annotation.PostMapping;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RestController;
  12. import com.ym.mec.auth.api.client.SysUserFeignService;
  13. import com.ym.mec.auth.api.entity.SysUser;
  14. import com.ym.mec.biz.dal.entity.SysMessage;
  15. import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
  16. import com.ym.mec.biz.service.SysMessageService;
  17. import com.ym.mec.common.controller.BaseController;
  18. import com.ym.mec.common.exception.BizException;
  19. import com.ym.mec.common.page.PageInfo;
  20. import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
  21. import com.ym.mec.util.validator.CommonValidator;
  22. @RestController
  23. @Api(tags = "消息服务")
  24. @RequestMapping("sysMessage")
  25. public class SysMessageController extends BaseController {
  26. @Autowired
  27. private SysMessageService sysMessageService;
  28. @Autowired
  29. private SysUserFeignService sysUserFeignService;
  30. @ApiOperation("获取所有消息列表")
  31. @GetMapping(value = "list")
  32. public Object list(SysMessageQueryInfo queryInfo) throws IOException {
  33. SysUser sysUser = sysUserFeignService.queryUserInfo();
  34. if (sysUser == null) {
  35. return failed(HttpStatus.FORBIDDEN, "请登录");
  36. }
  37. queryInfo.setUserId(sysUser.getId());
  38. queryInfo.setType(3);
  39. PageInfo<SysMessage> pageInfo = sysMessageService.queryPage(queryInfo);
  40. return succeed(pageInfo);
  41. }
  42. @ApiOperation("一键已读")
  43. @PostMapping("batchSetRead")
  44. public Object batchSetRead() {
  45. int status = 1;
  46. SysUser sysUser = sysUserFeignService.queryUserInfo();
  47. if (sysUser == null) {
  48. return failed(HttpStatus.FORBIDDEN, "请登录");
  49. }
  50. return sysMessageService.updateStatus(sysUser.getId(), status) > 0 ? succeed() : failed();
  51. }
  52. @ApiOperation("设置已读")
  53. @PostMapping("setRead")
  54. public Object setRead(Long id) {
  55. int status = 1;
  56. SysUser sysUser = sysUserFeignService.queryUserInfo();
  57. if (sysUser == null) {
  58. return failed(HttpStatus.FORBIDDEN, "请登录");
  59. }
  60. return sysMessageService.updateOneStatus(id, status) > 0 ? succeed() : failed();
  61. }
  62. @ApiOperation(value = "查询用户未读消息条数")
  63. @GetMapping("/queryCountOfUnread")
  64. public Object queryCountOfUnread() {
  65. SysUser sysUser = sysUserFeignService.queryUserInfo();
  66. if (sysUser == null) {
  67. return failed("请重新登录");
  68. }
  69. return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
  70. }
  71. /*
  72. @ApiOperation(value = "发送短信验证码")
  73. @PostMapping("/sendSmsCode")
  74. public Object sendSmsCode(String sendCodeType, String mobileNo) {
  75. SysUser sysUser;
  76. if (StringUtils.isBlank(mobileNo)) {
  77. sysUser = sysUserFeignService.queryUserInfo();
  78. } else {
  79. sysUser = sysUserFeignService.queryUserByMobile(mobileNo);
  80. }
  81. if (sysUser == null) {
  82. return failed(HttpStatus.FORBIDDEN, "请登录");
  83. }
  84. Integer userId = sysUser.getId();
  85. mobileNo = sysUser.getPhone();
  86. MessageType messageType = MessageType.getMessageType(sendCodeType);
  87. if (messageType == null) {
  88. throw new BizException("消息类型参数错误");
  89. }
  90. if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
  91. throw new BizException("请输入正确的手机号");
  92. }
  93. sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
  94. return succeed();
  95. }
  96. @ApiOperation(value = "发送短信验证码")
  97. @PostMapping("/noAuth/sendSmsCode")
  98. public Object noAuthSendSmsCode(String sendCodeType, String mobileNo) {
  99. MessageType messageType = MessageType.getMessageType(sendCodeType);
  100. if (messageType == null) {
  101. throw new BizException("消息类型参数错误");
  102. }
  103. if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
  104. throw new BizException("请输入正确的手机号");
  105. }
  106. // sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
  107. return succeed();
  108. }*/
  109. @ApiOperation(value = "发送消息")
  110. @PostMapping("/sendMessage")
  111. public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url) {
  112. SysUser sysUser = sysUserFeignService.queryUserInfo();
  113. if (sysUser == null) {
  114. return failed(HttpStatus.FORBIDDEN, "请登录");
  115. }
  116. Integer userId = sysUser.getId();
  117. String mobileNo = sysUser.getPhone();
  118. if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
  119. throw new BizException("请输入正确的手机号");
  120. }
  121. sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url);
  122. return succeed();
  123. }
  124. }