From 3abc26165dab276503195d481f8ecb994e020995 Mon Sep 17 00:00:00 2001 From: clunt Date: Mon, 17 Oct 2022 00:07:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=9F=E5=8D=95=E5=B7=B2=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=8A=A0=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/OrderMasterController.java | 23 +++++++-------- .../web/controller/pay/AlipayController.java | 12 ++++---- .../web/controller/pay/WxPayController.java | 29 +++++++++++++++++-- .../java/com/ghy/common/enums/PayStatus.java | 3 +- .../com/ghy/order/domain/OrderMaster.java | 2 ++ .../service/impl/OrderDetailServiceImpl.java | 11 +++++-- .../mapper/order/OrderMasterMapper.xml | 3 ++ .../mapper/FinancialChangeRecordMapper.java | 2 ++ .../service/FinancialChangeRecordService.java | 1 + .../FinancialChangeRecordServiceImpl.java | 5 ++++ .../financial/FinancialChangeRecordMapper.xml | 5 ++++ 11 files changed, 73 insertions(+), 23 deletions(-) diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java index 89f7531a..45931059 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java @@ -144,17 +144,14 @@ public class OrderMasterController extends BaseController { // 财务信息 FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId()); BigDecimal totalPayMoney = financialMaster.getPayMoney(); -// BigDecimal totalChangeMoney = new BigDecimal(0); -// for (OrderDetail detail: detailList) { -// // 查询子单加价记录 -// FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); -// changeRecordQry.setOrderDetailId(detail.getId()); -// List financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); -// if (CollectionUtils.isNotEmpty(financialChangeRecords)) { -// totalChangeMoney = totalChangeMoney.add(financialChangeRecords.get(0).getChangeMoney()); -// } -// } -// totalPayMoney = totalPayMoney.add(totalChangeMoney); + BigDecimal totalChangeMoney = new BigDecimal(0); + for (OrderDetail detail: detailList) { + // 查询子单加价记录 + FinancialChangeRecord record = financialChangeRecordService.selectNotPayRecordByDetailId(detail.getId()); + if (record != null) { + totalChangeMoney = totalChangeMoney.add(record.getChangeMoney()); + } + } // 地址信息 CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId()); @@ -185,7 +182,7 @@ public class OrderMasterController extends BaseController { orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney()); orderListResponse.setTotalMoney(financialMaster.getTotalMoney()); orderListResponse.setPayMoney(totalPayMoney); -// orderListResponse.setChangeMoney(totalChangeMoney); + orderListResponse.setChangeMoney(totalChangeMoney); orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setCustomerName(customerAddress.getName()); @@ -194,7 +191,7 @@ public class OrderMasterController extends BaseController { orderListResponse.setExpectTimeStart(master.getExpectTimeStart()); orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd()); orderListResponse.setOrderStatus(master.getOrderStatus()); - orderListResponse.setPayStatus(master.getPayStatus()); + orderListResponse.setPayStatus(financialMaster.getPayStatus()); orderListResponse.setPayType(master.getPayType()); orderListResponse.setOrderMasterCode(master.getCode()); orderListResponse.setStandardList(standardList); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/pay/AlipayController.java b/ghy-admin/src/main/java/com/ghy/web/controller/pay/AlipayController.java index 6034dbc4..52eb1dfe 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/pay/AlipayController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/pay/AlipayController.java @@ -88,14 +88,16 @@ public class AlipayController extends BaseController { return AjaxResult.error("财务单不存在!"); } // 主单是否付款 + FinancialChangeRecord financialChangeRecord = financialChangeRecordService.selectNotPayRecordByDetailId(orderDetailId); + // 查询关联的加价单 if (Objects.equals(fm.getPayStatus(), PayStatus.WAIT_PAY.getCode())) { payMoney = payMoney.add(fm.getPayMoney()); + } else { + if (financialChangeRecord != null) { + payMoney = payMoney.add(financialChangeRecord.getChangeMoney()); + } } - // 查询关联的加价单 - FinancialChangeRecord financialChangeRecord = financialChangeRecordService.selectNotPayRecordByDetailId(orderDetailId); - if (financialChangeRecord != null) { - payMoney = payMoney.add(financialChangeRecord.getChangeMoney()); - } + // 付款 PayParam payParam = null; if (financialChangeRecord == null) { diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java b/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java index aa0856bd..d7a56ef3 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java @@ -6,12 +6,18 @@ import com.ghy.common.adapay.model.WxpayExpend; import com.ghy.common.config.WxConfig; import com.ghy.common.core.controller.BaseController; import com.ghy.common.core.domain.AjaxResult; +import com.ghy.common.enums.PayStatus; import com.ghy.common.json.JSONObject; import com.ghy.common.utils.ExceptionUtil; +import com.ghy.common.utils.StringUtils; +import com.ghy.order.domain.OrderDetail; import com.ghy.order.domain.OrderMaster; +import com.ghy.order.service.OrderDetailService; import com.ghy.order.service.OrderMasterService; +import com.ghy.payment.domain.FinancialChangeRecord; import com.ghy.payment.domain.FinancialMaster; import com.ghy.payment.service.AdapayService; +import com.ghy.payment.service.FinancialChangeRecordService; import com.ghy.payment.service.FinancialMasterService; import com.huifu.adapay.core.exception.BaseAdaPayException; import org.springframework.stereotype.Controller; @@ -20,9 +26,11 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Controller @RequestMapping("/pay/wx") @@ -36,6 +44,11 @@ public class WxPayController extends BaseController { private OrderMasterService orderMasterService; @Resource private FinancialMasterService financialMasterService; + @Resource + private OrderDetailService orderDetailService; + + @Resource + private FinancialChangeRecordService financialChangeRecordService; @PostMapping("drawCash") @ResponseBody @@ -66,16 +79,28 @@ public class WxPayController extends BaseController { OrderMaster orderMaster = orderMasterService.selectByCode(orderMasterCode); Assert.notNull(orderMaster, "找不到对应的订单"); FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderMaster.getId()); + BigDecimal payMoney = BigDecimal.ZERO; + if(PayStatus.PAYED_ADD.getCode().equals(financialMaster.getPayStatus())){ + List idList = orderDetailService.selectByOrderMasterId(orderMaster.getId()).stream().map(OrderDetail::getId).collect(Collectors.toList()); + List financialChangeRecords = financialChangeRecordService.selectByDetailIds(StringUtils.join(idList, ",")); + for (FinancialChangeRecord financialChangeRecord : financialChangeRecords) { + if (PayStatus.WAIT_PAY.getCode().toString().equals(String.valueOf(financialChangeRecord.getPayStatus()))) { + payMoney = payMoney.add(financialChangeRecord.getChangeMoney()); + } + } + }else { + payMoney = financialMaster.getPayMoney(); + } //调用adapay微信公众号支付. WxpayExpend expend = new WxpayExpend(); expend.setOpenId(openId); Map map; try { List 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 PayParam payParam = PayParam.delayPayParam(orderMaster.getCode() + "_" + System.currentTimeMillis(), - String.valueOf(financialMaster.getPayMoney()), "工圈子居家设备", "工圈子居家设备购买付费"); + String.valueOf(payMoney), "工圈子居家设备", "工圈子居家设备购买付费"); map = adapayService.wxLitePay(orderMaster.getDeptId(), payParam, expend, null, null); } catch (BaseAdaPayException e) { logger.error("获取微信用户信息失败", e); diff --git a/ghy-common/src/main/java/com/ghy/common/enums/PayStatus.java b/ghy-common/src/main/java/com/ghy/common/enums/PayStatus.java index 3fcd81ed..e0cf70ee 100644 --- a/ghy-common/src/main/java/com/ghy/common/enums/PayStatus.java +++ b/ghy-common/src/main/java/com/ghy/common/enums/PayStatus.java @@ -9,7 +9,8 @@ public enum PayStatus { WAIT_PAY(0, "待支付"), PAID(1, "已支付"), CANCEL(2, "已取消"), - REFUND(3, "已退款"); + REFUND(3, "已退款"), + PAYED_ADD(4, "加价原单已付款"); private final Integer code; private final String desc; diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java index cdb6d403..e7351d56 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java @@ -46,6 +46,8 @@ public class OrderMaster extends BaseEntity { @Excel(name = "付款状态", cellType = Excel.ColumnType.NUMERIC) private Integer payStatus; + private String payStatusList; + @Excel(name = "接单师傅id", cellType = Excel.ColumnType.NUMERIC) private Long workerId; diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java index 717c1a47..d0d73759 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderDetailServiceImpl.java @@ -403,7 +403,14 @@ public class OrderDetailServiceImpl implements OrderDetailService { FinancialDetail financialDetail2Update = new FinancialDetail(); financialDetail2Update.setId(financialDetail.getId()); financialDetail2Update.setPayMoney(financialDetail.getPayMoney().add(changeMoneyDelta)); - financialDetail2Update.setPayStatus(PayStatus.WAIT_PAY.getCode()); + // 原单金额是否已支付 + Integer payStatus = 0; + if(PayStatus.WAIT_PAY.getCode().equals(financialDetail.getPayStatus())){ + payStatus = PayStatus.WAIT_PAY.getCode(); + }else { + payStatus = PayStatus.PAYED_ADD.getCode(); + } + financialDetail2Update.setPayStatus(payStatus); int affectedFinancialDetail = financialDetailService.updateFinancialDetail(financialDetail2Update); if (affectedFinancialDetail != 1) { throw new Exception("修改子订单payMoney失败,待修改信息:" + financialDetail2Update); @@ -414,7 +421,7 @@ public class OrderDetailServiceImpl implements OrderDetailService { FinancialMaster financialMaster2Update = new FinancialMaster(); financialMaster2Update.setId(financialMaster.getId()); financialMaster2Update.setPayMoney(financialMaster.getPayMoney().add(changeMoneyDelta)); - financialMaster2Update.setPayStatus(PayStatus.WAIT_PAY.getCode()); + financialMaster2Update.setPayStatus(payStatus); int affectedFinancialMaster = financialMasterService.updateFinancialMaster(financialMaster2Update); if (affectedFinancialMaster != 1) { throw new Exception("修改主订单payMoney失败,待修改信息:" + financialMaster2Update); diff --git a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index 7a2c90eb..b57925fd 100644 --- a/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -95,6 +95,9 @@ AND om.pay_status = #{payStatus} + + AND om.pay_status in ( #{payStatusList} ) + AND om.worker_id = #{workerId} diff --git a/ghy-payment/src/main/java/com/ghy/payment/mapper/FinancialChangeRecordMapper.java b/ghy-payment/src/main/java/com/ghy/payment/mapper/FinancialChangeRecordMapper.java index 7e8d984c..365e6491 100644 --- a/ghy-payment/src/main/java/com/ghy/payment/mapper/FinancialChangeRecordMapper.java +++ b/ghy-payment/src/main/java/com/ghy/payment/mapper/FinancialChangeRecordMapper.java @@ -1,6 +1,7 @@ package com.ghy.payment.mapper; import com.ghy.payment.domain.FinancialChangeRecord; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -27,6 +28,7 @@ public interface FinancialChangeRecordMapper { */ public List selectFinancialChangeRecordList(FinancialChangeRecord financialChangeRecord); + public List selectByDetailIds(@Param("ids") String ids); /** * 新增改价记录 * diff --git a/ghy-payment/src/main/java/com/ghy/payment/service/FinancialChangeRecordService.java b/ghy-payment/src/main/java/com/ghy/payment/service/FinancialChangeRecordService.java index ee7b4297..f3ffd7c9 100644 --- a/ghy-payment/src/main/java/com/ghy/payment/service/FinancialChangeRecordService.java +++ b/ghy-payment/src/main/java/com/ghy/payment/service/FinancialChangeRecordService.java @@ -27,6 +27,7 @@ public interface FinancialChangeRecordService { */ public List selectFinancialChangeRecordList(FinancialChangeRecord financialChangeRecord); + public List selectByDetailIds(String ids); /** * 新增改价记录 * diff --git a/ghy-payment/src/main/java/com/ghy/payment/service/impl/FinancialChangeRecordServiceImpl.java b/ghy-payment/src/main/java/com/ghy/payment/service/impl/FinancialChangeRecordServiceImpl.java index 6362afba..aa9c0189 100644 --- a/ghy-payment/src/main/java/com/ghy/payment/service/impl/FinancialChangeRecordServiceImpl.java +++ b/ghy-payment/src/main/java/com/ghy/payment/service/impl/FinancialChangeRecordServiceImpl.java @@ -47,6 +47,11 @@ public class FinancialChangeRecordServiceImpl implements FinancialChangeRecordSe return financialChangeRecordMapper.selectFinancialChangeRecordList(financialChangeRecord); } + @Override + public List selectByDetailIds(String ids) { + return financialChangeRecordMapper.selectByDetailIds(ids); + } + /** * 新增改价记录 * diff --git a/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml b/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml index 315a5a74..cd118d7b 100644 --- a/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml +++ b/ghy-payment/src/main/resources/mapper/financial/FinancialChangeRecordMapper.xml @@ -32,6 +32,11 @@ order by id desc + +