package cn.aiyangniu.api.controller.system; import cn.aiyangniu.api.common.entity.system.AuthEntity; import cn.aiyangniu.api.common.entity.system.SysMsgEntity; import cn.aiyangniu.api.common.entity.system.SysMsgVo; import cn.aiyangniu.api.service.system.SysMsgService; import cn.aiyangniu.api.common.util.AuthUtil; import cn.aiyangniu.api.common.util.CharacterFiltUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.*; /** * SysMsgController 消息业务接口类 * * @author Henry Hall * @since 2020-08-08 */ @Slf4j @RestController @Api(tags="消息通知接口") @RequestMapping("/sysMessage") public class SysMsgController { @Resource private SysMsgService msgService; @Resource private AuthUtil authUtil; /** * delMsgs 删除消息 * * @param req 请求对象 * @return 返回结果Json串 */ @ApiOperation(value = "删除消息信息") @RequestMapping(value="/delete", method= RequestMethod.POST) @ApiImplicitParam(name = "msgVo", value = "消息实体对象", paramType = "body", dataType="SysMsgVo", dataTypeClass = SysMsgVo.class, required = true) public Map delMsgs(@RequestBody SysMsgVo msgVo, HttpServletRequest req) { Map result = new HashMap<>(); String retCode, retMsg, token; token = req.getHeader("Authorization"); if(token == null || "null".equals(token)) { retCode = "1002"; retMsg = "对不起,您的操作非法,请登录!"; } else { AuthEntity auth = authUtil.getUserId(token); if(auth == null || !auth.isSuccess()) { retCode = "1002"; retMsg = "对不起,您没有登录或会话超时,请重新登录!"; } else { List ids = msgVo.getMsgIds(); int states = msgVo.getStatus(); if(ids==null || ids.size()==0 || states<=0) { retCode = "100110080101"; retMsg = "对不起,您提交的信息有为空的必填项,请检查!"; } else { msgVo.setOptUser(auth.getUserId()); msgVo.setMsgIds(ids); msgVo.setStatus(states); int r = msgService.proMsgs(msgVo); if(r != 0) { retCode = "1001"; switch(states) { case 1: retMsg = "恭喜您,消息已读成功!"; break; case 3: retMsg = "恭喜您,消息删除成功!"; break; default: retMsg = "恭喜您,消息处理成功!"; break; } } else { retCode = "100110080104"; retMsg = "对不起,系统错误,请联系系统管理员!"; } } } } result.put("code", retCode); result.put("msg", retMsg); return result; } /** * listMsgs 列表显示消息 * * @param req 请求对象 * @return 返回结果Json串 */ @ApiOperation(value = "获取消息分页列表") @RequestMapping(value="/page", method= RequestMethod.GET) @ApiImplicitParams({ @ApiImplicitParam(name = "schName", value = "关键字", paramType = "query", dataType="string", dataTypeClass = String.class), @ApiImplicitParam(name = "kind", value = "种类", paramType = "query", dataType="string", dataTypeClass = String.class), @ApiImplicitParam(name = "states", value = "数据状态", paramType = "query", dataType="int", dataTypeClass = Integer.class), @ApiImplicitParam(name = "beginDate", value = "开始时间", paramType = "query", dataType="string", dataTypeClass = String.class), @ApiImplicitParam(name = "endDate", value = "结束时间", paramType = "query", dataType="string", dataTypeClass = String.class), @ApiImplicitParam(name = "offset", value = "开始数据", paramType = "query", dataType="int", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "limit", value = "每页数量", paramType = "query", dataType="int", dataTypeClass = Integer.class, required = true) }) public Map listMsgs(String schName, String kind, Integer states, String begingDate, String endDate, Integer offset, Integer limit, HttpServletRequest req) { Map result = new HashMap<>(); String retCode, retMsg, token; token = req.getHeader("Authorization"); if(token == null || "null".equals(token)) { retCode = "1002"; retMsg = "对不起,您的操作非法,请登录!"; } else { boolean auth = authUtil.hasLogin(token); if(!auth) { retCode = "1002"; retMsg = "对不起,您没有登录或会话超时,请重新登录!"; } else { schName = CharacterFiltUtil.inputFilter(schName, true); kind = CharacterFiltUtil.inputFilter(kind, true); begingDate = CharacterFiltUtil.inputFilter(begingDate, true); endDate = CharacterFiltUtil.inputFilter(endDate, true); SysMsgVo msgVo = new SysMsgVo(); msgVo.setTitle(schName); msgVo.setKind(kind); msgVo.setStatus(states); msgVo.setBeginDate(begingDate); msgVo.setEndDate(endDate); int pageNo = offset / limit + 1; IPage iPage = msgService.listMsgs(msgVo, pageNo, limit); if(iPage != null && iPage.getRecords() != null && iPage.getRecords().size() > 0) { result.put("data", iPage.getRecords()); result.put("total", iPage.getTotal()); retCode = "1001"; retMsg = "查询成功。"; } else { retCode = "100110080205"; retMsg = "暂无内容"; } } } result.put("code", retCode); result.put("msg", retMsg); return result; } /** * myMsgs 我的消息列表 * * @param req 请求对象 * @return 返回结果Json串 */ @ApiOperation(value = "获取我的消息分页列表") @RequestMapping(value="/myMsg", method= RequestMethod.GET) @ApiImplicitParams({ @ApiImplicitParam(name = "schName", value = "关键字", paramType = "query", dataType="string", dataTypeClass = String.class), @ApiImplicitParam(name = "kind", value = "种类", paramType = "query", dataType="string", dataTypeClass = String.class), @ApiImplicitParam(name = "states", value = "数据状态", paramType = "query", dataType="int", dataTypeClass = Integer.class), @ApiImplicitParam(name = "beginDate", value = "开始时间", paramType = "query", dataType="string", dataTypeClass = String.class), @ApiImplicitParam(name = "endDate", value = "结束时间", paramType = "query", dataType="string", dataTypeClass = String.class), @ApiImplicitParam(name = "offset", value = "开始数据", paramType = "query", dataType="int", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "limit", value = "每页数量", paramType = "query", dataType="int", dataTypeClass = Integer.class, required = true) }) public Map myMsgs(String schName, String kind, Integer states, String begingDate, String endDate, Integer offset, Integer limit, HttpServletRequest req) { Map result = new HashMap<>(); String retCode, retMsg, token, userId; token = req.getHeader("Authorization"); if(token == null || "null".equals(token)) { retCode = "1002"; retMsg = "对不起,您的操作非法,请登录!"; } else { JSONObject userSession = authUtil.getUserSession(token); if(userSession == null) { retCode = "1002"; retMsg = "对不起,您没有登录或会话超时,请重新登录!"; } else { userId = userSession.getString("userId"); schName = CharacterFiltUtil.inputFilter(schName, true); kind = CharacterFiltUtil.inputFilter(kind, true); begingDate = CharacterFiltUtil.inputFilter(begingDate, true); endDate = CharacterFiltUtil.inputFilter(endDate, true); SysMsgVo msgVo = new SysMsgVo(); msgVo.setUserId(userId); msgVo.setTitle(schName); msgVo.setKind(kind); msgVo.setStatus(states); msgVo.setBeginDate(begingDate); msgVo.setEndDate(endDate); int pageNo = offset / limit + 1; IPage iPage = msgService.myMsgs(msgVo, pageNo, limit); if(iPage != null && iPage.getRecords() != null && iPage.getRecords().size() > 0) { result.put("data", iPage.getRecords()); result.put("total", iPage.getTotal()); retCode = "1001"; retMsg = "查询成功。"; } else { retCode = "100110080305"; retMsg = "暂无内容"; } } } result.put("code", retCode); result.put("msg", retMsg); return result; } /** * getMsg 获取单一消息 * * @param req 请求对象 * @return 返回结果Json串 */ @ApiOperation(value = "获取消息详情信息") @RequestMapping(value="/getById", method= RequestMethod.GET) @ApiImplicitParam(name = "msgId", value = "消息编号", paramType = "query", dataType="string", dataTypeClass = String.class, required = true) public Map getMsg(String msgId, HttpServletRequest req) { Map result = new HashMap<>(); String retCode, retMsg, token; SysMsgEntity msgEntity; token = req.getHeader("Authorization"); if(token == null || "null".equals(token)) { retCode = "1002"; retMsg = "对不起,您的操作非法,请登录!"; } else { boolean auth = authUtil.hasLogin(token); if(!auth) { retCode = "1002"; retMsg = "对不起,您没有登录或会话超时,请重新登录!"; } else { msgId = CharacterFiltUtil.inputFilter(msgId, true); if("".equals(msgId) || msgId.length() != 36) { retCode = "100110080401"; retMsg = "对不起,您请求的参数非法,请重试!"; } else { msgEntity = msgService.getMsg(msgId); if(msgEntity != null) { result.put("data", msgEntity); retCode = "1001"; retMsg = "查询成功。"; } else { retCode = "100110080405"; retMsg = "暂无内容"; } } } } result.put("code", retCode); result.put("msg", retMsg); return result; } }