yangdamao 1 year ago
parent
commit
b5aa973c29

+ 9 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderRepController.java

@@ -147,4 +147,13 @@ public class TopOldOrderRepController extends BaseController {
         TopQuestionImportVo vo = iTopOldOrderService.importOrderQuestion(questionImportBos);
         return AjaxResult.success(vo);
     }
+
+    /**
+     * 批量新增订单题库开通记录
+     */
+    @ApiOperation("批量新增订单题库开通记录")
+    @PostMapping("/batch/save/question")
+    public AjaxResult<Void> batchSaveOrderQuestion(@RequestBody List<TopOrderRepQuestionBo> bos) {
+        return toAjax(iTopOldOrderService.batchSaveOrderQuestion(bos) ? 1 : 0);
+    }
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderService.java

@@ -215,4 +215,5 @@ public interface ITopOldOrderService extends IService<TopOldOrder> {
 
 	TopQuestionImportVo importOrderQuestion(List<TopOrderQuestionImportBo> questionImportBos);
 
+	boolean batchSaveOrderQuestion(List<TopOrderRepQuestionBo> bos);
 }

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

@@ -4528,15 +4528,16 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     .eq(TopOldOrderReplenish::getStatus, 1)
                     .last("limit 1"));
             if (ObjectUtils.isNotNull(replenish)){
+                BigDecimal received = BigDecimal.ZERO;
                 if (StringUtils.isNotBlank(replenish.getProceedsJson())){
                     String proceedsJson = replenish.getProceedsJson();
                     Map map = JSON.parseObject(proceedsJson, Map.class);
                     vo.setProceedsJsonMap((Map<String,BigDecimal>)map);
+                    //总收款
+                    for (Object value : map.values()) {
+                        received = received.add(new BigDecimal(value.toString()));
+                    }
                 }
-                BigDecimal uncollected = ObjectUtils.isNotNull(replenish.getOrderResidue())?replenish.getOrderResidue():new BigDecimal(0.00);
-                vo.setUncollected(uncollected);
-                vo.setReceived(vo.getPriceTotal().subtract(uncollected));
-                vo.setProceedsRecord(replenish.getProceedsRecord());
                 //已退
                 BigDecimal refunded = new BigDecimal("0.00");
                 TopOldOrder orderBySn = baseMapper.getOrderBySn(vo.getOrderSn());
@@ -4559,7 +4560,12 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     }
                 }
                 vo.setRefunded(refunded);
-                vo.setPractical(vo.getPriceTotal().subtract(refunded));
+                //实际
+                BigDecimal practical = vo.getPriceTotal().subtract(refunded);
+                vo.setPractical(practical);
+                vo.setReceived(received);
+                vo.setUncollected(practical.subtract(received));
+                vo.setProceedsRecord(replenish.getProceedsRecord());
                 //发票
                 List<TopNuoMplatformLog> fromLogs = topNuoMplatformLogService
                         .list(new LambdaQueryWrapper<TopNuoMplatformLog>()
@@ -4583,9 +4589,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 vo.setProceedsChange(replenish.getProceedsChange());
                 vo.setCost(replenish.getCost());
             }else {
-                BigDecimal uncollected = vo.getPriceTotal();
-                vo.setUncollected(uncollected);
-                vo.setReceived(vo.getPriceTotal().subtract(uncollected));
                 //已退
                 BigDecimal refunded = new BigDecimal("0.00");
                 TopOldOrder orderBySn = baseMapper.getOrderBySn(vo.getOrderSn());
@@ -4608,7 +4611,11 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     }
                 }
                 vo.setRefunded(refunded);
-                vo.setPractical(vo.getPriceTotal().subtract(refunded));
+                //实际
+                BigDecimal practical = vo.getPriceTotal().subtract(refunded);
+                vo.setUncollected(practical);
+                vo.setReceived(BigDecimal.ZERO);
+                vo.setPractical(practical);
                 //发票
                 List<TopNuoMplatformLog> fromLogs = topNuoMplatformLogService
                         .list(new LambdaQueryWrapper<TopNuoMplatformLog>()
@@ -4699,7 +4706,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                     //补考次数
                     if (queryBo.getOrderBase() == 1){
                         TopOldOrder order = getOne(new LambdaQueryWrapper<TopOldOrder>().eq(TopOldOrder::getOrderSn, queryBo.getOrderSn()));
-                        User user = userService.getByCardNoTenant(EncryptHandler.decrypt(item.getUserCard()));
+                        User user = userService.getByCardNoTenant(EncryptHandler.decryptTwo(item.getUserCard()));
                         Order orderOne = orderService.getOne(new LambdaQueryWrapper<Order>()
                                 .eq(Order::getInputOrderSn, order.getInputOrderSn())
                                 .eq(Order::getUserId,user.getUserId())
@@ -5060,10 +5067,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Override
     public TopQuestionImportVo importOrderQuestion(List<TopOrderQuestionImportBo> questionImportBos) {
         TopQuestionImportVo vo = new TopQuestionImportVo();
-        vo.setTotal(questionImportBos.size());
-        Integer correct = 0;
-        Integer errorNum = 0;
+        //正确的数据集合
         List<TopOldOrderQuestionVo> questionVos = new ArrayList<>();
+
         Map<String, List<TopOrderQuestionImportBo>> collect =
                 questionImportBos.stream().collect(Collectors.groupingBy(TopOrderQuestionImportBo::getCreateNo));
         collect.forEach((k,v) -> {
@@ -5085,30 +5091,73 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (!businessFullName.contains("考前培训") && !businessFullName.contains("施工现场专业人员")){
                     continue;
                 }
-                //过滤
-                List<TopOrderQuestionImportBo> collect1 = v.stream().filter(x -> x.getUserName().equals(orderGoods.getUserName())
-                        && x.getUserCard().equals(EncryptHandler.decryptTwo(orderGoods.getUserCard())) && x.getMajorName().equals(orderGoods.getMajorName())).collect(Collectors.toList());
-                if (CollectionUtils.isEmpty(collect1)){
-                    continue;
-                }
-                //新增题库开通记录
-                List<TopOldOrderQuestion> collect2 = collect1.stream().map(i -> {
-                    TopOldOrderQuestion question = new TopOldOrderQuestion();
-                    question.setOrderSn(orderGoods.getOrderSn());
-                    question.setOrderGoodsId(orderGoods.getOrderGoodsId());
-                    question.setOpenDate(DateUtils.dateTimeSec("yyyy/MM/dd", i.getOpenDate()));
-                    question.setSign(i.getSign());
-                    question.setRemark(i.getRemark());
-                    question.setStatus(1);
-                    question.setCreateTime(DateUtils.getNowTime());
-                    question.setUpdateTime(DateUtils.getNowTime());
-                    return question;
-                }).collect(Collectors.toList());
+                List<TopOldOrderQuestion> questionList = topOldOrderQuestionService
+                        .list(new LambdaQueryWrapper<TopOldOrderQuestion>()
+                        .eq(TopOldOrderQuestion::getOrderSn, oldOrder.getOrderSn())
+                        .eq(TopOldOrderQuestion::getOrderGoodsId, orderGoods.getOrderGoodsId())
+                        .eq(TopOldOrderQuestion::getStatus, 1));
+                v.forEach(item -> {
+                    if (item.getUserName().equals(orderGoods.getUserName())
+                            && item.getUserCard().equals(EncryptHandler.decryptTwo(orderGoods.getUserCard())) && item.getMajorName().equals(orderGoods.getMajorName())){
+                        //判断是否已开通
+                        if (questionList.stream().anyMatch(x -> x.getOpenDate().equals(DateUtils.dateTimeSec("yyyy/MM/dd",item.getOpenDate())))){
+                            return;
+                        }
+                        //正确的
+                        TopOldOrderQuestionVo questionVo = new TopOldOrderQuestionVo();
+                        questionVo.setOrderSn(orderGoods.getOrderSn());
+                        questionVo.setOrderGoodsId(orderGoods.getOrderGoodsId());
+                        questionVo.setCreateNo(item.getCreateNo());
+                        questionVo.setOpenDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getOpenDate()));
+                        questionVo.setSign(item.getSign());
+                        questionVo.setRemark(item.getRemark());
+                        questionVo.setUserName(item.getUserName());
+                        questionVo.setUserCard(item.getUserCard());
+                        questionVo.setMajorName(item.getMajorName());
+                        questionVo.setEduName("考前培训");
+                        questionVo.setBusinessName("施工现场专业人员");
+                        questionVo.setCheck(1);
+                        questionVos.add(questionVo);
+                    }
+                });
             }
         });
+        List<TopOldOrderQuestionVo> collect1 = questionImportBos.stream().map(item -> {
+            if (CollectionUtils.isNotEmpty(questionVos)) {
+                TopOldOrderQuestionVo questionVo = questionVos.stream().filter(x -> x.getUserName().equals(item.getUserName())
+                        && x.getUserCard().equals(EncryptHandler.decryptTwo(item.getUserCard()))
+                        && x.getMajorName().equals(item.getMajorName())
+                        && x.getCreateNo().equals(item.getCreateNo())).findFirst().orElse(null);
+                if (ObjectUtils.isNotNull(questionVo)) {
+                    return questionVo;
+                }
+            }
+            TopOldOrderQuestionVo questionVo = BeanUtil.toBean(item, TopOldOrderQuestionVo.class);
+            questionVo.setOpenDate(DateUtils.dateTimeSec("yyyy/MM/dd", item.getOpenDate()));
+            questionVo.setCheck(2);
+            return questionVo;
+        }).collect(Collectors.toList());
+        //正确的数量
+        Long count = collect1.stream().filter(x -> ObjectUtils.isNotNull(x.getCheck()) && x.getCheck() == 1).count();
+        vo.setTotal(collect1.size());
+        vo.setErrorNum(collect1.size() - count.intValue());
+        vo.setCorrectNum(count.intValue());
+        vo.setDataList(collect1);
         return vo;
     }
 
+    @Override
+    public boolean batchSaveOrderQuestion(List<TopOrderRepQuestionBo> bos) {
+        List<TopOldOrderQuestion> collect = bos.stream().map(item -> {
+            TopOldOrderQuestion question = BeanUtil.toBean(item, TopOldOrderQuestion.class);
+            question.setStatus(1);
+            question.setCreateTime(DateUtils.getNowTime());
+            question.setUpdateTime(DateUtils.getNowTime());
+            return question;
+        }).collect(Collectors.toList());
+        return topOldOrderQuestionService.saveBatch(collect);
+    }
+
     private String hideIDCard(String idCard) {
         if (idCard == null || idCard.length() != 18) {
             return idCard;

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOldOrderQuestionVo.java

@@ -57,4 +57,6 @@ public class TopOldOrderQuestionVo implements Serializable {
 	@ApiModelProperty("标签:1正确 2错误")
 	private Integer check;
 
+	private String createNo;
+
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java

@@ -3046,7 +3046,7 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
     @Override
     public void updateStudentImageSpin(UpdateStudentImageBo bo) {
         try {
-            ossService.processObject(bo.getImageUrl(), bo.getImageUrl(), String.format("image/rotate,%s", 180));
+            ossService.processObject(bo.getImageUrl(), bo.getImageUrl(), String.format("image/rotate,%s", bo.getDegree()));
         } catch (Exception e) {
             e.printStackTrace();
             throw new CustomException("修改图片错误!");