SysMsgController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. package cn.aiyangniu.api.controller.system;
  2. import cn.aiyangniu.api.common.entity.system.AuthEntity;
  3. import cn.aiyangniu.api.common.entity.system.SysMsgEntity;
  4. import cn.aiyangniu.api.common.entity.system.SysMsgVo;
  5. import cn.aiyangniu.api.service.system.SysMsgService;
  6. import cn.aiyangniu.api.common.util.AuthUtil;
  7. import cn.aiyangniu.api.common.util.CharacterFiltUtil;
  8. import com.alibaba.fastjson.JSONObject;
  9. import com.baomidou.mybatisplus.core.metadata.IPage;
  10. import io.swagger.annotations.Api;
  11. import io.swagger.annotations.ApiImplicitParam;
  12. import io.swagger.annotations.ApiImplicitParams;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.springframework.web.bind.annotation.RequestBody;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RequestMethod;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import javax.annotation.Resource;
  20. import javax.servlet.http.HttpServletRequest;
  21. import java.util.*;
  22. /**
  23. * SysMsgController 消息业务接口类
  24. *
  25. * @author Henry Hall
  26. * @since 2020-08-08
  27. */
  28. @Slf4j
  29. @RestController
  30. @Api(tags="消息通知接口")
  31. @RequestMapping("/sysMessage")
  32. public class SysMsgController {
  33. @Resource
  34. private SysMsgService msgService;
  35. @Resource
  36. private AuthUtil authUtil;
  37. /**
  38. * delMsgs 删除消息
  39. *
  40. * @param req 请求对象
  41. * @return 返回结果Json串
  42. */
  43. @ApiOperation(value = "删除消息信息")
  44. @RequestMapping(value="/delete", method= RequestMethod.POST)
  45. @ApiImplicitParam(name = "msgVo", value = "消息实体对象", paramType = "body", dataType="SysMsgVo", dataTypeClass = SysMsgVo.class, required = true)
  46. public Map<String, Object> delMsgs(@RequestBody SysMsgVo msgVo, HttpServletRequest req) {
  47. Map<String, Object> result = new HashMap<>();
  48. String retCode, retMsg, token;
  49. token = req.getHeader("Authorization");
  50. if(token == null || "null".equals(token)) {
  51. retCode = "1002";
  52. retMsg = "对不起,您的操作非法,请登录!";
  53. } else {
  54. AuthEntity auth = authUtil.getUserId(token);
  55. if(auth == null || !auth.isSuccess()) {
  56. retCode = "1002";
  57. retMsg = "对不起,您没有登录或会话超时,请重新登录!";
  58. } else {
  59. List<String> ids = msgVo.getMsgIds();
  60. int states = msgVo.getStatus();
  61. if(ids==null || ids.size()==0 || states<=0) {
  62. retCode = "100110080101";
  63. retMsg = "对不起,您提交的信息有为空的必填项,请检查!";
  64. } else {
  65. msgVo.setOptUser(auth.getUserId());
  66. msgVo.setMsgIds(ids);
  67. msgVo.setStatus(states);
  68. int r = msgService.proMsgs(msgVo);
  69. if(r != 0) {
  70. retCode = "1001";
  71. switch(states) {
  72. case 1:
  73. retMsg = "恭喜您,消息已读成功!";
  74. break;
  75. case 3:
  76. retMsg = "恭喜您,消息删除成功!";
  77. break;
  78. default:
  79. retMsg = "恭喜您,消息处理成功!";
  80. break;
  81. }
  82. } else {
  83. retCode = "100110080104";
  84. retMsg = "对不起,系统错误,请联系系统管理员!";
  85. }
  86. }
  87. }
  88. }
  89. result.put("code", retCode);
  90. result.put("msg", retMsg);
  91. return result;
  92. }
  93. /**
  94. * listMsgs 列表显示消息
  95. *
  96. * @param req 请求对象
  97. * @return 返回结果Json串
  98. */
  99. @ApiOperation(value = "获取消息分页列表")
  100. @RequestMapping(value="/page", method= RequestMethod.GET)
  101. @ApiImplicitParams({
  102. @ApiImplicitParam(name = "schName", value = "关键字", paramType = "query", dataType="string", dataTypeClass = String.class),
  103. @ApiImplicitParam(name = "kind", value = "种类", paramType = "query", dataType="string", dataTypeClass = String.class),
  104. @ApiImplicitParam(name = "states", value = "数据状态", paramType = "query", dataType="int", dataTypeClass = Integer.class),
  105. @ApiImplicitParam(name = "beginDate", value = "开始时间", paramType = "query", dataType="string", dataTypeClass = String.class),
  106. @ApiImplicitParam(name = "endDate", value = "结束时间", paramType = "query", dataType="string", dataTypeClass = String.class),
  107. @ApiImplicitParam(name = "offset", value = "开始数据", paramType = "query", dataType="int", dataTypeClass = Integer.class, required = true),
  108. @ApiImplicitParam(name = "limit", value = "每页数量", paramType = "query", dataType="int", dataTypeClass = Integer.class, required = true)
  109. })
  110. public Map<String, Object> listMsgs(String schName, String kind, Integer states, String begingDate, String endDate, Integer offset, Integer limit, HttpServletRequest req) {
  111. Map<String, Object> result = new HashMap<>();
  112. String retCode, retMsg, token;
  113. token = req.getHeader("Authorization");
  114. if(token == null || "null".equals(token)) {
  115. retCode = "1002";
  116. retMsg = "对不起,您的操作非法,请登录!";
  117. } else {
  118. boolean auth = authUtil.hasLogin(token);
  119. if(!auth) {
  120. retCode = "1002";
  121. retMsg = "对不起,您没有登录或会话超时,请重新登录!";
  122. } else {
  123. schName = CharacterFiltUtil.inputFilter(schName, true);
  124. kind = CharacterFiltUtil.inputFilter(kind, true);
  125. begingDate = CharacterFiltUtil.inputFilter(begingDate, true);
  126. endDate = CharacterFiltUtil.inputFilter(endDate, true);
  127. SysMsgVo msgVo = new SysMsgVo();
  128. msgVo.setTitle(schName);
  129. msgVo.setKind(kind);
  130. msgVo.setStatus(states);
  131. msgVo.setBeginDate(begingDate);
  132. msgVo.setEndDate(endDate);
  133. int pageNo = offset / limit + 1;
  134. IPage<SysMsgEntity> iPage = msgService.listMsgs(msgVo, pageNo, limit);
  135. if(iPage != null && iPage.getRecords() != null && iPage.getRecords().size() > 0) {
  136. result.put("data", iPage.getRecords());
  137. result.put("total", iPage.getTotal());
  138. retCode = "1001";
  139. retMsg = "查询成功。";
  140. } else {
  141. retCode = "100110080205";
  142. retMsg = "暂无内容";
  143. }
  144. }
  145. }
  146. result.put("code", retCode);
  147. result.put("msg", retMsg);
  148. return result;
  149. }
  150. /**
  151. * myMsgs 我的消息列表
  152. *
  153. * @param req 请求对象
  154. * @return 返回结果Json串
  155. */
  156. @ApiOperation(value = "获取我的消息分页列表")
  157. @RequestMapping(value="/myMsg", method= RequestMethod.GET)
  158. @ApiImplicitParams({
  159. @ApiImplicitParam(name = "schName", value = "关键字", paramType = "query", dataType="string", dataTypeClass = String.class),
  160. @ApiImplicitParam(name = "kind", value = "种类", paramType = "query", dataType="string", dataTypeClass = String.class),
  161. @ApiImplicitParam(name = "states", value = "数据状态", paramType = "query", dataType="int", dataTypeClass = Integer.class),
  162. @ApiImplicitParam(name = "beginDate", value = "开始时间", paramType = "query", dataType="string", dataTypeClass = String.class),
  163. @ApiImplicitParam(name = "endDate", value = "结束时间", paramType = "query", dataType="string", dataTypeClass = String.class),
  164. @ApiImplicitParam(name = "offset", value = "开始数据", paramType = "query", dataType="int", dataTypeClass = Integer.class, required = true),
  165. @ApiImplicitParam(name = "limit", value = "每页数量", paramType = "query", dataType="int", dataTypeClass = Integer.class, required = true)
  166. })
  167. public Map<String, Object> myMsgs(String schName, String kind, Integer states, String begingDate, String endDate, Integer offset, Integer limit, HttpServletRequest req) {
  168. Map<String, Object> result = new HashMap<>();
  169. String retCode, retMsg, token, userId;
  170. token = req.getHeader("Authorization");
  171. if(token == null || "null".equals(token)) {
  172. retCode = "1002";
  173. retMsg = "对不起,您的操作非法,请登录!";
  174. } else {
  175. JSONObject userSession = authUtil.getUserSession(token);
  176. if(userSession == null) {
  177. retCode = "1002";
  178. retMsg = "对不起,您没有登录或会话超时,请重新登录!";
  179. } else {
  180. userId = userSession.getString("userId");
  181. schName = CharacterFiltUtil.inputFilter(schName, true);
  182. kind = CharacterFiltUtil.inputFilter(kind, true);
  183. begingDate = CharacterFiltUtil.inputFilter(begingDate, true);
  184. endDate = CharacterFiltUtil.inputFilter(endDate, true);
  185. SysMsgVo msgVo = new SysMsgVo();
  186. msgVo.setUserId(userId);
  187. msgVo.setTitle(schName);
  188. msgVo.setKind(kind);
  189. msgVo.setStatus(states);
  190. msgVo.setBeginDate(begingDate);
  191. msgVo.setEndDate(endDate);
  192. int pageNo = offset / limit + 1;
  193. IPage<SysMsgEntity> iPage = msgService.myMsgs(msgVo, pageNo, limit);
  194. if(iPage != null && iPage.getRecords() != null && iPage.getRecords().size() > 0) {
  195. result.put("data", iPage.getRecords());
  196. result.put("total", iPage.getTotal());
  197. retCode = "1001";
  198. retMsg = "查询成功。";
  199. } else {
  200. retCode = "100110080305";
  201. retMsg = "暂无内容";
  202. }
  203. }
  204. }
  205. result.put("code", retCode);
  206. result.put("msg", retMsg);
  207. return result;
  208. }
  209. /**
  210. * getMsg 获取单一消息
  211. *
  212. * @param req 请求对象
  213. * @return 返回结果Json串
  214. */
  215. @ApiOperation(value = "获取消息详情信息")
  216. @RequestMapping(value="/getById", method= RequestMethod.GET)
  217. @ApiImplicitParam(name = "msgId", value = "消息编号", paramType = "query", dataType="string", dataTypeClass = String.class, required = true)
  218. public Map<String, Object> getMsg(String msgId, HttpServletRequest req) {
  219. Map<String, Object> result = new HashMap<>();
  220. String retCode, retMsg, token;
  221. SysMsgEntity msgEntity;
  222. token = req.getHeader("Authorization");
  223. if(token == null || "null".equals(token)) {
  224. retCode = "1002";
  225. retMsg = "对不起,您的操作非法,请登录!";
  226. } else {
  227. boolean auth = authUtil.hasLogin(token);
  228. if(!auth) {
  229. retCode = "1002";
  230. retMsg = "对不起,您没有登录或会话超时,请重新登录!";
  231. } else {
  232. msgId = CharacterFiltUtil.inputFilter(msgId, true);
  233. if("".equals(msgId) || msgId.length() != 36) {
  234. retCode = "100110080401";
  235. retMsg = "对不起,您请求的参数非法,请重试!";
  236. } else {
  237. msgEntity = msgService.getMsg(msgId);
  238. if(msgEntity != null) {
  239. result.put("data", msgEntity);
  240. retCode = "1001";
  241. retMsg = "查询成功。";
  242. } else {
  243. retCode = "100110080405";
  244. retMsg = "暂无内容";
  245. }
  246. }
  247. }
  248. }
  249. result.put("code", retCode);
  250. result.put("msg", retMsg);
  251. return result;
  252. }
  253. }