x1ongzhu il y a 6 ans
Parent
commit
492a81d3dc

+ 13 - 1
src/main/java/com/izouma/awesomeadmin/dao/PlayerInfoMapper.xml

@@ -32,6 +32,8 @@
         <result column="score" property="score" jdbcType="FLOAT"/>
         <result column="competition_id" property="competitionId" jdbcType="INTEGER"/>
         <result column="played" property="played" jdbcType="BIT"/>
+        <result column="result_error" property="resultError" jdbcType="BIT"/>
+        <result column="data_error" property="dataError" jdbcType="BIT"/>
     </resultMap>
     <sql id="Base_Column_List">
         <trim suffixOverrides=",">
@@ -93,7 +95,11 @@
 
             competition_id,
 
-            played
+            played,
+
+            result_error,
+
+            data_error
 
         </trim>
     </sql>
@@ -389,6 +395,12 @@
             <if test="played != null">
                 played = #{played,jdbcType=BIT},
             </if>
+            <if test="resultError != null">
+                result_error = #{resultError,jdbcType=BIT},
+            </if>
+            <if test="dataError != null">
+                data_error = #{dataError,jdbcType=BIT},
+            </if>
         </set>
         where
         <if test="id != null and !&quot;&quot;.equals(id)">

+ 18 - 0
src/main/java/com/izouma/awesomeadmin/model/PlayerInfo.java

@@ -48,6 +48,8 @@ public class PlayerInfo {
     private Integer     competitionId;
     private Boolean     played;
     private Competition competitionInfo;
+    private Boolean     resultError;
+    private Boolean     dataError;
 
     /**
      * and,test_name,like,value;or,remark,=,123
@@ -379,5 +381,21 @@ public class PlayerInfo {
     public void setPlayed(Boolean played) {
         this.played = played;
     }
+
+    public Boolean getResultError() {
+        return resultError;
+    }
+
+    public void setResultError(Boolean resultError) {
+        this.resultError = resultError;
+    }
+
+    public Boolean getDataError() {
+        return dataError;
+    }
+
+    public void setDataError(Boolean dataError) {
+        this.dataError = dataError;
+    }
 }
 

+ 27 - 4
src/main/java/com/izouma/awesomeadmin/service/impl/HouseInfoServiceImpl.java

@@ -207,7 +207,7 @@ public class HouseInfoServiceImpl implements HouseInfoService {
                 return false;
             }
 
-            // Competition competition = competitionService.getCompetitionById(record.getCompetitionId().toString());
+            Competition competition = competitionService.getCompetitionById(record.getCompetitionId().toString());
 
             for (PlayerInfo playerInfo : playerInfos) {
                 double rankRate = playerInfo.getRank() * 100 / (double) playerInfos.size();
@@ -231,9 +231,22 @@ public class HouseInfoServiceImpl implements HouseInfoService {
                 playerInfo.setPoints(new BigDecimal(points));
                 playerInfo.setHouseRank(playerInfo.getRank());
 
-                String content = "你在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
-                        + "开始的比赛\"" + houseInfo.getHouseName() + "\"中获得了第" + playerInfo.getHouseRank()
-                        + "名," + (points >= 0 ? "获得" : "扣除") + Math.abs(points) + "积分。";
+                String content;
+                if (playerInfo.getResultError()) {
+                    content = "你在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
+                            + "开始的游戏竞赛 " + competition.getCompetitionName() + " - " + houseInfo.getHouseName()
+                            + "无有效结果,积分" + (points >= 0 ? "+" : "-") + Math.abs(points)
+                            + ",你可以点击下方的申诉按钮提交本次战绩截图信息,客服人员会及时为您处理。";
+                } else if (playerInfo.getDataError() || !playerInfo.getPlayed()) {
+                    content = "很遗憾,在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
+                            + "开始的游戏竞赛 " + competition.getCompetitionName() + " - " + houseInfo.getHouseName()
+                            + "系统检测到你的游戏数据异常,积分" + (points >= 0 ? "+" : "-") + Math.abs(points);
+                } else {
+                    content = "你在" + DateTimeTool.dateTimeToTimeYYYYHHmmStr(houseInfo.getBeginTime())
+                            + "开始的游戏竞赛 " + competition.getCompetitionName() + " - " + houseInfo.getHouseName()
+                            + "中获得了第" + playerInfo.getHouseRank() + "名,积分" + (points >= 0 ? "+" : "-") + Math.abs(points);
+                }
+
                 SystemNotice systemNotice = new SystemNotice();
                 systemNotice.setGameId(playerInfo.getGameId());
                 systemNotice.setHouseId(playerInfo.getHouseId());
@@ -288,6 +301,16 @@ public class HouseInfoServiceImpl implements HouseInfoService {
     private void cloneHouse(HouseInfo source) {
         logger.info("cloneHouse");
         try {
+            Competition competition = competitionService.getCompetitionById(source.getCompetitionId().toString());
+            if (competition == null) {
+                return;
+            }
+            if (competition.getEndTime() != null && competition.getEndTime().before(new Date())) {
+                return;
+            }
+            if (competition.getStatus() == AppConstant.CompetitionStatus.END) {
+                return;
+            }
             HouseInfo houseInfo = (HouseInfo) source.clone();
             houseInfo.setId(null);
             houseInfo.setStatusFlag(AppConstant.HouseStatus.WAIT);

+ 2 - 4
src/main/java/com/izouma/awesomeadmin/service/impl/VideoRecognitionServiceImpl.java

@@ -64,10 +64,7 @@ public class VideoRecognitionServiceImpl implements VideoRecognitionService {
                     playerInfo.setImage(map.get("image"));
                     playerInfo.setScore(Float.parseFloat(map.get("评分")));
                     playerInfo.setLiveTime(map.get("参赛时间").replace("分钟", ""));
-                    try {
-                        playerInfo.setRanking(Integer.valueOf(map.get("rank").replace("第", "")));
-                    } catch (Exception ignore) {
-                    }
+                    playerInfo.setRanking(Integer.valueOf(map.get("rank").replace("第", "")));
                     try {
                         playerInfo.setKillNumber(Integer.parseInt(map.get("淘汰")));
                     } catch (Exception ignore) {
@@ -79,6 +76,7 @@ public class VideoRecognitionServiceImpl implements VideoRecognitionService {
             } catch (FrameGrabber.Exception e) {
                 e.printStackTrace();
                 playerInfo.setStatusFlag(AppConstant.PlayerStatus.PROCESSED_FAIL);
+                playerInfo.setResultError(true);
             }
             playerInfoService.updatePlayerInfo(playerInfo);
         });

+ 2 - 1
src/main/java/com/izouma/awesomeadmin/web/PlayerInfoController.java

@@ -340,11 +340,12 @@ public class PlayerInfoController {
         if ("false".equals(systemVariableService.get("uploadShort"))) {
             PlayerInfo record = playerInfoService.getPlayerInfoById(String.valueOf(id));
             HouseInfo houseInfo = houseInfoService.getHouseInfoById(String.valueOf(record.getHouseId()));
-            Date date = new Date(System.currentTimeMillis() - 20 * 60 * 1000);
+            Date date = new Date(System.currentTimeMillis() - 15 * 60 * 1000);
             if (!houseInfo.getBeginTime().before(date)) {
                 PlayerInfo playerInfo = new PlayerInfo();
                 playerInfo.setId(id);
                 playerInfo.setStatusFlag(AppConstant.PlayerStatus.PROCESSED_FAIL);
+                playerInfo.setDataError(true);
                 playerInfoService.updatePlayerInfo(playerInfo);
                 return new Result(true, "");
             }

+ 6 - 0
src/main/vue/src/pages/Competition.vue

@@ -163,6 +163,12 @@
                     awardPic: [
                         {required: true, message: '请输入 奖品图片', trigger: 'blur'},
                     ],
+                    startTime: [
+                        {required: true, message: '请填写开始时间', trigger: 'blur'},
+                    ],
+                    endTime: [
+                        {required: true, message: '请填写结束时间', trigger: 'blur'},
+                    ],
                 },
                 typeOptions: [{"label": "普通", "value": 1}, {"label": "VIP", "value": 2}],
                 statusOptions: [{"label": "进行中", "value": 1}, {"label": "已结束", "value": 2}],