From 7cd87e30ed364aa6806eaa28939ea94ad1524a50 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 08 三月 2024 14:46:50 +0800 Subject: [PATCH] 部门增加管理员 --- src/main/java/com/mindskip/xzs/configuration/plus/MybatisPlusConfig.java | 24 ++++ src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java | 29 ++++ src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java | 5 pom.xml | 15 ++ src/main/java/com/mindskip/xzs/viewmodel/admin/department/DepartmentResponseVM.java | 40 +----- src/main/resources/mapper/DepartmentMapper.xml | 64 +++++++--- src/main/resources/mapper/UserDepartmentMapper.xml | 15 ++ src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java | 29 +++- src/main/java/com/mindskip/xzs/domain/Department.java | 41 +----- src/main/java/com/mindskip/xzs/service/DepartmentService.java | 12 + src/main/resources/application-dev.yml | 11 + src/main/java/com/mindskip/xzs/domain/vo/UpdateDeptAdminVO.java | 29 ++++ src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java | 2 src/main/java/com/mindskip/xzs/domain/vo/BaseSelect.java | 22 +++ 14 files changed, 237 insertions(+), 101 deletions(-) diff --git a/pom.xml b/pom.xml index a1db51a..e2408eb 100644 --- a/pom.xml +++ b/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 --> diff --git a/src/main/java/com/mindskip/xzs/configuration/plus/MybatisPlusConfig.java b/src/main/java/com/mindskip/xzs/configuration/plus/MybatisPlusConfig.java new file mode 100644 index 0000000..ed1cb21 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/configuration/plus/MybatisPlusConfig.java @@ -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; + } +} diff --git a/src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java b/src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java index b2ad052..ded0bc5 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java +++ b/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) diff --git a/src/main/java/com/mindskip/xzs/domain/Department.java b/src/main/java/com/mindskip/xzs/domain/Department.java index dc026c2..1df1c96 100644 --- a/src/main/java/com/mindskip/xzs/domain/Department.java +++ b/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 + '\'' + - '}'; - } } diff --git a/src/main/java/com/mindskip/xzs/domain/vo/BaseSelect.java b/src/main/java/com/mindskip/xzs/domain/vo/BaseSelect.java new file mode 100644 index 0000000..a0d01f0 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/domain/vo/BaseSelect.java @@ -0,0 +1,22 @@ +package com.mindskip.xzs.domain.vo; + +import lombok.Data; + +/** + * @author锛歺p + * @date锛�2024/3/8 11:24 + */ +@Data +public class BaseSelect { + + /** + * id + */ + private Integer id; + + /** + * 涓嬫媺閫夐」鍊� + */ + private String value; + +} diff --git a/src/main/java/com/mindskip/xzs/domain/vo/UpdateDeptAdminVO.java b/src/main/java/com/mindskip/xzs/domain/vo/UpdateDeptAdminVO.java new file mode 100644 index 0000000..166d9a1 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/domain/vo/UpdateDeptAdminVO.java @@ -0,0 +1,29 @@ +package com.mindskip.xzs.domain.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 淇敼閮ㄩ棬绠$悊鍛� + * + * @author锛歺p + * @date锛�2024/3/8 13:55 + */ +@Data +public class UpdateDeptAdminVO { + + /** + * 閮ㄩ棬 + */ + @NotNull(message = "閮ㄩ棬涓嶈兘涓虹┖") + private Integer id; + + /** + * 绠$悊鍛橈紝userId + */ + @NotNull(message = "閮ㄩ棬绠$悊鍛樹笉鑳戒负绌�") + private Integer deptAdmin; + +} diff --git a/src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java b/src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java index 5cabd55..2e92684 100644 --- a/src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java +++ b/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); diff --git a/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java b/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java index 9c70b21..2b5b30e 100644 --- a/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java +++ b/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); } diff --git a/src/main/java/com/mindskip/xzs/service/DepartmentService.java b/src/main/java/com/mindskip/xzs/service/DepartmentService.java index 6cd40ea..dbbfa41 100644 --- a/src/main/java/com/mindskip/xzs/service/DepartmentService.java +++ b/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); } diff --git a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java index e1022b9..0c737eb 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java +++ b/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); + } } diff --git a/src/main/java/com/mindskip/xzs/viewmodel/admin/department/DepartmentResponseVM.java b/src/main/java/com/mindskip/xzs/viewmodel/admin/department/DepartmentResponseVM.java index 33dd791..69b7a01 100644 --- a/src/main/java/com/mindskip/xzs/viewmodel/admin/department/DepartmentResponseVM.java +++ b/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 + '\'' + - '}'; - } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index fcd2df7..8e0d161 100644 --- a/src/main/resources/application-dev.yml +++ b/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 diff --git a/src/main/resources/mapper/DepartmentMapper.xml b/src/main/resources/mapper/DepartmentMapper.xml index 7146268..5eee8cd 100644 --- a/src/main/resources/mapper/DepartmentMapper.xml +++ b/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> diff --git a/src/main/resources/mapper/UserDepartmentMapper.xml b/src/main/resources/mapper/UserDepartmentMapper.xml index 4434e15..8f97bd9 100644 --- a/src/main/resources/mapper/UserDepartmentMapper.xml +++ b/src/main/resources/mapper/UserDepartmentMapper.xml @@ -53,4 +53,17 @@ </set> where id = #{id} </update> -</mapper> \ No newline at end of file + + <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> -- Gitblit v1.8.0