微信支付回调修改
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<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectByDetailIds(StringUtils.join(idList, ","));
|
||||
List<Long> financialChangeRecordIds = new ArrayList<Long>();
|
||||
for (FinancialChangeRecord financialChangeRecord : financialChangeRecords) {
|
||||
if (PayStatus.WAIT_PAY.getCode().toString().equals(String.valueOf(financialChangeRecord.getPayStatus()))) {
|
||||
payMoney = payMoney.add(financialChangeRecord.getChangeMoney());
|
||||
financialChangeRecordIds.add(Long.valueOf(financialChangeRecord.getId()));
|
||||
}
|
||||
}
|
||||
//调用adapay微信公众号支付.
|
||||
|
|
@ -98,7 +100,7 @@ public class WxPayController extends BaseController {
|
|||
List<DivMember> divMembers = new ArrayList<>();
|
||||
// divMembers.add(new DivMember("C7D101", String.valueOf(financialMaster.getPayMoney()), true));
|
||||
// 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), "工圈子居家设备", "工圈子居家设备购买付费");
|
||||
map = adapayService.wxLitePay(orderMaster.getDeptId(), payParam, expend, null, null);
|
||||
} catch (BaseAdaPayException e) {
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ qiniu:
|
|||
adapay:
|
||||
debug: true
|
||||
prod-mode: true
|
||||
notifyUrl: 'https://www.opsoul.com/adapay/callback'
|
||||
notifyUrl: 'https://www.opsoul.com:8881/adapay/callback'
|
||||
|
||||
jim:
|
||||
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.PayCallback;
|
||||
import com.ghy.common.adapay.model.PaymentDTO;
|
||||
import com.ghy.common.enums.FinancialDetailType;
|
||||
import com.ghy.common.enums.PayStatus;
|
||||
import com.ghy.common.enums.PayTypeEnum;
|
||||
import com.ghy.payment.domain.FinancialChangeRecord;
|
||||
import com.ghy.payment.domain.FinancialDetail;
|
||||
import com.ghy.payment.domain.FinancialMaster;
|
||||
|
|
@ -19,14 +17,12 @@ import com.ghy.payment.service.FinancialMasterService;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/**
|
||||
* 支付回调
|
||||
|
|
@ -64,60 +60,39 @@ public class PayCallbackService implements CallBackService {
|
|||
financialMasterService.updatePayment(param);
|
||||
if (AdapayStatusEnum.succeeded.code.equals(payment.getStatus())) {
|
||||
if(payment.getOrderNo().split("_").length > 2){
|
||||
FinancialChangeRecord financialChangeRecord = new FinancialChangeRecord();
|
||||
financialChangeRecord.setId(payment.getOrderNo().split("_")[1]);
|
||||
financialChangeRecord.setPayStatus(1);
|
||||
financialChangeRecordService.updateFinancialChangeRecord(financialChangeRecord);
|
||||
// 支付回调中的加价记录
|
||||
String financialChangeRecordIds = payment.getOrderNo().split("_")[1];
|
||||
String[] financialChangeRecordArr = financialChangeRecordIds.split(",");
|
||||
|
||||
// 修改子订单的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;
|
||||
for (FinancialDetail financialDetail: financialDetails) {
|
||||
// 查询是否有加价记录,对应加到子财务单的payMoney上
|
||||
FinancialChangeRecord financialChangeRecord = financialChangeRecordService.selectNotPayRecordByDetailId(financialDetail.getOrderDetailId());
|
||||
if (financialChangeRecord != null) {
|
||||
totalChangeMoney = totalChangeMoney.add(financialChangeRecord.getChangeMoney());
|
||||
// 更新加价记录为已支付
|
||||
financialChangeRecord.setPayStatus(1);
|
||||
financialChangeRecordService.updateFinancialChangeRecord(financialChangeRecord);
|
||||
// 更新子单的payMoney,及修改为已支付
|
||||
FinancialDetail financialDetail2Update = new FinancialDetail();
|
||||
financialDetail2Update.setId(financialDetail.getId());
|
||||
financialDetail2Update.setPayMoney(financialDetail.getPayMoney().add(financialChangeRecord.getChangeMoney()));
|
||||
financialDetail2Update.setPayStatus(PayStatus.PAID.getCode());
|
||||
financialDetailService.updateFinancialDetail(financialDetail2Update);
|
||||
Long financialMasterId = null;
|
||||
for (String financialChangeRecordId: financialChangeRecordArr) {
|
||||
FinancialChangeRecord financialChangeRecord = new FinancialChangeRecord();
|
||||
financialChangeRecord.setId(financialChangeRecordId);
|
||||
financialChangeRecord.setPayStatus(1);
|
||||
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);
|
||||
totalChangeMoney = totalChangeMoney.add(fc.getChangeMoney());
|
||||
if (financialMasterId == null) {
|
||||
financialMasterId = financialDetail.getFinancialMasterId();
|
||||
}
|
||||
}
|
||||
// 修改主单的payMoney
|
||||
FinancialMaster financialMaster = financialMasterService.selectById(financialMasterId);
|
||||
FinancialMaster financialMaster2Update = new FinancialMaster();
|
||||
financialMaster2Update.setId(financialMaster.getId());
|
||||
financialMaster2Update.setPayMoney(financialMaster.getPayMoney().add(totalChangeMoney));
|
||||
financialMaster2Update.setPayStatus(PayStatus.PAID.getCode());
|
||||
financialMasterService.updateFinancialMaster(financialMaster2Update);
|
||||
// TODO 拆分对应的分账流水
|
||||
}
|
||||
// 更新主财务单状态
|
||||
financialMasterService.paySucceeded(payment.getId(), payment.getPayChannel());
|
||||
|
|
|
|||
Loading…
Reference in New Issue