教育训练处考试制证系统后端
heheng
2025-02-20 c269821bdd06a8eb452b09c1effe14efd646b9d7
exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java
@@ -1,5 +1,6 @@
package com.gkhy.exam.pay.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -62,10 +63,10 @@
        String lockKey = NON_COAL_PAY_STUDENT_LOCK + dataId + "_PAY_TYPE_" + payType;
        Boolean b = redisLock.tryLock(lockKey, 10, 20, TimeUnit.SECONDS);
        Boolean b = redisLock.tryLock(lockKey, 30, 40, TimeUnit.SECONDS);
        if (b) {
            String orderNo = RandomUtil.generateOrderNumber(dataId, "NC");
            List<NonCoalPayOrder> nonCoalPayOrders = nonCoalPayMapper.selectNonCoalPayOrderByParam(dataId, Long.valueOf(payType));
            List<NonCoalPayOrder> nonCoalPayOrders = nonCoalPayMapper.selectNonCoalPayOrderByParam(dataId, Long.valueOf(payType), 1L);
            if (StringUtils.isEmpty(nonCoalPayOrders)) {
                throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "未找到相关缴费信息");
            }
@@ -77,9 +78,33 @@
                throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "未找到需要缴费的学员");
            }
            NonCoalStuRep nonCoalStuRep = nonCoalStuList.get(0);
            if (nonCoalStuRep.getPayStatus() == 1) {
                throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "已缴费请勿重复缴费");
            }
            //财政缴款码已生成了
            if (nonCoalStuRep.getGovPayStatus() == 2) {
                return nonCoalStuRep.getOrderId();
            }
            //财政缴款码未生成
//            if (nonCoalStuRep.getPayStatus() == 0) {
//                if ("1".equals(payType)) {
//                    baseMapper.update(null, Wrappers.<NonCoalPayStudent>lambdaUpdate()
//                            .set(NonCoalPayStudent::getOrderNo, orderNo)
//                            .set(NonCoalPayStudent::getGovPayStatus, 1)
//                            .eq(NonCoalPayStudent::getId, dataId).eq(NonCoalPayStudent::getDelFlag, 0)
//                            .eq(NonCoalPayStudent::getPayType, payType).eq(NonCoalPayStudent::getPayStatus, 0));
//                } else {
//                    //团体缴费
//                    baseMapper.update(null, Wrappers.<NonCoalPayStudent>lambdaUpdate()
//                            .set(NonCoalPayStudent::getOrderNo, orderNo)
//                            .set(NonCoalPayStudent::getGovPayStatus, 1)
//                            .eq(NonCoalPayStudent::getNonCoalPayId, dataId).eq(NonCoalPayStudent::getDelFlag, 0)
//                            .eq(NonCoalPayStudent::getPayType, payType).eq(NonCoalPayStudent::getPayStatus, 0));
//                }
//            } else {
//                orderNo = nonCoalStuRep.getOrderNo();
//            }
            List<NonCoalCateRep> nonCoalPayCategoryList = nonCoalPayOrder.getNonCoalPayCategoryList();
            if (StringUtils.isEmpty(nonCoalPayCategoryList)) {
@@ -90,7 +115,7 @@
            PayReqData payReqData = dealData(nonCoalPayOrder, orderNo, payType);
            try {
                ResultVo resultVo = payUtils.sendApiPost(payReqData);
                ResultVo resultVo = payUtils.faqiV2(payReqData);
                log.info("调用接口返回结果:" + resultVo);
                if (resultVo.getRespcode().equals("BUS0000")) {
                    String orderId = resultVo.getRespdata().getOrderId();
@@ -102,6 +127,7 @@
                                    .set(NonCoalPayStudent::getOrderId, orderId)
                                    .set(NonCoalPayStudent::getOrderNo, orderNo)
                                    .set(NonCoalPayStudent::getPayCode, billNo)
                                    .set(NonCoalPayStudent::getGovPayStatus, 2)
                                    .eq(NonCoalPayStudent::getId, dataId).eq(NonCoalPayStudent::getDelFlag, 0)
                                    .eq(NonCoalPayStudent::getPayType, payType).eq(NonCoalPayStudent::getPayStatus, 0));
                        } else {
@@ -110,6 +136,7 @@
                                    .set(NonCoalPayStudent::getOrderId, orderId)
                                    .set(NonCoalPayStudent::getOrderNo, orderNo)
                                    .set(NonCoalPayStudent::getPayCode, billNo)
                                    .set(NonCoalPayStudent::getGovPayStatus, 2)
                                    .eq(NonCoalPayStudent::getNonCoalPayId, dataId).eq(NonCoalPayStudent::getDelFlag, 0)
                                    .eq(NonCoalPayStudent::getPayType, payType).eq(NonCoalPayStudent::getPayStatus, 0));
                        }
@@ -130,6 +157,52 @@
        return null;
    }
    @Override
    public NonCoalStuRep queryOrder(Long dataId, String payType) {
        List<NonCoalPayOrder> nonCoalPayOrders = nonCoalPayMapper.selectNonCoalPayOrderByParam(dataId, Long.valueOf(payType), 2L);
        if (StringUtils.isEmpty(nonCoalPayOrders)) {
            throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "未找到相关缴费信息");
        }
        NonCoalPayOrder nonCoalPayOrder = nonCoalPayOrders.get(0);
        List<NonCoalStuRep> nonCoalStuList = nonCoalPayOrder.getNonCoalStuList();
        if (StringUtils.isEmpty(nonCoalStuList)) {
            throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "未找到需要缴费的学员");
        }
        NonCoalStuRep nonCoalStuRep = nonCoalStuList.get(0);
//        if (nonCoalStuRep.getPayStatus() == 1) {
//            throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "已缴费请勿重复缴费");
//        }
        if (nonCoalStuRep.getGovPayStatus() == 2 && nonCoalStuRep.getPayStatus() == 0) {
            try {
                JSONObject result = payUtils.query(nonCoalStuRep.getOrderNo());
                log.info("查询财政订单返回结果:" + result);
                String respcode = result.getString("respcode");
                if ("BUS0000".equals(respcode)) {
                    JSONObject respdata = result.getJSONObject("respdata");
                    if (respdata != null && "1".equals(respdata.getString("status"))) {
                        nonCoalPayStudentMapper.update(null, Wrappers.<NonCoalPayStudent>lambdaUpdate()
                                .set(NonCoalPayStudent::getPayStatus, 1)
                                .set(NonCoalPayStudent::getPayTime, respdata.getDate("payTime"))
                                .eq(NonCoalPayStudent::getOrderNo, nonCoalStuRep.getOrderNo()).eq(NonCoalPayStudent::getDelFlag, 0)
                                .eq(NonCoalPayStudent::getPayStatus, 0));
                    } else {
                        log.error("查询财政订单失败:" + result.getString("respmsg") + ",错误编码:" + result.getString("respcode"));
                    }
                }
            } catch (Exception e) {
                log.error("查询财政订单失败:" + e.getMessage());
            }
        }
        return nonCoalStuRep;
    }
    private PayReqData dealData(NonCoalPayOrder nonCoalPayOrder, String orderNo, String payType) {
@@ -352,7 +425,7 @@
                    stu1.setPhone(stu.getPhone());
//                    stu1.setOrderNo(RandomUtil.generateOrderNumber());
                    stu1.setSex(StudentSex.BOY.getStatus().equals(stu.getSex().trim()) ? 0L : 1L);
                    stu1.setSex(StudentSex.BOY.getDesc().equals(stu.getSex().trim()) ? 0L : 1L);
                    nonCoalPayStudentMapper.insertNonCoalPayStudent(stu1);
                    successNum++;
                    successMsg.append("<br/>" + successNum + "、身份证号 " + stu.getIdCard() + " 导入成功");