无关风月
2025-01-17 c08e13eb2c875a160b3f30acaa6d01306c19b444
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/qijisheng
1个文件已删除
53个文件已修改
1230 ■■■■ 已修改文件
doc/a.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AgentApplication.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/RefundPass.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SeckillActivityInfoClientFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SeckillActivityInfoClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/resources/bootstrap.yml 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/resources/logback.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/resources/bootstrap.yml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/resources/logback.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/logback.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AgentApplicationController.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShareController.java 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WithdrawalRequestsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/PaymentUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/TransferUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserPointDetailVO.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/resources/logback.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/RefundPassController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/payment/PaymentUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/payment/TransferUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/logback.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/CouponInfoServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/payment/PaymentUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/payment/TransferUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/resources/logback.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/CouponInfoMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/SeckillActivityInfoMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/a.json
File was deleted
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AgentApplication.java
@@ -36,6 +36,10 @@
    @ApiModelProperty(value = "用户id")
    @TableField("app_user_id")
    private Long appUserId;
    @ApiModelProperty(value = "当前vip")
    @TableField("vip_id")
    private Integer vipId;
    @ApiModelProperty(value = "申请类型 对应vip_id")
    @TableField("application_vip_id")
@@ -94,8 +98,5 @@
    @TableField(exist = false)
    private String idStr;
    @TableField(exist = false)
    private Integer vipId;
}
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/RefundPass.java
@@ -64,6 +64,7 @@
    private LocalDateTime authTime;
    @ApiModelProperty(value = "平台收货时间")
    @TableField("receive_time")
    private LocalDateTime receiveTime;
    @ApiModelProperty(value = "后台审核备注")
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SeckillActivityInfoClientFallbackFactory.java
@@ -22,6 +22,11 @@
            public R<SeckillActivityInfo> getSeckillActivityInfoById(Integer id) {
                return R.fail("根据id获取秒杀活动失败:" + cause.getMessage());
            }
            @Override
            public R<SeckillActivityInfo> getSeckillActivityInfoByGoodsId(Integer goodsId) {
                return R.fail();
            }
        };
    }
}
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SeckillActivityInfoClient.java
@@ -7,6 +7,7 @@
import com.ruoyi.other.api.factory.SeckillActivityInfoClientFallbackFactory;
import com.ruoyi.other.api.vo.GetSeckillActivityInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@@ -35,4 +36,7 @@
     */
    @PostMapping("/seckill-activity-info/getSeckillActivityInfoById")
    R<SeckillActivityInfo> getSeckillActivityInfoById(@RequestParam("id") Integer id);
    @GetMapping("/seckill-activity-info/getSeckillActivityInfoByGoodsId")
    public R<SeckillActivityInfo> getSeckillActivityInfoByGoodsId(@RequestParam("goodsId") Integer goodsId);
}
ruoyi-auth/src/main/resources/bootstrap.yml
@@ -1,13 +1,13 @@
server:
  port: 9100
  tomcat:
    basedir: /data/tomcat
    basedir: /mnt/tomcat
# Spring
spring:
  profiles:
    # 环境配置
    active: dev
#    active: prod
#    active: dev
    active: prod
  application:
    # 应用名称
    name: ruoyi-auth
@@ -43,70 +43,6 @@
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
---
seata:
  enabled: true
  application-id: ${spring.application.name}
  tx-service-group: seata_tx_group    #此处配置自定义的seata事务分组名称
  enable-auto-data-source-proxy: false    #关闭数据库代理
  service:
    vgroup-mapping:
      seata_tx_group: default
  data-source-proxy-mode: AT
  config:
    type: nacos
    nacos:
      # 开发环境
      server-addr: 192.168.110.169:8848
      namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
      group: DEFAULT_GROUP
      data-id: seata-server.properties
      username: nacos
      password: nacos
      # 生产环境
#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
#      group: DEFAULT_GROUP
#      data-id: seata-server.properties
#      username: nacos
#      password: nacos
  registry:
    type: nacos
    nacos:
      application: seata-server
      # 开发环境
      server-addr: 192.168.110.169:8848
      namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
      group: DEFAULT_GROUP
      username: nacos
      password: nacos
      # 生产环境
#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
#      group: DEFAULT_GROUP
#      username: nacos
#      password: nacos
  cloud:
    nacos:
      discovery:
        # 开发环境
        server-addr: 192.168.110.169:8848 # nacos注册中心地址
        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 # 命名空间
        group: DEFAULT_GROUP
        application: seata-server #Nacos 中 Seata 名称
        username: nacos
        password: nacos
        # 生产环境
#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
#        group: DEFAULT_GROUP
#        application: seata-server #Nacos 中 Seata 名称
#        username: nacos
#        password: nacos
    sentinel:
      transport:
        dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
      eager: true
---
spring:
  config:
    activate:
@@ -115,16 +51,16 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        server-addr: 127.0.0.1:8848
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
      config:
        # 配置中心地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        server-addr: 127.0.0.1:8848
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
        group: DEFAULT_GROUP
@@ -133,7 +69,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-auth/src/main/resources/logback.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 日志存放路径 -->
    <property name="log.path" value="logs/ruoyi-auth" />
    <property name="log.path" value="/mnt/app/ruoyi-auth" />
   <!-- 日志输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
ruoyi-gateway/src/main/resources/bootstrap.yml
@@ -1,7 +1,7 @@
server:
  port: 9000
  tomcat:
    basedir: /data/tomcat
    basedir: /mnt/tomcat
    max-swallow-size: 100MB
# Spring
spring:
@@ -12,8 +12,8 @@
    allow-bean-definition-overriding: true
  profiles:
    # 环境配置
    active: dev
#    active: prod
#    active: dev
    active: prod
---
spring:
  config:
@@ -68,16 +68,16 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        server-addr: 127.0.0.1:8848
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
      config:
        # 配置中心地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        server-addr: 127.0.0.1:8848
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
        group: DEFAULT_GROUP
@@ -86,7 +86,7 @@
        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
@@ -97,7 +97,7 @@
      datasource:
        ds1:
          nacos:
            server-addr: 192.168.0.137:8848,192.168.0.123:8848
            server-addr: 127.0.0.1:8848
            dataId: sentinel-ruoyi-gateway
            groupId: DEFAULT_GROUP
            username: nacos
ruoyi-gateway/src/main/resources/logback.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 日志存放路径 -->
    <property name="log.path" value="logs/ruoyi-gateway" />
    <property name="log.path" value="/mnt/app/ruoyi-gateway" />
   <!-- 日志输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -37,10 +37,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -83,11 +80,13 @@
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = sysUserService.getById(userid);
        LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<SysRole>()
                .notIn(SysRole::getRoleId, Arrays.asList(2, 77, 78, 79, 80))
                .ne(SysRole::getRoleId, 2)
                .eq(SysRole::getDelFlag, 0)
                .eq(SysRole::getStatus, 0);
        if (sysUser.getRoleType() == 2) {
            wrapper.eq(SysRole::getShopId, sysUser.getObjectId());
        }else {
            wrapper.isNull(SysRole::getShopId);
        }
        List<SysRole> list = roleService.list(wrapper);
        return AjaxResult.success(list);
@@ -127,7 +126,7 @@
        SysRole role = new SysRole();
        role.setRoleName(dto.getRoleName());
        LambdaQueryWrapper<SysRole> wrapper = Wrappers.lambdaQuery(SysRole.class)
                .eq(SysRole::getRoleName, dto.getRoleName());
                .eq(SysRole::getRoleName, dto.getRoleName()).eq(SysRole::getDelFlag, 0);
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = sysUserService.getById(userid);
        if(sysUser.getRoleType() == 2){
ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -1,7 +1,7 @@
server:
  port: 9800
  tomcat:
    basedir: /data/tomcat
    basedir: /mnt/tomcat
# Spring
spring: 
  application:
@@ -11,8 +11,8 @@
    allow-bean-definition-overriding: true
  profiles:
    # 环境配置
    active: dev
#    active: prod
#    active: dev
    active: prod
---
spring:
  config:
@@ -42,70 +42,6 @@
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
---
seata:
  enabled: true
  application-id: ${spring.application.name}
  tx-service-group: seata_tx_group    #此处配置自定义的seata事务分组名称
  enable-auto-data-source-proxy: false
  service:
    vgroup-mapping:
      seata_tx_group: default
  data-source-proxy-mode: AT
  config:
    type: nacos
    nacos:
      # 开发环境
      server-addr: 192.168.110.169:8848
      namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
      group: DEFAULT_GROUP
      data-id: seata-server.properties
      username: nacos
      password: nacos
      # 生产环境
#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
#      group: DEFAULT_GROUP
#      data-id: seata-server.properties
#      username: nacos
#      password: nacos
  registry:
    type: nacos
    nacos:
      application: seata-server
      # 开发环境
      server-addr: 192.168.110.169:8848
      namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
      group: DEFAULT_GROUP
      username: nacos
      password: nacos
      # 生产环境
#      server-addr: 192.168.0.137:8848,192.168.0.123:8848
#      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
#      group: DEFAULT_GROUP
#      username: nacos
#      password: nacos
  cloud:
    nacos:
      discovery:
        # 开发环境
        server-addr: 192.168.110.169:8848 # nacos注册中心地址
        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 # 命名空间
        group: DEFAULT_GROUP
        application: seata-server #Nacos 中 Seata 名称
        username: nacos
        password: nacos
        # 生产环境
#        server-addr: 192.168.0.137:8848,192.168.0.123:8848
#        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
#        group: DEFAULT_GROUP
#        application: seata-server #Nacos 中 Seata 名称
#        username: nacos
#        password: nacos
    sentinel:
      transport:
        dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
      eager: true
---
spring:
  config:
    activate:
@@ -114,16 +50,16 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        server-addr: 127.0.0.1:8848
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
      config:
        # 配置中心地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        server-addr: 127.0.0.1:8848
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
        group: DEFAULT_GROUP
@@ -132,7 +68,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-modules/ruoyi-system/src/main/resources/logback.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 日志存放路径 -->
    <property name="log.path" value="logs/ruoyi-system" />
    <property name="log.path" value="/mnt/app/ruoyi-system" />
   <!-- 日志输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AgentApplicationController.java
@@ -49,6 +49,10 @@
    private BaseSettingClient baseSettingClient;
    @Resource
    private VipCenterService vipCenterService;
    @Resource
    private VipSettingClient vipSettingClient;
    @Resource
    private UserChangeLogService userChangeLogService;
    @PostMapping("/apply")
    @ApiOperation(value = "会员申请", tags = {"会员中心-小程序"})
@@ -61,16 +65,9 @@
    @ApiOperation(value = "会员申请列表", tags = {"后台"})
    public R<IPage<AgentApplication>> page(@RequestBody AgentQuery agentQuery) {
        IPage<AgentApplication> agentApplicationIPage = agentApplicationService.pageList(agentQuery);
        for (AgentApplication record : agentApplicationIPage.getRecords()) {
            AppUser byId = appUserService.getById(record.getAppUserId());
            if (byId!=null){
                record.setVipId(byId.getVipId());
            }
        }
        return R.ok(agentApplicationIPage);
    }
    @Resource
    private VipSettingClient vipSettingClient;
    @GetMapping("/detail")
    @ApiOperation(value = "会员申请详情", tags = {"会员中心-小程序"})
    public R<AgentApplication> detail(@RequestParam Long id) {
@@ -82,31 +79,11 @@
        VipSettingDto vipSettingDto = new VipSettingDto();
        BeanUtils.copyProperties(vipSetting.getData(),vipSettingDto);
        agentApplication.setVipSettingDto(vipSettingDto);
//        List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>()
//                .ne(AppUser::getStatus, 3)
//                .eq(AppUser::getDelFlag, 0));
//        ArrayList<Long> userIds = new ArrayList<>();
//        userIds.add(appUser.getId());
//        getUserAncestorList(appUser,userIds,new ArrayList<>(),appUserList);
        agentApplication.setVipId(agentApplication.getApplicationVipId());
        agentApplication.setVipId(agentApplication.getVipId());
        return R.ok(agentApplication);
    }
    public void getUserAncestorList(AppUser user,List<Long> userIds, List<AppUser> children,List<AppUser> list) {
        children = list.stream().filter(u -> userIds.contains(u.getInviteUserId()) || userIds.contains(u.getTopInviteId())).collect(Collectors.toList());
        if(!CollectionUtils.isEmpty(children)){
            user.setCount1((user.getCount1() == null ? 0L : user.getCount1()) + children.stream().filter(e->e.getVipId() == 1).count());
            user.setCount2((user.getCount2() == null ? 0L : user.getCount2()) + children.stream().filter(e->e.getVipId() == 2).count());
            user.setCount3((user.getCount3() == null ? 0L : user.getCount3()) + children.stream().filter(e->e.getVipId() == 3).count());
            user.setCount4((user.getCount4() == null ? 0L : user.getCount4()) + children.stream().filter(e->e.getVipId() == 4).count());
            user.setCount5((user.getCount5() == null ? 0L : user.getCount5()) + children.stream().filter(e->e.getVipId() == 5).count());
            user.setCount6((user.getCount6() == null ? 0L : user.getCount6()) + children.stream().filter(e->e.getVipId() == 6).count());
            user.setCount7((user.getCount7() == null ? 0L : user.getCount7()) + children.stream().filter(e->e.getVipId() == 7).count());
            List<Long> userIdList = children.stream().map(AppUser::getId).collect(Collectors.toList());
            getUserAncestorList(user,userIdList, children,list);
        }
    }
    @Resource
    private UserChangeLogService userChangeLogService;
    @GetMapping("/auth")
    @ApiOperation(value = "会员申请审核", tags = {"会员中心-小程序"})
@@ -115,45 +92,48 @@
        byId.setStatus(status);
        byId.setRemark(remark);
        agentApplicationService.updateById(byId);
        AppUser byId1 = appUserService.getById(byId.getAppUserId());
        //插入等级变化数据
        UserChangeLog userChangeLog = new UserChangeLog();
        userChangeLog.setCreateTime(LocalDateTime.now());
        userChangeLog.setAppUserId(byId.getAppUserId());
        userChangeLog.setBeforeVipId(byId1.getVipId());
        userChangeLog.setAfterVipId(byId.getApplicationVipId());
        if (userChangeLog.getBeforeVipId()>userChangeLog.getAfterVipId()) {
            userChangeLog.setChangeType(0);
        }else {
            userChangeLog.setChangeType(1);
        }
        userChangeLogService.save(userChangeLog);
        //变更会员等级
        byId1.setVipId(byId.getApplicationVipId());
        // 当用户为合伙人时,计算合伙人积分和培育积分
        Integer vipId = byId1.getVipId();
        if (vipId == 7){
            R<BaseSetting> baseSetting = baseSettingClient.getBaseSetting(1);
            BaseSetting data = baseSetting.getData();
            int basePoint = Integer.parseInt(data.getContent());
            // 当前用户计算合伙人积分
            R<VipSetting> vipSetting = vipSettingClient.getVipSetting(vipId);
            Integer point = getPoint(vipSetting, byId1, basePoint);
            byId1.setPartPoint(point);
            // 上级计算培育积分
            R<BaseSetting> baseSetting2 = baseSettingClient.getBaseSetting(1);
            BaseSetting data2 = baseSetting2.getData();
            int basePoint2 = Integer.parseInt(data2.getContent());
            Long inviteUserId = byId1.getInviteUserId();
            AppUser byId2 = appUserService.getById(inviteUserId);
            if (byId2 != null){
                Integer point1 = getPoint(vipSetting, byId2, basePoint2);
                byId2.setPartGrowPoint(point1);
        if(2 == status){
            AppUser byId1 = appUserService.getById(byId.getAppUserId());
            //插入等级变化数据
            UserChangeLog userChangeLog = new UserChangeLog();
            userChangeLog.setCreateTime(LocalDateTime.now());
            userChangeLog.setAppUserId(byId.getAppUserId());
            userChangeLog.setBeforeVipId(byId1.getVipId());
            userChangeLog.setAfterVipId(byId.getApplicationVipId());
            if (userChangeLog.getBeforeVipId()>userChangeLog.getAfterVipId()) {
                userChangeLog.setChangeType(0);
            }else {
                userChangeLog.setChangeType(1);
            }
            userChangeLogService.save(userChangeLog);
            //变更会员等级
            byId1.setVipId(byId.getApplicationVipId());
            // 当用户为合伙人时,计算合伙人积分和培育积分
            Integer vipId = byId1.getVipId();
            if (vipId == 7){
                R<BaseSetting> baseSetting = baseSettingClient.getBaseSetting(1);
                BaseSetting data = baseSetting.getData();
                int basePoint = Integer.parseInt(data.getContent());
                // 当前用户计算合伙人积分
                R<VipSetting> vipSetting = vipSettingClient.getVipSetting(vipId);
                Integer point = getPoint(vipSetting, byId1, basePoint);
                byId1.setPartPoint(point);
                // 上级计算培育积分
                R<BaseSetting> baseSetting2 = baseSettingClient.getBaseSetting(2);
                BaseSetting data2 = baseSetting2.getData();
                int basePoint2 = Integer.parseInt(data2.getContent());
                Long inviteUserId = byId1.getInviteUserId();
                AppUser byId2 = appUserService.getById(inviteUserId);
                if (byId2 != null){
                    Integer point1 = getPoint(vipSetting, byId1, basePoint2);
                    byId2.setPartGrowPoint(point1);
                    appUserService.updateById(byId2);
                }
            }
            appUserService.updateById(byId1);
        }
        appUserService.updateById(byId1);
        return R.ok(byId);
    }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -531,7 +531,7 @@
        DangerInfoDto dangerInfoDto = new DangerInfoDto();
        BeanUtils.copyProperties(data, dangerInfoDto);
        List<UserPoint> list1 = userPointService.lambdaQuery().eq(UserPoint::getAppUserId,id).eq(UserPoint::getType, 1).ge(UserPoint::getCreateTime, now.minusDays(data.getKeepBuyDay())).list();
        List<UserPoint> list2 = userPointService.lambdaQuery().eq(UserPoint::getAppUserId,id).eq(UserPoint::getType, 9).ge(UserPoint::getCreateTime, now.minusDays(data.getKeepBuyDay())).list();
        List<UserPoint> list2 = userPointService.lambdaQuery().eq(UserPoint::getAppUserId,id).eq(UserPoint::getType, 2).ge(UserPoint::getCreateTime, now.minusDays(data.getKeepBuyDay())).list();
        List<UserPoint> list3 = userPointService.lambdaQuery().eq(UserPoint::getAppUserId,id).eq(UserPoint::getType, 8).ge(UserPoint::getCreateTime, now.minusDays(data.getKeepBuyDay())).list();
        Integer userKeepBuyPoint = 0;
        for (UserPoint userPoint : list1) {
@@ -565,6 +565,27 @@
        userChangeLog.setChangeType(0);
        userChangeLogService.save(userChangeLog);
        appUser.setVipId(appUser.getVipId() - 1);
        appUser.setIsDanger(0);
        //检查是否达标,不达标继续标红
        VipSetting vipSetting = vipSettingClient.getVipSetting(appUser.getVipId()).getData();
        //消费积分
        List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
        int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
        if(sum < vipSetting.getKeepBuyPoint()){
            appUser.setIsDanger(1);
        }
        //返佣积分
        list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
        sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
        if(sum < vipSetting.getKeepSharePoint()){
            appUser.setIsDanger(1);
        }
        //门店业绩
        list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
        sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
        if(sum < vipSetting.getKeepShopPoint()){
            appUser.setIsDanger(1);
        }
        appUserService.updateById(appUser);
        return R.ok();
    }
@@ -631,7 +652,7 @@
    @GetMapping("/detail")
    @ApiOperation(value = "用户列表-详情", tags = {"管理后台"})
    public R<AppUser> detail(Long id) {
    public R<AppUser> detail(Long id,Integer shopId) {
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = sysUserClient.getSysUser(userid).getData();
@@ -665,7 +686,7 @@
        List<AppUser> list = appUserService.lambdaQuery().eq(AppUser::getInviteUserId, id).list();
        byId.setBottomUsers(list);
        //消费总金额
        R<List<Order>> orderR = remoteOrderGoodsClient.byShopIdAndUserId(id,byId.getShopId());
        R<List<Order>> orderR = remoteOrderGoodsClient.byShopIdAndUserId(id,shopId);
        List<Order> orderList = orderR.getData();
        if (!CollectionUtils.isEmpty(orderList)){
            BigDecimal paymentAmount = orderList.stream().map(Order::getPaymentAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShareController.java
@@ -47,50 +47,52 @@
    
    
    
    @GetMapping("/saveAppUserShare")
    @ApiOperation(value = "操作分享调用接口", tags = {"小程序-推广中心"})
    public R saveAppUserShare(){
        Long userid = tokenService.getLoginUserApplet().getUserid();
        AppUserShare appUserShare = appUserShareService.getOne(new LambdaQueryWrapper<AppUserShare>().eq(AppUserShare::getAppUserId, userid)
                .last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(create_time, '%Y-%m-%d')"));
        if(null == appUserShare){
            appUserShare = new AppUserShare();
            appUserShare.setAppUserId(userid);
            appUserShare.setCreateTime(LocalDateTime.now());
            appUserShareService.save(appUserShare);
            //添加用户分佣积分
            AppUser appUser = appUserService.getById(userid);
            PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
            if(null != pointSetting){
                Integer everySharePoint = pointSetting.getEverySharePoint();
                Integer everySharePoint1 = 0;
                if(1 == pointSetting.getWorkPointOpen()){
                    everySharePoint1 = new BigDecimal(everySharePoint).multiply(pointSetting.getWorkPoint().divide(new BigDecimal(100))).intValue();
                }
                Integer lavePoint = appUser.getLavePoint();
                appUser.setTotalPoint(appUser.getTotalPoint() + everySharePoint);
                appUser.setLavePoint(appUser.getLavePoint() + everySharePoint);
                appUser.setAvailablePoint(appUser.getAvailablePoint() + everySharePoint1);
                appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + everySharePoint1);
                if(null != pointSetting && 1 == pointSetting.getWorkPointGift()){
                    appUser.setTransferablePoint(appUser.getTransferablePoint() + everySharePoint1);
                }
                appUser.setTotalSharePoint(appUser.getTotalSharePoint() + everySharePoint);
                appUserService.updateById(appUser);
                //添加积分变动记录
                UserPoint userPoint = new UserPoint();
                userPoint.setType(6);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(everySharePoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(appUser.getId());
                userPointService.save(userPoint);
                //变更等级
                appUserService.vipUpgrade(appUser.getId());
            }
        }
        return R.ok();
    }
//    @GetMapping("/saveAppUserShare")
//    @ApiOperation(value = "操作分享调用接口", tags = {"小程序-推广中心"})
//    public R saveAppUserShare(){
//        Long userid = tokenService.getLoginUserApplet().getUserid();
//        AppUserShare appUserShare = appUserShareService.getOne(new LambdaQueryWrapper<AppUserShare>().eq(AppUserShare::getAppUserId, userid)
//                .last(" and DATE_FORMAT(now(), '%Y-%m-%d') = DATE_FORMAT(create_time, '%Y-%m-%d')"));
//        if(null == appUserShare){
//            appUserShare = new AppUserShare();
//            appUserShare.setAppUserId(userid);
//            appUserShare.setCreateTime(LocalDateTime.now());
//            appUserShareService.save(appUserShare);
//
//            //添加用户分佣积分
//            AppUser appUser = appUserService.getById(userid);
//            PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
//            if(null != pointSetting){
//                Integer everySharePoint = pointSetting.getEverySharePoint();
//                Integer everySharePoint1 = 0;
//                if(1 == pointSetting.getWorkPointOpen()){
//                    everySharePoint1 = new BigDecimal(everySharePoint).multiply(pointSetting.getWorkPoint().divide(new BigDecimal(100))).intValue();
//                }
//                Integer lavePoint = appUser.getLavePoint();
//                appUser.setTotalPoint(appUser.getTotalPoint() + everySharePoint);
//                appUser.setLavePoint(appUser.getLavePoint() + everySharePoint);
//                appUser.setAvailablePoint(appUser.getAvailablePoint() + everySharePoint1);
//                appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + everySharePoint1);
//                if(null != pointSetting && 1 == pointSetting.getWorkPointGift()){
//                    appUser.setTransferablePoint(appUser.getTransferablePoint() + everySharePoint1);
//                }
//                appUser.setTotalSharePoint(appUser.getTotalSharePoint() + everySharePoint);
//                appUserService.updateById(appUser);
//                //添加积分变动记录
//                if(everySharePoint > 0){
//                    UserPoint userPoint = new UserPoint();
//                    userPoint.setType(4);
//                    userPoint.setHistoricalPoint(lavePoint);
//                    userPoint.setVariablePoint(everySharePoint);
//                    userPoint.setBalance(appUser.getLavePoint());
//                    userPoint.setCreateTime(LocalDateTime.now());
//                    userPoint.setAppUserId(appUser.getId());
//                    userPointService.save(userPoint);
//                }
//                //变更等级
//                appUserService.vipUpgrade(appUser.getId());
//            }
//        }
//        return R.ok();
//    }
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
@@ -243,15 +243,17 @@
            byId.setLavePoint(byId.getLavePoint() - point);
            appUserService.updateById(byId);
            
            UserPoint userPoint = new UserPoint();
            userPoint.setType(15);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(point);
            userPoint.setBalance(byId.getLavePoint());
            userPoint.setAppUserId(userid);
            userPoint.setObjectId(Long.valueOf(data.getId()));
            userPoint.setCreateTime(LocalDateTime.now());
            userPointService.save(userPoint);
            if(point > 0){
                UserPoint userPoint = new UserPoint();
                userPoint.setType(15);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(point);
                userPoint.setBalance(byId.getLavePoint());
                userPoint.setAppUserId(userid);
                userPoint.setObjectId(Long.valueOf(data.getId()));
                userPoint.setCreateTime(LocalDateTime.now());
                userPointService.save(userPoint);
            }
        }
        //增加优惠券记录,根据时间类型设置开始结束时间
        UserCoupon userCoupon = new UserCoupon();
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java
@@ -97,14 +97,16 @@
                appUserService.updateById(appUser);
    
                //添加积分变动记录
                UserPoint userPoint = new UserPoint();
                userPoint.setType(5);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(signPoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(appUser.getId());
                userPointService.save(userPoint);
                if(signPoint > 0){
                    UserPoint userPoint = new UserPoint();
                    userPoint.setType(5);
                    userPoint.setHistoricalPoint(lavePoint);
                    userPoint.setVariablePoint(signPoint);
                    userPoint.setBalance(appUser.getLavePoint());
                    userPoint.setCreateTime(LocalDateTime.now());
                    userPoint.setAppUserId(appUser.getId());
                    userPointService.save(userPoint);
                }
                //变更等级
                appUserService.vipUpgrade(appUser.getId());
            }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/BalanceChangeRecordMapper.java
@@ -15,6 +15,9 @@
    List<BalanceChangeRecord> selectBalanceChangeRecordList(@Param("changeRecord") BalanceChangeRecord balanceChangeRecord);
    List<BalanceChangeRecord> selectBalanceChangeRecordList1(@Param("changeRecord") BalanceChangeRecord balanceChangeRecord);
    IPage<BalanceChangeRecord> queryCommissionStatistics(@Param("page") Page<BalanceChangeRecord> page,
                                                         @Param("changeRecord") BalanceChangeRecord changeRecord);
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AgentApplicationServiceImpl.java
@@ -60,6 +60,7 @@
            throw new RuntimeException("已发起申请,请等待平台工作人员与您联系");
        }
        agentApplication.setAppUserId(loginUserApplet.getUserid());
        agentApplication.setVipId(appUser.getVipId());
        agentApplication.setStatus(1);
        agentApplication.setApplicationTime(LocalDateTime.now());
        agentApplication.setShopPoint(appUser.getShopPoint());
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -464,8 +464,8 @@
            
            //获取微信推广二维码
            String fileName = UUID.randomUUID() + ".jpg";
            weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.TRIAL, filePath + fileName);
            appUser.setQrCode(accessPath + fileName);
            String getwxacodeunlimit = weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.RELEASE, filePath + fileName);
            appUser.setQrCode(getwxacodeunlimit);
            this.updateById(appUser);
        }
@@ -898,13 +898,20 @@
        Long userid = tokenService.getLoginUserApplet().getUserid();
        Object cacheObject = redisService.getCacheObject("ONLINE_" + userid);
        if(null == cacheObject){
            redisService.setCacheObject("ONLINE_" + userid, 0, 15L, TimeUnit.MINUTES);
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("time", System.currentTimeMillis());
            jsonObject.put("online", 0);
            redisService.setCacheObject("ONLINE_" + userid, jsonObject, 1L, TimeUnit.HOURS);
        }else{
            Integer duration = (Integer) cacheObject;
            duration += 10;
            JSONObject jsonObject = (JSONObject) cacheObject;
            long time = System.currentTimeMillis() - jsonObject.getInteger("time");
            Integer online = jsonObject.getInteger("online");
            online += 10;
            //满足一个小时,开始发放积分,计时归0
            if(60 >= duration){
                redisService.setCacheObject("ONLINE_" + userid, 0, 15L, TimeUnit.MINUTES);
            if(time >= 3600000L && 60 <= online){
                jsonObject.put("time", System.currentTimeMillis());
                jsonObject.put("online", 0);
                redisService.setCacheObject("ONLINE_" + userid, jsonObject, 1L, TimeUnit.HOURS);
                AppUser appUser = this.getById(userid);
                PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                if(null != pointSetting){
@@ -924,19 +931,22 @@
                    appUser.setTotalHourPoint(appUser.getTotalHourPoint() + hourPoint);
                    this.updateById(appUser);
                    //添加积分变动记录
                    UserPoint userPoint = new UserPoint();
                    userPoint.setType(6);
                    userPoint.setHistoricalPoint(lavePoint);
                    userPoint.setVariablePoint(hourPoint);
                    userPoint.setBalance(appUser.getLavePoint());
                    userPoint.setCreateTime(LocalDateTime.now());
                    userPoint.setAppUserId(appUser.getId());
                    userPointService.save(userPoint);
                    if(hourPoint > 0){
                        UserPoint userPoint = new UserPoint();
                        userPoint.setType(6);
                        userPoint.setHistoricalPoint(lavePoint);
                        userPoint.setVariablePoint(hourPoint);
                        userPoint.setBalance(appUser.getLavePoint());
                        userPoint.setCreateTime(LocalDateTime.now());
                        userPoint.setAppUserId(appUser.getId());
                        userPointService.save(userPoint);
                    }
                    //变更等级
                    vipUpgrade(appUser.getId());
                }
            }else{
                redisService.setCacheObject("ONLINE_" + userid, duration, 15L, TimeUnit.MINUTES);
                jsonObject.put("online", online);
                redisService.setCacheObject("ONLINE_" + userid, jsonObject, 1L, TimeUnit.HOURS);
            }
        }
    }
@@ -967,97 +977,33 @@
    public void demotionDetection() {
        //代理
        List<AppUser> appUserList = new ArrayList<>();
        VipSetting vipSetting = vipSettingClient.getVipSetting(5).getData();
        List<AppUser> list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 5).eq(AppUser::getStatus, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getIsDanger, 0));
        for (AppUser appUser : list) {
            //消费积分
            List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
            int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepBuyPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //返佣积分
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepSharePoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //门店业绩
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepShopPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
            }
        }
        if(appUserList.size() > 0){
            this.updateBatchById(appUserList);
        }
        //总代
        appUserList = new ArrayList<>();
        vipSetting = vipSettingClient.getVipSetting(6).getData();
        list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 6).eq(AppUser::getStatus, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getIsDanger, 0));
        for (AppUser appUser : list) {
            //消费积分
            List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
            int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepBuyPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //返佣积分
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepSharePoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //门店业绩
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepShopPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
            }
        }
        if(appUserList.size() > 0){
            this.updateBatchById(appUserList);
        }
        //合伙人
        appUserList = new ArrayList<>();
        vipSetting = vipSettingClient.getVipSetting(7).getData();
        list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 7).eq(AppUser::getStatus, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getIsDanger, 0));
        for (AppUser appUser : list) {
            //消费积分
            List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
            int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepBuyPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //返佣积分
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepSharePoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //门店业绩
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepShopPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
        for (int i = 5; i < 8; i++) {
            VipSetting vipSetting = vipSettingClient.getVipSetting(i).getData();
            List<AppUser> list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, i).eq(AppUser::getStatus, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getIsDanger, 0));
            for (AppUser appUser : list) {
                //消费积分
                List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
                int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
                if(sum < vipSetting.getKeepBuyPoint()){
                    appUser.setIsDanger(1);
                    appUserList.add(appUser);
                    continue;
                }
                //返佣积分
                list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
                sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
                if(sum < vipSetting.getKeepSharePoint()){
                    appUser.setIsDanger(1);
                    appUserList.add(appUser);
                    continue;
                }
                //门店业绩
                list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
                sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
                if(sum < vipSetting.getKeepShopPoint()){
                    appUser.setIsDanger(1);
                    appUserList.add(appUser);
                }
            }
        }
        if(appUserList.size() > 0){
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
@@ -42,6 +42,7 @@
    @Override
    public CommissionStatistics commissionStatistics(Page<BalanceChangeRecord> page, BalanceChangeRecord balanceChangeRecord) {
        balanceChangeRecord.setChangeType(4);
        List<BalanceChangeRecord> balanceChangeRecordList = this.baseMapper.selectBalanceChangeRecordList(balanceChangeRecord);
        BigDecimal totalCommission = balanceChangeRecordList.stream()
@@ -75,18 +76,15 @@
        ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
        shopBalanceStatement.setType(1);
        List<BalanceChangeRecord> balanceChangeRecordList = this.baseMapper.selectBalanceChangeRecordList(balanceChangeRecord);
        List<BalanceChangeRecord> balanceChangeRecordList = this.baseMapper.selectBalanceChangeRecordList1(balanceChangeRecord);
        List<WalletStatisticsDetail> walletStatisticsDetailList = new ArrayList<>();
        for (BalanceChangeRecord changeRecord : balanceChangeRecordList) {
            WalletStatisticsDetail walletStatisticsDetail = new WalletStatisticsDetail();
            BeanUtils.copyBeanProp(walletStatisticsDetail, changeRecord);
            walletStatisticsDetailList.add(walletStatisticsDetail);
        }
        // 按时间排序(倒序)
        walletStatisticsDetailList.sort(Comparator.comparing(WalletStatisticsDetail::getCreateTime).reversed());
        long current = page.getCurrent();
        long size = page.getSize();
        if (current < 1) {
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
@@ -93,6 +93,11 @@
        if (CollectionUtil.isNotEmpty(page.getRecords())) {
            List<UserPointDetailVO> collect = page.getRecords().stream().map(p -> {
                UserPointDetailVO userPointDetailVO = new UserPointDetailVO();
                if (p.getType() != null && (p.getType().equals(12) || p.getType().equals(13))){
                    Long appUserId = p.getAppUserId();
                    AppUser appUser = appUserService.getById(appUserId);
                    userPointDetailVO.setName(appUser.getName());
                }
                userPointDetailVO.setType(p.getType());
                userPointDetailVO.setVariablePoint(p.getVariablePoint());
                String format = p.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
@@ -162,14 +167,16 @@
        appUserForPhoe.setTotalAvailablePoint(appUserForPhoe.getTotalAvailablePoint() + point);
        appUserService.updateById(appUserForPhoe);
        //构建积分流水记录
        UserPoint userPoint = new UserPoint();
        userPoint.setType(12);
        userPoint.setHistoricalPoint(lavePoint1);
        userPoint.setVariablePoint(point);
        userPoint.setBalance(appUserForPhoe.getLavePoint());
        userPoint.setCreateTime(LocalDateTime.now());
        userPoint.setAppUserId(appUserForPhoe.getId());
        userPointService.save(userPoint);
        if(point > 0){
            UserPoint userPoint = new UserPoint();
            userPoint.setType(12);
            userPoint.setHistoricalPoint(lavePoint1);
            userPoint.setVariablePoint(point);
            userPoint.setBalance(appUserForPhoe.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(appUserForPhoe.getId());
            userPointService.save(userPoint);
        }
        Integer lavePoint = appUser.getLavePoint();
        appUser.setLavePoint(appUser.getLavePoint() - point);
@@ -177,14 +184,16 @@
        appUser.setAvailablePoint(appUser.getAvailablePoint() - point);
        appUserService.updateById(appUser);
        //构建积分流水记录
        userPoint = new UserPoint();
        userPoint.setType(13);
        userPoint.setHistoricalPoint(lavePoint);
        userPoint.setVariablePoint(point);
        userPoint.setBalance(appUser.getLavePoint());
        userPoint.setCreateTime(LocalDateTime.now());
        userPoint.setAppUserId(appUser.getId());
        userPointService.save(userPoint);
        if(point > 0){
            UserPoint userPoint = new UserPoint();
            userPoint.setType(13);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(point);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(appUser.getId());
            userPointService.save(userPoint);
        }
        return R.ok();
    }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/WithdrawalRequestsServiceImpl.java
@@ -53,7 +53,7 @@
    @Override
    public void withdrawalApply(WithdrawalRequestsDTO params) {
        BigDecimal withdrawalAmount = params.getWithdrawalAmount();
        if (withdrawalAmount.compareTo(MAX_WITHDRAWAL_AMOUNT) > 0) {
        if (withdrawalAmount.compareTo(MAX_WITHDRAWAL_AMOUNT) > 0 && params.getWithdrawalMethod().equals(1)) {
            throw new ServiceException("提现失败,单次提现金额不能超过200元!");
        }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/PaymentUtil.java
@@ -37,7 +37,7 @@
    /**
     * 支付回调地址
     */
    private static final String callbackUrl = "http://221.182.45.100:9000";
    private static final String callbackUrl = "https://www.qijisheng.top";
    
    
    /**
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/TransferUtil.java
@@ -40,7 +40,7 @@
    /**
     * 支付回调地址
     */
    private static final String callbackUrl = "http://221.182.45.100:9000";
    private static final String callbackUrl = "https://www.qijisheng.top";
    
    
    /**
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java
@@ -7,6 +7,7 @@
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.account.util.ObsUploadUtil;
import com.ruoyi.common.redis.service.RedisService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;
@@ -240,7 +241,8 @@
     */
    public String getwxacodeunlimit(String page, String scene, EnvVersion env_version, String filePath){
        InputStream getwxacodeunlimit = getwxacodeunlimit(page, scene, env_version);
        File file = FileUtil.writeFromStream(getwxacodeunlimit, new File(filePath));
        return file.getPath();
//        File file = FileUtil.writeFromStream(getwxacodeunlimit, new File(filePath));
//        return file.getPath();
        return ObsUploadUtil.obsUpload("png", getwxacodeunlimit);
    }
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserPointDetailVO.java
@@ -12,7 +12,8 @@
@ApiModel("UserPointDetail对象")
public class UserPointDetailVO {
    @ApiModelProperty(value = "变动类型(1=消费积分,2=返佣积分,3=拉新人积分,4=兑换商品 5 = 门店业绩积分 6 =门店返佣积分7=技师业绩积分8 =转赠积分 9 =做工积分 10 =注册积分)")
    @ApiModelProperty(value = "变动类型(1-消费,2-返佣,3-拉新,4-每日分享,5-每日签到,6-使用时长, 7-注册积分, 8-门店业绩,\" +\n" +
            "            \"9-门店返佣,14-下级门店返佣,10-技师业绩,11-兑换商品,12-他人赠送,13-赠与他人,15-兑换券)")
    private Integer type;
    @ApiModelProperty(value = "变动金额")
@@ -23,4 +24,6 @@
    @ApiModelProperty(value = "增或减标识: 1-增 2-减")
    private Integer flag;
    private String name;
}
ruoyi-service/ruoyi-account/src/main/resources/bootstrap.yml
@@ -1,7 +1,7 @@
server:
  port: 9200
  tomcat:
    basedir: /data/tomcat
    basedir: /mnt/tomcat
# Spring
spring:
  application:
@@ -12,8 +12,8 @@
    allow-circular-references: true
  profiles:
    # 环境配置
    active: dev
#    active: prod
#    active: dev
    active: prod
---
spring:
  config:
@@ -51,16 +51,16 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        server-addr: 127.0.0.1:8848
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
      config:
        # 配置中心地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        server-addr: 127.0.0.1:8848
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
        group: DEFAULT_GROUP
@@ -69,7 +69,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/logback.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 日志存放路径 -->
    <property name="log.path" value="logs/ruoyi-account" />
    <property name="log.path" value="/mnt/app/ruoyi-account" />
   <!-- 日志输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AgentApplicationMapper.xml
@@ -45,7 +45,10 @@
                and t1.status = #{agentQuery.status}
            </if>
        </where>
        order by t1.status asc
        order by
        t1.STATUS ASC,
        t1.application_time ASC,
        t1.create_time desc
    </select>
</mapper>
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
@@ -36,7 +36,9 @@
            t_balance_change_record tbcr
        LEFT JOIN t_app_user tau ON tbcr.app_user_id = tau.id
        <where>
            and tbcr.change_type = 4
            <if test="changeRecord.changeType == null">
                and tbcr.change_type = #{changeRecord.changeType}
            </if>
            <if test="changeRecord.userName != null and changeRecord.userName != ''">
                and tau.name like concat('%',#{changeRecord.userName},'%')
            </if>
@@ -56,6 +58,35 @@
    <select id="selectBalanceChangeRecordList" resultType="com.ruoyi.account.api.model.BalanceChangeRecord">
        <include refid="balanceChangeRecordList"/>
    </select>
    <select id="selectBalanceChangeRecordList1" resultType="com.ruoyi.account.api.model.BalanceChangeRecord">
        SELECT
        tau.`name` userName,
        tau.phone userPhone,
        tbcr.change_type,
        tbcr.create_time,
        tbcr.change_amount,
        tbcr.before_amount,
        tbcr.after_amount
        FROM
        t_balance_change_record tbcr
        LEFT JOIN t_app_user tau ON tbcr.app_user_id = tau.id
        <where>
            <if test="changeRecord.userName != null and changeRecord.userName != ''">
                and tau.name like concat('%',#{changeRecord.userName},'%')
            </if>
            <if test="changeRecord.userPhone != null and changeRecord.userPhone != ''">
                and tau.phone like concat('%',#{changeRecord.userPhone},'%')
            </if>
            <if test="changeRecord.startTime != null and changeRecord.endTime != null">
                and (tbcr.create_time between  #{changeRecord.startTime} and #{changeRecord.endTime})
            </if>
            <if test="changeRecord.changeType != null">
                and tbcr.change_type = #{changeRecord.changeType}
            </if>
        </where>
    </select>
    <select id="queryCommissionStatistics" resultType="com.ruoyi.account.api.model.BalanceChangeRecord">
        <include refid="balanceChangeRecordList"/>
    </select>
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserPointMapper.xml
@@ -43,6 +43,7 @@
                AND tup.create_time BETWEEN #{userPoint.startTime} AND #{userPoint.endTime}
            </if>
        </where>
        order tup.create_time desc
    </sql>
    <select id="queryUserPointPage" resultType="com.ruoyi.account.api.model.UserPoint">
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/RefundPassController.java
@@ -114,7 +114,7 @@
        if(!order.getAppUserId().equals(userid)){
            return R.fail("权限不足");
        }
        if(Arrays.asList(2, 3).contains(refundPass.getStatus())){
        if(refundPass.getStatus().equals(2)){
            return R.fail("售后取消失败");
        }
        refundPass.setDelFlag(1);
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
@@ -346,39 +346,42 @@
                Technician technician = technicianClient.shopdetail(order.getTechnicianId()).getData();
                if(null != technician){
                    AppUser technicianAppUser = appUserClient.getAppUserById(technician.getAppUserId());
                    Integer lavePoint = technicianAppUser.getLavePoint();
                    if(js_point > 0){
                        PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                        int earnPoint1 = 0;
                        //计算可用积分比例
                        if(null != pointSetting && 1 == pointSetting.getPersonPointOpen()){
                            earnPoint1 = new BigDecimal(js_point).multiply(pointSetting.getPersonPoint().divide(new BigDecimal(100))).intValue();
                    if(null != technicianAppUser){
                        Integer lavePoint = technicianAppUser.getLavePoint();
                        if(js_point > 0){
                            PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
                            int earnPoint1 = 0;
                            //计算可用积分比例
                            if(null != pointSetting && 1 == pointSetting.getPersonPointOpen()){
                                earnPoint1 = new BigDecimal(js_point).multiply(pointSetting.getPersonPoint().divide(new BigDecimal(100))).intValue();
                            }
                            technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
                            technicianAppUser.setAvailablePoint(technicianAppUser.getAvailablePoint() + earnPoint1);
                            technicianAppUser.setTotalAvailablePoint(technicianAppUser.getTotalAvailablePoint() + earnPoint1);
                            if(null != pointSetting && 1 == pointSetting.getPersonPointGift()){
                                technicianAppUser.setTransferablePoint(technicianAppUser.getTransferablePoint() + earnPoint1);
                            }
                            technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
                            technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
                        }
                        technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
                        technicianAppUser.setAvailablePoint(technicianAppUser.getAvailablePoint() + earnPoint1);
                        technicianAppUser.setTotalAvailablePoint(technicianAppUser.getTotalAvailablePoint() + earnPoint1);
                        if(null != pointSetting && 1 == pointSetting.getPersonPointGift()){
                            technicianAppUser.setTransferablePoint(technicianAppUser.getTransferablePoint() + earnPoint1);
                        appUserClient.editAppUserById(technicianAppUser);
                        //添加积分明细
                        if(!technicianAppUser.getLavePoint().equals(lavePoint)){
                            UserPoint userPoint = new UserPoint();
                            userPoint.setType(10);
                            userPoint.setHistoricalPoint(lavePoint);
                            userPoint.setVariablePoint(js_point);
                            userPoint.setBalance(technicianAppUser.getLavePoint());
                            userPoint.setCreateTime(LocalDateTime.now());
                            userPoint.setAppUserId(technicianAppUser.getId());
                            userPoint.setObjectId(order.getId());
                            userPoint.setExtention(order.getOrderNumber());
                            userPointClient.saveUserPoint(userPoint);
                            //变更等级
                            appUserClient.vipUpgrade(technicianAppUser.getId());
                        }
                        technicianAppUser.setTotalPoint(technicianAppUser.getTotalPoint() + js_point);
                        technicianAppUser.setTotalPerformancePoint(technicianAppUser.getTotalPerformancePoint() + js_point);
                    }
                    appUserClient.editAppUserById(technicianAppUser);
                    //添加积分明细
                    if(!technicianAppUser.getLavePoint().equals(lavePoint)){
                        UserPoint userPoint = new UserPoint();
                        userPoint.setType(10);
                        userPoint.setHistoricalPoint(lavePoint);
                        userPoint.setVariablePoint(js_point);
                        userPoint.setBalance(technicianAppUser.getLavePoint());
                        userPoint.setCreateTime(LocalDateTime.now());
                        userPoint.setAppUserId(technicianAppUser.getId());
                        userPoint.setObjectId(order.getId());
                        userPoint.setExtention(order.getOrderNumber());
                        userPointClient.saveUserPoint(userPoint);
                        //变更等级
                        appUserClient.vipUpgrade(technicianAppUser.getId());
                    }
                }
            }
            
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -517,15 +517,17 @@
            appUser.setTotalPoint(appUser.getTotalPoint() - shopPoint);
            //构建积分流水明细
            UserPoint userPoint = new UserPoint();
            userPoint.setType(1);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(shopPoint);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(order.getAppUserId());
            userPoint.setObjectId(order.getId());
            userPointClient.saveUserPoint(userPoint);
            if(shopPoint > 0){
                UserPoint userPoint = new UserPoint();
                userPoint.setType(1);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(shopPoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(order.getAppUserId());
                userPoint.setObjectId(order.getId());
                userPointClient.saveUserPoint(userPoint);
            }
            appUserClient.editAppUserById(appUser);
    
            //降级检测
@@ -594,15 +596,17 @@
            appUser.setTransferablePoint(appUser.getTransferablePoint() + transferablePoint);
            //构建积分流水明细
            UserPoint userPoint = new UserPoint();
            userPoint.setType(11);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(order.getPoint());
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(order.getAppUserId());
            userPoint.setObjectId(order.getId());
            userPointClient.saveUserPoint(userPoint);
            if(order.getPoint() > 0){
                UserPoint userPoint = new UserPoint();
                userPoint.setType(11);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(order.getPoint());
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(order.getAppUserId());
                userPoint.setObjectId(order.getId());
                userPointClient.saveUserPoint(userPoint);
            }
            appUserClient.editAppUserById(appUser);
        }
@@ -650,15 +654,17 @@
        appUser.setTotalPoint(appUser.getTotalPoint() - shopPoint);
        //构建积分流水明细
        UserPoint userPoint = new UserPoint();
        userPoint.setType(1);
        userPoint.setHistoricalPoint(lavePoint);
        userPoint.setVariablePoint(shopPoint);
        userPoint.setBalance(appUser.getLavePoint());
        userPoint.setCreateTime(LocalDateTime.now());
        userPoint.setAppUserId(order.getAppUserId());
        userPoint.setObjectId(order.getId());
        userPointClient.saveUserPoint(userPoint);
        if(shopPoint > 0){
            UserPoint userPoint = new UserPoint();
            userPoint.setType(1);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(shopPoint);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(order.getAppUserId());
            userPoint.setObjectId(order.getId());
            userPointClient.saveUserPoint(userPoint);
        }
        appUserClient.editAppUserById(appUser);
    
        //降级检测
@@ -710,15 +716,17 @@
        appUser.setTransferablePoint(appUser.getTransferablePoint() + transferablePoint);
        //构建积分流水明细
        UserPoint userPoint = new UserPoint();
        userPoint.setType(11);
        userPoint.setHistoricalPoint(lavePoint);
        userPoint.setVariablePoint(order.getPoint());
        userPoint.setBalance(appUser.getLavePoint());
        userPoint.setCreateTime(LocalDateTime.now());
        userPoint.setAppUserId(order.getAppUserId());
        userPoint.setObjectId(order.getId());
        userPointClient.saveUserPoint(userPoint);
        if(order.getPoint() > 0){
            UserPoint userPoint = new UserPoint();
            userPoint.setType(11);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(order.getPoint());
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(order.getAppUserId());
            userPoint.setObjectId(order.getId());
            userPointClient.saveUserPoint(userPoint);
        }
        return R.ok();
    }
@@ -808,6 +816,7 @@
        }
        List<OrderGood> orderGoods = orderGoodMapper.selectList(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, orderId).eq(OrderGood::getDelFlag, 0));
        int sum = orderGoods.stream().mapToInt(OrderGood::getNum).sum();
        System.out.println("111111111111222");
        orderInfo.setGoodsNum(sum);
        List<Object> goodsJson = new ArrayList<>();
        for (OrderGood orderGood : orderGoods) {
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -337,7 +337,20 @@
                .eq(ShoppingCart::getAppUserId, userid));
        goodsSaleNum += count;
        Goods goods = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
        if(null != goods.getPurchaseLimit() && -1 != goods.getPurchaseLimit() && (goodsSaleNum + shoppingCart.getNumber()) > goods.getPurchaseLimit()){
        Integer maxNum = 0;
        if(shoppingCart.getType() == 2){
            R<SeckillActivityInfo> r = seckillActivityInfoClient.getSeckillActivityInfoByGoodsId(shoppingCart.getGoodsId());
            if (R.isError(r)){
                throw new ServiceException("获取秒杀商品失败!");
            }
            SeckillActivityInfo seckillActivityInfo = r.getData();
            maxNum = seckillActivityInfo.getMaxNum();
        }else {
            maxNum = goods.getPurchaseLimit();
        }
        if(null != goods.getPurchaseLimit() && -1 != maxNum && (goodsSaleNum + shoppingCart.getNumber()) > maxNum){
            throw new ServiceException("超出购买数量限制");
        }
        ShoppingCart one = this.getOne(new LambdaQueryWrapper<ShoppingCart>().eq(ShoppingCart::getAppUserId, userid)
@@ -1131,16 +1144,18 @@
                        jsonObject.put("transferablePoint", earnPoint1);
                    }
                    UserPoint userPoint = new UserPoint();
                    userPoint.setType(1);
                    userPoint.setHistoricalPoint(lavePoint);
                    userPoint.setVariablePoint(earnPoint);
                    userPoint.setBalance(appUser.getLavePoint());
                    userPoint.setCreateTime(LocalDateTime.now());
                    userPoint.setAppUserId(appUser.getId());
                    userPoint.setObjectId(order.getId());
                    userPoint.setExtention(jsonObject.toJSONString());
                    userPointClient.saveUserPoint(userPoint);
                    if(earnPoint > 0){
                        UserPoint userPoint = new UserPoint();
                        userPoint.setType(1);
                        userPoint.setHistoricalPoint(lavePoint);
                        userPoint.setVariablePoint(earnPoint);
                        userPoint.setBalance(appUser.getLavePoint());
                        userPoint.setCreateTime(LocalDateTime.now());
                        userPoint.setAppUserId(appUser.getId());
                        userPoint.setObjectId(order.getId());
                        userPoint.setExtention(jsonObject.toJSONString());
                        userPointClient.saveUserPoint(userPoint);
                    }
                }
                appUser.setShopAmount(appUser.getShopAmount().add(paymentMoney).setScale(2, RoundingMode.HALF_EVEN));
                appUser.setLastShopTime(LocalDateTime.now());
@@ -1315,16 +1330,18 @@
            }
            //构建积分流水记录
            UserPoint userPoint = new UserPoint();
            userPoint.setType(11);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(orderPoint);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(appUser.getId());
            userPoint.setObjectId(order.getId());
            userPoint.setExtention((tra >= 0 ? orderPoint : transferablePoint) + "");
            userPointClient.saveUserPoint(userPoint);
            if(orderPoint > 0){
                UserPoint userPoint = new UserPoint();
                userPoint.setType(11);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(orderPoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(appUser.getId());
                userPoint.setObjectId(order.getId());
                userPoint.setExtention((tra >= 0 ? orderPoint : transferablePoint) + "");
                userPointClient.saveUserPoint(userPoint);
            }
            appUser.setLastShopTime(LocalDateTime.now());
            appUserClient.editAppUserById(appUser);
@@ -1460,16 +1477,18 @@
                jsonObject.put("transferablePoint", earnPoint1);
            }
            UserPoint userPoint = new UserPoint();
            userPoint.setType(1);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(earnPoint);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(appUser.getId());
            userPoint.setObjectId(order.getId());
            userPoint.setExtention(jsonObject.toJSONString());
            userPointClient.saveUserPoint(userPoint);
            if(earnPoint > 0){
                UserPoint userPoint = new UserPoint();
                userPoint.setType(1);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(earnPoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(appUser.getId());
                userPoint.setObjectId(order.getId());
                userPoint.setExtention(jsonObject.toJSONString());
                userPointClient.saveUserPoint(userPoint);
            }
        }
        appUser.setShopAmount(appUser.getShopAmount().add(paymentMoney).setScale(2, RoundingMode.HALF_EVEN));
        appUser.setLastShopTime(LocalDateTime.now());
@@ -1539,16 +1558,18 @@
        }
        //构建积分流水记录
        UserPoint userPoint = new UserPoint();
        userPoint.setType(11);
        userPoint.setHistoricalPoint(lavePoint);
        userPoint.setVariablePoint(orderPoint);
        userPoint.setBalance(appUser.getLavePoint());
        userPoint.setCreateTime(LocalDateTime.now());
        userPoint.setAppUserId(appUser.getId());
        userPoint.setObjectId(order.getId());
        userPoint.setExtention((tra >= 0 ? orderPoint : transferablePoint) + "");
        userPointClient.saveUserPoint(userPoint);
        if(orderPoint > 0){
            UserPoint userPoint = new UserPoint();
            userPoint.setType(11);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(orderPoint);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(appUser.getId());
            userPoint.setObjectId(order.getId());
            userPoint.setExtention((tra >= 0 ? orderPoint : transferablePoint) + "");
            userPointClient.saveUserPoint(userPoint);
        }
        //积分支付不反积分
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/payment/PaymentUtil.java
@@ -34,7 +34,7 @@
    /**
     * 支付回调地址
     */
    private static final String callbackUrl = "http://221.182.45.100:9000";
    private static final String callbackUrl = "https://www.qijisheng.top";
    
    
    /**
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/payment/TransferUtil.java
@@ -37,7 +37,7 @@
    /**
     * 支付回调地址
     */
    private static final String callbackUrl = "http://221.182.45.100:9000";
    private static final String callbackUrl = "https://www.qijisheng.top";
    /**
ruoyi-service/ruoyi-order/src/main/resources/bootstrap.yml
@@ -1,7 +1,7 @@
server:
  port: 9400
  tomcat:
    basedir: /data/tomcat
    basedir: /mnt/tomcat
# Spring
spring:
  application:
@@ -12,8 +12,8 @@
    allow-circular-references: true
  profiles:
    # 环境配置
    active: dev
#    active: prod
#    active: dev
    active: prod
---
spring:
  config:
@@ -51,16 +51,16 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        server-addr: 127.0.0.1:8848
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
      config:
        # 配置中心地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        server-addr: 127.0.0.1:8848
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
        group: DEFAULT_GROUP
@@ -69,7 +69,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/resources/logback.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 日志存放路径 -->
    <property name="log.path" value="logs/ruoyi-order" />
    <property name="log.path" value="/mnt/app/ruoyi-order" />
   <!-- 日志输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java
@@ -137,7 +137,9 @@
        if(0 < count){
            return R.fail("商品已被会员配置使用,不能删除");
        }
        goodsService.removeById(goodsId);
        Goods goods = goodsService.getById(goodsId);
        goods.setDelFlag(1);
        goodsService.updateById(goods);
        return R.ok();
    }
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java
@@ -138,9 +138,11 @@
                    .between(OrderActivityInfo::getEndTime, orderActivityInfo.getStartTime(), orderActivityInfo.getEndTime())
                    .list();
            // 遍历集合 通过startTime和endTime 判断是否与当前活动时间重叠
            if (!list.isEmpty()){
                for (OrderActivityInfo activityInfo : list) {
                    if(activityInfo.getId().equals(orderActivityInfo.getId())){
                        continue;
                    }
                    List<String> vips = Arrays.asList(activityInfo.getVipIds().split(","));
                    if (!vipIds.isEmpty()){
                        StringBuilder message = new StringBuilder();
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java
@@ -169,7 +169,7 @@
            }else {
                record.setStatus(1); // 未开始
            }
            Integer saleNum = orderClient.getGoodsSaleNum(record.getGoodsId(), null).getData();
            Integer saleNum = orderClient.getGoodsSaleNum(record.getGoodsId(), 2).getData();
            record.setSaleNum(saleNum);
        }
        return R.ok(IPage);
@@ -186,6 +186,16 @@
        return R.ok();
    }
    @GetMapping("/getSeckillActivityInfoByGoodsId")
    public R<SeckillActivityInfo> getSeckillActivityInfoByGoodsId(@RequestParam("goodsId") Integer goodsId){
        SeckillActivityInfo seckillActivityInfo = seckillActivityInfoService.getOne(new LambdaQueryWrapper<SeckillActivityInfo>()
                .eq(SeckillActivityInfo::getGoodId, goodsId)
                .eq(SeckillActivityInfo::getDelFlag, 0)
                .eq(SeckillActivityInfo::getIsShelves, 1)
                .last(" and now() between start_time and end_time"));
        return R.ok(seckillActivityInfo);
    }
    /**
     * 修改秒杀活动
     */
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java
@@ -86,7 +86,8 @@
    public R<List<Share>> recommandlist() {
        Long userid = tokenService.getLoginUserApplet().getUserid();
        return R.ok(shareService.list(new LambdaQueryWrapper<Share>().eq(Share::getAddType, 2)
                .eq(Share::getObjectId, userid).or().eq(Share::getAddType, 1).eq(Share::getAuditStatus, 1).eq(Share::getDelFlag, 0)));
                .eq(Share::getObjectId, userid).or().eq(Share::getAddType, 1).eq(Share::getAuditStatus, 1)
                .eq(Share::getDelFlag, 0).orderByDesc(Share::getCreateTime)));
    }
@@ -151,12 +152,11 @@
        if(sysUser.getRoleType() == 2){
            share.setObjectId(sysUser.getObjectId().longValue());
        }
//        if (sysUser.getRoleType() == 1){
//            share.setAuditStatus(ShareAuditStatus.SUCCESS.getCode());
//        }else{
//            share.setAuditStatus(ShareAuditStatus.WAIT.getCode());
//        }
        share.setAuditStatus(ShareAuditStatus.WAIT.getCode());
        if (sysUser.getRoleType() == 1){
            share.setAuditStatus(ShareAuditStatus.SUCCESS.getCode());
        }else{
            share.setAuditStatus(ShareAuditStatus.WAIT.getCode());
        }
        share.setDelFlag(0);
        shareService.save(share);
        return R.ok();
@@ -306,7 +306,8 @@
    @ApiOperation(value = "获取小程序分享数据", tags = {"小程序-分享"})
    @GetMapping("/auth/getAppletShare")
    public R<Share> getAppletShare(){
        Share one = shareService.getOne(new LambdaQueryWrapper<Share>().eq(Share::getDelFlag, 0).eq(Share::getAppletShare, 1).eq(Share::getAuditStatus, 1).last(" limit 0, 1"));
        Share one = shareService.getOne(new LambdaQueryWrapper<Share>().eq(Share::getDelFlag, 0).eq(Share::getAppletShare, 1)
                .eq(Share::getAuditStatus, 1).last(" limit 0, 1"));
        //添加每日分享积分
        String token = SecurityUtils.getToken(ServletUtils.getRequest());
        if(StringUtils.isNotEmpty(token)){
@@ -326,15 +327,17 @@
                    appUser.setTotalPoint(appUser.getTotalPoint() + everySharePoint);
                    appUserClient.editAppUserById(appUser);
                    //添加积分流水
                    UserPoint userPoint = new UserPoint();
                    userPoint.setAppUserId(userid);
                    userPoint.setType(4);
                    userPoint.setHistoricalPoint(lavePoint);
                    userPoint.setVariablePoint(everySharePoint);
                    userPoint.setBalance(appUser.getLavePoint());
                    userPoint.setCreateTime(LocalDateTime.now());
                    userPoint.setAppUserId(appUser.getId());
                    userPointClient.saveUserPoint(userPoint);
                    if(everySharePoint > 0){
                        UserPoint userPoint = new UserPoint();
                        userPoint.setAppUserId(userid);
                        userPoint.setType(4);
                        userPoint.setHistoricalPoint(lavePoint);
                        userPoint.setVariablePoint(everySharePoint);
                        userPoint.setBalance(appUser.getLavePoint());
                        userPoint.setCreateTime(LocalDateTime.now());
                        userPoint.setAppUserId(appUser.getId());
                        userPointClient.saveUserPoint(userPoint);
                    }
                }
            }
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java
@@ -71,7 +71,9 @@
    @GetMapping("/statistics/list")
    @ApiOperation(value = "门店积分明细必传门店id", tags = {"后台"})
    public R<Page<ShopPoint>> statisticslist(ShopPoint shopPoint,Integer pageNum,Integer pageSize) {
        Page<ShopPoint> page = shopPointService.lambdaQuery().eq(ShopPoint::getShopId, shopPoint.getShopId()).eq(shopPoint.getType()!=null,ShopPoint::getType, shopPoint.getType())
        Page<ShopPoint> page = shopPointService.lambdaQuery()
                .eq(ShopPoint::getShopId, shopPoint.getShopId())
                .eq(shopPoint.getType()!=null && shopPoint.getType()!=0,ShopPoint::getType, shopPoint.getType())
                .like(shopPoint.getOrderNum()!=null,ShopPoint::getOrderNum, shopPoint.getOrderNum())
                .orderByDesc(ShopPoint::getCreateTime)
                .page(Page.of(pageNum, pageSize));
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/CouponInfoServiceImpl.java
@@ -2,10 +2,17 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.other.api.domain.Goods;
import com.ruoyi.other.mapper.CouponInfoMapper;
import com.ruoyi.other.api.domain.CouponInfo;
import com.ruoyi.other.service.CouponInfoService;
import com.ruoyi.other.service.GoodsService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -17,9 +24,21 @@
 */
@Service
public class CouponInfoServiceImpl extends ServiceImpl<CouponInfoMapper, CouponInfo> implements CouponInfoService {
    @Resource
    private GoodsService goodsService;
    @Override
    public IPage<CouponInfo> queryCouponInfoPage(IPage<CouponInfo> page, CouponInfo couponInfo) {
        return this.baseMapper.queryCouponInfoPage(page, couponInfo);
        IPage<CouponInfo> couponInfoIPage = this.baseMapper.queryCouponInfoPage(page, couponInfo);
        for (CouponInfo record : couponInfoIPage.getRecords()) {
            if(record.getCouponType() == 4){
                String[] split = record.getForGoodIds().split(",");
                List<String> collect = goodsService.listByIds(Arrays.asList(split)).stream().map(Goods::getName).collect(Collectors.toList());
                record.setGoodsNameList(collect);
            }
        }
        return couponInfoIPage;
    }
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java
@@ -78,7 +78,7 @@
            LocalDateTime endTime = seckillActivityVO.getEndTime();
            if (endTime.isBefore(now)){
                seckillActivityVO.setStatus(3); //已结束
            }else if (startTime.isBefore(now)){
            }else if (startTime.isBefore(now) && endTime.isAfter(now)){
                seckillActivityVO.setStatus(2); // 已开始
            }else {
                seckillActivityVO.setStatus(1); // 未开始
@@ -110,6 +110,9 @@
    }
    private Comparator<SeckillActivityVO> getComparator(String orderByColumn, String isAsc) {
        if (StringUtils.isEmpty(orderByColumn)){
            return Comparator.comparing(SeckillActivityVO::getId);
        }
        Comparator<SeckillActivityVO> comparator;
        switch (orderByColumn) {
@@ -202,8 +205,10 @@
    @Transactional(rollbackFor = Exception.class)
    public void saveSeckillActivityInfo(SeckillActivityInfo seckillActivityInfo) {
        Integer goodId = seckillActivityInfo.getGoodId();
        LocalDateTime startTime = seckillActivityInfo.getStartTime();
        LocalDateTime endTime = seckillActivityInfo.getEndTime();
        long count = this.count(new LambdaQueryWrapper<SeckillActivityInfo>().eq(SeckillActivityInfo::getGoodId, goodId).eq(SeckillActivityInfo::getDelFlag, 0)
                .eq(SeckillActivityInfo::getIsShelves, 1).last(" and now() between start_time and end_time"));
                .eq(SeckillActivityInfo::getIsShelves, 1).last(" and (" + startTime + " between start_time and end_time or " + endTime + " between start_time and end_time)"));
        if(0 < count){
            throw new RuntimeException("该秒杀商品已在其他秒杀活动中存在");
        }
@@ -221,8 +226,10 @@
    @Transactional(rollbackFor = Exception.class)
    public void updateSeckillActivityInfo(SeckillActivityInfo seckillActivityInfo) {
        Integer goodId = seckillActivityInfo.getGoodId();
        LocalDateTime startTime = seckillActivityInfo.getStartTime();
        LocalDateTime endTime = seckillActivityInfo.getEndTime();
        long count = this.count(new LambdaQueryWrapper<SeckillActivityInfo>().eq(SeckillActivityInfo::getGoodId, goodId).eq(SeckillActivityInfo::getDelFlag, 0)
                .eq(SeckillActivityInfo::getIsShelves, 1).last(" and now() between start_time and end_time"));
                .eq(SeckillActivityInfo::getIsShelves, 1).last(" and (" + startTime + " between start_time and end_time or " + endTime + " between start_time and end_time)"));
        if(1 < count){
            throw new RuntimeException("该秒杀商品已在其他秒杀活动中存在");
        }
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/payment/PaymentUtil.java
@@ -37,7 +37,7 @@
    /**
     * 支付回调地址
     */
    private static final String callbackUrl = "http://221.182.45.100:9000";
    private static final String callbackUrl = "https://www.qijisheng.top";
    
    
    /**
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/payment/TransferUtil.java
@@ -40,7 +40,7 @@
    /**
     * 支付回调地址
     */
    private static final String callbackUrl = "http://221.182.45.100:9000";
    private static final String callbackUrl = "https://www.qijisheng.top";
    /**
ruoyi-service/ruoyi-other/src/main/resources/bootstrap.yml
@@ -1,7 +1,7 @@
server:
  port: 9600
  tomcat:
    basedir: /data/tomcat
    basedir: /mnt/tomcat
# Spring
spring:
  application:
@@ -12,8 +12,8 @@
    allow-circular-references: true
  profiles:
    # 环境配置
    active: dev
#    active: prod
#    active: dev
    active: prod
---
spring:
  config:
@@ -43,70 +43,6 @@
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
---
#seata:
#  enabled: true
#  application-id: ${spring.application.name}
#  tx-service-group: seata_tx_group    #此处配置自定义的seata事务分组名称
#  enable-auto-data-source-proxy: false    #关闭数据库代理
#  service:
#    vgroup-mapping:
#      seata_tx_group: default
#  data-source-proxy-mode: AT
#  config:
#    type: nacos
#    nacos:
#      # 开发环境
#      server-addr: 127.0.0.1:8848
#      namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
#      group: DEFAULT_GROUP
#      data-id: seata-server.properties
#      username: nacos
#      password: nacos
#      # 生产环境
##      server-addr: 192.168.0.137:8848,192.168.0.123:8848
##      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
##      group: DEFAULT_GROUP
##      data-id: seata-server.properties
##      username: nacos
##      password: nacos
#  registry:
#    type: nacos
#    nacos:
#      application: seata-server
#      # 开发环境
#      server-addr: 127.0.0.1:8848
#      namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9
#      group: DEFAULT_GROUP
#      username: nacos
#      password: nacos
#      # 生产环境
##      server-addr: 192.168.0.137:8848,192.168.0.123:8848
##      namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
##      group: DEFAULT_GROUP
##      username: nacos
##      password: nacos
#  cloud:
#    nacos:
#      discovery:
#        # 开发环境
#        server-addr: 127.0.0.1:8848 # nacos注册中心地址
#        namespace: cdf47c5f-2bf9-4dec-a616-a8dc653aceb9 # 命名空间
#        group: DEFAULT_GROUP
#        application: seata-server #Nacos 中 Seata 名称
#        username: nacos
#        password: nacos
#        # 生产环境
##        server-addr: 192.168.0.137:8848,192.168.0.123:8848
##        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
##        group: DEFAULT_GROUP
##        application: seata-server #Nacos 中 Seata 名称
##        username: nacos
##        password: nacos
#    sentinel:
#      transport:
#        dashboard: 127.0.0.1:8080  #  Sentinel控制台地址
#      eager: true
---
spring:
  config:
    activate:
@@ -115,16 +51,16 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        server-addr: 127.0.0.1:8848
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
      config:
        # 配置中心地址
        server-addr: 192.168.0.137:8848,192.168.0.123:8848
        namespace: c6cf40b5-44e8-43f9-be61-8d10fa830e2a
        server-addr: 127.0.0.1:8848
        namespace: 20c168da-8cf1-4fff-bc38-bc62df656b6a
        username: nacos
        password: nacos
        group: DEFAULT_GROUP
@@ -133,7 +69,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/logback.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 日志存放路径 -->
    <property name="log.path" value="logs/ruoyi-other" />
    <property name="log.path" value="/mnt/app/ruoyi-other" />
   <!-- 日志输出格式 -->
    <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/CouponInfoMapper.xml
@@ -25,7 +25,8 @@
            tci.need_point,
            tci.person_type,
            tci.person_ids,
            tci.shelf_status
            tci.shelf_status,
            tci.goods_name_json
        FROM
            t_coupon_info tci
        <where>
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/SeckillActivityInfoMapper.xml
@@ -59,6 +59,7 @@
    <select id="querySeckillActivity" resultType="com.ruoyi.other.vo.SeckillActivityVO">
        SELECT
        tsai.id,
        tg.id goodsId,
        tg.`name` goodsName,
        tg.introduction,
        tgc.`name` goodsCategoryName,
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopBalanceStatementMapper.xml
@@ -12,6 +12,7 @@
        t_shop_balance_statement tsbs
        INNER JOIN t_shop ts ON ts.id = tsbs.shop_id
        <where>
            tsbs.type != 4
            <if test="bs.shopName != null and bs.shopName != ''">
                AND ts.`name` like concat('%', #{bs.shopName}, '%')
            </if>