Răsfoiți Sursa

fix:联调修改
用户推送

caozixuan 2 ani în urmă
părinte
comite
01e14f7054
16 a modificat fișierele cu 87 adăugiri și 41 ștergeri
  1. 5 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/TeachClazzResult.java
  2. 12 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/TeachCourseResult.java
  3. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TeachClazzMapper.java
  4. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/DataSyncService.java
  5. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TeachClazzService.java
  6. 37 9
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CloudUserPushServiceImpl.java
  7. 1 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java
  8. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachClazzServiceImpl.java
  9. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java
  10. 4 0
      distributed-print-business/src/main/resources/db/3.2.3更新脚本-增量.sql
  11. 2 2
      distributed-print-business/src/main/resources/mapper/TeachClazzMapper.xml
  12. 1 0
      distributed-print-business/src/main/resources/mapper/TeachCourseMapper.xml
  13. 3 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachClazzController.java
  14. 0 1
      distributed-print/src/test/java/com/qmth/distributed/print/SyncHelpTest.java
  15. 11 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/UserPushParam.java
  16. 1 14
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/sync/CloudMarkingTaskUtils.java

+ 5 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/TeachClazzResult.java

@@ -27,7 +27,7 @@ public class TeachClazzResult {
 
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "教学课程id")
-    private Long teachCourseId;
+    private Long basicCourseId;
 
     public Long getId() {
         return id;
@@ -61,11 +61,11 @@ public class TeachClazzResult {
         this.teachStudentCount = teachStudentCount;
     }
 
-    public Long getTeachCourseId() {
-        return teachCourseId;
+    public Long getBasicCourseId() {
+        return basicCourseId;
     }
 
-    public void setTeachCourseId(Long teachCourseId) {
-        this.teachCourseId = teachCourseId;
+    public void setBasicCourseId(Long basicCourseId) {
+        this.basicCourseId = basicCourseId;
     }
 }

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/TeachCourseResult.java

@@ -15,6 +15,10 @@ public class TeachCourseResult {
     @ApiModelProperty(value = "教学课程id")
     private Long id;
 
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "基础课程id")
+    private Long basicCourseId;
+
     @ApiModelProperty(value = "教学课程名称")
     private String courseName;
 
@@ -33,6 +37,14 @@ public class TeachCourseResult {
         this.id = id;
     }
 
+    public Long getBasicCourseId() {
+        return basicCourseId;
+    }
+
+    public void setBasicCourseId(Long basicCourseId) {
+        this.basicCourseId = basicCourseId;
+    }
+
     public String getCourseName() {
         return courseName;
     }

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

@@ -18,13 +18,13 @@ public interface TeachClazzMapper extends BaseMapper<TeachClazz> {
      * 分页查询教学班级
      *
      * @param iPage          分页参数
-     * @param teachCourseId  教学课程主键
+     * @param basicCourseId  基础课程主键
      * @param teachClazzName 教学班级名称
      * @param schoolId       学校id
      * @return 结果
      */
     IPage<TeachClazzResult> findTeachClazzPage(@Param("iPage") Page<TeachClazzResult> iPage,
-                                               @Param("teachCourseId") Long teachCourseId,
+                                               @Param("basicCourseId") Long basicCourseId,
                                                @Param("teachClazzName") String teachClazzName,
                                                @Param("schoolId") Long schoolId);
 }

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

@@ -17,4 +17,6 @@ public interface DataSyncService {
     void syncObjectiveStructure(ExamPaperStructure examPaperStructure, TBSyncTask tbSyncTask);
 
     void syncMarkLeader(ExamPaperStructure examPaperStructure, TBSyncTask tbSyncTask);
+
+    Integer saveSchool(Long schoolId, Integer thirdRelateId, String orgCode, String orgName);
 }

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

@@ -20,13 +20,13 @@ public interface TeachClazzService extends IService<TeachClazz> {
     /**
      * 分页查询教学班列表
      *
-     * @param teachCourseId  教学课程id
+     * @param basicCourseId  基础课程id
      * @param teachClazzName 班级名称
      * @param pageNumber     分页页数
      * @param pageSize       分页容量
      * @return 教学班分页结果
      */
-    IPage<TeachClazzResult> teachClazzPage(Long teachCourseId, String teachClazzName, int pageNumber, int pageSize);
+    IPage<TeachClazzResult> teachClazzPage(Long basicCourseId, String teachClazzName, int pageNumber, int pageSize);
 
     /**
      * 编辑教学班

+ 37 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CloudUserPushServiceImpl.java

@@ -1,13 +1,16 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.distributed.print.business.entity.TBSyncTask;
 import com.qmth.distributed.print.business.service.CloudUserPushService;
 import com.qmth.distributed.print.business.service.CloudUserPushStatusService;
+import com.qmth.distributed.print.business.service.DataSyncService;
 import com.qmth.distributed.print.business.service.TBSyncTaskService;
 import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.bean.result.PushResult;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
@@ -15,8 +18,7 @@ import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
 import com.qmth.teachcloud.common.enums.userPush.SyncStatusEnum;
 import com.qmth.teachcloud.common.enums.userPush.UserPushResultEnum;
-import com.qmth.teachcloud.common.service.SysRoleService;
-import com.qmth.teachcloud.common.service.SysUserRoleService;
+import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.sync.CloudMarkingTaskUtils;
 import org.springframework.scheduling.annotation.Async;
@@ -34,10 +36,6 @@ import java.util.stream.Collectors;
  */
 @Service
 public class CloudUserPushServiceImpl implements CloudUserPushService {
-    @Resource
-    private SysUserRoleService sysUserRoleService;
-    @Resource
-    private SysRoleService sysRoleService;
     @Resource
     private SysUserService sysUserService;
     @Resource
@@ -46,6 +44,12 @@ public class CloudUserPushServiceImpl implements CloudUserPushService {
     private TBSyncTaskService tbSyncTaskService;
     @Resource
     private CloudUserPushStatusService cloudUserPushStatusService;
+    @Resource
+    private SysOrgService sysOrgService;
+    @Resource
+    private CloudMarkingTaskUtils cloudMarkingTaskUtils;
+    @Resource
+    private DataSyncService dataSyncService;
 
     @Override
     public void pushCloudUser(Long userId, SysUser requestUser) throws IllegalAccessException {
@@ -86,9 +90,19 @@ public class CloudUserPushServiceImpl implements CloudUserPushService {
             try {
                 List<UserPushParam> userPushParamList = userPushMap.get(userId);
                 for (UserPushParam userPushParam : userPushParamList) {
+                    // 推送用户
                     SpecialPrivilegeEnum specialRole = userPushParam.getRole();
+
                     boolean bind = userPushParam.getEnable();
-                    PushResult pushResult = stmmsUtils.syncUser(userPushParam);
+                    String account = userPushParam.getAccount();
+                    String name = userPushParam.getName();
+                    String password = userPushParam.getPassword();
+                    int roleValue = userPushParam.getRole().getValue();
+                    Boolean enable = userPushParam.getEnable();
+                    Long schoolId = userPushParam.getSchoolId();
+                    String orgCode = userPushParam.getOrgCode();
+
+                    PushResult pushResult = stmmsUtils.syncUser(account,name,password,roleValue,enable,schoolId,orgCode);
                     boolean syncResult = pushResult.getSuccess();
                     String syncExceptionCell = null;
 
@@ -146,21 +160,33 @@ public class CloudUserPushServiceImpl implements CloudUserPushService {
     }
 
     /**
-     * 构建用户推送map
+     * 构建用户推送map 判断并推送学院机构
      *
      * @param sysUserList 用户集合
      * @param schoolId    学校id
      * @return k -> userId v-> List<UserPushParam> 有且只有两条记录
      */
     private Map<Long, List<UserPushParam>> buildUserPushMap(List<SysUser> sysUserList, Long schoolId) {
-        Map<Long, List<UserPushParam>> userPushMap = new HashMap<>();
+        // 构建用户机构id键值对
+        Map<Long, SysOrg> orgMap = sysOrgService.list(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getSchoolId,schoolId))
+                .stream()
+                .collect(Collectors.toMap(SysOrg::getId, v -> v));
 
+        Map<Long, List<UserPushParam>> userPushMap = new HashMap<>();
         for (SysUser sysUser : sysUserList) {
             // 用户基础信息
             Long userId = sysUser.getId();
+            Long orgId = sysUser.getOrgId();
             String loginName = sysUser.getLoginName();
             String realName = sysUser.getRealName();
             String password = "123456";
+            SysOrg sysOrg = orgMap.get(orgId);
+
+            // 判断并推送学院机构
+            if (cloudMarkingTaskUtils.isCollegeMode(schoolId) && sysOrg.getThirdRelateId() != null){
+                sysOrg.setThirdRelateId(dataSyncService.saveSchool(schoolId,sysOrg.getThirdRelateId(),sysOrg.getCode(),sysOrg.getName()));
+                orgMap.put(orgId,sysOrg);
+            }
 
             // 用户推送相关信息
             boolean enable = sysUser.getEnable();
@@ -173,6 +199,7 @@ public class CloudUserPushServiceImpl implements CloudUserPushService {
             UserPushParam marker = new UserPushParam();
             marker.setUserId(userId);
             marker.setSchoolId(schoolId);
+            marker.setOrgCode(orgMap.get(orgId).getCode());
             marker.setName(realName);
             marker.setPassword(password);
             marker.setRole(SpecialPrivilegeEnum.MARKER);
@@ -182,6 +209,7 @@ public class CloudUserPushServiceImpl implements CloudUserPushService {
             UserPushParam leader = new UserPushParam();
             leader.setUserId(userId);
             leader.setSchoolId(schoolId);
+            leader.setOrgCode(orgMap.get(orgId).getCode());
             leader.setName(realName);
             leader.setPassword(password);
             leader.setRole(SpecialPrivilegeEnum.SUBJECT_HEADER);

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -481,6 +481,7 @@ public class DataSyncServiceImpl implements DataSyncService {
      * @param orgCode       学院代码
      * @param orgName       学院名称
      */
+    @Override
     public Integer saveSchool(Long schoolId, Integer thirdRelateId, String orgCode, String orgName) {
         if (StringUtils.isBlank(orgCode)) {
             return null;

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachClazzServiceImpl.java

@@ -46,10 +46,10 @@ public class TeachClazzServiceImpl extends ServiceImpl<TeachClazzMapper,TeachCla
     private BasicCourseService basicCourseService;
 
     @Override
-    public IPage<TeachClazzResult> teachClazzPage(Long teachCourseId, String teachClazzName, int pageNumber, int pageSize) {
+    public IPage<TeachClazzResult> teachClazzPage(Long basicCourseId, String teachClazzName, int pageNumber, int pageSize) {
         Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
         teachClazzName = SystemConstant.translateSpecificSign(teachClazzName);
-        IPage<TeachClazzResult> resultIPage = this.baseMapper.findTeachClazzPage(new Page<>(pageNumber, pageSize), teachCourseId, teachClazzName, schoolId);
+        IPage<TeachClazzResult> resultIPage = this.baseMapper.findTeachClazzPage(new Page<>(pageNumber, pageSize), basicCourseId, teachClazzName, schoolId);
         List<TeachClazzResult> teachClazzResultList = resultIPage.getRecords();
 
         for (TeachClazzResult teachClazzResult : teachClazzResultList) {

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java

@@ -256,7 +256,8 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
             UserSaveParams userSaveParams = new UserSaveParams();
             userSaveParams.setSchoolId(schoolId);
             userSaveParams.setLoginName(code);
-            userSaveParams.setRealName(code);
+            userSaveParams.setRealName(name);
+            userSaveParams.setCode(code);
             userSaveParams.setPassword(SystemConstant.DEFAULT_PASSWORD);
             userSaveParams.setOrgId(requestUser.getOrgId());
             userSaveParams.setEnable(true);

+ 4 - 0
distributed-print-business/src/main/resources/db/3.2.3更新脚本-增量.sql

@@ -1185,3 +1185,7 @@ INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('851', '教学学生-从课程班级批量添加学生', '/api/admin/teach/student/create_batch', 'URL', '841', '10', 'AUTH', '1', '1', '1');
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('852', '教学学生-批量导入', '/api/admin/teach/student/import', 'URL', '841', '11', 'AUTH', '1', '1', '1');
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('853', '教学学生-批量删除', '/api/admin/teach/student/delete', 'URL', '841', '12', 'AUTH', '1', '1', '1');
+
+UPDATE `sys_privilege` SET `url` = '/api/admin/teach/clazz/page' WHERE (`id` = '842');
+UPDATE `sys_privilege` SET `url` = 'Enable' WHERE (`id` = '559');
+

+ 2 - 2
distributed-print-business/src/main/resources/mapper/TeachClazzMapper.xml

@@ -6,7 +6,7 @@
             resultType="com.qmth.distributed.print.business.bean.result.TeachClazzResult">
         SELECT
             id,
-            teach_course_id AS teachCourseId,
+            basic_course_id AS basicCourseId,
             teach_clazz_name AS teachClazzName,
             create_time AS createTime
         FROM
@@ -18,7 +18,7 @@
             <if test="teachClazzName != null and teachClazzName != ''">
                 AND teach_clazz_name LIKE CONCAT('%',#{teachClazzName},'%')
             </if>
-                AND teach_course_id = #{teachCourseId}
+                AND basic_course_id = #{basicCourseId}
         </where>
         ORDER BY create_time DESC
     </select>

+ 1 - 0
distributed-print-business/src/main/resources/mapper/TeachCourseMapper.xml

@@ -8,6 +8,7 @@
             tc.id,
             bc.code AS courseCode,
             bc.name AS courseName,
+            bc.id AS basicCourseId,
             tc.create_time AS createTime
         FROM
             teach_course tc

+ 3 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/TeachClazzController.java

@@ -40,18 +40,18 @@ public class TeachClazzController {
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
-    public Result findTeachClazzPage(@ApiParam(value = "教学课程id") @RequestParam(required = false) String teachCourseId,
+    public Result findTeachClazzPage(@ApiParam(value = "基础课程id") @RequestParam(required = false) String basicCourseId,
                                      @ApiParam(value = "班级名称(模糊查询)") @RequestParam(required = false) String teachClazzName,
                                      @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                      @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        return ResultUtil.ok(teachClazzService.teachClazzPage(SystemConstant.convertIdToLong(teachCourseId), teachClazzName, pageNumber, pageSize));
+        return ResultUtil.ok(teachClazzService.teachClazzPage(SystemConstant.convertIdToLong(basicCourseId), teachClazzName, pageNumber, pageSize));
     }
 
     @ApiOperation(value = "教学班级-编辑教学班级")
     @RequestMapping(value = "/edit", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "创建成功", response = EditResult.class)})
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.EDIT)
-    public Result createTeachClazz(@Valid @RequestBody TeachClazzParams teachClazzParams, BindingResult bindingResult) throws IllegalAccessException {
+    public Result createTeachClazz(@Valid @RequestBody TeachClazzParams teachClazzParams, BindingResult bindingResult) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());

+ 0 - 1
distributed-print/src/test/java/com/qmth/distributed/print/SyncHelpTest.java

@@ -38,7 +38,6 @@ public class SyncHelpTest {
                 userPushParam.setRole(SpecialPrivilegeEnum.SUBJECT_HEADER);
             }
             userPushParam.setSchoolId(2L);
-            stmmsUtils.syncUser(userPushParam);
         }
     }
 }

+ 11 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/UserPushParam.java

@@ -42,6 +42,9 @@ public class UserPushParam {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long schoolId;
 
+    @ApiModelProperty(value = "子机构编号")
+    private String orgCode;
+
     public UserPushParam() {
     }
 
@@ -108,4 +111,12 @@ public class UserPushParam {
     public void setSchoolId(Long schoolId) {
         this.schoolId = schoolId;
     }
+
+    public String getOrgCode() {
+        return orgCode;
+    }
+
+    public void setOrgCode(String orgCode) {
+        this.orgCode = orgCode;
+    }
 }

+ 1 - 14
teachcloud-common/src/main/java/com/qmth/teachcloud/common/sync/CloudMarkingTaskUtils.java

@@ -4,8 +4,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.qmth.boot.tools.signature.SignatureType;
 import com.qmth.teachcloud.common.SignatureEntityTest;
 import com.qmth.teachcloud.common.bean.dto.stmms.*;
-import com.qmth.teachcloud.common.bean.params.UserPushParam;
-import com.qmth.teachcloud.common.bean.result.DBVerifyResult;
 import com.qmth.teachcloud.common.bean.result.PushResult;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -178,18 +176,7 @@ public class CloudMarkingTaskUtils {
         return JSONObject.parseArray(JSONObject.toJSON(examObject).toString(), JSONObject.class);
     }
 
-    public PushResult syncUser(UserPushParam userPushParam) throws IllegalAccessException {
-        DBVerifyResult verifyResult = SystemConstant.verifyDBFields(userPushParam, userPushParam.getClass());
-        if (!verifyResult.getStatus()) {
-            throw ExceptionResultEnum.ERROR.exception(verifyResult.getMessage());
-        }
-        String account = userPushParam.getAccount();
-        String name = userPushParam.getName();
-        String password = userPushParam.getPassword();
-        int roleValue = userPushParam.getRole().getValue();
-        Boolean enable = userPushParam.getEnable();
-        Long schoolId = userPushParam.getSchoolId();
-
+    public PushResult syncUser(String account, String name, String password, int roleValue, Boolean enable, Long schoolId, String orgCode) throws IllegalAccessException {
         SysConfig sysConfig = commonCacheService.addSysConfigCache(schoolId, SystemConstant.CLOUDMARK_HOST_URL);
         Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置云阅卷地址"));
         String hostUrl = sysConfig.getConfigValue();