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