小程序订单流程相关接口调整

This commit is contained in:
donqi 2022-09-12 00:00:55 +08:00
parent dd52cc626d
commit 973419a4a3
3 changed files with 209 additions and 5 deletions

View File

@ -7,6 +7,8 @@ import com.ghy.common.enums.OrderStatus;
import com.ghy.common.enums.PayStatus; import com.ghy.common.enums.PayStatus;
import com.ghy.common.utils.StringUtils; import com.ghy.common.utils.StringUtils;
import com.ghy.customer.domain.Customer; import com.ghy.customer.domain.Customer;
import com.ghy.customer.domain.CustomerAddress;
import com.ghy.customer.service.CustomerAddressService;
import com.ghy.customer.service.CustomerService; import com.ghy.customer.service.CustomerService;
import com.ghy.goods.domain.DeptGoodsCategory; import com.ghy.goods.domain.DeptGoodsCategory;
import com.ghy.goods.domain.Goods; import com.ghy.goods.domain.Goods;
@ -28,13 +30,16 @@ import com.ghy.payment.domain.FinancialDetail;
import com.ghy.payment.domain.FinancialMaster; import com.ghy.payment.domain.FinancialMaster;
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.ghy.web.pojo.vo.OrderStatisticsRequest; import com.ghy.system.domain.SysArea;
import com.ghy.web.pojo.vo.OrderStatisticsResponse; import com.ghy.system.service.ISysAreaService;
import com.ghy.web.pojo.vo.*;
import com.ghy.worker.domain.Worker; import com.ghy.worker.domain.Worker;
import com.ghy.worker.service.WorkerService; import com.ghy.worker.service.WorkerService;
import com.huifu.adapay.core.exception.BaseAdaPayException; import com.huifu.adapay.core.exception.BaseAdaPayException;
import nonapi.io.github.classgraph.utils.CollectionUtils;
import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -87,6 +92,12 @@ public class OrderController extends BaseController {
@Autowired @Autowired
private GoodsStandardService goodsStandardService; private GoodsStandardService goodsStandardService;
@Autowired
private CustomerAddressService addressService;
@Autowired
private ISysAreaService sysAreaService;
/** /**
* 可派单商品数量 * 可派单商品数量
* */ * */
@ -186,7 +197,7 @@ public class OrderController extends BaseController {
od.setOrderMasterCode(om.getCode()); od.setOrderMasterCode(om.getCode());
od.setCustomerId(om.getCustomerId()); od.setCustomerId(om.getCustomerId());
od.setOrderType(om.getOrderType()); od.setOrderType(om.getOrderType());
od.setOrderStatus(OrderStatus.GOING.code()); od.setOrderStatus(request.getWorkerId() == om.getWorkerId() ? OrderStatus.GOING.code() : OrderStatus.RECEIVE.code());
od.setWorkerId(request.getWorkerId()); od.setWorkerId(request.getWorkerId());
od.setRevTime(om.getRevTime()); od.setRevTime(om.getRevTime());
od.setExpectTimeStart(om.getExpectTimeStart()); od.setExpectTimeStart(om.getExpectTimeStart());
@ -420,4 +431,173 @@ public class OrderController extends BaseController {
return AjaxResult.success(response); return AjaxResult.success(response);
} }
/**
* 查询主单子单的混合列表根据预约时间倒序排列请求参数中的师傅id不能为空
* */
@PostMapping("/app/mix/order/list")
@ResponseBody
public AjaxResult appMixOrderList(@RequestBody OrderListRequest orderListRequest) {
List<OrderListResponse> orderListResponses = new ArrayList<>();
// 校验参数
Assert.notNull(orderListRequest.getWorkerId(), "师傅id不能为空");
// 查询主单
OrderMaster orderMasterReq = new OrderMaster();
BeanUtils.copyProperties(orderListRequest, orderMasterReq);
orderListResponses.addAll(this.getMasterList(orderMasterReq));
// 查询子单
OrderDetail orderDetailReq = new OrderDetail();
BeanUtils.copyProperties(orderListRequest, orderDetailReq);
orderListResponses.addAll(this.getDetailList(orderDetailReq));
// 根据预约时间倒序排列
CollectionUtils.sortIfNotEmpty(orderListResponses, new Comparator<OrderListResponse>() {
@Override
public int compare(OrderListResponse o1, OrderListResponse o2) {
return o1.getExpectTimeStart().compareTo(o2.getExpectTimeStart());
}
});
return AjaxResult.success(orderListResponses);
}
public List<OrderListResponse> getMasterList(OrderMaster orderMaster) {
List<OrderListResponse> orderListResponses = new ArrayList<>();
List<OrderMaster> list = orderMasterService.selectOrderMasterList(orderMaster);
list.forEach(master -> {
// 初始化属性
OrderListResponse orderListResponse = new OrderListResponse();
List<OrderStandard> standardList = new ArrayList<>();
// 师傅信息
Worker worker = master.getWorkerId() != null ? workerService.selectById(master.getWorkerId()) : null;
// 消费者信息
Customer customer = customerService.selectByCustomerId(master.getCustomerId());
// 商品规格及信息
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderMasterId(master.getId());
// 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId());
// 财务信息
FinancialMaster financialMaster = financialMasterService.selectByOrderMasterId(master.getId());
// 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(master.getAddressId());
for (OrderGoods orderGoods : orderStandardList) {
OrderStandard orderStandard = new OrderStandard();
orderStandard.setStandardName(orderGoods.getGoodsName());
orderStandard.setStandardNum(orderGoods.getGoodsNum());
standardList.add(orderStandard);
}
// 编辑返回属性
orderListResponse.setOrderMasterId(master.getId());
orderListResponse.setGoodsName(goods.getGoodsName());
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney());
orderListResponse.setTotalMoney(financialMaster.getTotalMoney());
orderListResponse.setPayMoney(financialMaster.getPayMoney());
orderListResponse.setWorkerName(worker == null ? "" : worker.getName());
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setCustomerName(customer.getName());
orderListResponse.setCustomerPhone(customer.getPhone());
orderListResponse.setServerTime(master.getRevTime());
orderListResponse.setExpectTimeStart(master.getExpectTimeStart());
orderListResponse.setExpectTimeEnd(master.getExpectTimeEnd());
orderListResponse.setOrderStatus(master.getOrderStatus());
orderListResponse.setPayStatus(master.getPayStatus());
orderListResponse.setPayType(master.getPayType());
orderListResponse.setOrderMasterCode(master.getCode());
orderListResponse.setStandardList(standardList);
orderListResponse.setAddress(customerAddress.getAddress());
orderListResponse.setRemark(goods.getRemark());
orderListResponse.setCustomerRemark(master.getRemark());
orderListResponses.add(orderListResponse);
});
return orderListResponses;
}
public List<OrderListResponse> getDetailList(OrderDetail orderDetail) {
List<OrderListResponse> orderListResponses = new ArrayList<>();
List<OrderDetail> list = orderDetailService.selectOrderDetailList(orderDetail);
list.forEach(detail -> {
// 主单信息
OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId());
// 初始化属性
OrderListResponse orderListResponse = new OrderListResponse();
List<OrderStandard> standardList = new ArrayList<>();
// 师傅信息
Worker worker = workerService.selectById(detail.getWorkerId());
// 消费者信息
Customer customer = customerService.selectByCustomerId(detail.getCustomerId());
// 商品规格及信息
List<OrderGoods> orderStandardList = orderGoodsService.selectByOrderDetailId(detail.getId());
// 商品信息
GoodsStandard goodsStandard = goodsStandardService.selectById(orderStandardList.get(0).getGoodsStandardId());
Goods goods = goodsService.selectById(goodsStandard.getGoodsId());
// 财务信息
FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(detail.getId());
// 地址信息
CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId());
SysArea sysArea = sysAreaService.selectById(customerAddress.getCountryId());
String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress();
for (OrderGoods orderGoods : orderStandardList) {
OrderStandard orderStandard = new OrderStandard();
orderStandard.setStandardName(orderGoods.getGoodsName());
orderStandard.setStandardNum(orderGoods.getGoodsNum());
orderStandard.setServerNum(orderGoods.getServerGoodsNum());
orderStandard.setFinishTime(orderGoods.getFinishTime());
orderStandard.setWaitServerNum(orderGoods.getGoodsNum() - orderGoods.getServerGoodsNum());
standardList.add(orderStandard);
}
// 编辑返回属性
orderListResponse.setOrderDetailId(detail.getId());
orderListResponse.setOrderDetailCode(detail.getCode());
orderListResponse.setOrderMasterId(detail.getOrderMasterId());
orderListResponse.setOrderMasterCode(detail.getOrderMasterCode());
orderListResponse.setGoodsName(goods.getGoodsName());
orderListResponse.setGoodsLogoUrl(goods.getGoodsImgUrl());
orderListResponse.setDiscountMoney(financialDetail.getDiscountMoney());
orderListResponse.setTotalMoney(financialDetail.getTotalMoney());
orderListResponse.setPayMoney(financialDetail.getPayMoney());
orderListResponse.setWorkerName(worker.getName());
orderListResponse.setWorkerPhone(worker.getPhone());
orderListResponse.setCustomerName(customer.getName());
orderListResponse.setCustomerPhone(customer.getPhone());
orderListResponse.setOrderStatus(detail.getOrderStatus());
orderListResponse.setPayStatus(orderMaster.getPayStatus());
orderListResponse.setPayType(orderMaster.getPayType());
orderListResponse.setStandardList(standardList);
orderListResponse.setAddress(completeAddress);
orderListResponse.setServerTime(detail.getRevTime());
orderListResponse.setExpectTimeStart(detail.getExpectTimeStart());
orderListResponse.setExpectTimeEnd(detail.getExpectTimeEnd());
orderListResponse.setWorkBeginTime(detail.getWorkBeginTime());
orderListResponse.setWorkFinishTime(detail.getWorkFinishTime());
orderListResponse.setRemark(goods.getRemark());
orderListResponse.setCustomerRemark(orderMaster.getRemark());
orderListResponse.setOrderType(detail.getOrderType());
orderListResponses.add(orderListResponse);
});
return orderListResponses;
}
} }

View File

@ -214,7 +214,7 @@ public class OrderMasterController extends BaseController {
orderStandardDetail.setOrderDetailCode(orderDetail.getCode()); orderStandardDetail.setOrderDetailCode(orderDetail.getCode());
orderStandardDetail.setWorkBeginTime(orderDetail.getWorkBeginTime()); orderStandardDetail.setWorkBeginTime(orderDetail.getWorkBeginTime());
orderStandardDetail.setWorkFinishTime(orderDetail.getWorkFinishTime()); orderStandardDetail.setWorkFinishTime(orderDetail.getWorkFinishTime());
orderStandardDetail.setWorkerName(detailWorkerRealInfo.getName()); orderStandardDetail.setWorkerName(detailWorkerRealInfo != null ? detailWorkerRealInfo.getName() : detailWorker.getName());
orderStandardDetail.setWorkerPhone(detailWorker.getPhone()); orderStandardDetail.setWorkerPhone(detailWorker.getPhone());
orderStandardDetail.setRevTime(orderDetail.getRevTime()); orderStandardDetail.setRevTime(orderDetail.getRevTime());
orderStandardDetail.setExpectTimeStart(orderDetail.getExpectTimeStart()); orderStandardDetail.setExpectTimeStart(orderDetail.getExpectTimeStart());
@ -270,7 +270,7 @@ public class OrderMasterController extends BaseController {
orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney()); orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney());
orderListResponse.setTotalMoney(financialMaster.getTotalMoney()); orderListResponse.setTotalMoney(financialMaster.getTotalMoney());
orderListResponse.setPayMoney(financialMaster.getPayMoney()); orderListResponse.setPayMoney(financialMaster.getPayMoney());
orderListResponse.setWorkerName(workerRealInfo == null ? "" : workerRealInfo.getName()); orderListResponse.setWorkerName(workerRealInfo == null ? worker.getName() : workerRealInfo.getName());
orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone());
orderListResponse.setCustomerName(customer.getName()); orderListResponse.setCustomerName(customer.getName());
orderListResponse.setCustomerPhone(customer.getPhone()); orderListResponse.setCustomerPhone(customer.getPhone());

View File

@ -0,0 +1,24 @@
package com.ghy.web.pojo.vo;
import lombok.Data;
/**
* 小程序查询订单列表请求参数对象
*
* @author ydq
* @date : 2022-09-11 15:24
*/
@Data
public class OrderListRequest {
private Long deptId;
private Long workerId;
private Integer orderStatus;
private Long goodsCategoryId;
private String goodsName;
private Long countryId;
}