suochencheng il y a 7 ans
Parent
commit
235b987e3a

+ 42 - 0
src/main/java/com/izouma/awesomeadmin/constant/AppConstant.java

@@ -376,4 +376,46 @@ public interface AppConstant {
         Integer OVERTIME = 7;
 
     }
+
+    /**
+     * 审核类型
+     */
+    public interface ExamineType {
+        /**
+         * 未参赛
+         */
+        Integer NO_MATCH = 0;
+
+        /**
+         * 自动审核
+         */
+        Integer AUTO = 1;
+
+        /**
+         * 手动审核
+         */
+        Integer MANUAL = 2;
+    }
+
+
+    /**
+     * 系统通知类型
+     */
+    public interface NoticeType {
+        /**
+         * 未参赛
+         */
+        Integer NO_MATCH = 0;
+
+        /**
+         * 比赛结果
+         */
+        Integer RESULT = 1;
+
+        /**
+         * 奖金领取
+         */
+        Integer RECEIVE = 2;
+
+    }
 }

+ 2 - 0
src/main/java/com/izouma/awesomeadmin/dao/HouseInfoMapper.java

@@ -33,5 +33,7 @@ public interface HouseInfoMapper{
     int joinHouseInfo(HouseInfo record);
 
     HouseInfo getHouseInfoPlayerNum(Integer valueOf);
+
+    List<HouseInfo> autoBeginHouseInfo(HouseInfo record);
 }
 

+ 18 - 0
src/main/java/com/izouma/awesomeadmin/dao/HouseInfoMapper.xml

@@ -839,6 +839,24 @@
         order by id desc
     </select>
 
+    <select id="autoBeginHouseInfo" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.HouseInfo">
+        SELECT
+            *
+        FROM
+            `house_info`
+        WHERE
+            del_flag = 'N'
+        AND use_flag = 'Y'
+        AND status_flag = 0
+        AND (
+            player_number = max_number
+            OR DATE_SUB(
+                CURRENT_TIMESTAMP(),
+                INTERVAL 10 MINUTE
+            )  <![CDATA[>=]]> create_time
+        )
+    </select>
+
     <resultMap id="OneHouseInfoResult" type="com.izouma.awesomeadmin.model.HouseInfo" extends="BaseResultMap">
 
         <association property="houseLevelInfo"

+ 3 - 0
src/main/java/com/izouma/awesomeadmin/dao/PlayerInfoMapper.java

@@ -2,6 +2,7 @@ package com.izouma.awesomeadmin.dao;
 
 import java.util.*;
 import com.izouma.awesomeadmin.datasource.DataSource;
+import com.izouma.awesomeadmin.model.HouseInfo;
 import org.springframework.stereotype.Repository;
 import com.izouma.awesomeadmin.model.PlayerInfo;
 
@@ -33,5 +34,7 @@ public interface PlayerInfoMapper{
     List<PlayerInfo> queryPlayerInfoRankByPage(Map<String, Object> parameter);
 
     int userRank(PlayerInfo record);
+
+    List<PlayerInfo> queryNoStartPlayer(HouseInfo record);
 }
 

+ 27 - 0
src/main/java/com/izouma/awesomeadmin/dao/PlayerInfoMapper.xml

@@ -1051,6 +1051,33 @@
     </select>
 
 
+    <select id="queryNoStartPlayer" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.PlayerInfo">
+        SELECT
+                *
+            FROM
+                player_info
+            WHERE
+                del_flag = 'N'
+            AND status_flag = 0
+            AND house_id IN (
+                SELECT
+                    id
+                FROM
+                    house_info
+                WHERE
+                    del_flag = 'N'
+                AND use_flag = 'Y'
+                <![CDATA[ AND status_flag >= 1 ]]>
+
+                AND DATE_SUB(
+                    CURRENT_TIMESTAMP (),
+                    INTERVAL 20 SECOND
+                ) <![CDATA[ >= ]]>  begin_time
+            )
+
+    </select>
+
+
     <resultMap id="PagePlayerInfoResult" type="com.izouma.awesomeadmin.model.PlayerInfo" extends="BaseResultMap">
 
         <association property="userInfo"

+ 4 - 0
src/main/java/com/izouma/awesomeadmin/service/HouseInfoService.java

@@ -30,5 +30,9 @@ public interface HouseInfoService {
     Result joinHouseInfo(PlayerInfo record);
 
     HouseInfo getHouseInfoPlayerNum(String id);
+
+    Result autoBegin(HouseInfo record);
+
+    Result autoNoStartPlay(HouseInfo record);
 }
 

+ 3 - 0
src/main/java/com/izouma/awesomeadmin/service/PlayerInfoService.java

@@ -2,6 +2,7 @@ package com.izouma.awesomeadmin.service;
 
 import java.util.*;
 import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.HouseInfo;
 import com.izouma.awesomeadmin.model.PlayerInfo;
 
 
@@ -27,5 +28,7 @@ public interface PlayerInfoService{
     List<PlayerInfo> getPlayerInfoRankByPage(Page page, PlayerInfo record);
 
     int userRank(PlayerInfo record);
+
+    List<PlayerInfo> getNoStartPlayer(HouseInfo record);
 }
 

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

@@ -5,16 +5,13 @@ import java.util.*;
 
 import com.izouma.awesomeadmin.dto.Result;
 import com.izouma.awesomeadmin.model.*;
-import com.izouma.awesomeadmin.service.MemberCoinService;
-import com.izouma.awesomeadmin.service.PlayerInfoService;
-import com.izouma.awesomeadmin.service.UserInfoService;
+import com.izouma.awesomeadmin.service.*;
 import com.izouma.awesomeadmin.util.MbappUtil;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.izouma.awesomeadmin.constant.AppConstant;
 import com.izouma.awesomeadmin.dto.Page;
-import com.izouma.awesomeadmin.service.HouseInfoService;
 import com.izouma.awesomeadmin.dao.HouseInfoMapper;
 
 /**
@@ -37,6 +34,9 @@ public class HouseInfoServiceImpl implements HouseInfoService {
     @Autowired
     private PlayerInfoService playerInfoService;
 
+    @Autowired
+    private SystemNoticeService systemNoticeService;
+
     @Override
     public List<HouseInfo> getHouseInfoList(HouseInfo record) {
 
@@ -273,5 +273,72 @@ public class HouseInfoServiceImpl implements HouseInfoService {
 
         return new Result(false, "加入失败");
     }
+
+    @Override
+    public Result autoBegin(HouseInfo record) {
+
+        logger.info("autoBegin");
+        try {
+
+            List<HouseInfo> houseInfoList = houseInfoMapper.autoBeginHouseInfo(record);
+
+            for (HouseInfo houseInfo : houseInfoList) {
+
+                houseInfo.setStatusFlag(AppConstant.HouseStatus.START);
+                houseInfo.setBeginTime(new Date());
+                houseInfoMapper.updateByPrimaryKeySelective(houseInfo);
+            }
+
+            return new Result(true, "开始成功");
+
+
+        } catch (Exception e) {
+            logger.error("autoBegin", e);
+        }
+
+        return new Result(false, "开始失败");
+    }
+
+    @Override
+    public Result autoNoStartPlay(HouseInfo record) {
+
+        logger.info("autoNoStartPlay");
+        try {
+
+            List<PlayerInfo> playerInfoList = playerInfoService.getNoStartPlayer(record);
+
+            for (PlayerInfo playerInfo : playerInfoList) {
+
+                playerInfo.setStatusFlag(AppConstant.PlayerStatus.NO_MATCH);
+                playerInfo.setExamineUser("系统定时任务");
+                playerInfo.setExamineTime(new Date());
+                playerInfo.setExamineType(AppConstant.ExamineType.NO_MATCH);
+
+                playerInfoService.updatePlayerInfo(playerInfo);
+
+                SystemNotice systemNotice = new SystemNotice();
+                systemNotice.setGameId(playerInfo.getGameId());
+                systemNotice.setHouseId(playerInfo.getHouseId());
+                systemNotice.setUserId(playerInfo.getUserId());
+                systemNotice.setSeasonId(playerInfo.getSeasonId());
+                systemNotice.setPlayerId(playerInfo.getId());
+                systemNotice.setRemark("定时任务");
+                systemNotice.setContent("房间比赛开始未按规定时间开始游戏,未参赛!");
+                systemNotice.setTypeFlag(AppConstant.NoticeType.NO_MATCH);
+
+                systemNoticeService.createSystemNotice(systemNotice);
+
+
+            }
+
+            return new Result(true, "开始成功");
+
+
+        } catch (Exception e) {
+            logger.error("autoNoStartPlay", e);
+        }
+
+        return new Result(false, "开始失败");
+    }
 }
 

+ 17 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/PlayerInfoServiceImpl.java

@@ -1,6 +1,8 @@
 package com.izouma.awesomeadmin.service.impl;
 
 import java.util.*;
+
+import com.izouma.awesomeadmin.model.HouseInfo;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -34,6 +36,21 @@ public class PlayerInfoServiceImpl implements PlayerInfoService{
 
         return null;
     }
+
+    @Override
+    public List<PlayerInfo> getNoStartPlayer(HouseInfo record) {
+
+        logger.info("getNoStartPlayer");
+        try {
+
+        return playerInfoMapper.queryNoStartPlayer(record);
+        } catch (Exception e) {
+        logger.error("getNoStartPlayer", e);
+        }
+
+        return null;
+    }
+
     @Override
     public List<PlayerInfo> getPlayerInfoByPage(Page page, PlayerInfo record) {
 

+ 18 - 0
src/main/java/com/izouma/awesomeadmin/web/HouseInfoController.java

@@ -196,5 +196,23 @@ public class HouseInfoController {
         return houseInfoService.joinHouseInfo(record);
     }
 
+
+    /**
+     * 比赛自动开始
+     *
+     * @return
+     */
+    @RequestMapping(value = "/autoBegin", method = RequestMethod.POST)
+    @ResponseBody
+    public Result autoBegin() {
+        return houseInfoService.autoBegin(null);
+    }
+
+    @RequestMapping(value = "/autoNoStartPlay", method = RequestMethod.POST)
+    @ResponseBody
+    public Result autoNoStartPlay() {
+        return houseInfoService.autoNoStartPlay(null);
+    }
+
 }
 

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

@@ -211,5 +211,7 @@ public class PlayerInfoController {
 
 
     }
+
+
 }
 

Fichier diff supprimé car celui-ci est trop grand
+ 244 - 245
src/main/vue/package-lock.json


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff