yangdamao 5 hours ago
parent
commit
3a8bf24f7a

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/domain/ClassGradeUser.java

@@ -90,5 +90,7 @@ private static final long serialVersionUID=1L;
     private String sevenPushReason;
 
     private String sevenPushDate;
+
+    private Long tenantId;
 }
 

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderInput.java

@@ -59,4 +59,6 @@ private static final long serialVersionUID=1L;
     private String checkReason;
     @TableField(exist = false)
     private List<String> ids;
+
+    private Long tenantId;
 }

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

@@ -158,4 +158,6 @@ public interface IOrderService extends IService<Order> {
 	List<OrderKaoQianListExportVo> exportKaoqianList(OrderQueryBo bo);
 
     Long countByGoodsId(Long userId, Long goodsId);
+
+	Long getOrderGoodsByBo(Long goodsId, Long userId);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -3958,6 +3958,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return baseMapper.countByGoodsId(userId,goodsId);
     }
 
+    @Override
+    public Long getOrderGoodsByBo(Long goodsId, Long userId) {
+        return baseMapper.getOrderGoodsByBo(goodsId,userId);
+    }
+
     /**
      * 根据身份证号码判断性别
      *

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopOldOrderMapper.java

@@ -112,4 +112,8 @@ public interface TopOldOrderMapper extends BaseMapper<TopOldOrder> {
     List<TopOrderStatisticsTwoVo> getTenantCreateList(TopOrderStatisticsViewBo bo);
 
     List<TopOldOrderRepVo> queryOrderRepList(TopOrderRepQueryBo bo);
+
+    TopOldOrderVo getOldOrderBySn(String orderSn);
+
+    TopOldOrderVo getNewOrderBySn(String orderSn);
 }

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

@@ -28,14 +28,17 @@ import com.zhongzheng.modules.course.domain.*;
 import com.zhongzheng.modules.course.service.*;
 import com.zhongzheng.modules.goods.domain.Goods;
 import com.zhongzheng.modules.goods.service.IGoodsService;
+import com.zhongzheng.modules.grade.domain.ClassGradeGoods;
 import com.zhongzheng.modules.grade.domain.ClassGradeUser;
 import com.zhongzheng.modules.grade.domain.UserPeriod;
+import com.zhongzheng.modules.grade.service.IClassGradeGoodsService;
 import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.service.IUserPeriodService;
 import com.zhongzheng.modules.inform.bo.InformSysUserAddBo;
 import com.zhongzheng.modules.inform.service.IInformRemindService;
 import com.zhongzheng.modules.inform.service.IInformSysUserService;
 import com.zhongzheng.modules.inform.vo.InformRemindVo;
+import com.zhongzheng.modules.order.bo.OrderInputDataAddBo;
 import com.zhongzheng.modules.order.bo.OrderInvoiceBo;
 import com.zhongzheng.modules.order.bo.OrderInvoiceHostBo;
 import com.zhongzheng.modules.order.domain.*;
@@ -160,6 +163,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Autowired
     private IOrderService orderService;
 
+    @Autowired
+    private IClassGradeGoodsService classGradeGoodsService;
+
     @Autowired
     private IOrderInvoiceOrderService orderInvoiceOrderService;
 
@@ -329,7 +335,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Override
     public TopOldOrderVo queryById(String orderSn) {
         //查询视图 v_top_order
-        TopOldOrderVo orderVo = baseMapper.queryById(orderSn);
+        TopOldOrderVo orderVo = getOrderVoBySn(orderSn);
         if (ObjectUtils.isNull(orderVo)) {
             throw new CustomException("订单号错误!");
         }
@@ -420,6 +426,15 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return orderVo;
     }
 
+    private TopOldOrderVo getOrderVoBySn(String orderSn){
+        TopOldOrderVo orderVo = baseMapper.getOldOrderBySn(orderSn);
+        if (ObjectUtils.isNull(orderVo)){
+            //新系统
+            orderVo = baseMapper.getNewOrderBySn(orderSn);
+        }
+        return orderVo;
+    }
+
     @Override
     public List<String> queryOrderBusinessName(String orderSn){
         return baseMapper.queryBusinessBySn(orderSn);
@@ -1263,7 +1278,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 }
                 if (query.getOrderFrom() != 4){
                     //查询视图 v_top_order
-                    TopOldOrderVo orderVo = baseMapper.queryById(query.getOrderSn());
+                    TopOldOrderVo orderVo = getOrderVoBySn(query.getOrderSn());
                     if (orderVo.getOrderBase() == 1){
                         TopOldOrder order = getOne(new LambdaQueryWrapper<TopOldOrder>().eq(TopOldOrder::getOrderSn, query.getOrderSn()));
                         BigDecimal bonus = BigDecimal.ZERO;
@@ -1322,67 +1337,67 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         if (ObjectUtils.isNotNull(order.getPretaxBrokerage()) && order.getPretaxBrokerage().compareTo(BigDecimal.ZERO) > 0){
                             bonus = order.getPretaxBrokerage().divide(new BigDecimal(list.size()),BigDecimal.ROUND_CEILING);
                         }
-                        Map<String, String> params = new HashMap<>();
-                        Long nowTime = DateUtils.getNowTime();
-                        String sign = ToolsUtils.EncoderByMd5(query.getOrderSn() + nowTime.toString() + "pubilc2022");
-                        params.put("stamp", nowTime.toString());
-                        params.put("sign", sign);
-                        params.put("orderSn", query.getOrderSn());
-                        params.put("type", order.getOrderType().toString());
-                        String respone = "";
-                        try {
-                            respone = HttpUtils.postFormBody(ORDER_STUDY, params);
-                            if (!respone.contains("\"Status\":true")) {
-                                throw new CustomException("旧系统订单学员学习情况接口请求错误");
-                            }
-                            JSONObject jsonObject = JSONObject.parseObject(respone);
-                            Object data = jsonObject.get("Data");
-                            if (ObjectUtils.isNull(data)) {
-                                //data 为空
-                                for (TopOldOrderGoodsListVo x : list) {
-                                    x.setPretaxBrokerage(bonus);
-                                    x.setStudyStatus("未开始");
-                                    //分成模式
-                                    if (ObjectUtils.isNotNull(x.getDivideType()) && x.getDivideType() == 1){
-                                        x.setDivideRateStr(x.getDivideRate()+"%");
-                                    }else {
-                                        x.setDivideRateStr(ObjectUtil.isNull(x.getDivideRate())?"0%":x.getDivideRate().toString());
-                                    }
-                                }
-                            } else {
-                                List<TopOldOrderStudyVo> studyVos = JSONArray.parseArray(JSONObject.toJSONString(data), TopOldOrderStudyVo.class);
-                                for (TopOldOrderGoodsListVo item : list) {
-                                    item.setPretaxBrokerage(bonus);
-                                    item.setStudyStatus("未开始");
-                                    TopOldOrderStudyVo studyVo = studyVos.stream().filter(x -> x.getUnderOrdeEnrollItemId().equals(item.getSignId())
-                                            && x.getIdNum().equals(item.getUserCard())).findFirst().orElse(null);
-                                    if (ObjectUtils.isNotNull(studyVo) && ObjectUtils.isNotNull(studyVo.getStudyHours())) {
-                                        if (ObjectUtils.isNull(studyVo.getStudyHours()) && studyVo.getStudyHours() == 0) {
-                                            item.setStudyStatus("未开始");
-                                        } else if (studyVo.getStudyHours() < studyVo.getTotalHours()) {
-                                            item.setStudyStatus("学习中");
-                                        } else {
-                                            item.setStudyStatus("已结束");
-                                        }
-                                    }
-                                    //分成模式
-                                    if (ObjectUtils.isNotNull(item.getDivideType()) && item.getDivideType() == 1){
-                                        item.setDivideRateStr(item.getDivideRate()+"%");
-                                    }else {
-                                        item.setDivideRateStr(ObjectUtil.isNull(item.getDivideRate())?"0%":item.getDivideRate().toString());
-                                    }
-                                }
-                            }
-                        } catch (IOException e) {
-                            log.error("旧系统订单学员学习情况接口请求错误" + respone);
-                            throw new CustomException("旧系统订单学员学习情况接口请求错误");
-                        }
+//                        Map<String, String> params = new HashMap<>();
+//                        Long nowTime = DateUtils.getNowTime();
+//                        String sign = ToolsUtils.EncoderByMd5(query.getOrderSn() + nowTime.toString() + "pubilc2022");
+//                        params.put("stamp", nowTime.toString());
+//                        params.put("sign", sign);
+//                        params.put("orderSn", query.getOrderSn());
+//                        params.put("type", order.getOrderType().toString());
+//                        String respone = "";
+//                        try {
+//                            respone = HttpUtils.postFormBody(ORDER_STUDY, params);
+//                            if (!respone.contains("\"Status\":true")) {
+//                                throw new CustomException("旧系统订单学员学习情况接口请求错误");
+//                            }
+//                            JSONObject jsonObject = JSONObject.parseObject(respone);
+//                            Object data = jsonObject.get("Data");
+//                            if (ObjectUtils.isNull(data)) {
+//                                //data 为空
+//                                for (TopOldOrderGoodsListVo x : list) {
+//                                    x.setPretaxBrokerage(bonus);
+//                                    x.setStudyStatus("未开始");
+//                                    //分成模式
+//                                    if (ObjectUtils.isNotNull(x.getDivideType()) && x.getDivideType() == 1){
+//                                        x.setDivideRateStr(x.getDivideRate()+"%");
+//                                    }else {
+//                                        x.setDivideRateStr(ObjectUtil.isNull(x.getDivideRate())?"0%":x.getDivideRate().toString());
+//                                    }
+//                                }
+//                            } else {
+//                                List<TopOldOrderStudyVo> studyVos = JSONArray.parseArray(JSONObject.toJSONString(data), TopOldOrderStudyVo.class);
+//                                for (TopOldOrderGoodsListVo item : list) {
+//                                    item.setPretaxBrokerage(bonus);
+//                                    item.setStudyStatus("未开始");
+//                                    TopOldOrderStudyVo studyVo = studyVos.stream().filter(x -> x.getUnderOrdeEnrollItemId().equals(item.getSignId())
+//                                            && x.getIdNum().equals(item.getUserCard())).findFirst().orElse(null);
+//                                    if (ObjectUtils.isNotNull(studyVo) && ObjectUtils.isNotNull(studyVo.getStudyHours())) {
+//                                        if (ObjectUtils.isNull(studyVo.getStudyHours()) && studyVo.getStudyHours() == 0) {
+//                                            item.setStudyStatus("未开始");
+//                                        } else if (studyVo.getStudyHours() < studyVo.getTotalHours()) {
+//                                            item.setStudyStatus("学习中");
+//                                        } else {
+//                                            item.setStudyStatus("已结束");
+//                                        }
+//                                    }
+//                                    //分成模式
+//                                    if (ObjectUtils.isNotNull(item.getDivideType()) && item.getDivideType() == 1){
+//                                        item.setDivideRateStr(item.getDivideRate()+"%");
+//                                    }else {
+//                                        item.setDivideRateStr(ObjectUtil.isNull(item.getDivideRate())?"0%":item.getDivideRate().toString());
+//                                    }
+//                                }
+//                            }
+//                        } catch (IOException e) {
+//                            log.error("旧系统订单学员学习情况接口请求错误" + respone);
+//                            throw new CustomException("旧系统订单学员学习情况接口请求错误");
+//                        }
                     }
                 }
             }
         }
         //奖金
-        TopOldOrder oldOrder = baseMapper.getOrderBySn(query.getOrderSn());
+        TopOldOrderVo oldOrder = getOrderVoBySn(query.getOrderSn());
         BigDecimal money = BigDecimal.ZERO;
         if (ObjectUtils.isNotNull(oldOrder.getPretaxBrokerage()) && CollectionUtils.isNotEmpty(list)){
             money = oldOrder.getPretaxBrokerage().divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_CEILING);
@@ -1444,42 +1459,42 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         oldOrder.setCheckTime(checkTime);
         oldOrder.setUpdateTime(checkTime);
         Boolean brokerageFlag = false;
-        switch (bo.getCheckStatus()) {
-            case 1://通过审核 如果佣金有修改重新计算成本
-                if (StringUtils.isNotBlank(oldOrder.getCostJson())
-                        && ObjectUtils.isNotNull(oldOrder.getPretaxBrokerageRecord())
-                        && ObjectUtils.isNotNull(oldOrder.getPretaxRecord())) {
-                    recalculateCost(oldOrder.getCostJson(), oldOrder);
-                    brokerageFlag = true;
-                }
-                oldOrder.setCheckStatus(bo.getCheckStatus());
-                checkLog.setCheckStatus(1);
-                break;
-            case 2://拒绝 恢复原本的佣金
-                if (StringUtils.isNotBlank(oldOrder.getCostJson())
-                        && ObjectUtils.isNotNull(oldOrder.getPretaxBrokerageRecord())
-                        && ObjectUtils.isNotNull(oldOrder.getPretaxRecord())) {
-                    oldOrder.setPretaxBrokerage(oldOrder.getPretaxBrokerageRecord());
-                    oldOrder.setPretax(oldOrder.getPretaxRecord());
-                    //计算佣金
-                    BigDecimal multiply = oldOrder.getPretaxBrokerage().multiply(oldOrder.getPretax());
-                    //总佣金
-                    BigDecimal brokerage = oldOrder.getPretaxBrokerage().subtract(multiply);
-                    oldOrder.setBrokerage(brokerage);
-                    oldOrder.setPretaxRecord(null);
-                    oldOrder.setPretaxBrokerageRecord(null);
-                    brokerageFlag = true;
-                    //修改佣金审核不影响订单审核状态
-                    oldOrder.setCheckStatus(1);
-                } else {
-                    oldOrder.setCheckStatus(bo.getCheckStatus());
-                }
-                checkLog.setCheckStatus(-1);
-                checkLog.setCheckReason(bo.getCheckReason());
-                break;
-            default:
-                break;
-        }
+//        switch (bo.getCheckStatus()) {
+//            case 1://通过审核 如果佣金有修改重新计算成本
+//                if (StringUtils.isNotBlank(oldOrder.getCostJson())
+//                        && ObjectUtils.isNotNull(oldOrder.getPretaxBrokerageRecord())
+//                        && ObjectUtils.isNotNull(oldOrder.getPretaxRecord())) {
+//                    recalculateCost(oldOrder.getCostJson(), oldOrder);
+//                    brokerageFlag = true;
+//                }
+//                oldOrder.setCheckStatus(bo.getCheckStatus());
+//                checkLog.setCheckStatus(1);
+//                break;
+//            case 2://拒绝 恢复原本的佣金
+//                if (StringUtils.isNotBlank(oldOrder.getCostJson())
+//                        && ObjectUtils.isNotNull(oldOrder.getPretaxBrokerageRecord())
+//                        && ObjectUtils.isNotNull(oldOrder.getPretaxRecord())) {
+//                    oldOrder.setPretaxBrokerage(oldOrder.getPretaxBrokerageRecord());
+//                    oldOrder.setPretax(oldOrder.getPretaxRecord());
+//                    //计算佣金
+//                    BigDecimal multiply = oldOrder.getPretaxBrokerage().multiply(oldOrder.getPretax());
+//                    //总佣金
+//                    BigDecimal brokerage = oldOrder.getPretaxBrokerage().subtract(multiply);
+//                    oldOrder.setBrokerage(brokerage);
+//                    oldOrder.setPretaxRecord(null);
+//                    oldOrder.setPretaxBrokerageRecord(null);
+//                    brokerageFlag = true;
+//                    //修改佣金审核不影响订单审核状态
+//                    oldOrder.setCheckStatus(1);
+//                } else {
+//                    oldOrder.setCheckStatus(bo.getCheckStatus());
+//                }
+//                checkLog.setCheckStatus(-1);
+//                checkLog.setCheckReason(bo.getCheckReason());
+//                break;
+//            default:
+//                break;
+//        }
         LambdaQueryWrapper<TopOldOrderGoods> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn());
         wrapper.eq(TopOldOrderGoods::getStatus, 1);
@@ -1492,10 +1507,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
 
         updateById(oldOrder);
         topOldOrderCheckLogService.updateById(checkLog);
-        if (bo.getCheckStatus() == 1) {
-            //处理供应商时间结算单
-            instTimeSettleOrder(oldOrder, checkTime);
-        }
+//        if (bo.getCheckStatus() == 1) {
+//            //处理供应商时间结算单
+//            instTimeSettleOrder(oldOrder, checkTime);
+//        }
         if (oldOrder.getOrderFrom() == 4){
             //新系统七大员开通题库订单
             switch (bo.getCheckStatus()){
@@ -1534,13 +1549,13 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 String costJson = order.getCostJson();
                 if (StringUtils.isNotBlank(costJson)) {
                     //分成金额
-                    TopCostTpVo topCostTpVo = JSONObject.parseObject(costJson, TopCostTpVo.class);
-                    List<TopCostTpItemVo> itemList = topCostTpVo.getItemList();
-                    if (CollectionUtils.isNotEmpty(itemList)) {
-                        //分成模板
-                        List<TopCostTpItemVo> divideList = itemList.stream().filter(x -> x.getItemCategory() == 1).collect(Collectors.toList());
-                        calculateDivide(divideList, order, divideModel);
-                    }
+//                    TopCostTpVo topCostTpVo = JSONObject.parseObject(costJson, TopCostTpVo.class);
+//                    List<TopCostTpItemVo> itemList = topCostTpVo.getItemList();
+//                    if (CollectionUtils.isNotEmpty(itemList)) {
+//                        //分成模板
+//                        List<TopCostTpItemVo> divideList = itemList.stream().filter(x -> x.getItemCategory() == 1).collect(Collectors.toList());
+//                        calculateDivide(divideList, order, divideModel);
+//                    }
                 } else {
                     order.setFinishStatus(1);//已完单
                     order.setDivideModel(divideModel);
@@ -1549,31 +1564,181 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     updateById(order);
                 }
                 //佣金
-                createBrokerageCheck(order);
+//                createBrokerageCheck(order);
             }
         }
 
         // 订单审核通知业务系统
         if (brokerageFlag) {
             //佣金审核
-            Map<String, String> params = new HashMap<>();
-            Long nowTime = DateUtils.getNowTime();
-            String sign = ToolsUtils.EncoderByMd5(bo.getOrderSn() + nowTime.toString() + "pubilc2022");
-            params.put("stamp", nowTime.toString());
-            params.put("sign", sign);
-            params.put("orderSn", bo.getOrderSn());
-            params.put("auditstatus", bo.getCheckStatus().toString());
-            String respone = "";
-            try {
-                respone = HttpUtils.postFormBody(CHECK_ORDER_BROKERAGE, params);
-                if (!respone.contains("\"Status\":true")) {
-                    throw new CustomException("旧系统订单佣金审核接口请求错误");
+//            Map<String, String> params = new HashMap<>();
+//            Long nowTime = DateUtils.getNowTime();
+//            String sign = ToolsUtils.EncoderByMd5(bo.getOrderSn() + nowTime.toString() + "pubilc2022");
+//            params.put("stamp", nowTime.toString());
+//            params.put("sign", sign);
+//            params.put("orderSn", bo.getOrderSn());
+//            params.put("auditstatus", bo.getCheckStatus().toString());
+//            String respone = "";
+//            try {
+//                respone = HttpUtils.postFormBody(CHECK_ORDER_BROKERAGE, params);
+//                if (!respone.contains("\"Status\":true")) {
+//                    throw new CustomException("旧系统订单佣金审核接口请求错误");
+//                }
+//            } catch (IOException e) {
+//                log.error("旧系统订单审核接口请求错误" + respone);
+//                throw new CustomException("旧系统订单佣金审核接口请求错误");
+//            }
+        } else {
+
+            if (bo.getCheckStatus() == 1 && oldOrder.getOrderBase() == 1) {
+                //开单
+                List<TopOldOrderGoods> oldOrderGoods = topOrderGoodsService
+                        .list(new LambdaQueryWrapper<TopOldOrderGoods>()
+                        .eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn())
+                        .eq(TopOldOrderGoods::getStatus, 1));
+                if (CollectionUtils.isNotEmpty(oldOrderGoods)) {
+                    //新建录单
+                    OrderInput orderInput = new OrderInput();
+                    String dateInputOrderSn = DateUtils.getDateInputOrderSn();
+                    orderInput.setInputOrderSn(dateInputOrderSn);
+                    orderInput.setCreateUsername(oldOrder.getCreateUsername());
+                    orderInput.setCheckStauts(1);
+                    orderInput.setCreateSysUserId(-1L);
+                    orderInput.setUpdateTime(DateUtils.getNowTime());
+                    orderInput.setCreateTime(DateUtils.getNowTime());
+                    orderInput.setEducationTypeId(oldOrderGoods.get(0).getEducationTypeId());
+                    orderInput.setBusinessId(oldOrderGoods.get(0).getBusinessId());
+                    orderInput.setProjectId(oldOrderGoods.get(0).getProjectId());
+                    orderInput.setInputFrom(1);
+                    orderInput.setCheckStauts(2);
+                    SysOldOrg oldOrg = sysOldOrgService
+                            .getOne(new LambdaQueryWrapper<SysOldOrg>().eq(SysOldOrg::getOrgId, oldOrder.getTenantId()).eq(SysOldOrg::getStatus, 1).last("limit 1"));
+                    Long tenantId = ObjectUtils.isNotNull(oldOrg)?oldOrg.getTenantId():867735392558919680L;
+                    orderInput.setTenantId(tenantId);
+                    orderInputService.save(orderInput);
+
+                    //创建订单
+                    Map<String, List<TopOldOrderGoods>> map = oldOrderGoods.stream().collect(Collectors.groupingBy(TopOldOrderGoods::getUserCard));
+                    map.forEach((k,v) -> {
+                        String card = EncryptHandler.decrypt(k);
+                        //校验是否重复
+                        Order order = new Order();
+                        //生成订单号
+                        String out_trade_no = DateUtils.getDateOrderSn();
+                        order.setOrderSn(out_trade_no);
+                        order.setOrderType(Order.CONSUME_ORDER);
+
+                        //获取用户
+                        User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getIdCard, card).eq(User::getStatus, 1).eq(User::getTenantId, tenantId));
+                        Long userId = user.getUserId();
+                        order.setUserId(userId);
+                        v.forEach(item -> {
+                            Goods goods = goodsService.getById(item.getGoodsId());
+                            if (StringUtils.isNotBlank(goods.getSevenYear())){
+                                Long count = orderGoodsService.countOrderGoodsByYear(goods.getSevenYear(),goods.getGoodsId(),userId);
+                                if (count > 0){
+                                    throw new CustomException(String.format("%s请勿重复购买【%s】",user.getRealname(),goods.getGoodsName()));
+                                }
+                            }else {
+                                Long count = orderService.getOrderGoodsByBo(goods.getGoodsId(),userId);
+                                if (count > 0){
+                                    throw new CustomException(String.format("%s请勿重复购买【%s】",user.getRealname(),goods.getGoodsName()));
+                                }
+                            }
+
+                            OrderGoods orderGoods1 = new OrderGoods();
+                            orderGoods1.setOrderSn(out_trade_no);
+                            orderGoods1.setGoodsId(goods.getGoodsId());
+                            orderGoods1.setBeforeSign(goods.getBeforeSign());
+
+                            //创建班级
+                            ClassGradeGoods classGradeGoods = classGradeGoodsService.getOne(new LambdaUpdateWrapper<ClassGradeGoods>()
+                                    .eq(ClassGradeGoods::getGoodsId, goods.getGoodsId())
+                                    .eq(ClassGradeGoods::getTenantId, tenantId)
+                                    .orderByDesc(ClassGradeGoods::getCreateTime).last("limit 1"));
+                            if (ObjectUtils.isNull(classGradeGoods)){
+                                throw new CustomException("班级有误,请检查!");
+                            }
+
+                            OrderInputDataAddBo orderInputDataAddBo = new OrderInputDataAddBo();
+                            orderInputDataAddBo.setType("");
+                            orderInputDataAddBo.setExamDateJson("");
+                            orderInputDataAddBo.setGradeId(classGradeGoods.getGradeId());
+                            orderInputDataAddBo.setGradeJson("");
+                            orderInputDataAddBo.setApplyAreasJson("");
+                            orderGoods1.setGoodsInputData(JSON.toJSONString(orderInputDataAddBo));
+
+                            if (StringUtils.isNotBlank(goods.getSevenYear())){
+                                orderGoods1.setSevenYear(goods.getSevenYear());
+                            }
+
+                            //成交价
+                            orderGoods1.setGoodsPrice(item.getGoodsPrice());
+                            orderGoods1.setGoodsRealPrice(item.getGoodsRealPrice());
+                            orderGoods1.setGoodsYear(goods.getYear().toString());
+                            orderGoods1.setCreateTime(DateUtils.getNowTime());
+                            orderGoods1.setUpdateTime(DateUtils.getNowTime());
+                            orderGoods1.setStatus(1);
+                            orderGoods1.setTenantId(tenantId);
+                            orderGoods1.setRefundStatus(0);
+                            orderGoods1.setPayStatus(4);
+                            orderGoods1.setGradeId(classGradeGoods.getGradeId());
+                            orderGoods1.setStudyCount(1L);
+                            orderGoods1.setServiceStartTime(DateUtils.getNowTime());
+                            orderGoods1.setServiceEndTime(DateUtils.getNowTime() + 31536000L);
+                            orderGoods1.setSevenClassCopy(1L);
+                            orderGoodsService.save(orderGoods1);
+
+                            //创建班级
+                            ClassGradeUser gradeUser = new ClassGradeUser();
+                            gradeUser.setUserId(userId);
+                            gradeUser.setGradeId(classGradeGoods.getGradeId());
+                            gradeUser.setStatus(1);
+                            gradeUser.setCreateTime(DateUtils.getNowTime());
+                            gradeUser.setUpdateTime(DateUtils.getNowTime());
+                            gradeUser.setTenantId(tenantId);
+                            gradeUser.setCreateBy("sys");
+                            gradeUser.setPeriodStatus(-1);
+                            gradeUser.setFinishStatus(0);
+                            gradeUser.setFromType(1);
+                            gradeUser.setOrderGoodsId(orderGoods1.getOrderGoodsId());
+                            gradeUser.setLearnStatus(0);
+                            gradeUser.setChangeGrade(0);
+
+                            classGradeUserService.save(gradeUser);
+
+                        });
+                        //价格
+                        BigDecimal reduce = v.stream().map(TopOldOrderGoods::getGoodsPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+                        order.setPayPrice(reduce);
+                        order.setOrderStatus(1);
+                        order.setCreateTime(DateUtils.getNowTime());
+                        order.setUpdateTime(DateUtils.getNowTime());
+                        order.setPayTime(DateUtils.getNowTime());
+                        order.setOrderType(0);
+                        order.setFinishTime(DateUtils.getNowTime());
+                        order.setOrderType(2);
+                        order.setPayPrice(reduce);
+                        order.setTenantId(tenantId);
+                        order.setOrderFrom(6);
+                        order.setStatus(1);
+                        order.setCreateSysUserId(1L);
+                        order.setInputOrderSn(dateInputOrderSn);
+                        order.setPayStatus(3);
+                        order.setOrderOrg(oldOrg.getOrgId());
+                        order.setCheckStatus(1);
+                        order.setDivideStatus(1);
+                        order.setOldCompanyId(oldOrder.getOldCompanyId().toString());
+                        order.setOldInstitutionId(oldOrder.getOldInstitutionId().toString());
+                        order.setOldCustomerId(oldOrder.getOldCustomerId().toString());
+                        order.setOperationType(1);
+                        order.setOrgSign(1);
+
+                        orderService.save(order);
+                    });
                 }
-            } catch (IOException e) {
-                log.error("旧系统订单审核接口请求错误" + respone);
-                throw new CustomException("旧系统订单佣金审核接口请求错误");
+
             }
-        } else {
             //订单审核
             Map<String, String> params = new HashMap<>();
             Long nowTime = DateUtils.getNowTime();
@@ -1600,36 +1765,36 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 throw new CustomException("旧系统订单审核接口请求错误");
             }
 
-            if (bo.getCheckStatus() == 1 && oldOrder.getOrderBase() == 1) {
-                //审核通过
-                //底单在新系统 查询新系统订单号
-                Map<String, String> params1 = new HashMap<>();
-                Long nowTime1 = DateUtils.getNowTime();
-                String sign1 = ToolsUtils.EncoderByMd5(nowTime1.toString() + "pubilc2022");
-                params1.put("stamp", nowTime1.toString());
-                params1.put("sign", sign1);
-                params1.put("orderSn", oldOrder.getOrderSn());
-                String respone1 = "";
-                try {
-                    respone1 = HttpUtils.postFormBody(INPUT_ORDER, params1);
-                    if (!respone1.contains("\"Status\":true")) {
-                        throw new CustomException("旧系统查询新系统订单号接口请求错误");
-                    }
-                    JSONObject jsonObject = JSONObject.parseObject(respone1);
-                    Object data = jsonObject.get("Data");
-                    if (ObjectUtils.isNull(data)) {
-                        //data 为空
-                        throw new CustomException("旧系统查询新系统订单号接口请求错误");
-                    } else {
-                        TopOldOrder topOldOrder = getById(oldOrder.getOrderId());
-                        topOldOrder.setInputOrderSn(data.toString());
-                        updateById(topOldOrder);
-                    }
-                } catch (IOException e) {
-                    log.error("旧系统查询新系统订单号接口请求错误" + respone1);
-                    throw new CustomException("旧系统查询新系统订单号接口请求错误");
-                }
-            }
+//            if (bo.getCheckStatus() == 1 && oldOrder.getOrderBase() == 1) {
+//                //审核通过
+//                //底单在新系统 查询新系统订单号
+//                Map<String, String> params1 = new HashMap<>();
+//                Long nowTime1 = DateUtils.getNowTime();
+//                String sign1 = ToolsUtils.EncoderByMd5(nowTime1.toString() + "pubilc2022");
+//                params1.put("stamp", nowTime1.toString());
+//                params1.put("sign", sign1);
+//                params1.put("orderSn", oldOrder.getOrderSn());
+//                String respone1 = "";
+//                try {
+//                    respone1 = HttpUtils.postFormBody(INPUT_ORDER, params1);
+//                    if (!respone1.contains("\"Status\":true")) {
+//                        throw new CustomException("旧系统查询新系统订单号接口请求错误");
+//                    }
+//                    JSONObject jsonObject = JSONObject.parseObject(respone1);
+//                    Object data = jsonObject.get("Data");
+//                    if (ObjectUtils.isNull(data)) {
+//                        //data 为空
+//                        throw new CustomException("旧系统查询新系统订单号接口请求错误");
+//                    } else {
+//                        TopOldOrder topOldOrder = getById(oldOrder.getOrderId());
+//                        topOldOrder.setInputOrderSn(data.toString());
+//                        updateById(topOldOrder);
+//                    }
+//                } catch (IOException e) {
+//                    log.error("旧系统查询新系统订单号接口请求错误" + respone1);
+//                    throw new CustomException("旧系统查询新系统订单号接口请求错误");
+//                }
+//            }
         }
 
         return true;
@@ -2292,7 +2457,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Override
     public TopOldOrderUpVo getOrderGoodsApplyList(String orderSn) {
         //查询视图 v_top_order
-        TopOldOrderVo orderVo = baseMapper.queryById(orderSn);
+        TopOldOrderVo orderVo = getOrderVoBySn(orderSn);
         if (ObjectUtils.isNull(orderVo)) {
             throw new CustomException("订单号错误!");
         }
@@ -2445,7 +2610,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Override
     public List<TopOldOrderInvoiceVo> getOrderInvoiceList(String orderSn) {
         //查询视图 v_top_order
-        TopOldOrderVo orderVo = baseMapper.queryById(orderSn);
+        TopOldOrderVo orderVo = getOrderVoBySn(orderSn);
         if (ObjectUtils.isNull(orderVo)) {
             throw new CustomException("订单号错误!");
         }

+ 221 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml

@@ -2827,4 +2827,225 @@
         </if>
         )) as number
     </select>
+
+
+    <select id="getOldOrderBySn" parameterType="java.lang.String"
+            resultType="com.zhongzheng.modules.top.goods.vo.TopOldOrderVo">
+        SELECT
+            `ot`.`order_id` AS `order_id`,
+            `ot`.`order_sn` AS `order_sn`,
+            `ot`.`user_id` AS `user_id`,
+            `ot`.`order_price` AS `order_price`,
+            `ot`.`order_general` AS `order_general`,
+            `ot`.`order_status` AS `order_status`,
+            `ot`.`create_time` AS `create_time`,
+            `ot`.`update_time` AS `update_time`,
+            `ot`.`pay_time` AS `pay_time`,
+            `ot`.`pay_type` AS `pay_type`,
+            `ot`.`transid` AS `transid`,
+            `ot`.`cancel_time` AS `cancel_time`,
+            `ot`.`finish_time` AS `finish_time`,
+            `ot`.`order_type` AS `order_type`,
+            `ot`.`pay_price` AS `pay_price`,
+            `ot`.`remark` AS `remark`,
+            `ot`.`finance_remark` AS `finance_remark`,
+            `ot`.`order_received` AS `order_received`,
+            `ot`.`order_uncollected` AS `order_uncollected`,
+            `ot`.`order_refunded` AS `order_refunded`,
+            `ot`.`order_refund` AS `order_refund`,
+            `ot`.`order_cost` AS `order_cost`,
+            `ot`.`order_profit` AS `order_profit`,
+            `ot`.`invoice_status` AS `invoice_status`,
+            `ot`.`credit_status` AS `credit_status`,
+            `ot`.`refund_status` AS `refund_status`,
+            `ot`.`check_status` AS `check_status`,
+            `ot`.`check_time` AS `check_time`,
+            `ot`.`finish_status` AS `finish_status`,
+            `ot`.`accomplish_time` AS `accomplish_time`,
+            `ot`.`pay_status` AS `pay_status`,
+            `ot`.`create_no` AS `create_no`,
+            `ot`.`input_order_sn` AS `input_order_sn`,
+            `ot`.`create_sys_user_id` AS `create_sys_user_id`,
+            `ot`.`status` AS `status`,
+            `ot`.`create_username` AS `create_username`,
+            `ot`.`order_from` AS `order_from`,
+            `ot`.`order_base` AS `order_base`,
+            `ot`.`tenant_id` AS `tenant_id`,
+            `ot`.`cost_json` AS `cost_json`,
+            `ot`.`order_org` AS `order_org`,(
+                SELECT
+                    `t`.`tenant_name`
+                FROM
+                    `sys_tenant` `t`
+                WHERE
+                    ( `t`.`tenant_id` = `ot`.`tenant_id` )) AS `tenant_name`,(
+                SELECT
+                    `t`.`commercial_tenant`
+                FROM
+                    `sys_tenant` `t`
+                WHERE
+                    ( `t`.`tenant_id` = `ot`.`tenant_id` )) AS `commercial_tenant`,
+            `ot`.`course_org` AS `course_org`,
+            `ot`.`predict_receive_time` AS `predict_receive_time`,
+            `ot`.`predict_pay_time` AS `predict_pay_time`,
+            `ot`.`create_time` AS `buy_time`,
+            `ot`.`divide_model` AS `divide_model`,
+            `ot`.`divide_company_money` AS `divide_company_money`,
+            `ot`.`divide_seller_money` AS `divide_seller_money`,
+            `ot`.`divide_status` AS `divide_status`,
+            `ot`.`pretax_brokerage` AS `pretax_brokerage`,
+            `ot`.`pretax` AS `pretax`,
+            `ot`.`brokerage` AS `brokerage`,
+            `ot`.`brokerage_type` AS `brokerage_type`,
+            `ot`.`brokerage_bank_account` AS `brokerage_bank_account`,
+            `ot`.`brokerage_bank_name` AS `brokerage_bank_name`,
+            `ot`.`brokerage_bank` AS `brokerage_bank`,
+            `ot`.`purchase_org` AS `purchase_org`,
+            `ot`.`finish_sign` AS `finish_sign`,
+            `ot`.`inst_cost` AS `inst_cost`,
+            `ot`.`operation_type` AS `operation_type`,
+            `ot`.`repair_money_total` AS `repair_money_total`,
+            `ot`.`old_company_id` AS `old_company_id`,
+            `ot`.`old_customer_id` AS `old_customer_id`,
+            `ot`.`old_institution_id` AS `old_institution_id`,(
+                SELECT
+                    group_concat( DISTINCT `top_old_order_goods`.`business_full_name` SEPARATOR ', ' )
+                FROM
+                    `top_old_order_goods`
+                WHERE
+                    ( `top_old_order_goods`.`order_sn` = `ot`.`order_sn` )) AS `business_full_name`
+        FROM
+            `top_old_order` `ot`
+        WHERE
+            `ot`.`status` = 1 AND ot.order_sn = #{orderSn}
+    </select>
+
+    <select id="getNewOrderBySn" parameterType="java.lang.String"
+            resultType="com.zhongzheng.modules.top.goods.vo.TopOldOrderVo">
+        SELECT
+        `o`.`order_id` AS `order_id`,
+        `o`.`order_sn` AS `order_sn`,
+        `o`.`user_id` AS `user_id`,
+        `o`.`order_price` AS `order_price`,
+        `o`.`order_general` AS `order_general`,
+        `o`.`order_status` AS `order_status`,
+        `o`.`create_time` AS `create_time`,
+        `o`.`update_time` AS `update_time`,
+        `o`.`pay_time` AS `pay_time`,
+        `o`.`pay_type` AS `pay_type`,
+        `o`.`transid` AS `transid`,
+        `o`.`cancel_time` AS `cancel_time`,
+        `o`.`finish_time` AS `finish_time`,(
+        CASE
+
+        WHEN (
+        `o`.`order_type` IN ( 2, 3, 4 )) THEN
+        1 ELSE 2
+        END
+        ) AS `order_type`,
+        `o`.`pay_price` AS `pay_price`,
+        '' AS `remark`,
+        `o`.`remark` AS `finance_remark`,
+        `o`.`order_received` AS `order_received`,
+        `o`.`order_uncollected` AS `order_uncollected`,
+        `o`.`order_refunded` AS `order_refunded`,
+        `o`.`order_refund` AS `order_refund`,
+        `o`.`order_cost` AS `order_cost`,
+        `o`.`order_profit` AS `order_profit`,
+        `o`.`invoice_status` AS `invoice_status`,
+        `o`.`credit_status` AS `credit_status`,
+        `o`.`order_refund_status` AS `refund_status`,
+        `o`.`check_status` AS `check_status`,
+        `o`.`pay_time` AS `check_time`,
+        `o`.`finish_status` AS `finish_status`,
+        `o`.`accomplish_time` AS `accomplish_time`,
+        `o`.`pay_status` AS `pay_status`,
+        '' AS `create_no`,
+        `o`.`input_order_sn` AS `input_order_sn`,
+        `o`.`create_sys_user_id` AS `create_sys_user_id`,
+        `o`.`status` AS `status`,
+        `o`.`create_username` AS `create_username`,
+        1 AS `order_from`,
+        1 AS `order_base`,
+        `o`.`tenant_id` AS `tenant_id`,
+        `o`.`cost_json` AS `cost_json`,(
+        CASE
+
+        WHEN ( `o`.`input_order_sn` IS NOT NULL ) THEN
+        'C端云学堂线下' ELSE 'C端云学堂线上'
+        END
+        ) AS `order_org`,(
+        SELECT
+        `t`.`tenant_name`
+        FROM
+        `sys_tenant` `t`
+        WHERE
+        ( `t`.`tenant_id` = `o`.`tenant_id` )) AS `tenant_name`,(
+        SELECT
+        `t`.`commercial_tenant`
+        FROM
+        `sys_tenant` `t`
+        WHERE
+        ( `t`.`tenant_id` = `o`.`tenant_id` )) AS `commercial_tenant`,
+        '' AS `course_org`,
+        NULL AS `predict_receive_time`,
+        NULL AS `predict_pay_time`,
+        `o`.`create_time` AS `buy_time`,
+        `o`.`divide_model` AS `divide_model`,
+        `o`.`divide_company_money` AS `divide_company_money`,
+        `o`.`divide_seller_money` AS `divide_seller_money`,
+        `o`.`divide_status` AS `divide_status`,
+        0.00 AS `pretax_brokerage`,
+        0 AS `pretax`,
+        0.00 AS `brokerage`,
+        0 AS `brokerage_type`,
+        '' AS `brokerage_bank_account`,
+        '' AS `brokerage_bank_name`,
+        '' AS `brokerage_bank`,(
+        SELECT
+        `t`.`tenant_name`
+        FROM
+        `sys_tenant` `t`
+        WHERE
+        ( `t`.`tenant_id` = `o`.`tenant_id` )) AS `purchase_org`,
+        0 AS `finish_sign`,
+        `o`.`inst_cost` AS `inst_cost`,
+        `o`.`operation_type` AS `operation_type`,
+        0 AS `repair_money_total`,
+        `o`.`tenant_id` AS `old_company_id`,
+        `o`.`tenant_id` AS `old_customer_id`,
+        `o`.`tenant_id` AS `old_institution_id`,(
+        SELECT
+        group_concat( DISTINCT concat( '学校业务', `cet`.`education_name`, `cb`.`business_name`, `cpt`.`project_name` ) SEPARATOR ', ' )
+        FROM
+        ((((
+        `order_goods` `og`
+        LEFT JOIN `goods` `g` ON ((
+        `og`.`goods_id` = `g`.`goods_id`
+        )))
+        LEFT JOIN `course_education_type` `cet` ON ((
+        `g`.`education_type_id` = `cet`.`id`
+        )))
+        LEFT JOIN `course_project_type` `cpt` ON ((
+        `g`.`project_id` = `cpt`.`id`
+        )))
+        LEFT JOIN `course_business` `cb` ON ((
+        `g`.`business_id` = `cb`.`id`
+        )))
+        WHERE
+        ((
+        `og`.`order_sn` = `o`.`order_sn`
+        )
+        AND ( `og`.`status` = 1 ))) AS `business_full_name`
+        FROM
+        `order` `o`
+        WHERE
+        ((
+        `o`.`status` IN ( 0, 1 ))
+        AND (
+        isnull( `o`.`order_type` )
+        OR ( `o`.`order_type` != 4 ))
+        AND ( `o`.`org_sign` != 1 )
+        AND ( `o`.`create_time` > 1685449126 )) AND o.order_sn = #{orderSn}
+    </select>
 </mapper>