From 37e264491f8d35022eb8757793fe6a00d596fdc5 Mon Sep 17 00:00:00 2001 From: Hzm <2469013034@qq.com> Date: Mon, 22 Sep 2025 12:05:11 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=9A=84crud+=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/SaTokenMvcConfiguration.java | 2 +- .../post/controller/SysPostController.java | 3 +- .../post/service/impl/SysPostServiceImpl.java | 28 +++++++++++++++++-- .../agileboot/system/post/dto/PostQuery.java | 4 +++ 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/config/SaTokenMvcConfiguration.java b/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/config/SaTokenMvcConfiguration.java index 272d4c2..151ada8 100644 --- a/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/config/SaTokenMvcConfiguration.java +++ b/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/config/SaTokenMvcConfiguration.java @@ -40,7 +40,7 @@ public class SaTokenMvcConfiguration implements WebMvcConfigurer { public SaServletFilter getGlobleSaServletFilter() { return new SaServletFilter() .addInclude("/**").addExclude("/favicon.ico") - .addExclude("/auth/getConfig", "/captcha/code", "/auth/register") + .addExclude("/auth/getConfig", "/captcha/code", "/auth/register","/system/post") .setAuth(obj -> { SaRouter.match("/**", "/auth/login", StpUtil::checkLogin); }) diff --git a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/controller/SysPostController.java b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/controller/SysPostController.java index 0f1af69..7c676ab 100644 --- a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/controller/SysPostController.java +++ b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/controller/SysPostController.java @@ -82,8 +82,9 @@ public class SysPostController { * 删除岗位 */ @DeleteMapping - public R remove(@RequestParam @NotNull @NotEmpty List ids) { + public R remove(@RequestBody @NotNull @NotEmpty List ids) { sysPostService.deletePost(ids); return R.ok(); } + } diff --git a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/service/impl/SysPostServiceImpl.java b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/service/impl/SysPostServiceImpl.java index a475b80..787b5c6 100644 --- a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/service/impl/SysPostServiceImpl.java +++ b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/service/impl/SysPostServiceImpl.java @@ -1,6 +1,7 @@ package com.agileboot.system.post.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; import com.agileboot.common.core.exception.BizException; import com.agileboot.common.core.exception.error.ErrorCode; import com.agileboot.common.mybatis.core.page.PageR; @@ -21,7 +22,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; @Service @@ -32,14 +35,33 @@ public class SysPostServiceImpl extends ServiceImpl impl @Override public PostVO getPostInfo(Long postId) { +// sysUserMapper.getPostInfo(); return null; } + /** + * 条件查询 + * + * @param query + * @return + */ @Override public PageR getPostList(PostQuery query) { - Page page = super.page(query.toPage(), query.toQueryWrapper()); - IPage convert = page.convert(PostVO::new); - return new PageR<>(convert); + String postCode = query.getPostCode(); + String postName = query.getPostName(); + LocalDate beginTime = query.getBeginTime(); + LocalDate endTime = query.getEndTime(); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.like(StrUtil.isNotBlank(postCode), SysPost::getPostCode, postCode); + lqw.like(StrUtil.isNotBlank(postName), SysPost::getPostName, postName); + lqw.eq(Objects.nonNull(query.getStatus()), SysPost::getStatus, query.getStatus()); + lqw.between(Objects.nonNull(beginTime) && Objects.nonNull(endTime), SysPost::getCreateTime, beginTime, endTime); + Page page = new Page<>(query.getPageNum(), query.getPageSize()); + page(page, lqw); + List records = page.getRecords(); + List convert = records.stream().map(PostVO::new).collect(Collectors.toList()); + + return new PageR<>(page,convert); } /** diff --git a/wol-domain/src/main/java/com/agileboot/system/post/dto/PostQuery.java b/wol-domain/src/main/java/com/agileboot/system/post/dto/PostQuery.java index e133737..24a8ef1 100644 --- a/wol-domain/src/main/java/com/agileboot/system/post/dto/PostQuery.java +++ b/wol-domain/src/main/java/com/agileboot/system/post/dto/PostQuery.java @@ -5,6 +5,8 @@ import com.agileboot.system.post.entity.SysPost; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.Data; +import java.time.LocalDate; + /** * @author valarchie */ @@ -14,6 +16,8 @@ public class PostQuery extends PageQuery { private String postCode; private String postName; private Integer status; + private LocalDate beginTime; + private LocalDate endTime; @Override public LambdaQueryWrapper toQueryWrapper() { From ced025e2924546fc2bb9ed4380a5489224a6bb42 Mon Sep 17 00:00:00 2001 From: Hzm <2469013034@qq.com> Date: Mon, 22 Sep 2025 15:08:53 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=85=AC=E5=91=8A?= =?UTF-8?q?=E7=9A=84crud+=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/enums/common/NoticeTypeEnum.java | 8 +++ .../common/core/enums/common/StatusEnum.java | 9 +++ .../controller/SysNoticeController.java | 4 +- .../service/impl/SysNoticeServiceImpl.java | 68 +++++++++++++------ .../system/user/service/ISysUserService.java | 2 + .../user/service/impl/SysUserServiceImpl.java | 11 +++ .../agileboot/system/notice/dto/NoticeVO.java | 1 + 7 files changed, 81 insertions(+), 22 deletions(-) diff --git a/agileboot-common/wol-common-core/src/main/java/com/agileboot/common/core/enums/common/NoticeTypeEnum.java b/agileboot-common/wol-common-core/src/main/java/com/agileboot/common/core/enums/common/NoticeTypeEnum.java index 3bafecf..5815064 100644 --- a/agileboot-common/wol-common-core/src/main/java/com/agileboot/common/core/enums/common/NoticeTypeEnum.java +++ b/agileboot-common/wol-common-core/src/main/java/com/agileboot/common/core/enums/common/NoticeTypeEnum.java @@ -28,4 +28,12 @@ public enum NoticeTypeEnum implements DictionaryEnum { private final String desc; private final String cssTag; + public static Integer getDescByValue(Integer value) { + for (NoticeTypeEnum item : values()) { + if (item.value.equals(value)) { + return item.value; + } + } + return null; + } } diff --git a/agileboot-common/wol-common-core/src/main/java/com/agileboot/common/core/enums/common/StatusEnum.java b/agileboot-common/wol-common-core/src/main/java/com/agileboot/common/core/enums/common/StatusEnum.java index 9d6a1c2..c891535 100644 --- a/agileboot-common/wol-common-core/src/main/java/com/agileboot/common/core/enums/common/StatusEnum.java +++ b/agileboot-common/wol-common-core/src/main/java/com/agileboot/common/core/enums/common/StatusEnum.java @@ -25,4 +25,13 @@ public enum StatusEnum implements DictionaryEnum { private final String desc; private final String cssTag; + public static Integer getDescByValue(Integer value) { + for (StatusEnum item : StatusEnum.values()) { + if (item.value.equals(value)) { + return item.value; + } + } + return null; + } + } diff --git a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/controller/SysNoticeController.java b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/controller/SysNoticeController.java index 4892b78..f1a8469 100644 --- a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/controller/SysNoticeController.java +++ b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/controller/SysNoticeController.java @@ -67,7 +67,7 @@ public class SysNoticeController { * 修改通知公告 */ @PutMapping("/{noticeId}") - public R edit(@PathVariable Long noticeId, @RequestBody NoticeUpdateDTO updateDTO) { + public R edit(@PathVariable("noticeId") Long noticeId, @RequestBody NoticeUpdateDTO updateDTO) { updateDTO.setNoticeId(noticeId); sysNoticeService.updateNotice(updateDTO); return R.ok(); @@ -77,7 +77,7 @@ public class SysNoticeController { * 删除通知公告 */ @DeleteMapping - public R remove(@RequestParam List noticeIds) { + public R remove(@RequestBody List noticeIds) { sysNoticeService.deleteNotice(noticeIds); return R.ok(); } diff --git a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/service/impl/SysNoticeServiceImpl.java b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/service/impl/SysNoticeServiceImpl.java index fc132cf..478e59b 100644 --- a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/service/impl/SysNoticeServiceImpl.java +++ b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/service/impl/SysNoticeServiceImpl.java @@ -15,26 +15,44 @@ import com.agileboot.system.notice.dto.NoticeVO; import com.agileboot.system.notice.entity.SysNotice; import com.agileboot.system.notice.mapper.SysNoticeMapper; import com.agileboot.system.notice.service.ISysNoticeService; +import com.agileboot.system.user.mapper.SysUserMapper; +import com.agileboot.system.user.service.ISysUserService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.base.Preconditions; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; +@RequiredArgsConstructor @Service public class SysNoticeServiceImpl extends ServiceImpl implements ISysNoticeService { + + private final ISysUserService userService; + + @Override public PageR getNoticeList(NoticeQuery query) { - QueryWrapper queryWrapper = new QueryWrapper() - .like(StrUtil.isNotEmpty(query.getNoticeTitle()), "notice_title", query.getNoticeTitle()) - .eq(StrUtil.isNotEmpty(query.getNoticeType()), "notice_type", query.getNoticeType()) - .eq("n.deleted", 0) - .like(StrUtil.isNotEmpty(query.getCreatorName()), "u.username", query.getCreatorName()); - Page page = this.baseMapper.getNoticeList(query.toPage(), queryWrapper); - IPage convert = page.convert(NoticeVO::new); - return new PageR<>(convert); + Page page = new Page<>(query.getPageNum(), query.getPageSize()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.like(StrUtil.isNotBlank(query.getNoticeTitle()), SysNotice::getNoticeTitle, query.getNoticeTitle()); + lqw.like(StrUtil.isNotBlank(query.getNoticeType()), SysNotice::getNoticeType, query.getNoticeType()); + lqw.eq(StrUtil.isNotBlank(query.getNoticeType()), SysNotice::getNoticeType, query.getNoticeType()); + page(page, lqw); + List records = page.getRecords(); + List noticeVOList = records.stream().map(sysNotice -> { + NoticeVO noticeVO = new NoticeVO(sysNotice); + Long creatorId = sysNotice.getUpdateBy(); + String creatorName = userService.getUserByUserId(creatorId).getUsername(); + noticeVO.setCreatorName(creatorName); + return noticeVO; + }).toList(); + return new PageR<>(page, noticeVOList); } @Override @@ -48,26 +66,36 @@ public class SysNoticeServiceImpl extends ServiceImpl impl return null; } + @Override + public SysUser getUserByUserId(Long userId) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SysUser::getUserId, userId); + SysUser user = getOne(lqw); + Preconditions.checkArgument(Objects.nonNull(user), "用户不存在"); + return user; + } + @Override public void updateUser(UpdateUserCommand command) { diff --git a/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeVO.java b/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeVO.java index b4bfbf5..a43e87b 100644 --- a/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeVO.java +++ b/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeVO.java @@ -31,6 +31,7 @@ public class NoticeVO { private String noticeContent; private Integer status; + private String creator; private Date createTime; From c724387a1640a17ade7b20d34ac2e820abdea7d8 Mon Sep 17 00:00:00 2001 From: Hzm <2469013034@qq.com> Date: Mon, 22 Sep 2025 15:09:56 +0800 Subject: [PATCH 3/4] =?UTF-8?q?satoken=E9=85=8D=E7=BD=AE=E7=B1=BB=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/satoken/config/SaTokenMvcConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/config/SaTokenMvcConfiguration.java b/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/config/SaTokenMvcConfiguration.java index 151ada8..272d4c2 100644 --- a/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/config/SaTokenMvcConfiguration.java +++ b/agileboot-common/wol-common-satoken/src/main/java/com/agileboot/common/satoken/config/SaTokenMvcConfiguration.java @@ -40,7 +40,7 @@ public class SaTokenMvcConfiguration implements WebMvcConfigurer { public SaServletFilter getGlobleSaServletFilter() { return new SaServletFilter() .addInclude("/**").addExclude("/favicon.ico") - .addExclude("/auth/getConfig", "/captcha/code", "/auth/register","/system/post") + .addExclude("/auth/getConfig", "/captcha/code", "/auth/register") .setAuth(obj -> { SaRouter.match("/**", "/auth/login", StpUtil::checkLogin); }) From ccfdd1851686b533c0f8f3c1d340f114c04fdb00 Mon Sep 17 00:00:00 2001 From: cuijiawang Date: Tue, 23 Sep 2025 16:55:39 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E4=B8=8E=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysNoticeController.java | 8 +-- .../service/impl/SysNoticeServiceImpl.java | 72 ++++++++----------- .../post/controller/SysPostController.java | 4 +- .../post/service/impl/SysPostServiceImpl.java | 32 ++------- .../system/user/service/ISysUserService.java | 5 ++ .../user/service/impl/SysUserServiceImpl.java | 26 +++++++ .../system/notice/dto/NoticeAddDTO.java | 4 +- .../agileboot/system/notice/dto/NoticeVO.java | 2 +- .../agileboot/system/post/dto/PostQuery.java | 9 ++- 9 files changed, 85 insertions(+), 77 deletions(-) diff --git a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/controller/SysNoticeController.java b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/controller/SysNoticeController.java index f1a8469..1e5e298 100644 --- a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/controller/SysNoticeController.java +++ b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/controller/SysNoticeController.java @@ -29,7 +29,7 @@ public class SysNoticeController { /** * 获取通知公告列表 */ - @GetMapping + @GetMapping("/list") public PageR list(NoticeQuery query) { PageR page = sysNoticeService.getNoticeList(query); return page; @@ -57,7 +57,7 @@ public class SysNoticeController { /** * 新增通知公告 */ - @PostMapping + @PostMapping("/create") public R add(@RequestBody NoticeAddDTO addDTO) { sysNoticeService.addNotice(addDTO); return R.ok(); @@ -66,7 +66,7 @@ public class SysNoticeController { /** * 修改通知公告 */ - @PutMapping("/{noticeId}") + @PostMapping("/update/{noticeId}") public R edit(@PathVariable("noticeId") Long noticeId, @RequestBody NoticeUpdateDTO updateDTO) { updateDTO.setNoticeId(noticeId); sysNoticeService.updateNotice(updateDTO); @@ -76,7 +76,7 @@ public class SysNoticeController { /** * 删除通知公告 */ - @DeleteMapping + @PostMapping("/del") public R remove(@RequestBody List noticeIds) { sysNoticeService.deleteNotice(noticeIds); return R.ok(); diff --git a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/service/impl/SysNoticeServiceImpl.java b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/service/impl/SysNoticeServiceImpl.java index 478e59b..38fde75 100644 --- a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/service/impl/SysNoticeServiceImpl.java +++ b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/notice/service/impl/SysNoticeServiceImpl.java @@ -15,19 +15,18 @@ import com.agileboot.system.notice.dto.NoticeVO; import com.agileboot.system.notice.entity.SysNotice; import com.agileboot.system.notice.mapper.SysNoticeMapper; import com.agileboot.system.notice.service.ISysNoticeService; -import com.agileboot.system.user.mapper.SysUserMapper; import com.agileboot.system.user.service.ISysUserService; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.google.common.base.Preconditions; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; -import java.util.Objects; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; @RequiredArgsConstructor @Service @@ -38,21 +37,22 @@ public class SysNoticeServiceImpl extends ServiceImpl getNoticeList(NoticeQuery query) { - Page page = new Page<>(query.getPageNum(), query.getPageSize()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.like(StrUtil.isNotBlank(query.getNoticeTitle()), SysNotice::getNoticeTitle, query.getNoticeTitle()); - lqw.like(StrUtil.isNotBlank(query.getNoticeType()), SysNotice::getNoticeType, query.getNoticeType()); - lqw.eq(StrUtil.isNotBlank(query.getNoticeType()), SysNotice::getNoticeType, query.getNoticeType()); - page(page, lqw); - List records = page.getRecords(); - List noticeVOList = records.stream().map(sysNotice -> { - NoticeVO noticeVO = new NoticeVO(sysNotice); - Long creatorId = sysNotice.getUpdateBy(); - String creatorName = userService.getUserByUserId(creatorId).getUsername(); - noticeVO.setCreatorName(creatorName); - return noticeVO; - }).toList(); - return new PageR<>(page, noticeVOList); + QueryWrapper queryWrapper = new QueryWrapper() + .like(StrUtil.isNotEmpty(query.getNoticeTitle()), "notice_title", query.getNoticeTitle()) + .eq(StrUtil.isNotEmpty(query.getNoticeType()), "notice_type", query.getNoticeType()) + .eq("n.deleted", 0) + .like(StrUtil.isNotEmpty(query.getCreatorName()), "u.username", query.getCreatorName()); + Page page = this.baseMapper.getNoticeList(query.toPage(), queryWrapper); + + Set userIds = page.getRecords().stream().map(SysNotice::getCreateBy).collect(Collectors.toSet()); + Map idNameMap = userService.geIdNameByIds(userIds); + page.getRecords().forEach(sysNotice -> { + Long creatorId = sysNotice.getCreateBy(); + String creatorName = idNameMap.get(creatorId); + sysNotice.setSearchValue(creatorName); + }); + IPage convert = page.convert(NoticeVO::new); + return new PageR<>(convert); } @Override @@ -66,36 +66,26 @@ public class SysNoticeServiceImpl extends ServiceImpl edit(@RequestBody UpdatePostDTO updateCommand) { sysPostService.updatePost(updateCommand); return R.ok(); @@ -81,7 +81,7 @@ public class SysPostController { /** * 删除岗位 */ - @DeleteMapping + @PostMapping("/del") public R remove(@RequestBody @NotNull @NotEmpty List ids) { sysPostService.deletePost(ids); return R.ok(); diff --git a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/service/impl/SysPostServiceImpl.java b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/service/impl/SysPostServiceImpl.java index 787b5c6..eec24e1 100644 --- a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/service/impl/SysPostServiceImpl.java +++ b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/post/service/impl/SysPostServiceImpl.java @@ -1,7 +1,6 @@ package com.agileboot.system.post.service.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.util.StrUtil; import com.agileboot.common.core.exception.BizException; import com.agileboot.common.core.exception.error.ErrorCode; import com.agileboot.common.mybatis.core.page.PageR; @@ -12,8 +11,7 @@ import com.agileboot.system.post.dto.UpdatePostDTO; import com.agileboot.system.post.entity.SysPost; import com.agileboot.system.post.mapper.SysPostMapper; import com.agileboot.system.post.service.ISysPostService; -import com.agileboot.system.user.entity.SysUser; -import com.agileboot.system.user.mapper.SysUserMapper; +import com.agileboot.system.user.service.ISysUserService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -22,16 +20,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; -import java.time.LocalDate; import java.util.List; -import java.util.Objects; import java.util.stream.Collectors; @Service public class SysPostServiceImpl extends ServiceImpl implements ISysPostService { @Resource - private SysUserMapper sysUserMapper; + private ISysUserService sysUserService; @Override public PostVO getPostInfo(Long postId) { @@ -47,21 +43,9 @@ public class SysPostServiceImpl extends ServiceImpl impl */ @Override public PageR getPostList(PostQuery query) { - String postCode = query.getPostCode(); - String postName = query.getPostName(); - LocalDate beginTime = query.getBeginTime(); - LocalDate endTime = query.getEndTime(); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.like(StrUtil.isNotBlank(postCode), SysPost::getPostCode, postCode); - lqw.like(StrUtil.isNotBlank(postName), SysPost::getPostName, postName); - lqw.eq(Objects.nonNull(query.getStatus()), SysPost::getStatus, query.getStatus()); - lqw.between(Objects.nonNull(beginTime) && Objects.nonNull(endTime), SysPost::getCreateTime, beginTime, endTime); - Page page = new Page<>(query.getPageNum(), query.getPageSize()); - page(page, lqw); - List records = page.getRecords(); - List convert = records.stream().map(PostVO::new).collect(Collectors.toList()); - - return new PageR<>(page,convert); + Page page = super.page(query.toPage(), query.toQueryWrapper()); + IPage convert = page.convert(PostVO::new); + return new PageR<>(convert); } /** @@ -112,11 +96,7 @@ public class SysPostServiceImpl extends ServiceImpl impl @Override public void deletePost(List ids) { // 检测职位是否分配给用户 - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(SysUser.class) - .in(SysUser::getPostId, ids); - if (sysUserMapper.exists(queryWrapper)) { - throw new BizException(ErrorCode.Business.POST_ALREADY_ASSIGNED_TO_USER_CAN_NOT_BE_DELETED); - } + sysUserService.checkAnyPostIsAssignedToUser(ids); super.removeBatchByIds(ids); } diff --git a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/user/service/ISysUserService.java b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/user/service/ISysUserService.java index ca147b5..6b9ffce 100644 --- a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/user/service/ISysUserService.java +++ b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/user/service/ISysUserService.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import java.util.List; +import java.util.Map; import java.util.Set; public interface ISysUserService { @@ -40,4 +41,8 @@ public interface ISysUserService { void updateBatchRoleId(Long roleId, List userIds); void deleteBatchRoleId(List userIds); + + void checkAnyPostIsAssignedToUser(List ids); + + Map geIdNameByIds(Set userIds); } diff --git a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/user/service/impl/SysUserServiceImpl.java b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/user/service/impl/SysUserServiceImpl.java index 4ec8408..4f79e98 100644 --- a/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/user/service/impl/SysUserServiceImpl.java +++ b/agileboot-system/agileboot-system-base/src/main/java/com/agileboot/system/user/service/impl/SysUserServiceImpl.java @@ -25,8 +25,10 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Set; +import java.util.stream.Collectors; @Service public class SysUserServiceImpl extends ServiceImpl implements ISysUserService { @@ -202,4 +204,28 @@ public class SysUserServiceImpl extends ServiceImpl impl .in(SysUser::getUserId, userIds); super.update(updateWrapper); } + + /** + * 检测职位是否分配给用户 + */ + @Override + public void checkAnyPostIsAssignedToUser(List ids) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(SysUser.class) + .in(SysUser::getPostId, ids); + if (super.exists(queryWrapper)) { + throw new BizException(ErrorCode.Business.POST_ALREADY_ASSIGNED_TO_USER_CAN_NOT_BE_DELETED); + } + } + + @Override + public Map geIdNameByIds(Set userIds) { + if (userIds.isEmpty()) { + return Map.of(); + } + return super.list(Wrappers.lambdaQuery(SysUser.class) + .select(SysUser::getUserId, SysUser::getUsername) + .in(SysUser::getUserId, userIds)) + .stream() + .collect(Collectors.toMap(SysUser::getUserId, SysUser::getUsername)); + } } diff --git a/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeAddDTO.java b/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeAddDTO.java index f771459..54abfd2 100644 --- a/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeAddDTO.java +++ b/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeAddDTO.java @@ -17,7 +17,7 @@ public class NoticeAddDTO { @Size(max = 50, message = "公告标题不能超过50个字符") protected String noticeTitle; - protected String noticeType; + protected Integer noticeType; /** * 想要支持富文本的话, 避免Xss过滤的话, 请加上@JsonDeserialize(using = StringDeserializer.class) 注解 @@ -26,6 +26,6 @@ public class NoticeAddDTO { @JsonDeserialize(using = StringDeserializer.class) protected String noticeContent; - protected String status; + protected Integer status; } diff --git a/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeVO.java b/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeVO.java index a43e87b..2614c44 100644 --- a/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeVO.java +++ b/wol-domain/src/main/java/com/agileboot/system/notice/dto/NoticeVO.java @@ -19,6 +19,7 @@ public class NoticeVO { this.noticeContent = entity.getNoticeContent(); this.status = entity.getStatus(); this.createTime = entity.getCreateTime(); + this.creatorName = entity.getSearchValue(); } } @@ -31,7 +32,6 @@ public class NoticeVO { private String noticeContent; private Integer status; - private String creator; private Date createTime; diff --git a/wol-domain/src/main/java/com/agileboot/system/post/dto/PostQuery.java b/wol-domain/src/main/java/com/agileboot/system/post/dto/PostQuery.java index 24a8ef1..a5138a9 100644 --- a/wol-domain/src/main/java/com/agileboot/system/post/dto/PostQuery.java +++ b/wol-domain/src/main/java/com/agileboot/system/post/dto/PostQuery.java @@ -1,11 +1,14 @@ package com.agileboot.system.post.dto; +import cn.hutool.core.util.StrUtil; import com.agileboot.common.mybatis.core.page.PageQuery; import com.agileboot.system.post.entity.SysPost; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.Data; import java.time.LocalDate; +import java.util.Objects; /** * @author valarchie @@ -21,6 +24,10 @@ public class PostQuery extends PageQuery { @Override public LambdaQueryWrapper toQueryWrapper() { - return null; + return Wrappers.lambdaQuery(SysPost.class) + .like(StrUtil.isNotBlank(postCode), SysPost::getPostCode, postCode) + .like(StrUtil.isNotBlank(postName), SysPost::getPostName, postName) + .eq(Objects.nonNull(status), SysPost::getStatus, status) + .between(Objects.nonNull(beginTime) && Objects.nonNull(endTime), SysPost::getCreateTime, beginTime, endTime); } }