From d94776ba25ffcd19cdd7970048ed88d9212bd394 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 08 二月 2025 10:10:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 176 ++++++++++++++++++++++++++++------------------------------
1 files changed, 84 insertions(+), 92 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index 95748ea..b1ad99e 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -43,6 +43,7 @@
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.jetbrains.annotations.Nullable;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -311,116 +312,107 @@
*/
@Override
public PageInfo<OrderPageListVo> getOrderPageList(OrderPageList orderPageList) {
- Long userId = tokenService.getLoginUser().getUserid();
- SysUser sysUser = sysUserClient.getSysUser(userId).getData();
-
- // 设置店铺ID
- if (sysUser.getRoleType() == 2) {
+ Long userid = tokenService.getLoginUser().getUserid();
+ SysUser sysUser = sysUserClient.getSysUser(userid).getData();
+ if(2 == sysUser.getRoleType()){
orderPageList.setShopId(sysUser.getObjectId());
}
+ //搜索条件,用户姓名
+ if(StringUtils.isNotEmpty(orderPageList.getUserName())){
+ List<AppUser> data = appUserClient.getAppUserByNameNoFilter(orderPageList.getUserName()).getData();
+ List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(collect)){
+ return new PageInfo<>();
+ }
+ if(null != orderPageList.getAppUserIds()){
+ List<Long> appUserIds = orderPageList.getAppUserIds();
+ appUserIds.addAll(collect);
+ orderPageList.setAppUserIds(appUserIds);
+ }else{
+ orderPageList.setAppUserIds(collect);
+ }
+ }
+ //搜索条件,用户电话
+ if(StringUtils.isNotEmpty(orderPageList.getPhone())){
+ List<AppUser> data = appUserClient.getAppUserByPhoneNoFilter(orderPageList.getPhone()).getData();
+ List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(collect)){
+ return new PageInfo<>();
+ }
- // 处理用户姓名搜索条件
- processAppUserIds(orderPageList, orderPageList.getUserName(), appUserClient::getAppUserByNameNoFilter);
-
- // 处理用户电话搜索条件
- processAppUserIds(orderPageList, orderPageList.getPhone(), appUserClient::getAppUserByPhoneNoFilter);
-
- if (orderPageList.getAppUserIds() == null) {
- return new PageInfo<>();
+ if(null != orderPageList.getAppUserIds()){
+ List<Long> appUserIds = orderPageList.getAppUserIds();
+ if (!containsAny(appUserIds,collect)) {
+ return new PageInfo<>();
+ }
+ appUserIds.addAll(collect);
+ orderPageList.setAppUserIds(appUserIds);
+ }else{
+ orderPageList.setAppUserIds(collect);
+ }
+ }
+ if (null != orderPageList.getAppUserIds()){
+ orderPageList.setAppUserIds(orderPageList.getAppUserIds().stream().distinct().collect(Collectors.toList()));
}
- // 去重 appUserIds
- Optional.of(orderPageList.getAppUserIds())
- .ifPresent(ids -> orderPageList.setAppUserIds(ids.stream().distinct().collect(Collectors.toList())));
- // 分页查询订单列表
+
PageInfo<OrderPageListVo> pageInfo = new PageInfo<>(orderPageList.getPageCurr(), orderPageList.getPageSize());
+
List<OrderPageListVo> list = this.baseMapper.getOrderPageList(pageInfo, orderPageList);
+ for (OrderPageListVo orderPageListVo : list) {
+ Long appUserId = orderPageListVo.getAppUserId();
+ AppUser appUser = appUserClient.getAppUserById(appUserId);
+ if(null != appUser){
+ orderPageListVo.setUserName(appUser.getName());
+ orderPageListVo.setPhone(appUser.getPhone());
+ }
+ RefundPass one = refundPassService.getOne(new LambdaQueryWrapper<RefundPass>().eq(RefundPass::getOrderId, orderPageListVo.getId()).eq(RefundPass::getDelFlag, 0).last(" order by create_time desc limit 0,1"));
+ orderPageListVo.setRefundPassId(null != one ? one.getId().toString() : null);
- // 处理订单列表中的每个订单
- list.forEach(this::processOrderPageListVo);
+ // 平台分佣
+ List<ShopBalanceStatement> data = shopBalanceStatementClient.getShopBalanceStatementList(Arrays.asList(1, 2, 3), Long.valueOf(orderPageListVo.getId())).getData();
+ BigDecimal reduce = data.stream().map(ShopBalanceStatement::getVariableAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ orderPageListVo.setGetCommission(reduce);
+ String expressJson = orderPageListVo.getExpressJson();
+ if (StringUtils.isNotEmpty(expressJson) && !expressJson.equals("NULL")){
+ JSONObject jsonObject = null;
+ try {
+ jsonObject = JSONObject.parseObject(expressJson);
+ String companyName = ExpressCompanyMap.getCompanyNameByCode(jsonObject.getString("com"));
+ orderPageListVo.setExpressCompany(companyName);
+ orderPageListVo.setExpressNum(jsonObject.getString("num"));
+ } catch (Exception e) {
+ }
+
+ }
+
+ }
return pageInfo.setRecords(list);
}
-
-
- private void processAppUserIds(OrderPageList orderPageList, String searchKey, Function<String, R<List<AppUser>>> userSearchFunction) {
- if (StringUtils.isNotEmpty(searchKey)) {
- List<Long> userIds = Optional.ofNullable(userSearchFunction.apply(searchKey).getData())
- .orElse(Collections.emptyList())
- .stream()
- .map(AppUser::getId)
- .collect(Collectors.toList());
-
- if (CollectionUtils.isEmpty(userIds)) {
- return;
- }
-
- List<Long> existingUserIds = orderPageList.getAppUserIds();
- if (existingUserIds != null) {
- if (!containsAny(existingUserIds, userIds)) {
- return;
- }
- existingUserIds.addAll(userIds);
- } else {
- orderPageList.setAppUserIds(userIds);
- }
- }
- }
-
- private void processOrderPageListVo(OrderPageListVo orderPageListVo) {
- Long appUserId = orderPageListVo.getAppUserId();
- Optional.ofNullable(appUserClient.getAppUserById(appUserId))
- .ifPresent(appUser -> {
- orderPageListVo.setUserName(appUser.getName());
- orderPageListVo.setPhone(appUser.getPhone());
- });
-
- Optional.ofNullable(refundPassService.getOne(new LambdaQueryWrapper<RefundPass>()
- .eq(RefundPass::getOrderId, orderPageListVo.getId())
- .eq(RefundPass::getDelFlag, 0)
- .orderByDesc(RefundPass::getCreateTime)
- .last("limit 1")))
- .ifPresent(refundPass -> orderPageListVo.setRefundPassId(refundPass.getId().toString()));
-
- // 平台分佣
- BigDecimal commission = Optional.ofNullable(shopBalanceStatementClient.getShopBalanceStatementList(Arrays.asList(1, 2, 3), Long.valueOf(orderPageListVo.getId())).getData())
- .orElse(Collections.emptyList())
- .stream()
- .map(ShopBalanceStatement::getVariableAmount)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
- orderPageListVo.setGetCommission(commission);
-
- // 处理快递信息
- Optional.ofNullable(orderPageListVo.getExpressJson())
- .filter(expressJson -> !expressJson.equals("NULL"))
- .ifPresent(expressJson -> {
- try {
- JSONObject jsonObject = JSONObject.parseObject(expressJson);
- orderPageListVo.setExpressCompany(ExpressCompanyMap.getCompanyNameByCode(jsonObject.getString("com")));
- orderPageListVo.setExpressNum(jsonObject.getString("num"));
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException("快递信息解析失败");
- }
- });
- }
-
/**
- * 判断两个列表中是否至少有一个相同的元素
- * 此方法用于检查两个长整型列表之间的元素交集
- * 主要解决的问题是确定两个列表是否有共同的元素,用于避免潜在的数据不一致或错误
+ * 判断 list1 是否包含 list2 中的至少一个元素
*
- * @param list1 第一个列表,包含一系列长整型数值
- * @param list2 第二个列表,同样包含一系列长整型数值
- * @return 返回一个布尔值,如果两个列表中至少有一个相同的元素,则返回true,否则返回false
+ * @param list1 第一个列表
+ * @param list2 第二个列表
+ * @return 如果 list1 包含 list2 中的至少一个元素,返回 true;否则返回 false
*/
private boolean containsAny(List<Long> list1, List<Long> list2) {
- return list1.stream().anyMatch(list2::contains) || list2.stream().anyMatch(list1::contains);
+ // 将 list1 转换为 HashSet 以提高查询效率
+ Set<Long> set1 = new HashSet<>(list1);
+
+ // 遍历 list2,检查是否有元素存在于 set1 中
+ for (Long element : list2) {
+ if (set1.contains(element)) {
+ return true;
+ }
+ }
+
+ // 如果没有找到共同元素,返回 false
+ return false;
}
-
-
--
Gitblit v1.7.1