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 | 86 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 83 insertions(+), 3 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 5345e45..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,6 +42,10 @@ public class SysNoticeController extends BaseController { @Autowired private ISysNoticeService noticeService; + @Autowired + private SysNoticeUserService sysNoticeUserService; + @Autowired + private ISysUserService userService; /** * 鑾峰彇閫氱煡鍏憡鍒楄〃 @@ -40,6 +55,15 @@ 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); } @@ -49,7 +73,15 @@ // @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); } /** @@ -58,9 +90,30 @@ // @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(); } /** @@ -71,7 +124,24 @@ @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(); } /** @@ -83,4 +153,14 @@ 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