Kaynağa Gözat

获取消息接口增加文件发放的单独处理,防止消息点击后没有点击确认按钮导致消息已读

wy 4 ay önce
ebeveyn
işleme
0157b50a54

+ 5 - 1
ibps-comp-base-root/modules/comp-message-server-api/src/main/java/com/lc/ibps/message/server/api/IInnerMessageService.java

@@ -54,13 +54,17 @@ public interface IInnerMessageService {
 	 * 根据id获取消息
 	 *
 	 * @param newsId
+	 * @distribution 是否是文件
+	 * @confirm 是否确认
 	 * @return
 	 */
 	@RequestMapping(value = "/get", method = { RequestMethod.GET})
 	public APIResult<InnerMessagePo> get(
 			@NotBlank(message = "{com.lc.ibps.cloud.message.provider.InnerMessageProvider.innerMessageId}")
 			@RequestParam(name = "innerMessageId", required = true) String innerMessageId,
-			@RequestParam(name = "type", required = false) String type );
+			@RequestParam(name = "type", required = false) String type,
+			@RequestParam(name = "distribution", required = false) String distribution,
+			@RequestParam(name = "confirm", required = false) String confirm);
 
 	/**
 	 * 未读消息列表

+ 30 - 8
ibps-comp-root/modules/comp-message-server/src/main/java/com/lc/ibps/cloud/message/provider/InnerMessageProvider.java

@@ -155,21 +155,43 @@ public class InnerMessageProvider  extends GenericProvider implements IInnerMess
 	public APIResult<InnerMessagePo> get(
 			@ApiParam(name = "innerMessageId", value = "内部信息id", required = true)
 			@RequestParam(name = "innerMessageId", required = true) String innerMessageId,
-			@RequestParam(name = "type", required = false) String type ){
+			@RequestParam(name = "type", required = false) String type ,
+			@RequestParam(name = "distribution", required = false) String distribution,
+			@RequestParam(name = "confirm", required = false) String confirm){
 		logger.debug("com.lc.ibps.message.provider.InnerMessageProvider.get()--->innerMessageId={}", innerMessageId);
 		APIResult<InnerMessagePo> result = new APIResult<>();
+		String isFlg = "";
 		try {
-			InnerMessagePo innerMessage = innerMessageRepository.get(innerMessageId);
-			//  type  判断是否添加  接收人已读 表数据  为空则添加
-			if (StringUtil.isEmpty(type)){
-				InnerMessage domain = innerMessageRepository.newInstance(innerMessage);
-				domain.markRead(new String[] {innerMessageId},ContextUtil.getCurrentUser());
+			logger.debug("distribution = {}",distribution);
+			logger.debug("confirm = {}",confirm);
+			if(StringUtil.isNotEmpty(distribution)){
+				//当是文件发放并且是确认按钮的事件过来才进行消息的处理
+				if("1".equals(distribution) && "1".equals(confirm)){
+					isFlg = "1";
+				}
+			}else{
+				isFlg = "1";
+				//普通消息正常处理即可
 			}
-			result.setData(innerMessage);
-			result.setMessage("获取内部消息成功!");
+			logger.debug("isFlg = {}",isFlg);
+			if("1".equals(isFlg)){
+				InnerMessagePo innerMessage = innerMessageRepository.get(innerMessageId);
+				//  type  判断是否添加  接收人已读 表数据  为空则添加
+				if (StringUtil.isEmpty(type)){
+					InnerMessage domain = innerMessageRepository.newInstance(innerMessage);
+					domain.markRead(new String[] {innerMessageId},ContextUtil.getCurrentUser());
+				}
+				result.setData(innerMessage);
+				result.setMessage("获取内部消息成功!");
+			}else{
+				result.setData(new InnerMessagePo());
+				result.setMessage("文件发放确认的消息只有点击确认按钮才会标记为已读和确认");
+			}
+
 		} catch (Exception e) {
 			setExceptionResult(result, StateEnum.ERROR_INNER_MESSAGE.getCode(), StateEnum.ERROR_INNER_MESSAGE.getText(), e);
 		}
+		logger.debug("result = {}",result);
 		return result;
 	}