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..da6a8f8 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/AsUserDeptController.java @@ -0,0 +1,111 @@ +package com.muyu.system.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.muyu.system.domain.resp.AsUserDeotNumResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +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.system.service.IAsUserDeptService; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 【请填写功能名称】Controller + * + * @author ruoyi + * @date 2024-04-13 + */ +@RestController +@RequestMapping("/userDept") +public class AsUserDeptController extends BaseController +{ + @Autowired + private IAsUserDeptService asUserDeptService; + + /** + * 查询【请填写功能名称】列表 + */ + @RequiresPermissions("system:dept:list") + @GetMapping("/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") + @GetMapping(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/domain/AsUserDept.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/AsUserDept.java new file mode 100644 index 0000000..692840e --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/AsUserDept.java @@ -0,0 +1,39 @@ +package com.muyu.system.domain; + +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 Xin.Yao + * @Date 2024/4/13 12:20 + */ +@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..f46e989 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,16 @@ 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..78b0920 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/req/SysNoticeRequest.java @@ -0,0 +1,21 @@ +package com.muyu.system.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName SysNoticeRequest + * @Description 描述 + * @Author Xin.Yao + * @Date 2024/4/13 14:43 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +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..230a312 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/AsUserDeotNumResponse.java @@ -0,0 +1,27 @@ +package com.muyu.system.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ClassDescription: + * @JdkVersion: 17 + * @Author: zhangxu + * @Created: 2024/4/14 10:21 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +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..045d326 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/resp/SysNoticeResponse.java @@ -0,0 +1,40 @@ +package com.muyu.system.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + +/** + * @ClassDescription: + * @JdkVersion: 17 + * @Author: zhangxu + * @Created: 2024/4/14 10:22 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class SysNoticeResponse { + + + private Date createTime; + + private String createBy; + + private String noticeType; + + private String isRead; + + private String noticeTitle; + + 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..5919930 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/AsUserDeptMapper.java @@ -0,0 +1,70 @@ +package com.muyu.system.mapper; + +import com.muyu.common.core.domain.Result; +import com.muyu.system.domain.AsUserDept; +import com.muyu.system.domain.resp.AsUserDeotNumResponse; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @ClassDescription: + * @JdkVersion: 17 + * @Author: zhangxu + * @Created: 2024/4/14 9:31 + */ +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(@org.apache.ibatis.annotations.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(@org.apache.ibatis.annotations.Param("id") Long id); + Long selectAsUserDeptNum(@org.apache.ibatis.annotations.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..571a1bf 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,7 +1,11 @@ package com.muyu.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.common.system.domain.SysUser; import com.muyu.system.domain.SysNotice; +import com.muyu.system.domain.req.SysNoticeRequest; +import com.muyu.system.domain.resp.SysNoticeResponse; +import feign.Param; import java.util.List; @@ -64,4 +68,12 @@ public interface SysNoticeMapper extends BaseMapper { * @return 结果 */ public int deleteNoticeByIds (Long[] noticeIds); + + List getListNotice(SysNoticeRequest sysNoticeRequest); + + + + + + List selectUsers(); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/AsUserDeptService.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/AsUserDeptService.java new file mode 100644 index 0000000..5be4796 --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/AsUserDeptService.java @@ -0,0 +1,67 @@ +package com.muyu.system.service; + +import com.muyu.common.core.domain.Result; +import com.muyu.system.domain.AsUserDept; +import com.muyu.system.domain.resp.AsUserDeotNumResponse; + +import java.util.List; + +/** + * @ClassDescription: + * @JdkVersion: 17 + * @Author: zhangxu + * @Created: 2024/4/14 9:33 + */ +public interface AsUserDeptService { + /** + * 查询【请填写功能名称】 + * + * @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..a92f0fd --- /dev/null +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/AsUserDeptServiceImpl.java @@ -0,0 +1,120 @@ +package com.muyu.system.service.impl; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.DateUtils; +import com.muyu.system.domain.AsUserDept; +import com.muyu.system.domain.resp.AsUserDeotNumResponse; +import com.muyu.system.mapper.AsUserDeptMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @ClassDescription: + * @JdkVersion: 17 + * @Author: zhangxu + * @Created: 2024/4/14 9:35 + */ +@Service +public class AsUserDeptServiceImpl implements AsUserDeptMapper { + + @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 f302c95..635ab6e 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 @@ -98,6 +98,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl menuList.add(sysMenu); getMenuList(menuList,sysMenu); } + } 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..e477ef5 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,8 +1,10 @@ package com.muyu.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.system.domain.SysDept; import com.muyu.system.domain.SysNotice; import com.muyu.system.mapper.SysNoticeMapper; +import com.muyu.system.service.SysDeptService; import com.muyu.system.service.SysNoticeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -19,6 +21,10 @@ public class SysNoticeServiceImpl extends ServiceImpl selectNoticeList (SysNotice notice) { return noticeMapper.selectNoticeList(notice); + } + + public List selectDept(SysDept sysDept){ + return sysDeptService.selectDeptList(sysDept); + } + + /** * 新增公告 * 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..4dfbe1a 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 @@ -51,7 +51,23 @@ - + + + + insert into sys_notice ( notice_title, notice_type,