From f5e3323be3ce83280c48cd1856bea88c6aed8ffa Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期四, 06 三月 2025 13:40:47 +0800
Subject: [PATCH] 统计修改

---
 exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java |   41 ++++++++++++++++++++++++-----------------
 1 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java
index 28931a1..1a58a26 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.gkhy.exam.institutionalaccess.enums.StudentSex;
 import com.gkhy.exam.pay.dto.rep.NonCoalCateRep;
 import com.gkhy.exam.pay.dto.rep.NonCoalPayOrder;
 import com.gkhy.exam.pay.dto.rep.NonCoalStuRep;
@@ -16,8 +15,10 @@
 import com.gkhy.exam.pay.mapper.NonCoalPayMapper;
 import com.gkhy.exam.pay.mapper.NonCoalPayStudentMapper;
 import com.gkhy.exam.pay.service.NonCoalPayStudentService;
+import com.gkhy.exam.pay.utils.CaiZhengConstans;
 import com.gkhy.exam.pay.utils.PayUtils;
 import com.gkhy.exam.pay.utils.ResultVo;
+import com.gkhy.exam.pay.utils.SexUtils;
 import com.ruoyi.common.constant.ResultConstants;
 import com.ruoyi.common.exception.BusinessException;
 import com.ruoyi.common.exception.ServiceException;
@@ -54,18 +55,16 @@
     @Autowired
     private RedisLock redisLock;
 
-    private static final String NON_COAL_PAY_STUDENT_LOCK = "NON_COAL_PAY_STUDENT_LOCK_";
-
 
     @Override
     public String sendOrder(Long dataId, String payType) {
 
-        String lockKey = NON_COAL_PAY_STUDENT_LOCK + dataId + "_PAY_TYPE_" + payType;
+        String lockKey = CaiZhengConstans.NON_COAL_PAY_STUDENT_LOCK + dataId + CaiZhengConstans.UN_COAL_ORDER_KEY_1 + payType;
 
 
         Boolean b = redisLock.tryLock(lockKey, 30, 40, TimeUnit.SECONDS);
         if (b) {
-            String orderNo = RandomUtil.generateOrderNumber(dataId, "NC");
+            String orderNo = RandomUtil.generateOrderNumber(dataId, CaiZhengConstans.UN_COAL_ORDER_PERFIX);
             List<NonCoalPayOrder> nonCoalPayOrders = nonCoalPayMapper.selectNonCoalPayOrderByParam(dataId, Long.valueOf(payType), 1L);
             if (StringUtils.isEmpty(nonCoalPayOrders)) {
                 throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "未找到相关缴费信息");
@@ -85,6 +84,10 @@
             //财政缴款码已生成了
             if (nonCoalStuRep.getGovPayStatus() == 2) {
                 return nonCoalStuRep.getOrderId();
+            }
+            //todo 验证缴款类型
+            if (!nonCoalStuRep.getPayType().toString().equals(payType)) {
+                throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "缴费类型不一致,请核对类型");
             }
             //财政缴款码未生成
 //            if (nonCoalStuRep.getPayStatus() == 0) {
@@ -117,7 +120,7 @@
             try {
                 ResultVo resultVo = payUtils.faqiV2(payReqData);
                 log.info("调用接口返回结果:" + resultVo);
-                if (resultVo.getRespcode().equals("BUS0000")) {
+                if (resultVo.getRespcode().equals(CaiZhengConstans.CAI_ZHENG_SUCCESS)) {
                     String orderId = resultVo.getRespdata().getOrderId();
                     String billNo = resultVo.getRespdata().getBillNo();
                     if (StringUtils.isNotEmpty(orderId)) {
@@ -144,12 +147,12 @@
                     return orderId;
                 } else {
                     log.error("生成订单失败:" + resultVo.getRespmsg() + ",请稍后重试,错误编码:" + resultVo.getRespcode() + "参数如下:" + payReqData);
-                    throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "发起支付失败,请稍后重试");
+                    throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR, "发起支付失败,请稍后重试");
                 }
 
             } catch (Exception e) {
                 log.error("发起支付调用接口失败:" + e);
-                throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, e.getMessage());
+                throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR, e.getMessage());
             } finally {
                 redisLock.unlock(lockKey);
             }
@@ -183,7 +186,7 @@
                 JSONObject result = payUtils.query(nonCoalStuRep.getOrderNo());
                 log.info("查询财政订单返回结果:" + result);
                 String respcode = result.getString("respcode");
-                if ("BUS0000".equals(respcode)) {
+                if (CaiZhengConstans.CAI_ZHENG_SUCCESS.equals(respcode)) {
                     JSONObject respdata = result.getJSONObject("respdata");
                     if (respdata != null && "1".equals(respdata.getString("status"))) {
                         nonCoalPayStudentMapper.update(null, Wrappers.<NonCoalPayStudent>lambdaUpdate()
@@ -191,6 +194,9 @@
                                 .set(NonCoalPayStudent::getPayTime, respdata.getDate("payTime"))
                                 .eq(NonCoalPayStudent::getOrderNo, nonCoalStuRep.getOrderNo()).eq(NonCoalPayStudent::getDelFlag, 0)
                                 .eq(NonCoalPayStudent::getPayStatus, 0));
+                        // 回调确认支付
+                        nonCoalStuRep.setPayStatus(1L);
+                        payUtils.affirmPost(nonCoalStuRep.getOrderNo());
                     } else {
                         log.error("查询财政订单失败:" + result.getString("respmsg") + ",错误编码:" + result.getString("respcode"));
                     }
@@ -212,7 +218,7 @@
         payReqData.setOrderNo(orderNo);
         payReqData.setPayerType(Integer.valueOf(payType));
         payReqData.setMoney(nonCoalPayOrder.getAmount().multiply(BigDecimal.valueOf(nonCoalStuList.size())));
-        payReqData.setAmount(nonCoalStuList.size());
+        payReqData.setAmount(nonCoalPayCategoryList.size());
 
         payReqData.setDesc(nonCoalPayOrder.getBatchName());
 
@@ -227,7 +233,7 @@
             PayReqData.Feedata feedatas = new PayReqData.Feedata();
             feedatas.setAmount(nonCoalStuList.size());
             feedatas.setBusCode(nonCoalCateRep.getBusinessCode());
-            feedatas.setPrice(nonCoalCateRep.getCategoryAmount());
+            feedatas.setPrice(nonCoalCateRep.getCategoryAmount().multiply(BigDecimal.valueOf(nonCoalStuList.size())));
             feedatas1.add(feedatas);
         }
         payReqData.setFeeDatas(feedatas1);
@@ -241,8 +247,8 @@
             payReqData.setPayerName(nonCoalPayOrder.getPayCompanyName());
             payReqData.setCertNo(nonCoalPayOrder.getPayCompanyCard());
             //todo 待确认
-            payReqData.setInvoiceSocialCode(nonCoalPayOrder.getPayCompanyCard());
-            payReqData.setEnterCode(nonCoalPayOrder.getPayCompanyCard());
+//            payReqData.setInvoiceSocialCode(nonCoalPayOrder.getPayCompanyCard());
+//            payReqData.setEnterCode(nonCoalPayOrder.getPayCompanyCard());
         }
         return payReqData;
 
@@ -410,7 +416,7 @@
         StringBuilder failureMsg = new StringBuilder();
         for (NonCoalPayStuImport stu : nonCoalPayStudents) {
             try {
-                if (StringUtils.isEmpty(stu.getIdCard()) || StringUtils.isEmpty(stu.getName()) || StringUtils.isEmpty(stu.getPhone()) || stu.getSex() == null) {
+                if (StringUtils.isEmpty(stu.getIdCard()) || StringUtils.isEmpty(stu.getName()) || StringUtils.isEmpty(stu.getPhone())) {
                     failureMsg.append("<br/>" + failureNum + "、导入数据为空: " + stu.getIdCard() + " 数据错误");
                 } else if (idCardToNameMap.get(stu.getIdCard().trim()) != null) {
                     failureMsg.append("<br/>" + failureNum + "、身份证号: " + stu.getIdCard() + " 数据已存在");
@@ -423,9 +429,10 @@
                     stu1.setName(stu.getName());
                     stu1.setIdCard(stu.getIdCard());
                     stu1.setPhone(stu.getPhone());
-
-//                    stu1.setOrderNo(RandomUtil.generateOrderNumber());
-                    stu1.setSex(StudentSex.BOY.getDesc().equals(stu.getSex().trim()) ? 0L : 1L);
+                    if (StringUtils.isNotEmpty(stu.getTrain())) {
+                        stu1.setTrain(stu.getTrain());
+                    }
+                    stu1.setSex(SexUtils.sexType(stu.getIdCard()));
                     nonCoalPayStudentMapper.insertNonCoalPayStudent(stu1);
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、身份证号 " + stu.getIdCard() + " 导入成功");

--
Gitblit v1.9.2