分帐后也能同意退款,但是退款0元

This commit is contained in:
Hawking 2023-04-20 22:33:06 +08:00
parent 0a82851e2c
commit 777178cc45
3 changed files with 29 additions and 18 deletions

View File

@ -134,7 +134,7 @@ public class AfterServiceRecordController extends BaseController {
public AjaxResult editSave(@RequestBody AfterServiceRecord afterServiceRecord) {
logger.info("修改售后记录:{}", afterServiceRecord);
try {
return toAjax(afterServiceRecordService.updateAfterServiceRecord(afterServiceRecord));
return afterServiceRecordService.updateAfterServiceRecord(afterServiceRecord);
} catch (Exception exception) {
logger.error(ExceptionUtils.getStackTrace(exception));
return AjaxResult.error(exception.getMessage());

View File

@ -1,23 +1,24 @@
package com.ghy.order.service;
import java.util.List;
import com.ghy.common.core.domain.AjaxResult;
import com.ghy.order.domain.AfterServiceRecord;
import java.util.List;
/**
* 售后记录Service接口
*
* @author clunt
* @date 2022-09-25
*/
public interface IAfterServiceRecordService
{
public interface IAfterServiceRecordService {
/**
* 查询售后记录
*
* @param id 售后记录主键
* @return 售后记录
*/
public AfterServiceRecord selectAfterServiceRecordById(String id);
AfterServiceRecord selectAfterServiceRecordById(String id);
/**
* 查询售后记录列表
@ -25,7 +26,7 @@ public interface IAfterServiceRecordService
* @param afterServiceRecord 售后记录
* @return 售后记录集合
*/
public List<AfterServiceRecord> selectAfterServiceRecordList(AfterServiceRecord afterServiceRecord);
List<AfterServiceRecord> selectAfterServiceRecordList(AfterServiceRecord afterServiceRecord);
/**
* 新增售后记录
@ -33,7 +34,7 @@ public interface IAfterServiceRecordService
* @param afterServiceRecord 售后记录
* @return 结果
*/
public int insertAfterServiceRecord(AfterServiceRecord afterServiceRecord);
int insertAfterServiceRecord(AfterServiceRecord afterServiceRecord);
/**
* 修改售后记录
@ -41,7 +42,7 @@ public interface IAfterServiceRecordService
* @param afterServiceRecord 售后记录
* @return 结果
*/
public int updateAfterServiceRecord(AfterServiceRecord afterServiceRecord) throws Exception;
AjaxResult updateAfterServiceRecord(AfterServiceRecord afterServiceRecord) throws Exception;
/**
* 批量删除售后记录
@ -49,7 +50,7 @@ public interface IAfterServiceRecordService
* @param ids 需要删除的售后记录主键集合
* @return 结果
*/
public int deleteAfterServiceRecordByIds(String ids);
int deleteAfterServiceRecordByIds(String ids);
/**
* 删除售后记录信息
@ -57,5 +58,5 @@ public interface IAfterServiceRecordService
* @param id 售后记录主键
* @return 结果
*/
public int deleteAfterServiceRecordById(String id);
int deleteAfterServiceRecordById(String id);
}

View File

@ -2,6 +2,7 @@ package com.ghy.order.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.ghy.common.adapay.model.AdapayStatusEnum;
import com.ghy.common.core.domain.AjaxResult;
import com.ghy.common.core.text.Convert;
import com.ghy.common.enums.PayStatus;
import com.ghy.common.enums.RefundType;
@ -126,23 +127,32 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int updateAfterServiceRecord(AfterServiceRecord param) throws BaseAdaPayException {
public AjaxResult updateAfterServiceRecord(AfterServiceRecord param) throws BaseAdaPayException {
AfterServiceRecord afterServiceRecord = this.selectAfterServiceRecordById(param.getId());
Assert.notNull(afterServiceRecord, "售后记录不存在!");
if (Long.valueOf(1L).equals(param.getCustomerFinalCheck()) && Long.valueOf(1L).equals(afterServiceRecord.getWorkerFeedbackResult())) {
// 客户同意退款
afterServiceRecord.setCustomerFinalCheck(1L);
return agreeRefund(afterServiceRecord);
afterServiceRecord.setRefundApplyTime(new Date());
OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId());
// DrawCashTime不为空说明已经发起过分账
if (orderDetail.getDrawCashTime() != null) {
log.warn("子单[{}]已发起分账,不能退款", afterServiceRecord.getOrderDetailId());
afterServiceRecord.setOriginalRefund(BigDecimal.ZERO);
afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
return AjaxResult.error("本单已划款,师傅/服务人员已到帐或即将到帐,双方达成退款的,请对方线下支付后点“对方已退款”");
} else {
agreeRefund(afterServiceRecord);
}
} else {
return afterServiceRecordMapper.updateAfterServiceRecord(param);
afterServiceRecordMapper.updateAfterServiceRecord(param);
}
return AjaxResult.success();
}
private int agreeRefund(AfterServiceRecord afterServiceRecord) throws BaseAdaPayException {
OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId());
Assert.notNull(orderDetail, "子单不存在!");
// DrawCashTime不为空说明已经发起过分账
Assert.isTrue(orderDetail.getDrawCashTime() == null, "子单已发起分账,请联系师傅处理线下售后!");
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(afterServiceRecord.getOrderDetailId());
Assert.notNull(financialDetail, "财务子单不存在!");
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
@ -190,7 +200,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
financialMasterService.updateFinancialMaster(financialMaster);
// 发起支付撤销
if(payReverse){
if (payReverse) {
payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), reverseAmt);
}
} else {
@ -201,7 +211,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
financialMasterService.updateFinancialMaster(financialMaster);
String reverseAmt = AdapayUtils.bigDecimalToString(refundMoney);
// 发起支付撤销
if(payReverse){
if (payReverse) {
payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), reverseAmt);
}
}
@ -220,7 +230,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
financialDetailService.updateFinancialDetail(financialDetail);
// 发起支付撤销
if(payReverse){
if (payReverse) {
String reverseAmt = AdapayUtils.bigDecimalToString(financialMaster.getServerMoney());
payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), reverseAmt);
}