|
@@ -27,6 +27,7 @@ import com.chuanghai.smartschool.tuitionpayment.vo.OrderStatusVO;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.vo.PayInfoDetailVO;
|
|
import com.chuanghai.smartschool.tuitionpayment.vo.PayInfoDetailVO;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.vo.PayOrderReceiveVO;
|
|
import com.chuanghai.smartschool.tuitionpayment.vo.PayOrderReceiveVO;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.util.StringUtils;
|
|
@@ -71,9 +72,9 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
public PageUtils queryPage(PayOrderQueryTO queryTO, PageParam pageParam) {
|
|
public PageUtils queryPage(PayOrderQueryTO queryTO, PageParam pageParam) {
|
|
|
QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
|
|
|
if (StringUtils.hasText(queryTO.getPayStatus())) {
|
|
if (StringUtils.hasText(queryTO.getPayStatus())) {
|
|
|
- if (!(queryTO.getPayStatus().isEmpty()) && !(queryTO.getPayStatus().equals("1")) ) {
|
|
|
|
|
- wrapper.in("status", "2","3");
|
|
|
|
|
- }else {
|
|
|
|
|
|
|
+ if (!(queryTO.getPayStatus().isEmpty()) && !(queryTO.getPayStatus().equals("1"))) {
|
|
|
|
|
+ wrapper.in("status", "2", "3");
|
|
|
|
|
+ } else {
|
|
|
wrapper.eq("status", "1");
|
|
wrapper.eq("status", "1");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -152,12 +153,14 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
- public boolean isAlreadyPay(String studentNo, String itemName, String payYears, Integer notPaySize) {
|
|
|
|
|
|
|
+ public boolean isAlreadyPay(String studentNo, String itemName, String payYears, Integer notPaySize, String payMethod, String payDetail) {
|
|
|
QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
|
|
|
wrapper.eq("pay_for_identify", studentNo);
|
|
wrapper.eq("pay_for_identify", studentNo);
|
|
|
wrapper.eq("pay_item", itemName);
|
|
wrapper.eq("pay_item", itemName);
|
|
|
wrapper.eq(StringUtils.hasText(payYears), "pay_year", payYears);
|
|
wrapper.eq(StringUtils.hasText(payYears), "pay_year", payYears);
|
|
|
wrapper.eq("not_pay_size", notPaySize);
|
|
wrapper.eq("not_pay_size", notPaySize);
|
|
|
|
|
+ wrapper.eq("pay_detail", payDetail);
|
|
|
|
|
+ wrapper.eq("pay_method", payMethod);
|
|
|
wrapper.eq("status", PayStatus.ALREADY_PAY.getCode());
|
|
wrapper.eq("status", PayStatus.ALREADY_PAY.getCode());
|
|
|
|
|
|
|
|
List<PayOrderEntity> payList = this.list(wrapper);
|
|
List<PayOrderEntity> payList = this.list(wrapper);
|
|
@@ -171,69 +174,126 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 收集用户的支付参数信息
|
|
* 收集用户的支付参数信息
|
|
|
|
|
+ *
|
|
|
* @param cardNumber
|
|
* @param cardNumber
|
|
|
* @param payOrderReceiveVO
|
|
* @param payOrderReceiveVO
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
- public List<OrderReceiveTO> receiveOrder(String cardNumber, PayOrderReceiveVO payOrderReceiveVO){
|
|
|
|
|
|
|
+ public List<OrderReceiveTO> receiveOrder(String cardNumber, PayOrderReceiveVO payOrderReceiveVO) {
|
|
|
|
|
+ System.out.println(payOrderReceiveVO);
|
|
|
List<OrderReceiveTO> orderReceiveTOList = new ArrayList<>();
|
|
List<OrderReceiveTO> orderReceiveTOList = new ArrayList<>();
|
|
|
- //PayOrderReceiveVO payOrderReceiveVO1 = new PayOrderReceiveVO();
|
|
|
|
|
|
|
+ PayOrderReceiveVO payOrderReceiveVO1 = new PayOrderReceiveVO();
|
|
|
//备份支付参数
|
|
//备份支付参数
|
|
|
- // BeanUtils.copyProperties(payOrderReceiveVO, payOrderReceiveVO1);
|
|
|
|
|
|
|
+ BeanUtils.copyProperties(payOrderReceiveVO, payOrderReceiveVO1);
|
|
|
String payDetail = payOrderReceiveVO.getPayDetail();
|
|
String payDetail = payOrderReceiveVO.getPayDetail();
|
|
|
String itemName = payOrderReceiveVO.getItemName();
|
|
String itemName = payOrderReceiveVO.getItemName();
|
|
|
|
|
+ String payOrderLoan = payOrderReceiveVO.getPayOrderLoan();
|
|
|
|
|
+ payOrderLoan = payOrderLoan.equals("") == true ? "0" : payOrderLoan;
|
|
|
|
|
+ //payOrderReceiveVO.setPayOrderLoan(payOrderLoan);
|
|
|
PayDetailBank payDetailBank = payDetailBankController.queryBank(itemName);
|
|
PayDetailBank payDetailBank = payDetailBankController.queryBank(itemName);
|
|
|
- //建设银行的支付明细
|
|
|
|
|
- String ccbStr = payDetailBank.getCcbStr();
|
|
|
|
|
- String[] ccbStrArr = ccbStr.split("/");
|
|
|
|
|
- List<String> ccbStrList = new ArrayList<>(Arrays.asList(ccbStrArr));
|
|
|
|
|
- //建行实际支付的明细
|
|
|
|
|
- String ccbRealPayStr = "";
|
|
|
|
|
- //农商银行的支付明细
|
|
|
|
|
- String rcbStr = payDetailBank.getRcbStr();
|
|
|
|
|
- String[] rcbStrArr = rcbStr.split("/");
|
|
|
|
|
- List<String> rcbStrList = new ArrayList<>(Arrays.asList(rcbStrArr));
|
|
|
|
|
- //农商实际支付的明细
|
|
|
|
|
- String rcbRealPayStr = "";
|
|
|
|
|
- //实际收集的订单支付明细
|
|
|
|
|
- String[] payDetailArr = payDetail.split("/");
|
|
|
|
|
- List<String> payDetailList = new ArrayList<>(Arrays.asList(payDetailArr));
|
|
|
|
|
-
|
|
|
|
|
- //提取本次缴费中需要交付于建设银行的明细
|
|
|
|
|
-
|
|
|
|
|
- List<String> accountIdList = payDetailList.stream().filter(ccbStrList::contains).collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- for (int i = 0; i< accountIdList.size(); i++){
|
|
|
|
|
- ccbRealPayStr += accountIdList.get(i) +"/";
|
|
|
|
|
- }
|
|
|
|
|
- if (ccbRealPayStr.endsWith("/")) {
|
|
|
|
|
- ccbRealPayStr = ccbRealPayStr.substring(0, ccbRealPayStr.length() - 1);
|
|
|
|
|
- }
|
|
|
|
|
- OrderReceiveTO orderReceiveTOCCB = new OrderReceiveTO();
|
|
|
|
|
- orderReceiveTOCCB.setCardNumber(cardNumber);
|
|
|
|
|
- payOrderReceiveVO.setPayDetail(ccbRealPayStr);
|
|
|
|
|
- orderReceiveTOCCB.setPayOrderReceiveVO(payOrderReceiveVO);
|
|
|
|
|
- orderReceiveTOList.add(orderReceiveTOCCB);
|
|
|
|
|
- //生成农商银行的支付参数
|
|
|
|
|
-
|
|
|
|
|
- List<String> payDetailList1 = new ArrayList<>(Arrays.asList(payDetailArr));
|
|
|
|
|
- List<String> accountIdList1 = payDetailList.stream().filter(rcbStrList::contains).collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- //提取本次缴费中需要交付于建设银行的明细
|
|
|
|
|
- for (int i = 0; i< accountIdList1.size(); i++){
|
|
|
|
|
- rcbRealPayStr += accountIdList1.get(i) +"/";
|
|
|
|
|
- }
|
|
|
|
|
- if (rcbRealPayStr.endsWith("/")) {
|
|
|
|
|
- rcbRealPayStr = rcbRealPayStr.substring(0, rcbRealPayStr.length() - 1);
|
|
|
|
|
- }
|
|
|
|
|
- System.out.println(rcbRealPayStr);
|
|
|
|
|
- OrderReceiveTO orderReceiveTORCB = new OrderReceiveTO();
|
|
|
|
|
- orderReceiveTORCB.setCardNumber(cardNumber);
|
|
|
|
|
- payOrderReceiveVO.setPayDetail(rcbRealPayStr);
|
|
|
|
|
- orderReceiveTORCB.setPayOrderReceiveVO(payOrderReceiveVO);
|
|
|
|
|
- orderReceiveTOList.add(orderReceiveTORCB);
|
|
|
|
|
|
|
+ if (payDetailBank != null) {
|
|
|
|
|
+ //建设银行的支付明细
|
|
|
|
|
+ String ccbStr = payDetailBank.getCcbStr();
|
|
|
|
|
+ String[] ccbStrArr = ccbStr.split("/");
|
|
|
|
|
+ List<String> ccbStrList = new ArrayList<>(Arrays.asList(ccbStrArr));
|
|
|
|
|
+ //建行实际支付的明细
|
|
|
|
|
+ String ccbRealPayStr = "";
|
|
|
|
|
+ //农商银行的支付明细
|
|
|
|
|
+ String rcbStr = payDetailBank.getRcbStr();
|
|
|
|
|
+ String[] rcbStrArr = rcbStr.split("/");
|
|
|
|
|
+ List<String> rcbStrList = new ArrayList<>(Arrays.asList(rcbStrArr));
|
|
|
|
|
+ //农商实际支付的明细
|
|
|
|
|
+ String rcbRealPayStr = "";
|
|
|
|
|
+ //实际收集的订单支付明细
|
|
|
|
|
+ String[] payDetailArr = payDetail.split("/");
|
|
|
|
|
+ List<String> payDetailList = new ArrayList<>(Arrays.asList(payDetailArr));
|
|
|
|
|
+
|
|
|
|
|
+ //提取本次缴费中需要交付于建设银行的明细
|
|
|
|
|
+
|
|
|
|
|
+ List<String> accountIdList = payDetailList.stream().filter(ccbStrList::contains).collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ for (int i = 0; i < accountIdList.size(); i++) {
|
|
|
|
|
+ ccbRealPayStr += accountIdList.get(i) + "/";
|
|
|
|
|
+ }
|
|
|
|
|
+ if (ccbRealPayStr.endsWith("/")) {
|
|
|
|
|
+ ccbRealPayStr = ccbRealPayStr.substring(0, ccbRealPayStr.length() - 1);
|
|
|
|
|
+ }
|
|
|
|
|
+ OrderReceiveTO orderReceiveTOCCB = new OrderReceiveTO();
|
|
|
|
|
+ orderReceiveTOCCB.setCardNumber(cardNumber);
|
|
|
|
|
+ payOrderReceiveVO.setPayDetail(ccbRealPayStr);
|
|
|
|
|
+ String[] ccbRealPaySplit = ccbRealPayStr.split("/");
|
|
|
|
|
+ BigDecimal payAmountCCB = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ if (!ccbRealPaySplit[0].isEmpty()) {
|
|
|
|
|
+ for (int i = 0; i < ccbRealPaySplit.length; i++) {
|
|
|
|
|
+ String[] split = ccbRealPaySplit[i].split(":");
|
|
|
|
|
+ String payAmountStr = ccbRealPaySplit[i].split(":")[1];
|
|
|
|
|
+ payAmountCCB = payAmountCCB.add(new BigDecimal(payAmountStr).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!payOrderReceiveVO.getPayDetail().isEmpty()) {
|
|
|
|
|
+ if (!payOrderLoan.isEmpty()) {
|
|
|
|
|
+ payAmountCCB = payAmountCCB.subtract(new BigDecimal(payOrderLoan)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ payOrderReceiveVO.setNowRealPayAmount(payAmountCCB);
|
|
|
|
|
+ payOrderReceiveVO.setPayMethod("1");
|
|
|
|
|
+ orderReceiveTOCCB.setPayOrderReceiveVO(payOrderReceiveVO);
|
|
|
|
|
+ orderReceiveTOList.add(orderReceiveTOCCB);
|
|
|
|
|
+ }
|
|
|
|
|
+//--------------------------------------------------------------- 生成农商银行的支付参数 ---------------------------------------------------
|
|
|
|
|
+ String payDetail1 = payOrderReceiveVO1.getPayDetail();
|
|
|
|
|
+ String[] payDetailArr1 = payDetail1.split("/");
|
|
|
|
|
+ List<String> payDetailList1 = new ArrayList<>(Arrays.asList(payDetailArr1));
|
|
|
|
|
+ List<String> accountIdList1 = payDetailList1.stream().filter(rcbStrList::contains).collect(Collectors.toList());
|
|
|
|
|
+
|
|
|
|
|
+ //提取本次缴费中需要交付于建设银行的明细
|
|
|
|
|
+ for (int i = 0; i < accountIdList1.size(); i++) {
|
|
|
|
|
+ rcbRealPayStr += accountIdList1.get(i) + "/";
|
|
|
|
|
+ }
|
|
|
|
|
+ if (rcbRealPayStr.endsWith("/")) {
|
|
|
|
|
+ rcbRealPayStr = rcbRealPayStr.substring(0, rcbRealPayStr.length() - 1);
|
|
|
|
|
+ }
|
|
|
|
|
+ OrderReceiveTO orderReceiveTORCB = new OrderReceiveTO();
|
|
|
|
|
+ orderReceiveTORCB.setCardNumber(cardNumber);
|
|
|
|
|
+ payOrderReceiveVO1.setPayDetail(rcbRealPayStr);
|
|
|
|
|
+ String[] rcbRealPaySplit = rcbRealPayStr.split("/");
|
|
|
|
|
+ BigDecimal payAmountRCB = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ if (!rcbRealPaySplit[0].isEmpty()) {
|
|
|
|
|
+ for (int i = 0; i < rcbRealPaySplit.length; i++) {
|
|
|
|
|
+ String payAmountStr = rcbRealPaySplit[i].split(":")[1];
|
|
|
|
|
+ payAmountRCB = payAmountRCB.add(new BigDecimal(payAmountStr).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!payOrderReceiveVO1.getPayDetail().isEmpty()) {
|
|
|
|
|
+ payOrderReceiveVO1.setPayOrderLoan("0");
|
|
|
|
|
+ payOrderReceiveVO1.setNowRealPayAmount(payAmountRCB);
|
|
|
|
|
+ payOrderReceiveVO1.setPayMethod("2");
|
|
|
|
|
+ orderReceiveTORCB.setPayOrderReceiveVO(payOrderReceiveVO1);
|
|
|
|
|
+ orderReceiveTOList.add(orderReceiveTORCB);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ OrderReceiveTO orderReceiveTO = new OrderReceiveTO();
|
|
|
|
|
+ //支付方式根据项目的设置交付于规定的项目银行账户
|
|
|
|
|
+ String s = payItemController.queryPayItemByName(itemName);
|
|
|
|
|
+ if (s.contains("建设银行")) {
|
|
|
|
|
+ payOrderReceiveVO.setPayMethod("1");
|
|
|
|
|
+ } else if (s.contains("农商银行")) {
|
|
|
|
|
+ payOrderReceiveVO.setPayMethod("2");
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ orderReceiveTO.setPayOrderReceiveVO(payOrderReceiveVO);
|
|
|
|
|
+ orderReceiveTO.setCardNumber(cardNumber);
|
|
|
|
|
+ orderReceiveTOList.add(orderReceiveTO);
|
|
|
|
|
+ }
|
|
|
|
|
+ System.out.println(orderReceiveTOList);
|
|
|
|
|
+// orderReceiveTOList.forEach(orderList->{
|
|
|
|
|
+// String cardNumber1 = orderList.getCardNumber();
|
|
|
|
|
+// PayOrderReceiveVO payOrderReceiveVO2 = orderList.getPayOrderReceiveVO();
|
|
|
|
|
+// createOrder(cardNumber1, payOrderReceiveVO2);
|
|
|
|
|
+// });
|
|
|
return orderReceiveTOList;
|
|
return orderReceiveTOList;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -245,158 +305,178 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
- public CreateOrderResultVO createOrder(String cardNumber, PayOrderReceiveVO payOrderReceiveVO) {
|
|
|
|
|
- String studentNo = payOrderReceiveVO.getStudentNo();
|
|
|
|
|
- String drom = payOrderReceiveVO.getDrom();
|
|
|
|
|
- String itemName = payOrderReceiveVO.getItemName();
|
|
|
|
|
- String payDetial = payOrderReceiveVO.getPayDetail();
|
|
|
|
|
- String payYear = payOrderReceiveVO.getPayYear();
|
|
|
|
|
- String orderNotice = payOrderReceiveVO.getOrderNotice();
|
|
|
|
|
- String id = payOrderReceiveVO.getId().toString();
|
|
|
|
|
-
|
|
|
|
|
- // 查询用户是否已经缴费
|
|
|
|
|
- boolean alreadyPay = isAlreadyPay(studentNo, itemName, payYear, payOrderReceiveVO.getNotPaySize());
|
|
|
|
|
- if (alreadyPay) {
|
|
|
|
|
- throw new RRException(BizCodeEnume.DATA_IS_EXIST, "学号【" + studentNo + "】已缴费,请勿重复缴费");
|
|
|
|
|
- }
|
|
|
|
|
- PayableInfoEntity payableInfo = null;
|
|
|
|
|
- PayableInfoWaterEntity payableInfoWater = null;
|
|
|
|
|
- String grade = "";
|
|
|
|
|
- if (itemName.equals("水费缴纳")) {
|
|
|
|
|
- payableInfoWater = payableInfoWaterService.getByStudentNo(studentNo, itemName, payYear);
|
|
|
|
|
- // 获取学生入学年份
|
|
|
|
|
- grade = payableInfoWater.getGrade();
|
|
|
|
|
- } else {
|
|
|
|
|
- // 查询支付金额、被支付用户信息
|
|
|
|
|
- payableInfo = payableInfoService.getByStudentNo(studentNo, itemName, payYear);
|
|
|
|
|
- // 获取学生入学年份
|
|
|
|
|
- grade = payableInfo.getGrade();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- Integer currentGrade = MyUtil.calcStudentGrade(Integer.valueOf(grade.trim()));
|
|
|
|
|
-
|
|
|
|
|
- // 判断当前年级是否可线上缴费
|
|
|
|
|
- // boolean enablePay = Boolean.FALSE;
|
|
|
|
|
- PayItem payItem = payItemController.queryByItemNameSetting(itemName).getData();
|
|
|
|
|
- String itemGrade = payItem.getItemGrade();
|
|
|
|
|
- String gradeStr = "";
|
|
|
|
|
- JSONArray jsonArray = JSONObject.parseArray(itemGrade);
|
|
|
|
|
- for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
|
|
- gradeStr += jsonArray.get(i);
|
|
|
|
|
- }
|
|
|
|
|
- // boolean enablePay = enablePayLimitByGradeService.getCurrentGradeEnablePay(currentGrade);
|
|
|
|
|
- if (!(gradeStr.contains(String.valueOf(currentGrade)))) {
|
|
|
|
|
- throw new RRException(BizCodeEnume.PAYABLE_INFO_IS_NOT_EXIT, "当前学生所在年级不允许线上缴费");
|
|
|
|
|
- }
|
|
|
|
|
- // 获取当前支付方式
|
|
|
|
|
- String currentPayMethod = payMethodSettingService.getCurrentPayMethod();
|
|
|
|
|
|
|
+ public List<CreateOrderResultVO> createOrder(String cardNumber, PayOrderReceiveVO payOrderReceiveVO) {
|
|
|
|
|
+ List<OrderReceiveTO> orderReceiveTOS = receiveOrder(cardNumber, payOrderReceiveVO);
|
|
|
|
|
+ List<CreateOrderResultVO> createOrderResultVOList = new ArrayList<>();
|
|
|
|
|
+ //记录遍历的次数
|
|
|
|
|
+ for (int m = 0; m < orderReceiveTOS.size(); m++) {
|
|
|
|
|
+ OrderReceiveTO orderReceiveTO = orderReceiveTOS.get(m);
|
|
|
|
|
+ String cardNumber1 = orderReceiveTO.getCardNumber();
|
|
|
|
|
+ PayOrderReceiveVO payOrderReceiveVO1 = orderReceiveTO.getPayOrderReceiveVO();
|
|
|
|
|
+ String studentNo = payOrderReceiveVO1.getStudentNo();
|
|
|
|
|
+ String drom = payOrderReceiveVO1.getDrom();
|
|
|
|
|
+ String itemName = payOrderReceiveVO1.getItemName();
|
|
|
|
|
+ String payDetial = payOrderReceiveVO1.getPayDetail();
|
|
|
|
|
+ String payYear = payOrderReceiveVO1.getPayYear();
|
|
|
|
|
+ String orderNotice = payOrderReceiveVO1.getOrderNotice();
|
|
|
|
|
+ String id = payOrderReceiveVO1.getId().toString();
|
|
|
|
|
+ String payMethod = payOrderReceiveVO1.getPayMethod();
|
|
|
|
|
+ String payOrderLoan = payOrderReceiveVO1.getPayOrderLoan();
|
|
|
|
|
+ payOrderLoan = payOrderLoan.equals("") == true ? "0" : payOrderLoan;
|
|
|
|
|
+ BigDecimal orderLoan = new BigDecimal(payOrderLoan).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ // 查询用户是否已经缴费
|
|
|
|
|
+ boolean alreadyPay = isAlreadyPay(studentNo, itemName, payYear, payOrderReceiveVO1.getNotPaySize(), payOrderReceiveVO1.getPayMethod(), payDetial);
|
|
|
|
|
+ if (alreadyPay) {
|
|
|
|
|
+ throw new RRException(BizCodeEnume.DATA_IS_EXIST, "学号【" + studentNo + "】已缴费,请勿重复缴费");
|
|
|
|
|
+ }
|
|
|
|
|
+ PayableInfoEntity payableInfo = null;
|
|
|
|
|
+ PayableInfoWaterEntity payableInfoWater = null;
|
|
|
|
|
+ String grade = "";
|
|
|
|
|
+ if (itemName.equals("水费缴纳")) {
|
|
|
|
|
+ payableInfoWater = payableInfoWaterService.getByStudentNo(studentNo, itemName, payYear);
|
|
|
|
|
+ // 获取学生入学年份
|
|
|
|
|
+ grade = payableInfoWater.getGrade();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 查询支付金额、被支付用户信息
|
|
|
|
|
+ payableInfo = payableInfoService.getByStudentNo(studentNo, itemName, payYear);
|
|
|
|
|
+ // 获取学生入学年份
|
|
|
|
|
+ grade = payableInfo.getGrade();
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
- wrapper.eq("payer_identify", cardNumber);
|
|
|
|
|
- wrapper.eq("pay_for_identify", studentNo);
|
|
|
|
|
- wrapper.eq("pay_item", itemName);
|
|
|
|
|
- wrapper.eq(StringUtils.hasText(payYear), "pay_year", payYear);
|
|
|
|
|
- wrapper.eq("not_pay_size", payOrderReceiveVO.getNotPaySize());
|
|
|
|
|
- wrapper.orderByDesc("create_time");
|
|
|
|
|
- wrapper.last("limit 1");
|
|
|
|
|
- PayOrderEntity payOrderEntity = this.getOne(wrapper);
|
|
|
|
|
|
|
+ Integer currentGrade = MyUtil.calcStudentGrade(Integer.valueOf(grade.trim()));
|
|
|
|
|
|
|
|
- // 订单已经存在超过30分钟没有支付,直接删除该订单
|
|
|
|
|
- if (payOrderEntity != null && PayStatus.NON_PAY.getCode().equals(payOrderEntity.getStatus())) {
|
|
|
|
|
- if (Math.abs(ChronoUnit.MINUTES.between(LocalDateTime.now(), payOrderEntity.getCreateTime())) > 30) {
|
|
|
|
|
- // 再次查询订单状态
|
|
|
|
|
- OrderStatusVO orderStatusVO = queryOrderStatus(payOrderEntity);
|
|
|
|
|
- if (PayStatus.NON_PAY.getCode().equals(orderStatusVO.getStatus())) {
|
|
|
|
|
- this.removeById(payOrderEntity.getId());
|
|
|
|
|
- payOrderEntity = null;
|
|
|
|
|
|
|
+ // 判断当前年级是否可线上缴费
|
|
|
|
|
+ // boolean enablePay = Boolean.FALSE;
|
|
|
|
|
+ PayItem payItem = payItemController.queryByItemNameSetting(itemName).getData();
|
|
|
|
|
+ String itemGrade = payItem.getItemGrade();
|
|
|
|
|
+ String gradeStr = "";
|
|
|
|
|
+ JSONArray jsonArray = JSONObject.parseArray(itemGrade);
|
|
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
|
|
+ gradeStr += jsonArray.get(i);
|
|
|
|
|
+ }
|
|
|
|
|
+ // boolean enablePay = enablePayLimitByGradeService.getCurrentGradeEnablePay(currentGrade);
|
|
|
|
|
+ if (!(gradeStr.contains(String.valueOf(currentGrade)))) {
|
|
|
|
|
+ throw new RRException(BizCodeEnume.PAYABLE_INFO_IS_NOT_EXIT, "当前学生所在年级不允许线上缴费");
|
|
|
|
|
+ }
|
|
|
|
|
+ // 获取当前支付方式
|
|
|
|
|
+ String currentPayMethod = payMethodSettingService.getCurrentPayMethod();
|
|
|
|
|
+
|
|
|
|
|
+ QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
|
|
|
|
|
+ wrapper.eq("payer_identify", cardNumber1);
|
|
|
|
|
+ wrapper.eq("pay_for_identify", studentNo);
|
|
|
|
|
+ wrapper.eq("pay_item", itemName);
|
|
|
|
|
+ wrapper.eq("pay_detail", payDetial);
|
|
|
|
|
+ wrapper.in("pay_method", "1", "2");
|
|
|
|
|
+ wrapper.eq(StringUtils.hasText(payYear), "pay_year", payYear);
|
|
|
|
|
+ wrapper.eq("not_pay_size", payOrderReceiveVO1.getNotPaySize());
|
|
|
|
|
+ wrapper.orderByDesc("create_time");
|
|
|
|
|
+ wrapper.last("limit 1");
|
|
|
|
|
+ PayOrderEntity payOrderEntity = this.getOne(wrapper);
|
|
|
|
|
+
|
|
|
|
|
+ // 订单已经存在超过30分钟没有支付,直接删除该订单
|
|
|
|
|
+ if (payOrderEntity != null && PayStatus.NON_PAY.getCode().equals(payOrderEntity.getStatus())) {
|
|
|
|
|
+ if (Math.abs(ChronoUnit.MINUTES.between(LocalDateTime.now(), payOrderEntity.getCreateTime())) > 30) {
|
|
|
|
|
+ // 再次查询订单状态
|
|
|
|
|
+ OrderStatusVO orderStatusVO = queryOrderStatus(payOrderEntity);
|
|
|
|
|
+ if (PayStatus.NON_PAY.getCode().equals(orderStatusVO.getStatus())) {
|
|
|
|
|
+ this.removeById(payOrderEntity.getId());
|
|
|
|
|
+ payOrderEntity = null;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- CreateOrderResultVO createOrderResultVO = new CreateOrderResultVO();
|
|
|
|
|
- if (payOrderEntity == null) {
|
|
|
|
|
- createOrderResultVO.setMsg("新创建订单");
|
|
|
|
|
- payOrderEntity = new PayOrderEntity();
|
|
|
|
|
- //判断该订单是否为多次支付
|
|
|
|
|
- PayInfoDetailVO payInfoDetailVO = new PayInfoDetailVO();
|
|
|
|
|
- int count = Integer.parseInt(payOrderReceiveVO.getPayCount());
|
|
|
|
|
- if (count == 1) {
|
|
|
|
|
- payOrderEntity.setIsParent(Boolean.TRUE);
|
|
|
|
|
- // payInfoDetailVO = payableInfoController.queryPayDetail(id, itemName, payOrderReceiveVO.getPayDetail());
|
|
|
|
|
- }
|
|
|
|
|
- payInfoDetailVO = (PayInfoDetailVO) payableInfoController.queryPayInfoDetail(id, itemName, payOrderReceiveVO.getPayDetail()).getData();
|
|
|
|
|
- payOrderEntity.setNotPayDetail(payInfoDetailVO.getNotPayDetail());
|
|
|
|
|
-
|
|
|
|
|
- payOrderEntity.setOrderNo(generateOrderNo());
|
|
|
|
|
- payOrderEntity.setPayerIdentify(cardNumber);
|
|
|
|
|
- payOrderEntity.setPayForIdentify(studentNo);
|
|
|
|
|
- payOrderEntity.setStatus(PayStatus.NON_PAY.getCode());
|
|
|
|
|
- payOrderEntity.setPayMethod(currentPayMethod);
|
|
|
|
|
- payOrderEntity.setCreateTime(LocalDateTime.now());
|
|
|
|
|
- payOrderEntity.setNotPaySize(payOrderReceiveVO.getNotPaySize());
|
|
|
|
|
- payOrderEntity.setPayItem(itemName);
|
|
|
|
|
- payOrderEntity.setPayYear(payYear);
|
|
|
|
|
- payOrderEntity.setPayDetail(payDetial);
|
|
|
|
|
-
|
|
|
|
|
- payOrderEntity.setOrderNotice(orderNotice);
|
|
|
|
|
- payOrderEntity.setExceptType("1");
|
|
|
|
|
- payOrderEntity.setPayBank(payItemController.queryPayItemByName(itemName));
|
|
|
|
|
- //计算助学贷款相关的费用
|
|
|
|
|
- String payOrderLoan = payOrderReceiveVO.getPayOrderLoan();
|
|
|
|
|
- payOrderLoan = payOrderLoan.equals("") ? "0": payOrderLoan;
|
|
|
|
|
- BigDecimal orderLoan = BigDecimal.ZERO;
|
|
|
|
|
|
|
+ CreateOrderResultVO createOrderResultVO = new CreateOrderResultVO();
|
|
|
|
|
+ if (payOrderEntity == null) {
|
|
|
|
|
+ createOrderResultVO.setMsg("新创建订单");
|
|
|
|
|
+ payOrderEntity = new PayOrderEntity();
|
|
|
|
|
+ //判断该订单是否为多次支付
|
|
|
|
|
+ PayInfoDetailVO payInfoDetailVO = new PayInfoDetailVO();
|
|
|
|
|
+ int count = Integer.parseInt(payOrderReceiveVO1.getPayCount());
|
|
|
|
|
+ if (count == 1) {
|
|
|
|
|
+ payOrderEntity.setIsParent(Boolean.TRUE);
|
|
|
|
|
+ // payInfoDetailVO = payableInfoController.queryPayDetail(id, itemName, payOrderReceiveVO.getPayDetail());
|
|
|
|
|
+ }
|
|
|
|
|
+ payInfoDetailVO = (PayInfoDetailVO) payableInfoController.queryPayInfoDetail(id, itemName, payOrderReceiveVO1.getPayDetail()).getData();
|
|
|
|
|
+ payOrderEntity.setNotPayDetail(payInfoDetailVO.getNotPayDetail());
|
|
|
|
|
+
|
|
|
|
|
+ payOrderEntity.setOrderNo(generateOrderNo());
|
|
|
|
|
+ payOrderEntity.setPayerIdentify(cardNumber1);
|
|
|
|
|
+ payOrderEntity.setPayForIdentify(studentNo);
|
|
|
|
|
+ payOrderEntity.setStatus(PayStatus.NON_PAY.getCode());
|
|
|
|
|
+ payOrderEntity.setPayMethod(currentPayMethod);
|
|
|
|
|
+ payOrderEntity.setCreateTime(LocalDateTime.now());
|
|
|
|
|
+ payOrderEntity.setNotPaySize(payOrderReceiveVO1.getNotPaySize());
|
|
|
|
|
+ payOrderEntity.setPayItem(itemName);
|
|
|
|
|
+ payOrderEntity.setPayYear(payYear);
|
|
|
|
|
+ payOrderEntity.setPayDetail(payDetial);
|
|
|
|
|
+
|
|
|
|
|
+ payOrderEntity.setOrderNotice(orderNotice);
|
|
|
|
|
+ payOrderEntity.setExceptType("1");
|
|
|
|
|
+ payOrderEntity.setPayBank(payItemController.queryPayItemByName(itemName));
|
|
|
|
|
+ //计算助学贷款相关的费用 第一次缴费使用助学贷款
|
|
|
|
|
+// String payOrderLoan = "0";
|
|
|
|
|
+// if (m == 0) {
|
|
|
|
|
+// payOrderLoan = payOrderReceiveVO1.getPayOrderLoan();
|
|
|
|
|
+// }
|
|
|
|
|
+// payOrderLoan = payOrderLoan.equals("") ? "0" : payOrderLoan;
|
|
|
|
|
+// --- BigDecimal orderLoan = BigDecimal.ZERO;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
// if (StringUtils.hasText(payOrderLoan)) {
|
|
// if (StringUtils.hasText(payOrderLoan)) {
|
|
|
// orderLoan = orderLoan.add(new BigDecimal(payOrderLoan)).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
// orderLoan = orderLoan.add(new BigDecimal(payOrderLoan)).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
// }
|
|
// }
|
|
|
- if (StringUtils.hasText(payOrderLoan)) {
|
|
|
|
|
- orderLoan = orderLoan.add(new BigDecimal(payOrderLoan)).setScale(2, BigDecimal.ROUND_UP);
|
|
|
|
|
- }
|
|
|
|
|
- payOrderEntity.setPayOrderLoan(orderLoan);
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
- // 支付金额、被支付用户信息
|
|
|
|
|
- if (itemName.equals("水费缴纳")) {
|
|
|
|
|
- //更新对应项目的缴费参数
|
|
|
|
|
- payOrderEntity.setDrom(drom.isEmpty() ? "" : drom);
|
|
|
|
|
- payOrderEntity.setRealPayAmount(payableInfoWater.getRealPayAmount());
|
|
|
|
|
- //payOrderEntity.setNowPayAmount(payableInfoWater.getRealPayAmount());
|
|
|
|
|
- payOrderEntity.setStudentName(payableInfoWater.getStudentName());
|
|
|
|
|
- payOrderEntity.setClassName(payableInfoWater.getClassName());
|
|
|
|
|
- } else {
|
|
|
|
|
- payOrderEntity.setRealPayAmount(payableInfo.getRealPayAmount());
|
|
|
|
|
- // payOrderEntity.setNowPayAmount(payInfoDetailVO.getPayDetailAmount());
|
|
|
|
|
- payOrderEntity.setStudentName(payableInfo.getStudentName());
|
|
|
|
|
- payOrderEntity.setClassName(payableInfo.getClassName());
|
|
|
|
|
- //更新缴费名单的缴费明细
|
|
|
|
|
- if (StringUtils.hasText(payableInfo.getPayDetail())) {
|
|
|
|
|
- payableInfo.setPayDetail(payableInfo.getPayDetail() + "/" + payDetial);
|
|
|
|
|
|
|
+// if (StringUtils.hasText(payOrderLoan)) {
|
|
|
|
|
+// orderLoan = orderLoan.add(new BigDecimal(payOrderLoan)).setScale(2, BigDecimal.ROUND_UP);
|
|
|
|
|
+// }
|
|
|
|
|
+ payOrderEntity.setPayOrderLoan(orderLoan);
|
|
|
|
|
+ payOrderEntity.setPayMethod(payOrderReceiveVO1.getPayMethod());
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // 支付金额、被支付用户信息
|
|
|
|
|
+ if (itemName.equals("水费缴纳")) {
|
|
|
|
|
+ //更新对应项目的缴费参数
|
|
|
|
|
+ payOrderEntity.setDrom(drom.isEmpty() ? "" : drom);
|
|
|
|
|
+ payOrderEntity.setRealPayAmount(payableInfoWater.getRealPayAmount());
|
|
|
|
|
+ //payOrderEntity.setNowPayAmount(payableInfoWater.getRealPayAmount());
|
|
|
|
|
+ payOrderEntity.setStudentName(payableInfoWater.getStudentName());
|
|
|
|
|
+ payOrderEntity.setClassName(payableInfoWater.getClassName());
|
|
|
} else {
|
|
} else {
|
|
|
- payableInfo.setPayDetail(payDetial);
|
|
|
|
|
- }
|
|
|
|
|
- payableInfo.setNotPayDetail(payOrderEntity.getNotPayDetail());
|
|
|
|
|
- payableInfo.setNotPaySize(payOrderReceiveVO.getNotPaySize());
|
|
|
|
|
- // payableInfoService.updateById(payableInfo);
|
|
|
|
|
|
|
+ payOrderEntity.setRealPayAmount(payableInfo.getRealPayAmount());
|
|
|
|
|
+ // payOrderEntity.setNowPayAmount(payInfoDetailVO.getPayDetailAmount());
|
|
|
|
|
+ payOrderEntity.setStudentName(payableInfo.getStudentName());
|
|
|
|
|
+ payOrderEntity.setClassName(payableInfo.getClassName());
|
|
|
|
|
+ //更新缴费名单的缴费明细
|
|
|
|
|
+ if (StringUtils.hasText(payableInfo.getPayDetail())) {
|
|
|
|
|
+ payableInfo.setPayDetail(payableInfo.getPayDetail() + "/" + payDetial);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ payableInfo.setPayDetail(payDetial);
|
|
|
|
|
+ }
|
|
|
|
|
+ payableInfo.setNotPayDetail(payOrderEntity.getNotPayDetail());
|
|
|
|
|
+ payableInfo.setNotPaySize(payOrderReceiveVO1.getNotPaySize());
|
|
|
|
|
+ // payableInfoService.updateById(payableInfo);
|
|
|
|
|
|
|
|
- }
|
|
|
|
|
- BigDecimal parentNowPayDetailAmount = BigDecimal.ZERO;
|
|
|
|
|
- BigDecimal parentOrderLone = BigDecimal.ZERO;
|
|
|
|
|
- if (count > 1) {
|
|
|
|
|
- QueryWrapper<PayOrderEntity> wrapper1 = new QueryWrapper<>();
|
|
|
|
|
- wrapper1.eq("payer_identify", cardNumber);
|
|
|
|
|
- wrapper1.eq("pay_for_identify", studentNo);
|
|
|
|
|
- wrapper1.eq("pay_item", itemName);
|
|
|
|
|
- wrapper1.eq(StringUtils.hasText(payYear), "pay_year", payYear);
|
|
|
|
|
- wrapper1.eq("status", "3");
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ BigDecimal parentNowPayDetailAmount = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal parentOrderLone = BigDecimal.ZERO;
|
|
|
|
|
+ if (count > 1) {
|
|
|
|
|
+ QueryWrapper<PayOrderEntity> wrapper1 = new QueryWrapper<>();
|
|
|
|
|
+ wrapper1.eq("payer_identify", cardNumber1);
|
|
|
|
|
+ wrapper1.eq("pay_for_identify", studentNo);
|
|
|
|
|
+ wrapper1.eq("pay_item", itemName);
|
|
|
|
|
+ wrapper1.eq("is_parent", "1");
|
|
|
|
|
+ wrapper1.eq(StringUtils.hasText(payYear), "pay_year", payYear);
|
|
|
|
|
+ wrapper1.in("status", "2", "3");
|
|
|
// wrapper1.orderByAsc("create_time");
|
|
// wrapper1.orderByAsc("create_time");
|
|
|
// wrapper1.last("limit 1");
|
|
// wrapper1.last("limit 1");
|
|
|
- PayOrderEntity one = this.getOne(wrapper1);
|
|
|
|
|
- if (one != null) {
|
|
|
|
|
|
|
+ List<PayOrderEntity> payOrderList = this.list(wrapper1);
|
|
|
|
|
|
|
|
- List<PayOrderEntity> payOrderList = queryAllOrderByParent(one.getOrderNo(), new PageParam()).getList();
|
|
|
|
|
- for (int i = 0; i< payOrderList.size(); i++) {
|
|
|
|
|
|
|
+ // List<PayOrderEntity> payOrderList = queryAllOrderByParent(one.getOrderNo(), new PageParam()).getList();
|
|
|
|
|
+ System.out.println(payInfoDetailVO);
|
|
|
|
|
+ for (int i = 0; i < payOrderList.size(); i++) {
|
|
|
// System.out.println(payOrderList.get(i));
|
|
// System.out.println(payOrderList.get(i));
|
|
|
- // parentOrderLone = parentOrderLone.add(payOrderList.get(i).getPayOrderLoan()).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
- parentNowPayDetailAmount = parentNowPayDetailAmount.add(payOrderList.get(i).getNowPayAmount()).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
|
+ parentOrderLone = parentOrderLone.add(payOrderList.get(i).getPayOrderLoan()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ parentNowPayDetailAmount = parentNowPayDetailAmount.add(payOrderList.get(i).getNowPayAmount()).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// System.out.println(parentOrderLone);
|
|
// System.out.println(parentOrderLone);
|
|
@@ -405,49 +485,60 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
// System.out.println(payInfoDetailVO+"------------1111111111111111111111");
|
|
// System.out.println(payInfoDetailVO+"------------1111111111111111111111");
|
|
|
BigDecimal notPayDetailAmount = payInfoDetailVO.getNotPayDetailAmount();
|
|
BigDecimal notPayDetailAmount = payInfoDetailVO.getNotPayDetailAmount();
|
|
|
// parentOrderLone = one.getPayOrderLoan().setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
// parentOrderLone = one.getPayOrderLoan().setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- payOrderEntity.setParentOrder(one.getOrderNo());
|
|
|
|
|
- // parentNowPayDetailAmount = (parentNowPayDetailAmount.add(one.getNowPayAmount())).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
- // System.out.println(payOrderEntity.getRealPayAmount()+ " --- "+parentNowPayDetailAmount +" "+notPayDetailAmount);
|
|
|
|
|
- payOrderEntity.setNowPayAmount(payOrderEntity.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).subtract(parentNowPayDetailAmount).setScale(2, BigDecimal.ROUND_HALF_UP)
|
|
|
|
|
- .subtract(notPayDetailAmount));
|
|
|
|
|
|
|
+ // payOrderEntity.setParentOrder(one.getOrderNo());
|
|
|
|
|
+ // parentNowPayDetailAmount = (parentNowPayDetailAmount.add(one.getNowPayAmount())).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+ // System.out.println(payOrderEntity.getRealPayAmount()+ " --- "+parentNowPayDetailAmount +" "+notPayDetailAmount);
|
|
|
|
|
+ payOrderEntity.setNowPayAmount(
|
|
|
|
|
+ payOrderEntity.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)
|
|
|
|
|
+ .subtract(parentNowPayDetailAmount).setScale(2, BigDecimal.ROUND_HALF_UP)
|
|
|
|
|
+ .subtract(notPayDetailAmount)
|
|
|
|
|
+ .subtract(parentOrderLone)
|
|
|
|
|
+ //.subtract(payInfoDetailVO.getPayDetailAmount())
|
|
|
|
|
+ );
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // payOrderEntity.setNowPayAmount(payInfoDetailVO.getPayDetailAmount().subtract(payOrderEntity.getPayOrderLoan().setScale(2, BigDecimal.ROUND_HALF_UP)));
|
|
|
|
|
+ payOrderEntity.setNowPayAmount(payInfoDetailVO.getPayDetailAmount().setScale(2, BigDecimal.ROUND_HALF_UP).subtract(orderLoan));
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- }else{
|
|
|
|
|
- payOrderEntity.setNowPayAmount(payInfoDetailVO.getPayDetailAmount().subtract(payOrderEntity.getPayOrderLoan().setScale(2,BigDecimal.ROUND_HALF_UP)));
|
|
|
|
|
- }
|
|
|
|
|
- // System.out.println(payOrderEntity.getNowPayAmount()+" sjdhfuhsbdf getNowPayAmount");
|
|
|
|
|
- //校验订单的支付金额是否异常
|
|
|
|
|
- Boolean flag = Boolean.TRUE;
|
|
|
|
|
- //前端实付金额
|
|
|
|
|
- BigDecimal realPayAmount = payOrderReceiveVO.getNowRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
-
|
|
|
|
|
- // payInfoDetailVO.setPayDetailAmount(payOrderEntity.getNowPayAmount());
|
|
|
|
|
- if (itemName.equals("水费缴纳")) {
|
|
|
|
|
- flag = payOrderEntity.getNowPayAmount().compareTo(payableInfoWater.getRealPayAmount()) == 0? Boolean.TRUE : Boolean.FALSE;
|
|
|
|
|
- } else {
|
|
|
|
|
- // System.out.println(payOrderReceiveVO);
|
|
|
|
|
- // System.out.println(payInfoDetailVO);
|
|
|
|
|
- // System.out.println(payOrderEntity);
|
|
|
|
|
- // System.out.println(payOrderEntity.getPayOrderLoan()+" getPayOrderLoan");
|
|
|
|
|
- BigDecimal aBoolean = payOrderEntity.getNowPayAmount().add(payOrderEntity.getPayOrderLoan()).add(payInfoDetailVO.getNotPayDetailAmount());
|
|
|
|
|
-
|
|
|
|
|
- BigDecimal bBoolean = (payableInfo.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)).subtract(parentOrderLone).subtract(parentNowPayDetailAmount);
|
|
|
|
|
- flag = aBoolean.compareTo(bBoolean) == 0 ? Boolean.TRUE : Boolean.FALSE;
|
|
|
|
|
- //i = payOrderEntity.getNowPayAmount().add(payOrderEntity.getPayOrderLoan()).compareTo(payableInfo.getRealPayAmount());
|
|
|
|
|
|
|
+ // System.out.println(payOrderEntity.getNowPayAmount()+" sjdhfuhsbdf getNowPayAmount");
|
|
|
|
|
+ //校验订单的支付金额是否异常
|
|
|
|
|
+ Boolean flag = Boolean.TRUE;
|
|
|
|
|
+ //前端实付金额
|
|
|
|
|
+ BigDecimal realPayAmount = payOrderReceiveVO1.getNowRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
+
|
|
|
|
|
+ // payInfoDetailVO.setPayDetailAmount(payOrderEntity.getNowPayAmount());
|
|
|
|
|
+ if (itemName.equals("水费缴纳")) {
|
|
|
|
|
+ flag = payOrderEntity.getNowPayAmount().compareTo(payableInfoWater.getRealPayAmount()) == 0 ? Boolean.TRUE : Boolean.FALSE;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // System.out.println(payOrderReceiveVO);
|
|
|
|
|
+ System.out.println(payInfoDetailVO);
|
|
|
|
|
+ // System.out.println(payOrderEntity);
|
|
|
|
|
+ // System.out.println(payOrderEntity.getPayOrderLoan()+" getPayOrderLoan");
|
|
|
|
|
+ // BigDecimal aBoolean = payOrderEntity.getNowPayAmount().add(payOrderEntity.getPayOrderLoan()).add(payInfoDetailVO.getNotPayDetailAmount());
|
|
|
|
|
+ System.out.println(payOrderEntity.getNowPayAmount());
|
|
|
|
|
+ System.out.println(payInfoDetailVO.getNotPayDetailAmount());
|
|
|
|
|
+ orderLoan = orderLoan.add(parentOrderLone);
|
|
|
|
|
+ BigDecimal nowPayAllMount = payOrderEntity.getNowPayAmount().add(payInfoDetailVO.getNotPayDetailAmount()).add(parentNowPayDetailAmount).add(orderLoan);
|
|
|
|
|
+
|
|
|
|
|
+ // BigDecimal bBoolean = (payableInfo.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)).subtract(parentOrderLone).subtract(parentNowPayDetailAmount);
|
|
|
|
|
+ // BigDecimal bBoolean = (payableInfo.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP)).subtract(parentOrderLone).subtract(parentNowPayDetailAmount);
|
|
|
|
|
+ BigDecimal realAmount = (payableInfo.getRealPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
+ flag = nowPayAllMount.compareTo(realAmount) == 0 ? Boolean.TRUE : Boolean.FALSE;
|
|
|
|
|
+ //i = payOrderEntity.getNowPayAmount().add(payOrderEntity.getPayOrderLoan()).compareTo(payableInfo.getRealPayAmount());
|
|
|
// System.out.println(payOrderEntity.getNowPayAmount()+" payOrderEntity");
|
|
// System.out.println(payOrderEntity.getNowPayAmount()+" payOrderEntity");
|
|
|
-// System.out.println(aBoolean+"---------- "+bBoolean);
|
|
|
|
|
|
|
+ System.out.println(nowPayAllMount + "---------- " + realAmount);
|
|
|
// System.out.println(2+" "+flag);
|
|
// System.out.println(2+" "+flag);
|
|
|
|
|
+ System.out.println(2 + " " + flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ System.out.println(realPayAmount);
|
|
|
|
|
+ System.out.println(payOrderEntity.getNowPayAmount());
|
|
|
|
|
|
|
|
- }
|
|
|
|
|
-// System.out.println(realPayAmount);
|
|
|
|
|
-// System.out.println(payOrderEntity.getNowPayAmount());
|
|
|
|
|
- if (!(realPayAmount.compareTo(payOrderEntity.getNowPayAmount()) == 0)) {
|
|
|
|
|
- flag = Boolean.FALSE;
|
|
|
|
|
- System.out.println(3+" "+flag);
|
|
|
|
|
- }
|
|
|
|
|
- if (!flag) {
|
|
|
|
|
- throw new RRException(BizCodeEnume.PAY_AMOUNT_ERROR, "支付金额异常。");
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!(realPayAmount.compareTo(payOrderEntity.getNowPayAmount()) == 0)) {
|
|
|
|
|
+ flag = Boolean.FALSE;
|
|
|
|
|
+ System.out.println(3 + " " + flag);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!flag) {
|
|
|
|
|
+ throw new RRException(BizCodeEnume.PAY_AMOUNT_ERROR, "支付金额异常。");
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
/* 首次订单支付成功之后如果还有未支付的 状态为 3 无未支付的状态为 2
|
|
/* 首次订单支付成功之后如果还有未支付的 状态为 3 无未支付的状态为 2
|
|
|
当所有未支付的明细完成缴费之后 首单状态变为 2 状态:支付成功且完成所有缴费
|
|
当所有未支付的明细完成缴费之后 首单状态变为 2 状态:支付成功且完成所有缴费
|
|
@@ -455,22 +546,24 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
检测该订单是否异常,订单异常自动发送 订单异常微校通知
|
|
检测该订单是否异常,订单异常自动发送 订单异常微校通知
|
|
|
wechatController.sendException(itemName);
|
|
wechatController.sendException(itemName);
|
|
|
*/
|
|
*/
|
|
|
-
|
|
|
|
|
- this.save(payOrderEntity);
|
|
|
|
|
|
|
+ this.save(payOrderEntity);
|
|
|
|
|
|
|
|
|
|
|
|
|
- } else {
|
|
|
|
|
- if (!payOrderEntity.getPayMethod().equals(currentPayMethod)) {
|
|
|
|
|
- payOrderEntity.setPayMethod(currentPayMethod);
|
|
|
|
|
- this.updateById(payOrderEntity);
|
|
|
|
|
|
|
+ } else {
|
|
|
|
|
+// if (!payOrderEntity.getPayMethod().equals(currentPayMethod)) {
|
|
|
|
|
+// payOrderEntity.setPayMethod(currentPayMethod);
|
|
|
|
|
+// this.updateById(payOrderEntity);
|
|
|
|
|
+// }
|
|
|
|
|
+ createOrderResultVO.setMsg("订单早已创建");
|
|
|
}
|
|
}
|
|
|
- createOrderResultVO.setMsg("订单早已创建");
|
|
|
|
|
|
|
+ createOrderResultVO.setAmount(payOrderEntity.getNowPayAmount());
|
|
|
|
|
+ createOrderResultVO.setOrderNo(payOrderEntity.getOrderNo());
|
|
|
|
|
+ createOrderResultVO.setPayMethod(payOrderEntity.getPayMethod());
|
|
|
|
|
+ createOrderResultVOList.add(createOrderResultVO);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- createOrderResultVO.setAmount(payOrderEntity.getRealPayAmount());
|
|
|
|
|
- createOrderResultVO.setOrderNo(payOrderEntity.getOrderNo());
|
|
|
|
|
- createOrderResultVO.setPayMethod(payOrderEntity.getPayMethod());
|
|
|
|
|
- return createOrderResultVO;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ return createOrderResultVOList;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -746,31 +839,19 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public PageUtils queryAllOrderByParent(String orderNo, PageParam pageParam) {
|
|
|
|
|
|
|
+ public PageUtils queryAllOrder(String cardNumber, PageParam pageParam, String status, String itemName, String payYear) {
|
|
|
QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
|
|
QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
|
|
|
- wrapper.eq("parent_order", orderNo)
|
|
|
|
|
- .eq("status", "2")
|
|
|
|
|
- .or()
|
|
|
|
|
- .eq("order_no", orderNo)
|
|
|
|
|
- .in("status","2","3");
|
|
|
|
|
|
|
+ wrapper.eq("pay_for_identify", cardNumber)
|
|
|
|
|
+ .eq("status", status)
|
|
|
|
|
+ .eq(StringUtils.hasText(itemName),"pay_item", itemName)
|
|
|
|
|
+ .eq(StringUtils.hasText(payYear),"pay_year", payYear);
|
|
|
|
|
+
|
|
|
|
|
|
|
|
IPage<PayOrderEntity> page = this.page(
|
|
IPage<PayOrderEntity> page = this.page(
|
|
|
new MyQuery<PayOrderEntity>().getPage(pageParam),
|
|
new MyQuery<PayOrderEntity>().getPage(pageParam),
|
|
|
wrapper
|
|
wrapper
|
|
|
);
|
|
);
|
|
|
List<PayOrderEntity> records = page.getRecords();
|
|
List<PayOrderEntity> records = page.getRecords();
|
|
|
- records.forEach(order -> {
|
|
|
|
|
- BigDecimal nowPayAmount = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
- String payDetail = order.getPayDetail();
|
|
|
|
|
- if (StringUtils.hasText(payDetail)) {
|
|
|
|
|
- String[] split = payDetail.split("/");
|
|
|
|
|
- for (int i = 0; i < split.length; i++) {
|
|
|
|
|
- nowPayAmount = nowPayAmount.add(new BigDecimal(split[i].split(":")[1]).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- order.setNowPayAmount(nowPayAmount);
|
|
|
|
|
- });
|
|
|
|
|
page.setRecords(records);
|
|
page.setRecords(records);
|
|
|
return new PageUtils(page);
|
|
return new PageUtils(page);
|
|
|
}
|
|
}
|