From c15dda7ca82a479caa54cbbe169f1cf80c3be156 Mon Sep 17 00:00:00 2001
From: heheng <heheng@123456>
Date: Thu, 20 Feb 2025 13:22:12 +0800
Subject: [PATCH] 修改
---
exam-system/src/main/java/com/gkhy/exam/pay/entity/NonCoalPayStudent.java | 11 +++++
exam-system/src/main/java/com/gkhy/exam/pay/utils/CaiZhengConstans.java | 9 ++++
exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java | 4 +-
exam-system/src/main/java/com/gkhy/exam/pay/dto/req/NonCoalPayStuImport.java | 6 +-
exam-system/src/main/java/com/gkhy/exam/pay/service/impl/NonCoalPayStudentServiceImpl.java | 24 ++++++-----
exam-system/src/main/resources/mapper/pay/NonCoalPayStudentMapper.xml | 9 +++-
exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/NonCoalStuRep.java | 3 +
exam-system/src/main/resources/mapper/pay/NonCoalPayMapper.xml | 4 +
exam-system/src/main/java/com/gkhy/exam/pay/utils/SexUtils.java | 11 +++++
exam-system/src/main/java/com/gkhy/exam/pay/controller/PaymentApiController.java | 1
10 files changed, 62 insertions(+), 20 deletions(-)
diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/controller/PaymentApiController.java b/exam-system/src/main/java/com/gkhy/exam/pay/controller/PaymentApiController.java
index fa5c8f7..cdc0281 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/controller/PaymentApiController.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/controller/PaymentApiController.java
@@ -55,7 +55,6 @@
@GetMapping({"/confirm"})
@ApiOperation("回调确认")
- @Anonymous
public void notifyConfirm(String orderNo) {
try {
paymentService.notifyConfirm(orderNo);
diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/NonCoalStuRep.java b/exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/NonCoalStuRep.java
index 0d1f7ab..1ac2278 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/NonCoalStuRep.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/dto/rep/NonCoalStuRep.java
@@ -51,4 +51,7 @@
@ApiModelProperty("财政订单状态0未生成1生成中2已生成")
private Long govPayStatus;
+
+ @ApiModelProperty("财政缴款码")
+ private String payCode;
}
diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/NonCoalPayStuImport.java b/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/NonCoalPayStuImport.java
index 0d763f5..c3e6611 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/NonCoalPayStuImport.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/dto/req/NonCoalPayStuImport.java
@@ -27,7 +27,7 @@
/**
* 0男 1女 2未知
*/
- @Excel(name = "性别")
- @ApiModelProperty("性别 0男1女2未知")
- private String sex;
+ @Excel(name = "培训机构(填机构名称 非必填)")
+ @ApiModelProperty("培训机构(填机构名称 非必填)")
+ private String train;
}
diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/entity/NonCoalPayStudent.java b/exam-system/src/main/java/com/gkhy/exam/pay/entity/NonCoalPayStudent.java
index 2f0188b..b69a4b7 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/entity/NonCoalPayStudent.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/entity/NonCoalPayStudent.java
@@ -106,6 +106,9 @@
*/
@ApiModelProperty("财政订单状态0未生成1生成中2已生成")
private Integer govPayStatus;
+
+ @ApiModelProperty("培训机构")
+ private String train;
/**
* 删除标志(0代表存在2代表删除)
*/
@@ -249,4 +252,12 @@
public void setGovPayStatus(Integer govPayStatus) {
this.govPayStatus = govPayStatus;
}
+
+ public String getTrain() {
+ return train;
+ }
+
+ public void setTrain(String train) {
+ this.train = train;
+ }
}
\ No newline at end of file
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..333f15c 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, "未找到相关缴费信息");
@@ -117,7 +116,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)) {
@@ -183,7 +182,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 +190,8 @@
.set(NonCoalPayStudent::getPayTime, respdata.getDate("payTime"))
.eq(NonCoalPayStudent::getOrderNo, nonCoalStuRep.getOrderNo()).eq(NonCoalPayStudent::getDelFlag, 0)
.eq(NonCoalPayStudent::getPayStatus, 0));
+ // 回调确认支付
+ payUtils.affirmPost(nonCoalStuRep.getOrderNo());
} else {
log.error("查询财政订单失败:" + result.getString("respmsg") + ",错误编码:" + result.getString("respcode"));
}
@@ -410,7 +411,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 +424,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() + " 导入成功");
diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/utils/CaiZhengConstans.java b/exam-system/src/main/java/com/gkhy/exam/pay/utils/CaiZhengConstans.java
new file mode 100644
index 0000000..359d6c2
--- /dev/null
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/utils/CaiZhengConstans.java
@@ -0,0 +1,9 @@
+package com.gkhy.exam.pay.utils;
+
+public class CaiZhengConstans {
+ public static final String UN_COAL_ORDER_PERFIX = "NC";
+ public static final String NON_COAL_PAY_STUDENT_LOCK = "NON_COAL_PAY_STUDENT_LOCK_";
+ public static final String UN_COAL_ORDER_KEY_1 = "_PAY_TYPE_";
+
+ public static final String CAI_ZHENG_SUCCESS = "BUS0000";
+}
diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java b/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java
index 337ff13..06802cc 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/utils/PayUtils.java
@@ -311,7 +311,7 @@
String stringContent = execute.getStringContent();
ResultVo resultVo = JSONObject.parseObject(stringContent, ResultVo.class);
log.info("请求结果为:" + resultVo);
- if (resultVo.getRespcode().equals("BUS0000")) {
+ if (resultVo.getRespcode().equals(CaiZhengConstans.CAI_ZHENG_SUCCESS)) {
return "success";
}
return "fail";
@@ -598,7 +598,7 @@
BillClient billClient = ClientFactory.getBillClient();
ResponseDataVo<UploadXmlReponseDataVo> dataRes = billClient.uploadXml(signatureFile);
- if (!dataRes.getRespcode().equals("BUS0000")) {
+ if (!dataRes.getRespcode().equals(CaiZhengConstans.CAI_ZHENG_SUCCESS)) {
log.info("上传验签失败:" + dataRes);
return false;
}
diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/utils/SexUtils.java b/exam-system/src/main/java/com/gkhy/exam/pay/utils/SexUtils.java
new file mode 100644
index 0000000..1049bbf
--- /dev/null
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/utils/SexUtils.java
@@ -0,0 +1,11 @@
+package com.gkhy.exam.pay.utils;
+
+public class SexUtils {
+
+ public static Long sexType(String idCard) {
+ //如果身份证号的倒数第二位是偶数,则性别为女(1L)
+ //如果身份证号的倒数第二位是奇数,则性别为男(0L)
+ idCard = idCard.trim();
+ return (idCard.charAt(idCard.length() - 2) - '0') % 2 == 0 ? 1L : 0L;
+ }
+}
diff --git a/exam-system/src/main/resources/mapper/pay/NonCoalPayMapper.xml b/exam-system/src/main/resources/mapper/pay/NonCoalPayMapper.xml
index 7e7a2d9..d32f665 100644
--- a/exam-system/src/main/resources/mapper/pay/NonCoalPayMapper.xml
+++ b/exam-system/src/main/resources/mapper/pay/NonCoalPayMapper.xml
@@ -239,6 +239,7 @@
<result property="orderId" column="order_id"/>
<result property="orderNo" column="order_no"/>
<result property="govPayStatus" column="gov_pay_status"/>
+ <result property="payCode" column="pay_code"/>
</resultMap>
@@ -267,7 +268,8 @@
t.pay_status,
t.order_id,
t.gov_pay_status,
- t.order_no
+ t.order_no,
+ t.pay_code
from non_coal_pay a
inner join non_coal_pay_student t on t.non_coal_pay_id = a.id and t.del_flag = 0
<if test="isPay != null and isPay == 1 ">and t.pay_status = 0</if>
diff --git a/exam-system/src/main/resources/mapper/pay/NonCoalPayStudentMapper.xml b/exam-system/src/main/resources/mapper/pay/NonCoalPayStudentMapper.xml
index b15f948..f53bf0b 100644
--- a/exam-system/src/main/resources/mapper/pay/NonCoalPayStudentMapper.xml
+++ b/exam-system/src/main/resources/mapper/pay/NonCoalPayStudentMapper.xml
@@ -24,6 +24,7 @@
<result property="fileData" column="file_data"/>
<result property="payTime" column="pay_time"/>
<result property="govPayStatus" column="gov_pay_status"/>
+ <result property="train" column="train"/>
</resultMap>
<sql id="selectNonCoalPayStudentVo">
@@ -45,7 +46,8 @@
order_id,
file_data,
pay_time,
- gov_pay_status
+ gov_pay_status,
+ train
from non_coal_pay_student
</sql>
@@ -83,6 +85,7 @@
<if test="payCode != null">pay_code,</if>
<if test="payType != null">pay_type,</if>
<if test="orderNo != null and orderNo != '' ">order_no,</if>
+ <if test="train != null and train != '' ">train,</if>
<if test="payStatus != null">pay_status,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
@@ -101,6 +104,7 @@
<if test="payCode != null">#{payCode},</if>
<if test="payType != null">#{payType},</if>
<if test="orderNo != null and orderNo != '' ">#{orderNo},</if>
+ <if test="train != null and train != '' ">#{train},</if>
<if test="payStatus != null">#{payStatus},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
@@ -126,7 +130,8 @@
<if test="phone != null and phone != ''">phone = #{phone},</if>
<if test="sex != null">sex = #{sex},</if>
<if test="orderNo != null and orderNo != ''">order_no = #{orderNo},</if>
- <if test="orderId != null and orderId != ''">order_id = #{orderId},</if>
+ <if test="orderNo != null and orderNo != ''">order_no = #{orderNo},</if>
+ <if test="train != null and train != ''">train = #{train},</if>
<if test="govPayStatus!=null">gov_pay_status=#{govPayStatus},</if>
<if test="fileData != null and fileData != ''">file_data = #{fileData},</if>
<if test="payTime != null">pay_time = #{payTime},</if>
--
Gitblit v1.9.2