售后,加价相关金额修改

This commit is contained in:
donqi 2022-10-16 22:50:57 +08:00
parent cbfb18a235
commit f680581fc8
10 changed files with 157 additions and 74 deletions

View File

@ -3,6 +3,7 @@ package com.ghy.web.controller.order;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -130,7 +131,12 @@ public class AfterServiceRecordController extends BaseController
@ResponseBody @ResponseBody
public AjaxResult editSave(@RequestBody AfterServiceRecord afterServiceRecord) public AjaxResult editSave(@RequestBody AfterServiceRecord afterServiceRecord)
{ {
return toAjax(afterServiceRecordService.updateAfterServiceRecord(afterServiceRecord)); try {
return toAjax(afterServiceRecordService.updateAfterServiceRecord(afterServiceRecord));
} catch (Exception exception) {
logger.error(ExceptionUtils.getStackTrace(exception));
return AjaxResult.error(exception.getMessage());
}
} }
/** /**

View File

@ -161,12 +161,12 @@ public class OrderDetailController extends BaseController {
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId()); FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId());
BigDecimal detailPayMoney = financialDetail.getPayMoney(); BigDecimal detailPayMoney = financialDetail.getPayMoney();
// 查询子单加价记录 // 查询子单加价记录
FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); // FinancialChangeRecord changeRecordQry = new FinancialChangeRecord();
changeRecordQry.setOrderDetailId(detail.getId()); // changeRecordQry.setOrderDetailId(detail.getId());
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); // List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry);
if (CollectionUtils.isNotEmpty(financialChangeRecords)) { // if (CollectionUtils.isNotEmpty(financialChangeRecords)) {
detailPayMoney = detailPayMoney.add(financialChangeRecords.get(0).getChangeMoney()); // detailPayMoney = detailPayMoney.add(financialChangeRecords.get(0).getChangeMoney());
} // }
// 地址信息 // 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId());
@ -273,12 +273,12 @@ public class OrderDetailController extends BaseController {
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId()); FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId());
BigDecimal detailPayMoney = financialDetail.getPayMoney(); BigDecimal detailPayMoney = financialDetail.getPayMoney();
// 查询子单加价记录 // 查询子单加价记录
FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); // FinancialChangeRecord changeRecordQry = new FinancialChangeRecord();
changeRecordQry.setOrderDetailId(detail.getId()); // changeRecordQry.setOrderDetailId(detail.getId());
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); // List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry);
if (CollectionUtils.isNotEmpty(financialChangeRecords)) { // if (CollectionUtils.isNotEmpty(financialChangeRecords)) {
detailPayMoney = detailPayMoney.add(financialChangeRecords.get(0).getChangeMoney()); // detailPayMoney = detailPayMoney.add(financialChangeRecords.get(0).getChangeMoney());
} // }
// 地址信息 // 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId());
@ -335,7 +335,9 @@ public class OrderDetailController extends BaseController {
@PostMapping("/after/list") @PostMapping("/after/list")
@ResponseBody @ResponseBody
public TableDataInfo afterServiceList(@RequestBody OrderDetail orderDetail) { public TableDataInfo afterServiceList(@RequestBody OrderDetail orderDetail) {
List<AfterServiceRecord> afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(new AfterServiceRecord()); AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE);
List<AfterServiceRecord> afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
Map<Long, List<AfterServiceRecord>> detailRecordMap = afterServiceRecordList.stream().collect(Collectors.groupingBy(record->record.getOrderDetailId())); Map<Long, List<AfterServiceRecord>> detailRecordMap = afterServiceRecordList.stream().collect(Collectors.groupingBy(record->record.getOrderDetailId()));
// 踢重后的子单ids // 踢重后的子单ids
List<Long> detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList()); List<Long> detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList());
@ -385,12 +387,12 @@ public class OrderDetailController extends BaseController {
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId()); FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId());
BigDecimal detailPayMoney = financialDetail.getPayMoney(); BigDecimal detailPayMoney = financialDetail.getPayMoney();
// 查询子单加价记录 // 查询子单加价记录
FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); // FinancialChangeRecord changeRecordQry = new FinancialChangeRecord();
changeRecordQry.setOrderDetailId(detail.getId()); // changeRecordQry.setOrderDetailId(detail.getId());
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); // List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry);
if (CollectionUtils.isNotEmpty(financialChangeRecords)) { // if (CollectionUtils.isNotEmpty(financialChangeRecords)) {
detailPayMoney = detailPayMoney.add(financialChangeRecords.get(0).getChangeMoney()); // detailPayMoney = detailPayMoney.add(financialChangeRecords.get(0).getChangeMoney());
} // }
// 地址信息 // 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId());

View File

@ -144,17 +144,17 @@ public class OrderMasterController extends BaseController {
// 财务信息 // 财务信息
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId()); FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId());
BigDecimal totalPayMoney = financialMaster.getPayMoney(); BigDecimal totalPayMoney = financialMaster.getPayMoney();
BigDecimal totalChangeMoney = new BigDecimal(0); // BigDecimal totalChangeMoney = new BigDecimal(0);
for (OrderDetail detail: detailList) { // for (OrderDetail detail: detailList) {
// 查询子单加价记录 // // 查询子单加价记录
FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); // FinancialChangeRecord changeRecordQry = new FinancialChangeRecord();
changeRecordQry.setOrderDetailId(detail.getId()); // changeRecordQry.setOrderDetailId(detail.getId());
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); // List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry);
if (CollectionUtils.isNotEmpty(financialChangeRecords)) { // if (CollectionUtils.isNotEmpty(financialChangeRecords)) {
totalChangeMoney = totalChangeMoney.add(financialChangeRecords.get(0).getChangeMoney()); // totalChangeMoney = totalChangeMoney.add(financialChangeRecords.get(0).getChangeMoney());
} // }
} // }
totalPayMoney = totalPayMoney.add(totalChangeMoney); // totalPayMoney = totalPayMoney.add(totalChangeMoney);
// 地址信息 // 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId()); CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId());
@ -185,7 +185,7 @@ public class OrderMasterController extends BaseController {
orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney()); orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney());
orderListResponse.setTotalMoney(financialMaster.getTotalMoney()); orderListResponse.setTotalMoney(financialMaster.getTotalMoney());
orderListResponse.setPayMoney(totalPayMoney); orderListResponse.setPayMoney(totalPayMoney);
orderListResponse.setChangeMoney(totalChangeMoney); // orderListResponse.setChangeMoney(totalChangeMoney);
orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); orderListResponse.setWorkerName(worker == null ? "" : worker.getName());
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setCustomerName(customerAddress.getName()); orderListResponse.setCustomerName(customerAddress.getName());
@ -227,7 +227,9 @@ public class OrderMasterController extends BaseController {
public TableDataInfo afterList(@RequestBody OrderMaster orderMaster) { public TableDataInfo afterList(@RequestBody OrderMaster orderMaster) {
// 查所有售后的单 // 查所有售后的单
List<AfterServiceRecord> afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(new AfterServiceRecord()); AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE);
List<AfterServiceRecord> afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
// 踢重后的子单ids // 踢重后的子单ids
List<Long> detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList()); List<Long> detailIds = afterServiceRecordList.stream().map(AfterServiceRecord::getOrderDetailId).distinct().collect(Collectors.toList());
StringBuilder orderDetailIds = new StringBuilder(); StringBuilder orderDetailIds = new StringBuilder();
@ -285,17 +287,17 @@ public class OrderMasterController extends BaseController {
// 财务信息 // 财务信息
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId()); FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId());
BigDecimal totalPayMoney = financialMaster.getPayMoney(); BigDecimal totalPayMoney = financialMaster.getPayMoney();
BigDecimal totalChangeMoney = new BigDecimal(0); // BigDecimal totalChangeMoney = new BigDecimal(0);
for (OrderDetail detail: detailList) { // for (OrderDetail detail: detailList) {
// 查询子单加价记录 // // 查询子单加价记录
FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); // FinancialChangeRecord changeRecordQry = new FinancialChangeRecord();
changeRecordQry.setOrderDetailId(detail.getId()); // changeRecordQry.setOrderDetailId(detail.getId());
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); // List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry);
if (CollectionUtils.isNotEmpty(financialChangeRecords)) { // if (CollectionUtils.isNotEmpty(financialChangeRecords)) {
totalChangeMoney = totalChangeMoney.add(financialChangeRecords.get(0).getChangeMoney()); // totalChangeMoney = totalChangeMoney.add(financialChangeRecords.get(0).getChangeMoney());
} // }
} // }
totalPayMoney = totalPayMoney.add(totalChangeMoney); // totalPayMoney = totalPayMoney.add(totalChangeMoney);
// 地址信息 // 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId()); CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId());
@ -326,7 +328,7 @@ public class OrderMasterController extends BaseController {
orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney()); orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney());
orderListResponse.setTotalMoney(financialMaster.getTotalMoney()); orderListResponse.setTotalMoney(financialMaster.getTotalMoney());
orderListResponse.setPayMoney(totalPayMoney); orderListResponse.setPayMoney(totalPayMoney);
orderListResponse.setChangeMoney(totalChangeMoney); // orderListResponse.setChangeMoney(totalChangeMoney);
orderListResponse.setWorkerName(worker == null ? "" : worker.getName()); orderListResponse.setWorkerName(worker == null ? "" : worker.getName());
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setCustomerName(customerAddress.getName()); orderListResponse.setCustomerName(customerAddress.getName());
@ -408,16 +410,15 @@ public class OrderMasterController extends BaseController {
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(orderDetail.getId()); FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(orderDetail.getId());
BigDecimal detailPayMoney = financialDetail.getPayMoney(); BigDecimal detailPayMoney = financialDetail.getPayMoney();
FinancialChangeRecord financialChangeRecord = null;
// 查询子单加价记录 // 查询子单加价记录
FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); FinancialChangeRecord changeRecordQry = new FinancialChangeRecord();
changeRecordQry.setOrderDetailId(orderDetail.getId()); changeRecordQry.setOrderDetailId(orderDetail.getId());
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry);
if (CollectionUtils.isNotEmpty(financialChangeRecords)) { // if (CollectionUtils.isNotEmpty(financialChangeRecords)) {
financialChangeRecord = financialChangeRecords.get(0); // financialChangeRecord = financialChangeRecords.get(0);
totalPayMoney = totalPayMoney.add(financialChangeRecord.getChangeMoney()); // totalPayMoney = totalPayMoney.add(financialChangeRecord.getChangeMoney());
detailPayMoney = detailPayMoney.add(financialChangeRecord.getChangeMoney()); // detailPayMoney = detailPayMoney.add(financialChangeRecord.getChangeMoney());
} // }
OrderStandardDetail orderStandardDetail = new OrderStandardDetail(); OrderStandardDetail orderStandardDetail = new OrderStandardDetail();
orderStandardDetail.setOrderDetailId(orderDetail.getId()); orderStandardDetail.setOrderDetailId(orderDetail.getId());
@ -433,7 +434,7 @@ public class OrderMasterController extends BaseController {
orderStandardDetail.setFinishImgList(finishImgList); orderStandardDetail.setFinishImgList(finishImgList);
orderStandardDetail.setRemark(orderDetail.getRemark()); orderStandardDetail.setRemark(orderDetail.getRemark());
orderStandardDetail.setPayMoney(detailPayMoney); orderStandardDetail.setPayMoney(detailPayMoney);
orderStandardDetail.setFinancialChangeRecord(financialChangeRecord); orderStandardDetail.setFinancialChangeRecord(financialChangeRecords);
orderStandardDetail.setOrderStatus(orderDetail.getOrderStatus()); orderStandardDetail.setOrderStatus(orderDetail.getOrderStatus());
AfterServiceRecord afterServiceRecord = new AfterServiceRecord(); AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
@ -681,12 +682,12 @@ public class OrderMasterController extends BaseController {
} }
// 查询子单加价记录 // 查询子单加价记录
FinancialChangeRecord changeRecordQry = new FinancialChangeRecord(); // FinancialChangeRecord changeRecordQry = new FinancialChangeRecord();
changeRecordQry.setOrderDetailId(detail.getId()); // changeRecordQry.setOrderDetailId(detail.getId());
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry); // List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectFinancialChangeRecordList(changeRecordQry);
if (CollectionUtils.isNotEmpty(financialChangeRecords)) { // if (CollectionUtils.isNotEmpty(financialChangeRecords)) {
totalMoney = totalMoney.add(financialChangeRecords.get(0).getChangeMoney()); // totalMoney = totalMoney.add(financialChangeRecords.get(0).getChangeMoney());
} // }
OrderStandardDetail detailRes = new OrderStandardDetail(); OrderStandardDetail detailRes = new OrderStandardDetail();
detailRes.setOrderDetailId(detail.getId()); detailRes.setOrderDetailId(detail.getId());

View File

@ -34,7 +34,7 @@ public class OrderStandardDetail {
private BigDecimal payMoney; private BigDecimal payMoney;
private FinancialChangeRecord financialChangeRecord; private List<FinancialChangeRecord> financialChangeRecord;
private String remark; private String remark;

View File

@ -61,6 +61,11 @@ public class AfterServiceRecord extends BaseEntity
@Excel(name = "客户最终确认0为不同意1为同意") @Excel(name = "客户最终确认0为不同意1为同意")
private Long customerFinalCheck; private Long customerFinalCheck;
@Excel(name = "最终原路返还的金额")
private BigDecimal originalRefund;
private boolean excludeAfterServiceFinished;
private List<AfterServiceImgs> imgsList; private List<AfterServiceImgs> imgsList;
@ -172,6 +177,22 @@ public class AfterServiceRecord extends BaseEntity
return customerFinalCheck; return customerFinalCheck;
} }
public BigDecimal getOriginalRefund() {
return originalRefund;
}
public void setOriginalRefund(BigDecimal originalRefund) {
this.originalRefund = originalRefund;
}
public boolean isExcludeAfterServiceFinished() {
return excludeAfterServiceFinished;
}
public void setExcludeAfterServiceFinished(boolean excludeAfterServiceFinished) {
this.excludeAfterServiceFinished = excludeAfterServiceFinished;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -185,12 +206,14 @@ public class AfterServiceRecord extends BaseEntity
.append("workerFeedbackReason", getWorkerFeedbackReason()) .append("workerFeedbackReason", getWorkerFeedbackReason())
.append("refund", getRefund()) .append("refund", getRefund())
.append("agreedRefund", getAgreedRefund()) .append("agreedRefund", getAgreedRefund())
.append("originalRefund", getOriginalRefund())
.append("customerFinalCheck", getCustomerFinalCheck()) .append("customerFinalCheck", getCustomerFinalCheck())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("remark", getRemark()) .append("remark", getRemark())
.append("excludeAfterServiceFinished", isExcludeAfterServiceFinished())
.toString(); .toString();
} }
} }

View File

@ -41,7 +41,7 @@ public interface IAfterServiceRecordService
* @param afterServiceRecord 售后记录 * @param afterServiceRecord 售后记录
* @return 结果 * @return 结果
*/ */
public int updateAfterServiceRecord(AfterServiceRecord afterServiceRecord); public int updateAfterServiceRecord(AfterServiceRecord afterServiceRecord) throws Exception;
/** /**
* 批量删除售后记录 * 批量删除售后记录
@ -58,4 +58,4 @@ public interface IAfterServiceRecordService
* @return 结果 * @return 结果
*/ */
public int deleteAfterServiceRecordById(String id); public int deleteAfterServiceRecordById(String id);
} }

View File

@ -125,7 +125,7 @@ public interface OrderDetailService {
* @param remark 备注 * @param remark 备注
* @return 成功/失败 * @return 成功/失败
*/ */
int changePrice(Long orderDetailId, BigDecimal changeMoney, Integer type, String remark); int changePrice(Long orderDetailId, BigDecimal changeMoney, Integer type, String remark) throws Exception;
int sureChange(Long financialChangeRecordId); int sureChange(Long financialChangeRecordId);

View File

@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject;
import com.ghy.common.adapay.model.AdapayStatusEnum; import com.ghy.common.adapay.model.AdapayStatusEnum;
import com.ghy.common.adapay.model.PaymentDTO; import com.ghy.common.adapay.model.PaymentDTO;
import com.ghy.common.core.domain.AjaxResult; import com.ghy.common.core.domain.AjaxResult;
import com.ghy.common.enums.OrderStatus;
import com.ghy.common.enums.PayStatus; import com.ghy.common.enums.PayStatus;
import com.ghy.common.enums.PayTypeEnum; import com.ghy.common.enums.PayTypeEnum;
import com.ghy.common.exception.base.BaseException; import com.ghy.common.exception.base.BaseException;
@ -30,6 +31,7 @@ import com.ghy.order.mapper.AfterServiceRecordMapper;
import com.ghy.order.domain.AfterServiceRecord; import com.ghy.order.domain.AfterServiceRecord;
import com.ghy.order.service.IAfterServiceRecordService; import com.ghy.order.service.IAfterServiceRecordService;
import com.ghy.common.core.text.Convert; import com.ghy.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert; import org.springframework.util.Assert;
/** /**
@ -120,7 +122,8 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateAfterServiceRecord(AfterServiceRecord param) { @Transactional(rollbackFor = Exception.class)
public int updateAfterServiceRecord(AfterServiceRecord param) throws Exception {
AfterServiceRecord afterServiceRecord = this.selectAfterServiceRecordById(param.getId()); AfterServiceRecord afterServiceRecord = this.selectAfterServiceRecordById(param.getId());
Assert.notNull(afterServiceRecord, "售后记录不存在!"); Assert.notNull(afterServiceRecord, "售后记录不存在!");
// 实际同意,需要发起退款减少原单分账金额-调用退款接口 // 实际同意,需要发起退款减少原单分账金额-调用退款接口
@ -150,22 +153,35 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
financialMaster.setPayMoney(financialMaster.getPayMoney().subtract(refundMoney)); financialMaster.setPayMoney(financialMaster.getPayMoney().subtract(refundMoney));
financialMasterService.updateFinancialMaster(financialMaster); financialMasterService.updateFinancialMaster(financialMaster);
financialDetailService.updateFinancialDetail(financialDetail); financialDetailService.updateFinancialDetail(financialDetail);
}else { param.setOriginalRefund(BigDecimal.ZERO);
} else {
Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员"); Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员");
JSONObject response = null; JSONObject response = null;
try { try {
response = adapayService.payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), String.valueOf(refundMoney)); response = adapayService.payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), String.valueOf(refundMoney));
if (AdapayStatusEnum.succeeded.code.equals(response.getString("status"))) { if (AdapayStatusEnum.pending.code.equals(response.getString("status"))) {
financialMaster.setPayMoney(financialMaster.getPayMoney().subtract(refundMoney)); financialMaster.setPayMoney(financialMaster.getPayMoney().subtract(refundMoney));
financialMasterService.updateFinancialMaster(financialMaster); financialMasterService.updateFinancialMaster(financialMaster);
financialDetailService.updateFinancialDetail(financialDetail); financialDetailService.updateFinancialDetail(financialDetail);
param.setOriginalRefund(refundMoney);
} else if (AdapayStatusEnum.failed.code.equals(response.getString("status"))) { } else if (AdapayStatusEnum.failed.code.equals(response.getString("status"))) {
throw new BaseException(response.getString("error_msg")); throw new BaseException("发起退款异常");
} }
} catch (BaseAdaPayException e) { } catch (BaseAdaPayException e) {
throw new BaseException(e.getMessage()); throw new BaseException(e.getMessage());
} }
} }
// 判断子单payMoney是否已经是0了是的话就修改子单状态为已取消主单状态会随之更改不用做处理
if (financialDetail.getPayMoney().compareTo(BigDecimal.ZERO) == 0) {
OrderDetail orderDetail2Update = new OrderDetail();
orderDetail2Update.setId(orderDetail.getId());
orderDetail2Update.setOrderStatus(OrderStatus.CANCEL.code());
int affectedOrderDetail = orderDetailService.updateOrderDetail(orderDetail);
if (affectedOrderDetail != 1) {
throw new Exception("子订单修改状态为已取消失败。");
}
}
} }
param.setUpdateTime(DateUtils.getNowDate()); param.setUpdateTime(DateUtils.getNowDate());
return afterServiceRecordMapper.updateAfterServiceRecord(param); return afterServiceRecordMapper.updateAfterServiceRecord(param);

View File

@ -360,7 +360,8 @@ public class OrderDetailServiceImpl implements OrderDetailService {
} }
@Override @Override
public int changePrice(Long orderDetailId, BigDecimal changeMoney, Integer type, String remark) { @Transactional(rollbackFor = Exception.class)
public int changePrice(Long orderDetailId, BigDecimal changeMoney, Integer type, String remark) throws Exception {
OrderDetail orderDetail = orderDetailMapper.selectById(orderDetailId); OrderDetail orderDetail = orderDetailMapper.selectById(orderDetailId);
if(orderDetail==null){ if(orderDetail==null){
throw new BaseException("子单不存在!"); throw new BaseException("子单不存在!");
@ -370,13 +371,16 @@ public class OrderDetailServiceImpl implements OrderDetailService {
param.setOrderDetailId(orderDetailId); param.setOrderDetailId(orderDetailId);
List<FinancialChangeRecord> list = financialChangeRecordService.selectFinancialChangeRecordList(param); List<FinancialChangeRecord> list = financialChangeRecordService.selectFinancialChangeRecordList(param);
FinancialChangeRecord financialChangeRecord; FinancialChangeRecord financialChangeRecord;
int affectedRows = 0;
BigDecimal changeMoneyDelta = BigDecimal.ZERO;
if(list.size() > 0){ if(list.size() > 0){
// 修改现有 // 修改现有
financialChangeRecord = list.get(0); financialChangeRecord = list.get(0);
changeMoneyDelta = changeMoney.subtract(financialChangeRecord.getChangeMoney());
financialChangeRecord.setChangeMoney(changeMoney); financialChangeRecord.setChangeMoney(changeMoney);
financialChangeRecord.setType(type); financialChangeRecord.setType(type);
financialChangeRecord.setRemark(remark); financialChangeRecord.setRemark(remark);
return financialChangeRecordService.updateFinancialChangeRecord(financialChangeRecord); affectedRows = financialChangeRecordService.updateFinancialChangeRecord(financialChangeRecord);
}else { }else {
// 创建改单记录 // 创建改单记录
financialChangeRecord = new FinancialChangeRecord(); financialChangeRecord = new FinancialChangeRecord();
@ -386,8 +390,38 @@ public class OrderDetailServiceImpl implements OrderDetailService {
financialChangeRecord.setPayStatus(0L); financialChangeRecord.setPayStatus(0L);
financialChangeRecord.setType(type); financialChangeRecord.setType(type);
financialChangeRecord.setRemark(remark); financialChangeRecord.setRemark(remark);
return financialChangeRecordService.insertFinancialChangeRecord(financialChangeRecord); affectedRows = financialChangeRecordService.insertFinancialChangeRecord(financialChangeRecord);
changeMoneyDelta = changeMoney;
} }
if (affectedRows != 1) {
throw new Exception("加价记录新增或者修改失败");
}
if (changeMoneyDelta.compareTo(BigDecimal.ZERO) != 0) {
// 修改子订单的payMoney
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(orderDetailId);
FinancialDetail financialDetail2Update = new FinancialDetail();
financialDetail2Update.setId(financialDetail.getId());
financialDetail2Update.setPayMoney(financialDetail.getPayMoney().add(changeMoneyDelta));
financialDetail2Update.setPayStatus(PayStatus.WAIT_PAY.getCode());
int affectedFinancialDetail = financialDetailService.updateFinancialDetail(financialDetail2Update);
if (affectedFinancialDetail != 1) {
throw new Exception("修改子订单payMoney失败,待修改信息:" + financialDetail2Update);
}
// 修改主单的payMoney
FinancialMaster financialMaster = financialMasterService.selectById(financialDetail.getFinancialMasterId());
FinancialMaster financialMaster2Update = new FinancialMaster();
financialMaster2Update.setId(financialMaster.getId());
financialMaster2Update.setPayMoney(financialMaster.getPayMoney().add(changeMoneyDelta));
financialMaster2Update.setPayStatus(PayStatus.WAIT_PAY.getCode());
int affectedFinancialMaster = financialMasterService.updateFinancialMaster(financialMaster2Update);
if (affectedFinancialMaster != 1) {
throw new Exception("修改主订单payMoney失败,待修改信息:" + financialMaster2Update);
}
}
return affectedRows;
} }
@Override @Override

View File

@ -21,10 +21,11 @@
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="originalRefund" column="original_refund" />
</resultMap> </resultMap>
<sql id="selectAfterServiceRecordVo"> <sql id="selectAfterServiceRecordVo">
select id, customer_reason_type, customer_reason, order_detail_id, oper_type, worker_feedback_result, worker_feedback_reason_type, worker_feedback_reason, refund, agreed_refund, customer_final_check, create_by, create_time, update_by, update_time, remark from after_service_record select id, customer_reason_type, customer_reason, order_detail_id, oper_type, worker_feedback_result, worker_feedback_reason_type, worker_feedback_reason, refund, agreed_refund, original_refund, customer_final_check, create_by, create_time, update_by, update_time, remark from after_service_record
</sql> </sql>
<select id="selectAfterServiceRecordList" parameterType="AfterServiceRecord" resultMap="AfterServiceRecordResult"> <select id="selectAfterServiceRecordList" parameterType="AfterServiceRecord" resultMap="AfterServiceRecordResult">
@ -40,9 +41,9 @@
<if test="refund != null "> and refund = #{refund}</if> <if test="refund != null "> and refund = #{refund}</if>
<if test="agreedRefund != null "> and agreed_refund = #{agreedRefund}</if> <if test="agreedRefund != null "> and agreed_refund = #{agreedRefund}</if>
<if test="customerFinalCheck != null "> and customer_final_check = #{customerFinalCheck}</if> <if test="customerFinalCheck != null "> and customer_final_check = #{customerFinalCheck}</if>
<!-- <if test="customerFinalCheck == null">--> <if test="excludeAfterServiceFinished">
<!-- and ( customer_final_check = '0' or customer_final_check is null )--> and ( customer_final_check = '0' or customer_final_check is null )
<!-- </if>--> </if>
</where> </where>
</select> </select>