|
|
@@ -12,18 +12,13 @@ import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.common.utils.MyQuery;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.common.utils.PageParam;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.common.utils.PageUtils;
|
|
|
-import com.chuanghai.smartschool.tuitionpayment.controller.PayItemController;
|
|
|
-import com.chuanghai.smartschool.tuitionpayment.controller.PayItemDetailController;
|
|
|
-import com.chuanghai.smartschool.tuitionpayment.controller.PayableInfoController;
|
|
|
-import com.chuanghai.smartschool.tuitionpayment.controller.WechatController;
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.controller.*;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.dao.PayOrderDao;
|
|
|
-import com.chuanghai.smartschool.tuitionpayment.entity.PayItem;
|
|
|
-import com.chuanghai.smartschool.tuitionpayment.entity.PayOrderEntity;
|
|
|
-import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
|
|
|
-import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.entity.*;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.enume.PayMethod;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.enume.PayStatus;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.service.*;
|
|
|
+import com.chuanghai.smartschool.tuitionpayment.to.OrderReceiveTO;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.to.PayOrderQueryTO;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.utils.MyUtil;
|
|
|
import com.chuanghai.smartschool.tuitionpayment.utils.OutputTxt;
|
|
|
@@ -42,9 +37,8 @@ import java.math.BigDecimal;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service("payOrderService")
|
|
|
@@ -70,10 +64,20 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
private PayItemDetailController payItemDetailController;
|
|
|
@Autowired
|
|
|
private PayableInfoController payableInfoController;
|
|
|
+ @Autowired
|
|
|
+ private PayDetailBankController payDetailBankController;
|
|
|
|
|
|
@Override
|
|
|
public PageUtils queryPage(PayOrderQueryTO queryTO, PageParam pageParam) {
|
|
|
QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
|
|
|
+ if (StringUtils.hasText(queryTO.getPayStatus())) {
|
|
|
+ if (!(queryTO.getPayStatus().isEmpty()) && !(queryTO.getPayStatus().equals("1")) ) {
|
|
|
+ wrapper.in("status", "2","3");
|
|
|
+ }else {
|
|
|
+ wrapper.eq("status", "1");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
commonWrapper(wrapper, queryTO);
|
|
|
|
|
|
@@ -166,6 +170,75 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 收集用户的支付参数信息
|
|
|
+ * @param cardNumber
|
|
|
+ * @param payOrderReceiveVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<OrderReceiveTO> receiveOrder(String cardNumber, PayOrderReceiveVO payOrderReceiveVO){
|
|
|
+ List<OrderReceiveTO> orderReceiveTOList = new ArrayList<>();
|
|
|
+ //PayOrderReceiveVO payOrderReceiveVO1 = new PayOrderReceiveVO();
|
|
|
+ //备份支付参数
|
|
|
+ // BeanUtils.copyProperties(payOrderReceiveVO, payOrderReceiveVO1);
|
|
|
+ String payDetail = payOrderReceiveVO.getPayDetail();
|
|
|
+ String itemName = payOrderReceiveVO.getItemName();
|
|
|
+ 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);
|
|
|
+
|
|
|
+ return orderReceiveTOList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
* 创建缴费订单
|
|
|
*
|
|
|
* @param cardNumber 当前用户
|
|
|
@@ -321,20 +394,20 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
|
|
|
List<PayOrderEntity> payOrderList = queryAllOrderByParent(one.getOrderNo(), new PageParam()).getList();
|
|
|
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);
|
|
|
}
|
|
|
|
|
|
- System.out.println(parentOrderLone);
|
|
|
- // parentNowPayDetailAmount = parentNowPayDetailAmount.add(parentOrderLone);
|
|
|
- System.out.println(parentNowPayDetailAmount);
|
|
|
- System.out.println(payInfoDetailVO+"------------1111111111111111111111");
|
|
|
+// System.out.println(parentOrderLone);
|
|
|
+// // parentNowPayDetailAmount = parentNowPayDetailAmount.add(parentOrderLone);
|
|
|
+// System.out.println(parentNowPayDetailAmount);
|
|
|
+// System.out.println(payInfoDetailVO+"------------1111111111111111111111");
|
|
|
BigDecimal notPayDetailAmount = payInfoDetailVO.getNotPayDetailAmount();
|
|
|
// 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);
|
|
|
+ // 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));
|
|
|
}
|
|
|
@@ -361,13 +434,13 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
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()+" payOrderEntity");
|
|
|
- System.out.println(aBoolean+"---------- "+bBoolean);
|
|
|
- System.out.println(2+" "+flag);
|
|
|
+// System.out.println(payOrderEntity.getNowPayAmount()+" payOrderEntity");
|
|
|
+// System.out.println(aBoolean+"---------- "+bBoolean);
|
|
|
+// 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);
|
|
|
@@ -624,7 +697,7 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
* @param queryTO
|
|
|
*/
|
|
|
private void commonWrapper(QueryWrapper<PayOrderEntity> wrapper, PayOrderQueryTO queryTO) {
|
|
|
- wrapper.eq(StringUtils.hasText(queryTO.getPayStatus()), "status", queryTO.getPayStatus());
|
|
|
+ //wrapper.eq(StringUtils.hasText(queryTO.getPayStatus()), "status", queryTO.getPayStatus());
|
|
|
wrapper.eq(StringUtils.hasText(queryTO.getPayMethod()), "pay_method", queryTO.getPayMethod());
|
|
|
String keyword = queryTO.getKeyword();
|
|
|
if (StringUtils.hasText(keyword)) {
|
|
|
@@ -678,7 +751,8 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
|
|
|
wrapper.eq("parent_order", orderNo)
|
|
|
.eq("status", "2")
|
|
|
.or()
|
|
|
- .eq("order_no", orderNo);
|
|
|
+ .eq("order_no", orderNo)
|
|
|
+ .in("status","2","3");
|
|
|
|
|
|
IPage<PayOrderEntity> page = this.page(
|
|
|
new MyQuery<PayOrderEntity>().getPage(pageParam),
|