pom.xml
@@ -95,15 +95,24 @@ <artifactId>spring-boot-starter-undertow</artifactId> <version>${spring.boot.version}</version> </dependency> <!--MyBatis Plus 依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</version> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.4</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> <exclusions> <exclusion> <artifactId>jsqlparser</artifactId> <groupId>com.github.jsqlparser</groupId> </exclusion> </exclusions> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-aop --> src/main/java/com/mindskip/xzs/configuration/plus/MybatisPlusConfig.java
New file @@ -0,0 +1,24 @@ package com.mindskip.xzs.configuration.plus; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author xp * @date 2024/3/6 */ @Configuration public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 配置分页插件 interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } } src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java
@@ -6,7 +6,10 @@ import com.mindskip.xzs.domain.Department; import com.mindskip.xzs.domain.User; import com.mindskip.xzs.domain.UserDepartment; import com.mindskip.xzs.domain.vo.BaseSelect; import com.mindskip.xzs.domain.vo.DepartmentVO; import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO; import com.mindskip.xzs.domain.vo.UserVO; import com.mindskip.xzs.repository.UserDepartmentMapper; import com.mindskip.xzs.service.DepartmentService; import com.mindskip.xzs.service.UserService; @@ -30,6 +33,24 @@ private final UserService userService; private final UserDepartmentMapper userDepartmentMapper; /** * 获取部门下用户列表(下拉) * @param deptId * @return */ @GetMapping("/{id}/user-list") public RestResponse<List<BaseSelect>> getDeptUserList(@PathVariable("id") Integer deptId) { List<BaseSelect> data = departmentService.getDeptUserList(deptId); return RestResponse.ok(data); } @PostMapping("/update-admin") public RestResponse updateAdmin(@RequestBody UpdateDeptAdminVO form) { departmentService.updateAdmin(form); return RestResponse.ok(); } @Autowired public DepartmentController(DepartmentService departmentService, UserService userService, UserDepartmentMapper userDepartmentMapper) { this.departmentService = departmentService; @@ -46,12 +67,8 @@ @RequestMapping(value = "/page/list", method = RequestMethod.POST) public RestResponse<PageInfo<DepartmentResponseVM>> pageList(@RequestBody DepartmentResponseVM model) { PageInfo<Department> pageInfo = departmentService.gets(model); PageInfo<DepartmentResponseVM> page = PageInfoHelper.copyMap(pageInfo, q -> { DepartmentResponseVM vm = modelMapper.map(q,DepartmentResponseVM.class); return vm; }); return RestResponse.ok(page); PageInfo<DepartmentResponseVM> pageInfo = departmentService.gets(model); return RestResponse.ok(pageInfo); } @RequestMapping(value = "/add", method = RequestMethod.POST) src/main/java/com/mindskip/xzs/domain/Department.java
@@ -1,47 +1,22 @@ package com.mindskip.xzs.domain; import lombok.Data; import javax.sql.rowset.serial.SerialArray; import java.io.Serializable; @Data public class Department implements Serializable { private Integer id; private String name; /** * 部门管理员 */ private Integer adminId; private String deleted; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDeleted() { return deleted; } public void setDeleted(String deleted) { this.deleted = deleted; } @Override public String toString() { return "Department{" + "id=" + id + ", name='" + name + '\'' + ", deleted='" + deleted + '\'' + '}'; } } src/main/java/com/mindskip/xzs/domain/vo/BaseSelect.java
New file @@ -0,0 +1,22 @@ package com.mindskip.xzs.domain.vo; import lombok.Data; /** * @author:xp * @date:2024/3/8 11:24 */ @Data public class BaseSelect { /** * id */ private Integer id; /** * 下拉选项值 */ private String value; } src/main/java/com/mindskip/xzs/domain/vo/UpdateDeptAdminVO.java
New file @@ -0,0 +1,29 @@ package com.mindskip.xzs.domain.vo; import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** * 修改部门管理员 * * @author:xp * @date:2024/3/8 13:55 */ @Data public class UpdateDeptAdminVO { /** * 部门 */ @NotNull(message = "部门不能为空") private Integer id; /** * 管理员,userId */ @NotNull(message = "部门管理员不能为空") private Integer deptAdmin; } src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java
@@ -15,7 +15,7 @@ List<Department> gets(); List<Department> page(DepartmentResponseVM departmentResponseVM); List<DepartmentResponseVM> page(DepartmentResponseVM departmentResponseVM); Department getName(String name); src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
@@ -1,13 +1,14 @@ package com.mindskip.xzs.repository; import com.mindskip.xzs.domain.UserDepartment; import com.mindskip.xzs.domain.vo.BaseSelect; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper public interface UserDepartmentMapper extends BaseMapper<UserDepartment>{ public interface UserDepartmentMapper extends BaseMapper<UserDepartment> { List<UserDepartment> selectByUserId(@Param("userId") Integer userId); @@ -19,4 +20,6 @@ UserDepartment selectByUser(Integer id); void updateUserDepartMent(UserDepartment userDepartment); List<BaseSelect> getDeptUserList(Integer deptId); } src/main/java/com/mindskip/xzs/service/DepartmentService.java
@@ -3,6 +3,8 @@ import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.Department; import com.mindskip.xzs.domain.Question; import com.mindskip.xzs.domain.vo.BaseSelect; import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO; import com.mindskip.xzs.viewmodel.admin.department.DepartmentResponseVM; import java.util.List; @@ -34,11 +36,19 @@ * 查询所有部门 * @return */ PageInfo<Department> gets(DepartmentResponseVM departmentResponseVM); PageInfo<DepartmentResponseVM> gets(DepartmentResponseVM departmentResponseVM); Department getById(Integer id); List<Department> gets(); Department getName(String name); List<BaseSelect> getDeptUserList(Integer deptId); /** * 修改部门管理员 * @param form */ void updateAdmin(UpdateDeptAdminVO form); } src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
@@ -1,8 +1,12 @@ package com.mindskip.xzs.service.impl; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.Department; import com.mindskip.xzs.domain.UserDepartment; import com.mindskip.xzs.domain.vo.BaseSelect; import com.mindskip.xzs.domain.vo.UpdateDeptAdminVO; import com.mindskip.xzs.repository.BaseMapper; import com.mindskip.xzs.repository.DepartmentMapper; import com.mindskip.xzs.repository.UserDepartmentMapper; @@ -14,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Objects; @Service public class DepartmentServiceImpl extends BaseServiceImpl<Department> implements DepartmentService { @@ -48,12 +53,12 @@ @Transactional(rollbackFor = Exception.class) @Override public Integer update(Department department) { userDepartmentMapper.removeByDepartmentId(department.getId()); // userDepartmentMapper.removeByDepartmentId(department.getId()); return departmentMapper.update(department); } @Override public PageInfo<Department> gets(DepartmentResponseVM departmentResponseVM) { public PageInfo<DepartmentResponseVM> gets(DepartmentResponseVM departmentResponseVM) { return PageHelper.startPage(departmentResponseVM.getPageIndex(), departmentResponseVM.getPageSize(), "id desc").doSelectPageInfo(() -> departmentMapper.page(departmentResponseVM) ); @@ -73,4 +78,24 @@ public Department getName(String name) { return departmentMapper.getName(name); } /** * 获取部门用户下拉列表 * @param deptId * @return */ @Override public List<BaseSelect> getDeptUserList(Integer deptId) { return userDepartmentMapper.getDeptUserList(deptId); } @Override public void updateAdmin(UpdateDeptAdminVO form) { Department department = departmentMapper.getById(form.getId()); if (Objects.isNull(department)) { throw new RuntimeException("该部门不存在"); } department.setAdminId(form.getDeptAdmin()); departmentMapper.update(department); } } src/main/java/com/mindskip/xzs/viewmodel/admin/department/DepartmentResponseVM.java
@@ -1,7 +1,9 @@ package com.mindskip.xzs.viewmodel.admin.department; import com.mindskip.xzs.base.BasePage; import lombok.Data; @Data public class DepartmentResponseVM extends BasePage { @@ -9,38 +11,10 @@ private String name; private String deleted; /** * 管理员 */ private Integer adminId; private String adminName; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDeleted() { return deleted; } public void setDeleted(String deleted) { this.deleted = deleted; } @Override public String toString() { return "Department{" + "id=" + id + ", name='" + name + '\'' + ", deleted='" + deleted + '\'' + '}'; } } src/main/resources/application-dev.yml
@@ -1,9 +1,16 @@ logging: path: ./log/ #spring: # datasource: # url: jdbc:mysql://80.36.32.171:3306/xzs?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true # username: root # password: qirong_123 # driver-class-name: com.mysql.cj.jdbc.Driver spring: datasource: url: jdbc:mysql://80.36.32.171:3306/xzs?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true url: jdbc:mysql://42.193.1.25:3306/qyxzs?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true username: root password: qirong_123 password: 321$YcYl@1970! driver-class-name: com.mysql.cj.jdbc.Driver src/main/resources/mapper/DepartmentMapper.xml
@@ -13,8 +13,8 @@ </sql> <insert id="add" parameterType="com.mindskip.xzs.domain.Department" useGeneratedKeys="true" keyProperty="id"> insert into t_department (name, deleted) values (#{name,jdbcType=VARCHAR}, #{deleted,jdbcType=VARCHAR}) insert into t_department (name, admin_id, deleted) values (#{name,jdbcType=VARCHAR}, {#{adminId}, #{deleted,jdbcType=VARCHAR}) </insert> <update id="update" parameterType="com.mindskip.xzs.domain.Department"> @@ -22,6 +22,9 @@ <set> <if test="name != null"> name = #{name,jdbcType=VARCHAR}, </if> <if test="adminId != null"> admin_id = #{adminId}, </if> <if test="deleted != null"> deleted = #{deleted,jdbcType=VARCHAR}, @@ -31,38 +34,63 @@ </update> <select id="gets" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from t_department where deleted=0 SELECT td.id, td.name, td.admin_id as adminId, tu.real_name as adminName FROM t_department td LEFT JOIN t_user tu ON td.admin_id = tu.id AND tu.deleted = 0 WHERE td.deleted = 0 </select> <select id="getById" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from t_department where deleted=0 and id = #{id} SELECT td.id, td.name, td.admin_id as adminId, tu.real_name as adminName FROM t_department td LEFT JOIN t_user tu ON td.admin_id = tu.id AND tu.deleted = 0 WHERE td.id = #{id} AND td.deleted = 0 </select> <select id="page" resultMap="BaseResultMap" <select id="page" resultType="com.mindskip.xzs.viewmodel.admin.department.DepartmentResponseVM" parameterType="com.mindskip.xzs.viewmodel.admin.department.DepartmentResponseVM"> SELECT <include refid="Base_Column_List"/> FROM t_department td.id, td.name, td.admin_id as adminId, tu.real_name as adminName FROM t_department td LEFT JOIN t_user tu ON td.admin_id = tu.id AND tu.deleted = 0 <where> and deleted=0 AND td.deleted = 0 <if test="id != null "> and id= #{id} AND td.id= #{id} </if> <if test="name != null "> and name like concat('%',#{name},'%') AND td.name like concat('%',#{name},'%') </if> </where> </select> <select id="getName" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from t_department where deleted=0 and name = #{name} SELECT td.id, td.name, td.admin_id as adminId, tu.real_name as adminName FROM t_department td LEFT JOIN t_user tu ON td.admin_id = tu.id AND tu.deleted = 0 WHERE td.name = #{name} AND td.deleted = 0 </select> </mapper> src/main/resources/mapper/UserDepartmentMapper.xml
@@ -53,4 +53,17 @@ </set> where id = #{id} </update> </mapper> <select id="getDeptUserList" resultType="com.mindskip.xzs.domain.vo.BaseSelect" > SELECT tu.id, tu.real_name as 'value' FROM t_user tu INNER JOIN t_user_department tud ON tud.user_id = tu.id <where> AND tud.department_id = #{depId} </where> </select> </mapper>