xiaof 4 жил өмнө
parent
commit
b510242e2e
15 өөрчлөгдсөн 226 нэмэгдсэн , 28 устгасан
  1. 0 13
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamDetail.java
  2. 1 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/SysRoleMapper.java
  3. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/SysUserMapper.java
  4. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/SysPrivilegeService.java
  5. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/SysRoleService.java
  6. 4 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/SysUserService.java
  7. 12 13
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java
  8. 36 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SysPrivilegeServiceImpl.java
  9. 13 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SysRoleServiceImpl.java
  10. 78 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SysUserServiceImpl.java
  11. 1 2
      distributed-print-business/src/main/resources/db/init-table.sql
  12. 22 0
      distributed-print-business/src/main/resources/mapper/SysUserMapper.xml
  13. 12 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysPrivilegeController.java
  14. 11 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysRoleController.java
  15. 30 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java

+ 0 - 13
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamDetail.java

@@ -35,11 +35,6 @@ public class ExamDetail extends BaseEntity implements Serializable {
     private Long printPlanId;
     @TableField("print_plan_name")
     private String printPlanName;
-    /**
-     * 考试计划名称
-     */
-    @TableField("exam_name")
-    private String examName;
     /**
      * 考试日期
      */
@@ -125,14 +120,6 @@ public class ExamDetail extends BaseEntity implements Serializable {
         this.printPlanName = printPlanName;
     }
 
-    public String getExamName() {
-        return examName;
-    }
-
-    public void setExamName(String examName) {
-        this.examName = examName;
-    }
-
     public Long getExamStartTime() {
         return examStartTime;
     }

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/SysRoleMapper.java

@@ -22,4 +22,5 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
     List<SysRole> listRolesByUserId(Long id);
 
     IPage<SysRole> listPage(Page<SysRole> page, @Param("schoolId") Long schoolId, @Param("name") String name, @Param("enable") Boolean enable);
+
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/SysUserMapper.java

@@ -23,4 +23,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
     IPage<UserDto> listPage(Page<UserDto> page, @Param("schoolId") Long schoolId, @Param("realName") String realName, @Param("roleId") String roleId, @Param("enable") Boolean enable);
 
     List<BlurryUserDto> listUser(@Param("schoolId") Long schoolId, @Param("type") String type, @Param("courseCode") String courseCode, @Param("param") String param);
+
+    IPage<UserDto> listCustomerPage(Page<UserDto> page, @Param("realName") String realName, @Param("enable") Boolean enable);
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/SysPrivilegeService.java

@@ -23,4 +23,6 @@ public interface SysPrivilegeService extends IService<SysPrivilege> {
     boolean remove(Long id);
 
     List<String> getRolePrivileges(Long roleId);
+
+    List<PrivilegeDto> listPrivilegeTreeAuth();
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/SysRoleService.java

@@ -30,4 +30,6 @@ public interface SysRoleService extends IService<SysRole> {
     List<SysRole> listRolesByUserId(Long id);
 
     List<SysRole> list(Long[] roleIds, String name);
+
+    List<SysRole> listToUser();
 }

+ 4 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/SysUserService.java

@@ -36,4 +36,8 @@ public interface SysUserService extends IService<SysUser> {
     List<BlurryUserDto> listUser(String courseCode, String param);
 
     List<SysUser> listByOrgId(Long id);
+
+    boolean saveCustomer(SysUser user);
+
+    IPage<UserDto> listCustomer(String realName, Boolean enable, Integer pageNumber, Integer pageSize);
 }

+ 12 - 13
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -112,14 +112,14 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         if (printTaskTotalDto != null) {
             // 分别计算张数
             // 试卷
-            int paperPagesA3 = totalLeftDto.getPaperPagesA3();
-            int printPaperCount = totalLeftDto.getPrintPaperCount();
+            int paperPagesA3 = totalLeftDto == null ? 0 : totalLeftDto.getPaperPagesA3();
+            int printPaperCount = totalLeftDto == null ? 0 : totalLeftDto.getPrintPaperCount();
             int paperPages = paperPagesA3 % 2 == 0 ? paperPagesA3 / 2 : paperPagesA3 / 2 + 1;
             int totalPaperPages = paperPages * printPaperCount;
 
             // 题卡
-            int cardPagesA3 = totalLeftDto.getCardPagesA3();
-            int printCardCount = totalLeftDto.getPrintCardCount();
+            int cardPagesA3 = totalLeftDto == null ? 0 : totalLeftDto.getCardPagesA3();
+            int printCardCount = totalLeftDto == null ? 0 : totalLeftDto.getPrintCardCount();
             int cardPages = cardPagesA3 % 2 == 0 ? cardPagesA3 / 2 : cardPagesA3 / 2 + 1;
             int totalCardPages = cardPages * printCardCount;
             printTaskTotalDto.setPagesA3Left(String.valueOf(totalPaperPages + totalCardPages));
@@ -365,7 +365,6 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             System.out.println("totalSubjects" + totalSubjects);
             ExamDetail examDetail = new ExamDetail();
             examDetail.setId(SystemConstant.getDbUuid());
-            examDetail.setExamName("");
             examDetail.setSchoolId(Long.valueOf(String.valueOf(map.get("schoolId"))));
             examDetail.setPrintPlanId(Long.valueOf(String.valueOf(map.get("printPlanId"))));
             examDetail.setPrintPlanName(String.valueOf(map.get("printPlanName")));
@@ -513,32 +512,32 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Override
     public void deleteExaminationData(Long printPlanId) {
         ExamPrintPlan examPrintPlan = examPrintPlanService.getById(printPlanId);
-        if (examPrintPlan.getId() == null || examPrintPlan.getId() <= 0){
+        if (examPrintPlan.getId() == null || examPrintPlan.getId() <= 0) {
             throw ExceptionResultEnum.ERROR.exception("未找主键为 '" + printPlanId + "' 的印刷计划信息");
         }
         PrintPlanStatusEnum status = examPrintPlan.getStatus();
-        if (PrintPlanStatusEnum.NEW != status && PrintPlanStatusEnum.READY != status){
+        if (PrintPlanStatusEnum.NEW != status && PrintPlanStatusEnum.READY != status) {
             throw ExceptionResultEnum.ERROR.exception(status + "状态下的印刷计划不能删除考务数据");
         }
         // 准备删除的考务-场次表id
-        List<Long> examDetailIds = this.list(new QueryWrapper<ExamDetail>().lambda().eq(ExamDetail::getPrintPlanId,printPlanId))
+        List<Long> examDetailIds = this.list(new QueryWrapper<ExamDetail>().lambda().eq(ExamDetail::getPrintPlanId, printPlanId))
                 .stream().map(ExamDetail::getId).collect(Collectors.toList());
 
         // 准备删除的考务-科目表id
-        List<Long> examDetailCourseIds = examDetailCourseService.list(new QueryWrapper<ExamDetailCourse>().lambda().in(ExamDetailCourse::getExamDetailId,examDetailIds))
+        List<Long> examDetailCourseIds = examDetailCourseService.list(new QueryWrapper<ExamDetailCourse>().lambda().in(ExamDetailCourse::getExamDetailId, examDetailIds))
                 .stream().map(ExamDetailCourse::getId).collect(Collectors.toList());
 
         // 准备删除的考务-考生表id
-        List<Long> examStudentIds = examStudentService.list(new QueryWrapper<ExamStudent>().lambda().in(ExamStudent::getExamDetailCourseId,examDetailCourseIds))
+        List<Long> examStudentIds = examStudentService.list(new QueryWrapper<ExamStudent>().lambda().in(ExamStudent::getExamDetailCourseId, examDetailCourseIds))
                 .stream().map(ExamStudent::getId).collect(Collectors.toList());
 
         // 删除exam_detail 表数据
-        this.remove(new QueryWrapper<ExamDetail>().lambda().in(ExamDetail::getId,examDetailIds));
+        this.remove(new QueryWrapper<ExamDetail>().lambda().in(ExamDetail::getId, examDetailIds));
 
         // 删除exam_detail_course 表数据
-        examDetailCourseService.remove(new QueryWrapper<ExamDetailCourse>().lambda().in(ExamDetailCourse::getId,examDetailCourseIds));
+        examDetailCourseService.remove(new QueryWrapper<ExamDetailCourse>().lambda().in(ExamDetailCourse::getId, examDetailCourseIds));
 
         // 删除exam_student 表数据
-        examStudentService.remove(new QueryWrapper<ExamStudent>().lambda().in(ExamStudent::getId,examStudentIds));
+        examStudentService.remove(new QueryWrapper<ExamStudent>().lambda().in(ExamStudent::getId, examStudentIds));
     }
 }

+ 36 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SysPrivilegeServiceImpl.java

@@ -6,6 +6,7 @@ import com.qmth.distributed.print.business.bean.dto.PrivilegeDto;
 import com.qmth.distributed.print.business.entity.SysPrivilege;
 import com.qmth.distributed.print.business.entity.SysRolePrivilege;
 import com.qmth.distributed.print.business.entity.SysUser;
+import com.qmth.distributed.print.business.enums.PrivilegePropertyEnum;
 import com.qmth.distributed.print.business.mapper.SysPrivilegeMapper;
 import com.qmth.distributed.print.business.service.SysPrivilegeService;
 import com.qmth.distributed.print.business.service.SysRolePrivilegeService;
@@ -112,4 +113,39 @@ public class SysPrivilegeServiceImpl extends ServiceImpl<SysPrivilegeMapper, Sys
         }
         return list;
     }
+
+    @Override
+    public List<PrivilegeDto> listPrivilegeTreeAuth() {
+        QueryWrapper<SysPrivilege> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysPrivilege::getProperty, PrivilegePropertyEnum.AUTH.name())
+                .or().isNull(SysPrivilege::getProperty)
+                .orderByAsc(SysPrivilege::getParentId, SysPrivilege::getSequence);
+        List<SysPrivilege> orgList = this.list(queryWrapper);
+        Map<Long, PrivilegeDto> map = new LinkedHashMap<>();
+        for (SysPrivilege privilege : orgList) {
+            PrivilegeDto privilegeDto = new PrivilegeDto();
+            privilegeDto.setId(String.valueOf(privilege.getId()));
+            privilegeDto.setName(privilege.getName());
+            privilegeDto.setUrl(privilege.getUrl());
+            privilegeDto.setType(privilege.getType());
+            privilegeDto.setParentId(privilege.getParentId());
+            privilegeDto.setSequence(privilege.getSequence());
+            map.put(privilege.getId(), privilegeDto);
+        }
+
+        Iterator<Long> iterator = map.keySet().iterator();
+        Set<Long> deleteKeys = new HashSet<>();
+        while (iterator.hasNext()) {
+            Long parentId = iterator.next();
+            if (map.get(parentId).getParentId() != null) {
+                map.get(map.get(parentId).getParentId()).getChildren().add(map.get(parentId));
+                deleteKeys.add(parentId);
+            }
+        }
+        for (Long key : deleteKeys) {
+            map.remove(key);
+        }
+
+        return new ArrayList<>(map.values());
+    }
 }

+ 13 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SysRoleServiceImpl.java

@@ -150,4 +150,17 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         queryWrapper.lambda().eq(SysRole::getType, name).in(SysRole::getId, roleIds);
         return this.baseMapper.selectList(queryWrapper);
     }
+
+    @Override
+    public List<SysRole> listToUser() {
+        Long schoolId = null;
+        try {
+            schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        } catch (NumberFormatException e) {
+        }
+        QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
+        Long finalSchoolId = schoolId;
+        queryWrapper.lambda().eq(SysRole::getEnable, true).and(e->e.eq(SysRole::getSchoolId, finalSchoolId).or().isNull(SysRole::getSchoolId));
+        return this.list(queryWrapper);
+    }
 }

+ 78 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SysUserServiceImpl.java

@@ -265,4 +265,82 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         queryWrapper.lambda().eq(SysUser::getOrgId, id);
         return this.list(queryWrapper);
     }
+
+    @Override
+    public boolean saveCustomer(SysUser user) {
+        SysUser sysUser1 = (SysUser) ServletUtil.getRequestUser();
+
+        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(SysUser::getLoginName, user.getLoginName());
+        SysUser sysUser = this.getOne(queryWrapper);
+        boolean isSuccess;
+        // 新增
+        if (Objects.isNull(user.getId())) {
+            if (sysUser != null) {
+                throw ExceptionResultEnum.ERROR.exception("用户名已存在");
+            }
+            SysConfig sysConfig = sysConfigService.getByKey("sys.user.initPassword");
+            user.setPassword(Md5Utils.toMd5Hex(StringUtils.isNoneBlank(sysConfig.getConfigValue()) ? sysConfig.getConfigValue() : "123456"));
+            user.setId(SystemConstant.getDbUuid());
+            user.setCreateId(sysUser1.getId());
+            user.setCreateTime(System.currentTimeMillis());
+            isSuccess = this.save(user);
+        }
+        // 修改
+        else {
+            if (sysUser != null && user.getId() != sysUser.getId()) {
+                throw ExceptionResultEnum.ERROR.exception("用户名已存在");
+            }
+            sysUser.setRealName(user.getRealName());
+            sysUser.setMobileNumber(user.getMobileNumber());
+            sysUser.setUpdateId(sysUser1.getId());
+            sysUser.setUpdateTime(System.currentTimeMillis());
+            isSuccess = this.updateById(sysUser);
+
+            //删除角色
+            UpdateWrapper<SysUserRole> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.lambda().eq(SysUserRole::getUserId, sysUser.getId());
+            sysUserRoleService.remove(updateWrapper);
+        }
+
+        //新增用户-角色
+        for (Long roleId : user.getRoleIds()) {
+            SysRole sysRole = sysRoleService.getById(roleId);
+            if(!RoleTypeEnum.CUSTOMER.name().equals(sysRole.getType().name())){
+                throw ExceptionResultEnum.ERROR.exception("只能添加客服角色的用户");
+            }
+            List<SysRolePrivilege> rolePrivileges = sysRolePrivilegeService.listByRoleId(roleId);
+            for (SysRolePrivilege rolePrivilege : rolePrivileges) {
+                SysUserRole userRole = new SysUserRole();
+                userRole.setUserId(sysUser.getId());
+                userRole.setRoleId(roleId);
+                userRole.setPrivilegeId(rolePrivilege.getPrivilegeId());
+                sysUserRoleService.save(userRole);
+            }
+            cacheService.removeRolePrivilegeCache(roleId);
+        }
+
+        // 清除缓存
+        cacheService.removeUserAuthCache(user.getId());
+
+        return isSuccess;
+    }
+
+    @Override
+    public IPage<UserDto> listCustomer(String realName, Boolean enable, Integer pageNumber, Integer pageSize) {
+        Page<UserDto> page = new Page<>(pageNumber, pageSize);
+        IPage<UserDto> userDtoIPage = this.baseMapper.listCustomerPage(page, realName, enable);
+        if (userDtoIPage.getRecords().size() > 0) {
+            userDtoIPage.getRecords().forEach(m -> {
+                //角色
+                List<SysRole> roles = sysRoleService.listRolesByUserId(Long.valueOf(m.getId()));
+                m.setRoles(roles);
+
+                //课程
+                List<BasicCourse> courses = basicCourseService.listCoursesByUserId(Long.valueOf(m.getId()));
+                m.setCourses(courses);
+            });
+        }
+        return userDtoIPage;
+    }
 }

+ 1 - 2
distributed-print-business/src/main/resources/db/init-table.sql

@@ -255,7 +255,6 @@ CREATE TABLE `exam_detail`  (
   `school_id` bigint(20) NOT NULL,
   `print_plan_id` bigint(20) NOT NULL COMMENT '印刷计划ID',
   `print_plan_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
-  `exam_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '考试计划名称',
   `exam_start_time` bigint(20) NOT NULL COMMENT '考试日期',
   `exam_end_time` bigint(20) NOT NULL,
   `exam_place` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
@@ -349,6 +348,7 @@ CREATE TABLE `exam_student`  (
 -- ----------------------------
 -- Table structure for exam_task
 -- ----------------------------
+DROP TABLE IF EXISTS `exam_task`;
 CREATE TABLE `exam_task`  (
   `id` bigint(20) NOT NULL,
   `school_id` bigint(20) NOT NULL,
@@ -371,7 +371,6 @@ CREATE TABLE `exam_task`  (
   `update_time` bigint(20) NULL DEFAULT NULL COMMENT '修改时间',
   PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '命题任务' ROW_FORMAT = Dynamic;
-DROP TABLE IF EXISTS `exam_task`;
 
 -- ----------------------------
 -- Table structure for exam_task_detail

+ 22 - 0
distributed-print-business/src/main/resources/mapper/SysUserMapper.xml

@@ -78,4 +78,26 @@
             </if>
         </where>
     </select>
+    <select id="listCustomerPage" resultType="com.qmth.distributed.print.business.bean.dto.UserDto">
+        SELECT
+        a.id,
+        a.school_id schoolId,
+        a.login_name loginName,
+        a.real_name realName,
+        a.mobile_number mobileNumber,
+        a.enable,
+        a.remark,
+        a.org_id orgId
+        FROM
+        sys_user a
+        <where>
+            a.school_id is null and a.id in (select user_id from sys_user_role b left join sys_role c on b.role_id = c.id where c.type = 'CUSTOMER')
+            <if test="realName != null and realName != ''">
+                and a.real_name like concat('%', #{realName} , '%')
+            </if>
+            <if test="enable != null">
+                and a.enable = #{enable}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 12 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysPrivilegeController.java

@@ -45,6 +45,18 @@ public class SysPrivilegeController {
         return ResultUtil.ok(privilegeDtoList);
     }
 
+    /**
+     * 查询需要授权的菜单
+     *
+     * @return
+     */
+    @ApiOperation(value = "查询需要授权的菜单")
+    @RequestMapping(value = "/list_auth", method = RequestMethod.POST)
+    public Result listAuth() {
+        List<PrivilegeDto> privilegeDtoList = sysPrivilegeService.listPrivilegeTreeAuth();
+        return ResultUtil.ok(privilegeDtoList);
+    }
+
     /**
      * 新增/修改
      *

+ 11 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysRoleController.java

@@ -52,6 +52,17 @@ public class SysRoleController {
         return ResultUtil.ok(userDtos);
     }
 
+    /**
+     * 新增用户时查询角色方法
+     * @return
+     */
+    @ApiOperation(value = "新增用户时查询角色方法")
+    @RequestMapping(value = "/list_to_user", method = RequestMethod.POST)
+    public Result listToUser() {
+        List<SysRole> userDtos = sysRoleService.listToUser();
+        return ResultUtil.ok(userDtos);
+    }
+
     /**
      * 新增/修改
      *

+ 30 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java

@@ -62,6 +62,23 @@ public class SysUserController {
         return ResultUtil.ok(userDtos);
     }
 
+    /**
+     * 查询
+     *
+     * @param realName
+     * @param enable
+     * @return
+     */
+    @ApiOperation(value = "查询")
+    @RequestMapping(value = "/list_customer", method = RequestMethod.POST)
+    public Result listCustomer(@RequestParam(value = "realName", required = false) String realName,
+                       @RequestParam(value = "enable", required = false) Boolean enable,
+                       @RequestParam(value = "pageNumber", required = true) Integer pageNumber,
+                       @RequestParam(value = "pageSize", required = true) Integer pageSize) {
+        IPage<UserDto> userDtos = sysUserService.listCustomer(realName, enable, pageNumber, pageSize);
+        return ResultUtil.ok(userDtos);
+    }
+
     /**
      * 根据科目查询命题老师
      *
@@ -90,6 +107,19 @@ public class SysUserController {
         return ResultUtil.ok(isSuccess);
     }
 
+    /**
+     * 新增客服
+     *
+     * @param user
+     * @return
+     */
+    @ApiOperation(value = "新增客服")
+    @RequestMapping(value = "/save_customer", method = RequestMethod.POST)
+    public Result saveCustomer(@RequestBody SysUser user) {
+        boolean isSuccess = sysUserService.saveCustomer(user);
+        return ResultUtil.ok(isSuccess);
+    }
+
     /**
      * 启用/禁用
      *