huangjn 3 년 전
부모
커밋
c103d91752

+ 22 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/MessageWarningVO.java

@@ -25,6 +25,7 @@ import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 视图实体类
@@ -43,6 +44,27 @@ public class MessageWarningVO extends MessageWarning {
 	@ApiModelProperty("结束时间")
 	private String endTime;
 
+	@ApiModelProperty("类型")
+	private String typeValue;
+
+	@ApiModelProperty("任务催办未读数量")
+	private Long typeOneNumber;
+
+	@ApiModelProperty("监测预警未读数量")
+	private Long typeTowNumber;
+
+	@ApiModelProperty("废除通知未读数量")
+	private Long typeThreeNumber;
+
+	@ApiModelProperty("工单反馈未读数量")
+	private Long typeFourNumber;
+
+	@ApiModelProperty("系统消息未读数量")
+	private Long typeFiveNumber;
+
+	@ApiModelProperty("用以批量标记已读,所勾选的列表数据ID")
+	private List<String> ids;
+
 	public MessageWarningVO(Long projectId, Long contractId, Integer type, String content, Long pushUser, Integer isRead){
 		this.setId(SnowFlakeUtil.getId());
 		this.setProjectId(projectId);

+ 19 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/wrapper/MessageWarningWrapper.java

@@ -0,0 +1,19 @@
+package org.springblade.business.wrapper;
+
+import org.springblade.business.entity.MessageWarning;
+import org.springblade.business.vo.MessageWarningVO;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+
+import java.util.Objects;
+
+public class MessageWarningWrapper extends BaseEntityWrapper<MessageWarning, MessageWarningVO> {
+
+    public static MessageWarningWrapper build(){return new MessageWarningWrapper();}
+
+    @Override
+    public MessageWarningVO entityVO(MessageWarning entity){
+        return Objects.requireNonNull(BeanUtil.copy(entity, MessageWarningVO.class));
+    }
+
+}

+ 91 - 4
blade-service/blade-business/src/main/java/org/springblade/business/controller/MessageWarningController.java

@@ -16,7 +16,9 @@
  */
 package org.springblade.business.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -26,6 +28,7 @@ import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.business.entity.MessageWarning;
 import org.springblade.business.vo.MessageWarningVO;
+import org.springblade.business.wrapper.MessageWarningWrapper;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
@@ -50,7 +53,7 @@ import java.util.List;
  */
 @RestController
 @AllArgsConstructor
-@RequestMapping("/OperationWarning")
+@RequestMapping("/messageWarning")
 @Api(value = "消息提醒", tags = "消息提醒接口")
 public class MessageWarningController extends BladeController {
 
@@ -58,6 +61,68 @@ public class MessageWarningController extends BladeController {
 
 	private final IDictBizClient dictBizClient;
 
+	/**
+	 * 标记已读
+	 */
+	@PostMapping("/setMessageWarningRead")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "标记已读")
+	public R<Boolean> setMessageWarningRead(MessageWarningVO vo){
+		if(vo.getIds() != null && vo.getIds().size() > 0){
+			try{
+				this.messageWarningService.update(Wrappers.<MessageWarning>lambdaUpdate().set(MessageWarning::getIsRead, 1).in(MessageWarning::getId, vo.getIds()));
+				return R.data(true);
+			}catch (Exception e){
+				e.printStackTrace();
+			}
+		}
+		return R.data(300, false, "标记失败");
+	}
+
+	/**
+	 * 获取当前用户的消息数量
+	 */
+	@GetMapping("/queryCurrentUserMessageCount")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "获取当前用户的消息数量")
+	public R<MessageWarningVO> queryCurrentUserMessageCount(){
+		MessageWarningVO vo = new MessageWarningVO();
+
+		for(int i = 1, l = 6; i < l; i ++){
+			LambdaQueryWrapper<MessageWarning> wrapper = Wrappers.lambdaQuery();
+			//当前用户
+			wrapper.eq(MessageWarning::getPushUser, AuthUtil.getUserId());
+			wrapper.eq(MessageWarning::getType, i);
+			wrapper.eq(MessageWarning::getIsRead, 0);
+
+			//获取数量
+			Long typeNumber = this.messageWarningService.count(wrapper);
+
+			switch (i){
+				case 1:
+					vo.setTypeOneNumber(typeNumber);
+					break;
+				case 2:
+					vo.setTypeTowNumber(typeNumber);
+					break;
+				case 3:
+					vo.setTypeThreeNumber(typeNumber);
+					break;
+				case 4:
+					vo.setTypeFourNumber(typeNumber);
+					break;
+				case 5:
+					vo.setTypeFiveNumber(typeNumber);
+					break;
+				default:
+						break;
+			}
+
+		}
+
+		return R.data(vo);
+	}
+
 	/**
 	 * 获取消息类型(左侧菜单)
 	 */
@@ -78,7 +143,11 @@ public class MessageWarningController extends BladeController {
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "分页", notes = "传入operationWarning")
-	public R<IPage<MessageWarning>> list(MessageWarningVO vo, Query query) {
+	public R<IPage<MessageWarningVO>> list(MessageWarningVO vo, Query query) {
+		//置空项目及合同段ID
+		vo.setProjectId(null);
+		vo.setContractId(null);
+
 		QueryWrapper<MessageWarning> wrapper = Condition.getQueryWrapper(vo);
 		//获取当前人的数据
 		wrapper.lambda().eq(MessageWarning::getPushUser, AuthUtil.getUserId().toString());
@@ -87,9 +156,27 @@ public class MessageWarningController extends BladeController {
 		}
 
 		//时间倒序,状态正序(已读在后,未读在前)
-		wrapper.lambda().orderByDesc(MessageWarning::getCreateTime).orderByAsc(MessageWarning::getStatus);
+		wrapper.lambda().orderByDesc(MessageWarning::getCreateTime).orderByAsc(MessageWarning::getIsRead);
+
+		IPage<MessageWarningVO> iPage = MessageWarningWrapper.build().pageVO(this.messageWarningService.page(Condition.getPage(query), wrapper));
+
+		if(iPage.getRecords() != null && iPage.getRecords().size() > 0){
+			//获取类型
+			List<DictBiz> dictBizs = this.dictBizClient.getList("business_message_type", "notRoot").getData();
+
+			iPage.getRecords().forEach(reVO -> {
+				if(dictBizs != null && dictBizs.size() > 0){
+					for(DictBiz biz : dictBizs){
+						if(biz.getDictKey().equals(reVO.getType().toString())){
+							reVO.setTypeValue(biz.getDictValue());
+							break;
+						}
+					}
+				}
+			});
+		}
 
-		return R.data(this.messageWarningService.page(Condition.getPage(query), wrapper));
+		return R.data(iPage);
 	}