Merge branch 'master' of https://gitee.com/op-souls/ghy-all
This commit is contained in:
commit
94852f198a
|
|
@ -87,7 +87,7 @@ public class AfterServiceRecordController extends BaseController {
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult export(AfterServiceRecord afterServiceRecord) {
|
public AjaxResult export(AfterServiceRecord afterServiceRecord) {
|
||||||
List<AfterServiceRecord> list = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
List<AfterServiceRecord> list = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
||||||
ExcelUtil<AfterServiceRecord> util = new ExcelUtil<AfterServiceRecord>(AfterServiceRecord.class);
|
ExcelUtil<AfterServiceRecord> util = new ExcelUtil<>(AfterServiceRecord.class);
|
||||||
return util.exportExcel(list, "售后记录数据");
|
return util.exportExcel(list, "售后记录数据");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -308,7 +308,10 @@ public class OrderController extends BaseController {
|
||||||
// 自己接单 子单金额=0
|
// 自己接单 子单金额=0
|
||||||
request.setTotalPay(BigDecimal.ZERO);
|
request.setTotalPay(BigDecimal.ZERO);
|
||||||
} else {
|
} else {
|
||||||
Assert.isTrue(fm.getServerMoney().compareTo(request.getTotalPay()) < 0, "派单金额不能大于订单总金额");
|
if (fm.getServerMoney().compareTo(request.getTotalPay()) < 0) {
|
||||||
|
logger.warn("派单金额[{}]大于订单总金额[{}]", request.getTotalPay(), fm.getServerMoney());
|
||||||
|
return AjaxResult.error("派单金额不能大于订单总金额");
|
||||||
|
}
|
||||||
boolean checkInTeam = workerService.checkInTeam(assignWorker.getWorkerId(), acceptWorker.getWorkerId());
|
boolean checkInTeam = workerService.checkInTeam(assignWorker.getWorkerId(), acceptWorker.getWorkerId());
|
||||||
Assert.isTrue(checkInTeam, "接单师傅不在本团队");
|
Assert.isTrue(checkInTeam, "接单师傅不在本团队");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ public class WorkerBankController extends BaseController {
|
||||||
public AjaxResult bindBankCard(@RequestBody @Valid WorkerBindBankCardRequest request) throws BaseAdaPayException {
|
public AjaxResult bindBankCard(@RequestBody @Valid WorkerBindBankCardRequest request) throws BaseAdaPayException {
|
||||||
// 判断师傅是否已经审核通过,未通过审核不能绑定银行卡
|
// 判断师傅是否已经审核通过,未通过审核不能绑定银行卡
|
||||||
WorkerCertification workerCertification = workerCertificationService.selectByWorkerId(request.getWorkerId());
|
WorkerCertification workerCertification = workerCertificationService.selectByWorkerId(request.getWorkerId());
|
||||||
if (workerCertification != null && workerCertification.getStatus() == 1) {
|
if (workerCertification != null && workerCertification.getStatus() == 2) {
|
||||||
return AjaxResult.error("师傅未通过审核,不能绑定银行卡");
|
return AjaxResult.error("师傅未通过审核,不能绑定银行卡");
|
||||||
}
|
}
|
||||||
Set<Merchant> merchants = AdapayConfig.getMerchants();
|
Set<Merchant> merchants = AdapayConfig.getMerchants();
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
|
|
||||||
<div class="btn-group-sm" id="toolbar" role="group">
|
<div class="btn-group-sm" id="toolbar" role="group">
|
||||||
<a class="btn btn-primary" onclick="$.operate.add(2)" shiro:hasPermission="goods:category:add">
|
<a class="btn btn-primary" onclick="$.operate.add(2)" shiro:hasPermission="goods:category:add">
|
||||||
<i class="fa fa-edit"></i> 修改
|
<i class="fa fa-edit"></i> 添加/修改
|
||||||
</a>
|
</a>
|
||||||
<a class="btn btn-info" id="expandAllBtn">
|
<a class="btn btn-info" id="expandAllBtn">
|
||||||
<i class="fa fa-exchange"></i> 展开/折叠
|
<i class="fa fa-exchange"></i> 展开/折叠
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
<div class="btn-group-sm" id="toolbar" role="group">
|
<div class="btn-group-sm" id="toolbar" role="group">
|
||||||
<a class="btn btn-primary" onclick="$.operate.add(1)" shiro:hasPermission="goods:category:add">
|
<a class="btn btn-primary" onclick="$.operate.add(1)" shiro:hasPermission="goods:category:add">
|
||||||
<i class="fa fa-edit"></i> 修改
|
<i class="fa fa-edit"></i> 添加/修改
|
||||||
</a>
|
</a>
|
||||||
<a class="btn btn-info" id="expandAllBtn">
|
<a class="btn btn-info" id="expandAllBtn">
|
||||||
<i class="fa fa-exchange"></i> 展开/折叠
|
<i class="fa fa-exchange"></i> 展开/折叠
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,8 @@ public class AfterServiceRecord extends BaseEntity
|
||||||
@Excel(name = "操作原因:1为申请退款,2为发起售后")
|
@Excel(name = "操作原因:1为申请退款,2为发起售后")
|
||||||
private Long operType;
|
private Long operType;
|
||||||
|
|
||||||
/** 师傅反馈结果:0为拒绝,1为同意 */
|
/** 师傅反馈结果:0为拒绝,1为同意,2为上门补做/重做 */
|
||||||
@Excel(name = "师傅反馈结果:0为拒绝,1为同意")
|
@Excel(name = "师傅反馈结果:0为拒绝,1为同意,2为上门补做/重做")
|
||||||
private Long workerFeedbackResult;
|
private Long workerFeedbackResult;
|
||||||
|
|
||||||
/** 师傅反馈原因类型:1为客户原因,2为师傅原因,3为其他 */
|
/** 师傅反馈原因类型:1为客户原因,2为师傅原因,3为其他 */
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,23 @@
|
||||||
package com.ghy.order.mapper;
|
package com.ghy.order.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import com.ghy.order.domain.AfterServiceRecord;
|
import com.ghy.order.domain.AfterServiceRecord;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 售后记录Mapper接口
|
* 售后记录Mapper接口
|
||||||
*
|
*
|
||||||
* @author clunt
|
* @author clunt
|
||||||
* @date 2022-09-25
|
* @date 2022-09-25
|
||||||
*/
|
*/
|
||||||
public interface AfterServiceRecordMapper
|
public interface AfterServiceRecordMapper {
|
||||||
{
|
|
||||||
/**
|
/**
|
||||||
* 查询售后记录
|
* 查询售后记录
|
||||||
*
|
*
|
||||||
* @param id 售后记录主键
|
* @param id 售后记录主键
|
||||||
* @return 售后记录
|
* @return 售后记录
|
||||||
*/
|
*/
|
||||||
public AfterServiceRecord selectAfterServiceRecordById(String id);
|
AfterServiceRecord selectAfterServiceRecordById(String id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询售后记录列表
|
* 查询售后记录列表
|
||||||
|
|
@ -25,7 +25,7 @@ public interface AfterServiceRecordMapper
|
||||||
* @param afterServiceRecord 售后记录
|
* @param afterServiceRecord 售后记录
|
||||||
* @return 售后记录集合
|
* @return 售后记录集合
|
||||||
*/
|
*/
|
||||||
public List<AfterServiceRecord> selectAfterServiceRecordList(AfterServiceRecord afterServiceRecord);
|
List<AfterServiceRecord> selectAfterServiceRecordList(AfterServiceRecord afterServiceRecord);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增售后记录
|
* 新增售后记录
|
||||||
|
|
@ -33,7 +33,7 @@ public interface AfterServiceRecordMapper
|
||||||
* @param afterServiceRecord 售后记录
|
* @param afterServiceRecord 售后记录
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int insertAfterServiceRecord(AfterServiceRecord afterServiceRecord);
|
int insertAfterServiceRecord(AfterServiceRecord afterServiceRecord);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改售后记录
|
* 修改售后记录
|
||||||
|
|
@ -41,7 +41,7 @@ public interface AfterServiceRecordMapper
|
||||||
* @param afterServiceRecord 售后记录
|
* @param afterServiceRecord 售后记录
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int updateAfterServiceRecord(AfterServiceRecord afterServiceRecord);
|
int updateAfterServiceRecord(AfterServiceRecord afterServiceRecord);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除售后记录
|
* 删除售后记录
|
||||||
|
|
@ -49,7 +49,7 @@ public interface AfterServiceRecordMapper
|
||||||
* @param id 售后记录主键
|
* @param id 售后记录主键
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteAfterServiceRecordById(String id);
|
int deleteAfterServiceRecordById(String id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除售后记录
|
* 批量删除售后记录
|
||||||
|
|
@ -57,5 +57,12 @@ public interface AfterServiceRecordMapper
|
||||||
* @param ids 需要删除的数据主键集合
|
* @param ids 需要删除的数据主键集合
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteAfterServiceRecordByIds(String[] ids);
|
int deleteAfterServiceRecordByIds(String[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询未完成的售后记录 customer_final_check IS NULL
|
||||||
|
*
|
||||||
|
* @return 未完成的售后记录
|
||||||
|
*/
|
||||||
|
AfterServiceRecord unfinished(Long orderDetailId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,17 +6,23 @@ import com.ghy.common.core.text.Convert;
|
||||||
import com.ghy.common.enums.PayStatus;
|
import com.ghy.common.enums.PayStatus;
|
||||||
import com.ghy.common.enums.RefundType;
|
import com.ghy.common.enums.RefundType;
|
||||||
import com.ghy.common.exception.base.BaseException;
|
import com.ghy.common.exception.base.BaseException;
|
||||||
import com.ghy.common.utils.DateUtils;
|
|
||||||
import com.ghy.common.utils.ObjectUtils;
|
import com.ghy.common.utils.ObjectUtils;
|
||||||
import com.ghy.order.domain.*;
|
import com.ghy.order.domain.AfterServiceImgs;
|
||||||
|
import com.ghy.order.domain.AfterServiceRecord;
|
||||||
|
import com.ghy.order.domain.OrderDetail;
|
||||||
|
import com.ghy.order.domain.OrderMaster;
|
||||||
import com.ghy.order.mapper.AfterServiceRecordMapper;
|
import com.ghy.order.mapper.AfterServiceRecordMapper;
|
||||||
import com.ghy.order.service.*;
|
import com.ghy.order.service.IAfterServiceImgsService;
|
||||||
|
import com.ghy.order.service.IAfterServiceRecordService;
|
||||||
|
import com.ghy.order.service.OrderDetailService;
|
||||||
|
import com.ghy.order.service.OrderMasterService;
|
||||||
import com.ghy.payment.domain.FinancialDetail;
|
import com.ghy.payment.domain.FinancialDetail;
|
||||||
import com.ghy.payment.domain.FinancialMaster;
|
import com.ghy.payment.domain.FinancialMaster;
|
||||||
import com.ghy.payment.service.AdapayService;
|
import com.ghy.payment.service.AdapayService;
|
||||||
import com.ghy.payment.service.FinancialDetailService;
|
import com.ghy.payment.service.FinancialDetailService;
|
||||||
import com.ghy.payment.service.FinancialMasterService;
|
import com.ghy.payment.service.FinancialMasterService;
|
||||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
@ -25,7 +31,6 @@ import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 售后记录Service业务层处理
|
* 售后记录Service业务层处理
|
||||||
|
|
@ -33,6 +38,7 @@ import java.util.Objects;
|
||||||
* @author clunt
|
* @author clunt
|
||||||
* @date 2022-09-25
|
* @date 2022-09-25
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService {
|
public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService {
|
||||||
@Resource
|
@Resource
|
||||||
|
|
@ -49,8 +55,6 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
||||||
private AdapayService adapayService;
|
private AdapayService adapayService;
|
||||||
@Resource
|
@Resource
|
||||||
private OrderDetailService orderDetailService;
|
private OrderDetailService orderDetailService;
|
||||||
@Resource
|
|
||||||
private OrderGoodsService orderGoodsService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询售后记录
|
* 查询售后记录
|
||||||
|
|
@ -88,7 +92,10 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int insertAfterServiceRecord(AfterServiceRecord afterServiceRecord) {
|
public int insertAfterServiceRecord(AfterServiceRecord afterServiceRecord) {
|
||||||
afterServiceRecord.setCreateTime(DateUtils.getNowDate());
|
AfterServiceRecord unfinished = unfinished(afterServiceRecord.getOrderDetailId());
|
||||||
|
if (unfinished != null) {
|
||||||
|
throw new BaseException("存在未完成的售后记录,请勿重复申请!");
|
||||||
|
}
|
||||||
int result = afterServiceRecordMapper.insertAfterServiceRecord(afterServiceRecord);
|
int result = afterServiceRecordMapper.insertAfterServiceRecord(afterServiceRecord);
|
||||||
|
|
||||||
if (afterServiceRecord.getImgsList() != null && afterServiceRecord.getImgsList().size() > 0) {
|
if (afterServiceRecord.getImgsList() != null && afterServiceRecord.getImgsList().size() > 0) {
|
||||||
|
|
@ -100,6 +107,15 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询未完成的售后记录 用于判断是否可以申请售后
|
||||||
|
*
|
||||||
|
* @return 未完成的售后记录
|
||||||
|
*/
|
||||||
|
public AfterServiceRecord unfinished(Long orderDetailId) {
|
||||||
|
return afterServiceRecordMapper.unfinished(orderDetailId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改售后记录
|
* 修改售后记录
|
||||||
*
|
*
|
||||||
|
|
@ -111,53 +127,59 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
||||||
public int updateAfterServiceRecord(AfterServiceRecord param) throws BaseAdaPayException {
|
public int updateAfterServiceRecord(AfterServiceRecord param) throws BaseAdaPayException {
|
||||||
AfterServiceRecord afterServiceRecord = this.selectAfterServiceRecordById(param.getId());
|
AfterServiceRecord afterServiceRecord = this.selectAfterServiceRecordById(param.getId());
|
||||||
Assert.notNull(afterServiceRecord, "售后记录不存在!");
|
Assert.notNull(afterServiceRecord, "售后记录不存在!");
|
||||||
// 实际同意,需要发起退款,减少原单分账金额-调用退款接口
|
if (Long.valueOf(1L).equals(param.getCustomerFinalCheck()) && Long.valueOf(1L).equals(afterServiceRecord.getWorkerFeedbackResult())) {
|
||||||
if (param.getCustomerFinalCheck() != null && param.getCustomerFinalCheck() == 1) {
|
// 客户同意退款
|
||||||
OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId());
|
afterServiceRecord.setCustomerFinalCheck(1L);
|
||||||
Assert.notNull(orderDetail, "子单不存在!");
|
return agreeRefund(afterServiceRecord);
|
||||||
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(afterServiceRecord.getOrderDetailId());
|
} else {
|
||||||
Assert.notNull(financialDetail, "财务子单不存在!");
|
return afterServiceRecordMapper.updateAfterServiceRecord(param);
|
||||||
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
|
|
||||||
Assert.notNull(orderMaster, "找不到对应的订单");
|
|
||||||
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderDetail.getOrderMasterId());
|
|
||||||
Assert.notNull(financialMaster, "找不到支付记录");
|
|
||||||
Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员");
|
|
||||||
Assert.isTrue(PayStatus.PAID.getCode().equals(financialMaster.getPayStatus()), "订单未支付");
|
|
||||||
// 申请退款金额
|
|
||||||
BigDecimal refundMoney;
|
|
||||||
if (ObjectUtils.isNotEmpty(afterServiceRecord.getAgreedRefund())) {
|
|
||||||
refundMoney = afterServiceRecord.getAgreedRefund();
|
|
||||||
} else {
|
|
||||||
refundMoney = afterServiceRecord.getRefund();
|
|
||||||
}
|
|
||||||
if (refundMoney.compareTo(financialDetail.getPayMoney()) < 0) {
|
|
||||||
// 申请退款金额 < 子单金额
|
|
||||||
financialDetail.setPayMoney(financialDetail.getPayMoney().subtract(refundMoney));
|
|
||||||
financialMaster.setPayMoney(financialMaster.getPayMoney().subtract(refundMoney));
|
|
||||||
// 更新主/子财务单金额
|
|
||||||
financialMasterService.updateFinancialMaster(financialMaster);
|
|
||||||
financialDetailService.updateFinancialDetail(financialDetail);
|
|
||||||
// 发起支付撤销
|
|
||||||
JSONObject response = adapayService.payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(),
|
|
||||||
String.valueOf(refundMoney), RefundType.RAS);
|
|
||||||
if (AdapayStatusEnum.pending.code.equals(response.getString("status"))) {
|
|
||||||
param.setOriginalRefund(refundMoney);
|
|
||||||
param.setRefundApplyTime(new Date());
|
|
||||||
} else {
|
|
||||||
if ("reverse_amt_over".equals(response.getString("error_code"))) {
|
|
||||||
throw new BaseException("退款金额超出订单金额");
|
|
||||||
} else {
|
|
||||||
throw new BaseException("发起退款异常");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 子单全额退款 直接走取消流程
|
|
||||||
orderDetailService.cancelAgree(orderDetail.getId(), 1);
|
|
||||||
param.setOriginalRefund(financialDetail.getPayMoney());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
param.setUpdateTime(new Date());
|
}
|
||||||
return afterServiceRecordMapper.updateAfterServiceRecord(param);
|
|
||||||
|
private int agreeRefund(AfterServiceRecord afterServiceRecord) throws BaseAdaPayException {
|
||||||
|
OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId());
|
||||||
|
Assert.notNull(orderDetail, "子单不存在!");
|
||||||
|
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(afterServiceRecord.getOrderDetailId());
|
||||||
|
Assert.notNull(financialDetail, "财务子单不存在!");
|
||||||
|
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
|
||||||
|
Assert.notNull(orderMaster, "找不到对应的订单");
|
||||||
|
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderDetail.getOrderMasterId());
|
||||||
|
Assert.notNull(financialMaster, "找不到支付记录");
|
||||||
|
Assert.hasText(financialMaster.getPaymentId(), "找不到订单的支付记录,请联系管理员");
|
||||||
|
Assert.isTrue(PayStatus.PAID.getCode().equals(financialMaster.getPayStatus()), "订单未支付");
|
||||||
|
// 申请退款金额
|
||||||
|
BigDecimal refundMoney;
|
||||||
|
if (ObjectUtils.isNotEmpty(afterServiceRecord.getAgreedRefund())) {
|
||||||
|
refundMoney = afterServiceRecord.getAgreedRefund();
|
||||||
|
} else {
|
||||||
|
refundMoney = afterServiceRecord.getRefund();
|
||||||
|
}
|
||||||
|
if (refundMoney.compareTo(financialDetail.getPayMoney()) < 0) {
|
||||||
|
// 申请退款金额 < 子单金额
|
||||||
|
afterServiceRecord.setOriginalRefund(refundMoney);
|
||||||
|
financialDetail.setPayMoney(financialDetail.getPayMoney().subtract(refundMoney));
|
||||||
|
financialMaster.setPayMoney(financialMaster.getPayMoney().subtract(refundMoney));
|
||||||
|
// 更新主/子财务单金额
|
||||||
|
financialMasterService.updateFinancialMaster(financialMaster);
|
||||||
|
financialDetailService.updateFinancialDetail(financialDetail);
|
||||||
|
// 发起支付撤销
|
||||||
|
JSONObject response = adapayService.payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(),
|
||||||
|
String.valueOf(refundMoney), RefundType.RAS);
|
||||||
|
if (!AdapayStatusEnum.pending.code.equals(response.getString("status"))) {
|
||||||
|
log.error("发起退款异常,异常信息:{}", response);
|
||||||
|
if ("reverse_amt_over".equals(response.getString("error_code"))) {
|
||||||
|
throw new BaseException("退款金额超出订单金额");
|
||||||
|
} else {
|
||||||
|
throw new BaseException("发起退款失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 子单全额退款 直接走取消流程
|
||||||
|
orderDetailService.cancelAgree(orderDetail.getId(), 1);
|
||||||
|
afterServiceRecord.setOriginalRefund(financialDetail.getPayMoney());
|
||||||
|
}
|
||||||
|
afterServiceRecord.setRefundApplyTime(new Date());
|
||||||
|
return afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -168,7 +190,6 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int deleteAfterServiceRecordByIds(String ids) {
|
public int deleteAfterServiceRecordByIds(String ids) {
|
||||||
|
|
||||||
return afterServiceRecordMapper.deleteAfterServiceRecordByIds(Convert.toStrArray(ids));
|
return afterServiceRecordMapper.deleteAfterServiceRecordByIds(Convert.toStrArray(ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -183,33 +204,4 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
||||||
return afterServiceRecordMapper.deleteAfterServiceRecordById(id);
|
return afterServiceRecordMapper.deleteAfterServiceRecordById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkIsOnlyServer(Long orderMasterId, Long workId) {
|
|
||||||
// 找出原单的数量
|
|
||||||
List<OrderGoods> orderGoodsList = orderGoodsService.selectByOrderMasterId(orderMasterId);
|
|
||||||
// 找出原单关联的细单的商品数量
|
|
||||||
List<OrderDetail> orderDetailList = orderDetailService.selectByOrderMasterId(orderMasterId);
|
|
||||||
for (OrderDetail detail : orderDetailList) {
|
|
||||||
// 非一个师傅接单
|
|
||||||
if (!workId.equals(detail.getWorkerId())) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// 子单数量
|
|
||||||
List<OrderGoods> orderDetailGoodsList = orderGoodsService.selectByOrderDetailId(detail.getId());
|
|
||||||
// 计算剩余未分配的商品数量
|
|
||||||
for (OrderGoods detailGoods : orderDetailGoodsList) {
|
|
||||||
for (OrderGoods masterGoods : orderGoodsList) {
|
|
||||||
if (Objects.equals(masterGoods.getGoodsStandardId(), detailGoods.getGoodsStandardId())) {
|
|
||||||
masterGoods.setGoodsNum(masterGoods.getGoodsNum() - detailGoods.getGoodsNum());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 有单派完.
|
|
||||||
for (OrderGoods orderGoods : orderGoodsList) {
|
|
||||||
if (orderGoods.getGoodsNum() > 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -309,8 +309,11 @@ public class OrderMasterServiceImpl implements OrderMasterService {
|
||||||
update.setOrderMasterId(orderMasterId);
|
update.setOrderMasterId(orderMasterId);
|
||||||
update.setOrderStatus(OrderStatus.CANCEL.code());
|
update.setOrderStatus(OrderStatus.CANCEL.code());
|
||||||
orderDetailService.updateByOrderMasterId(update);
|
orderDetailService.updateByOrderMasterId(update);
|
||||||
// 发起退款
|
// 发起退款 -- 如果是未付款的单,不需要退款
|
||||||
refund(orderMaster);
|
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderMasterId);
|
||||||
|
if(PayStatus.PAID.getCode().equals(financialMaster.getPayStatus())){
|
||||||
|
refund(orderMaster);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 2: // 待上门状态需要师傅同意才能取消
|
case 2: // 待上门状态需要师傅同意才能取消
|
||||||
updateStatus(orderMasterId, OrderStatus.GOING_CANCEL.code());
|
updateStatus(orderMasterId, OrderStatus.GOING_CANCEL.code());
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,10 @@
|
||||||
</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, original_refund, customer_final_check, create_by, create_time, update_by, update_time, remark, refund_apply_time 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, refund_apply_time
|
||||||
|
from after_service_record
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectAfterServiceRecordList" parameterType="AfterServiceRecord" resultMap="AfterServiceRecordResult">
|
<select id="selectAfterServiceRecordList" parameterType="AfterServiceRecord" resultMap="AfterServiceRecordResult">
|
||||||
|
|
@ -53,6 +56,11 @@
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="unfinished" resultMap="AfterServiceRecordResult" parameterType="Long">
|
||||||
|
<include refid="selectAfterServiceRecordVo"/>
|
||||||
|
WHERE order_detail_id = #{orderDetailId} AND customer_final_check IS NULL
|
||||||
|
</select>
|
||||||
|
|
||||||
<insert id="insertAfterServiceRecord" parameterType="AfterServiceRecord" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insertAfterServiceRecord" parameterType="AfterServiceRecord" useGeneratedKeys="true" keyProperty="id">
|
||||||
insert into after_service_record
|
insert into after_service_record
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
|
@ -67,10 +75,9 @@
|
||||||
<if test="agreedRefund != null">agreed_refund,</if>
|
<if test="agreedRefund != null">agreed_refund,</if>
|
||||||
<if test="customerFinalCheck != null">customer_final_check,</if>
|
<if test="customerFinalCheck != null">customer_final_check,</if>
|
||||||
<if test="createBy != null">create_by,</if>
|
<if test="createBy != null">create_by,</if>
|
||||||
<if test="createTime != null">create_time,</if>
|
|
||||||
<if test="updateBy != null">update_by,</if>
|
<if test="updateBy != null">update_by,</if>
|
||||||
<if test="updateTime != null">update_time,</if>
|
|
||||||
<if test="remark != null">remark,</if>
|
<if test="remark != null">remark,</if>
|
||||||
|
createTime, updateTime
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="customerReasonType != null">#{customerReasonType},</if>
|
<if test="customerReasonType != null">#{customerReasonType},</if>
|
||||||
|
|
@ -84,10 +91,9 @@
|
||||||
<if test="agreedRefund != null">#{agreedRefund},</if>
|
<if test="agreedRefund != null">#{agreedRefund},</if>
|
||||||
<if test="customerFinalCheck != null">#{customerFinalCheck},</if>
|
<if test="customerFinalCheck != null">#{customerFinalCheck},</if>
|
||||||
<if test="createBy != null">#{createBy},</if>
|
<if test="createBy != null">#{createBy},</if>
|
||||||
<if test="createTime != null">#{createTime},</if>
|
|
||||||
<if test="updateBy != null">#{updateBy},</if>
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
<if test="updateTime != null">#{updateTime},</if>
|
|
||||||
<if test="remark != null">#{remark},</if>
|
<if test="remark != null">#{remark},</if>
|
||||||
|
NOW(), NOW()
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
|
@ -109,8 +115,8 @@
|
||||||
<if test="createBy != null">create_by = #{createBy},</if>
|
<if test="createBy != null">create_by = #{createBy},</if>
|
||||||
<if test="createTime != null">create_time = #{createTime},</if>
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
|
||||||
<if test="remark != null">remark = #{remark},</if>
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
|
update_time = NOW()
|
||||||
</trim>
|
</trim>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue