单师傅全额退款逻辑
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.order.service.*;
|
||||||
import com.ghy.payment.domain.FinancialChangeRecord;
|
import com.ghy.payment.domain.FinancialChangeRecord;
|
||||||
import com.ghy.payment.domain.FinancialDetail;
|
import com.ghy.payment.domain.FinancialDetail;
|
||||||
|
import com.ghy.payment.domain.FinancialMaster;
|
||||||
import com.ghy.payment.domain.OrderTimeoutRecord;
|
import com.ghy.payment.domain.OrderTimeoutRecord;
|
||||||
import com.ghy.payment.service.FinancialChangeRecordService;
|
import com.ghy.payment.service.FinancialChangeRecordService;
|
||||||
import com.ghy.payment.service.FinancialDetailService;
|
import com.ghy.payment.service.FinancialDetailService;
|
||||||
|
import com.ghy.payment.service.FinancialMasterService;
|
||||||
import com.ghy.payment.service.OrderFineRecordService;
|
import com.ghy.payment.service.OrderFineRecordService;
|
||||||
import com.ghy.system.domain.SysArea;
|
import com.ghy.system.domain.SysArea;
|
||||||
import com.ghy.system.service.ISysAreaService;
|
import com.ghy.system.service.ISysAreaService;
|
||||||
|
|
@ -99,6 +101,8 @@ public class OrderDetailController extends BaseController {
|
||||||
private IWorkerCertificationService workerCertificationService;
|
private IWorkerCertificationService workerCertificationService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IOrderAssessLabelService orderAssessLabelService;
|
private IOrderAssessLabelService orderAssessLabelService;
|
||||||
|
@Autowired
|
||||||
|
private FinancialMasterService financialMasterService;
|
||||||
|
|
||||||
@RequiresPermissions("order:detail:view")
|
@RequiresPermissions("order:detail:view")
|
||||||
@GetMapping()
|
@GetMapping()
|
||||||
|
|
@ -123,6 +127,7 @@ public class OrderDetailController extends BaseController {
|
||||||
OrderDetail detail = orderDetailService.selectById(request.getId());
|
OrderDetail detail = orderDetailService.selectById(request.getId());
|
||||||
// 主单信息
|
// 主单信息
|
||||||
OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId());
|
OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId());
|
||||||
|
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderMaster.getId());
|
||||||
// 初始化属性
|
// 初始化属性
|
||||||
OrderListResponse orderListResponse = new OrderListResponse();
|
OrderListResponse orderListResponse = new OrderListResponse();
|
||||||
List<OrderStandard> standardList = new ArrayList<>();
|
List<OrderStandard> standardList = new ArrayList<>();
|
||||||
|
|
@ -192,7 +197,18 @@ public class OrderDetailController extends BaseController {
|
||||||
orderStandard.setWaitServerNum(orderStandard.getStandardNum() - orderStandard.getServerNum());
|
orderStandard.setWaitServerNum(orderStandard.getStandardNum() - orderStandard.getServerNum());
|
||||||
standardList.add(orderStandard);
|
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.setOrderDetailId(detail.getId());
|
||||||
orderListResponse.setOrderDetailCode(detail.getCode());
|
orderListResponse.setOrderDetailCode(detail.getCode());
|
||||||
|
|
@ -202,7 +218,6 @@ public class OrderDetailController extends BaseController {
|
||||||
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
|
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
|
||||||
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
|
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
|
||||||
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
|
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
|
||||||
orderListResponse.setPayMoney(detailPayMoney);
|
|
||||||
orderListResponse.setWorkerName(workerName);
|
orderListResponse.setWorkerName(workerName);
|
||||||
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
|
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
|
||||||
orderListResponse.setMasterWorkerName(masterWorkerName);
|
orderListResponse.setMasterWorkerName(masterWorkerName);
|
||||||
|
|
@ -244,6 +259,7 @@ public class OrderDetailController extends BaseController {
|
||||||
|
|
||||||
// 主单信息
|
// 主单信息
|
||||||
OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId());
|
OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId());
|
||||||
|
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderMaster.getId());
|
||||||
// 初始化属性
|
// 初始化属性
|
||||||
OrderListResponse orderListResponse = new OrderListResponse();
|
OrderListResponse orderListResponse = new OrderListResponse();
|
||||||
List<OrderStandard> standardList = new ArrayList<>();
|
List<OrderStandard> standardList = new ArrayList<>();
|
||||||
|
|
@ -299,6 +315,19 @@ public class OrderDetailController extends BaseController {
|
||||||
OrderTimeoutRecord orderTimeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
|
OrderTimeoutRecord orderTimeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
|
||||||
Boolean isOverTime = orderTimeoutRecord == null ? false : true;
|
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.setOrderDetailId(detail.getId());
|
||||||
orderListResponse.setOrderDetailCode(detail.getCode());
|
orderListResponse.setOrderDetailCode(detail.getCode());
|
||||||
|
|
@ -308,7 +337,6 @@ public class OrderDetailController extends BaseController {
|
||||||
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
|
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
|
||||||
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
|
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
|
||||||
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
|
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
|
||||||
orderListResponse.setPayMoney(detailPayMoney);
|
|
||||||
orderListResponse.setWorkerName(workerName);
|
orderListResponse.setWorkerName(workerName);
|
||||||
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
|
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
|
||||||
orderListResponse.setCustomerName(customerAddress.getName());
|
orderListResponse.setCustomerName(customerAddress.getName());
|
||||||
|
|
@ -335,6 +363,7 @@ 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) {
|
||||||
|
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(orderDetail.getOrderMasterId());
|
||||||
AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
|
AfterServiceRecord afterServiceRecord = new AfterServiceRecord();
|
||||||
afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE);
|
afterServiceRecord.setExcludeAfterServiceFinished(Boolean.TRUE);
|
||||||
List<AfterServiceRecord> afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
List<AfterServiceRecord> afterServiceRecordList = afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord);
|
||||||
|
|
@ -413,6 +442,20 @@ public class OrderDetailController extends BaseController {
|
||||||
OrderTimeoutRecord orderTimeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
|
OrderTimeoutRecord orderTimeoutRecord = orderFineRecordService.selectByDetailIdAndStatus(detail.getId(), detail.getOrderStatus());
|
||||||
Boolean isOverTime = orderTimeoutRecord == null ? false : true;
|
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.setOrderDetailId(detail.getId());
|
||||||
orderListResponse.setOrderDetailCode(detail.getCode());
|
orderListResponse.setOrderDetailCode(detail.getCode());
|
||||||
|
|
@ -422,7 +465,6 @@ public class OrderDetailController extends BaseController {
|
||||||
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
|
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
|
||||||
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
|
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
|
||||||
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
|
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
|
||||||
orderListResponse.setPayMoney(detailPayMoney);
|
|
||||||
orderListResponse.setWorkerName(workerName);
|
orderListResponse.setWorkerName(workerName);
|
||||||
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
|
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
|
||||||
orderListResponse.setCustomerName(customerAddress.getName());
|
orderListResponse.setCustomerName(customerAddress.getName());
|
||||||
|
|
@ -648,4 +690,34 @@ public class OrderDetailController extends BaseController {
|
||||||
return AjaxResult.error("查询改价失败!");
|
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