‘linchangsheng’ vor 5 Monaten
Ursprung
Commit
9458568a07

+ 28 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/notice/NoticeWebsitController.java

@@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 @Slf4j
 @RestController
@@ -123,4 +124,31 @@ public class NoticeWebsitController {
     }
 
 
+    @PostMapping("/list/count")
+    @ApiOperation(value = "未读已读消息数量")
+    public ResponseHelper<Integer> unreadCount(
+                                                 @ApiParam(value = "YES 已读  NO 未读", required = false) @RequestParam String readFlag,
+                                                 HttpServletRequest request) {
+        return ResponseHelper.success(noticeWebsitLogic.unreadCount(request,readFlag));
+    }
+
+
+    @PostMapping("/mark/read")
+    @ApiOperation(value = "标记消息已读")
+    public ResponseHelper markRead(
+            @ApiParam(value = "通知消息id数组", required = true) @RequestParam List<String> noticeWebsitIds
+    ) throws Exception {
+        noticeWebsitLogic.markRead(noticeWebsitIds);
+        return ResponseHelper.success();
+    }
+
+
+    @PostMapping("/mark/read/all")
+    @ApiOperation(value = "全部标记已读")
+    public ResponseHelper markReadAll(HttpServletRequest request) {
+        noticeWebsitLogic.markReadAll(request);
+        return ResponseHelper.success();
+    }
+
+
 }

+ 65 - 3
mall-server-api/src/main/java/com/gree/mall/manager/logic/notice/NoticeWebsitLogic.java

@@ -8,10 +8,9 @@ import com.gree.mall.manager.bean.notice.NoticeWebsitRecordVO;
 import com.gree.mall.manager.bean.notice.NoticeWebsitVO;
 import com.gree.mall.manager.bean.workorder.WebsitDispatchVO;
 import com.gree.mall.manager.commonmapper.NoticeRecordBeanMapper;
+import com.gree.mall.manager.enums.IsYesNoEnum;
 import com.gree.mall.manager.logic.common.CommonLogic;
-import com.gree.mall.manager.plus.entity.AdminWebsit;
-import com.gree.mall.manager.plus.entity.NoticeWebsit;
-import com.gree.mall.manager.plus.entity.NoticeWebsitRecord;
+import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.AdminWebsitService;
 import com.gree.mall.manager.plus.service.NoticeWebsitRecordService;
 import com.gree.mall.manager.plus.service.NoticeWebsitService;
@@ -20,8 +19,12 @@ import com.gree.mall.manager.zfire.util.FieldUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -134,4 +137,63 @@ public class NoticeWebsitLogic {
 
         return noticeWebsitRecordVOIPage;
     }
+
+    public Object unreadCount(HttpServletRequest request, String readFlag) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        Integer count = noticeWebsitRecordService.lambdaQuery()
+                .eq(NoticeWebsitRecord::getReadFlag, readFlag)
+                .in(!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()),NoticeWebsitRecord::getAdminWebsitId, adminUser.getAdminWebsitIds())
+                .count();
+
+        return count;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void markRead(List<String> noticeIds) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        noticeWebsitRecordService.lambdaUpdate()
+                .in(NoticeWebsitRecord::getNoticeWebsitId,noticeIds)
+                .in(!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()),NoticeWebsitRecord::getAdminWebsitId, adminUser.getAdminWebsitIds())
+                .set(NoticeWebsitRecord::getReadFlag, IsYesNoEnum.YES.getKey())
+                .set(NoticeWebsitRecord::getReadTime, new Date())
+                .update();
+
+        for (String id : noticeIds) {
+
+
+            NoticeWebsit one = noticeWebsitService.getById(id);
+            if (one != null){
+                one.setNum(one.getNum()+1);
+                one.updateById();
+            }
+        }
+
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void markReadAll(HttpServletRequest request) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        if (!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds())) {
+
+            List<NoticeWebsitRecord> list = noticeWebsitRecordService.lambdaQuery()
+                    .in(!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()), NoticeWebsitRecord::getAdminWebsitId, adminUser.getAdminWebsitIds())
+                    .list();
+            for (NoticeWebsitRecord websitRecord : list) {
+
+
+                NoticeWebsit one = noticeWebsitService.getById(websitRecord.getNoticeWebsitId());
+                if (one != null){
+                    one.setNum(one.getNum()+1);
+                    one.updateById();
+                }
+            }
+
+            noticeWebsitRecordService.lambdaUpdate()
+                    .in(!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()), NoticeWebsitRecord::getAdminWebsitId, adminUser.getAdminWebsitIds())
+                    .set(NoticeWebsitRecord::getReadFlag, IsYesNoEnum.YES.getKey())
+                    .set(NoticeWebsitRecord::getReadTime, new Date())
+                    .update();
+        }
+    }
 }