he2802 1 жил өмнө
parent
commit
4fcb8e0e96

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ProfileTpAddBo.java

@@ -48,4 +48,6 @@ public class ProfileTpAddBo {
     /** 商品id拼接,多个,拼接 */
     @ApiModelProperty("商品id拼接,多个,拼接")
     private String goodsIds;
+    @ApiModelProperty("是否审核通过才允许学习 1是0否")
+    private Integer checkStatus;
 }

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/bo/ProfileTpEditBo.java

@@ -56,5 +56,6 @@ public class ProfileTpEditBo {
     /** 商品id拼接,多个,拼接 */
     @ApiModelProperty("商品id拼接,多个,拼接")
     private String goodsIds;
-
+    @ApiModelProperty("是否审核通过才允许学习 1是0否")
+    private Integer checkStatus;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/domain/ProfileTp.java

@@ -48,6 +48,9 @@ private static final long serialVersionUID=1L;
     @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String goodsIds;
     private Long tenantId;
+    /** 是否审核通过才允许学习 1是0否 */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Integer checkStatus;
 
     @TableField(exist = false)
     private Long oId;

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/ProfileTpVo.java

@@ -58,4 +58,6 @@ public class ProfileTpVo {
 	@Excel(name = "商品id拼接,多个,拼接")
 	@ApiModelProperty("商品id拼接,多个,拼接")
 	private String goodsIds;
+	@ApiModelProperty("是否审核通过才允许学习 1是0否")
+	private Integer checkStatus;
 }

+ 47 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -46,9 +46,11 @@ import com.zhongzheng.modules.goods.vo.*;
 import com.zhongzheng.modules.grade.domain.ClassGrade;
 import com.zhongzheng.modules.grade.domain.ClassGradeGoods;
 import com.zhongzheng.modules.grade.domain.ClassGradeInterface;
+import com.zhongzheng.modules.grade.domain.ClassGradeUser;
 import com.zhongzheng.modules.grade.service.IClassGradeGoodsService;
 import com.zhongzheng.modules.grade.service.IClassGradeInterfaceService;
 import com.zhongzheng.modules.grade.service.IClassGradeService;
+import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.grade.vo.SyncGoodsExport;
 import com.zhongzheng.modules.inform.domain.InformRemind;
@@ -57,6 +59,7 @@ import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.domain.OrderInputTemplate;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderInputTemplateService;
+import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.pay.domain.PayServe;
 import com.zhongzheng.modules.pay.domain.PaySupply;
 import com.zhongzheng.modules.pay.service.IPayServeService;
@@ -130,7 +133,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
 
     @Autowired
     private IOrderGoodsService iOrderGoodsService;
-
+    @Autowired
+    private IOrderService iOrderService;
     @Autowired
     private IOrderInputTemplateService iOrderInputTemplateService;
     @Autowired
@@ -140,6 +144,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
     @Autowired
     private IClassGradeService iClassGradeService;
     @Autowired
+    private IClassGradeUserService iClassGradeUserService;
+    @Autowired
     private ICourseMenuService iCourseMenuService;
     @Autowired
     private ICourseMenuExamService iCourseMenuExamService;
@@ -433,7 +439,46 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
 
     @Override
     public List<GoodsVo> selectListToInput(GoodsQueryBo bo) {
-        return baseMapper.selectListToInput(bo);
+        List<GoodsVo> goodsVoList = baseMapper.selectListToInput(bo);
+        if (CollectionUtils.isEmpty(goodsVoList)){
+            return new ArrayList<>();
+        }
+        if (bo.getGoodsType() == 1){
+            goodsVoList.forEach(item -> {
+                List<ClassGradeGoods> gradeGoods = iClassGradeGoodsService
+                        .list(new LambdaQueryWrapper<ClassGradeGoods>()
+                        .eq(ClassGradeGoods::getGoodsId, item.getGoodsId()));
+                if (CollectionUtils.isNotEmpty(gradeGoods)){
+                    item.setGradeNum(Long.valueOf(gradeGoods.size()));
+                    gradeGoods.forEach(gradeGoodsItem -> {
+                        ClassGrade grade = iClassGradeService.getById(gradeGoodsItem.getGradeId());
+                        if (ObjectUtils.isNull(grade) || grade.getStatus() != 1){
+                            return;
+                        }
+                        if (ObjectUtils.isNotNull(grade.getClassStartTime()) && grade.getClassEndTime() < DateUtils.getNowTime()){
+                            return;
+                        }
+                        if (ObjectUtils.isNotNull(grade.getSevenCode())){
+                            //七大员继教班级,计算班级人数
+                            Integer classGradeNum = iOrderService.getClassGradeNum(grade.getSevenCode());
+                            if (classGradeNum < grade.getStudentUpper()){
+                                item.setGradeId(grade.getGradeId());
+                                item.setGradeName(grade.getClassName());
+                            }
+                        }else {
+                            Integer count = iClassGradeUserService.count(new LambdaQueryWrapper<ClassGradeUser>()
+                                    .eq(ClassGradeUser::getGradeId, grade.getGradeId())
+                                    .eq(ClassGradeUser::getStatus, 1));
+                            if (count < grade.getStudentUpper()){
+                                item.setGradeId(grade.getGradeId());
+                                item.setGradeName(grade.getClassName());
+                            }
+                        }
+                    });
+                }
+            });
+        }
+        return goodsVoList;
     }
 
     @Override

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/domain/ClassGrade.java

@@ -95,4 +95,7 @@ private static final long serialVersionUID=1L;
     private Long tenantId;
 
     private Long firstChoiceGrade;
+
+    @TableField(exist = false)
+    private Boolean isNewClass;
 }

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

@@ -88,7 +88,7 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
     @InterceptorIgnore(tenantLine = "true")
     void UpGradeInterfaceByTenant(ClassGradeOpenUpBo upBo);
 
-    ClassGrade getSevenGrade(List<Long> gradeIds);
+    ClassGrade getSevenGrade(@Param("gradeIds") List<Long> gradeIds);
 
     @InterceptorIgnore(tenantLine = "true")
     Long getStudeCountByCode(String sevenCode);
@@ -111,4 +111,7 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
 
     @InterceptorIgnore(tenantLine = "true")
     Long getGradeCount(String sevenCode);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Integer getStudeCountByCodeNoTenant(String sevenCode);
 }

+ 25 - 18
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -312,23 +312,26 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
             Goods goods = iGoodsService.getById(goodsId);
             String businessName = iGoodsService.getGoodsBusinessName(goodsId);
             if (businessName.contains("继续教育") && businessName.contains("施工现场专业人员")) {
-                List<ClassGradeInterface> interfaceList = iClassGradeInterfaceService
-                        .list(new LambdaQueryWrapper<ClassGradeInterface>()
-                                .in(ClassGradeInterface::getType, Arrays.asList(1, 3))
-                                .eq(ClassGradeInterface::getStatus, 1));
-                if (CollectionUtils.isNotEmpty(interfaceList)){
-                    interfaceList.forEach(item -> {
-                        if (item.getType() == 1){
-                            //官方信息推送
-                            add.setInterfacePushId(item.getId());
-                        }else if (item.getType() == 3){
-                            //学时推送
-                            add.setInterfacePeriodId(item.getId());
-                        }
-                    });
+                String sevenYear = goods.getSevenYear();
+                if (!Arrays.asList("2024").contains(sevenYear)){
+                    List<ClassGradeInterface> interfaceList = iClassGradeInterfaceService
+                            .list(new LambdaQueryWrapper<ClassGradeInterface>()
+                                    .in(ClassGradeInterface::getType, Arrays.asList(1, 3))
+                                    .eq(ClassGradeInterface::getStatus, 1));
+                    if (CollectionUtils.isNotEmpty(interfaceList)){
+                        interfaceList.forEach(item -> {
+                            if (item.getType() == 1){
+                                //官方信息推送
+                                add.setInterfacePushId(item.getId());
+                            }else if (item.getType() == 3){
+                                //学时推送
+                                add.setInterfacePeriodId(item.getId());
+                            }
+                        });
+                    }
+                    String sevenCode = getSevenCode(goodsId,add.getStudentUpper());
+                    add.setSevenCode(sevenCode);
                 }
-                String sevenCode = getSevenCode(goodsId);
-                add.setSevenCode(sevenCode);
             }
             else if (("继续教育二级建造师".equals(businessName)) || ("继续教育二级造价师".equals(businessName))){
                 erJfalg = true;
@@ -554,7 +557,7 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         });
     }
 
-    private String getSevenCode(Long goodsId) {
+    private String getSevenCode(Long goodsId,Integer studentUpper) {
         Goods g = iGoodsService.getById(goodsId);
         List<Goods> list = iGoodsService.list(new LambdaQueryWrapper<Goods>()
                 .eq(Goods::getEducationTypeId, g.getEducationTypeId())
@@ -572,7 +575,11 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
             if (CollectionUtils.isNotEmpty(classGradeList)){
                 ClassGrade classGrade = baseMapper.getSevenGrade(classGradeList.stream().map(ClassGradeGoods::getGradeId).collect(Collectors.toList()));
                 if (ObjectUtils.isNotNull(classGrade)){
-                    return classGrade.getSevenCode();
+                    //判断班级人数
+                    Integer locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGrade.getSevenCode());
+                    if ((studentUpper - locakStudentNum) > 0) {
+                        return classGrade.getSevenCode();
+                    }
                 }
             }
         }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java

@@ -70,6 +70,8 @@ public interface IOrderService extends IService<Order> {
 	 */
 	Map<String, String> placeSmallOrder(OrderAddBo bo);
 
+	Integer getClassGradeNum(String sevenCode);
+
 	Map<String, String> placeGzhOrder(OrderAddBo bo);
 
 	Map<String, String> placePcOrder(OrderAddBo bo);

+ 35 - 47
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -2414,6 +2414,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         Goods goods = iGoodsService.getById(goodsId);
         String tenantId = ServletUtils.getRequest().getHeader("TenantId");
         SysTenant sysTenant = iSysTenantService.getById(Long.valueOf(tenantId));
+        String sevenYear = goods.getSevenYear();
         //指定班级
         if (gradeId != null && gradeId > 0) {
             ClassGradeVo classGradeVo = iClassGradeService.queryById(gradeId);
@@ -2431,7 +2432,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
             int locakStudentNum = 0;
             Boolean sevenFlag = false;
-            if (businessFull.contains("继续教育") && businessFull.contains("施工现场专业人员")){
+            if (businessFull.contains("继续教育") && businessFull.contains("施工现场专业人员") && !Arrays.asList("2024").contains(sevenYear)){
                 if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
                     //七大员继教班级共享
                     locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGradeVo.getSevenCode());
@@ -2478,7 +2479,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             ClassGradeVo classGradeVo = classGradeVoList.get(i);
             int locakStudentNum = 0;
             Boolean sevenFlag = false;
-            if (businessFull.contains("继续教育") && businessFull.contains("施工现场专业人员")){
+            if (businessFull.contains("继续教育") && businessFull.contains("施工现场专业人员")
+                    && StringUtils.isNotBlank(goods.getSevenYear()) && !Arrays.asList("2024").contains(goods.getSevenYear())){
                 if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
                     //七大员继教班级共享
                     locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGradeVo.getSevenCode());
@@ -2516,7 +2518,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         //创建新班级
         CourseBusinessVo businessVo = iCourseBusinessService.queryById(businessId);
         boolean isConfigTp = false; //商品是否有配置选班模板
-        Boolean isNewClass = true; //商品是否有配置选班模板
         if (Validator.isNotEmpty(businessVo) && Validator.isNotEmpty(businessVo.getTemplateName()) && businessVo.getTemplateName().equals("班级")) {
             isConfigTp = true;
         }
@@ -2529,47 +2530,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             String businessFullName = iGoodsService.getGoodsBusinessName(goodsId);
             if (businessFullName.contains("继续教育") && businessFullName.contains("施工现场专业人员")){
                 //七大员继教
-//                classGrade.setStudentUpper(ClassGrade.INIT_UPPER3); //上限1000
-                classGrade.setStudentUpper(1); //上限1000
-                //班级绑定学员资料推送和学时推送
-                List<ClassGradeInterface> list = iClassGradeInterfaceService
-                        .list(new LambdaQueryWrapper<ClassGradeInterface>()
-                        .eq(ClassGradeInterface::getStatus, 1)
-                        .in(ClassGradeInterface::getType, Arrays.asList(1, 3)));
-                if (CollectionUtils.isNotEmpty(list)){
-                    list.forEach(item -> {
-                        if (item.getType() == 1){
-                            classGrade.setInterfacePushId(item.getId());
-                        }else if(item.getType() == 3){
-                            classGrade.setInterfacePeriodId(item.getId());
-                        }
-                    });
-                }
-                if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
-                    //七大员继教班级共享
-//                    classGrade.setSevenCode(getSevenCodeNoTenant(goodsId,classGrade,isNewClass));
-                    classGrade.setSevenCode(ServletUtils.getEncoded("SEV"));
-                    Goods g = iGoodsService.getById(goodsId);
-                    String businessName = iGoodsService.getGoodsBusinessName(g.getGoodsId());
-                    Major major = iMajorService.getById(g.getMajorId());
-                    List<Goods> list4 = iGoodsService.getRelevanceGoodsNoTenant(businessName,major.getCategoryName(),g.getGoodsId());
-                    if (CollectionUtils.isNotEmpty(list4)){
-                        List<ClassGradeGoods> classGradeList = iClassGradeGoodsService
-                                .getClassNoTenant(list4.stream().map(Goods::getGoodsId).collect(Collectors.toList()));
-                        if (CollectionUtils.isNotEmpty(classGradeList)){
-                            ClassGrade classGrade4 = baseMapper.getSevenGradeNoTenant(classGradeList.stream().map(ClassGradeGoods::getGradeId).collect(Collectors.toList()));
-                            if (ObjectUtils.isNotNull(classGrade4)){
-                                //判断班级人数
-                                Integer locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGrade4.getSevenCode());
-                                if ((classGrade.getStudentUpper() - locakStudentNum) > 0) {
-                                    isNewClass = false;
-                                    classGrade.setSevenCode(classGrade4.getSevenCode());
-                                }
+                classGrade.setStudentUpper(ClassGrade.INIT_UPPER3); //上限1000
+                if (!Arrays.asList("2024").contains(sevenYear)){
+                    //班级绑定学员资料推送和学时推送
+                    List<ClassGradeInterface> list = iClassGradeInterfaceService.list(new LambdaQueryWrapper<ClassGradeInterface>()
+                            .eq(ClassGradeInterface::getStatus, 1)
+                            .in(ClassGradeInterface::getType, Arrays.asList(1, 3)));
+                    if (CollectionUtils.isNotEmpty(list)){
+                        list.forEach(item -> {
+                            if (item.getType() == 1){
+                                classGrade.setInterfacePushId(item.getId());
+                            }else if(item.getType() == 3){
+                                classGrade.setInterfacePeriodId(item.getId());
                             }
-                        }
+                        });
+                    }
+                    if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
+                        //七大员继教班级共享
+                        classGrade.setSevenCode(getSevenCodeNoTenant(goodsId,classGrade));
+                    }else {
+                        classGrade.setSevenCode(getSevenCode(goodsId));
                     }
-                }else {
-                    classGrade.setSevenCode(getSevenCode(goodsId));
                 }
             }else {
                 classGrade.setStudentUpper(ClassGrade.INIT_UPPER); //上限300
@@ -2600,7 +2581,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 //        classGrade.setClassName(goodsName + gradeCode);
         //七大员继教同一个专业下同一个班级名称
         Boolean classFlag = true;
-        if (businessFull.contains("继续教育") && businessFull.contains("施工现场专业人员")){
+        if (businessFull.contains("继续教育") && businessFull.contains("施工现场专业人员")
+                && StringUtils.isNotBlank(goods.getSevenYear()) && !Arrays.asList("2024").contains(goods.getSevenYear())){
             List<ClassGrade> gradeName = new ArrayList<>();
             if (ObjectUtils.isNotNull(sysTenant.getSevenClass()) && sysTenant.getSevenClass() == 1){
                 //七大员继教班级共享
@@ -2610,7 +2592,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             }
             if (CollectionUtils.isNotEmpty(gradeName)){
                 ClassGrade grade = gradeName.stream().filter(x -> ObjectUtils.isNotNull(x.getClassStatus()) && x.getClassStatus() == 1).findFirst().orElse(null);
-                if (ObjectUtils.isNotEmpty(grade) && !isNewClass){
+                if (ObjectUtils.isNotEmpty(grade) && ObjectUtils.isNotNull(classGrade.getIsNewClass()) && !classGrade.getIsNewClass()){
                     //存在已开班的班级
                     classGrade.setClassStatus(grade.getClassStatus());
                     classGrade.setOfficialName(grade.getOfficialName());
@@ -2624,7 +2606,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     classGrade.setInterfacePeriodId(grade.getInterfacePeriodId());
                     classGrade.setInterfacePushId(grade.getInterfacePushId());
                 }else {
-                    String name = gradeName.stream().findFirst().get().getClassName();
+//                    String name = gradeName.stream().findFirst().get().getClassName();
+                    String name = goods.getGoodsName()+"预开班";
                     classGrade.setClassName(name);
                 }
                 classFlag = false;
@@ -2710,6 +2693,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
        return true;
     }
 
+    @Override
+    public Integer getClassGradeNum(String sevenCode){
+        return baseMapper.getStudeCountByCodeNoTenant(sevenCode);
+    }
+
     private void synchronousCreation(ClassGrade classGrade, SysTenant sysTenant,Long goodsId) {
         List<SysTenant> tenantList = iSysTenantService.getListNoTenant(0L);
         if (CollectionUtils.isEmpty(tenantList)){
@@ -2779,7 +2767,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return ServletUtils.getEncoded("SEV");
     }
 
-    private String getSevenCodeNoTenant(Long goodsId,ClassGrade classGradeVo,Boolean isNewClass) {
+    private String getSevenCodeNoTenant(Long goodsId,ClassGrade classGradeVo) {
         Goods g = iGoodsService.getById(goodsId);
         String businessName = iGoodsService.getGoodsBusinessName(g.getGoodsId());
         Major major = iMajorService.getById(g.getMajorId());
@@ -2793,12 +2781,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     //判断班级人数
                     Integer locakStudentNum = baseMapper.getStudeCountByCodeNoTenant(classGrade.getSevenCode());
                     if ((classGradeVo.getStudentUpper() - locakStudentNum) > 0) {
+                        classGradeVo.setIsNewClass(false);
                         return classGrade.getSevenCode();
                     }
                 }
             }
         }
-        isNewClass = true;
         return ServletUtils.getEncoded("SEV");
     }
 

+ 53 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -1797,9 +1797,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         //退款金额
         BigDecimal refundPrice = orderRefundList.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
         if (order.getOrderFrom() == 3 && bo.getPayType() != 1) {
-            if (Validator.isEmpty(bo.getToBankAcount()) || Validator.isEmpty(bo.getToBankName()) || Validator.isEmpty(bo.getToBankTypeName())) {
-                throw new CustomException("支付参数错误");
-            }
             //旧系统B端网银退款处理
             Integer sign = handleEnterpriseRefund(refundPrice, order, bo, orderRefundList.get(0).getType(), orderRefundList);
             orderRefundList.forEach(x -> {
@@ -1861,6 +1858,37 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return true;
     }
 
+    private void refundPost(OrderRefundPayBo bo){
+        //退款详情
+        RefundOrderBo refundOrderBo = new RefundOrderBo();
+        refundOrderBo.setOrderSn(bo.getOrderSn());
+        refundOrderBo.setPeriodStatus(2);//待退款
+        List<TopOldOrderRefundVo> orderRefundList = baseMapper.getRefundOrderByBo(refundOrderBo);
+        orderRefundList.forEach(item -> item.setRealRefundFee(item.getRefundFee()));
+        TopOldOrder order = baseMapper.getOrderBySn(bo.getOrderSn());
+        if (Validator.isEmpty(order)) {
+            throw new CustomException("订单数据错误无法支付");
+        }
+        //退款金额
+        BigDecimal refundPrice = orderRefundList.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+        if (order.getOrderFrom() == 3 && bo.getPayType() != 1) {
+            //旧系统B端网银退款处理
+            Integer sign = handleEnterpriseRefund(refundPrice, order, bo, orderRefundList.get(0).getType(), orderRefundList);
+            orderRefundList.forEach(x -> {
+                x.setPeriodStatus(sign == 2 ? 4 : 3);//支付中
+                //待扣分成
+                TopOldOrderGoods orderGoods = topOrderGoodsService.getById(x.getOrderGoodsId());
+                x.setDivideModel(orderGoods.getDivideModel());
+                x.setDivideMoney(orderGoods.getDivideMoney());
+                x.setPayCheckTime(DateUtils.getNowTime());
+            });
+            topOldOrderRefundService.updateBatchById(orderRefundList.stream().map(x -> BeanUtil.toBean(x, TopOldOrderRefund.class)).collect(Collectors.toList()));
+            update(new LambdaUpdateWrapper<TopOldOrder>()
+                    .set(TopOldOrder::getRefundStatus, sign == 2 ? 5 : 3) // 支付中
+                    .eq(TopOldOrder::getOrderSn, bo.getOrderSn()));
+        }
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void orderInvoice(String invoiceSn) {
@@ -1944,6 +1972,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             updateById(order);
         }
         if (refundPrice.compareTo(BigDecimal.ZERO) > 0) {
+            if (Validator.isEmpty(bo.getToBankAcount()) || Validator.isEmpty(bo.getToBankName()) || Validator.isEmpty(bo.getToBankTypeName())) {
+                throw new CustomException("支付账号为空!");
+            }
             bo.setTrainOrgId(order.getTenantId().toString());//旧机构ID
             String paySn = DateUtils.getTagOrderSn("CP");
             TopOrderBankPay add = BeanUtil.toBean(bo, TopOrderBankPay.class);
@@ -5040,6 +5071,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         Integer maxSort = checkLogList.stream().mapToInt(TopOldOrderCheckLog::getCheckSort).max().getAsInt();
         Integer periodStatus = 0;
         Integer refundStatus = 0;
+        Boolean flag = false;
         if (checkLog.getCheckSort() < maxSort) {
             //下个审核进入默认
             topOldOrderCheckLogService.update(new LambdaUpdateWrapper<TopOldOrderCheckLog>()
@@ -5065,6 +5097,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 check.setCheckSign(1);//开启当前流程
                 topOldOrderCheckLogService.updateById(check);
             }
+            flag = true;
         }
         TopOldOrder oldOrder = baseMapper.getOrderBySn(bo.getOrderSn());
         if (oldOrder.getOrderFrom() != 1) {
@@ -5112,6 +5145,23 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         .eq(Order::getOrderSn, refundList.get(0).getOrderSn()));
             }
         }
+
+        if (flag){
+            //存在未收款金额
+            BigDecimal orderUncollected = oldOrder.getOrderUncollected();
+            //退款金额
+            RefundOrderBo refundOrderBo = new RefundOrderBo();
+            refundOrderBo.setOrderSn(bo.getOrderSn());
+            refundOrderBo.setPeriodStatus(2);//待退款
+            List<TopOldOrderRefundVo> orderRefundList = baseMapper.getRefundOrderByBo(refundOrderBo);
+            BigDecimal refundPrice = orderRefundList.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+            if (refundPrice.compareTo(orderUncollected) <= 0){
+                OrderRefundPayBo payBo = new OrderRefundPayBo();
+                payBo.setOrderSn(bo.getOrderSn());
+                payBo.setPayType(oldOrder.getPayType());
+                refundPost(payBo);
+            }
+        }
     }
 
     @Override

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/base/ProfileTpMapper.xml

@@ -26,6 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="userIds" column="user_ids"/>
         <result property="keyValue2" column="key_value2"/>
         <result property="goodsIds" column="goods_ids"/>
+        <result property="checkStatus" column="check_status"/>
         <collection property="businessList" column="profile_tp_id" select="findBusinessList"/>
         <collection property="userList" column="user_ids" select="findUserList"/>
     </resultMap>

+ 10 - 10
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -404,16 +404,16 @@
         </if>
         <if test="goodsType ==1">
             , (SELECT count(*) FROM goods_course where goods_id =g.goods_id ) as course_num
-            , (SELECT count(*) FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id where
-            cgg.goods_id = g.goods_id and cg.`status` = 1 ) as grade_num
-            , (SELECT cg.grade_id FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id
-            where cgg.goods_id = g.goods_id and cg.`status` = 1 AND (unix_timestamp(now()) &lt; cg.class_end_time or
-            cg.class_start_time is null) AND cg.`status` = 1 AND (SELECT COUNT(a.id) FROM class_grade_user a where
-            a.grade_id = cg.grade_id and a.status =1) &lt; cg.student_upper limit 1) as grade_id
-            , (SELECT cg.class_name FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id
-            where cgg.goods_id = g.goods_id and cg.`status` = 1 AND (unix_timestamp(now()) &lt; cg.class_end_time or
-            cg.class_start_time is null) AND cg.`status` = 1 AND (SELECT COUNT(a.id) FROM class_grade_user a where
-            a.grade_id = cg.grade_id and a.status =1) &lt; cg.student_upper limit 1) as grade_name
+--             , (SELECT count(*) FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id where
+--             cgg.goods_id = g.goods_id and cg.`status` = 1 ) as grade_num
+--             , (SELECT cg.grade_id FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id
+--             where cgg.goods_id = g.goods_id and cg.`status` = 1 AND (unix_timestamp(now()) &lt; cg.class_end_time or
+--             cg.class_start_time is null) AND cg.`status` = 1 AND (SELECT COUNT(a.id) FROM class_grade_user a where
+--             a.grade_id = cg.grade_id and a.status =1) &lt; cg.student_upper limit 1) as grade_id
+--             , (SELECT cg.class_name FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id
+--             where cgg.goods_id = g.goods_id and cg.`status` = 1 AND (unix_timestamp(now()) &lt; cg.class_end_time or
+--             cg.class_start_time is null) AND cg.`status` = 1 AND (SELECT COUNT(a.id) FROM class_grade_user a where
+--             a.grade_id = cg.grade_id and a.status =1) &lt; cg.student_upper limit 1) as grade_name
         </if>
         FROM
         goods g

+ 8 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

@@ -1357,4 +1357,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND cgu.grade_id IN ( SELECT grade_id FROM class_grade WHERE seven_code = #{sevenCode} )
     </select>
 
+    <select id="getStudeCountByCodeNoTenant" resultType="java.lang.Integer" parameterType="java.lang.String">
+        SELECT SUM(
+                           (SELECT COUNT(DISTINCT cgu.user_id) FROM class_grade_user cgu WHERE cgu.grade_id = cg.grade_id AND cgu.`status` = 1 AND cgu.change_grade = 0) +
+                           (SELECT COUNT(DISTINCT cgut.user_id) FROM class_grade_user_temp cgut WHERE cgut.grade_id = cg.grade_id AND cgut.`status` = 1 )
+                   ) as num FROM class_grade cg
+        WHERE cg.`status` = 1 AND  cg.seven_code = #{sevenCode}
+    </select>
+
 </mapper>