Bladeren bron

feat(system): 添加游戏状态枚举并优化赛事信息展示

- 新增 GameStatus 枚举类,用于定义游戏状态
- 在 TournamentsServiceImpl 中使用 GameStatus 获取赛事状态文本
- 在 TournamentsVo 中添加 statusText 字段用于存储赛事状态文本
- 优化了赛事信息展示,增加了赛事状态的详细描述
fugui001 5 maanden geleden
bovenliggende
commit
2e47c93d30

+ 56 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/business/domain/enums/GameStatus.java

@@ -0,0 +1,56 @@
+package org.dromara.business.domain.enums;
+
+public enum GameStatus {
+
+    NOT_STARTED(0, "未开始"),
+    RUNNING(1, "进行中"),
+    HAND_FOR_HAND(2, "同步发牌"),
+    PAUSED(3, "普通暂停"),
+    FINISHED(4, "完成");
+
+    private final int code;
+    private final String description;
+
+    GameStatus(int code, String description) {
+        this.code = code;
+        this.description = description;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * 根据code获取对应的GameStatus枚举值。
+     *
+     * @param code 状态码
+     * @return 对应的GameStatus枚举值,如果找不到则返回null
+     */
+    public static GameStatus fromCode(int code) {
+        for (GameStatus status : GameStatus.values()) {
+            if (status.getCode() == code) {
+                return status;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 根据code获取对应的详细信息。
+     *
+     * @param code 状态码
+     * @return 对应的详细信息,如果找不到则返回null
+     */
+    public static String getDescriptionFromCode(int code) {
+        GameStatus status = fromCode(code);
+        return status != null ? status.getDescription() : null;
+    }
+
+
+
+
+}

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

@@ -1,22 +1,17 @@
 package org.dromara.business.domain.vo;
 
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.validation.constraints.NotNull;
 import org.dromara.business.domain.Tournaments;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
 import org.dromara.business.domain.dto.ItemsPrizeDto;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
 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;
 import java.io.Serializable;
-import java.util.Date;
 import java.util.List;
 
 
@@ -92,7 +87,11 @@ public class TournamentsVo implements Serializable {
      * 赛事状态
      */
     @ExcelProperty(value = "赛事状态")
-    private Long status;
+    private int status;
+
+    @ExcelProperty(value = "赛事状态文本")
+    private String statusText;
+
 
     /**
      *

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

@@ -5,14 +5,12 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.dromara.business.domain.*;
-import org.dromara.business.domain.bo.ItemsPrizeBo;
 import org.dromara.business.domain.bo.TournamentBlindStructuresBo;
 import org.dromara.business.domain.dto.ItemsPrizeDto;
 import org.dromara.business.domain.dto.TournamentsDto;
+import org.dromara.business.domain.enums.GameStatus;
 import org.dromara.business.domain.vo.*;
 import org.dromara.business.mapper.*;
-import org.dromara.business.service.IItemsService;
-import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
@@ -31,7 +29,6 @@ import org.dromara.business.service.ITournamentsService;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
@@ -113,6 +110,9 @@ public class TournamentsServiceImpl implements ITournamentsService {
 
             }
             tournamentsVo.setItemsPrizeList(itemsPrizeList);
+
+            String statusText= GameStatus.getDescriptionFromCode(tournamentsVo.getStatus());
+            tournamentsVo.setStatusText(statusText);
         }
 
         return tournamentsVo;
@@ -132,6 +132,8 @@ public class TournamentsServiceImpl implements ITournamentsService {
         List<TournamentsVo> records = result.getRecords();
         for (TournamentsVo record : records) {
             Long tournamentId = record.getId();
+            String statusText= GameStatus.getDescriptionFromCode(record.getStatus());
+            record.setStatusText(statusText);
             //赛事报名条件
             TournamentEntryConditionsVo tournamentEntryConditionsVo = tournamentEntryConditionsMapper.selectByTournamentInfo(tournamentId);
             if(tournamentEntryConditionsVo!=null){