From 5f1d1c462bbf49bc6a22b9e17b49733bcc1e0bc6 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期五, 20 六月 2025 19:01:13 +0800
Subject: [PATCH] zjh20250620

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java |   96 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 88 insertions(+), 8 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java
index cb2232a..4acc06a 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java
@@ -1,9 +1,20 @@
 package com.ltkj.web.controller.system;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ltkj.common.core.domain.entity.SysUser;
+import com.ltkj.common.core.domain.model.LoginUser;
+import com.ltkj.common.utils.SecurityUtils;
+import com.ltkj.hosp.domain.SysNoticeUser;
+import com.ltkj.hosp.service.SysNoticeUserService;
+import com.ltkj.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -31,56 +42,125 @@
 public class SysNoticeController extends BaseController {
     @Autowired
     private ISysNoticeService noticeService;
+    @Autowired
+    private SysNoticeUserService sysNoticeUserService;
+    @Autowired
+    private ISysUserService userService;
 
     /**
      * 鑾峰彇閫氱煡鍏憡鍒楄〃
      */
-    @PreAuthorize("@ss.hasPermi('system:notice:list')")
+//    @PreAuthorize("@ss.hasPermi('system:notice:list')")
     @GetMapping("/list")
     public TableDataInfo list(SysNotice notice) {
         startPage();
         List<SysNotice> list = noticeService.selectNoticeList(notice);
+        for (SysNotice sysNotice : list) {
+            LambdaQueryWrapper<SysNoticeUser> wq = new LambdaQueryWrapper<>();
+            wq.eq(SysNoticeUser::getNoticeId, sysNotice.getNoticeId());
+            List<SysNoticeUser> sysNoticeUsers = sysNoticeUserService.list(wq);
+            if(null != sysNoticeUsers && !sysNoticeUsers.isEmpty()){
+                List<String> longList = sysNoticeUsers.stream().map(i -> i.getUserId().toString()).collect(Collectors.toList());
+                sysNotice.setUserIds(longList);
+            }
+        }
         return getDataTable(list);
     }
 
     /**
      * 鏍规嵁閫氱煡鍏憡缂栧彿鑾峰彇璇︾粏淇℃伅
      */
-    @PreAuthorize("@ss.hasPermi('system:notice:query')")
+//    @PreAuthorize("@ss.hasPermi('system:notice:query')")
     @GetMapping(value = "/{noticeId}")
     public AjaxResult getInfo(@PathVariable Long noticeId) {
-        return success(noticeService.selectNoticeById(noticeId));
+        SysNotice byId = noticeService.getById(noticeId);
+        LambdaQueryWrapper<SysNoticeUser> wq = new LambdaQueryWrapper<>();
+        wq.eq(SysNoticeUser::getNoticeId, noticeId);
+        List<SysNoticeUser> sysNoticeUsers = sysNoticeUserService.list(wq);
+        if(null != sysNoticeUsers && !sysNoticeUsers.isEmpty()){
+            List<String> longList = sysNoticeUsers.stream().map(i -> i.getUserId().toString()).collect(Collectors.toList());
+            byId.setUserIds(longList);
+        }
+        return success(byId);
     }
 
     /**
      * 鏂板閫氱煡鍏憡
      */
-    @PreAuthorize("@ss.hasPermi('system:notice:add')")
+//    @PreAuthorize("@ss.hasPermi('system:notice:add')")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.INSERT)
     @PostMapping
+    @Transactional
     public AjaxResult add(@Validated @RequestBody SysNotice notice) {
         notice.setCreateBy(getUsername());
-        return toAjax(noticeService.insertNotice(notice));
+        notice.setNoticeId(IdUtil.getSnowflake().nextId());
+        boolean insertNotice = noticeService.save(notice);
+        if (insertNotice){
+            if (notice.getUserIds() == null || notice.getUserIds().isEmpty()){
+                if (StrUtil.isBlank(notice.getDeptId())){
+                    notice.setUserIds(userService.list().stream().map(i -> String.valueOf(i.getUserId())).collect(Collectors.toList()));
+                }else {
+                    LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
+                    wrapper.eq(SysUser::getDeptId, notice.getDeptId());
+                    notice.setUserIds(userService.list(wrapper).stream().map(i -> String.valueOf(i.getUserId())).collect(Collectors.toList()));
+                }
+            }
+            for (String userId : notice.getUserIds()) {
+                SysNoticeUser user = new SysNoticeUser();
+                user.setId(IdUtil.getSnowflake().nextId());
+                user.setNoticeId(notice.getNoticeId());
+                user.setUserId(Long.valueOf(userId));
+                sysNoticeUserService.save(user);
+            }
+        }else return AjaxResult.error();
+        return AjaxResult.success();
     }
 
     /**
      * 淇敼閫氱煡鍏憡
      */
-    @PreAuthorize("@ss.hasPermi('system:notice:edit')")
+//    @PreAuthorize("@ss.hasPermi('system:notice:edit')")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysNotice notice) {
         notice.setUpdateBy(getUsername());
-        return toAjax(noticeService.updateNotice(notice));
+        List<String> userIds = notice.getUserIds();
+        if (noticeService.updateById(notice)) {
+            if(null !=userIds && !userIds.isEmpty()){
+                LambdaQueryWrapper<SysNoticeUser> wq = new LambdaQueryWrapper<>();
+                wq.eq(SysNoticeUser::getNoticeId, notice.getNoticeId());
+                sysNoticeUserService.remove(wq);
+                for (String userId : userIds) {
+                    SysNoticeUser user = new SysNoticeUser();
+                    user.setId(IdUtil.getSnowflake().nextId());
+                    user.setNoticeId(notice.getNoticeId());
+                    user.setUserId(Long.valueOf(userId));
+                    sysNoticeUserService.save(user);
+                }
+            }
+            return AjaxResult.success();
+        }
+
+        return AjaxResult.error();
     }
 
     /**
      * 鍒犻櫎閫氱煡鍏憡
      */
-    @PreAuthorize("@ss.hasPermi('system:notice:remove')")
+//    @PreAuthorize("@ss.hasPermi('system:notice:remove')")
     @Log(title = "閫氱煡鍏憡", businessType = BusinessType.DELETE)
     @DeleteMapping("/{noticeIds}")
     public AjaxResult remove(@PathVariable Long[] noticeIds) {
         return toAjax(noticeService.deleteNoticeByIds(noticeIds));
     }
+
+    @GetMapping("/noticeToday")
+    public AjaxResult noticeToday(){
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        if (loginUser.getUserId().equalsIgnoreCase("1")){
+            return AjaxResult.success(noticeService.selectAllByAdmin());
+        }else {
+            return AjaxResult.success(noticeService.selectAll(loginUser.getUserId()));
+        }
+    }
 }

--
Gitblit v1.8.0