yangdamao 2 jaren geleden
bovenliggende
commit
f96917b446
24 gewijzigde bestanden met toevoegingen van 360 en 16 verwijderingen
  1. 13 3
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java
  2. 9 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java
  3. 1 0
      zhongzheng-admin/src/main/resources/application-dev.yml
  4. 1 0
      zhongzheng-admin/src/main/resources/application-pre.yml
  5. 1 0
      zhongzheng-admin/src/main/resources/application-prod.yml
  6. 1 0
      zhongzheng-admin/src/main/resources/application-trial.yml
  7. 1 0
      zhongzheng-api/src/main/resources/application-dev.yml
  8. 1 0
      zhongzheng-api/src/main/resources/application-pre.yml
  9. 1 0
      zhongzheng-api/src/main/resources/application-prod.yml
  10. 1 0
      zhongzheng-api/src/main/resources/application-trial.yml
  11. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeBatchQueryBo.java
  12. 32 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeOpenBo.java
  13. 22 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeOpenUpBo.java
  14. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeQueryBo.java
  15. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassNpUserInfoBo.java
  16. 11 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java
  17. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeService.java
  18. 114 5
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java
  19. 19 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassNpUserInfoVo.java
  20. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderAddBo.java
  21. 40 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/Order.java
  22. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderMapper.java
  23. 40 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  24. 29 1
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

+ 13 - 3
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -276,12 +276,22 @@ public class CommonController
     @ApiOperation("查询预开班官方班级编号")
     @PostMapping("common/free/officialGrade/num")
     public AjaxResult getOfficialGradeNum(@RequestBody ClassOfficialNumBo bo) {
-//        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
-//            return AjaxResult.error("签名错误");
-//        }
+        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+            return AjaxResult.error("签名错误");
+        }
         return AjaxResult.success(iClassGradeService.getOfficialGradeNum(bo));
     }
 
+    @ApiOperation("预报名班级开班")
+    @PostMapping("common/free/open/class")
+    public AjaxResult openOfficialGrade(@RequestBody ClassGradeOpenBo bo) {
+        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+            return AjaxResult.error("签名错误");
+        }
+        iClassGradeService.openOfficialGrade(bo);
+        return AjaxResult.success();
+    }
+
     @ApiOperation("测试分班")
     @GetMapping("common/jzs/grade")
     public AjaxResult<Void> testGrade()

+ 9 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -115,6 +115,15 @@ public class ClassGradeController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 查询其他平台班级详情
+     */
+    @ApiOperation("查询其他平台班级学员列表")
+    @GetMapping("/other/Class/user")
+    public AjaxResult<List<ClassNpUserInfoVo>> otherClassUserList(ClassNpUserInfoBo bo) {
+        return AjaxResult.success(iClassGradeService.otherClassUserList(bo));
+    }
+
     /**
      * 查询班级列表
      */

+ 1 - 0
zhongzheng-admin/src/main/resources/application-dev.yml

@@ -139,6 +139,7 @@ oldStudySys:
     searchGradeCount: http://gdxypx.xy.com/System/BussinessApi/OfficialGradeCount
     pushGradeCount: http://gdxypx.xy.com/System/BussinessApi/OfficialGradeCountAuto
     educationalInspector: http://192.168.1.210/EduSystem/BusinessApi/NewYxtUserPrompt
+    classUserListPath: http://gdxypx.xy.com/System/BussinessApi/UserCourseCategoryListcno
 
 officialPush:
     infoPath: http://jypt-dev.gdcic.net/organjxjy/ShangBaoMingdan

+ 1 - 0
zhongzheng-admin/src/main/resources/application-pre.yml

@@ -139,6 +139,7 @@ oldStudySys:
     searchGradeCount: http://test.jqbao.net/System/BussinessApi/OfficialGradeCount
     pushGradeCount: http://test.jqbao.net/System/BussinessApi/OfficialGradeCountAuto
     educationalInspector: http://192.168.1.210/EduSystem/BusinessApi/NewYxtUserPrompt
+    classUserListPath: http://gdxypx.xy.com/System/BussinessApi/UserCourseCategoryListcno
 
 officialPush:
     infoPath: http://jypt-dev.gdcic.net/organjxjy/ShangBaoMingdan

+ 1 - 0
zhongzheng-admin/src/main/resources/application-prod.yml

@@ -139,6 +139,7 @@ oldStudySys:
     searchGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCount
     pushGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCountAuto
     educationalInspector: https://zs.gdzzkj.net/EduSystem/BusinessApi/NewYxtUserPrompt
+    classUserListPath: https://www.xyyxt.net/System/BussinessApi/UserCourseCategoryListcno
 
 officialPush:
     infoPath: http://jypt.gdcic.net/organjxjy/ShangBaoMingdan

+ 1 - 0
zhongzheng-admin/src/main/resources/application-trial.yml

@@ -138,6 +138,7 @@ oldStudySys:
     shareCanclePath: https://www.xyyxt.net/witsystem/dataapi/ordercance
     searchGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCount
     pushGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCountAuto
+    classUserListPath: https://www.xyyxt.net/System/BussinessApi/UserCourseCategoryListcno
 
 officialPush:
     infoPath: http://jypt.gdcic.net/organjxjy/ShangBaoMingdan

+ 1 - 0
zhongzheng-api/src/main/resources/application-dev.yml

@@ -140,6 +140,7 @@ oldStudySys:
     searchGradeCount: http://gdxypx.xy.com/System/BussinessApi/OfficialGradeCount
     pushGradeCount: http://gdxypx.xy.com/System/BussinessApi/OfficialGradeCountAuto
     educationalInspector: http://192.168.1.210/EduSystem/BusinessApi/NewYxtUserPrompt
+    classUserListPath: http://gdxypx.xy.com/System/BussinessApi/UserCourseCategoryListcno
 
 officialPush:
     infoPath: http://jypt-dev.gdcic.net/organjxjy/ShangBaoMingdan

+ 1 - 0
zhongzheng-api/src/main/resources/application-pre.yml

@@ -139,6 +139,7 @@ oldStudySys:
     searchGradeCount: http://test.jqbao.net/System/BussinessApi/OfficialGradeCount
     pushGradeCount: http://test.jqbao.net/System/BussinessApi/OfficialGradeCountAuto
     educationalInspector: http://192.168.1.210/EduSystem/BusinessApi/NewYxtUserPrompt
+    classUserListPath: http://gdxypx.xy.com/System/BussinessApi/UserCourseCategoryListcno
 
 officialPush:
     infoPath: http://jypt-dev.gdcic.net/organjxjy/ShangBaoMingdan

+ 1 - 0
zhongzheng-api/src/main/resources/application-prod.yml

@@ -151,6 +151,7 @@ oldStudySys:
     searchGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCount
     pushGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCountAuto
     educationalInspector: https://zs.gdzzkj.net/EduSystem/BusinessApi/NewYxtUserPrompt
+    classUserListPath: https://www.xyyxt.net/System/BussinessApi/UserCourseCategoryListcno
 
 officialPush:
     infoPath: http://jypt.gdcic.net/organjxjy/ShangBaoMingdan

+ 1 - 0
zhongzheng-api/src/main/resources/application-trial.yml

@@ -150,6 +150,7 @@ oldStudySys:
     shareCanclePath: https://www.xyyxt.net/witsystem/dataapi/ordercance
     searchGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCount
     pushGradeCount: https://www.xyyxt.net/System/BussinessApi/OfficialGradeCountAuto
+    classUserListPath: https://www.xyyxt.net/System/BussinessApi/UserCourseCategoryListcno
 
 officialPush:
     infoPath: http://jypt.gdcic.net/organjxjy/ShangBaoMingdan

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeBatchQueryBo.java

@@ -32,4 +32,8 @@ public class ClassGradeBatchQueryBo extends BaseEntity {
 	/** 官方班级 */
 	@ApiModelProperty("官方班级名称,多个,拼接")
 	private String officialNameStr;
+
+	/** 官方班级 */
+	@ApiModelProperty("预开班班级编号")
+	private String registerCode;
 }

+ 32 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeOpenBo.java

@@ -0,0 +1,32 @@
+package com.zhongzheng.modules.grade.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年02月10日 8:50
+ */
+@Data
+public class ClassGradeOpenBo implements Serializable {
+
+    @ApiModelProperty("当前时间戳")
+    @NotBlank(message = "当前时间戳不能为空")
+    private Long stamp;
+
+    @ApiModelProperty("签名")
+    @NotBlank(message = "签名不能为空")
+    private String sign;
+
+    @ApiModelProperty("预开班班级编号")
+    private String registerCode;
+
+    @ApiModelProperty("官方班级编号")
+    private String officialName;
+
+    @ApiModelProperty("开班状态 0未开班(预报名) 1开班")
+    private Integer classStatus;
+}

+ 22 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeOpenUpBo.java

@@ -0,0 +1,22 @@
+package com.zhongzheng.modules.grade.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author yangdamao
+ * @date 2023年02月10日 8:58
+ */
+@Data
+public class ClassGradeOpenUpBo implements Serializable {
+
+    private List<Long> gradeIds;
+
+    private Integer classStatus;
+
+    private String officialName;
+
+    private String registerCode;
+}

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeQueryBo.java

@@ -145,4 +145,10 @@ public class ClassGradeQueryBo extends BaseEntity {
 	/** 结束时间 */
 	@ApiModelProperty("结束时间")
 	private Long endTime;
+
+	private String businessNameOne;
+
+	private String businessNameTwo;
+
+	private String educationName;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassNpUserInfoBo.java

@@ -25,6 +25,9 @@ public class ClassNpUserInfoBo implements Serializable {
     @ApiModelProperty("官方班级名称")
     private String officialName;
 
+    @ApiModelProperty("班级编号")
+    private String classNo;
+
     @ApiModelProperty("机构ID")
     private String tenantId;
 

+ 11 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java

@@ -3,10 +3,7 @@ package com.zhongzheng.modules.grade.mapper;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
-import com.zhongzheng.modules.grade.bo.ClassGradeListBo;
-import com.zhongzheng.modules.grade.bo.ClassGradeQueryBo;
-import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
-import com.zhongzheng.modules.grade.bo.ClassNpUserInfoBo;
+import com.zhongzheng.modules.grade.bo.*;
 import com.zhongzheng.modules.grade.domain.ClassGrade;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.grade.vo.*;
@@ -76,4 +73,14 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
 
     @InterceptorIgnore(tenantLine = "true")
     List<ClassGrade> queryListByNameTenantId(@Param("className") String className,@Param("tenantId") Long tenantId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<ClassGrade> getGradeListByCodeTenant(@Param("registerCode") String registerCode);
+
+    @InterceptorIgnore(tenantLine = "true")
+    void UpGradeStatusByTenant(ClassGradeOpenUpBo openUpBo);
+
+    @InterceptorIgnore(tenantLine = "true")
+    void UpGradeCodeByIdTenant(@Param("ids") List<Long> ids);
+
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeService.java

@@ -94,4 +94,10 @@ public interface IClassGradeService extends IService<ClassGrade> {
 	List<ClassNpUserInfoVo> officialGradeDetail(ClassNpUserInfoBo bo);
 
 	String getOfficialGradeNum(ClassOfficialNumBo bo);
+
+	List<ClassGrade> getGradeListByTenant(ClassGradeListBo bgListBo);
+
+	void openOfficialGrade(ClassGradeOpenBo bo);
+
+	List<ClassNpUserInfoVo> otherClassUserList(ClassNpUserInfoBo bo);
 }

+ 114 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -38,6 +38,7 @@ import com.zhongzheng.modules.inform.service.IInformRemindService;
 import com.zhongzheng.modules.inform.service.IInformUserService;
 import com.zhongzheng.modules.inform.vo.InformRemindBusinessVo;
 import com.zhongzheng.modules.inform.vo.InformRemindVo;
+import com.zhongzheng.modules.order.bo.OrderShareMoneyAddBo;
 import com.zhongzheng.modules.order.mapper.OrderMapper;
 import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.service.ISysTenantService;
@@ -157,6 +158,9 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
     @Value("${oldStudySys.pushGradeCount}")
     private String GRADE_CHANGE_PATH;
 
+    @Value("${oldStudySys.classUserListPath}")
+    private String CLASS_LIST_PATH;
+
     @Override
     public ClassGradeVo queryById(Long gradeId) {
         ClassGradeQueryBo classGradeQueryBo = new ClassGradeQueryBo();
@@ -240,7 +244,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                 List<ClassGrade> classGrades = baseMapper.getGradeListByTenant(bgListBo);
                 if (CollectionUtils.isEmpty(classGrades)){
                     //生成预报名官方编号
-                    add.setRegisterCode(ServletUtils.getEncoded("PIY"));
+                    add.setOfficialName(ServletUtils.getEncoded("PIY"));
                     add.setClassStatus(0);
                 }else {
                     //获取班级创建最多的机构
@@ -258,11 +262,11 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                     List<ClassGradeGoods> gradeGoods = iClassGradeGoodsService.getGradeGoodsList(goodsId);
                     if(gradeGoods.size() < classGradesMax.size()){
                         ClassGrade classGrade = classGradesMax.get(gradeGoods.size());
-                        add.setRegisterCode(classGrade.getRegisterCode());
+                        add.setOfficialName(classGrade.getRegisterCode());
                         add.setClassStatus(0);
                     }else {
                         //生成预报名官方编号
-                        add.setRegisterCode(ServletUtils.getEncoded("PIY"));
+                        add.setOfficialName(ServletUtils.getEncoded("PIY"));
                         add.setClassStatus(0);
                     }
                 }
@@ -305,6 +309,23 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         ClassGrade update = BeanUtil.toBean(bo, ClassGrade.class);
         validEntityBeforeSave(update);
         update.setUpdateTime(DateUtils.getNowTime());
+        //二建和二造班级开班预留预报名编号
+        if (update.getClassStatus() != null && update.getClassStatus().equals(1)) {
+            //二造和二建班级开班校验班级人数(300人)
+            ClassGradeGoods gradeGoods = iClassGradeGoodsService.getOne(new LambdaQueryWrapper<ClassGradeGoods>().eq(ClassGradeGoods::getGradeId,update.getGradeId()));
+            if (ObjectUtils.isNull(gradeGoods)){
+                throw new RuntimeException("班级商品信息查询失败");
+            }
+            Goods goods = iGoodsService.getById(gradeGoods.getGoodsId());
+            if (!checkEjjjPeopleNumLimit(goods.getBusinessId(),update.getGradeId())){
+                throw new RuntimeException("班级人数超过上限,不能开班,请检查!");
+            }
+
+            ClassGrade gradeGrade = getById(update.getGradeId());
+            if (StringUtils.isNotBlank(gradeGrade.getOfficialName())){
+                update.setRegisterCode(gradeGrade.getOfficialName());
+            }
+        }
         if (bo.getStatus() != -1) {
             LambdaQueryWrapper<ClassGrade> lqw = Wrappers.lambdaQuery();
             lqw.eq(ClassGrade::getClassName, update.getClassName());
@@ -328,6 +349,10 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
             if (list.size() > 0) {
                 throw new RuntimeException("班级还有学员,无法删除");
             }
+            ClassGrade grade = getById(bo.getGradeId());
+            if (StringUtils.isNotBlank(grade.getOfficialName())){
+                throw new RuntimeException("二建/二造班级无法删除,请联系技术人员!");
+            }
         }
         if (bo.getStatus() == 0) {  //更新为无效
             ClassGradeVo oldGrade = this.queryById(bo.getGradeId());
@@ -339,6 +364,9 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                     throw new RuntimeException("班级还有学员,无法设置为无效");
                 }
             }
+            if (StringUtils.isNotBlank(oldGrade.getOfficialName())){
+                throw new RuntimeException("二建/二造班级无法设置为无效,请联系技术人员!");
+            }
         }
         //更改班主任
         if (bo.getSysUserId() != null) {
@@ -1031,7 +1059,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
             List<ClassGrade> classGradesMax = map.get(sortBo.getKey()).stream().sorted(Comparator.comparing(ClassGrade::getCreateTime)).collect(Collectors.toList());
             if(bo.getSortNum() < classGradesMax.size()){
                 ClassGrade classGrade = classGradesMax.get(bo.getSortNum());
-               return classGrade.getRegisterCode();
+               return classGrade.getOfficialName();
             }else {
                 //创建新预报名班级
                 creatClass(goodsIds.get(0),tenantId,encoded);
@@ -1040,6 +1068,87 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         return encoded;
     }
 
+    @Override
+    public List<ClassGrade> getGradeListByTenant(ClassGradeListBo bgListBo) {
+        return baseMapper.getGradeListByTenant(bgListBo);
+    }
+
+    @Override
+    public void openOfficialGrade(ClassGradeOpenBo bo) {
+       List<ClassGrade> list = baseMapper.getGradeListByCodeTenant(bo.getRegisterCode());
+       if (CollectionUtils.isEmpty(list)){
+           return;
+       }
+        List<Long> ids = list.stream().map(ClassGrade::getGradeId).collect(Collectors.toList());
+        //保留预报名编号
+        baseMapper.UpGradeCodeByIdTenant(ids);
+
+        ClassGradeOpenUpBo openUpBo = new ClassGradeOpenUpBo();
+        openUpBo.setGradeIds(ids);
+        openUpBo.setClassStatus(bo.getClassStatus());
+        openUpBo.setOfficialName(bo.getOfficialName());
+        baseMapper.UpGradeStatusByTenant(openUpBo);
+    }
+
+    @Override
+    public List<ClassNpUserInfoVo> otherClassUserList(ClassNpUserInfoBo bo) {
+        //新系统二建/二造班级学员信息
+        List<ClassNpUserInfoVo> result = baseMapper.getGradeDetailByTenant(bo);
+        if (CollectionUtils.isNotEmpty(result)){
+            result.forEach(item -> {
+                String date = "yyyy-MM-dd HH:mm:ss";
+                item.setOrderTime(DateUtils.timestampToDateFormat(item.getOrderTimeLong(),date));
+                item.setCreateTime(DateUtils.timestampToDateFormat(item.getCreateTimeLong(),date));
+                item.setDoTime(DateUtils.timestampToDateFormat(item.getDoTimeLong(),date));
+                //机构名称
+                SysTenant tenant = sysTenantService.getById(item.getTenantId());
+                if (ObjectUtils.isNotNull(tenant)){
+                    item.setOrgName(tenant.getTenantName());
+                }
+                //获取学习开始时间和结束时间
+                UserStudyRecord startRecord = iUserStudyRecordService.getStudyRecord(item.getUserId(),item.getGradeId(),"ASC");
+                if (ObjectUtils.isNotNull(startRecord)){
+                    item.setBeginTime(DateUtils.timestampToDateFormat(startRecord.getCreateTime(),date));
+                    UserStudyRecord endRecord = iUserStudyRecordService.getStudyRecord(item.getUserId(),item.getGradeId(),"DESC");
+                    item.setApplyTime(DateUtils.timestampToDateFormat(endRecord.getCreateTime(),date));
+                }
+                //科目名称
+                if(StringUtils.isNotBlank(item.getSubjectIds())){
+                    List<CourseSubject> courseSubjectList = iCourseSubjectService.listByIds(Arrays.asList(item.getSubjectIds().split(",")));
+                    item.setMajorName(courseSubjectList.stream().filter(x -> StringUtils.isNotBlank(x.getSubjectName())).map(CourseSubject::getSubjectName).collect(Collectors.joining(",")));
+                }
+            });
+        }
+        //旧系统二建/二造班级学员信息
+        bo.setClassNo(bo.getOfficialName());
+//        Map<String, String> params = new HashMap<>();
+        Long nowTime = DateUtils.getNowTime();
+        String sign = ToolsUtils.EncoderByMd5(nowTime.toString()+"pubilc2022");
+//        params.put("stamp", nowTime.toString());
+//        params.put("sign", sign);
+//        params.put("jsonstr", JSONObject.toJSONString(bo));
+        bo.setSign(sign);
+        bo.setStamp(nowTime);
+        JSONObject param = JSONObject.parseObject(JSONObject.toJSONString(bo));
+        String respone = "";
+        try {
+            respone = HttpUtils.sendPost(CLASS_LIST_PATH, param);
+            log.info("查询旧系统班级人数结果" + respone, "");
+            if (!respone.contains("\"Status\":true")) {
+                throw new CustomException("同步请求错误" + respone);
+            }
+            JSONObject jsonObject = (JSONObject) JSONObject.parse(respone);
+            JSONArray dataArray = jsonObject.getJSONArray("Message");
+            if (ObjectUtils.isNotNull(dataArray)){
+                List<ClassNpUserInfoVo> voList = JSONArray.parseArray(JSONArray.toJSONString(dataArray), ClassNpUserInfoVo.class);
+                result.addAll(voList);
+            }
+        } catch (Exception e) {
+            throw new CustomException("同步请求错误"+e.getMessage());
+        }
+        return result;
+    }
+
     //创建预开班班级
     private void creatClass(Long goodsId,Long tenantId,String code){
         //创建新班级
@@ -1056,7 +1165,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
             classGrade.setLearningStatus(2);//待定
             classGrade.setStudentUpper(ClassGrade.INIT_UPPER); //上限300
             //生成官方班级编号
-            classGrade.setRegisterCode(code);
+            classGrade.setOfficialName(code);
         }
         classGrade.setUpdateTime(DateUtils.getNowTime());
         classGrade.setStatus(1);

+ 19 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassNpUserInfoVo.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.grade.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -18,45 +19,57 @@ public class ClassNpUserInfoVo implements Serializable {
     private String subjectIds;
 
     /// 机构id
+    @ApiModelProperty("机构id")
     private String tenantId; 
     
     /// 机构名称
+    @ApiModelProperty("机构名称")
     private String orgName;
     
     /// 班级编号
+    @ApiModelProperty("班级编号")
     private String classNo;
 
     /// 班级名称
-    private String className;
+    @ApiModelProperty("班级名称")
+    private String categoryName;
     
     /// 课程类型id,5二建继教,8二造继教
     private Integer platformId;
     
     /// 课程类型名称,二级建造师、二级造价师
+    @ApiModelProperty("项目")
     private String platformName;
     
     /// 专业名称
+    @ApiModelProperty("科目")
     private String majorName;
     
     /// 姓名
+    @ApiModelProperty("学员姓名")
     private String name;
 
     /// 姓名
+    @ApiModelProperty("学员单位")
     private String companyName;
     
     /// 身份证
+    @ApiModelProperty("身份证")
     private String idNum;
     
     /// 手机号
+    @ApiModelProperty("手机号")
     private String mobile;
     
     /// 是否完善必填信息,true是,false否
     private Boolean isPerfect;
     
     /// 是否上报注册中心,1是 0否
+    @ApiModelProperty("是否上报注册中心,1是 0否")
     private Integer reportStatu;
     
     /// 学时申报,1已申报 0未申报
+    @ApiModelProperty("学时申报,1已申报 0未申报")
     private Integer studyQueueStatus;
     
     /// 开通方式,0线下,其他线上
@@ -69,26 +82,31 @@ public class ClassNpUserInfoVo implements Serializable {
     private Integer totalHours;
     
     /// 下单时间
+    @ApiModelProperty("下单时间")
     private String orderTime;
 
     /// 下单时间
     private Long orderTimeLong;
     
     /// 购买时间
+    @ApiModelProperty("报名时间")
     private String createTime;
 
     /// 购买时间
     private Long createTimeLong;
     
     /// 上传报名时间
+    @ApiModelProperty("上传报名时间")
     private String doTime;
 
     /// 上传报名时间
     private Long doTimeLong;
     
     /// 开始学习时间
+    @ApiModelProperty("开始学习时间")
     private String beginTime;
     
     /// 完成学习时间
+    @ApiModelProperty("完成学习时间")
     private String applyTime;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderAddBo.java

@@ -93,4 +93,6 @@ public class OrderAddBo {
     private Integer payStatus;
     @ApiModelProperty("公众号页面url")
     private String url;
+    @ApiModelProperty("订单机构标识(旧系统)")
+    private Integer orderOrg;
 }

+ 40 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/Order.java

@@ -94,5 +94,45 @@ private static final long serialVersionUID=1L;
     /** 商户ID*/
     private Long tenantId;
 
+    //订单机构标识:1        祥粤云学堂
+    //2        中正云学堂
+    //3        祥粤云学堂
+    //4        云学堂
+    //5        深圳市农科培训中心
+    //6        九慧培训
+    //7        企帮
+    //8        广州建筑业云学堂
+    //9        昊拓消防
+    //10        广州市监理协会
+    //11        广州市勘察设计云学堂
+    //12        广州市招投标行业云学堂
+    //13        广州市造价行业云学堂
+    //14        中山市政协会云学堂
+    //15        建成教育
+    //16        广东省二级造价师考前培训课程
+    //17        广东邮电职业技术学院
+    //18        广州市市政公路协会云学堂
+    //19        珠海市建协建筑培训中心
+    //20        深圳市地质学会继续教育培训系统
+    //21        东莞市建设培训中心
+    //22        深圳建筑业协会
+    //23        广东省市政行业协会云学堂
+    //24        广东建工云学堂
+    //25        建通业务系统
+    //26        粤建教育
+    //27        佛山市顺德区市政建设工程协会
+    //28        中山市勘设工程咨询有限公司
+    //29        云浮云学堂
+    //30        肇庆云学堂
+    //31        顺德云学堂
+    //32        茂名云学堂
+    //33        南海云学堂
+    //34        东莞云学堂
+    //35        惠州云学堂
+    //36        凯文云学堂
+    //37        山西云学堂
+    //38        晋建云学堂
+    private Integer orderOrg;
+
 
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderMapper.java

@@ -1,6 +1,8 @@
 package com.zhongzheng.modules.order.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
+import com.zhongzheng.modules.grade.bo.ClassGradeListBo;
+import com.zhongzheng.modules.grade.domain.ClassGrade;
 import com.zhongzheng.modules.order.bo.OrderGoodsQueryBo;
 import com.zhongzheng.modules.order.bo.OrderQueryBo;
 import com.zhongzheng.modules.order.domain.Order;

+ 40 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -37,7 +37,9 @@ import com.zhongzheng.modules.goods.domain.GoodsFreeBank;
 import com.zhongzheng.modules.goods.service.IGoodsCourseService;
 import com.zhongzheng.modules.goods.service.IGoodsFreeBankService;
 import com.zhongzheng.modules.goods.service.IGoodsService;
+import com.zhongzheng.modules.grade.bo.ClassGradeListBo;
 import com.zhongzheng.modules.grade.bo.ClassGradeQueryBo;
+import com.zhongzheng.modules.grade.bo.ClassGradeSortBo;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserTempQueryBo;
 import com.zhongzheng.modules.grade.domain.*;
 import com.zhongzheng.modules.grade.service.IClassGradeGoodsService;
@@ -1722,8 +1724,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             classGrade.setClassStatus(0);
             classGrade.setLearningStatus(2);//待定
             classGrade.setStudentUpper(ClassGrade.INIT_UPPER); //上限300
-            //生成官方班级编号
-            classGrade.setRegisterCode(ServletUtils.getEncoded("PIY"));
+            //生成预开班编号
+            classGrade.setOfficialName( createGradeCode(goodsId,businessVo));
         } else {
             classGrade.setLearningStatus(1);//即刻
             classGrade.setStudentUpper(ClassGrade.INIT_UPPER2); //上限1000000
@@ -1775,6 +1777,42 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return true;
     }
 
+    private String createGradeCode(Long goodsId,CourseBusinessVo business) {
+        Goods goods = iGoodsService.getById(goodsId);
+        List<CourseSubject> courseSubjectList = courseSubjectService.listByIds(Arrays.asList(goods.getSubjectIds().split(",")));
+        List<String> subNames = courseSubjectList.stream().map(CourseSubject::getSubjectName).collect(Collectors.toList());
+        List<Long> subIds = courseSubjectService.getIdsByTenant(subNames);
+        //获取业务层次下所有班级
+        ClassGradeListBo bgListBo = new ClassGradeListBo();
+        bgListBo.setAliasName(business.getAliasName());
+        bgListBo.setSubIds(subIds);
+        List<ClassGrade> classGrades = iClassGradeService.getGradeListByTenant(bgListBo);
+        if (CollectionUtils.isEmpty(classGrades)) {
+            return ServletUtils.getEncoded("PIY");
+        } else {
+            //获取班级创建最多的机构
+            Map<Long, List<ClassGrade>> map = classGrades.stream().collect(Collectors.groupingBy(ClassGrade::getTenantId));
+            List<ClassGradeSortBo> sortList = new ArrayList<>();
+            map.forEach((k, v) -> {
+                ClassGradeSortBo sortBo = new ClassGradeSortBo();
+                sortBo.setKey(k);
+                sortBo.setSize(v.size());
+                sortList.add(sortBo);
+            });
+            ClassGradeSortBo sortBo = sortList.stream().sorted(Comparator.comparing(ClassGradeSortBo::getSize).reversed()).findFirst().orElse(null);
+            List<ClassGrade> classGradesMax = map.get(sortBo.getKey()).stream().sorted(Comparator.comparing(ClassGrade::getCreateTime)).collect(Collectors.toList());
+            //获取当前机构商品下的班级
+            List<ClassGradeGoods> gradeGoods = iClassGradeGoodsService.getGradeGoodsList(goods.getGoodsId());
+            if (gradeGoods.size() < classGradesMax.size()) {
+                ClassGrade classGrade = classGradesMax.get(gradeGoods.size());
+                return classGrade.getOfficialName();
+            } else {
+                //生成预报名官方编号
+                return ServletUtils.getEncoded("PIY");
+            }
+        }
+    }
+
 
     //选择新的班级
     @Override

+ 29 - 1
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

@@ -908,7 +908,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             CONCAT('',cg.tenant_id) as tenantId,
             cg.official_name as classNo,
             cb.alias_name as platformName,
-            cg.class_name as className,
+            cg.class_name as categoryName,
             u.realname as `name`,
             u.id_card as idNum,
             u.telphone as mobile,
@@ -1017,4 +1017,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             class_grade
         where class_name like concat('%', #{className}, '%') and tenant_id = #{tenantId}
     </select>
+
+    <select id="getGradeListByCodeTenant" parameterType="java.lang.String" resultType="com.zhongzheng.modules.grade.domain.ClassGrade">
+        SELECT
+            *
+        FROM
+            class_grade
+        where register_code = #{registerCode}
+    </select>
+
+    <update id="UpGradeStatusByTenant" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeOpenUpBo" >
+        update class_grade set class_status = #{classStatus} , official_name = #{officialName} where 1 = 1
+        <if test="gradeIds != null and gradeIds.size()!=0 ">
+            AND grade_id in
+            <foreach collection="gradeIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </update>
+
+    <update id="UpGradeCodeByIdTenant" parameterType="java.lang.Long" >
+        update class_grade set register_code = official_name where 1 = 1
+        <if test="gradeIds != null and gradeIds.size()!=0 ">
+            AND grade_id in
+            <foreach collection="ids" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </update>
 </mapper>