diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AsUserDeptController.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AsUserDeptController.java new file mode 100644 index 0000000..c3d13d3 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AsUserDeptController.java @@ -0,0 +1,112 @@ +package com.muyu.system.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.muyu.system.domain.resp.AsUserDeotNumResponse; +import com.muyu.system.service.IAsUserDeptService; +import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.log.annotation.Log; +import com.muyu.common.log.enums.BusinessType; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.system.domain.AsUserDept; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 用户和公告的中间Controller + * + * @author wan + * @date 2024-04-14 + */ +@RestController +@RequestMapping("/userDept") +public class AsUserDeptController extends BaseController +{ + @Autowired + private IAsUserDeptService asUserDeptService; + + /** + * 查询【请填写功能名称】列表 + */ + @RequiresPermissions("system:dept:list") + @PostMapping("/list") + public Result> list(AsUserDept asUserDept) + { + startPage(); + List list = asUserDeptService.selectAsUserDeptList(asUserDept); + return getDataTable(list); + } + + @GetMapping("/UpdateAsUserDept") + public Result list(@RequestParam("id") Long id) + { + return asUserDeptService.updateAsUserDeptRead(id); + } + + @GetMapping("/GetNum") + public Result getNum(@RequestParam("noticeId") Long noticeId) + { + return asUserDeptService.getNum(noticeId); + } + + /** + * 导出【请填写功能名称】列表 + */ + @RequiresPermissions("system:dept:export") + @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AsUserDept asUserDept) + { + List list = asUserDeptService.selectAsUserDeptList(asUserDept); + ExcelUtil util = new ExcelUtil(AsUserDept.class); + util.exportExcel(response, list, "【请填写功能名称】数据"); + } + + /** + * 获取【请填写功能名称】详细信息 + */ + @RequiresPermissions("system:dept:query") + @PostMapping(value = "/{id}") + public Result getInfo(@PathVariable("id") Long id) + { + return success(asUserDeptService.selectAsUserDeptById(id)); + } + + /** + * 新增【请填写功能名称】 + */ + @RequiresPermissions("system:dept:add") + @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) + @PostMapping + public Result add(@RequestBody AsUserDept asUserDept) + { + return toAjax(asUserDeptService.insertAsUserDept(asUserDept)); + } + + /** + * 修改【请填写功能名称】 + */ + @RequiresPermissions("system:dept:edit") + @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) + @PutMapping + public Result edit(@RequestBody AsUserDept asUserDept) + { + return toAjax(asUserDeptService.updateAsUserDept(asUserDept)); + } + + /** + * 删除【请填写功能名称】 + */ + @RequiresPermissions("system:dept:remove") + @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public Result remove(@PathVariable Long[] ids) + { + return toAjax(asUserDeptService.deleteAsUserDeptByIds(ids)); + } +} 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 7d5a145..31aff1f 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,8 @@ 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.req.SysNoticeRequest; +import com.muyu.system.domain.resp.SysNoticeResponse; import com.muyu.system.service.SysNoticeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -22,7 +24,7 @@ import java.util.List; */ @RestController @RequestMapping("/notice") -public class SysNoticeController extends BaseController { +public class SysNoticeController extends BaseController { @Autowired private SysNoticeService noticeService; @@ -37,6 +39,12 @@ public class return getDataTable(list); } + @PostMapping("/GetNoticeList") + public Result> getNoticeList (@RequestBody SysNoticeRequest sysNoticeRequest) { + return noticeService.getNoticeList(sysNoticeRequest); + } + + /** * 根据通知公告编号获取详细信息 */ diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/AsUserDept.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/AsUserDept.java new file mode 100644 index 0000000..b8c7bf3 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/AsUserDept.java @@ -0,0 +1,40 @@ +package com.muyu.system.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ClassName AsUserDept + * @Description 描述 + * @Author annan.Wang + * @Date 2024/4/14 9:11 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class AsUserDept extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** $column.columnComment */ + @Excel(name = "用户ID") + private Long userId; + + /** $column.columnComment */ + @Excel(name = "公告ID") + private Long noticeId; + + /** $column.columnComment */ + @Excel(name = "是否已读") + private String isRead; +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/SysNotice.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/SysNotice.java index 69675c1..dac3697 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/SysNotice.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/SysNotice.java @@ -12,6 +12,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; +import java.util.List; /** * 通知公告表 sys_notice @@ -51,6 +52,12 @@ public class SysNotice extends BaseEntity { */ private String status; + /** 部门ID */ + private List> sectionList; + + /** 用户ID集合 */ + private List personnelList; + public Long getNoticeId () { return noticeId; } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/SysNoticeRequest.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/SysNoticeRequest.java new file mode 100644 index 0000000..6c97176 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/SysNoticeRequest.java @@ -0,0 +1,23 @@ +package com.muyu.system.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ClassName SysNoticeRequest + * @Description 描述 + * @Author annan.Wang + * @Date 2024/4/14 9:19 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class SysNoticeRequest { + private Long noticeId; + private Long userId; + private String noticeType; + private String isRead; +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/AsUserDeotNumResponse.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/AsUserDeotNumResponse.java new file mode 100644 index 0000000..916bed6 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/AsUserDeotNumResponse.java @@ -0,0 +1,22 @@ +package com.muyu.system.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ClassName AsUserDeotNumResponse + * @Description 描述 + * @Author annan.Wang + * @Date 2024/4/14 9:26 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class AsUserDeotNumResponse { + private Long num; + private Long readNum; + private Long noReadNum; +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/SysNoticeResponse.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/SysNoticeResponse.java new file mode 100644 index 0000000..09ed2cc --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/SysNoticeResponse.java @@ -0,0 +1,29 @@ +package com.muyu.system.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + +/** + * @ClassName SysNoticeResponse + * @Description 描述 + * @Author annan.Wang + * @Date 2024/4/14 9:22 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class SysNoticeResponse { + private Date createTime; + private String createBy; + private String noticeType; + private String isRead; + private String notceTitle; + private String noticeContent; + private Long noticeId; + private Long id; +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AsUserDeptMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AsUserDeptMapper.java new file mode 100644 index 0000000..ffb97c7 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AsUserDeptMapper.java @@ -0,0 +1,67 @@ +package com.muyu.system.mapper; + +import java.util.List; +import com.muyu.system.domain.AsUserDept; +import org.apache.ibatis.annotations.Param; + +/** + * 【请填写功能名称】Mapper接口 + * + * @author ruoyi + * @date 2024-04-13 + */ +public interface AsUserDeptMapper +{ + /** + * 查询【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + public AsUserDept selectAsUserDeptById(Long id); + + /** + * 查询【请填写功能名称】列表 + * + * @param asUserDept 【请填写功能名称】 + * @return 【请填写功能名称】集合 + */ + public List selectAsUserDeptList(AsUserDept asUserDept); + + /** + * 新增【请填写功能名称】 + * + * @param asUserDept 【请填写功能名称】 + * @return 结果 + */ + public int insertAsUserDept(AsUserDept asUserDept); + public int insertBachAsUserDept(@Param("asUserDepts") List asUserDepts); + + /** + * 修改【请填写功能名称】 + * + * @param asUserDept 【请填写功能名称】 + * @return 结果 + */ + public int updateAsUserDept(AsUserDept asUserDept); + + /** + * 删除【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 结果 + */ + public int deleteAsUserDeptById(Long id); + + /** + * 批量删除【请填写功能名称】 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAsUserDeptByIds(Long[] ids); + + void updateAsUserDeptRead(@Param("id") Long id); + Long selectAsUserDeptNum(@Param("noticeId") Long noticeId); + Long selectAsUserDeptReadNum(@Param("noticeId") Long noticeId); +} 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..cc425f4 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 @@ -2,6 +2,8 @@ package com.muyu.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.system.domain.SysNotice; +import com.muyu.system.domain.req.SysNoticeRequest; +import com.muyu.system.domain.resp.SysNoticeResponse; import java.util.List; @@ -64,4 +66,9 @@ public interface SysNoticeMapper extends BaseMapper { * @return 结果 */ public int deleteNoticeByIds (Long[] noticeIds); + + List getNoticeList(SysNoticeRequest sysNoticeRequest); + + List selectUser(); + } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java index e037b34..548d56f 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java @@ -139,4 +139,6 @@ public interface SysUserMapper extends BaseMapper { * @return 结果 */ public SysUser checkEmailUnique (String email); + + List selectDtptUser(@Param("sectionIds") List sectionIds); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/IAsUserDeptService.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/IAsUserDeptService.java new file mode 100644 index 0000000..37ac5cf --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/IAsUserDeptService.java @@ -0,0 +1,68 @@ +package com.muyu.system.service; + +import java.util.List; + +import com.muyu.common.core.domain.Result; +import com.muyu.system.domain.AsUserDept; +import com.muyu.system.domain.resp.AsUserDeotNumResponse; + +/** + * 【请填写功能名称】Service接口 + * + * @author ruoyi + * @date 2024-04-13 + */ +public interface IAsUserDeptService +{ + /** + * 查询【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + public AsUserDept selectAsUserDeptById(Long id); + + /** + * 查询【请填写功能名称】列表 + * + * @param asUserDept 【请填写功能名称】 + * @return 【请填写功能名称】集合 + */ + public List selectAsUserDeptList(AsUserDept asUserDept); + + /** + * 新增【请填写功能名称】 + * + * @param asUserDept 【请填写功能名称】 + * @return 结果 + */ + public int insertAsUserDept(AsUserDept asUserDept); + + /** + * 修改【请填写功能名称】 + * + * @param asUserDept 【请填写功能名称】 + * @return 结果 + */ + public int updateAsUserDept(AsUserDept asUserDept); + + /** + * 批量删除【请填写功能名称】 + * + * @param ids 需要删除的【请填写功能名称】主键集合 + * @return 结果 + */ + public int deleteAsUserDeptByIds(Long[] ids); + + /** + * 删除【请填写功能名称】信息 + * + * @param id 【请填写功能名称】主键 + * @return 结果 + */ + public int deleteAsUserDeptById(Long id); + + Result updateAsUserDeptRead(Long id); + + Result getNum(Long noticeId); +} 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..60118bf 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 @@ -1,7 +1,10 @@ package com.muyu.system.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.core.domain.Result; import com.muyu.system.domain.SysNotice; +import com.muyu.system.domain.req.SysNoticeRequest; +import com.muyu.system.domain.resp.SysNoticeResponse; import java.util.List; @@ -64,4 +67,6 @@ public interface SysNoticeService extends IService { * @return 结果 */ public int deleteNoticeByIds (Long[] noticeIds); + + Result> getNoticeList(SysNoticeRequest sysNoticeRequest); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/AsUserDeptServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/AsUserDeptServiceImpl.java new file mode 100644 index 0000000..79aef23 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/AsUserDeptServiceImpl.java @@ -0,0 +1,119 @@ +package com.muyu.system.service.impl; + +import java.util.List; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.DateUtils; +import com.muyu.system.domain.resp.AsUserDeotNumResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.muyu.system.mapper.AsUserDeptMapper; +import com.muyu.system.domain.AsUserDept; +import com.muyu.system.service.IAsUserDeptService; +import org.springframework.transaction.annotation.Transactional; + +/** + * 【请填写功能名称】Service业务层处理 + * + * @author ruoyi + * @date 2024-04-13 + */ +@Service +public class AsUserDeptServiceImpl implements IAsUserDeptService +{ + @Autowired + private AsUserDeptMapper asUserDeptMapper; + + /** + * 查询【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + @Override + public AsUserDept selectAsUserDeptById(Long id) + { + return asUserDeptMapper.selectAsUserDeptById(id); + } + + /** + * 查询【请填写功能名称】列表 + * + * @param asUserDept 【请填写功能名称】 + * @return 【请填写功能名称】 + */ + @Override + public List selectAsUserDeptList(AsUserDept asUserDept) + { + return asUserDeptMapper.selectAsUserDeptList(asUserDept); + } + + /** + * 新增【请填写功能名称】 + * + * @param asUserDept 【请填写功能名称】 + * @return 结果 + */ + @Override + public int insertAsUserDept(AsUserDept asUserDept) + { + asUserDept.setCreateTime(DateUtils.getNowDate()); + return asUserDeptMapper.insertAsUserDept(asUserDept); + } + + /** + * 修改【请填写功能名称】 + * + * @param asUserDept 【请填写功能名称】 + * @return 结果 + */ + @Override + public int updateAsUserDept(AsUserDept asUserDept) + { + asUserDept.setUpdateTime(DateUtils.getNowDate()); + return asUserDeptMapper.updateAsUserDept(asUserDept); + } + + /** + * 批量删除【请填写功能名称】 + * + * @param ids 需要删除的【请填写功能名称】主键 + * @return 结果 + */ + @Override + public int deleteAsUserDeptByIds(Long[] ids) + { + return asUserDeptMapper.deleteAsUserDeptByIds(ids); + } + + /** + * 删除【请填写功能名称】信息 + * + * @param id 【请填写功能名称】主键 + * @return 结果 + */ + @Override + public int deleteAsUserDeptById(Long id) + { + return asUserDeptMapper.deleteAsUserDeptById(id); + } + + @Override + @Transactional + public Result updateAsUserDeptRead(Long id) { + asUserDeptMapper.updateAsUserDeptRead(id); + return Result.success(); + } + + @Override + public Result getNum(Long noticeId) { + Long num = asUserDeptMapper.selectAsUserDeptNum(noticeId); + Long readNum = asUserDeptMapper.selectAsUserDeptReadNum(noticeId); + long noReadNum = num-readNum; + return Result.success(AsUserDeotNumResponse.builder() + .num(num) + .readNum(readNum) + .noReadNum(noReadNum) + .build()); + } +} diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java index 8da4eb3..8ba41b0 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java @@ -15,7 +15,6 @@ import com.muyu.system.mapper.SysMenuMapper; import com.muyu.system.mapper.SysRoleMapper; import com.muyu.system.mapper.SysRoleMenuMapper; import com.muyu.system.service.SysMenuService; -import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -52,39 +51,45 @@ public class SysMenuServiceImpl extends ServiceImpl impl return selectMenuList(new SysMenu(), userId); } - public List selectSysChdMenuList(List menuList) { + public List selectSysMenuList(List menuList){ List longs = menuList.stream() - .map(menu -> menu.getMenuId()) - .toList(); - List sysMenus = menuMapper.selectSysChdMenuList(longs); - if (sysMenus != null && sysMenus.size() != 0) { - List sysMenus1 = selectSysMenuList(sysMenus); - if (sysMenus1 != null) { - sysMenus.addAll(sysMenus1); - } - }else { - return null; - } - return sysMenus; - } - - public List selectSysMenuList(List menus){ - List longs = menus.stream() .map(menu -> menu.getParentId()) .filter(parentId -> parentId != 0) .distinct() .toList(); - if (longs.size() == 0) { + if (longs.size()==0){ return null; } List sysMenus = menuMapper.selectSysMenuList(longs); List sysMenus1 = selectSysMenuList(sysMenus); - if (sysMenus1 != null) { + if (sysMenus1 != null){ sysMenus.addAll(sysMenus1); } return sysMenus; } + /** + * 递归方式查询菜单所有的子级菜单集合 + * @param menuList 菜单信息集合 + * @return List 所有子级菜单集合 + */ + public List selectSysChdMenuList(List menuList){ + //将菜单信息 + List longs = menuList.stream() + .map(menu -> menu.getMenuId()) + .toList(); + List sysMenus = menuMapper.selectSysChdMenuList(longs); + if (sysMenus!=null && sysMenus.size()!=0){ + List sysMenus1 = selectSysChdMenuList(sysMenus); + if (sysMenus1 != null){ + sysMenus.addAll(sysMenus1); + } + }else{ + return null; + } + return sysMenus; + } + /** * 查询系统菜单列表 * @@ -97,32 +102,30 @@ public class SysMenuServiceImpl extends ServiceImpl impl List menuList = null; // 管理员显示所有菜单信息 if (SysUser.isAdmin(userId)) { + //获取符合查询的菜单信息 menuList = menuMapper.selectMenuList(menu); - - List sysMenus = selectSysMenuList(menuList); - - if (sysMenus != null && sysMenus.size() != 0) { + //查询菜单信息的所有父级菜单 + List sysMenus1 = selectSysMenuList(menuList); + if (sysMenus1!=null && sysMenus1.size()!=0){ + menuList.addAll(sysMenus1); + } + //查询菜单信息的所有子级菜单 + List sysMenus = selectSysChdMenuList(menuMapper.selectMenuList(menu)); + if (sysMenus!=null && sysMenus.size()!=0){ menuList.addAll(sysMenus); } - List sysMenus1 = selectSysChdMenuList(menuMapper.selectMenuList(menu)); - if (sysMenus1 != null && sysMenus1.size() !=0) { - menuList.addAll(sysMenus1); - } } else { menu.getParams().put("userId", userId); menuList = menuMapper.selectMenuListByUserId(menu); } + //菜单信息集合去重 menuList = menuList.stream() - .distinct() - .toList(); + .distinct() + .toList(); return menuList; } - - - - /** * 根据用户ID查询权限 * 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..2a2a94e 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,24 @@ package com.muyu.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.domain.Result; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.system.domain.AsUserDept; import com.muyu.system.domain.SysNotice; +import com.muyu.system.domain.req.SysNoticeRequest; +import com.muyu.system.domain.resp.SysNoticeResponse; +import com.muyu.system.mapper.AsUserDeptMapper; import com.muyu.system.mapper.SysNoticeMapper; +import com.muyu.system.mapper.SysUserMapper; import com.muyu.system.service.SysNoticeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 公告 服务层实现 @@ -19,6 +30,12 @@ public class SysNoticeServiceImpl extends ServiceImpl handleList(List personnelList,List> sectionList,Long noticeId){ + List lons = new ArrayList<>(); + if (sectionList!=null && sectionList.size()!=0){ + sectionList.stream() + .map(section -> { + for (Long aLong : section) { + lons.add(aLong); + } + return null; + }).collect(Collectors.toList()); + List sectionIds = lons.stream().distinct().toList(); + List userIds=sysUserMapper.selectDtptUser(sectionIds); + if (userIds!=null){ + personnelList.addAll(userIds); + } + } + personnelList=personnelList.stream().distinct().toList(); + System.out.println(personnelList); + List asUserDepts = personnelList.stream() + .map(personnel -> { + AsUserDept asUserDept = new AsUserDept(); + asUserDept.setUserId(personnel); + asUserDept.setNoticeId(noticeId); + asUserDept.setCreateBy(SecurityUtils.getUsername()); + asUserDept.setCreateTime(new Date()); + return asUserDept; + }).toList(); + return asUserDepts; + } /** * 新增公告 * @@ -51,8 +98,31 @@ public class SysNoticeServiceImpl extends ServiceImpl personnelList = notice.getPersonnelList(); + List> sectionList = notice.getSectionList(); + List asUserDepts = handleList(personnelList, sectionList, noticeId); + asUserDeptMapper.insertBachAsUserDept(asUserDepts); + }else{ + List userIds=noticeMapper.selectUser(); + List asUserDepts = userIds.stream() + .map(id -> { + AsUserDept asUserDept = new AsUserDept(); + asUserDept.setNoticeId(notice.getNoticeId()); + asUserDept.setCreateTime(new Date()); + asUserDept.setUserId(id); + asUserDept.setCreateBy(SecurityUtils.getUsername()); + return asUserDept; + }).toList(); + asUserDeptMapper.insertBachAsUserDept(asUserDepts); + } + + return i; } /** @@ -90,4 +160,11 @@ public class SysNoticeServiceImpl extends ServiceImpl> getNoticeList(SysNoticeRequest sysNoticeRequest) { + sysNoticeRequest.setUserId(SecurityUtils.getUserId()); + List noticeList = noticeMapper.getNoticeList(sysNoticeRequest); + return Result.success(noticeList); + } } diff --git a/muyu-modules/muyu-system/src/main/resources/mapper/system/AsUserDeptMapper.xml b/muyu-modules/muyu-system/src/main/resources/mapper/system/AsUserDeptMapper.xml new file mode 100644 index 0000000..dd24cbe --- /dev/null +++ b/muyu-modules/muyu-system/src/main/resources/mapper/system/AsUserDeptMapper.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + select id, user_id, notice_id, is_read, create_by, create_time, update_by, update_time, remark from as_user_dept + + + + + + + + + + insert into as_user_dept + + user_id, + notice_id, + is_read, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{userId}, + #{noticeId}, + #{isRead}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + INSERT INTO `as_user_dept` (`user_id`, `notice_id`, `create_by`, `create_time`) + VALUES + + (#{asUserDept.userId}, #{asUserDept.noticeId}, #{asUserDept.createBy}, #{asUserDept.createTime}) + + + + + + + update as_user_dept + + user_id = #{userId}, + notice_id = #{noticeId}, + is_read = #{isRead}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + update as_user_dept set is_read = 0 where id=#{id} + + + + delete from as_user_dept where id = #{id} + + + + delete from as_user_dept where id in + + #{id} + + + 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..8487eb7 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,23 @@ + + + + insert into sys_notice ( notice_title, notice_type, diff --git a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysUserMapper.xml b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysUserMapper.xml index 3f13290..40ecb31 100644 --- a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -152,7 +152,7 @@ +