xiangpei
2024-03-08 7cd87e30ed364aa6806eaa28939ea94ad1524a50
部门增加管理员
11个文件已修改
3个文件已添加
338 ■■■■ 已修改文件
pom.xml 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/configuration/plus/MybatisPlusConfig.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/Department.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/BaseSelect.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/UpdateDeptAdminVO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/DepartmentMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/DepartmentService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/viewmodel/admin/department/DepartmentResponseVM.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/DepartmentMapper.xml 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserDepartmentMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>