From fc9f26f399ad4d8c921867d720d6b7c97ba5d1e3 Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期一, 09 九月 2024 01:52:53 +0800 Subject: [PATCH] update --- src/main/java/com/mzl/flower/service/payment/OrderService.java | 78 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 76 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java index 9660450..986d187 100644 --- a/src/main/java/com/mzl/flower/service/payment/OrderService.java +++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java @@ -40,6 +40,7 @@ import com.mzl.flower.mapper.system.UserWechatMapper; import com.mzl.flower.mapper.warehouse.WarehouseLocationMapper; import com.mzl.flower.service.BaseService; +import com.mzl.flower.service.coupon.CouponRecordService; import com.mzl.flower.service.flower.FlowerService; import com.mzl.flower.service.menber.MemberGrowthRecordService; import com.mzl.flower.service.point.CustomerPointService; @@ -154,6 +155,9 @@ @Autowired private RedisLockService lockService; + @Autowired + private CouponRecordService couponRecordService; + public void changeFlower2Cart(CartSaveDTO dto) { String userId = SecurityUtils.getUserId(); String key = userId + "_" + dto.getId(); @@ -176,7 +180,7 @@ cartMapper.insert(c); } else { - c.setNum(c.getNum() + dto.getNum()); + c.setNum((c.getNum()==null?0:c.getNum()) + dto.getNum()); c.update(userId); if (c.getNum() <= 0) { cartMapper.deleteById(c.getId()); @@ -560,7 +564,9 @@ private CouponRecordDO useCouponRecord(String orderId, BigDecimal amount, String couponRecordId){ if(StringUtils.isNotEmpty(couponRecordId)){ - //TODO 优惠券使用和验证,如果不符合使用条件需要抛出异常。需调用优惠券使用方法 + //优惠券使用和验证,如果不符合使用条件需要抛出异常。需调用优惠券使用方法 + couponRecordService.useCoupon(couponRecordId, orderId, amount); + return couponRecordService.getCouponRecordById(couponRecordId); } return null; @@ -872,6 +878,74 @@ return ls; } + public List<OrderCheckLocationListDTO> selectOrderCheckLocationList(OrderQueryDTO dto) { + dto.setIdList(splitParam(dto.getIds())); + dto.setStartDate(parseLocalDateTime(dto.getStartDateStr(), true)); + dto.setEndDate(parseLocalDateTime(dto.getEndDateStr(), false)); + + dto.setCreateStartDate(parseLocalDateTime(dto.getCreateStartDateStr(), 17, 0, 0, -1)); + dto.setCreateEndDate(parseLocalDateTime(dto.getCreateEndDateStr(), 17, 0, 0, 0)); + + List<OrderCheckListDTO> ls = orderMapper.selectOrderCheckList(dto); + + List<OrderCheckLocationListDTO> result = new ArrayList<>(); + + if (ls != null && ls.size() > 0) { + List<String> orderIds = new ArrayList<>(); + Map<Long, OrderCheckLocationListDTO> rMap = new HashMap<>(); + Map<String, OrderCheckListDTO> orderMap = new HashMap<>(); + for (OrderCheckListDTO c : ls) { + orderIds.add(c.getId()); + + orderMap.put(c.getId(), c); + + Long locationId = c.getWarehouseLocationId(); + OrderCheckLocationListDTO llc = rMap.get(locationId); + if(llc == null){ + llc = new OrderCheckLocationListDTO(); + BeanUtils.copyProperties(c, llc); + rMap.put(locationId, llc); + + result.add(llc); + } + } + + Map<Long, String> stationMap = prepareStationMap(); + + List<OrderItem> itemList = orderItemMapper.selectList(new QueryWrapper<OrderItem>() + .in("order_id", orderIds)); + Map<String, List<OrderItemLocationListDTO>> map = new HashMap<>(); + + for (OrderItem oi : itemList) { + String orderId = oi.getOrderId(); + List<OrderItemLocationListDTO> ll = map.computeIfAbsent(orderId, k -> new ArrayList<>()); + OrderItemLocationListDTO d = new OrderItemLocationListDTO(); + BeanUtils.copyProperties(oi, d); + d.setStationName(stationMap.get(oi.getStationId())); + + OrderCheckListDTO c = orderMap.get(oi.getOrderId()); + d.setOrderNo(c.getOrderNo()); + d.setOrderId(c.getId()); + + ll.add(d); + } + + for (OrderCheckListDTO c : ls) { + String orderId = c.getId(); + Long locationId = c.getWarehouseLocationId(); + OrderCheckLocationListDTO r = rMap.get(locationId); + List<OrderItemLocationListDTO> items = r.getItems(); + if(items == null){ + items = new ArrayList<>(); + r.setItems(items); + } + items.addAll(map.get(orderId)); + } + } + + return result; + } + public Page<OrderListDTO> selectPartnerOrderList(Page page, OrderQueryDTO dto) { Partner p = getCurrentPartner(); dto.setPartnerId(p.getId()); -- Gitblit v1.9.3