diff --git a/muyu-auth/src/main/resources/bootstrap.yml b/muyu-auth/src/main/resources/bootstrap.yml index 6606e26..a834d6c 100644 --- a/muyu-auth/src/main/resources/bootstrap.yml +++ b/muyu-auth/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 43.142.149.172:8848 + namespace: test config: # 配置中心地址 server-addr: 43.142.149.172:8848 + namespace: test # 配置文件格式 file-extension: yml # 共享配置 diff --git a/muyu-gateway/src/main/resources/bootstrap.yml b/muyu-gateway/src/main/resources/bootstrap.yml index 644ed76..708aa5f 100644 --- a/muyu-gateway/src/main/resources/bootstrap.yml +++ b/muyu-gateway/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 43.142.149.172:8848 + namespace: test config: # 配置中心地址 server-addr: 43.142.149.172:8848 + namespace: test # 配置文件格式 file-extension: yml # 共享配置 @@ -34,6 +36,7 @@ spring: ds1: nacos: server-addr: 43.142.149.172:8848 + namespace: test dataId: sentinel-muyu-gateway groupId: DEFAULT_GROUP data-type: json diff --git a/muyu-modules/muyu-file/src/main/resources/bootstrap.yml b/muyu-modules/muyu-file/src/main/resources/bootstrap.yml index cd0b3b3..1b99530 100644 --- a/muyu-modules/muyu-file/src/main/resources/bootstrap.yml +++ b/muyu-modules/muyu-file/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 43.142.149.172:8848 + namespace: test config: # 配置中心地址 server-addr: 43.142.149.172:8848 + namespace: test # 配置文件格式 file-extension: yml # 共享配置 diff --git a/muyu-modules/muyu-gen/src/main/resources/bootstrap.yml b/muyu-modules/muyu-gen/src/main/resources/bootstrap.yml index 0e76a40..7a7fc94 100644 --- a/muyu-modules/muyu-gen/src/main/resources/bootstrap.yml +++ b/muyu-modules/muyu-gen/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 43.142.149.172:8848 + namespace: test config: # 配置中心地址 server-addr: 43.142.149.172:8848 + namespace: test # 配置文件格式 file-extension: yml # 共享配置 diff --git a/muyu-modules/muyu-job/src/main/resources/bootstrap.yml b/muyu-modules/muyu-job/src/main/resources/bootstrap.yml index 8345d8b..0c17cb0 100644 --- a/muyu-modules/muyu-job/src/main/resources/bootstrap.yml +++ b/muyu-modules/muyu-job/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 43.142.149.172:8848 + namespace: test config: # 配置中心地址 server-addr: 43.142.149.172:8848 + namespace: test # 配置文件格式 file-extension: yml # 共享配置 diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysNoticeController.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysNoticeController.java index 9706350..1284d24 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysNoticeController.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysNoticeController.java @@ -8,6 +8,9 @@ import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.system.domain.SysNotice; +import com.muyu.system.domain.model.NoticListModel; +import com.muyu.system.domain.model.SysNoticeModel; +import com.muyu.system.domain.resp.NoticDetailReadNumResp; import com.muyu.system.service.SysNoticeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -26,6 +29,39 @@ public class SysNoticeController extends BaseController { @Autowired private SysNoticeService noticeService; + + /** + * 获取公告列表 + */ + + @GetMapping("/noticList") + public Result> noticList () { + List list = noticeService.noticList(); + return Result.success(list); + } + + /** + * 阅读公告 + */ + + @GetMapping("/readNotic") + public Result readNotic (@RequestParam Long noticeId) { + noticeService.readNotic(noticeId); + return Result.success(); + } + + + /** + * 获取公告详情列表 + */ + + @GetMapping("/noticListDetail") + public Result> noticListDetail () { + List list = noticeService.noticListDetail(); + return Result.success(list); + } + + /** * 获取通知公告列表 */ @@ -52,9 +88,8 @@ public class SysNoticeController extends BaseController { @RequiresPermissions("system:notice:add") @Log(title = "通知公告", businessType = BusinessType.INSERT) @PostMapping - public Result add (@Validated @RequestBody SysNotice notice) { - notice.setCreateBy(SecurityUtils.getUsername()); - return toAjax(noticeService.insertNotice(notice)); + public Result add (@Validated @RequestBody SysNoticeModel sysNoticeModel) { + return toAjax(noticeService.insertNotice(sysNoticeModel)); } /** diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/model/NoticListModel.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/model/NoticListModel.java new file mode 100644 index 0000000..bcdc36c --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/model/NoticListModel.java @@ -0,0 +1,69 @@ +package com.muyu.system.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 公告列表 + * + * @author WangLei + * @Date 2024/4/13 013 9:35 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class NoticListModel { + + /** + * 用户id + */ + private Long userId; + /** + * 公告ID + */ + private Long noticeId; + + /** + * 公告标题 + */ + private String noticeTitle; + + /** + * 公告类型(1通知 2公告) + */ + private String noticeType; + + /** + * 公告内容 + */ + private String noticeContent; + + /** + * 发布人 + */ + private String createBy; + + /** + * 发布时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 当前状态 + */ + private String flag; + + + + + +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/model/SysNoticeModel.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/model/SysNoticeModel.java new file mode 100644 index 0000000..35d0cd5 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/model/SysNoticeModel.java @@ -0,0 +1,72 @@ +package com.muyu.system.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.models.auth.In; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +/** + * 公告添加模型 + * + * @author WangLei + * @Date 2024/4/13 013 9:33 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class SysNoticeModel { + + /** + * 公告id + */ + private Long noticeId; + + /** + * 公告标题 + */ + private String noticeTitle; + + /** + * 公告类型(1通知 2公告) + */ + private String noticeType; + + /** + * 公告内容 + */ + private String noticeContent; + + /** + * 公告状态(0正常 1关闭) + */ + private String status; + + /** + * 公告开始时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + /** + * 公告结束时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + /** + * 要通知的用户 + */ + private String userNames; + + /** + * 创建人 + */ + private String createBy; +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/NoticDetailReadNumResp.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/NoticDetailReadNumResp.java new file mode 100644 index 0000000..56ba902 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/NoticDetailReadNumResp.java @@ -0,0 +1,34 @@ +package com.muyu.system.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 公告阅读数量详情响应 + * + * @author WangLei + * @Date 2024/4/14 014 10:18 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class NoticDetailReadNumResp { + /** + * 公告id + */ + private Long noticeId; + + /** + * 已阅读数 + */ + private Long readNum; + + /** + * 总数 + */ + private Long totalNum; + +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysNoticeMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysNoticeMapper.java index fee9930..919f6b2 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysNoticeMapper.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysNoticeMapper.java @@ -1,8 +1,17 @@ package com.muyu.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.common.system.domain.SysDept; +import com.muyu.common.system.domain.SysUser; import com.muyu.system.domain.SysNotice; +import com.muyu.system.domain.SysPost; +import com.muyu.system.domain.SysUserPost; +import com.muyu.system.domain.model.NoticListModel; +import com.muyu.system.domain.model.SysNoticeModel; +import com.muyu.system.domain.resp.NoticDetailReadNumResp; +import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -64,4 +73,22 @@ public interface SysNoticeMapper extends BaseMapper { * @return 结果 */ public int deleteNoticeByIds (Long[] noticeIds); + + + + SysUser findByName(@Param("name") String name); + + void addUserNotice(@Param("noticeId") Long noticeId, @Param("userId") Long userId,@Param("createBy") String createBy, @Param("startTime") Date startTime, @Param("endTime") Date endTime); + + + List findByAllName(); + + List finByNoticList(@Param("userId") Long userId); + + + List findByNoticeId(); + + void readNotic(@Param("noticeId") Long noticeId, @Param("userId") Long userId); + + List selectNotice(@Param("userId") Long userId); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysNoticeService.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysNoticeService.java index a1afe02..f9e3406 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysNoticeService.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysNoticeService.java @@ -2,6 +2,9 @@ package com.muyu.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.system.domain.SysNotice; +import com.muyu.system.domain.model.NoticListModel; +import com.muyu.system.domain.model.SysNoticeModel; +import com.muyu.system.domain.resp.NoticDetailReadNumResp; import java.util.List; @@ -32,11 +35,10 @@ public interface SysNoticeService extends IService { /** * 新增公告 * - * @param notice 公告信息 * * @return 结果 */ - public int insertNotice (SysNotice notice); + public Boolean insertNotice (SysNoticeModel sysNoticeModel); /** * 修改公告 @@ -64,4 +66,10 @@ public interface SysNoticeService extends IService { * @return 结果 */ public int deleteNoticeByIds (Long[] noticeIds); + + List noticList(); + + List noticListDetail(); + + void readNotic(Long noticeId); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysNoticeServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysNoticeServiceImpl.java index 8c0c8d5..8ccd042 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysNoticeServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysNoticeServiceImpl.java @@ -1,13 +1,29 @@ package com.muyu.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.common.system.domain.SysDept; +import com.muyu.common.system.domain.SysUser; import com.muyu.system.domain.SysNotice; +import com.muyu.system.domain.SysPost; +import com.muyu.system.domain.SysUserPost; +import com.muyu.system.domain.model.NoticListModel; +import com.muyu.system.domain.model.SysNoticeModel; +import com.muyu.system.domain.resp.NoticDetailReadNumResp; import com.muyu.system.mapper.SysNoticeMapper; +import com.muyu.system.mapper.SysUserPostMapper; +import com.muyu.system.service.SysDeptService; import com.muyu.system.service.SysNoticeService; +import com.muyu.system.service.SysPostService; +import com.muyu.system.service.SysUserService; +import org.apache.http.auth.AUTH; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * 公告 服务层实现 @@ -19,15 +35,29 @@ public class SysNoticeServiceImpl extends ServiceImpl selectNoticeList (SysNotice notice) { + public List selectNoticeList(SysNotice notice) { return noticeMapper.selectNoticeList(notice); } /** * 新增公告 * - * @param notice 公告信息 - * * @return 结果 */ @Override - public int insertNotice (SysNotice notice) { - return noticeMapper.insertNotice(notice); + public Boolean insertNotice(SysNoticeModel sysNoticeModel) { + SysNotice notice = SysNotice.builder() + .noticeTitle(sysNoticeModel.getNoticeTitle()) + .noticeType(sysNoticeModel.getNoticeType()) + .noticeContent(sysNoticeModel.getNoticeContent()) + .status(sysNoticeModel.getStatus()) + .build(); + //新增公告表 + notice.setCreateBy(SecurityUtils.getUsername()); + noticeMapper.insertNotice(notice); + + SysUser sysUser1 = sysUserService.selectUserById(SecurityUtils.getUserId()); + SysDept sysDept = sysDeptService.selectDeptById(sysUser1.getDeptId()); + + String deptName = sysDept.getDeptName(); + String postGroup = sysUserService.selectUserPostGroup(sysUser1.getUserName()); + + String username = SecurityUtils.getUsername(); + String createBy = username+"("+deptName+"/"+postGroup+")"; + + + if (sysNoticeModel.getNoticeType().equals("2")) { + List sysUserList = noticeMapper.findByAllName(); + sysUserList.forEach( + sysUser -> { + noticeMapper.addUserNotice( + notice.getNoticeId(), + sysUser.getUserId(), + createBy, + sysNoticeModel.getStartTime(), + sysNoticeModel.getEndTime() + ); + } + ); + + } else { + //新增用户表和公告表id + String names = sysNoticeModel.getUserNames(); + if (names != null) { + String[] nameList = names.split(","); + + for (String name : nameList) { + SysUser sysUser = noticeMapper.findByName(name); + noticeMapper.addUserNotice( + notice.getNoticeId(), + sysUser.getUserId(), + createBy, + sysNoticeModel.getStartTime(), + sysNoticeModel.getEndTime()); + } + } + } + + + return true; } /** * 修改公告 * * @param notice 公告信息 - * * @return 结果 */ @Override - public int updateNotice (SysNotice notice) { + public int updateNotice(SysNotice notice) { return noticeMapper.updateNotice(notice); } @@ -71,11 +150,10 @@ public class SysNoticeServiceImpl extends ServiceImpl noticList() { + + SysUser sysUser1 = sysUserService.selectUserById(SecurityUtils.getUserId()); + + String postGroup = sysUserService.selectUserPostGroup(sysUser1.getUserName()); + + List noticeModelList = new ArrayList<>(); + List fin = new ArrayList<>(); + if ("董事长".equals(postGroup)) { + fin= noticeMapper.finByNoticList(null); + }else{ + fin= noticeMapper.finByNoticList(sysUser1.getUserId()); + } + + + // List sysNoticeList = this.list(); + List sysNoticeList=noticeMapper.selectNotice(sysUser1.getUserId()); + + + for (SysNotice sysNotice : sysNoticeList) { + + noticeModelList.add( + NoticListModel.builder() + .noticeId(sysNotice.getNoticeId()) + .noticeTitle(sysNotice.getNoticeTitle()) + .noticeType(sysNotice.getNoticeType()) + .createTime(sysNotice.getCreateTime()) + .noticeContent(sysNotice.getNoticeContent()) + .flag(sysNotice.getStatus()) + .build() + ); + } + + for (NoticListModel noticListModel : fin) { + noticeModelList.stream().filter(listModel -> Objects.equals(noticListModel.getNoticeId(), listModel.getNoticeId())).forEach(listModel -> { + listModel.setFlag(noticListModel.getFlag()); + listModel.setCreateBy(noticListModel.getCreateBy()); + }); + } + + if (noticeModelList == null) { + return new ArrayList<>(); + } + + return noticeModelList; + + } + + @Override + public List noticListDetail() { + return noticeMapper.findByNoticeId(); + } + + @Override + public void readNotic(Long noticeId) { + Long userId = SecurityUtils.getUserId(); + noticeMapper.readNotic(noticeId,userId); + } } diff --git a/muyu-modules/muyu-system/src/main/resources/bootstrap.yml b/muyu-modules/muyu-system/src/main/resources/bootstrap.yml index f6acefa..c576cf5 100644 --- a/muyu-modules/muyu-system/src/main/resources/bootstrap.yml +++ b/muyu-modules/muyu-system/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 43.142.149.172:8848 + namespace: test config: # 配置中心地址 server-addr: 43.142.149.172:8848 + namespace: test # 配置文件格式 file-extension: yml # 共享配置 diff --git a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysNoticeMapper.xml index 0687403..a24a289 100644 --- a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysNoticeMapper.xml +++ b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysNoticeMapper.xml @@ -50,8 +50,48 @@ + + + + + + + + insert into sys_notice ( notice_title, notice_type, @@ -70,6 +110,46 @@ sysdate() ) + + INSERT INTO `ry-cloud`.`a_test` + + + user_id, + + + notice_id, + + + create_by, + + + start_time, + + + end_time + + + VALUES + + + #{userId}, + + + #{noticeId}, + + + #{createBy}, + + + #{startTime}, + + + #{endTime} + + + + + update sys_notice @@ -83,6 +163,10 @@ where notice_id = #{noticeId} + + update a_test set flag = 1 + where notice_id = #{noticeId} and user_id = #{userId} + delete diff --git a/muyu-visual/muyu-monitor/src/main/resources/bootstrap.yml b/muyu-visual/muyu-monitor/src/main/resources/bootstrap.yml index 13c687b..357427e 100644 --- a/muyu-visual/muyu-monitor/src/main/resources/bootstrap.yml +++ b/muyu-visual/muyu-monitor/src/main/resources/bootstrap.yml @@ -15,9 +15,11 @@ spring: discovery: # 服务注册地址 server-addr: 43.142.149.172:8848 + namespace: test config: # 配置中心地址 server-addr: 43.142.149.172:8848 + namespace: test # 配置文件格式 file-extension: yml # 共享配置 diff --git a/pom.xml b/pom.xml index fc97f1d..c925747 100644 --- a/pom.xml +++ b/pom.xml @@ -143,6 +143,8 @@ ${transmittable-thread-local.version} + + com.muyu