ruoyi-auth/src/main/resources/bootstrap.yml
@@ -6,8 +6,8 @@ spring: profiles: # 环境配置 # active: dev active: prod active: dev # active: prod application: # 应用名称 name: ruoyi-auth @@ -23,7 +23,7 @@ nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 @@ -31,7 +31,7 @@ password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 username: nacos password: nacos @@ -41,7 +41,8 @@ file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application.${spring.cloud.nacos.config.file-extension} --- spring: config: ruoyi-gateway/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@ allow-bean-definition-overriding: true profiles: # 环境配置 # active: dev active: prod active: dev # active: prod --- spring: config: @@ -23,7 +23,7 @@ nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 @@ -31,7 +31,7 @@ password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 username: nacos password: nacos @@ -41,18 +41,18 @@ file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application.${spring.cloud.nacos.config.file-extension} sentinel: # 取消控制台懒加载 eager: true transport: # 控制台地址 dashboard: 192.168.110.169:8718 dashboard: 127.0.0.1:8718 # nacos配置持久化 datasource: ds1: nacos: server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 dataId: sentinel-ruoyi-gateway groupId: DEFAULT_GROUP username: nacos ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -11,8 +11,8 @@ allow-bean-definition-overriding: true profiles: # 环境配置 # active: dev active: prod active: dev # active: prod --- spring: config: @@ -22,7 +22,7 @@ nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 @@ -30,7 +30,7 @@ password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP username: nacos @@ -40,7 +40,7 @@ file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application.${spring.cloud.nacos.config.file-extension} --- spring: config: ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@ allow-circular-references: true profiles: # 环境配置 # active: dev active: prod active: dev # active: prod --- spring: config: @@ -23,7 +23,7 @@ nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 @@ -31,7 +31,7 @@ password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP name: ${spring.application.name} @@ -41,7 +41,7 @@ file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application.${spring.cloud.nacos.config.file-extension} --- spring: config: 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; } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/RefundPassServiceImpl.java
@@ -129,35 +129,52 @@ if(2 == sysUser.getRoleType()){ shopId = sysUser.getObjectId(); } List<Long> appUserIds = new ArrayList<>(); //搜索条件,用户姓名和电话 if(StringUtils.isNotEmpty(refundPassListVo.getUserName()) || StringUtils.isNotEmpty(refundPassListVo.getPhone())){ List<AppUser> data = appUserClient.getAppUserByName(refundPassListVo.getUserName()).getData(); List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); if (collect.isEmpty()){ appUserIds.add(-1L); } appUserIds.addAll(collect); List<AppUser> data2 = appUserClient.getAppUserByPhone(refundPassListVo.getPhone()).getData(); List<Long> collect2 = data2.stream().map(AppUser::getId).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(data)){ for (AppUser datum : data) { for (AppUser appUser : data2) { if (!datum.getId().equals(appUser.getId())){ collect2.remove(appUser.getId()); } } } } if (collect2.isEmpty()){ appUserIds.add(-1L); } appUserIds.addAll(collect2); } //搜索条件,用户姓名 if(StringUtils.isNotEmpty(refundPassListVo.getName())){ List<AppUser> data = appUserClient.getAppUserByNameNoFilter(refundPassListVo.getName()).getData(); List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); if (CollectionUtils.isEmpty(collect)){ return new PageInfo<>(); } if(null != refundPassListVo.getAppUserIds()){ List<Long> appUserIds = refundPassListVo.getAppUserIds(); appUserIds.addAll(collect); refundPassListVo.setAppUserIds(appUserIds); }else{ refundPassListVo.setAppUserIds(collect); } } //搜索条件,用户电话 if(StringUtils.isNotEmpty(refundPassListVo.getPhone())){ List<AppUser> data = appUserClient.getAppUserByPhoneNoFilter(refundPassListVo.getPhone()).getData(); List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); if (CollectionUtils.isEmpty(collect)){ return new PageInfo<>(); } if(null != refundPassListVo.getAppUserIds()){ List<Long> appUserIds = refundPassListVo.getAppUserIds(); if (!containsAny(appUserIds,collect)) { return new PageInfo<>(); } appUserIds.addAll(collect); refundPassListVo.setAppUserIds(appUserIds); }else{ refundPassListVo.setAppUserIds(collect); } } if (null != refundPassListVo.getAppUserIds()){ refundPassListVo.setAppUserIds(refundPassListVo.getAppUserIds().stream().distinct().collect(Collectors.toList())); } PageInfo<OrderRefundPassList> pageInfo = new PageInfo(refundPassListVo.getPageCurr(), refundPassListVo.getPageSize()); List<OrderRefundPassList> orderRefundPassList = this.baseMapper.getOrderRefundPassList(pageInfo, refundPassListVo.getCode(), appUserIds, shopId, refundPassListVo.getRefundMethod(), refundPassListVo.getStatus()); List<OrderRefundPassList> orderRefundPassList = this.baseMapper.getOrderRefundPassList(pageInfo, refundPassListVo.getCode(), refundPassListVo.getAppUserIds(), shopId, refundPassListVo.getRefundMethod(), refundPassListVo.getStatus()); for (OrderRefundPassList refundPassList : orderRefundPassList) { AppUser appUser = appUserClient.getAppUserById(refundPassList.getAppUserId()); if(null != appUser){ @@ -168,6 +185,28 @@ return pageInfo.setRecords(orderRefundPassList); } /** * 判断 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; } // public void processAppUserIds(List<Long> appUserIds , String searchKey, Function<String, R<List<AppUser>>> userSearchFunction){ // if (StringUtils.isNotEmpty(searchKey)) { // List<Long> userIds = Optional.ofNullable(userSearchFunction.apply(searchKey).getData()) ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderRefundPassListVo.java
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @author zhibing.pu * @Date 2024/12/16 16:09 @@ -23,6 +25,8 @@ @ApiModelProperty("售后状态(1待审核2已完成3已拒绝4待退货5待平台收货)") private Integer status; private List<Long> appUserIds; private String orderNumber; private String userName; ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@ allow-circular-references: true profiles: # 环境配置 # active: dev active: prod active: dev # active: prod --- spring: config: @@ -23,7 +23,7 @@ nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 @@ -31,7 +31,7 @@ password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP name: ${spring.application.name} @@ -41,7 +41,7 @@ file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application.${spring.cloud.nacos.config.file-extension} --- spring: config: ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
@@ -124,7 +124,7 @@ //手动排序 if(StringUtils.isNotEmpty(search.getOrderByColumn())){ if("selling_price".equals(search.getOrderByColumn())){ if("tgs.selling_price".equals(search.getOrderByColumn())){ list.sort(new Comparator<GoodsVO>() { @Override public int compare(GoodsVO o1, GoodsVO o2) { ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@ allow-circular-references: true profiles: # 环境配置 # active: dev active: prod active: dev # active: prod --- spring: config: @@ -23,7 +23,7 @@ nacos: discovery: # 服务注册地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 service: ${spring.application.name} group: DEFAULT_GROUP namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 @@ -31,7 +31,7 @@ password: nacos config: # 配置中心地址 server-addr: 192.168.110.169:8848 server-addr: 127.0.0.1:8848 namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 group: DEFAULT_GROUP name: ${spring.application.name} @@ -41,7 +41,7 @@ file-extension: yml # 共享配置 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application.${spring.cloud.nacos.config.file-extension} --- spring: config: ruoyi-service/ruoyi-other/src/main/resources/mybatis-config.xml
@@ -4,8 +4,8 @@ <settings> <!-- 打印查询语句 不会写入到日志文件中--> <setting name="logImpl" value="STDOUT_LOGGING"/> <!--<setting name="logImpl" value="LOG4J" />--> <!-- <setting name="logImpl" value="STDOUT_LOGGING"/>--> <setting name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl" /> <!-- 控制全局缓存(二级缓存),按美团技术团队的说法,尽量别用缓存机制 emmmm.... --> <setting name="cacheEnabled" value="true"/> <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false -->