SysMessageController.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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 java.util.Map;
  6. import org.apache.commons.lang3.StringUtils;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.http.HttpStatus;
  9. import org.springframework.web.bind.annotation.GetMapping;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import com.ym.mec.auth.api.client.SysUserFeignService;
  14. import com.ym.mec.auth.api.entity.SysUser;
  15. import com.ym.mec.biz.dal.entity.SysMessage;
  16. import com.ym.mec.biz.dal.enums.MessageSendMode;
  17. import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
  18. import com.ym.mec.biz.service.SysMessageService;
  19. import com.ym.mec.common.controller.BaseController;
  20. import com.ym.mec.common.exception.BizException;
  21. import com.ym.mec.common.page.PageInfo;
  22. import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
  23. import com.ym.mec.util.validator.CommonValidator;
  24. @RestController
  25. @Api(tags = "消息服务")
  26. @RequestMapping("sysMessage")
  27. public class SysMessageController extends BaseController {
  28. @Autowired
  29. private SysMessageService sysMessageService;
  30. @Autowired
  31. private SysUserFeignService sysUserFeignService;
  32. @ApiOperation("获取所有消息列表")
  33. @GetMapping(value = "list")
  34. public Object list(SysMessageQueryInfo queryInfo) throws IOException {
  35. SysUser sysUser = sysUserFeignService.queryUserInfo();
  36. if (sysUser == null) {
  37. return failed(HttpStatus.FORBIDDEN, "请登录");
  38. }
  39. queryInfo.setUserId(sysUser.getId());
  40. queryInfo.setType(3);
  41. queryInfo.setStatus(2);
  42. return succeed(sysMessageService.queryPage(queryInfo));
  43. }
  44. @ApiOperation("一键已读")
  45. @PostMapping("batchSetRead")
  46. public Object batchSetRead() {
  47. int status = 1;
  48. SysUser sysUser = sysUserFeignService.queryUserInfo();
  49. if (sysUser == null) {
  50. return failed(HttpStatus.FORBIDDEN, "请登录");
  51. }
  52. return sysMessageService.updateStatus(sysUser.getId(), status) > 0 ? succeed() : failed();
  53. }
  54. @ApiOperation("设置已读")
  55. @PostMapping("setRead")
  56. public Object setRead(Long id) {
  57. int status = 1;
  58. SysUser sysUser = sysUserFeignService.queryUserInfo();
  59. if (sysUser == null) {
  60. return failed(HttpStatus.FORBIDDEN, "请登录");
  61. }
  62. return sysMessageService.updateOneStatus(id, status) > 0 ? succeed() : failed();
  63. }
  64. @ApiOperation(value = "查询用户未读消息条数")
  65. @GetMapping("/queryCountOfUnread")
  66. public Object queryCountOfUnread() {
  67. SysUser sysUser = sysUserFeignService.queryUserInfo();
  68. if (sysUser == null) {
  69. return failed("请重新登录");
  70. }
  71. Map<String, Integer> map = sysMessageService.queryCountOfUnread(MessageSendMode.PUSH, sysUser.getId());
  72. if (map == null || map.size() == 0) {
  73. return succeed();
  74. }
  75. return succeed(map);
  76. }
  77. @ApiOperation(value = "发送消息")
  78. @PostMapping("/sendMessage")
  79. public Object sendMessage(MessageSender messageSender, String content, String receiver, int readStatus, String url, String group) {
  80. SysUser sysUser = sysUserFeignService.queryUserInfo();
  81. if (sysUser == null) {
  82. return failed(HttpStatus.FORBIDDEN, "请登录");
  83. }
  84. Integer userId = sysUser.getId();
  85. String mobileNo = sysUser.getPhone();
  86. if (StringUtils.isBlank(mobileNo) || !CommonValidator.isMobileNo(mobileNo)) {
  87. throw new BizException("请输入正确的手机号");
  88. }
  89. sysMessageService.sendMessage(messageSender, userId, "", content, receiver, null, readStatus, url, group,null);
  90. return succeed();
  91. }
  92. }