单师傅全额退款逻辑
This commit is contained in:
parent
73e9017b7b
commit
1a29d4d327
|
|
@ -26,9 +26,11 @@ import com.ghy.order.request.OrderProcessRequest;
|
|||
import com.ghy.order.service.*;
|
||||
import com.ghy.payment.domain.FinancialChangeRecord;
|
||||
import com.ghy.payment.domain.FinancialDetail;
|
||||
import com.ghy.payment.domain.FinancialMaster;
|
||||
import com.ghy.payment.domain.OrderTimeoutRecord;
|
||||
import com.ghy.payment.service.FinancialChangeRecordService;
|
||||
import com.ghy.payment.service.FinancialDetailService;
|
||||
import com.ghy.payment.service.FinancialMasterService;
|
||||
import com.ghy.payment.service.OrderFineRecordService;
|
||||
import com.ghy.system.domain.SysArea;
|
||||
import com.ghy.system.service.ISysAreaService;
|
||||
|
|
@ -99,6 +101,8 @@ public class OrderDetailController extends BaseController {
|
|||
private IWorkerCertificationService workerCertificationService;
|
||||
@Autowired
|
||||
private IOrderAssessLabelService orderAssessLabelService;
|
||||
@Autowired
|
||||
private FinancialMasterService financialMasterService;
|
||||
|
||||
@RequiresPermissions("order:detail:view")
|
||||
@GetMapping()
|
||||
|
|
@ -123,6 +127,7 @@ public class OrderDetailController extends BaseController {
|
|||
OrderDetail detail = orderDetailService.selectById(request.getId());
|
||||
// 主单信息
|
||||
OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId());
|
||||
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderMaster.getId());
|
||||
// 初始化属性
|
||||
OrderListResponse orderListResponse = new OrderListResponse();
|
||||
List<OrderStandard> standardList = new ArrayList<>();
|
||||
|
|
@ -192,7 +197,18 @@ public class OrderDetailController extends BaseController {
|
|||
orderStandard.setWaitServerNum(orderStandard.getStandardNum() - orderStandard.getServerNum());
|
||||
standardList.add(orderStandard);
|
||||
}
|
||||
|
||||
if(this.checkIsOnlyServer(orderMaster.getId(), detail.getWorkerId())){
|
||||
BigDecimal workerFee = financialMaster.getPayMoney();
|
||||
List<FinancialDetail> financialDetailList = financialDetailService.selectByFinancialMasterId(financialMaster.getId());
|
||||
for (FinancialDetail param : financialDetailList) {
|
||||
if (!detail.getWorkerId().equals(param.getPayeeId())) {
|
||||
workerFee = workerFee.subtract(param.getPayMoney());
|
||||
}
|
||||
}
|
||||
orderListResponse.setPayMoney(workerFee);
|
||||
}else {
|
||||
orderListResponse.setPayMoney(detailPayMoney);
|
||||
}
|
||||
// 编辑返回属性
|
||||
orderListResponse.setOrderDetailId(detail.getId());
|
||||
orderListResponse.setOrderDetailCode(detail.getCode());
|
||||
|
|
@ -202,7 +218,6 @@ public class OrderDetailController extends BaseController {
|
|||
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
|
||||
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
|
||||
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
|
||||
orderListResponse.setPayMoney(detailPayMoney);
|
||||
orderListResponse.setWorkerName(workerName);
|
||||
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
|
||||
orderListResponse.setMasterWorkerName(masterWorkerName);
|
||||
|
|
@ -244,6 +259,7 @@ public class OrderDetailController extends BaseController {
|
|||
|
||||
// 主单信息
|
||||
OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId());
|
||||
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderMaster.getId());
|
||||
// 初始化属性
|
||||
OrderListResponse orderListResponse = new OrderListResponse();
|
||||
List<OrderStandard> standardList = new ArrayList<>();
|
||||
|
|
@ -299,6 +315,19 @@ public class OrderDetailController extends BaseController {
|
|||
OrderTimeoutRecord orderTimeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
|
||||
Boolean isOverTime = orderTimeoutRecord == null ? false : true;
|
||||
|
||||
if(this.checkIsOnlyServer(orderMaster.getId(), detail.getWorkerId())){
|
||||
BigDecimal workerFee = financialMaster.getPayMoney();
|
||||
List<FinancialDetail> financialDetailList = financialDetailService.selectByFinancialMasterId(financialMaster.getId());
|
||||
for (FinancialDetail param : financialDetailList) {
|
||||
if (!detail.getWorkerId().equals(param.getPayeeId())) {
|
||||
workerFee = workerFee.subtract(param.getPayMoney());
|
||||
}
|
||||
}
|
||||
orderListResponse.setPayMoney(workerFee);
|
||||
}else {
|
||||
orderListResponse.setPayMoney(detailPayMoney);
|
||||
}
|
||||
|
||||
// 编辑返回属性
|
||||
orderListResponse.setOrderDetailId(detail.getId());
|
||||
orderListResponse.setOrderDetailCode(detail.getCode());
|
||||
|
|
@ -308,7 +337,6 @@ public class OrderDetailController extends BaseController {
|
|||
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
|
||||
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
|
||||
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
|
||||
orderListResponse.setPayMoney(detailPayMoney);
|
||||
orderListResponse.setWorkerName(workerName);
|
||||
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
|
||||
orderListResponse.setCustomerName(customerAddress.getName());
|
||||
|
|
@ -335,6 +363,7 @@ public class OrderDetailController extends BaseController {
|
|||
@PostMapping("/after/list")
|
||||
@ResponseBody
|
||||
public TableDataInfo afterServiceList(@RequestBody OrderDetail orderDetail) {
|
||||
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderDetail.getOrderMasterId());
|
||||
AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
|
||||
afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE);
|
||||
List<AfterServiceRecord> afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
||||
|
|
@ -413,6 +442,20 @@ public class OrderDetailController extends BaseController {
|
|||
OrderTimeoutRecord orderTimeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
|
||||
Boolean isOverTime = orderTimeoutRecord == null ? false : true;
|
||||
|
||||
if(this.checkIsOnlyServer(orderMaster.getId(), detail.getWorkerId())){
|
||||
BigDecimal workerFee = financialMaster.getPayMoney();
|
||||
List<FinancialDetail> financialDetailList = financialDetailService.selectByFinancialMasterId(financialMaster.getId());
|
||||
for (FinancialDetail param : financialDetailList) {
|
||||
if (!detail.getWorkerId().equals(param.getPayeeId())) {
|
||||
workerFee = workerFee.subtract(param.getPayMoney());
|
||||
}
|
||||
}
|
||||
orderListResponse.setPayMoney(workerFee);
|
||||
}else {
|
||||
orderListResponse.setPayMoney(detailPayMoney);
|
||||
}
|
||||
|
||||
|
||||
// 编辑返回属性
|
||||
orderListResponse.setOrderDetailId(detail.getId());
|
||||
orderListResponse.setOrderDetailCode(detail.getCode());
|
||||
|
|
@ -422,7 +465,6 @@ public class OrderDetailController extends BaseController {
|
|||
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
|
||||
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
|
||||
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
|
||||
orderListResponse.setPayMoney(detailPayMoney);
|
||||
orderListResponse.setWorkerName(workerName);
|
||||
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
|
||||
orderListResponse.setCustomerName(customerAddress.getName());
|
||||
|
|
@ -648,4 +690,34 @@ public class OrderDetailController extends BaseController {
|
|||
return AjaxResult.error("查询改价失败!");
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue