diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index 281c4c6d..62174aa3 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -7,6 +7,8 @@ import com.ghy.common.enums.OrderStatus; import com.ghy.common.enums.PayStatus; import com.ghy.common.utils.StringUtils; 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.goods.domain.DeptGoodsCategory; 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.service.FinancialDetailService; import com.ghy.payment.service.FinancialMasterService; -import com.ghy.web.pojo.vo.OrderStatisticsRequest; -import com.ghy.web.pojo.vo.OrderStatisticsResponse; +import com.ghy.system.domain.SysArea; +import com.ghy.system.service.ISysAreaService; +import com.ghy.web.pojo.vo.*; import com.ghy.worker.domain.Worker; import com.ghy.worker.service.WorkerService; 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.time.DateUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -87,6 +92,12 @@ public class OrderController extends BaseController { @Autowired 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.setCustomerId(om.getCustomerId()); 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.setRevTime(om.getRevTime()); od.setExpectTimeStart(om.getExpectTimeStart()); @@ -420,4 +431,173 @@ public class OrderController extends BaseController { return AjaxResult.success(response); } + /** + * 查询主单子单的混合列表,根据预约时间倒序排列,请求参数中的师傅id不能为空 + * */ + @PostMapping("/app/mix/order/list") + @ResponseBody + public AjaxResult appMixOrderList(@RequestBody OrderListRequest orderListRequest) { + List 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() { + @Override + public int compare(OrderListResponse o1, OrderListResponse o2) { + return o1.getExpectTimeStart().compareTo(o2.getExpectTimeStart()); + } + }); + + return AjaxResult.success(orderListResponses); + } + + public List getMasterList(OrderMaster orderMaster) { + List orderListResponses = new ArrayList<>(); + List list = orderMasterService.selectOrderMasterList(orderMaster); + list.forEach(master -> { + // 初始化属性 + OrderListResponse orderListResponse = new OrderListResponse(); + List standardList = new ArrayList<>(); + + // 师傅信息 + Worker worker = master.getWorkerId() != null ? workerService.selectById(master.getWorkerId()) : null; + + // 消费者信息 + Customer customer = customerService.selectByCustomerId(master.getCustomerId()); + + // 商品规格及信息 + List 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 getDetailList(OrderDetail orderDetail) { + List orderListResponses = new ArrayList<>(); + List list = orderDetailService.selectOrderDetailList(orderDetail); + list.forEach(detail -> { + + // 主单信息 + OrderMaster orderMaster = orderMasterService.selectById(detail.getOrderMasterId()); + // 初始化属性 + OrderListResponse orderListResponse = new OrderListResponse(); + List standardList = new ArrayList<>(); + + // 师傅信息 + Worker worker = workerService.selectById(detail.getWorkerId()); + + // 消费者信息 + Customer customer = customerService.selectByCustomerId(detail.getCustomerId()); + + // 商品规格及信息 + List 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; + } } diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java index b300dfdb..31e121f6 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java @@ -214,7 +214,7 @@ public class OrderMasterController extends BaseController { orderStandardDetail.setOrderDetailCode(orderDetail.getCode()); orderStandardDetail.setWorkBeginTime(orderDetail.getWorkBeginTime()); orderStandardDetail.setWorkFinishTime(orderDetail.getWorkFinishTime()); - orderStandardDetail.setWorkerName(detailWorkerRealInfo.getName()); + orderStandardDetail.setWorkerName(detailWorkerRealInfo != null ? detailWorkerRealInfo.getName() : detailWorker.getName()); orderStandardDetail.setWorkerPhone(detailWorker.getPhone()); orderStandardDetail.setRevTime(orderDetail.getRevTime()); orderStandardDetail.setExpectTimeStart(orderDetail.getExpectTimeStart()); @@ -270,7 +270,7 @@ public class OrderMasterController extends BaseController { orderListResponse.setDiscountMoney(financialMaster.getDiscountMoney()); orderListResponse.setTotalMoney(financialMaster.getTotalMoney()); 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.setCustomerName(customer.getName()); orderListResponse.setCustomerPhone(customer.getPhone()); diff --git a/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListRequest.java b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListRequest.java new file mode 100644 index 00000000..63437f60 --- /dev/null +++ b/ghy-admin/src/main/java/com/ghy/web/pojo/vo/OrderListRequest.java @@ -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; +}