From 5cc9063aafa13e75d0fd918bd968c59f61525e2d Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Thu, 23 Jan 2025 14:01:59 +0800
Subject: [PATCH] 煤矿缴费
---
exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayServiceImpl.java | 97 +++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 86 insertions(+), 11 deletions(-)
diff --git a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayServiceImpl.java
index 1f1cd8b..4043ca1 100644
--- a/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayServiceImpl.java
+++ b/exam-system/src/main/java/com/gkhy/exam/pay/service/impl/CoalPayServiceImpl.java
@@ -7,35 +7,37 @@
import com.gkhy.exam.pay.dto.req.CoalPayReq;
import com.gkhy.exam.pay.dto.req.CoalPayStudentReq;
import com.gkhy.exam.pay.dto.req.CoalPayTypeReq;
-import com.gkhy.exam.pay.entity.CoalCategory;
-import com.gkhy.exam.pay.entity.CoalPay;
-import com.gkhy.exam.pay.entity.CoalPayCategory;
-import com.gkhy.exam.pay.entity.CoalPayStudent;
+import com.gkhy.exam.pay.entity.*;
import com.gkhy.exam.pay.mapper.CoalCategoryMapper;
import com.gkhy.exam.pay.mapper.CoalPayCategoryMapper;
import com.gkhy.exam.pay.mapper.CoalPayMapper;
import com.gkhy.exam.pay.service.CoalPayService;
import com.gkhy.exam.pay.service.CoalPayStudentService;
+import com.gkhy.exam.pay.utils.PayUtils;
+import com.gkhy.exam.pay.utils.ResultVo;
import com.ruoyi.common.constant.ResultConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.exception.BusinessException;
+import com.ruoyi.common.utils.RandomUtil;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.mapper.SysDeptMapper;
-import javafx.print.Collation;
-import org.aspectj.weaver.loadtime.Aj;
+import org.aspectj.lang.reflect.UnlockSignature;
+import org.redisson.api.RLock;
+import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
+import java.io.IOException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Date;
import java.util.List;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.Lock;
import java.util.stream.Collectors;
@Service
@@ -52,6 +54,11 @@
private CoalCategoryMapper coalCategoryMapper;
@Autowired
private CoalPayStudentService coalPayStudentService;
+
+ @Autowired
+ private RedissonClient redissonClient;
+
+
/**
@@ -168,9 +175,12 @@
//个人查询缴费
@Override
- public List<CoalPayStudentRep> selectCoalPay(CoalPayStudentReq coalPayStudent) {
+ public List<CoalPayStudentRep> selectCoalPay(String idcard,String phone) {
+ CoalPayStudentReq coalPayStudentReq = new CoalPayStudentReq();
+ coalPayStudentReq.setIdCard(idcard);
+ coalPayStudentReq.setPhone(phone);
//查询个人需要缴费
- List<CoalPayStudent> coalPayStudents = coalPayStudentService.selectbyIdcard(coalPayStudent);
+ List<CoalPayStudent> coalPayStudents = coalPayStudentService.selectbyIdcard(coalPayStudentReq);
List<CoalPayStudentRep> coalPayStudentReps = new ArrayList<>();
for (CoalPayStudent payStudent : coalPayStudents) {
//封装学生基础信息
@@ -205,4 +215,69 @@
}
return coalPayMapper.updateByPayId(coalPayTypeReq);
}
+
+ @Override
+ public String personPayMoney(Long coalPayId, Long studentId) {
+ CoalPayStudent coalPayStudent = coalPayStudentService.selectbyId(studentId);
+ CoalPay coalPay = coalPayMapper.selectById(coalPayId);
+ List<CoalCategory> coalCategories = coalCategoryMapper.selectByCoalPayId(coalPayId);
+ CoalTicket coalTicket = coalCategoryMapper.selectCoalTicket();
+
+ PayReqData payReqData = new PayReqData();
+ payReqData.setOrderNo(RandomUtil.generateOrderNumber());
+ payReqData.setMoney(coalPay.getAmount());
+ payReqData.setAmount(1);
+ payReqData.setPayerName(coalPayStudent.getName());
+ payReqData.setCertNo(coalPayStudent.getIdCard());
+ payReqData.setPayerType(1);
+ payReqData.setInvoiceSocialCode(coalTicket.getTicketCompanyCode());
+ payReqData.setHandlingPerson(coalTicket.getDrawer());
+ payReqData.setChecker(coalTicket.getCheck());
+ payReqData.setEnterCode(coalTicket.getCompanyCode());
+ payReqData.setDesc(coalPay.getBatchName());
+
+ PayReqData.Feedata feedata = new PayReqData.Feedata();
+ List<PayReqData.Feedata> feedatas = new ArrayList<>();
+ for (CoalCategory coalCategory : coalCategories) {
+ feedata.setAmount(1);
+ feedata.setPrice(coalCategory.getAmount());
+ feedata.setBusCode(coalCategory.getBusinessCode());
+ feedatas.add(feedata);
+ }
+ payReqData.setFeeDatas(feedatas);
+
+ CoalPayStudent payStudent = new CoalPayStudent();
+
+ RLock lock = redissonClient.getLock("SWSPKMAS_PAY_PERSON");
+ try {
+ lock.lock(10, TimeUnit.SECONDS);
+ if (coalPayStudent.getGovPayStatus()!=0){
+ throw new BusinessException(this.getClass(),ResultConstants.BUSINESS_ERROR,"请勿重复发起支付");
+ }
+ if (StringUtils.isEmpty(coalPayStudent.getPayCode())){
+
+ }
+
+
+ ResultVo resultVo = PayUtils.sendApiPost(payReqData);
+ if (resultVo.getRespcode().equals("BUS0000")){
+ payStudent.setId(studentId);
+ payStudent.setOrderId(resultVo.getRespdata().getOrderNo());
+ payStudent.setGovPayStatus(1);
+ payStudent.setPayCode(resultVo.getRespdata().getBillNo());
+ coalPayStudentService.updateByCoalPayStudent(payStudent);
+ return resultVo.getRespdata().getBillNo();
+ }else {
+ throw new BusinessException(this.getClass(),ResultConstants.BUSINESS_ERROR,"发起支付失败,请稍后重试");
+ }
+ }catch (BusinessException e){
+ throw new BusinessException(this.getClass(),ResultConstants.BUSINESS_ERROR,"请稍后重试");
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ } finally {
+ if(lock.isLocked()){
+ lock.unlock();
+ }
+ }
+ }
}
--
Gitblit v1.9.2