From f615ec5c9239327740948501627545f8e78e2a9e Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 18 三月 2025 09:07:26 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java | 94 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 92 insertions(+), 2 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java index 803e489..88ce37f 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java @@ -34,6 +34,7 @@ import com.ruoyi.system.api.feignClient.SysUserClient; import com.ruoyi.system.api.model.LoginUser; import io.swagger.annotations.*; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -482,6 +483,16 @@ return R.ok(collect); } + /** + * 获取指定门店的核销订单 + */ + @GetMapping("/getRedeemedOrdersByShop") + public R<List<Order>> getRedeemedOrdersByShop(@RequestParam("shopId") Integer shopId) { + return R.ok(orderService.list(new LambdaQueryWrapper<Order>() + .isNotNull(Order::getEndTime) + .eq(Order::getShopId, shopId))); + } + /** * 获取订单快递明细 @@ -545,11 +556,55 @@ @GetMapping("/exportExpress") public void exportExpress(HttpServletResponse response, OrderPageList orderPage) { + //搜索条件,用户姓名 + if (StringUtils.isNotEmpty(orderPage.getUserName())) { + List<AppUser> data = appUserClient.getAppUserByNameNoFilter(orderPage.getUserName()).getData(); + List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(collect)) { + return; + } + if (null != orderPage.getAppUserIds()) { + List<Long> appUserIds = orderPage.getAppUserIds(); + appUserIds.addAll(collect); + orderPage.setAppUserIds(appUserIds); + } else { + orderPage.setAppUserIds(collect); + } + } + //搜索条件,用户电话 + if (StringUtils.isNotEmpty(orderPage.getPhone())) { + List<AppUser> data = appUserClient.getAppUserByPhoneNoFilter(orderPage.getPhone()).getData(); + List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(collect)) { + return; + } + + if (null != orderPage.getAppUserIds()) { + List<Long> appUserIds = orderPage.getAppUserIds(); + if (!containsAny(appUserIds, collect)) { + return; + } + appUserIds.addAll(collect); + orderPage.setAppUserIds(appUserIds); + } else { + orderPage.setAppUserIds(collect); + } + } + if (null != orderPage.getAppUserIds()) { + orderPage.setAppUserIds(orderPage.getAppUserIds().stream().distinct().collect(Collectors.toList())); + } + +// UserAddress userAddress = JSON.parseObject(order.getAddressJson(), UserAddress.class); +// orderInfo.setRecipient(userAddress.getRecieveName() + "-" + userAddress.getRecievePhone()); +// userAddress.setRecieveAddress(userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getRecieveAddress()); +// orderInfo.setAddress(userAddress.getRecieveAddress()); + + List<OrderExport> orderExportList = orderMapper.getOrderExportList(orderPage); orderExportList.forEach(orderExport -> { Long appUserId = orderExport.getAppUserId(); AppUser appUserById = appUserClient.getAppUserById(appUserId); - if (null != appUserById){ + if (null != appUserById) { orderExport.setUserName(appUserById.getName()); orderExport.setPhone(appUserById.getPhone()); } @@ -557,7 +612,8 @@ if (StringUtils.isNotEmpty(goodJson) && !"NULL".equals(goodJson)) { Goods goods = JSONObject.parseObject(goodJson, Goods.class); orderExport.setGoodsName(goods.getName()); - orderExport.setCostPrice(goods.getShopCost().add(goods.getOperatingCost())); + orderExport.setCompanyCostPrice(goods.getOperatingCost()); + orderExport.setSupplierCostPrice(goods.getShopCost()); } String expressJson = orderExport.getExpressJson(); @@ -566,6 +622,17 @@ orderExport.setExpressNum(jsonObject.getString("num")); orderExport.setExpressName(ExpressCompanyMap.getCompanyNameByCode(jsonObject.getString("com"))); } + String addressJson = orderExport.getAddressJson(); + if (StringUtils.isNotEmpty(addressJson)) { + UserAddress userAddress = JSON.parseObject(addressJson, UserAddress.class); + orderExport.setAddress( + userAddress.getProvince() + + userAddress.getCity() + + userAddress.getDistrict() + + userAddress.getRecieveAddress() + ); + } + }); @@ -576,6 +643,29 @@ /** + * 判断 list1 是否包含 list2 中的至少一个元素 + * + * @param list1 第一个列表 + * @param list2 第二个列表 + * @return 如果 list1 包含 list2 中的至少一个元素,返回 true;否则返回 false + */ + private boolean containsAny(List<Long> list1, List<Long> list2) { + // 将 list1 转换为 HashSet 以提高查询效率 + Set<Long> set1 = new HashSet<>(list1); + + // 遍历 list2,检查是否有元素存在于 set1 中 + for (Long element : list2) { + if (set1.contains(element)) { + return true; + } + } + + // 如果没有找到共同元素,返回 false + return false; + } + + + /** * 获取用户订单数量 * * @param appUserId -- Gitblit v1.7.1