From 6f8ece5da1b0cb8d247a18dcc444d3ed43aad2c4 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Tue, 25 Feb 2025 16:32:45 +0800
Subject: [PATCH] 煤矿缴费修改
---
exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java | 118 +++++++++++++++++++++++++++++++++--------------------------
1 files changed, 66 insertions(+), 52 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 6703e96..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,19 +55,17 @@
@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, 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));
+ 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, "未找到相关缴费信息");
}
@@ -86,25 +85,29 @@
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();
+ //todo 验证缴款类型
+ if (!nonCoalStuRep.getPayType().toString().equals(payType)) {
+ throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "缴费类型不一致,请核对类型");
}
+ //财政缴款码未生成
+// 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)) {
@@ -115,9 +118,9 @@
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")) {
+ if (resultVo.getRespcode().equals(CaiZhengConstans.CAI_ZHENG_SUCCESS)) {
String orderId = resultVo.getRespdata().getOrderId();
String billNo = resultVo.getRespdata().getBillNo();
if (StringUtils.isNotEmpty(orderId)) {
@@ -125,16 +128,18 @@
if ("1".equals(payType)) {
baseMapper.update(null, Wrappers.<NonCoalPayStudent>lambdaUpdate()
.set(NonCoalPayStudent::getOrderId, orderId)
-// .set(NonCoalPayStudent::getOrderNo, orderNo)
+ .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 {
//团体缴费
baseMapper.update(null, Wrappers.<NonCoalPayStudent>lambdaUpdate()
.set(NonCoalPayStudent::getOrderId, orderId)
-// .set(NonCoalPayStudent::getOrderNo, orderNo)
+ .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));
}
@@ -142,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);
}
@@ -159,7 +164,7 @@
@Override
public NonCoalStuRep queryOrder(Long dataId, String payType) {
- List<NonCoalPayOrder> nonCoalPayOrders = nonCoalPayMapper.selectNonCoalPayOrderByParam(dataId, Long.valueOf(payType));
+ List<NonCoalPayOrder> nonCoalPayOrders = nonCoalPayMapper.selectNonCoalPayOrderByParam(dataId, Long.valueOf(payType), 2L);
if (StringUtils.isEmpty(nonCoalPayOrders)) {
throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "未找到相关缴费信息");
}
@@ -172,22 +177,30 @@
}
NonCoalStuRep nonCoalStuRep = nonCoalStuList.get(0);
- if (nonCoalStuRep.getPayStatus() == 1) {
- throw new BusinessException(this.getClass(), ResultConstants.BUSINESS_ERROR, "已缴费请勿重复缴费");
- }
+// 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());
- String status = result.getString("status");
- if (("1").equals(status)) {
+ log.info("查询财政订单返回结果:" + result);
+ String respcode = result.getString("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()
+ .set(NonCoalPayStudent::getPayStatus, 1)
+ .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"));
+ }
- nonCoalPayStudentMapper.update(null, Wrappers.<NonCoalPayStudent>lambdaUpdate()
- .set(NonCoalPayStudent::getPayStatus, 1)
- .set(NonCoalPayStudent::getPayTime, result.getDate("payTime"))
- .eq(NonCoalPayStudent::getOrderNo, nonCoalStuRep.getOrderNo()).eq(NonCoalPayStudent::getDelFlag, 0)
- .eq(NonCoalPayStudent::getPayStatus, 0));
- } else if (status == null) {
- log.error("查询财政订单失败:" + result.getString("respmsg") + ",错误编码:" + result.getString("respcode"));
}
} catch (Exception e) {
log.error("查询财政订单失败:" + e.getMessage());
@@ -205,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());
@@ -220,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);
@@ -234,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;
@@ -403,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() + " 数据已存在");
@@ -416,9 +429,10 @@
stu1.setName(stu.getName());
stu1.setIdCard(stu.getIdCard());
stu1.setPhone(stu.getPhone());
-
-// stu1.setOrderNo(RandomUtil.generateOrderNumber());
- stu1.setSex(StudentSex.BOY.getStatus().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