diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMessageService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMessageService.java index f6b30d3..2270dff 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMessageService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysMessageService.java @@ -131,12 +131,12 @@ public interface ISysMessageService { * @param id */ @ApiOperation(value = "删除用户消息") - void deleteSysRefUserMessageStatusById(Long id); + void deleteSysRefUserMessageById(Long id); /** * 批量删除用户消息 * @param ids */ @ApiOperation(value = "批量删除用户消息") - void deleteSysRefUserMessageStatusByIds(Long[] ids); + void deleteSysRefUserMessageByIds(Long[] ids); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java index d178f02..0f442d7 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysMessageController.java @@ -5,7 +5,6 @@ import cn.estsh.i3plus.core.api.iservice.busi.ISysUserService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.StringTool; import cn.estsh.i3plus.platform.common.tool.TimeTool; -import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; @@ -13,11 +12,9 @@ import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.model.platform.MessagePagerModel; import cn.estsh.i3plus.pojo.model.platform.RefUserMessagePagerModel; -import cn.estsh.i3plus.pojo.platform.bean.SessionUser; import cn.estsh.i3plus.pojo.platform.bean.SysMessage; import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage; import cn.estsh.impp.framework.base.controller.CoreBaseController; -import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; @@ -43,7 +40,7 @@ import java.util.stream.Collectors; * @Modify : **/ @RestController -@RequestMapping(PlatformConstWords.BASE_URL) +@RequestMapping("/impp") @Api(description = "消息管理服务") public class SysMessageController extends CoreBaseController { public static final Logger LOGGER = LoggerFactory.getLogger(SysMessageController.class); @@ -54,9 +51,273 @@ public class SysMessageController extends CoreBaseController { @Autowired private ISysUserService sysUserService; - @PostMapping(value = "/sys-message/insert") + /*************************************************** 平台系统消息 **************************************************/ + + /** + * CORE - 新增消息 + * @param sysMessage + * @return + */ + @PostMapping(value = "/operate/sys-message/insert") @ApiOperation(value = "新增消息",notes = "新增消息") - public ResultBean insertSysMessage(SysMessage sysMessage){ + public ResultBean insertSysMessage(@RequestBody SysMessage sysMessage){ + sysMessage = sysMessage == null ? new SysMessage() : sysMessage; + sysMessage.setMessageSoftType(CommonEnumUtil.SOFT_TYPE.CORE.getValue()); + + return basaeInsertSysMessage(sysMessage); + } + + /** + * CORE - 删除消息 + * @param id + * @return + */ + @DeleteMapping("/operate/sys-message/delete/{id}") + @ApiOperation(value = "根据id删除消息",notes = "根据id删除消息") + public ResultBean deleteSysMessageById(@PathVariable("id") String id){ + return baseDeleteSysMessageById(id); + } + + /** + * CORE - 修改消息 + * @param sysMessage + * @return + */ + @PutMapping("/operate/sys-message/update") + @ApiOperation(value = "修改信息",notes = "修改信息") + public ResultBean updateSysMessage(SysMessage sysMessage){ + sysMessage = sysMessage == null ? new SysMessage() : sysMessage; + sysMessage.setMessageSoftType(CommonEnumUtil.SOFT_TYPE.CORE.getValue()); + return baseUpdateSysMessage(sysMessage); + } + + /** + * 查询所有消息 + * @return + */ + @GetMapping(value = "/operate/sys-message/list") + @ApiOperation(value = "查询全部消息",notes = "查询全部消息") + public ResultBean findSysMessageAll(){ + try { + List sysMessageList = sysMessageService.listSysMessage(); + return ResultBean.success("操作成功").setResultList(sysMessageList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * CORE - 根据id查询消息 + * @param idStr 消息id + * @return 处理结果 + */ + @GetMapping(value = "/operate/sys-message/get/{id}") + @ApiOperation(value = "根据id查询消息",notes = "根据id查询消息") + public ResultBean getSysMessageById(@PathVariable("id") String idStr){ + return baseGetSysMessageById(idStr); + } + + /** + * CORE - 分页带条件查询 + * @param messagePagerModel 分页以及条件信息 + * @return 处理结果 + */ + @PostMapping(value = "/operate/sys-message/query") + @ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序") + public ResultBean querySysMessageByPager(@RequestBody MessagePagerModel messagePagerModel){ + return baseQuerySysMessageByPager(messagePagerModel); + } + + /** + * CORE - 批量删除 + * @param ids ids数组 + * @return 处理结果 + */ + @DeleteMapping("/operate/sys-message/batch-delete") + @ApiOperation(value = "批量删除消息",notes = "批量删除消息") + public ResultBean deleteSysMessageByIds(String[] ids){ + return baseDeleteSysMessageByIds(ids); + } + + /*********************************************** 平台用户系统消息 *********************************************/ + + /** + * CORE - 收件箱查询 + * @param sysRefUserMessage 查询条件 + * @param pager 分页信息 + * @return 处理结果 + */ + @GetMapping(value = "/operate/user-message/query-inbox") + @ApiOperation(value = "查询用户收件箱,分页,排序") + public ResultBean queryInboxByPager(SysRefUserMessage sysRefUserMessage,Pager pager){ + try { + // 设置消息类型为站内信 + sysRefUserMessage.setMessageTypeRdd(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue()); + sysRefUserMessage.setReceiverId(getSessionUser().getUser().getId()); + + ListPager userMessageList = sysMessageService.querySysRefUserMessageByPager(sysRefUserMessage,pager); + return ResultBean.success("操作成功").setListPager(userMessageList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * CORE - 发件箱查询 + * @param sysMessage 查询条件 + * @param pager 分页信息 + * @return 处理结果 + */ + @GetMapping(value = "/operate/user-message/query-outbox") + @ApiOperation(value = "查询用户发件箱,分页,排序") + public ResultBean queryOutboxByPager(SysMessage sysMessage,Pager pager){ + try { + // 发件人为当前用户 + sysMessage.setMessageType(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue()); + sysMessage.setMessageSenderId(getSessionUser().getUser().getId()); + + ListPager sysMessageListPager = sysMessageService.querySysMessageByPager(sysMessage,pager); + return ResultBean.success("操作成功").setListPager(sysMessageListPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * CORE - 查询未读消息 + * @return + */ + @GetMapping(value = "/operate/user-message/find-unread") + @ApiOperation(value = "查看用户未读站内信") + public ResultBean findUnreadUserMessage(){ + try { + List userMessageList = sysMessageService.findSysRefUserMessageByUserIdAndStatus( + getSessionUser().getUser().getId(), ImppEnumUtil.MESSAGE_STATUS.UNREAD.getValue()); + return ResultBean.success("操作成功").setResultList(userMessageList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * CORE - 根据用户消息id查询消息 + * @param idStr + * @return 处理结果 + */ + @GetMapping(value = "/operate/user-message/get/{id}") + @ApiOperation(value = "根据用户消息id查询消息",notes = "根据用户消息id查询消息") + public ResultBean getUserMessageById(@PathVariable("id") String idStr){ + return baseGetUserMessageById(idStr); + } + + /** + * CORE - 批量切换消息状态 + * @param ids ids数组 + * @param status 状态 + * @return 处理结果 + */ + @PutMapping("/operate/user-message/batch-status") + @ApiOperation(value = "批量切换消息状态",notes = "批量切换消息状态") + public ResultBean updateSysMessageStatusByIds(String[] ids,Integer status){ + return baseUpdateSysMessageStatusByIds(ids, status); + } + + /** + * 根据id删除用户消息 + * @param idStr 用户表消息id + * @return 处理结果 + */ + @DeleteMapping(value = "/operate/user-message/delete-inbox/{id}") + @ApiOperation(value = "根据id删除用户消息") + public ResultBean deleteUserMessageById(@PathVariable("id") String idStr){ + try { + sysMessageService.deleteSysRefUserMessageById(Long.parseLong(idStr)); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @DeleteMapping(value = "/operate/user-message/batch-delete-inbox") + @ApiOperation(value = "根据id批量删除用户消息") + public ResultBean deleteUserMessageByIds(String[] idsStr){ + try { + sysMessageService.deleteSysRefUserMessageByIds(StringTool.getArrayLong(idsStr)); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PostMapping(value = "/operate/user-message/insert") + @ApiOperation(value = "用户新增消息",notes = "用户新增消息") + public ResultBean insertUserMessage(SysMessage sysMessage) { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + // 条件校验 + ValidatorBean.beginValid(sysMessage) + .notNull("messageTitle",sysMessage.getMessageTitle()) + .notNull("messageContent",sysMessage.getMessageContent()) + .notNull("messageReceiversId",sysMessage.getMessageReceiversId()); + + // 设置发件人名称 + sysMessage.setMessageType(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue()); + sysMessage.setMessageSenderId(getSessionUser().getUser().getId()); + sysMessage.setMessageSenderNameRdd(getSessionUser().getUserName()); + sysMessage.setMessageSendTime(sdf.format(new Date())); + sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue()); + sysMessage.setMessageReceiverType(ImppEnumUtil.MESSAGE_RECEIVER_TYPE.INTERNAL.getValue()); + + sysMessageService.doSendSysMessage(sysMessage); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + }catch(ImppBusiException busExcep){ + return ResultBean.fail(busExcep); + }catch(Exception e){ + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * 用户消息复杂查询,分页,排序 + * @param refUserMessagePagerModel 查询条件及分页信息 + * @return 处理结果 + */ + @PostMapping(value = "/operate/user-message/query") + @ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序") + public ResultBean querySysRefUserMessageByPager(@RequestBody RefUserMessagePagerModel refUserMessagePagerModel){ + return baseQuerySysRefUserMessageByPager(refUserMessagePagerModel); + } + + /** + * 用户消息删除 + * @param idStr 用户消息id + * @return 处理结果 + */ + @DeleteMapping(value = "/operate/user-message/delete/{id}") + @ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序") + public ResultBean deleteSysRefUserMessageById(@PathVariable("id") String idStr){ + return baseDeleteSysRefUserMessageById(idStr); + } + /*********************************************** 系统消息通用方法 ***********************************************/ + + /** + * 通用 - 系统消息- 新增 + * @param sysMessage 系统消息 + * @return 处理结果 + */ + private ResultBean basaeInsertSysMessage(SysMessage sysMessage){ try { // 条件校验 ValidatorBean.beginValid(sysMessage) @@ -98,9 +359,12 @@ public class SysMessageController extends CoreBaseController { } } - @DeleteMapping("/sys-message/delete/{id}") - @ApiOperation(value = "根据id删除消息",notes = "根据id删除消息") - public ResultBean deleteSysMessageById(@PathVariable("id") String id){ + /** + * 通用 - 系统消息- 根据id删除 + * @param id 系统消息 + * @return 处理结果 + */ + private ResultBean baseDeleteSysMessageById(String id){ try { // 条件校验 ValidatorBean.checkNotNull(id,"id不能为空"); @@ -114,9 +378,12 @@ public class SysMessageController extends CoreBaseController { } } - @PutMapping("/sys-message/update") - @ApiOperation(value = "修改信息",notes = "修改信息") - public ResultBean updateSysMessage(SysMessage sysMessage){ + /** + * 通用 - 系统消息- 修改 + * @param sysMessage 系统消息 + * @return 处理结果 + */ + private ResultBean baseUpdateSysMessage(SysMessage sysMessage){ try { // 条件校验 ValidatorBean.beginValid(sysMessage) @@ -133,22 +400,12 @@ public class SysMessageController extends CoreBaseController { } } - @GetMapping(value = "/sys-message/list") - @ApiOperation(value = "查询全部消息",notes = "查询全部消息") - public ResultBean findSysMessageAll(){ - try { - List sysMessageList = sysMessageService.listSysMessage(); - return ResultBean.success("操作成功").setResultList(sysMessageList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping(value = "/sys-message/get/{id}") - @ApiOperation(value = "根据id查询消息",notes = "根据id查询消息") - public ResultBean getSysMessageById(@PathVariable("id") String idStr){ + /** + * 通用 - 系统消息- 根据id查询 + * @param idStr + * @return + */ + private ResultBean baseGetSysMessageById(String idStr){ try { SysMessage sysMessage = sysMessageService.getSysMessageById(Long.parseLong(idStr)); if (sysMessage != null) { @@ -163,9 +420,12 @@ public class SysMessageController extends CoreBaseController { } } - @PostMapping(value = "/sys-message/query") - @ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序") - public ResultBean querySysMessageByPager(@RequestBody MessagePagerModel messagePagerModel){ + /** + * 通用 - 系统消息 - 分页带条件查询 + * @param messagePagerModel 分页及查询条件信息 + * @return 处理结果 + */ + private ResultBean baseQuerySysMessageByPager(@RequestBody MessagePagerModel messagePagerModel){ try { ListPager sysMessageListPager = sysMessageService.querySysMessageByPager(messagePagerModel.getSysMessage(), messagePagerModel.getPager()); @@ -177,9 +437,12 @@ public class SysMessageController extends CoreBaseController { } } - @DeleteMapping("/sys-message/batch-delete") - @ApiOperation(value = "批量删除消息",notes = "批量删除消息") - public ResultBean deleteSysMessageByIds(String[] ids){ + /** + * 通用 - 系统消息 - 批量删除消息 + * @param ids id数组 + * @return 处理结果 + */ + public ResultBean baseDeleteSysMessageByIds(String[] ids){ try{ // 条件判断 ids = ConvertBean.modelSafeArrayNumber(ids,true); @@ -199,57 +462,14 @@ public class SysMessageController extends CoreBaseController { } } - @GetMapping(value = "/user-message/query-inbox") - @ApiOperation(value = "查询用户收件箱,分页,排序") - public ResultBean queryInboxByPager(SysRefUserMessage sysRefUserMessage,Pager pager){ - try { - // 设置消息类型为站内信 - sysRefUserMessage.setMessageTypeRdd(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue()); - sysRefUserMessage.setReceiverId(getSessionUser().getUser().getId()); - - ListPager userMessageList = sysMessageService.querySysRefUserMessageByPager(sysRefUserMessage,pager); - return ResultBean.success("操作成功").setListPager(userMessageList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping(value = "/user-message/query-outbox") - @ApiOperation(value = "查询用户发件箱,分页,排序") - public ResultBean queryOutboxByPager(SysMessage sysMessage,Pager pager){ - try { - // 发件人为当前用户 - sysMessage.setMessageType(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue()); - sysMessage.setMessageSenderId(getSessionUser().getUser().getId()); - - ListPager sysMessageListPager = sysMessageService.querySysMessageByPager(sysMessage,pager); - return ResultBean.success("操作成功").setListPager(sysMessageListPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @GetMapping(value = "/user-message/find-unread") - @ApiOperation(value = "查看用户未读站内信") - public ResultBean findUnreadUserMessage(){ - try { - List userMessageList = sysMessageService.findSysRefUserMessageByUserIdAndStatus( - getSessionUser().getUser().getId(), ImppEnumUtil.MESSAGE_STATUS.UNREAD.getValue()); - return ResultBean.success("操作成功").setResultList(userMessageList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } + /*********************************************** 系统消息通用方法 ***********************************************/ - @GetMapping(value = "/user-message/get/{id}") - @ApiOperation(value = "根据id查询消息",notes = "根据id查询消息") - public ResultBean getUserMessageById(@PathVariable("id") String idStr){ + /** + * 通用 - 根据用户消息id查询消息 + * @param idStr + * @return + */ + private ResultBean baseGetUserMessageById(String idStr){ try { ValidatorBean.checkNotNull(idStr,"id"); @@ -266,9 +486,13 @@ public class SysMessageController extends CoreBaseController { } } - @PutMapping("/user-message/batch-status") - @ApiOperation(value = "批量切换消息状态",notes = "批量切换消息状态") - public ResultBean updateSysMessageStatusByIds(String[] ids,Integer status){ + /** + * 通用 - 批量切换用户消息状态 + * @param ids ids数组 + * @param status 状态 + * @return 处理结果 + */ + private ResultBean baseUpdateSysMessageStatusByIds(String[] ids,Integer status){ try{ // 条件判断 ValidatorBean.checkNotZero(status,"状态不能为空"); @@ -289,68 +513,12 @@ public class SysMessageController extends CoreBaseController { } } - @DeleteMapping(value = "/user-message/delete-inbox/{id}") - @ApiOperation(value = "根据id删除用户消息") - public ResultBean deleteUserMessageById(@PathVariable("id") String idStr){ - try { - sysMessageService.deleteSysRefUserMessageStatusById(Long.parseLong(idStr)); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @DeleteMapping(value = "/user-message/batch-delete-inbox") - @ApiOperation(value = "根据id批量删除用户消息") - public ResultBean deleteUserMessageByIds(String[] idsStr){ - try { - sysMessageService.deleteSysRefUserMessageStatusByIds(StringTool.getArrayLong(idsStr)); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - - @PostMapping(value = "/user-message/insert") - @ApiOperation(value = "用户新增消息",notes = "用户新增消息") - public ResultBean insertUserMessage(SysMessage sysMessage) { - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - // 条件校验 - ValidatorBean.beginValid(sysMessage) - .notNull("messageTitle",sysMessage.getMessageTitle()) - .notNull("messageContent",sysMessage.getMessageContent()) - .notNull("messageReceiversId",sysMessage.getMessageReceiversId()); - - // 设置发件人名称 - sysMessage.setMessageType(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue()); - sysMessage.setMessageSenderId(getSessionUser().getUser().getId()); - sysMessage.setMessageSenderNameRdd(getSessionUser().getUserName()); - sysMessage.setMessageSendTime(sdf.format(new Date())); - sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue()); - sysMessage.setMessageReceiverType(ImppEnumUtil.MESSAGE_RECEIVER_TYPE.INTERNAL.getValue()); - - sysMessageService.doSendSysMessage(sysMessage); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ - return ResultBean.fail(busExcep); - }catch(Exception e){ - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } - } - /** - * 用户消息复杂查询,分页,排序 + * 通用 - 分页带条件查询用户消息 * @param refUserMessagePagerModel 查询条件及分页信息 * @return 处理结果 */ - @PostMapping(value = "/user-message/query") - @ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序") - public ResultBean querySysRefUserMessageByPager(@RequestBody RefUserMessagePagerModel refUserMessagePagerModel){ + public ResultBean baseQuerySysRefUserMessageByPager(RefUserMessagePagerModel refUserMessagePagerModel){ try { ListPager sysMessageListPager = sysMessageService.querySysRefUserMessageByPager( refUserMessagePagerModel.getSysRefUserMessage(),refUserMessagePagerModel.getPager()); @@ -363,15 +531,13 @@ public class SysMessageController extends CoreBaseController { } /** - * 用户消息删除 + * 通用 - 按id删除用户消息 * @param idStr 用户消息id * @return 处理结果 */ - @DeleteMapping(value = "/user-message/delete/{id}") - @ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序") - public ResultBean deleteSysRefUserMessageById(@PathVariable("id") String idStr){ + public ResultBean baseDeleteSysRefUserMessageById(String idStr){ try { - sysMessageService.deleteSysRefUserMessageStatusById(Long.parseLong(idStr)); + sysMessageService.deleteSysRefUserMessageById(Long.parseLong(idStr)); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); }catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java index a19ee68..0c9e3bf 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java @@ -66,8 +66,8 @@ public class MessageLetterQueueReceiver { @RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE) public void processImppMessage(String data, Channel channel, Message message) { LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, data); + SysMessage msg = JsonUtilTool.decode(data, SysMessage.class); try { - SysMessage msg = JsonUtilTool.decode(data, SysMessage.class); msg = sysMessageService.insertSysMessage(msg); if (!StringUtils.isBlank(msg.getMessageReceiversId())) { @@ -114,9 +114,11 @@ public class MessageLetterQueueReceiver { channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); } catch (IOException e) { printErrorMessage(e, Exception.class, data); - try { // 未成功处理,重新发送 + if(msg.getId() != null) { + sysMessageService.deleteSysMessageById(msg.getId()); + } channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); } catch (IOException e1) { e1.printStackTrace(); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java index b611fc1..51d21bf 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java @@ -56,8 +56,8 @@ public class MessageMailQueueReceiver { */ @RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE) public void processImppMail(String data, Channel channel, Message message) { + SysMessage msg = JsonUtilTool.decode(data, SysMessage.class); try { - SysMessage msg = JsonUtilTool.decode(data, SysMessage.class); LOGGER.info("【MQ-IMPP_MESSAGE_MAIL_QUEUE】数据接收成功:{}", msg); if (msg.getMessageSendTime() == null) { msg.setMessageSendTime(TimeTool.getNowTime(true)); @@ -119,6 +119,9 @@ public class MessageMailQueueReceiver { LOGGER.error("【MQ-IMPP_MESSAGE_MAIL_QUEUE】处理出错:{}", e.getMessage(), e); //丢弃这条消息 try { + if(msg.getId() != null) { + sysMessageService.deleteSysMessageById(msg.getId()); + } // 未成功处理,重新发送 //channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true); //todo 此处对邮件持久化,通过参数设置,是否还需要重复重新发送 diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageSWebNoticeQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageSWebNoticeQueueReceiver.java index d31f3eb..1accadb 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageSWebNoticeQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageSWebNoticeQueueReceiver.java @@ -14,6 +14,8 @@ import cn.estsh.i3plus.pojo.platform.bean.SysFileAttach; import cn.estsh.i3plus.pojo.platform.bean.SysMessage; import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.rabbitmq.client.Channel; import org.apache.commons.lang3.StringUtils; @@ -60,9 +62,9 @@ public class MessageSWebNoticeQueueReceiver { @RabbitListener(queues = PlatformConstWords.SWEB_NOTICE_QUEUE) public void processImppMail(String data, Channel channel, Message message) { LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.SWEB_NOTICE_QUEUE, data); + // 添加消息 + SysMessage msg = JsonUtilTool.decode(data, SysMessage.class); try { - // 添加消息 - SysMessage msg = JsonUtilTool.decode(data, SysMessage.class); msg = sysMessageService.insertSysMessage(msg); // 添加附件信息 @@ -85,36 +87,60 @@ public class MessageSWebNoticeQueueReceiver { // 添加消息明细信息 if (StringUtils.isNotBlank(msg.getMessageReceiversId())) { // 获取供应商信息 由string转换为json对象 - JSONObject userJsonObject = JSON.parseObject(msg.getMessageReceiversId()); + JSONArray userJsonArray = new JSONArray(); + try { + userJsonArray = JSON.parseArray(msg.getMessageReceiversId()); + }catch (JSONException e){ + LOGGER.error(" JSON转换错误【{0}】:{1}", msg.getMessageReceiversId(), e.getMessage()); + } + JSONObject userJsonObject; - List insertList = new ArrayList<>(userJsonObject.size()); + List insertList = new ArrayList<>(userJsonArray.size()); + List receiversId = new ArrayList(); + List receiversName = new ArrayList(); SysRefUserMessage refUserMessage; - for (String user : userJsonObject.keySet()) { + for (Object user : userJsonArray) { + // 约定格式:[{'id':'111','name':'张三'},{'id':'121','name':'张三2'}] + userJsonObject = ( JSONObject )user; + receiversId.add(userJsonObject.get("id").toString()); + receiversName.add(userJsonObject.get("name").toString()); + refUserMessage = new SysRefUserMessage(); refUserMessage.setMessageId(msg.getId()); refUserMessage.setMessageSoftType(msg.getMessageSoftType()); refUserMessage.setMessageTitleRdd(msg.getMessageTitle()); refUserMessage.setMessageTypeRdd(msg.getMessageType()); refUserMessage.setMessageSenderNameRdd(msg.getMessageSenderNameRdd()); - refUserMessage.setReceiverId(Long.parseLong(user)); - refUserMessage.setReceiverNameRdd(userJsonObject.get(user).toString()); + refUserMessage.setReceiverId(Long.parseLong(userJsonObject.get("id").toString())); + refUserMessage.setReceiverNameRdd(userJsonObject.get("name").toString()); refUserMessage.setMessageStatus(ImppEnumUtil.MESSAGE_STATUS.UNREAD.getValue()); refUserMessage.setReceiverTime(TimeTool.getNowTime(true)); refUserMessage.setIsUrgent(msg.getIsUrgent()); + // 初始数据 + ConvertBean.serviceModelInitialize(refUserMessage, msg.getCreateUser()); insertList.add(refUserMessage); } sysMessageService.insertSysRefUserMessage(insertList); + + // 设置收件人名称及id + msg.setMessageReceiversId(StringUtils.join(receiversId,",")); + msg.setMessageReceiversNameRdd(StringUtils.join(receiversName,",")); + sysMessageService.updateSysMessage(msg); } // 消息处理完成 LOGGER.info("【MQ-{}】站内信{} DeliveryTag:{} 处理成功", PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, msg, message.getMessageProperties().getDeliveryTag()); channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); - } catch (IOException e) { + } catch (Exception e) { + e.printStackTrace(); try { + if(msg.getId() != null) { + sysMessageService.deleteSysMessageById(msg.getId()); + } // 未成功处理,重新发送 channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true); } catch (IOException e1) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java index 9b58ce1..98801cb 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysMessageService.java @@ -245,13 +245,13 @@ public class SysMessageService implements ISysMessageService { @Override @ApiOperation(value = "删除用户消息") - public void deleteSysRefUserMessageStatusById(Long id) { + public void deleteSysRefUserMessageById(Long id) { sysRefUserMessageRDao.deleteById(id); } @Override @ApiOperation(value = "批量删除用户消息") - public void deleteSysRefUserMessageStatusByIds(Long[] ids) { + public void deleteSysRefUserMessageByIds(Long[] ids) { sysRefUserMessageRDao.deleteByIds(ids); } diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties index ff46352..8d0e0bf 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-dev.properties @@ -7,7 +7,7 @@ impp.console.ip=http://192.168.1.56:8010 #服务注册中心(多注册中心逗号分隔) impp.cluster.regist.center=http://192.168.1.56:8000/eureka/ #日志默认使用log4j2 -logging.config=classpath:log4j2-spring-prod.xml +logging.config=classpath:log4j2-spring-dev.xml ########平台相关参数########## #是否开启redis缓存 @@ -106,7 +106,6 @@ impp.schedule.thread-count=10 impp.schedule.thread-priority=5 - ################################ 其他功能设置 ################################ #redisIP redis.hostName=192.168.1.55 diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties b/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties index 4b19f06..d3a73bc 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-prod.properties @@ -1,11 +1,11 @@ #本机ip -impp.server.ip=192.168.1.56 +impp.server.ip=192.168.1.241 #项目端口 -server.port=1100 +server.port=18100 #链路追踪zipkin控制台ip地址 -impp.console.ip=http://192.168.1.56:8010 +impp.console.ip=http://192.168.1.241:18010 #服务注册中心(多注册中心逗号分隔) -impp.cluster.regist.center=http://192.168.1.56:8000/eureka/ +impp.cluster.regist.center=http://192.168.1.241:18000/eureka/ #日志默认使用log4j2 logging.config=classpath:log4j2-spring-prod.xml @@ -44,11 +44,11 @@ impp.mq.queue.sweb.notice=true spring.datasource.validationQuery=SELECT 1 ################ 数据池设置 ################ -spring.datasource.maximum-pool-size=300 -spring.datasource.max-active=200 -spring.datasource.max-idle=150 -spring.datasource.min-idle=50 -spring.datasource.initial-size=30 +spring.datasource.maximum-pool-size=200 +spring.datasource.max-active=100 +spring.datasource.max-idle=100 +spring.datasource.min-idle=30 +spring.datasource.initial-size=20 spring.datasource.max-wait=10000 spring.datasource.validation-query=SELECT 1 spring.datasource.test-on-borrow=false @@ -58,20 +58,20 @@ spring.datasource.time-between-eviction-runs-millis=18800 ##主数据源,读写 #impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.write.datasource.username=impp_i3_core_user impp.write.datasource.password=impp_i3_core_pwd ##辅数据源,只读 #impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.read.datasource.username=impp_i3_core_user impp.read.datasource.password=impp_i3_core_pwd ################ 日志数据源 ################ spring.data.mongodb.database=mongoDBSource -spring.data.mongodb.uri=192.168.1.55:27017 +spring.data.mongodb.uri=192.168.1.240:27017 spring.data.mongodb.username=sa spring.data.mongodb.password=i3plus spring.data.mongodb.port=27017 @@ -90,7 +90,7 @@ spring.jpa.properties.hibernate.hbm2ddl.auto=update ##############定时任务持久化############## impp.schedule.open=true impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.schedule.datasource.username=impp_i3_schedule_user impp.schedule.datasource.password=impp_i3_schedule_pwd impp.schedule.datasource.max-connections=20 @@ -109,7 +109,7 @@ impp.schedule.thread-priority=5 ################################ 其他功能设置 ################################ #redisIP -redis.hostName=192.168.1.55 +redis.hostName=192.168.1.240 #端口号 redis.port=16376 #如果有密码 @@ -117,14 +117,13 @@ redis.password= ##其他redis配置需要调整的加在此处 ################## rabbitMQ配置 #################### spring.rabbitmq.vhost=/ -spring.rabbitmq.host=192.168.1.55 +spring.rabbitmq.host=192.168.1.240 spring.rabbitmq.port=5672 spring.rabbitmq.username=estsh spring.rabbitmq.password=estsh123 ##其他rabbitMq配置需要调整的加在此处 - ################ 微服配置 ################ #是否进行健康检查 eureka.client.healthcheck.enabled=true diff --git a/modules/i3plus-core-apiservice/src/main/resources/application-test.properties b/modules/i3plus-core-apiservice/src/main/resources/application-test.properties index 888c366..7541ff4 100644 --- a/modules/i3plus-core-apiservice/src/main/resources/application-test.properties +++ b/modules/i3plus-core-apiservice/src/main/resources/application-test.properties @@ -1,13 +1,13 @@ #本机ip -impp.server.ip=192.168.1.56 +impp.server.ip=192.168.1.241 #项目端口 server.port=58100 #链路追踪zipkin控制台ip地址 -impp.console.ip=http://192.168.1.56:8010 +impp.console.ip=http://192.168.1.241:8010 #服务注册中心(多注册中心逗号分隔) -impp.cluster.regist.center=http://192.168.1.56:8000/eureka/ +impp.cluster.regist.center=http://192.168.1.241:8000/eureka/ #日志默认使用log4j2 -logging.config=classpath:log4j2-spring-prod.xml +logging.config=classpath:log4j2-spring-test.xml ########平台相关参数########## #是否开启redis缓存 @@ -58,20 +58,20 @@ spring.datasource.time-between-eviction-runs-millis=18800 ##主数据源,读写 #impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.write.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.write.datasource.username=impp_i3_core_user impp.write.datasource.password=impp_i3_core_pwd ##辅数据源,只读 #impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.read.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_core?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.read.datasource.username=impp_i3_core_user impp.read.datasource.password=impp_i3_core_pwd ################ 日志数据源 ################ spring.data.mongodb.database=mongoDBSource -spring.data.mongodb.uri=192.168.1.55:27017 +spring.data.mongodb.uri=192.168.1.240:27017 spring.data.mongodb.username=sa spring.data.mongodb.password=i3plus spring.data.mongodb.port=27017 @@ -90,7 +90,7 @@ spring.jpa.properties.hibernate.hbm2ddl.auto=update ##############定时任务持久化############## impp.schedule.open=true impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver -impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 +impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.240:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.schedule.datasource.username=impp_i3_schedule_user impp.schedule.datasource.password=impp_i3_schedule_pwd impp.schedule.datasource.max-connections=20 @@ -109,7 +109,7 @@ impp.schedule.thread-priority=5 ################################ 其他功能设置 ################################ #redisIP -redis.hostName=192.168.1.55 +redis.hostName=192.168.1.240 #端口号 redis.port=16376 #如果有密码 @@ -117,7 +117,7 @@ redis.password= ##其他redis配置需要调整的加在此处 ################## rabbitMQ配置 #################### spring.rabbitmq.vhost=/ -spring.rabbitmq.host=192.168.1.55 +spring.rabbitmq.host=192.168.1.240 spring.rabbitmq.port=5672 spring.rabbitmq.username=estsh spring.rabbitmq.password=estsh123