|
|
@@ -12,8 +12,10 @@ import com.fs.fastgptApi.util.AudioUtils;
|
|
|
import com.fs.fastgptApi.vo.AudioVO;
|
|
|
import com.fs.hisStore.param.FsStoreOrderExpressEditParam;
|
|
|
import com.fs.hisStore.service.IFsStoreOrderScrmService;
|
|
|
+import com.fs.huifuPay.domain.HuiFuQueryOrderResult;
|
|
|
import com.fs.huifuPay.domain.HuifuOrderConfirm;
|
|
|
import com.fs.huifuPay.domain.HuifuOrderConfirmResult;
|
|
|
+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
|
|
|
import com.fs.huifuPay.sdk.opps.core.utils.DateTools;
|
|
|
import com.fs.huifuPay.service.HuiFuService;
|
|
|
import com.fs.sop.domain.QwSopTempVoice;
|
|
|
@@ -2083,81 +2085,94 @@ public class Task {
|
|
|
if (CollectionUtils.isNotEmpty(payments)) {
|
|
|
for (FsStorePayment storePayment : payments) {
|
|
|
try {
|
|
|
- logger.info("分账订单号:{}",storePayment.getBusinessCode());
|
|
|
- FsStoreOrder order = fsStoreOrderService.selectFsStoreOrderByOrderCode(storePayment.getBusinessCode());
|
|
|
- BigDecimal divAmount = null;
|
|
|
- //默认全部进入中医院
|
|
|
- BigDecimal ysyAmount = storePayment.getPayMoney();
|
|
|
- HuifuOrderConfirm confirm = new HuifuOrderConfirm();
|
|
|
-
|
|
|
- if (order != null) {
|
|
|
- //获取聚水潭分账商户
|
|
|
- FsAmountsShareMerchant queryMerchant = new FsAmountsShareMerchant();
|
|
|
- queryMerchant.setType(order.getErpType());
|
|
|
- List<FsAmountsShareMerchant> merchants = amountShareMerchantService.selectFsAmountsShareMerchantList(queryMerchant);
|
|
|
- //支付金额大于等于0.1的进行分账 最低分账金额为0.1
|
|
|
- if (storePayment.getPayMoney().compareTo(new BigDecimal("0.1")) > -1) {
|
|
|
- if (order.getErpType() != null && order.getErpType() == 1) {
|
|
|
- if (merchants != null && !merchants.isEmpty()) {
|
|
|
- int i = (int) (Math.random() * merchants.size());
|
|
|
- FsAmountsShareMerchant merchant = merchants.get(i);
|
|
|
- //分账商户号
|
|
|
- confirm.setDivHfId(merchant.getMerchantAccount());
|
|
|
- //益寿缘分账金额
|
|
|
- ysyAmount = storePayment.getPayMoney().multiply(new BigDecimal("0.2"));
|
|
|
- //其它商户分账金额
|
|
|
- divAmount = storePayment.getPayMoney().subtract(ysyAmount);
|
|
|
- //分账明细数据
|
|
|
- FsShareAmountDetail shareAmountDetail = new FsShareAmountDetail();
|
|
|
- shareAmountDetail.setShareAmount(divAmount);
|
|
|
- shareAmountDetail.setMerchantId(merchant.getId());
|
|
|
- shareAmountDetail.setOrderCode(order.getOrderCode());
|
|
|
- shareAmountDetail.setOrderId(order.getOrderId());
|
|
|
- //添加分账明细
|
|
|
- amountDetailService.insertFsShareAmountDetail(shareAmountDetail);
|
|
|
+ Thread.sleep(1000);
|
|
|
+ //查询订单确认金额
|
|
|
+ V2TradePaymentScanpayQueryRequest request = new V2TradePaymentScanpayQueryRequest();
|
|
|
+ request.setOrgReqDate(DateTools.formatYYYYMMDD(storePayment.getPayTime()));
|
|
|
+ request.setOrgReqSeqId(storePayment.getShareCode()+"-"+storePayment.getPayCode());
|
|
|
+ HuiFuQueryOrderResult queryOrderResult = huiFuService.queryOrder(request);
|
|
|
+ logger.info("汇付订单查询返回:{}" , queryOrderResult);
|
|
|
+ if (queryOrderResult != null && "00000000".equals(queryOrderResult.getResp_code())) {
|
|
|
+ logger.info("分账订单号:{}",storePayment.getBusinessCode());
|
|
|
+ FsStoreOrder order = fsStoreOrderService.selectFsStoreOrderByOrderCode(storePayment.getBusinessCode());
|
|
|
+ //待确认金额
|
|
|
+ BigDecimal unConfirmAmt = new BigDecimal(queryOrderResult.getUnconfirm_amt());
|
|
|
+ BigDecimal divAmount = null;
|
|
|
+ //默认全部进入中医院
|
|
|
+ BigDecimal ysyAmount = unConfirmAmt;
|
|
|
+ HuifuOrderConfirm confirm = new HuifuOrderConfirm();
|
|
|
+
|
|
|
+ if (order != null) {
|
|
|
+ //获取聚水潭分账商户
|
|
|
+ FsAmountsShareMerchant queryMerchant = new FsAmountsShareMerchant();
|
|
|
+ queryMerchant.setType(order.getErpType());
|
|
|
+ List<FsAmountsShareMerchant> merchants = amountShareMerchantService.selectFsAmountsShareMerchantList(queryMerchant);
|
|
|
+ //支付金额大于等于0.1的进行分账 最低分账金额为0.1
|
|
|
+ if (storePayment.getPayMoney().compareTo(new BigDecimal("0.1")) > -1) {
|
|
|
+ if (order.getErpType() != null && order.getErpType() == 1) {
|
|
|
+ if (merchants != null && !merchants.isEmpty()) {
|
|
|
+ int i = (int) (Math.random() * merchants.size());
|
|
|
+ FsAmountsShareMerchant merchant = merchants.get(i);
|
|
|
+ //分账商户号
|
|
|
+ confirm.setDivHfId(merchant.getMerchantAccount());
|
|
|
+ //益寿缘分账金额
|
|
|
+ ysyAmount = unConfirmAmt.multiply(new BigDecimal("0.2"));
|
|
|
+ //其它商户分账金额
|
|
|
+ divAmount = unConfirmAmt.subtract(ysyAmount);
|
|
|
+ //分账明细数据
|
|
|
+ FsShareAmountDetail shareAmountDetail = new FsShareAmountDetail();
|
|
|
+ shareAmountDetail.setShareAmount(divAmount);
|
|
|
+ shareAmountDetail.setMerchantId(merchant.getId());
|
|
|
+ shareAmountDetail.setOrderCode(order.getOrderCode());
|
|
|
+ shareAmountDetail.setOrderId(order.getOrderId());
|
|
|
+ //添加分账明细
|
|
|
+ amountDetailService.insertFsShareAmountDetail(shareAmountDetail);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ throw new CustomException("订单不存在");
|
|
|
}
|
|
|
- } else {
|
|
|
- throw new CustomException("订单不存在");
|
|
|
- }
|
|
|
- logger.info("开始确认订单分账..........");
|
|
|
- confirm.setYsyDivAmt(ysyAmount);
|
|
|
- confirm.setDivAmt(divAmount);
|
|
|
- confirm.setOrgReqSeqId(storePayment.getShareCode()+"-"+storePayment.getPayCode());
|
|
|
- confirm.setOrgReqDate(DateTools.getCurrentDateYYYYMMDD());
|
|
|
- String orderCode = OrderCodeUtils.getOrderSn();
|
|
|
- if (StringUtils.isEmpty(orderCode)) {
|
|
|
- throw new CustomException("订单生成失败,请重试");
|
|
|
- }
|
|
|
- //中医院商户号
|
|
|
- confirm.setMainHfId("6666000175632107");
|
|
|
- confirm.setReqSeqId(orderCode);
|
|
|
- confirm.setTotalAmount(storePayment.getPayMoney());
|
|
|
- HuifuOrderConfirmResult result = huiFuService.confirmOrder(confirm);
|
|
|
- logger.info("确认订单分账结束..........");
|
|
|
- if (result != null && result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
|
|
|
- FsStorePayment paymentMap = new FsStorePayment();
|
|
|
- //分账标识
|
|
|
- paymentMap.setPaymentId(storePayment.getPaymentId());
|
|
|
- paymentMap.setShareStatus(1);
|
|
|
- paymentMap.setShareDate(result.getReq_date());
|
|
|
- paymentMap.setShareCode(result.getReq_seq_id());
|
|
|
- logger.info("更新支付记录");
|
|
|
- storePaymentMapper.updateFsStorePayment(paymentMap);
|
|
|
-
|
|
|
- FsStoreOrder orderMap = new FsStoreOrder();
|
|
|
- orderMap.setOrderId(order.getOrderId());
|
|
|
- orderMap.setZyyDivAmount(result.getYsyAmount());
|
|
|
- orderMap.setZyyHuifuId(result.getZyzHuifuId());
|
|
|
- if (result.getOtherAmount() != null && result.getOtherHuifuId() != null) {
|
|
|
- orderMap.setDivHuifuId(result.getOtherHuifuId());
|
|
|
- orderMap.setDivAmount(result.getOtherAmount());
|
|
|
+ logger.info("开始确认订单分账..........");
|
|
|
+ confirm.setYsyDivAmt(ysyAmount);
|
|
|
+ confirm.setDivAmt(divAmount);
|
|
|
+ confirm.setOrgReqSeqId(storePayment.getShareCode()+"-"+storePayment.getPayCode());
|
|
|
+ confirm.setOrgReqDate(DateTools.getCurrentDateYYYYMMDD());
|
|
|
+ String orderCode = OrderCodeUtils.getOrderSn();
|
|
|
+ if (StringUtils.isEmpty(orderCode)) {
|
|
|
+ throw new CustomException("订单生成失败,请重试");
|
|
|
+ }
|
|
|
+ //中医院商户号
|
|
|
+ confirm.setMainHfId("6666000175632107");
|
|
|
+ confirm.setReqSeqId(orderCode);
|
|
|
+ confirm.setTotalAmount(storePayment.getPayMoney());
|
|
|
+ HuifuOrderConfirmResult result = huiFuService.confirmOrder(confirm);
|
|
|
+ logger.info("确认订单分账结束..........");
|
|
|
+ if (result != null && result.getResp_code().equals("00000000") && (result.getTrans_stat().equals("S") || result.getTrans_stat().equals("P"))) {
|
|
|
+ FsStorePayment paymentMap = new FsStorePayment();
|
|
|
+ //分账标识
|
|
|
+ paymentMap.setPaymentId(storePayment.getPaymentId());
|
|
|
+ paymentMap.setShareStatus(1);
|
|
|
+ paymentMap.setShareDate(result.getReq_date());
|
|
|
+ paymentMap.setShareCode(result.getReq_seq_id());
|
|
|
+ logger.info("更新支付记录");
|
|
|
+ storePaymentMapper.updateFsStorePayment(paymentMap);
|
|
|
+
|
|
|
+ FsStoreOrder orderMap = new FsStoreOrder();
|
|
|
+ orderMap.setOrderId(order.getOrderId());
|
|
|
+ orderMap.setZyyDivAmount(result.getYsyAmount());
|
|
|
+ orderMap.setZyyHuifuId(result.getZyzHuifuId());
|
|
|
+ if (result.getOtherAmount() != null && result.getOtherHuifuId() != null) {
|
|
|
+ orderMap.setDivHuifuId(result.getOtherHuifuId());
|
|
|
+ orderMap.setDivAmount(result.getOtherAmount());
|
|
|
+ }
|
|
|
+ //更新订单
|
|
|
+ fsStoreOrderService.updateFsStoreOrder(orderMap);
|
|
|
+ } else {
|
|
|
+ throw new CustomException(result.getResp_desc());
|
|
|
}
|
|
|
- //更新订单
|
|
|
- fsStoreOrderService.updateFsStoreOrder(orderMap);
|
|
|
} else {
|
|
|
- throw new CustomException("交易确认订单失败");
|
|
|
+ throw new CustomException(queryOrderResult.getResp_desc());
|
|
|
}
|
|
|
Thread.sleep(1000);
|
|
|
} catch (Exception e) {
|