Kaynağa Gözat

```
feat(business): 更新支付订单与充值商品导出标题及展示字段- 将支付订单导出标题由"支付订单"更改为"充值订单"
- 调整 PayOrderVo 中的 Excel 属性列名,如"主键"改为"序号ID"、"商户订单号"改为"订单号"等
- 在查询支付订单列表时增加状态文本、金额文本及用户信息的填充逻辑
- 优化道具使用记录 PlayersItemsLog 的查询逻辑,添加用户名、手机号和操作类型文本
- 更新 RechargeProducts 导出标题为"充值管理项目",并关联展示道具名称
- 完善赛事 Tournaments 查询逻辑,丰富展示字段如报名人数、奖励信息等
- 用户列表中补充登录名默认值、奖励次数、门票数和积分等数据
- 增加定时任务对赛程计划生成逻辑的调整与增强
```

fugui001 3 ay önce
ebeveyn
işleme
50b47136cf
18 değiştirilmiş dosya ile 435 ekleme ve 161 silme
  1. 2 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/controller/PayOrderController.java
  2. 2 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/controller/RechargeProductsController.java
  3. 55 38
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/PayOrderVo.java
  4. 44 20
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/PlayersItemsLogVo.java
  5. 10 6
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/RechargeProductsVo.java
  6. 56 27
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/TournamentsVo.java
  7. 73 53
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/UserVo.java
  8. 2 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/mapper/PlayersItemsLogMapper.java
  9. 2 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/mapper/ScheduleExecutionMapper.java
  10. 17 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/PayOrderServiceImpl.java
  11. 24 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/PlayersItemsLogServiceImpl.java
  12. 6 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/RechargeProductsServiceImpl.java
  13. 12 3
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/ScheduleConfigServiceImpl.java
  14. 65 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/TournamentsServiceImpl.java
  15. 24 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/UserServiceImpl.java
  16. 5 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/job/business/ScheduleTask.java
  17. 21 0
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/business/PlayersItemsLogMapper.xml
  18. 15 0
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/business/ScheduleExecutionMapper.xml

+ 2 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/controller/PayOrderController.java

@@ -47,11 +47,11 @@ public class PayOrderController extends BaseController {
      * 导出支付订单列表
      */
     @SaCheckPermission("business:order:export")
-    @Log(title = "支付订单", businessType = BusinessType.EXPORT)
+    @Log(title = "充值订单", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(PayOrderBo bo, HttpServletResponse response) {
         List<PayOrderVo> list = payOrderService.queryList(bo);
-        ExcelUtil.exportExcel(list, "支付订单", PayOrderVo.class, response);
+        ExcelUtil.exportExcel(list, "充值订单", PayOrderVo.class, response);
     }
 
     /**

+ 2 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/controller/RechargeProductsController.java

@@ -49,11 +49,11 @@ public class RechargeProductsController extends BaseController {
      * 导出充值商品列表
      */
     @SaCheckPermission("business:products:export")
-    @Log(title = "充值商品", businessType = BusinessType.EXPORT)
+    @Log(title = "充值管理项目", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(RechargeProductsBo bo, HttpServletResponse response) {
         List<RechargeProductsVo> list = rechargeProductsService.queryList(bo);
-        ExcelUtil.exportExcel(list, "充值商品", RechargeProductsVo.class, response);
+        ExcelUtil.exportExcel(list, "充值管理项目", RechargeProductsVo.class, response);
     }
 
     /**

+ 55 - 38
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/PayOrderVo.java

@@ -3,8 +3,6 @@ package org.dromara.business.domain.vo;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
 import org.dromara.business.domain.PayOrder;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import java.io.Serial;
@@ -28,132 +26,151 @@ public class PayOrderVo implements Serializable {
     /**
      * 主键
      */
-    @ExcelProperty(value = "主键")
+    @ExcelProperty(value = "序号ID")
     private Long id;
 
     /**
      * 商户订单号
      */
-    @ExcelProperty(value = "商户订单号")
+    @ExcelProperty(value = "订单号")
     private String outTradeNo;
 
     /**
      * 商品标题
      */
-    @ExcelProperty(value = "商品标题")
+    @ExcelProperty(value = "商品")
     private String subject;
 
     /**
      * 商品描述
      */
-    @ExcelProperty(value = "商品描述")
+    @ExcelProperty(value = "描述")
     private String body;
 
     /**
      * 订单金额(元)
      */
-    @ExcelProperty(value = "订单金额", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "元=")
+    @ExcelProperty(value = "订单金额")
+    private String totalAmountText;
+
+
     private BigDecimal totalAmount;
 
+    @ExcelProperty(value = "用户名")
+    private String userName;
+
+    @ExcelProperty(value = "手机号")
+    private String phone;
+
+
+    /**
+     * 订单状态  success  close
+     */
+    @ExcelProperty(value = "订单状态")
+    private String statusText;
+
+
+    /**
+     * 支付成功时间
+     */
+    @ExcelProperty(value = "支付时间")
+    private String payTime;
+
+
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "创建时间")
+    private String createTime;
+
+
     /**
      * 币种
      */
-    @ExcelProperty(value = "币种")
+    //@ExcelProperty(value = "币种")
     private String currency;
 
     /**
      * 用户ID
      */
-    @ExcelProperty(value = "用户ID")
+    //@ExcelProperty(value = "用户ID")
     private Long userId;
 
     /**
      * 业务类型(如 recharge, purchase)
      */
-    @ExcelProperty(value = "业务类型", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "如=,r=echarge,,p=urchase")
+    //@ExcelProperty(value = "业务类型", converter = ExcelDictConvert.class)
+    //@ExcelDictFormat(readConverterExp = "如=,r=echarge,,p=urchase")
     private String bizType;
 
     /**
      * 业务ID(如订单ID)
      */
-    @ExcelProperty(value = "业务ID", converter = ExcelDictConvert.class)
-    @ExcelDictFormat(readConverterExp = "如=订单ID")
+    //@ExcelProperty(value = "业务ID", converter = ExcelDictConvert.class)
+    //@ExcelDictFormat(readConverterExp = "如=订单ID")
     private String bizId;
 
     /**
      * 支付宝交易号
      */
-    @ExcelProperty(value = "支付宝交易号")
+    //@ExcelProperty(value = "支付宝交易号")
     private String tradeNo;
 
     /**
      * 支付宝APPID
      */
-    @ExcelProperty(value = "支付宝APPID")
+    //@ExcelProperty(value = "支付宝APPID")
     private String appId;
 
     /**
      * 卖家支付宝用户ID
      */
-    @ExcelProperty(value = "卖家支付宝用户ID")
+    //@ExcelProperty(value = "卖家支付宝用户ID")
     private String sellerId;
 
-    /**
-     * 订单状态  success  close
-     */
-    @ExcelProperty(value = "订单状态  success  close")
+
     private String status;
 
-    /**
-     * 支付成功时间
-     */
-    @ExcelProperty(value = "支付成功时间")
-    private String payTime;
 
     /**
      * 支付宝通知时间
      */
-    @ExcelProperty(value = "支付宝通知时间")
+    //@ExcelProperty(value = "支付宝通知时间")
     private String notifyTime;
 
     /**
      * 通知类型
      */
-    @ExcelProperty(value = "通知类型")
+    //@ExcelProperty(value = "通知类型")
     private String notifyType;
 
     /**
      * 支付宝交易状态
      */
-    @ExcelProperty(value = "支付宝交易状态")
+    //@ExcelProperty(value = "支付宝交易状态")
     private String tradeStatus;
 
     /**
      * 商品ID
      */
-    @ExcelProperty(value = "商品ID")
+    //@ExcelProperty(value = "商品ID")
     private Long productId;
 
     /**
      * 道具ID
      */
-    @ExcelProperty(value = "道具ID")
+    //@ExcelProperty(value = "道具ID")
     private Long relatedItemId;
 
 
     private String payUrl;
 
-    private String userName;
-
-    private String phone;
 
     private String nickName;
 
-    /**
-     * 创建时间
-     */
-    private String createTime;
+
+
+
+
 
 }

+ 44 - 20
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/PlayersItemsLogVo.java

@@ -26,32 +26,58 @@ public class PlayersItemsLogVo implements Serializable {
     /**
      *
      */
-    @ExcelProperty(value = "")
+    @ExcelProperty(value = "序号ID")
     private Long id;
 
+
+    @ExcelProperty(value = "用户名")
+    private String userName;
+
+
+    @ExcelProperty(value = "手机号")
+    private String phone;
+
+
     /**
-     * 道具ID
+     * 道具名称
      */
-    @ExcelProperty(value = "道具ID")
-    private Long itemId;
+    @ExcelProperty(value = "道具名称")
+    private String itemName;
+
+
+    @ExcelProperty(value = "操作类型")
+    private String typeText;
+
 
     /**
      * 当前操作的数量
      */
-    @ExcelProperty(value = "当前操作的数量")
+    @ExcelProperty(value = "当前操作数量")
     private Long scoreNum;
 
+    /**
+     * 操作前数量
+     */
+    @ExcelProperty(value = "操作前数量")
+    private Long beforeNum;
+
+
     /**
      * 之后的数量
      */
-    @ExcelProperty(value = "之后的数量")
+    @ExcelProperty(value = "操作后数量")
     private Long afterNum;
 
+
+
+
     /**
-     * 原来的数量
+     * 描述
      */
-    @ExcelProperty(value = "原来的数量")
-    private Long beforeNum;
+    @ExcelProperty(value = "描述")
+    private String remark;
+
+
 
     /**
      * 创建时间
@@ -62,36 +88,34 @@ public class PlayersItemsLogVo implements Serializable {
     /**
      * 更新时间
      */
-    @ExcelProperty(value = "更新时间")
+    //@ExcelProperty(value = "更新时间")
     private Date updatedAt;
 
     /**
      * 用户ID
      */
-    @ExcelProperty(value = "用户ID")
+    //@ExcelProperty(value = "用户ID")
     private Long userId;
 
     /**
      * 1 新增  2 扣除 3 其他
      */
-    @ExcelProperty(value = "1 新增  2 扣除 3 其他")
+    //@ExcelProperty(value = "1 新增  2 扣除 3 其他")
     private Long type;
 
-    /**
-     * 描述
-     */
-    @ExcelProperty(value = "描述")
-    private String remark;
 
     /**
      * 道具获取类型   充值/奖励/报名/比赛
      */
-    @ExcelProperty(value = "道具获取类型   充值/奖励/报名/比赛")
+    //@ExcelProperty(value = "道具获取类型   充值/奖励/报名/比赛")
     private String itermsType;
 
     /**
-     * 道具名称
+     * 道具ID
      */
-    private String itemName;
+    //@ExcelProperty(value = "道具ID")
+    private Long itemId;
+
+
 
 }

+ 10 - 6
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/RechargeProductsVo.java

@@ -31,7 +31,7 @@ public class RechargeProductsVo implements Serializable {
     /**
      * 主键ID
      */
-    @ExcelProperty(value = "主键ID")
+    //@ExcelProperty(value = "主键ID")
     private Long id;
 
     /**
@@ -53,9 +53,16 @@ public class RechargeProductsVo implements Serializable {
     private String description;
 
     /**
-     * 关联道具
+     * 道具名称
      */
     @ExcelProperty(value = "关联道具")
+    private String itemsName;
+
+
+    /**
+     * 关联道具
+     */
+    //@ExcelProperty(value = "关联道具")
     private String relatedItemId;
 
     /**
@@ -76,9 +83,6 @@ public class RechargeProductsVo implements Serializable {
     @ExcelProperty(value = "更新时间")
     private Date updatedAt;
 
-    /**
-     * 道具名称
-     */
-    private String itemsName;
+
 
 }

+ 56 - 27
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/TournamentsVo.java

@@ -33,77 +33,110 @@ public class TournamentsVo implements Serializable {
     /**
      *
      */
-    @ExcelProperty(value = "")
+    @ExcelProperty(value = "比赛ID")
     private Long id;
 
     /**
      * 赛事名称
      */
-    @ExcelProperty(value = "赛")
+    @ExcelProperty(value = "赛名")
     private String name;
 
     /**
      * 比赛开始时间
      */
-    @ExcelProperty(value = "比赛开始时间")
+    @ExcelProperty(value = "开始时间")
     private String startTime;
 
     /**
      * 比赛结束时间
      */
+    @ExcelProperty(value = "结束时间")
     private String endTime;
 
+
+    /**
+     * 报名人数
+     */
+    @ExcelProperty(value = "报名人数")
+    private int signNum;
+
+
+    /**
+     * 总手数,包括rebuy
+     */
+    @ExcelProperty(value = "总手数")
+    private int totalSignup;
+
+
+    @ExcelProperty(value = "报名要求")
+    public String tournamentCondition;
+
+    /**
+     * 截止报名级别
+     */
+    @ExcelProperty(value = "截止盲注等级")
+    private Long lateRegistrationLevel;
+
+
+    @ExcelProperty(value = "盲注表")
+    private String blindStructuresName;
+
+
+
+    @ExcelProperty(value = "奖励")
+    public String prizeDisplay;
+
+
+    @ExcelProperty(value = "赛事状态")
+    private String statusText;
+
+
+
     /**
      * 游戏类型
      */
-    @ExcelProperty(value = "游戏类型")
+    //@ExcelProperty(value = "游戏类型")
     private Long gameType;
 
     /**
      * 起始记分牌数量
      */
-    @ExcelProperty(value = "起始记分牌数量")
+    //@ExcelProperty(value = "起始记分牌数量")
     private Long startingChips;
 
     /**
      * 级别持续时间(分钟)
      */
-    @ExcelProperty(value = "级别持续时间", converter = ExcelDictConvert.class)
+    //@ExcelProperty(value = "级别持续时间", converter = ExcelDictConvert.class)
     @ExcelDictFormat(readConverterExp = "分=钟")
     private Long levelDuration;
 
-    /**
-     * 截止报名级别
-     */
-    @ExcelProperty(value = "截止报名级别")
-    private Long lateRegistrationLevel;
+
 
     /**
      * 最大参赛人数
      */
-    @ExcelProperty(value = "最大参赛人数")
+    //@ExcelProperty(value = "最大参赛人数")
     private Long maxPlayers;
 
     /**
      * 赛事状态
      */
-    @ExcelProperty(value = "赛事状态")
+    //@ExcelProperty(value = "赛事状态")
     private int status;
 
-    @ExcelProperty(value = "赛事状态文本")
-    private String statusText;
-
 
     /**
      *
      */
-    @ExcelProperty(value = "")
+    @ExcelProperty(value = "创建时间")
     private Date createdAt;
 
     /**
      *
      */
-    @ExcelProperty(value = "")
+    //@ExcelProperty(value = "")
     private Date updatedAt;
 
 
@@ -121,26 +154,22 @@ public class TournamentsVo implements Serializable {
 
     private List<ItemsPrizeDto> itemsPrizeList;
 
+
+
     private String itemsName;
 
-    private String blindStructuresName;
+
 
     private String tournamentsBiId;
 
-    /**
-     * 报名人数
-     */
-    private int signNum;
+
 
     /**
      * 奖励人数
      */
     private int rewardPlayers;
 
-    /**
-     * 总手数,包括rebuy
-     */
-    private int totalSignup;
+
 
 
 

+ 73 - 53
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/vo/UserVo.java

@@ -31,7 +31,7 @@ public class UserVo implements Serializable {
     /**
      *
      */
-    @ExcelProperty(value = "")
+    @ExcelProperty(value = "用户ID")
     private Long id;
 
     /**
@@ -40,153 +40,173 @@ public class UserVo implements Serializable {
     @ExcelProperty(value = "登录名称")
     private String loginName;
 
+
     /**
-     * 登录密码
+     * 用户姓名
      */
-    @ExcelProperty(value = "登录密码")
-    private String loginPass;
+    @ExcelProperty(value = "用户姓名")
+    private String realName;
+
+    /**
+     * 昵称
+     */
+    @ExcelProperty(value = "用户昵称")
+    private String nickName;
 
     /**
      * 手机号
      */
-    @ExcelProperty(value = "手机号")
+    @ExcelProperty(value = "用户手机号")
     private String phone;
 
+
     /**
      * 创建时间
      */
-    @ExcelProperty(value = "创建时间")
+    @ExcelProperty(value = "注册时间")
     private String createAt;
 
+    /**
+     * 上一次登录时间
+     */
+    @ExcelProperty(value = "最新上线时间")
+    private String lastLoginTime;
+
+    /**
+     *  积分数
+     */
+    @ExcelProperty(value = "积分数")
+    private Long pointsQuantity;
+
+    /**
+     * 道具数量 / 门票数
+     */
+    @ExcelProperty(value = "门票数")
+    private Long itemsQuantity;
+
+    /**
+     * 比赛数
+     */
+    @ExcelProperty(value = "比赛数")
+    private Integer tournamentCount;
+
+
+    /**
+     * 状态描述
+     */
+    @ExcelProperty(value = "账号状态")
+    private String statusText;
+
+
+
+    /**
+     * 登录密码
+     */
+    //@ExcelProperty(value = "登录密码")
+    private String loginPass;
+
+
+
+
     /**
      * 更新时间
      */
-    @ExcelProperty(value = "更新时间")
+    //@ExcelProperty(value = "更新时间")
     private String updateAt;
 
     /**
      * 性别
      */
-    @ExcelProperty(value = "性别")
+    //@ExcelProperty(value = "性别")
     private Long sex;
 
     /**
      * 邮箱
      */
-    @ExcelProperty(value = "邮箱")
+    //@ExcelProperty(value = "邮箱")
     private String email;
 
-    /**
-     * 昵称
-     */
-    @ExcelProperty(value = "昵称")
-    private String nickName;
+
 
     /**
      * 备注
      */
-    @ExcelProperty(value = "备注")
+    //@ExcelProperty(value = "备注")
     private String remark;
 
     /**
      * 验证码
      */
-    @ExcelProperty(value = "验证码")
+    //@ExcelProperty(value = "验证码")
     private String captcha;
 
     /**
      * 头像
      */
-    @ExcelProperty(value = "头像")
+    //@ExcelProperty(value = "头像")
     private String avatar;
 
     /**
      * 省份
      */
-    @ExcelProperty(value = "省份")
+    //@ExcelProperty(value = "省份")
     private String province;
 
     /**
      * 市
      */
-    @ExcelProperty(value = "市")
+    //@ExcelProperty(value = "市")
     private String city;
 
     /**
      * 区/县
      */
-    @ExcelProperty(value = "区/县")
+    //@ExcelProperty(value = "区/县")
     private String area;
 
     /**
      * 详细地址
      */
-    @ExcelProperty(value = "详细地址")
+    //@ExcelProperty(value = "详细地址")
     private String placeDetail;
 
     /**
      * 注册ip
      */
-    @ExcelProperty(value = "注册ip")
+    //@ExcelProperty(value = "注册ip")
     private String registerIp;
 
     /**
      * 注册设备信息
      */
-    @ExcelProperty(value = "注册设备信息")
+    //@ExcelProperty(value = "注册设备信息")
     private String registerDevice;
 
     /**
      * 0:禁用, 1:启用
      */
-    @ExcelProperty(value = "0:禁用, 1:启用")
+    //@ExcelProperty(value = "0:禁用, 1:启用")
     private Long status;
 
     /**
      *  0 锁定 1 未锁定
      */
-    @ExcelProperty(value = " 0 锁定 1 未锁定")
+    //@ExcelProperty(value = " 0 锁定 1 未锁定")
     private Long isLocked;
 
-    /**
-     * 上一次登录时间
-     */
-    @ExcelProperty(value = "上一次登录时间")
-    private String lastLoginTime;
+
 
     /**
      * 上一次登录ip
      */
-    @ExcelProperty(value = "上一次登录ip")
+    //@ExcelProperty(value = "上一次登录ip")
     private String lastLoginIp;
 
 
-    /**
-     * 用户姓名
-     */
-    @ExcelProperty(value = "用户姓名")
-    private String realName;
 
-    /**
-     * 状态描述
-     */
-    private String statusText;
 
 
-    /**
-     * 比赛数
-     */
-    private Integer tournamentCount;
-
-    /**
-     * 道具数量 / 门票数
-      */
-    private Long itemsQuantity;
 
-    /**
-     *  积分数
-     */
-    private Long pointsQuantity;
 
 
 

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/mapper/PlayersItemsLogMapper.java

@@ -30,5 +30,7 @@ public interface PlayersItemsLogMapper extends BaseMapperPlus<PlayersItemsLog, P
     @InterceptorIgnore(tenantLine = "true")
     Page<PlayersItemsLogVo> selectPlayerItemsLogInfoList(@Param("page") Page<Items> page, @Param("ew") Wrapper<PlayersItemsLog> wrapper);
 
+    @InterceptorIgnore(tenantLine = "true")
+    List<PlayersItemsLogVo> selectPlayerItemsLogInfoListInfo(@Param("ew") Wrapper<PlayersItemsLog> wrapper);
 
 }

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/mapper/ScheduleExecutionMapper.java

@@ -37,5 +37,7 @@ public interface ScheduleExecutionMapper extends BaseMapperPlus<ScheduleExecutio
     @InterceptorIgnore(tenantLine = "true")
     ScheduleExecutionVo findTodayPendingExecutionsExit(@Param("dates") LocalDate dates, @Param("executionTime") LocalTime executionTime, @Param("configId") Long configId);
 
+    @InterceptorIgnore(tenantLine = "true")
+    List<ScheduleExecutionVo> findTodayPendingExecutionsFirst(@Param("dates") LocalDate dates);
 
 }

+ 17 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/PayOrderServiceImpl.java

@@ -77,7 +77,23 @@ public class PayOrderServiceImpl implements IPayOrderService {
     @Override
     public List<PayOrderVo> queryList(PayOrderBo bo) {
         Wrapper<PayOrder> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectPayOrderList(lqw);
+        List<PayOrderVo> payOrderVoList = baseMapper.selectPayOrderList(lqw);
+        for (PayOrderVo payOrderVo : payOrderVoList) {
+            String payOrderVoStatus = payOrderVo.getStatus();
+            if(payOrderVoStatus.equals("success")){
+                payOrderVo.setStatusText("成功");
+            }else{
+                payOrderVo.setStatusText("已关闭");
+            }
+            payOrderVo.setTotalAmountText(String.format("%.2f", payOrderVo.getTotalAmount()));
+
+            UserVo userVo = userMapper.selectVoByIdInfo(payOrderVo.getUserId());
+            if(userVo!=null){
+                payOrderVo.setUserName(userVo.getNickName());
+                payOrderVo.setPhone(userVo.getPhone());
+            }
+        }
+        return payOrderVoList;
     }
 
     private Wrapper<PayOrder> buildQueryWrapper(PayOrderBo bo) {

+ 24 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/PlayersItemsLogServiceImpl.java

@@ -4,8 +4,10 @@ import org.dromara.business.domain.PlayersItemsLog;
 import org.dromara.business.domain.bo.PlayersItemsLogBo;
 import org.dromara.business.domain.vo.ItemsVo;
 import org.dromara.business.domain.vo.PlayersItemsLogVo;
+import org.dromara.business.domain.vo.UserVo;
 import org.dromara.business.mapper.ItemsMapper;
 import org.dromara.business.mapper.PlayersItemsLogMapper;
+import org.dromara.business.mapper.UserMapper;
 import org.dromara.business.service.IPlayersItemsLogService;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -36,6 +38,8 @@ public class PlayersItemsLogServiceImpl implements IPlayersItemsLogService {
 
     private final ItemsMapper itemsMapper;
 
+    private final UserMapper userMapper;
+
     /**
      * 查询道具使用记录
      *
@@ -75,7 +79,26 @@ public class PlayersItemsLogServiceImpl implements IPlayersItemsLogService {
     @Override
     public List<PlayersItemsLogVo> queryList(PlayersItemsLogBo bo) {
         LambdaQueryWrapper<PlayersItemsLog> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
+        List<PlayersItemsLogVo> playersItemsLogVos = baseMapper.selectPlayerItemsLogInfoListInfo(lqw);
+        for (PlayersItemsLogVo resultRecord : playersItemsLogVos) {
+            if(resultRecord.getType()==1L){
+                resultRecord.setTypeText("新增");
+            }else if(resultRecord.getType()==2L){
+                resultRecord.setTypeText("扣除");
+            }else if(resultRecord.getType()==3L){
+                resultRecord.setTypeText("其他");
+            }
+            ItemsVo itemsVo = itemsMapper.selectVoByIdInfo(resultRecord.getItemId());
+            resultRecord.setItemName(itemsVo.getName());
+
+            UserVo userVo = userMapper.selectVoByIdInfo(resultRecord.getUserId());
+            if(userVo!=null){
+                resultRecord.setUserName(userVo.getNickName());
+                resultRecord.setPhone(userVo.getPhone());
+            }
+
+        }
+        return playersItemsLogVos;
     }
 
     private LambdaQueryWrapper<PlayersItemsLog> buildQueryWrapper(PlayersItemsLogBo bo) {

+ 6 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/RechargeProductsServiceImpl.java

@@ -76,7 +76,12 @@ public class RechargeProductsServiceImpl implements IRechargeProductsService {
     @Override
     public List<RechargeProductsVo> queryList(RechargeProductsBo bo) {
         LambdaQueryWrapper<RechargeProducts> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectExportRechargeProductsAll(lqw);
+        List<RechargeProductsVo> rechargeProductsVos = baseMapper.selectExportRechargeProductsAll(lqw);
+        for (RechargeProductsVo record : rechargeProductsVos) {
+            ItemsVo itemsVo = itemsMapper.selectVoByIdInfo(Long.valueOf(record.getRelatedItemId()));
+            record.setItemsName(itemsVo.getName());
+        }
+        return rechargeProductsVos;
     }
 
     private LambdaQueryWrapper<RechargeProducts> buildQueryWrapper(RechargeProductsBo bo) {

+ 12 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/ScheduleConfigServiceImpl.java

@@ -18,6 +18,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.job.business.ScheduleTask;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import java.time.LocalDate;
 import java.time.LocalTime;
@@ -209,8 +212,9 @@ public class ScheduleConfigServiceImpl implements IScheduleConfigService {
         }
 
 
-        // 6. ✅ 预生成执行计划     todo 暂时走定时任务生成未来一周数据
-        //generateExecutionPlan(configId, dto.getCreationSchemeCode(), startDate, endDate, dto.getRepeatTypes(), dto.getExecTimes());
+        // 6. ✅ 预生成执行计划     todo 暂时走定时任务生成未来一周数据  WEEKLY
+        // generateExecutionPlan(configId, dto.getCreationSchemeCode(), startDate, endDate, dto.getRepeatTypes(), dto.getExecTimes());
+        generateExecutionPlan(configId, "WEEKLY", LocalDate.now(),LocalDate.now().plusDays(7), dto.getRepeatTypes(), dto.getExecTimes());
 
         //7 模版变成 投放中
         tournamentsTemplateMapper.updateUseTournamentTemplate(dto.getTemplateId());
@@ -279,7 +283,9 @@ public class ScheduleConfigServiceImpl implements IScheduleConfigService {
             d = d.plusDays(1);
         }
     }
-
+    @Autowired
+    @Lazy
+    ScheduleTask scheduleTask;
     private void generateWeeklyPlan(Long configId, LocalDate start, LocalDate end, List<String> repeatTypes, List<LocalTime> execTimes) {
         LocalDate d = start;
         while (!d.isAfter(end)) {
@@ -295,9 +301,12 @@ public class ScheduleConfigServiceImpl implements IScheduleConfigService {
                         scheduleExecutionMapper.insertScheduleExecution(e);
                     }
                  }
+
             }
             d = d.plusDays(1);
         }
+         //TODO提前生成未来一周赛事数据
+        scheduleTask.generateMatchesForNextThreeDays();
     }
 
     private void generateNextThreeDaysPlan(Long configId, LocalDate start, LocalDate end, List<String> repeatTypes, List<LocalTime> execTimes) {

+ 65 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/TournamentsServiceImpl.java

@@ -218,7 +218,67 @@ public class TournamentsServiceImpl implements ITournamentsService {
     @Override
     public List<TournamentsVo> queryList(TournamentsBo bo) {
         LambdaQueryWrapper<Tournaments> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectTournamentsVoList(lqw);
+        List<TournamentsVo> tournamentsVos = baseMapper.selectTournamentsVoList(lqw);
+        for (TournamentsVo record : tournamentsVos) {
+            Long tournamentId = record.getId();
+            String statusText= GameStatus.getDescriptionFromCode(record.getStatus());
+            record.setStatusText(statusText);
+            //赛事报名条件
+            TournamentEntryConditionsVo tournamentEntryConditionsVo = tournamentEntryConditionsMapper.selectByTournamentInfo(tournamentId);
+            String tournamentCondition="";
+            if(tournamentEntryConditionsVo!=null){
+                record.setItemsId(tournamentEntryConditionsVo.getItemId());
+                record.setItemsNum(tournamentEntryConditionsVo.getRequiredQuantity());
+                record.setItemsName(tournamentEntryConditionsVo.getItemsName());
+                tournamentCondition=tournamentEntryConditionsVo.getItemsName()+"*"+tournamentEntryConditionsVo.getRequiredQuantity();
+            }
+            record.setTournamentCondition(tournamentCondition);
+            //绑定的盲注信息
+            TournamentBlindStructuresVo tournamentBlindStructuresVo = tournamentBlindStructuresMapper.selectTournamentBlindStructureByTournamentId(tournamentId);
+            if(tournamentBlindStructuresVo!=null){
+                record.setBlindStructureId(tournamentBlindStructuresVo.getBlindStructureId());
+                record.setBlindStructuresName(tournamentBlindStructuresVo.getBlindStructuresName());
+            }
+
+            //排名
+            List<PrizeDistributionsVo> prizeDistributionsVos = prizeDistributionsMapper.selectByTournamentId(tournamentId);
+            if(prizeDistributionsVos!=null){
+                List<ItemsPrizeDto> itemsPrizeList=new ArrayList<>();
+                StringBuilder prizeDisplayBuilder = new StringBuilder();
+                // 提取并按排名正序排序后,取出 id 列表
+                List<Long> ids = prizeDistributionsVos.stream()
+                    .sorted(Comparator.comparing(PrizeDistributionsVo::getPaiming))
+                    .map(PrizeDistributionsVo::getId)
+                    .collect(Collectors.toList());
+                int i=0;
+                for (Long id2 : ids) {
+                    i++;
+                    //奖品
+                    PrizeDistributionItemsVo prizeDistributionItemsVos = prizeDistributionItemsMapper.selectByPrizeDistributionId(id2);
+                    if(prizeDistributionItemsVos!=null){
+                        ItemsPrizeDto itemsPrizeBo = new ItemsPrizeDto();
+                        itemsPrizeBo.setRanking(Long.valueOf(i));
+                        itemsPrizeBo.setItemId(prizeDistributionItemsVos.getItemId());
+                        itemsPrizeBo.setQuantity(prizeDistributionItemsVos.getQuantity());
+                        itemsPrizeBo.setItemsName(prizeDistributionItemsVos.getItemsName());
+                        itemsPrizeList.add(itemsPrizeBo);
+                        // 拼接 name*quantity 格式字符串
+                        if (prizeDisplayBuilder.length() > 0) {
+                            prizeDisplayBuilder.append(",");
+                        }
+                        prizeDisplayBuilder.append(prizeDistributionItemsVos.getItemsName())
+                            .append("*")
+                            .append(prizeDistributionItemsVos.getQuantity());
+                     }
+                 }
+                record.setItemsPrizeList(itemsPrizeList);
+                record.setPrizeDisplay(prizeDisplayBuilder.toString()); // 假设 TournamentsVo 中有 prizeDisplay 字段
+            }
+
+            int totalSignNum = participantsMapper.selectParticipantsTotal(tournamentId);
+            record.setSignNum(totalSignNum);
+         }
+       return tournamentsVos;
     }
 
 
@@ -304,6 +364,10 @@ public class TournamentsServiceImpl implements ITournamentsService {
                 add.setLevelDuration(blindLevelsVos.get(0).getDurationMinutes());
             }
             add.setIsDelete(false);
+            //如果没有上传赛事图片  默认系统的
+            if(StringUtils.isEmpty(bo.getCompetitionIcon())){
+                add.setCompetitionIcon("http://public-photos-sanxiang.oss-cn-beijing.aliyuncs.com/2025/09/27/2578bfe49f81452fb5c875d62c32fe41.png");
+            }
             // 插入赛事主表
             boolean flag = baseMapper.insertTournament(add) > 0;
             if (!flag) {

+ 24 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/service/impl/UserServiceImpl.java

@@ -137,7 +137,30 @@ public class UserServiceImpl implements IUserService {
     @Override
     public List<UserVo> queryList(UserBo bo) {
         Wrapper<User> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectUserList(lqw);
+        List<UserVo> userVoList = baseMapper.selectUserList(lqw);
+        for (UserVo resultRecord : userVoList) {
+                if(StringUtils.isEmpty(resultRecord.getLoginName())){
+                    resultRecord.setLoginName(resultRecord.getPhone());
+                }
+
+                int userRewardCount = rewardClaimsMapper.selectUserRewardCount(resultRecord.getId());
+                resultRecord.setTournamentCount(userRewardCount);
+
+                PlayerItemsVo playerItemsVo = playerItemsMapper.selectPlayerItemsInfo(resultRecord.getId(), 1001L);
+
+                if(playerItemsVo!=null){
+                    //道具数量 /门票数
+                    resultRecord.setItemsQuantity(playerItemsVo.getQuantity());
+
+                }
+
+                Long jiFenCount = playerItemsMapper.selectPlayerJiFenCount(resultRecord.getId());
+                if(jiFenCount!=null){
+                    //参赛积分
+                    resultRecord.setPointsQuantity(jiFenCount);
+                }
+            }
+         return userVoList;
     }
 
     private Wrapper<User> buildQueryWrapper(UserBo bo) {

+ 5 - 5
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/job/business/ScheduleTask.java

@@ -188,20 +188,20 @@ public class ScheduleTask {
     /**
      * 每天 00:10 执行,生成未来三天的数据
      */
-    //@Scheduled(cron = "0 10 00 * * ?")
+    //@Scheduled(cron = "0 20 16 * * ?")
     public void generateMatchesForNextThreeDays() {
         LocalDate today = LocalDate.now();
-        log.info("开始生成未来天比赛: {}", today);
+        log.info("开始生成未来天比赛: {}", today);
 
         // 获取未来三天的日期列表
-        List<LocalDate> futureDates = getFutureDates(3);
+        List<LocalDate> futureDates = getFutureDates(7);
 
         for (LocalDate date : futureDates) {
-            List<ScheduleExecutionVo> executions = scheduleExecutionMapper.findTodayPendingExecutions(date);
+            List<ScheduleExecutionVo> executions = scheduleExecutionMapper.findTodayPendingExecutionsFirst(date);
 
             for (ScheduleExecutionVo exec : executions) {
                 try {
-                    ScheduleConfigVo config = baseMapper.selectScheduleConfigById(exec.getConfigId());
+                    ScheduleConfigVo config = baseMapper.selectScheduleConfigById2(exec.getConfigId());
                     if (config == null) {
                         log.warn("配置不存在: execId={}", exec.getId());
                         scheduleExecutionMapper.updateSelective(exec.getId(), "FAILED");

+ 21 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/business/PlayersItemsLogMapper.xml

@@ -91,4 +91,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
 
+
+    <select id="selectPlayerItemsLogInfoListInfo" resultType="org.dromara.business.domain.vo.PlayersItemsLogVo">
+        SELECT
+            id,
+            item_id,
+            score_num,
+            after_num,
+            created_at,
+            updated_at,
+            user_id,
+            type,
+            remark,
+            item_type,
+            before_num,
+            item_type_text
+        FROM
+            players_items_log ${ew.customSqlSegment}
+    </select>
+
+
+
 </mapper>

+ 15 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/business/ScheduleExecutionMapper.xml

@@ -42,6 +42,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           AND status = 'PENDING'
     </select>
 
+    <select id="findTodayPendingExecutionsFirst"   resultType="org.dromara.business.domain.vo.ScheduleExecutionVo">
+        SELECT
+            id,
+            config_id,
+            execution_date,
+            execution_time,
+            status,
+            created_at,
+            updated_at
+        FROM
+            schedule_execution
+        WHERE
+            execution_date = #{dates} -- 或者使用具体的日期如 '2025-07-31'
+    </select>
+
     <!-- 通用更新:只更新非空字段 -->
     <update id="updateSelective">
         UPDATE schedule_execution