自定义按钮功能接口

消息优化
yun-zuoyi
yunhao.wang 6 years ago
parent 4dff4c6fc3
commit 82b8371747

@ -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);
}

@ -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<SysMessage> insertSysMessage(SysMessage sysMessage){
public ResultBean<SysMessage> 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<SysMessage> 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<SysMessage> getSysMessageById(@PathVariable("id") String idStr){
return baseGetSysMessageById(idStr);
}
/**
* CORE -
* @param messagePagerModel
* @return
*/
@PostMapping(value = "/operate/sys-message/query")
@ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序")
public ResultBean<SysMessage> 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<SysMessage> 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<SysMessage> 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<SysRefUserMessage> findUnreadUserMessage(){
try {
List<SysRefUserMessage> 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<SysMessage> 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<SysRefUserMessage> querySysRefUserMessageByPager(@RequestBody RefUserMessagePagerModel refUserMessagePagerModel){
return baseQuerySysRefUserMessageByPager(refUserMessagePagerModel);
}
/**
*
* @param idStr id
* @return
*/
@DeleteMapping(value = "/operate/user-message/delete/{id}")
@ApiOperation(value = "消息复杂查询,分页,排序",notes = "消息复杂查询,分页,排序")
public ResultBean<SysRefUserMessage> 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<SysMessage> 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<SysMessage> getSysMessageById(@PathVariable("id") String idStr){
/**
* - - id
* @param idStr
* @return
*/
private ResultBean<SysMessage> 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<SysMessage> querySysMessageByPager(@RequestBody MessagePagerModel messagePagerModel){
/**
* - -
* @param messagePagerModel
* @return
*/
private ResultBean<SysMessage> 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<SysMessage> 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<SysMessage> 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<SysRefUserMessage> findUnreadUserMessage(){
try {
List<SysRefUserMessage> 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<SysMessage> getUserMessageById(@PathVariable("id") String idStr){
/**
* - id
* @param idStr
* @return
*/
private ResultBean<SysMessage> 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<SysRefUserMessage> querySysRefUserMessageByPager(@RequestBody RefUserMessagePagerModel refUserMessagePagerModel){
public ResultBean<SysRefUserMessage> 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<SysRefUserMessage> deleteSysRefUserMessageById(@PathVariable("id") String idStr){
public ResultBean<SysRefUserMessage> 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);

@ -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();

@ -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 此处对邮件持久化,通过参数设置,是否还需要重复重新发送

@ -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<SysRefUserMessage> insertList = new ArrayList<>(userJsonObject.size());
List<SysRefUserMessage> insertList = new ArrayList<>(userJsonArray.size());
List<String> receiversId = new ArrayList();
List<String> 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) {

@ -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);
}

Loading…
Cancel
Save