cloudroam
2024-09-10 33a30da7b2795fc60ebab8e89760087f5dfdd3a0
src/main/java/com/mzl/flower/service/payment/OrderService.java
@@ -131,47 +131,71 @@
    @Autowired
    private OrderItemCheckMapper orderItemCheckMapper;
    @Autowired
    private RedisLockService lockService;
    public void changeFlower2Cart(CartSaveDTO dto) {
        String userId = SecurityUtils.getUserId();
        Cart c = cartMapper.selectOne(new QueryWrapper<Cart>()
                .eq("create_by", userId).eq("flower_id", dto.getId()));
        if (c == null) {
            if (dto.getNum() <= 0) {
                throw new ValidationException("数量不能小于等于0,请刷新页面重试");
            }
            c = new Cart();
            c.setFlowerId(dto.getId());
            c.setNum(dto.getNum());
            c.create(userId);
        String key = userId + "_" + dto.getId();
        boolean lock = lockService.getObjectLock(RedisLockService.LOCK_KEY_CART_, key);
        if(!lock){
            return;
        }
            cartMapper.insert(c);
        } else {
            c.setNum(c.getNum() + dto.getNum());
            c.update(userId);
            if (c.getNum() <= 0) {
                cartMapper.deleteById(c.getId());
        try {
            Cart c = cartMapper.selectOne(new QueryWrapper<Cart>()
                    .eq("create_by", userId).eq("flower_id", dto.getId()));
            if (c == null) {
                if (dto.getNum() <= 0) {
                    throw new ValidationException("数量不能小于等于0,请刷新页面重试");
                }
                c = new Cart();
                c.setFlowerId(dto.getId());
                c.setNum(dto.getNum());
                c.create(userId);
                cartMapper.insert(c);
            } else {
                cartMapper.updateById(c);
                c.setNum(c.getNum() + dto.getNum());
                c.update(userId);
                if (c.getNum() <= 0) {
                    cartMapper.deleteById(c.getId());
                } else {
                    cartMapper.updateById(c);
                }
            }
        } finally {
            lockService.releaseObjectLock(RedisLockService.LOCK_KEY_CART_, key);
        }
    }
    public void saveFlower2Cart(CartSaveDTO dto) {
        String userId = SecurityUtils.getUserId();
        Cart c = cartMapper.selectOne(new QueryWrapper<Cart>()
                .eq("create_by", userId).eq("flower_id", dto.getId()));
        if (c == null) {
            c = new Cart();
            c.setFlowerId(dto.getId());
            c.setNum(dto.getNum());
            c.create(userId);
            cartMapper.insert(c);
        } else {
            c.setNum(dto.getNum());
            c.update(userId);
        String key = userId + "_" + dto.getId();
        boolean lock = lockService.getObjectLock(RedisLockService.LOCK_KEY_CART_, key);
        if(!lock){
            return;
        }
            cartMapper.updateById(c);
        try {
            Cart c = cartMapper.selectOne(new QueryWrapper<Cart>()
                    .eq("create_by", userId).eq("flower_id", dto.getId()));
            if (c == null) {
                c = new Cart();
                c.setFlowerId(dto.getId());
                c.setNum(dto.getNum());
                c.create(userId);
                cartMapper.insert(c);
            } else {
                c.setNum(dto.getNum());
                c.update(userId);
                cartMapper.updateById(c);
            }
        } finally {
            lockService.releaseObjectLock(RedisLockService.LOCK_KEY_CART_, key);
        }
    }
@@ -519,7 +543,27 @@
     * 合伙人订单定时发货
     */
    public void setPartnerOrderSend() {
        orderMapper.setPartnerOrderReceive();
        List<Order> orders = orderMapper.getPartnerOrderReceive();
        if(orders == null || orders.size() == 0){
            return;
        }
        for (Order o : orders) {
            //set status_backend = 'RECEIVE', status = 'RECEIVE'
            o.setStatusBackend("RECEIVE");
            o.setStatus("RECEIVE");
            //发送微信发货请求
            JSONObject jsonObject = sendWxDeliveryGood(o);
            if (jsonObject != null && (int) jsonObject.get("errcode") == 0) {
                o.setWxDeliveryGood(true);
                o.setWxDeliveryMsg(GsonUtil.toJson(jsonObject));
            } else {
                o.setWxDeliveryGood(false);
                o.setWxDeliveryMsg(GsonUtil.toJson(jsonObject));
            }
            orderMapper.updateById(o);
        }
        //orderMapper.setPartnerOrderReceive();
    }
    /**
@@ -539,6 +583,17 @@
        o.setStatus(Constants.ORDER_STATUS.RECEIVE.name());
        o.setStatusBackend(Constants.ORDER_STATUS_BACKEND.RECEIVE.name());
        o.update(SecurityUtils.getUserId());
        //发送微信发货请求
        JSONObject jsonObject = sendWxDeliveryGood(o);
        if (jsonObject != null && (int) jsonObject.get("errcode") == 0) {
            o.setWxDeliveryGood(true);
            o.setWxDeliveryMsg(GsonUtil.toJson(jsonObject));
        } else {
            o.setWxDeliveryGood(false);
            o.setWxDeliveryMsg(GsonUtil.toJson(jsonObject));
        }
        orderMapper.updateById(o);
    }
@@ -701,6 +756,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());
@@ -787,17 +910,6 @@
            o.setStatusBackend(Constants.ORDER_STATUS_BACKEND.EVALUATE.name());
            o.setReceiveTime(LocalDateTime.now());
            o.update("sys");
            //发送微信发货请求
            JSONObject jsonObject = sendWxDeliveryGood(o);
            if (jsonObject != null && (int) jsonObject.get("errcode") == 0) {
                o.setWxDeliveryGood(true);
                o.setWxDeliveryMsg(GsonUtil.toJson(jsonObject));
            } else {
                o.setWxDeliveryGood(false);
                o.setWxDeliveryMsg(GsonUtil.toJson(jsonObject));
            }
            orderMapper.updateById(o);
        }
@@ -860,17 +972,6 @@
        o.setStatusBackend(Constants.ORDER_STATUS_BACKEND.EVALUATE.name());
        o.setReceiveTime(LocalDateTime.now());
        o.update(userId);
        //发送微信发货请求
        JSONObject jsonObject = sendWxDeliveryGood(o);
        if (jsonObject != null && (int) jsonObject.get("errcode") == 0) {
            o.setWxDeliveryGood(true);
            o.setWxDeliveryMsg(GsonUtil.toJson(jsonObject));
        } else {
            o.setWxDeliveryGood(false);
            o.setWxDeliveryMsg(GsonUtil.toJson(jsonObject));
        }
        orderMapper.updateById(o);
    }