From 82b8371747814d020e30ff977d21beae09c82ae4 Mon Sep 17 00:00:00 2001 From: "yunhao.wang" Date: Tue, 30 Apr 2019 19:41:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E5=8A=9F=E8=83=BD=E6=8E=A5=E5=8F=A3=20=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ISysMessageService.java | 4 +- .../controller/busi/SysMessageController.java | 466 ++++++++++++++------- .../apiservice/mq/MessageLetterQueueReceiver.java | 6 +- .../apiservice/mq/MessageMailQueueReceiver.java | 5 +- .../mq/MessageSWebNoticeQueueReceiver.java | 42 +- .../serviceimpl/busi/SysMessageService.java | 4 +- 6 files changed, 362 insertions(+), 165 deletions(-) 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); } From a6301d2d8c8609f44bd747f9c4501d697d1095ca Mon Sep 17 00:00:00 2001 From: alwaysfrin <39822157+alwaysfrin@users.noreply.github.com> Date: Tue, 30 Apr 2019 22:09:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E6=8C=81=E4=B9=85?= =?UTF-8?q?=E5=8C=96=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/api/iservice/busi/ITestTransService.java | 19 +++ .../controller/DemoTransactionController.java | 52 ++++++++ .../i3plus/core/apiservice/dao/ITestTransDao.java | 25 ++++ .../i3plus/core/apiservice/dao/ITransDaoSec.java | 26 ++++ .../core/apiservice/daoimpl/TestTransDaoImpl.java | 114 +++++++++++++++++ .../serviceimpl/busi/TestTransService.java | 137 +++++++++++++++++++++ .../core/apiservice/serviceimpl/busi/TestUser.java | 68 ++++++++++ 7 files changed, 441 insertions(+) create mode 100644 modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ITestTransService.java create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoTransactionController.java create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ITestTransDao.java create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ITransDaoSec.java create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/TestTransDaoImpl.java create mode 100644 modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestTransService.java diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ITestTransService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ITestTransService.java new file mode 100644 index 0000000..f27306b --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ITestTransService.java @@ -0,0 +1,19 @@ +package cn.estsh.i3plus.core.api.iservice.busi; + +import io.swagger.annotations.ApiOperation; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-04-29 17:16 + * @Modify: + **/ +public interface ITestTransService { + + @ApiOperation(value = "两类dao混用,测试entityManager") + void testListTran(int type,String name); + + @ApiOperation(value = "自定义dao混用") + void testListTranSec(int type,String name); +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoTransactionController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoTransactionController.java new file mode 100644 index 0000000..4303ffe --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/DemoTransactionController.java @@ -0,0 +1,52 @@ +package cn.estsh.i3plus.core.apiservice.controller; + +import cn.estsh.i3plus.core.api.iservice.busi.ITestTransService; +import cn.estsh.i3plus.platform.common.util.PlatformConstWords; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.impp.framework.base.controller.CoreBaseController; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient; +import cn.estsh.impp.framework.boot.fastdfs.FastDFSFile; +import cn.estsh.impp.framework.boot.util.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +/** + * @Description : 对事务以及entityManager的操作演示 + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-04-29 17:20 + * @Modify: + **/ +@RestController +@Api(description="对事务以及entityManager的操作演示") +@RequestMapping(PlatformConstWords.BASE_URL + "/demo-trans") +public class DemoTransactionController extends CoreBaseController{ + private static final Logger LOGGER = LoggerFactory.getLogger(DemoTransactionController.class); + + @Autowired + private ITestTransService transService; + + @PostMapping("/test1") + @ApiOperation(value = "dao混合调用") + public ResultBean transTest1(int type,String name) { + transService.testListTran(type,name); + + return ResultBean.success("测试成功"); + } + + @PostMapping("/test2") + @ApiOperation(value = "dao混合调用2") + public ResultBean transTest2(int type,String name) { + transService.testListTranSec(type,name); + + return ResultBean.success("测试成功"); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ITestTransDao.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ITestTransDao.java new file mode 100644 index 0000000..4247dee --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ITestTransDao.java @@ -0,0 +1,25 @@ +package cn.estsh.i3plus.core.apiservice.dao; + +import cn.estsh.i3plus.pojo.platform.bean.SysTool; +import cn.estsh.i3plus.pojo.platform.bean.SysUser; +import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-04-29 17:19 + * @Modify: + **/ +public interface ITestTransDao { + + List listUser(String name); + + SysUserInfo getUser(String name); + + SysTool getSysTool(String name); + + List listSysTool(String name); +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ITransDaoSec.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ITransDaoSec.java new file mode 100644 index 0000000..5d4643f --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/dao/ITransDaoSec.java @@ -0,0 +1,26 @@ +package cn.estsh.i3plus.core.apiservice.dao; + +import cn.estsh.i3plus.pojo.platform.bean.SysTool; +import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-04-29 17:20 + * @Modify: + **/ +@Repository +public interface ITransDaoSec extends CrudRepository { + + List findByName(String name); + + //按位查询 + @Query("select u from SysTool u where name = :uname") + List findSysToolByName(String uname); +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/TestTransDaoImpl.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/TestTransDaoImpl.java new file mode 100644 index 0000000..51a5bfd --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/daoimpl/TestTransDaoImpl.java @@ -0,0 +1,114 @@ +package cn.estsh.i3plus.core.apiservice.daoimpl; + +import cn.estsh.i3plus.core.apiservice.dao.ITestTransDao; +import cn.estsh.i3plus.pojo.platform.bean.SysTool; +import cn.estsh.i3plus.pojo.platform.bean.SysUser; +import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; +import javax.persistence.metamodel.EntityType; +import javax.persistence.metamodel.ManagedType; +import javax.persistence.metamodel.Metamodel; +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-04-29 17:31 + * @Modify: + **/ +@Service +public class TestTransDaoImpl implements ITestTransDao { + + @Autowired + private EntityManager entityManager; + + @Override + public List listUser(String name) { + System.out.println("======listUser====="); + Metamodel mm = entityManager.getMetamodel(); + for(EntityType s : mm.getEntities()){ + System.out.println("entityType : " + s.getName()); + } + for(ManagedType s : mm.getEntities()){ + System.out.println("ManagedType : " + s.getPersistenceType().name()); + } + + System.out.println(entityManager.getDelegate() + "====" + entityManager); + System.out.println("======listUser end====="); + + String hql = "select m from SysUserInfo m where m.name = :name"; + Query query = entityManager.createQuery(hql,SysUserInfo.class); + query.setParameter("name", name); + + return query.getResultList(); + } + + @Override + public SysUserInfo getUser(String name) { + System.out.println("======getUser====="); + Metamodel mm = entityManager.getMetamodel(); + for(EntityType s : mm.getEntities()){ + System.out.println("entityType : " + s.getName()); + } + for(ManagedType s : mm.getEntities()){ + System.out.println("ManagedType : " + s.getPersistenceType().name()); + } + + System.out.println(entityManager.getDelegate() + "====" + entityManager); + System.out.println("======getUser end====="); + + String hql = "select m from SysUserInfo m where m.name = :name"; + Query query = entityManager.createQuery(hql,SysUserInfo.class); + query.setParameter("name", name); + + return (SysUserInfo) query.getSingleResult(); + } + + @Override + public List listSysTool(String name) { + System.out.println("======listSysTool====="); + Metamodel mm = entityManager.getMetamodel(); + for(EntityType s : mm.getEntities()){ + System.out.println("entityType : " + s.getName()); + } + for(ManagedType s : mm.getEntities()){ + System.out.println("ManagedType : " + s.getPersistenceType().name()); + } + + System.out.println(entityManager.getDelegate() + "====" + entityManager); + System.out.println("======listSysTool end====="); + + String hql = "select m from SysTool m where m.name = :name"; + Query query = entityManager.createQuery(hql,SysTool.class); + query.setParameter("name", name); + + return query.getResultList(); + } + + @Override + public SysTool getSysTool(String name) { + System.out.println("======getSysTool====="); + Metamodel mm = entityManager.getMetamodel(); + for(EntityType s : mm.getEntities()){ + System.out.println("entityType : " + s.getName()); + } + for(ManagedType s : mm.getEntities()){ + System.out.println("ManagedType : " + s.getPersistenceType().name()); + } + + System.out.println(entityManager.getDelegate() + "====" + entityManager); + System.out.println("======getSysTool end====="); + + String hql = "select m from SysTool m where m.name = :name"; + Query query = entityManager.createQuery(hql,SysTool.class); + query.setParameter("name", name); + + return (SysTool) query.getSingleResult(); + } +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestTransService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestTransService.java new file mode 100644 index 0000000..b28f941 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestTransService.java @@ -0,0 +1,137 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; + +import cn.estsh.i3plus.core.api.iservice.busi.ITestTransService; +import cn.estsh.i3plus.core.apiservice.dao.ITestTransDao; +import cn.estsh.i3plus.core.apiservice.dao.ITransDaoSec; +import cn.estsh.i3plus.pojo.platform.bean.SysDepartment; +import cn.estsh.i3plus.pojo.platform.bean.SysTool; +import cn.estsh.i3plus.pojo.platform.bean.SysUser; +import cn.estsh.i3plus.pojo.platform.bean.SysUserInfo; +import cn.estsh.i3plus.pojo.platform.repository.SysDepartmentRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysUserInfoRepository; +import cn.estsh.i3plus.pojo.platform.repository.SysUserRepository; +import com.netflix.discovery.converters.Auto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description : + * @Reference : + * @Author : alwaysfrin + * @CreateDate : 2019-04-29 17:18 + * @Modify: + **/ +@Service +public class TestTransService implements ITestTransService { + + @Autowired + private SysDepartmentRepository sysDepartmentRDao; + + @Autowired + private SysUserInfoRepository sysUserInfoRDao; + + @Autowired + private SysUserRepository sysUerRDao; + + @Autowired + private ITestTransDao testTransDao; + + @Autowired + private ITransDaoSec testTransSecDao; + + @Override + public void testListTran(int type,String name) { + if(type == 1) { + List userList = testTransDao.listUser(name); + System.out.println("===userList===" + userList.size()); + + System.out.println("方式一:RDAO + dao"); + List depList = sysDepartmentRDao.findByProperty("name", name); + System.out.println("===depList===" + depList.size()); + }else if(type == 2) { + System.out.println("方式一2:RDAO + dao"); + List depList = sysDepartmentRDao.findByProperty("name", name); + System.out.println("===depList===" + depList.size()); + + List toolList = testTransSecDao.findByName(name); + System.out.println("===toolList===" + toolList.size()); + }else if(type == 3){ + System.out.println("方式三:RDAO + idao-query"); + List depList = sysDepartmentRDao.findByProperty("name",name); + System.out.println("===depList===" + depList.size()); + + List toolList = testTransSecDao.findByName(name); + System.out.println("===toolList===" + toolList.size()); + }else if(type == 4){ + System.out.println("方式四:dao + idao"); + List depList = sysDepartmentRDao.findByProperty("name",name); + System.out.println("===depList===" + depList.size()); + + List toolList = testTransSecDao.findByName(name); + System.out.println("===toolList===" + toolList.size()); + }else if(type == 5){ + System.out.println("方式五:dao + idao-query"); + List depList = sysDepartmentRDao.findByProperty("name",name); + System.out.println("===depList===" + depList.size()); + + List toolList = testTransSecDao.findByName(name); + System.out.println("===toolList===" + toolList.size()); + }else if(type == 6) { + System.out.println("方式六:主键重复"); + SysDepartment dep = sysDepartmentRDao.getByProperty("name", name); + System.out.println(dep.getId() + "===dep===" + dep); + + SysUserInfo userinfo = testTransDao.getUser(name); + System.out.println(userinfo.getId() + "===userList===" + userinfo); + }else if(type == 7) { + SysUserInfo userinfo = testTransDao.getUser(name); + System.out.println(userinfo.getId() + "===userList===" + userinfo); + + SysTool sysTool = testTransDao.getSysTool(name); + System.out.println(sysTool.getId() + "===sysTool===" + sysTool); + }else if(type == 8) { + SysUserInfo userinfo = testTransDao.getUser(name); + System.out.println(userinfo.getId() + "===userinfo===" + userinfo); + List userinfoList = testTransDao.listUser(name); + System.out.println("===userList===" + userinfoList); + + SysTool sysTool = testTransDao.getSysTool(name); + System.out.println(sysTool.getId() + "===sysTool===" + sysTool); + List sysToolList = testTransDao.listSysTool(name); + System.out.println("===sysToolList===" + sysToolList); + }else if(type == 9) { + SysUserInfo userinfo = sysUserInfoRDao.getByProperty("name",name); + System.out.println(userinfo.getId() + "===userinfo===" + userinfo); + + SysTool sysTool = testTransDao.getSysTool(name); + System.out.println(sysTool.getId() + "===sysTool===" + sysTool); + + SysDepartment sysDepartment = sysDepartmentRDao.getByProperty("name",name); + System.out.println(sysDepartment.getId() + "===sysDepartment===" + sysDepartment); + + SysUser user = sysUerRDao.getByProperty("userName",name); + System.out.println(user.getId() + "===userName===" + user); + + List userinfoList = testTransDao.listUser(name); + System.out.println("===userList===" + userinfoList); + List sysToolList = testTransDao.listSysTool(name); + System.out.println("===sysToolList===" + sysToolList); + } else if(type == 10) { + SysUserInfo userinfo = sysUserInfoRDao.getByProperty("name",name); + System.out.println(userinfo.getId() + "===userinfo===" + userinfo); + + SysDepartment sysDepartment = sysDepartmentRDao.getByProperty("name",name); + System.out.println(sysDepartment.getId() + "===sysDepartment===" + sysDepartment); + + SysUser user = sysUerRDao.getByProperty("userName",name); + System.out.println(user.getId() + "===userName===" + user); + } + } + + @Override + public void testListTranSec(int type,String name) { + + } +} diff --git a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestUser.java b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestUser.java index 3ddc7af..1af08dd 100644 --- a/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestUser.java +++ b/modules/i3plus-core-apiservice/src/test/java/test/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/TestUser.java @@ -56,6 +56,74 @@ public class TestUser extends TestBase{ String TEXT = "飓风黑兹尔是1954年大西洋飓风季期间造成死亡人数最多、经济损失最惨重的飓风。这场风暴夺走了海地多达1000人的生命,然后又以四级飓风强度从南、北卡罗莱纳州边境附近袭击美国,造成95人丧生。之后黑兹尔转变成温带风暴,但仍然致使81人遇难,其中大部分来自多伦多。由于风暴造成了重大人员伤亡和财产损失,其名称“黑兹尔”因此从大西洋风暴命名名单上退役。黑兹尔摧毁了海地40%的咖啡树和50%的可可作物,对当地经济的影响持续了数年之久。飓风在南、北卡罗莱纳州登陆,冲击点附近的大部分海滨住宅被毁。气旋从北卡罗莱纳州沿大西洋海岸北上,先后影响了弗吉尼亚州、西弗吉尼亚州、马里兰州、特拉华州、新泽西州、宾夕法尼亚州和纽约州,产生的阵风时速有近160公里,造成的经济损失高达3.08亿美元。多伦多市内及周边有许多溪流溢出,导致严重的洪涝灾害。加拿大遭受的损失达到1.35亿加拿大元。由于缺少应对热带气旋的经验,加上风暴强度的保持时间异常之长,多伦多所受影响的严重程度是前所未有的"; + @Autowired + private ITestTransService testTransService; + @Test + public void testTrans(){ + try { + testTransService.testListTran(1, "aaa"); + }catch(Exception e){ + System.out.println("111============事务出错:" + e.getMessage()); + e.printStackTrace(); + } + + try { + testTransService.testListTran(2, "aaa"); + }catch(Exception e){ + System.out.println("222============事务出错:" + e.getMessage()); + e.printStackTrace(); + } + + try { + testTransService.testListTran(3, "aaa"); + }catch(Exception e){ + System.out.println("333============事务出错:" + e.getMessage()); + e.printStackTrace(); + } + + try { + testTransService.testListTran(4, "aaa"); + }catch(Exception e){ + System.out.println("444============事务出错:" + e.getMessage()); + e.printStackTrace(); + } + + try { + testTransService.testListTran(5, "aaa"); + }catch(Exception e){ + System.out.println("555============事务出错:" + e.getMessage()); + e.printStackTrace(); + } + + try { + testTransService.testListTran(6, "aaa"); + }catch(Exception e){ + System.out.println("666============事务出错:" + e.getMessage()); + e.printStackTrace(); + } + + try { + testTransService.testListTran(7, "aaa"); + }catch(Exception e){ + System.out.println("777============事务出错:" + e.getMessage()); + e.printStackTrace(); + } + + try { + testTransService.testListTran(8, "aaa"); + }catch(Exception e){ + System.out.println("888============事务出错:" + e.getMessage()); + e.printStackTrace(); + } + + try { + testTransService.testListTran(9, "aaa"); + }catch(Exception e){ + System.out.println("999============事务出错:" + e.getMessage()); + e.printStackTrace(); + } + } + @Test public void testSysPosition() throws Exception{ List dataBase = new ArrayList<>();