微信支付回调修改
This commit is contained in:
parent
ddb3c0f5ca
commit
21f2947f45
|
|
@ -85,9 +85,11 @@ public class WxPayController extends BaseController {
|
||||||
}
|
}
|
||||||
List<Long> idList = orderDetailService.selectByOrderMasterId(orderMaster.getId()).stream().map(OrderDetail::getId).collect(Collectors.toList());
|
List<Long> idList = orderDetailService.selectByOrderMasterId(orderMaster.getId()).stream().map(OrderDetail::getId).collect(Collectors.toList());
|
||||||
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectByDetailIds(StringUtils.join(idList, ","));
|
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectByDetailIds(StringUtils.join(idList, ","));
|
||||||
|
List<Long> financialChangeRecordIds = new ArrayList<Long>();
|
||||||
for (FinancialChangeRecord financialChangeRecord : financialChangeRecords) {
|
for (FinancialChangeRecord financialChangeRecord : financialChangeRecords) {
|
||||||
if (PayStatus.WAIT_PAY.getCode().toString().equals(String.valueOf(financialChangeRecord.getPayStatus()))) {
|
if (PayStatus.WAIT_PAY.getCode().toString().equals(String.valueOf(financialChangeRecord.getPayStatus()))) {
|
||||||
payMoney = payMoney.add(financialChangeRecord.getChangeMoney());
|
payMoney = payMoney.add(financialChangeRecord.getChangeMoney());
|
||||||
|
financialChangeRecordIds.add(Long.valueOf(financialChangeRecord.getId()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//调用adapay微信公众号支付.
|
//调用adapay微信公众号支付.
|
||||||
|
|
@ -98,7 +100,7 @@ public class WxPayController extends BaseController {
|
||||||
List<DivMember> divMembers = new ArrayList<>();
|
List<DivMember> divMembers = new ArrayList<>();
|
||||||
// divMembers.add(new DivMember("C7D101", String.valueOf(financialMaster.getPayMoney()), true));
|
// divMembers.add(new DivMember("C7D101", String.valueOf(financialMaster.getPayMoney()), true));
|
||||||
// TODO 订单里需要补充支付金额、tittle、简要描述、分账信息、description
|
// TODO 订单里需要补充支付金额、tittle、简要描述、分账信息、description
|
||||||
PayParam payParam = PayParam.delayPayParam(orderMaster.getCode() + "_" + System.currentTimeMillis(),
|
PayParam payParam = PayParam.delayPayParam(orderMaster.getCode() + "_" + StringUtils.join(financialChangeRecordIds, ",") + "_"+ System.currentTimeMillis(),
|
||||||
String.valueOf(payMoney), "工圈子居家设备", "工圈子居家设备购买付费");
|
String.valueOf(payMoney), "工圈子居家设备", "工圈子居家设备购买付费");
|
||||||
map = adapayService.wxLitePay(orderMaster.getDeptId(), payParam, expend, null, null);
|
map = adapayService.wxLitePay(orderMaster.getDeptId(), payParam, expend, null, null);
|
||||||
} catch (BaseAdaPayException e) {
|
} catch (BaseAdaPayException e) {
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ qiniu:
|
||||||
adapay:
|
adapay:
|
||||||
debug: true
|
debug: true
|
||||||
prod-mode: true
|
prod-mode: true
|
||||||
notifyUrl: 'https://www.opsoul.com/adapay/callback'
|
notifyUrl: 'https://www.opsoul.com:8881/adapay/callback'
|
||||||
|
|
||||||
jim:
|
jim:
|
||||||
appKey: '110e8830290152d76e2f1d97'
|
appKey: '110e8830290152d76e2f1d97'
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,7 @@ import com.ghy.common.adapay.model.AdapayStatusEnum;
|
||||||
import com.ghy.common.adapay.model.Event;
|
import com.ghy.common.adapay.model.Event;
|
||||||
import com.ghy.common.adapay.model.PayCallback;
|
import com.ghy.common.adapay.model.PayCallback;
|
||||||
import com.ghy.common.adapay.model.PaymentDTO;
|
import com.ghy.common.adapay.model.PaymentDTO;
|
||||||
import com.ghy.common.enums.FinancialDetailType;
|
|
||||||
import com.ghy.common.enums.PayStatus;
|
import com.ghy.common.enums.PayStatus;
|
||||||
import com.ghy.common.enums.PayTypeEnum;
|
|
||||||
import com.ghy.payment.domain.FinancialChangeRecord;
|
import com.ghy.payment.domain.FinancialChangeRecord;
|
||||||
import com.ghy.payment.domain.FinancialDetail;
|
import com.ghy.payment.domain.FinancialDetail;
|
||||||
import com.ghy.payment.domain.FinancialMaster;
|
import com.ghy.payment.domain.FinancialMaster;
|
||||||
|
|
@ -19,14 +17,12 @@ import com.ghy.payment.service.FinancialMasterService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Date;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付回调
|
* 支付回调
|
||||||
|
|
@ -64,60 +60,39 @@ public class PayCallbackService implements CallBackService {
|
||||||
financialMasterService.updatePayment(param);
|
financialMasterService.updatePayment(param);
|
||||||
if (AdapayStatusEnum.succeeded.code.equals(payment.getStatus())) {
|
if (AdapayStatusEnum.succeeded.code.equals(payment.getStatus())) {
|
||||||
if(payment.getOrderNo().split("_").length > 2){
|
if(payment.getOrderNo().split("_").length > 2){
|
||||||
FinancialChangeRecord financialChangeRecord = new FinancialChangeRecord();
|
// 支付回调中的加价记录
|
||||||
financialChangeRecord.setId(payment.getOrderNo().split("_")[1]);
|
String financialChangeRecordIds = payment.getOrderNo().split("_")[1];
|
||||||
financialChangeRecord.setPayStatus(1);
|
String[] financialChangeRecordArr = financialChangeRecordIds.split(",");
|
||||||
financialChangeRecordService.updateFinancialChangeRecord(financialChangeRecord);
|
|
||||||
|
|
||||||
// 修改子订单的payMoney
|
|
||||||
FinancialChangeRecord fc = financialChangeRecordService.selectFinancialChangeRecordById(financialChangeRecord.getId());
|
|
||||||
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(fc.getOrderDetailId());
|
|
||||||
FinancialDetail financialDetail2Update = new FinancialDetail();
|
|
||||||
financialDetail2Update.setId(financialDetail.getId());
|
|
||||||
financialDetail2Update.setPayMoney(financialDetail.getPayMoney().add(fc.getChangeMoney()));
|
|
||||||
financialDetail2Update.setPayStatus(PayStatus.PAID.getCode());
|
|
||||||
financialDetailService.updateFinancialDetail(financialDetail2Update);
|
|
||||||
|
|
||||||
// 修改主单的payMoney
|
|
||||||
FinancialMaster financialMaster = financialMasterService.selectById(financialDetail.getFinancialMasterId());
|
|
||||||
FinancialMaster financialMaster2Update = new FinancialMaster();
|
|
||||||
financialMaster2Update.setId(financialMaster.getId());
|
|
||||||
financialMaster2Update.setPayMoney(financialMaster.getPayMoney().add(fc.getChangeMoney()));
|
|
||||||
financialMaster2Update.setPayStatus(PayStatus.PAID.getCode());
|
|
||||||
financialMasterService.updateFinancialMaster(financialMaster2Update);
|
|
||||||
// TODO 拆分对应的分账流水
|
|
||||||
} else if (PayTypeEnum.valueOf(payment.getPayChannel().toUpperCase()).getCode().equals(PayTypeEnum.WX_LITE.getCode())) {
|
|
||||||
String orderMasterCode = payment.getOrderNo().split("_")[0];
|
|
||||||
FinancialMaster fmQry = new FinancialMaster();
|
|
||||||
fmQry.setOrderMasterCode(orderMasterCode);
|
|
||||||
FinancialMaster financialMaster = financialMasterService.selectFinancialMasterList(fmQry).get(0);
|
|
||||||
FinancialDetail qry = new FinancialDetail();
|
|
||||||
qry.setFinancialMasterId(financialMaster.getId());
|
|
||||||
qry.setFinancialDetailType(FinancialDetailType.ORDER_FEE.getCode());
|
|
||||||
List<FinancialDetail> financialDetails = financialDetailService.selectFinancialDetailList(qry);
|
|
||||||
BigDecimal totalChangeMoney = BigDecimal.ZERO;
|
BigDecimal totalChangeMoney = BigDecimal.ZERO;
|
||||||
for (FinancialDetail financialDetail: financialDetails) {
|
Long financialMasterId = null;
|
||||||
// 查询是否有加价记录,对应加到子财务单的payMoney上
|
for (String financialChangeRecordId: financialChangeRecordArr) {
|
||||||
FinancialChangeRecord financialChangeRecord = financialChangeRecordService.selectNotPayRecordByDetailId(financialDetail.getOrderDetailId());
|
FinancialChangeRecord financialChangeRecord = new FinancialChangeRecord();
|
||||||
if (financialChangeRecord != null) {
|
financialChangeRecord.setId(financialChangeRecordId);
|
||||||
totalChangeMoney = totalChangeMoney.add(financialChangeRecord.getChangeMoney());
|
financialChangeRecord.setPayStatus(1);
|
||||||
// 更新加价记录为已支付
|
financialChangeRecordService.updateFinancialChangeRecord(financialChangeRecord);
|
||||||
financialChangeRecord.setPayStatus(1);
|
|
||||||
financialChangeRecordService.updateFinancialChangeRecord(financialChangeRecord);
|
// 修改子订单的payMoney
|
||||||
// 更新子单的payMoney,及修改为已支付
|
FinancialChangeRecord fc = financialChangeRecordService.selectFinancialChangeRecordById(financialChangeRecord.getId());
|
||||||
FinancialDetail financialDetail2Update = new FinancialDetail();
|
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(fc.getOrderDetailId());
|
||||||
financialDetail2Update.setId(financialDetail.getId());
|
FinancialDetail financialDetail2Update = new FinancialDetail();
|
||||||
financialDetail2Update.setPayMoney(financialDetail.getPayMoney().add(financialChangeRecord.getChangeMoney()));
|
financialDetail2Update.setId(financialDetail.getId());
|
||||||
financialDetail2Update.setPayStatus(PayStatus.PAID.getCode());
|
financialDetail2Update.setPayMoney(financialDetail.getPayMoney().add(fc.getChangeMoney()));
|
||||||
financialDetailService.updateFinancialDetail(financialDetail2Update);
|
financialDetail2Update.setPayStatus(PayStatus.PAID.getCode());
|
||||||
|
financialDetailService.updateFinancialDetail(financialDetail2Update);
|
||||||
|
totalChangeMoney = totalChangeMoney.add(fc.getChangeMoney());
|
||||||
|
if (financialMasterId == null) {
|
||||||
|
financialMasterId = financialDetail.getFinancialMasterId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 修改主单的payMoney
|
// 修改主单的payMoney
|
||||||
|
FinancialMaster financialMaster = financialMasterService.selectById(financialMasterId);
|
||||||
FinancialMaster financialMaster2Update = new FinancialMaster();
|
FinancialMaster financialMaster2Update = new FinancialMaster();
|
||||||
financialMaster2Update.setId(financialMaster.getId());
|
financialMaster2Update.setId(financialMaster.getId());
|
||||||
financialMaster2Update.setPayMoney(financialMaster.getPayMoney().add(totalChangeMoney));
|
financialMaster2Update.setPayMoney(financialMaster.getPayMoney().add(totalChangeMoney));
|
||||||
financialMaster2Update.setPayStatus(PayStatus.PAID.getCode());
|
financialMaster2Update.setPayStatus(PayStatus.PAID.getCode());
|
||||||
financialMasterService.updateFinancialMaster(financialMaster2Update);
|
financialMasterService.updateFinancialMaster(financialMaster2Update);
|
||||||
|
// TODO 拆分对应的分账流水
|
||||||
}
|
}
|
||||||
// 更新主财务单状态
|
// 更新主财务单状态
|
||||||
financialMasterService.paySucceeded(payment.getId(), payment.getPayChannel());
|
financialMasterService.paySucceeded(payment.getId(), payment.getPayChannel());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue