From e7a1fc0149eaf1a44cb80aa30986af43109c55e9 Mon Sep 17 00:00:00 2001 From: lhx Date: Tue, 25 Nov 2025 18:21:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dc_project/config/SaTokenConfigure.java | 9 +-- .../controller/PersonnelController.java | 29 +++++++++ .../controller/sys/UserController.java | 8 +-- .../dc/dc_project/mapper/PersonnelMapper.java | 14 +++++ .../com/dc/dc_project/mapper/UserMapper.java | 3 +- .../dc/dc_project/model/dto/PersonnelDto.java | 26 ++++++++ .../dc_project/model/dto/user/UserAddDto.java | 20 +++++++ .../dc_project/model/vo/PersonnelListVo.java | 36 +++++++++++ .../dc_project/service/PersonnelService.java | 10 ++++ .../dc/dc_project/service/UserService.java | 9 ++- .../service/impl/OrgServiceImpl.java | 3 +- .../service/impl/PersonnelServiceImpl.java | 42 +++++++++++++ .../service/impl/UserServiceImpl.java | 42 +++++++++---- src/main/resources/mapper/OrgMapper.xml | 8 ++- src/main/resources/mapper/PersonnelMapper.xml | 18 ++++++ src/main/resources/mapper/UserMapper.xml | 60 ++++++++++++------- 16 files changed, 291 insertions(+), 46 deletions(-) create mode 100644 src/main/java/com/dc/dc_project/controller/PersonnelController.java create mode 100644 src/main/java/com/dc/dc_project/model/dto/PersonnelDto.java create mode 100644 src/main/java/com/dc/dc_project/model/dto/user/UserAddDto.java create mode 100644 src/main/java/com/dc/dc_project/model/vo/PersonnelListVo.java diff --git a/src/main/java/com/dc/dc_project/config/SaTokenConfigure.java b/src/main/java/com/dc/dc_project/config/SaTokenConfigure.java index 12fb256..4a6d3ff 100644 --- a/src/main/java/com/dc/dc_project/config/SaTokenConfigure.java +++ b/src/main/java/com/dc/dc_project/config/SaTokenConfigure.java @@ -20,10 +20,11 @@ public class SaTokenConfigure implements WebMvcConfigurer { System.out.println("----- SaToken 拦截器启动成功!"); registry .addInterceptor(new SaInterceptor(h -> { - SaRouter - .match("/**") - .notMatch("/auth/**") - .check(r -> StpUtil.checkLogin()); + SaRouter.match("/**", "/auth/**", r -> StpUtil.checkLogin()); + //SaRouter + // .match("/**") + // .notMatch("/auth/**") + // .check(r -> StpUtil.checkLogin()); })) .addPathPatterns("/**"); } diff --git a/src/main/java/com/dc/dc_project/controller/PersonnelController.java b/src/main/java/com/dc/dc_project/controller/PersonnelController.java new file mode 100644 index 0000000..0872126 --- /dev/null +++ b/src/main/java/com/dc/dc_project/controller/PersonnelController.java @@ -0,0 +1,29 @@ +package com.dc.dc_project.controller; + + +import cn.dev33.satoken.stp.StpUtil; +import com.dc.dc_project.common.ResponseResult; +import com.dc.dc_project.common.aop.DcCheckPermission; +import com.dc.dc_project.model.dto.PersonnelDto; +import com.dc.dc_project.service.PersonnelService; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/personnel") +public class PersonnelController { + + private final PersonnelService personnelService; + + @PostMapping("/list") + @DcCheckPermission("system:personnel:list") + public ResponseResult list(@RequestBody PersonnelDto personnelDto) { + Long userId = StpUtil.getLoginIdAsLong(); + return personnelService.getList(personnelDto, userId); + } +} diff --git a/src/main/java/com/dc/dc_project/controller/sys/UserController.java b/src/main/java/com/dc/dc_project/controller/sys/UserController.java index 5b6981b..c1cba39 100644 --- a/src/main/java/com/dc/dc_project/controller/sys/UserController.java +++ b/src/main/java/com/dc/dc_project/controller/sys/UserController.java @@ -6,6 +6,7 @@ import cn.dev33.satoken.stp.StpUtil; import com.dc.dc_project.common.ResponseResult; import com.dc.dc_project.common.aop.DcCheckPermission; import com.dc.dc_project.model.dto.user.UpdateUserPasswordDto; +import com.dc.dc_project.model.dto.user.UserAddDto; import com.dc.dc_project.model.dto.user.UserInfoUpdateDto; import com.dc.dc_project.model.dto.user.UserReqDto; import com.dc.dc_project.model.pojo.RecordResult; @@ -37,13 +38,12 @@ public class UserController { @PostMapping("/getUserInfo") ResponseResult getUserInfo() { Long userId = StpUtil.getLoginIdAsLong(); - List permissions = StpUtil.getPermissionList(); - return userService.getUserInfo(); + return userService.getUserInfo(userId); } @PostMapping("/save") - ResponseResult save(@RequestBody User user) { - return ResponseResult.success(); + ResponseResult save(@RequestBody UserAddDto user) { + return userService.save(user); } @PostMapping("/updateInfo") diff --git a/src/main/java/com/dc/dc_project/mapper/PersonnelMapper.java b/src/main/java/com/dc/dc_project/mapper/PersonnelMapper.java index d5c17db..d1dc5ea 100644 --- a/src/main/java/com/dc/dc_project/mapper/PersonnelMapper.java +++ b/src/main/java/com/dc/dc_project/mapper/PersonnelMapper.java @@ -1,8 +1,14 @@ package com.dc.dc_project.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.dc.dc_project.model.dto.PersonnelDto; import com.dc.dc_project.model.pojo.Personnel; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dc.dc_project.model.vo.PersonnelListVo; import com.dc.dc_project.model.vo.PersonnelVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author ADMIN @@ -13,6 +19,14 @@ import com.dc.dc_project.model.vo.PersonnelVo; public interface PersonnelMapper extends BaseMapper { PersonnelVo getVoByUserId(Long id); + + /** + * 获取人员列表 + * @param personnelDto + * @param orgIds + * @return + */ + Page getPage(@Param("personnelDto") PersonnelDto personnelDto,@Param("orgIds") List orgIds); } diff --git a/src/main/java/com/dc/dc_project/mapper/UserMapper.java b/src/main/java/com/dc/dc_project/mapper/UserMapper.java index 2b5ee1d..a9fe959 100644 --- a/src/main/java/com/dc/dc_project/mapper/UserMapper.java +++ b/src/main/java/com/dc/dc_project/mapper/UserMapper.java @@ -1,5 +1,6 @@ package com.dc.dc_project.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dc.dc_project.model.dto.user.LoginDto; import com.dc.dc_project.model.dto.user.UserReqDto; import com.dc.dc_project.model.pojo.User; @@ -17,7 +18,7 @@ import java.util.List; */ public interface UserMapper extends BaseMapper { - List getUserListBySelf(@Param("userReqDto") UserReqDto userReqDto,@Param("pOrgId") Long pOrgId); + Page getUserListByAll(@Param("userReqDto") UserReqDto userReqDto, @Param("orgIds") List orgIds); } diff --git a/src/main/java/com/dc/dc_project/model/dto/PersonnelDto.java b/src/main/java/com/dc/dc_project/model/dto/PersonnelDto.java new file mode 100644 index 0000000..ccaccf9 --- /dev/null +++ b/src/main/java/com/dc/dc_project/model/dto/PersonnelDto.java @@ -0,0 +1,26 @@ +package com.dc.dc_project.model.dto; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.dc.dc_project.model.pojo.Personnel; +import lombok.Data; + +@Data +public class PersonnelDto extends Page { + + private String name; + + private String contactPhone; + + private String email; + + private Integer sex; + + private String mainResponsibility; + + private String remark; + + private Integer status; + + private Long orgId; +} diff --git a/src/main/java/com/dc/dc_project/model/dto/user/UserAddDto.java b/src/main/java/com/dc/dc_project/model/dto/user/UserAddDto.java new file mode 100644 index 0000000..f2ccece --- /dev/null +++ b/src/main/java/com/dc/dc_project/model/dto/user/UserAddDto.java @@ -0,0 +1,20 @@ +package com.dc.dc_project.model.dto.user; + + +import lombok.Data; + +@Data +public class UserAddDto { + + private Long personnel_id; + + private String username; + + private String password; + + private String phone; + + private String email; + + private String remark; +} diff --git a/src/main/java/com/dc/dc_project/model/vo/PersonnelListVo.java b/src/main/java/com/dc/dc_project/model/vo/PersonnelListVo.java new file mode 100644 index 0000000..ddfa93e --- /dev/null +++ b/src/main/java/com/dc/dc_project/model/vo/PersonnelListVo.java @@ -0,0 +1,36 @@ +package com.dc.dc_project.model.vo; + + +import lombok.Data; + +@Data +public class PersonnelListVo { + + private Long id; + + private String name; + + private String sex; + + private String contactPhone; + + private String email; + + private String mainResponsibility; + + private String remark; + + private String avatar; + + private String status; + + private Long orgId; + + private String orgName; + + private Long positionId; + + private String positionName; + + private Long userId; +} diff --git a/src/main/java/com/dc/dc_project/service/PersonnelService.java b/src/main/java/com/dc/dc_project/service/PersonnelService.java index 2adce4c..fa50795 100644 --- a/src/main/java/com/dc/dc_project/service/PersonnelService.java +++ b/src/main/java/com/dc/dc_project/service/PersonnelService.java @@ -1,5 +1,7 @@ package com.dc.dc_project.service; +import com.dc.dc_project.common.ResponseResult; +import com.dc.dc_project.model.dto.PersonnelDto; import com.dc.dc_project.model.pojo.Personnel; import com.baomidou.mybatisplus.extension.service.IService; @@ -16,4 +18,12 @@ public interface PersonnelService extends IService { * @return */ Personnel getOneByUserId(Long userId); + + /** + * 获取人员列表 + * @param personnelDto + * @param userId + * @return + */ + ResponseResult getList(PersonnelDto personnelDto, Long userId); } diff --git a/src/main/java/com/dc/dc_project/service/UserService.java b/src/main/java/com/dc/dc_project/service/UserService.java index c6c73c7..0850fd1 100644 --- a/src/main/java/com/dc/dc_project/service/UserService.java +++ b/src/main/java/com/dc/dc_project/service/UserService.java @@ -2,6 +2,7 @@ package com.dc.dc_project.service; import com.dc.dc_project.common.ResponseResult; import com.dc.dc_project.model.dto.user.LoginDto; +import com.dc.dc_project.model.dto.user.UserAddDto; import com.dc.dc_project.model.dto.user.UserReqDto; import com.dc.dc_project.model.pojo.RecordResult; import com.dc.dc_project.model.pojo.User; @@ -28,7 +29,7 @@ public interface UserService extends IService { * 获取用户信息 * @return */ - ResponseResult getUserInfo(); + ResponseResult getUserInfo(Long userId); /** * 用户列表 @@ -37,4 +38,10 @@ public interface UserService extends IService { * @return */ ResponseResult UserList(UserReqDto userReqDto, Long userId); + + /** + * 人员新增用户 + * @param user + */ + ResponseResult save(UserAddDto user); } diff --git a/src/main/java/com/dc/dc_project/service/impl/OrgServiceImpl.java b/src/main/java/com/dc/dc_project/service/impl/OrgServiceImpl.java index 1612ac3..cb47e3f 100644 --- a/src/main/java/com/dc/dc_project/service/impl/OrgServiceImpl.java +++ b/src/main/java/com/dc/dc_project/service/impl/OrgServiceImpl.java @@ -65,7 +65,8 @@ public class OrgServiceImpl extends ServiceImpl @Override public List getCListByOrgId(Long pOrgId) { - List< Long> cList = baseMapper.getCListByOrgId(pOrgId); + List cList = baseMapper.getCListByOrgId(pOrgId); + return cList; } } diff --git a/src/main/java/com/dc/dc_project/service/impl/PersonnelServiceImpl.java b/src/main/java/com/dc/dc_project/service/impl/PersonnelServiceImpl.java index d436f19..bf3ab3e 100644 --- a/src/main/java/com/dc/dc_project/service/impl/PersonnelServiceImpl.java +++ b/src/main/java/com/dc/dc_project/service/impl/PersonnelServiceImpl.java @@ -1,13 +1,28 @@ package com.dc.dc_project.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dc.dc_project.common.ResponseResult; +import com.dc.dc_project.enums.DataScopeType; +import com.dc.dc_project.enums.IsDeleted; +import com.dc.dc_project.mapper.OrgMapper; +import com.dc.dc_project.model.dto.PersonnelDto; +import com.dc.dc_project.model.pojo.Org; import com.dc.dc_project.model.pojo.Personnel; +import com.dc.dc_project.model.vo.PersonnelListVo; +import com.dc.dc_project.model.vo.PersonnelVo; +import com.dc.dc_project.service.OrgService; import com.dc.dc_project.service.PersonnelService; import com.dc.dc_project.mapper.PersonnelMapper; +import com.dc.dc_project.utils.PermissionUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; +import java.util.List; + /** * @author ADMIN * @description 针对表【sys_personnel(人员台账表)】的数据库操作Service实现 @@ -15,9 +30,15 @@ import lombok.extern.slf4j.Slf4j; */ @Service @Slf4j +@RequiredArgsConstructor(onConstructor_ = @Autowired) public class PersonnelServiceImpl extends ServiceImpl implements PersonnelService{ + private final PersonnelMapper personnelMapper; + private final OrgMapper orgMapper; + private final OrgService orgService; + + @Override public Personnel getOneByUserId(Long userId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() @@ -25,6 +46,27 @@ public class PersonnelServiceImpl extends ServiceImpl orgIds = null; + if (dataScopeType != null) { + orgIds = switch (dataScopeType) { + case SELF -> orgService.getCListByOrgId(pOrgId); + case ALL -> orgService.list(new LambdaQueryWrapper().eq(Org::getIsDeleted, IsDeleted.NO.getCode())).stream().map(Org::getId).toList(); + default -> List.of(pOrgId); + }; + } + + Page page = baseMapper.getPage(personnelDto, orgIds); + + return null; + } } diff --git a/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java b/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java index a960148..26075a9 100644 --- a/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java +++ b/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java @@ -2,12 +2,15 @@ package com.dc.dc_project.service.impl; import cn.dev33.satoken.stp.StpUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dc.dc_project.common.ResponseResult; import com.dc.dc_project.common.ResultCode; import com.dc.dc_project.enums.DataScopeType; +import com.dc.dc_project.enums.IsDeleted; import com.dc.dc_project.mapper.*; import com.dc.dc_project.model.dto.user.LoginDto; +import com.dc.dc_project.model.dto.user.UserAddDto; import com.dc.dc_project.model.dto.user.UserReqDto; import com.dc.dc_project.model.pojo.*; import com.dc.dc_project.model.vo.PersonnelVo; @@ -24,9 +27,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; import static com.dc.dc_project.model.vo.PersonnelVo.toVo; @@ -89,9 +94,9 @@ public class UserServiceImpl extends ServiceImpl } @Override - public ResponseResult getUserInfo() { + public ResponseResult getUserInfo(Long userId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() - .eq(User::getId, StpUtil.getLoginIdAsLong()) + .eq(User::getId, userId) .eq(User::getIsDeleted, 0) .eq(User::getStatus, 1); User user = baseMapper.selectOne(queryWrapper); @@ -113,23 +118,27 @@ public class UserServiceImpl extends ServiceImpl Personnel personnel = personnelService.getOneByUserId(userId); Long pOrgId = orgMapper.getOrgIdByPersonnelId(personnel.getId()); + // 管理员 + if(pOrgId == null && StpUtil.getRoleList().get(0).equals("admin")){ + pOrgId = 1L; + dataScopeType = DataScopeType.ALL; + } + List orgIds = new ArrayList<>(); - List userVos = new ArrayList<>(); + Page userVos; if (dataScopeType != null) { switch (dataScopeType){ - case DataScopeType.SELF: + case SELF: orgIds.addAll(orgService.getCListByOrgId(pOrgId)); break; - case DataScopeType.ALL : - userVos = baseMapper.getUserListByAll(userReqDto); + case ALL : + orgIds.addAll(orgService.list(new LambdaQueryWrapper().eq(Org::getIsDeleted, IsDeleted.NO.getCode())).stream().map(Org::getId).toList()); break; default: - if(userReqDto.getOrgId() != null && !userReqDto.getOrgId().equals(pOrgId)){ - return ResponseResult.error(ResultCode.NO_PERMISSION); - } - userVos = baseMapper.getUserListByCustom(userReqDto, pOrgId); + orgIds.add(pOrgId); + break; } } else { @@ -138,8 +147,19 @@ public class UserServiceImpl extends ServiceImpl userVos = baseMapper.getUserListByAll(userReqDto, orgIds); + return ResponseResult.success(userVos); + } - return null; + @Override + public ResponseResult save(UserAddDto userDto) { + User user = new User(); + user.setUsername(userDto.getUsername()); + user.setPassword(userDto.getPassword()); + user.setPhone(userDto.getPhone()); + user.setStatus(1); + user.setCreatedAt(LocalDateTime.now()); + user.setUpdatedAt(LocalDateTime.now()); + return this.save(user) ? ResponseResult.success() : ResponseResult.error(); } } diff --git a/src/main/resources/mapper/OrgMapper.xml b/src/main/resources/mapper/OrgMapper.xml index 0257afd..f98afa7 100644 --- a/src/main/resources/mapper/OrgMapper.xml +++ b/src/main/resources/mapper/OrgMapper.xml @@ -10,9 +10,13 @@ remark,created_at,updated_at,is_deleted diff --git a/src/main/resources/mapper/PersonnelMapper.xml b/src/main/resources/mapper/PersonnelMapper.xml index 8f8b2f7..938377b 100644 --- a/src/main/resources/mapper/PersonnelMapper.xml +++ b/src/main/resources/mapper/PersonnelMapper.xml @@ -14,4 +14,22 @@ + diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index 412108c..80cb686 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -4,28 +4,6 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - - id,username,password,real_name,gender,phone, - email,org_id,status,last_login_time,remark, - created_at,updated_at,is_deleted - +