suochencheng 7 年之前
父节点
当前提交
bdb7f9bfe0

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

@@ -390,6 +390,11 @@ public interface AppConstant {
          */
         Integer PROCESSED = 8;
 
+        /**
+         * 解析失败
+         */
+        Integer PROCESSED_FAIL = 9;
+
     }
 
     /**

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

@@ -31,5 +31,7 @@ public interface SystemNoticeMapper{
     List<SystemNotice> query(SystemNotice record);
 
     int receiveBonus(SystemNotice systemNotice);
+
+    int getUnreadSystemNotice(SystemNotice record);
 }
 

+ 52 - 0
src/main/java/com/izouma/awesomeadmin/dao/SystemNoticeMapper.xml

@@ -536,6 +536,58 @@
         </where>
         order by id desc
     </select>
+    <select id="getUnreadSystemNotice" parameterType="java.util.Map" resultType="Integer">
+        SELECT COUNT(1) FROM system_notice
+        <where>
+            and del_flag = 'N'
+            <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+            <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+            <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+            <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+            <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+            <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+            <if test="gameId != null and !&quot;&quot;.equals(gameId)">
+                and game_id = #{gameId}
+            </if>
+            <if test="houseId != null and !&quot;&quot;.equals(houseId)">
+                and house_id = #{houseId}
+            </if>
+            <if test="userId != null and !&quot;&quot;.equals(userId)">
+                and user_id = #{userId}
+            </if>
+            <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+            <if test="typeFlag != null and !&quot;&quot;.equals(typeFlag)">
+                and type_flag = #{typeFlag}
+            </if>
+            <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
+                and status_flag = #{statusFlag}
+            </if>
+            <if test="content != null and !&quot;&quot;.equals(content)">
+                and content = #{content}
+            </if>
+            <if test="seasonId != null and !&quot;&quot;.equals(seasonId)">
+                and season_id = #{seasonId}
+            </if>
+            <if test="playerId != null and !&quot;&quot;.equals(playerId)">
+                and player_id = #{playerId}
+            </if>
+
+        </where>
+    </select>
 
     <update id="receiveBonus" parameterType="com.izouma.awesomeadmin.model.SystemNotice">
         update system_notice

+ 2 - 0
src/main/java/com/izouma/awesomeadmin/service/SystemNoticeService.java

@@ -23,5 +23,7 @@ public interface SystemNoticeService{
     boolean deleteSystemNotice(SystemNotice record);
 
     boolean updateSystemNotice(SystemNotice record);
+
+    int getUnreadSystemNotice(SystemNotice record);
 }
 

+ 38 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/HouseInfoServiceImpl.java

@@ -9,6 +9,7 @@ import com.izouma.awesomeadmin.model.*;
 import com.izouma.awesomeadmin.service.*;
 import com.izouma.awesomeadmin.util.DateTimeTool;
 import com.izouma.awesomeadmin.util.MbappUtil;
+import com.izouma.awesomeadmin.util.PushUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -253,6 +254,25 @@ public class HouseInfoServiceImpl implements HouseInfoService {
                                 systemNotice.setTypeFlag(AppConstant.NoticeType.RECEIVE);
 
                                 systemNoticeService.createSystemNotice(systemNotice);
+
+                                //推送
+                                try {
+                                    UserInfo userInfo = new UserInfo();
+                                    userInfo.setId(playerInfo.getUserId());
+                                    userInfo = userInfoService.getSingleUserInfo(userInfo);
+                                    if (userInfo != null) {
+                                        if ("Y".equals(userInfo.getNoticeFlag())) {
+                                            String[] ids = new String[]{userInfo.getId().toString()};
+
+                                            PushUtil.pushMsg(ids, content);
+                                        }
+
+                                    }
+
+
+                                } catch (Exception e) {
+                                    logger.error("结算推送消息异常。", e);
+                                }
                             }
 
                             playerInfoService.updatePlayerInfo(playerInfo);
@@ -599,6 +619,24 @@ public class HouseInfoServiceImpl implements HouseInfoService {
 
                 systemNoticeService.createSystemNotice(systemNotice);
 
+                //推送
+                try {
+                    UserInfo userInfo = new UserInfo();
+                    userInfo.setId(playerInfo.getUserId());
+                    userInfo = userInfoService.getSingleUserInfo(userInfo);
+                    if (userInfo != null) {
+                        if ("Y".equals(userInfo.getNoticeFlag())) {
+                            String[] ids = new String[]{userInfo.getId().toString()};
+
+                            PushUtil.pushMsg(ids, "房间比赛开始未按规定时间开始游戏,未参赛!");
+                        }
+
+                    }
+
+
+                } catch (Exception e) {
+                    logger.error("推送消息异常。", e);
+                }
 
             }
 

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

@@ -8,6 +8,7 @@ import com.izouma.awesomeadmin.dao.SystemNoticeMapper;
 import com.izouma.awesomeadmin.dao.UserInfoMapper;
 import com.izouma.awesomeadmin.dto.Result;
 import com.izouma.awesomeadmin.model.*;
+import com.izouma.awesomeadmin.util.PushUtil;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -316,6 +317,22 @@ public class PlayerInfoServiceImpl implements PlayerInfoService {
                     userInfoMapper.updateByPrimaryKeySelective(updateUser);
 
 
+                    //推送
+                    try {
+                        if (userInfo != null) {
+                            if ("Y".equals(userInfo.getNoticeFlag())) {
+                                String[] ids = new String[]{userInfo.getId().toString()};
+
+                                PushUtil.pushMsg(ids, "参加比赛获取奖励:" + money + "余额");
+                            }
+
+                        }
+
+
+                    } catch (Exception e) {
+                        logger.error("推送消息异常。", e);
+                    }
+
                 }
 
                 playerInfo.setStatusFlag(AppConstant.PlayerStatus.RECEIVE);

+ 16 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/SystemNoticeServiceImpl.java

@@ -133,5 +133,21 @@ public class SystemNoticeServiceImpl implements SystemNoticeService{
 
         return false;
     }
+
+    @Override
+    public int getUnreadSystemNotice(SystemNotice record) {
+
+        logger.info("getUnreadSystemNotice");
+        try {
+
+            int unreads = systemNoticeMapper.getUnreadSystemNotice(record);
+
+                 return unreads;
+        } catch (Exception e) {
+             logger.error("getUnreadSystemNotice", e);
+        }
+
+        return 0;
+    }
 }
 

+ 63 - 47
src/main/java/com/izouma/awesomeadmin/web/SystemNoticeController.java

@@ -18,8 +18,8 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 /**
-*  controller类
-*/
+ * controller类
+ */
 @Controller
 @RequestMapping("/systemNotice")
 public class SystemNoticeController {
@@ -28,8 +28,8 @@ public class SystemNoticeController {
     private SystemNoticeService systemNoticeService;
 
     /**
-    * <p>获取全部记录。</p>
-    */
+     * <p>获取全部记录。</p>
+     */
     @RequiresAuthentication
     @RequestMapping(value = "/all", method = RequestMethod.GET)
     @ResponseBody
@@ -39,8 +39,8 @@ public class SystemNoticeController {
     }
 
     /**
-    * <p>根据Id。</p>
-    */
+     * <p>根据Id。</p>
+     */
     @RequestMapping(value = "/getSystemNotice", method = RequestMethod.GET)
     @ResponseBody
     public Result getSystemNotice(@RequestParam(required = false, value = "id") String id) {
@@ -49,8 +49,8 @@ public class SystemNoticeController {
     }
 
     /**
-    * <p>根据条件获取。</p>
-    */
+     * <p>根据条件获取。</p>
+     */
     @RequestMapping(value = "/getOne", method = RequestMethod.GET)
     @ResponseBody
     public Result getOne(SystemNotice record) {
@@ -60,14 +60,14 @@ public class SystemNoticeController {
 
 
     /**
-    * <p>分页查询。</p>
-    */
+     * <p>分页查询。</p>
+     */
     @RequestMapping(value = "/page", method = RequestMethod.GET)
     @ResponseBody
     public Result page(Page page, SystemNotice record) {
         Map<String, Object> result = new HashMap<>();
 
-        List<SystemNotice> pp =systemNoticeService.getSystemNoticeByPage(page, record);
+        List<SystemNotice> pp = systemNoticeService.getSystemNoticeByPage(page, record);
 
         result.put(AppConstant.PAGE, page);
         result.put("pp", pp);
@@ -76,91 +76,107 @@ public class SystemNoticeController {
 
 
     /**
-    * <p>保存。</p>
-    */
+     * <p>保存。</p>
+     */
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ResponseBody
     public Result save(SystemNotice record) {
         boolean num = systemNoticeService.createSystemNotice(record);
         if (num) {
-        return new Result(true, record.getId());
+            return new Result(true, record.getId());
         }
         return new Result(false, "保存异常");
     }
 
     /**
-    * <p>更新信息。</p>
-    */
+     * <p>更新信息。</p>
+     */
     @RequestMapping(value = "/update", method = RequestMethod.POST)
     @ResponseBody
     public Result updateSystemNotice(SystemNotice record) {
         boolean num = systemNoticeService.updateSystemNotice(record);
         if (num) {
-        return new Result(true, "保存成功");
+            return new Result(true, "保存成功");
         }
         return new Result(false, "保存异常");
     }
 
     /**
-    * <p>删除。</p>
-    */
+     * <p>删除。</p>
+     */
     @RequestMapping(value = "/del", method = RequestMethod.POST)
     @ResponseBody
     public Result deleteSystemNotice(SystemNotice record) {
 
         boolean num = systemNoticeService.deleteSystemNotice(record);
         if (num) {
-        return new Result(true, "删除成功");
+            return new Result(true, "删除成功");
         }
         return new Result(false, "删除异常");
     }
 
+
     /**
-    * 导出Excel
-    * @param request
-    * @param response
-    * @param record
-    * @throws Exception
-    */
+     * 获取未读消息
+     *
+     * @param record
+     * @return
+     */
+    @RequestMapping(value = "/unread", method = RequestMethod.GET)
+    @ResponseBody
+    public Result getUnreadSystemNotice(SystemNotice record) {
+        int data = systemNoticeService.getUnreadSystemNotice(record);
+        return new Result(true, data);
+    }
+
+
+    /**
+     * 导出Excel
+     *
+     * @param request
+     * @param response
+     * @param record
+     * @throws Exception
+     */
     @RequestMapping(value = "/exportExcel", method = RequestMethod.GET)
     @ResponseBody
     public void exportExcel(HttpServletRequest request, HttpServletResponse response, SystemNotice record) throws Exception {
 
-    List<SystemNotice> systemNotices = systemNoticeService.getSystemNoticeList(record);
+        List<SystemNotice> systemNotices = systemNoticeService.getSystemNoticeList(record);
 
 
         String sheetName = "system_notice";
         String titleName = "系统通知数据表";
         String fileName = "系统通知表";
         int columnNumber = 15;
-        int[] columnWidth = { 20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20 };
-        String[] columnName = {  "ID" ,   "删除标识" ,   "更新时间" ,   "更新人" ,   "创建时间" ,   "创建人" ,   "游戏" ,   "房间" ,   "用户" ,   "备注" ,   "类型" ,   "状态" ,   "内容" ,   "赛季ID" ,   "选手ID"  };
+        int[] columnWidth = {20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20};
+        String[] columnName = {"ID", "删除标识", "更新时间", "更新人", "创建时间", "创建人", "游戏", "房间", "用户", "备注", "类型", "状态", "内容", "赛季ID", "选手ID"};
         String[][] dataList = new String[systemNotices.size()][15];
 
         for (int i = 0; i < systemNotices.size(); i++) {
 
-                        dataList[i][0] = String.valueOf(systemNotices.get(i).getId());
-                        dataList[i][1] = String.valueOf(systemNotices.get(i).getDelFlag());
-                        dataList[i][2] = String.valueOf(systemNotices.get(i).getUpdateTime());
-                        dataList[i][3] = String.valueOf(systemNotices.get(i).getUpdateUser());
-                        dataList[i][4] = String.valueOf(systemNotices.get(i).getCreateTime());
-                        dataList[i][5] = String.valueOf(systemNotices.get(i).getCreateUser());
-                        dataList[i][6] = String.valueOf(systemNotices.get(i).getGameId());
-                        dataList[i][7] = String.valueOf(systemNotices.get(i).getHouseId());
-                        dataList[i][8] = String.valueOf(systemNotices.get(i).getUserId());
-                        dataList[i][9] = String.valueOf(systemNotices.get(i).getRemark());
-                        dataList[i][10] = String.valueOf(systemNotices.get(i).getTypeFlag());
-                        dataList[i][11] = String.valueOf(systemNotices.get(i).getStatusFlag());
-                        dataList[i][12] = String.valueOf(systemNotices.get(i).getContent());
-                        dataList[i][13] = String.valueOf(systemNotices.get(i).getSeasonId());
-                        dataList[i][14] = String.valueOf(systemNotices.get(i).getPlayerId());
-                    }
+            dataList[i][0] = String.valueOf(systemNotices.get(i).getId());
+            dataList[i][1] = String.valueOf(systemNotices.get(i).getDelFlag());
+            dataList[i][2] = String.valueOf(systemNotices.get(i).getUpdateTime());
+            dataList[i][3] = String.valueOf(systemNotices.get(i).getUpdateUser());
+            dataList[i][4] = String.valueOf(systemNotices.get(i).getCreateTime());
+            dataList[i][5] = String.valueOf(systemNotices.get(i).getCreateUser());
+            dataList[i][6] = String.valueOf(systemNotices.get(i).getGameId());
+            dataList[i][7] = String.valueOf(systemNotices.get(i).getHouseId());
+            dataList[i][8] = String.valueOf(systemNotices.get(i).getUserId());
+            dataList[i][9] = String.valueOf(systemNotices.get(i).getRemark());
+            dataList[i][10] = String.valueOf(systemNotices.get(i).getTypeFlag());
+            dataList[i][11] = String.valueOf(systemNotices.get(i).getStatusFlag());
+            dataList[i][12] = String.valueOf(systemNotices.get(i).getContent());
+            dataList[i][13] = String.valueOf(systemNotices.get(i).getSeasonId());
+            dataList[i][14] = String.valueOf(systemNotices.get(i).getPlayerId());
+        }
 
 
         ExportExcelUtil.ExportWithResponse(sheetName, titleName, fileName,
-        columnNumber, columnWidth, columnName, dataList, response);
+                columnNumber, columnWidth, columnName, dataList, response);
 
 
-        }
     }
+}
 

+ 6 - 6
src/main/vue/src/pages/HouseInfo.vue

@@ -7,9 +7,9 @@
             <el-form-item prop="houseAbstract" label="描述">
                 <el-input type="textarea" v-model="formData.houseAbstract" :disabled="'houseAbstract'==subColumn"></el-input>
             </el-form-item>
-            <el-form-item prop="icon" label="头像">
+            <!-- <el-form-item prop="icon" label="头像">
                 <single-upload v-model="formData.icon" :disabled="'icon'==subColumn"></single-upload>
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item prop="houseCode" label="CODE">
                 <el-input v-model="formData.houseCode" :disabled="'houseCode'==subColumn"></el-input>
             </el-form-item>
@@ -176,7 +176,7 @@ export default {
 
                 if (res.data.length > 0) {
                     res.data.forEach(item => {
-                        this.houseLevelOptions.push({ label: item.levelName, value: item.id });
+                        this.houseLevelOptions.push({ label: item.levelName, value: String(item.id) });
                     })
                 }
             }
@@ -241,13 +241,13 @@ export default {
                 label: '准备'
             }, {
                 value: 2,
-                label: '开始'
+                label: '比赛开始'
             }, {
                 value: 3,
-                label: '结束'
+                label: '比赛结束待解析'
             }, {
                 value: 4,
-                label: '结算'
+                label: '结算完成'
             }, {
                 value: 5,
                 label: '关闭'

+ 69 - 24
src/main/vue/src/pages/HouseInfos.vue

@@ -30,7 +30,7 @@
             <el-table-column type="index" min-width="50" align="center">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('id')" prop="id" label="ID" min-width="100">
+            <el-table-column v-if="isColumnShow('id')" prop="id" label="ID" width="50">
             </el-table-column>
 
             <el-table-column v-if="isColumnShow('houseName')" prop="houseName" label="名称" min-width="100">
@@ -55,43 +55,46 @@
             <el-table-column v-if="isColumnShow('houseType')" prop="houseType" label="类型" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('houseLevel')" prop="houseLevel" label="等级" min-width="100">
+            <el-table-column v-if="isColumnShow('houseLevel')" prop="houseLevelInfo.levelName" label="等级" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('gameId')" prop="gameId" label="游戏" min-width="100">
+            <el-table-column v-if="isColumnShow('gameId')" prop="gameInfo.gameName" label="游戏" min-width="100">
             </el-table-column>
 
             <el-table-column v-if="isColumnShow('statusFlag')" prop="statusFlag" label="状态" min-width="100">
+                <template slot-scope="{row}">
+                    <el-tag :type="getStatus(row).type" size="small">{{getStatus(row).label}}</el-tag>
+                </template>
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('recommendFlag')" prop="recommendFlag" label="推荐" min-width="100">
+            <el-table-column v-if="isColumnShow('playerNumber')" prop="playerNumber" label="参数人数" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('rank')" prop="rank" label="排序" min-width="100">
+            <el-table-column v-if="isColumnShow('bonus')" prop="bonus" label="竞赛币" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('useFlag')" prop="useFlag" label="可用" min-width="100">
+            <el-table-column v-if="isColumnShow('beginTime')" prop="beginTime" label="开始时间" :formatter="DateTimeFormatter" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('gameHouseId')" prop="gameHouseId" label="游戏房间号" min-width="100">
+            <el-table-column v-if="isColumnShow('endTime')" prop="endTime" label="结束时间" :formatter="DateTimeFormatter" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('gameHousePassword')" prop="gameHousePassword" label="游戏密码" min-width="100">
+            <el-table-column v-if="isColumnShow('recommendFlag')" prop="recommendFlag" label="推荐" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('beginTime')" prop="beginTime" label="开始时间" :formatter="DateTimeFormatter" min-width="100">
+            <el-table-column v-if="isColumnShow('rank')" prop="rank" label="排序" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('endTime')" prop="endTime" label="结束时间" :formatter="DateTimeFormatter" min-width="100">
+            <el-table-column v-if="isColumnShow('useFlag')" prop="useFlag" label="可用" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('matchName')" prop="matchName" label="比赛名称" min-width="100">
+            <el-table-column v-if="isColumnShow('gameHouseId')" prop="gameHouseId" label="游戏房间号" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('playerNumber')" prop="playerNumber" label="参数人数" min-width="100">
+            <el-table-column v-if="isColumnShow('gameHousePassword')" prop="gameHousePassword" label="游戏密码" min-width="100">
             </el-table-column>
 
-            <el-table-column v-if="isColumnShow('bonus')" prop="bonus" label="奖金" min-width="100">
+            <el-table-column v-if="isColumnShow('matchName')" prop="matchName" label="比赛名称" min-width="100">
             </el-table-column>
 
             <el-table-column v-if="isColumnShow('seasonId')" prop="seasonId" label="赛季ID" min-width="100">
@@ -99,13 +102,17 @@
 
             <!-- <el-table-column v-if="isColumnShow('video')" prop="video" label="视频" min-width="100">
             </el-table-column> -->
-            <el-table-column label="操作" align="center" fixed="right" min-width="150">
+            <el-table-column label="操作" align="center" fixed="right" min-width="200">
                 <template slot-scope="scope">
                     <el-button v-if="scope.row.statusFlag < 2" @click="handBegin(scope.row)" type="primary" size="mini" plain>开始</el-button>
                     <el-button v-if="scope.row.statusFlag == 2" @click="handEnd(scope.row)" type="primary" size="mini" plain>结束</el-button>
                     <el-button v-if="scope.row.statusFlag == 8" @click="handSettlementHouse(scope.row)" type="primary" size="mini" plain>结算</el-button>
+
+                    <el-button @click="$router.push({path:'/playerInfos',query:{column:scope.row.id+',houseId'}})" type="primary" size="small" plain>参赛人员
+                    </el-button>
+
                     <el-button @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
-                    <el-button @click="deleteRow(scope.row)" type="danger" size="mini" plain>删除</el-button>
+                    <!-- <el-button @click="deleteRow(scope.row)" type="danger" size="mini" plain>删除</el-button> -->
                 </template>
             </el-table-column>
         </el-table>
@@ -251,7 +258,7 @@ export default {
                 {
                     label: 'CODE',
                     value: 'houseCode',
-                    show: true
+                    show: false
                 },
                 {
                     label: '用户',
@@ -261,7 +268,7 @@ export default {
                 {
                     label: '类型',
                     value: 'houseType',
-                    show: true
+                    show: false
                 },
                 {
                     label: '等级',
@@ -281,17 +288,17 @@ export default {
                 {
                     label: '推荐',
                     value: 'recommendFlag',
-                    show: true
+                    show: false
                 },
                 {
                     label: '排序',
                     value: 'rank',
-                    show: true
+                    show: false
                 },
                 {
                     label: '可用',
                     value: 'useFlag',
-                    show: true
+                    show: false
                 },
                 {
                     label: '游戏房间号',
@@ -316,7 +323,7 @@ export default {
                 {
                     label: '比赛名称',
                     value: 'matchName',
-                    show: true
+                    show: false
                 },
                 {
                     label: '参数人数',
@@ -324,14 +331,14 @@ export default {
                     show: true
                 },
                 {
-                    label: '奖金',
+                    label: '竞赛币',
                     value: 'bonus',
                     show: true
                 },
                 {
                     label: '赛季ID',
                     value: 'seasonId',
-                    show: true
+                    show: false
                 },
                 // {
                 //     label: '视频',
@@ -423,7 +430,7 @@ export default {
                     value: 'player_number'
                 },
                 {
-                    label: '奖金',
+                    label: '竞赛币',
                     value: 'bonus'
                 },
                 {
@@ -675,6 +682,44 @@ export default {
             this.imageDialogVisible = true;
         },
 
+        getStatus(row) {
+            let type, label;
+            switch (row.statusFlag) {
+                case 0:
+                    type = 'info';
+                    label = '等待';
+                    break;
+                case 1:
+                    type = 'info';
+                    label = '准备';
+                    break;
+                case 2:
+                    type = 'info';
+                    label = '比赛开始';
+                    break;
+                case 3:
+                    type = 'info';
+                    label = '比赛结束待解析';
+                    break;
+                case 4:
+                    type = 'info';
+                    label = '结算完成';
+                    break;
+                case 5:
+                    type = 'info';
+                    label = '关闭';
+                    break;
+                case 8:
+                    type = 'info';
+                    label = '解析完成';
+                    break;
+                default:
+                    type = 'info';
+                    label = '未知';
+            }
+            return { type, label }
+        }
+
     }
 }
 </script>

+ 135 - 155
src/main/vue/src/pages/PlayerInfo.vue

@@ -1,117 +1,97 @@
 <template>
     <div>
-        <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small"
-                 style="max-width: 500px;">
-                                                                                                                                                                                                                                    <el-form-item prop="gameId" label="游戏ID">
+        <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small" style="max-width: 500px;">
+            <el-form-item prop="gameId" label="游戏ID">
                 <el-input v-model="formData.gameId" :disabled="'gameId'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="houseId" label="房间ID">
+            <el-form-item prop="houseId" label="房间ID">
                 <el-input v-model="formData.houseId" :disabled="'houseId'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                                                                                                                        <el-form-item prop="joinTime" label="加入时间">
-                            <template>
-                                <div class="block">
-                                    <el-date-picker
-                                            v-model="formData.joinTime"
-                                            type="datetime"
-                                            value-format="timestamp"
-                                            placeholder="选择日期"
-                                            :disabled="'joinTime'==subColumn">
-                                    </el-date-picker>
-                                </div>
-                            </template>
-                        </el-form-item>
-                                                                                                                                                                                                                                                                                    <el-form-item prop="principal" label="本金">
+            <el-form-item prop="joinTime" label="加入时间">
+                <template>
+                    <div class="block">
+                        <el-date-picker v-model="formData.joinTime" type="datetime" value-format="timestamp" placeholder="选择日期" :disabled="'joinTime'==subColumn">
+                        </el-date-picker>
+                    </div>
+                </template>
+            </el-form-item>
+            <el-form-item prop="principal" label="本金">
                 <el-input type="number" v-model="formData.principal" :disabled="'principal'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="bonus" label="奖金">
+            <el-form-item prop="bonus" label="奖金">
                 <el-input type="number" v-model="formData.bonus" :disabled="'bonus'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                    <el-form-item prop="userId" label="用户">
+            <el-form-item prop="userId" label="用户">
                 <el-input v-model="formData.userId" :disabled="'userId'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="remark" label="备注">
-                <el-input v-model="formData.remark" :disabled="'remark'==subColumn"></el-input>
+            <el-form-item prop="statusFlag" label="状态">
+                <template>
+                    <el-select v-model="formData.statusFlag" clearable placeholder="请选择" :disabled="'statusFlag'==subColumn">
+                        <el-option v-for="item in statusFlagOptions" :key="item.value" :label="item.label" :value="item.value">
+                        </el-option>
+                    </el-select>
+                </template>
+            </el-form-item>
+            <el-form-item prop="ranking" label="游戏排名">
+                <el-input v-model="formData.ranking" :disabled="'ranking'==subColumn"></el-input>
+            </el-form-item>
+
+            <el-form-item prop="liveTime" label="存活时长">
+                <el-input v-model="formData.liveTime" :disabled="'liveTime'==subColumn"></el-input>
+            </el-form-item>
+
+            <el-form-item prop="image" label="截图">
+                <single-upload v-model="formData.image" :disabled="'image'==subColumn"></single-upload>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                         <el-form-item prop="image" label="截图">
-                 <single-upload v-model="formData.image" :disabled="'image'==subColumn"></single-upload>
-             </el-form-item>
-                                                                                                                                                                                <el-form-item prop="killNumber" label="击败玩家">
+            <el-form-item prop="killNumber" label="击败玩家">
                 <el-input v-model="formData.killNumber" :disabled="'killNumber'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="ranking" label="游戏排名">
-                <el-input v-model="formData.ranking" :disabled="'ranking'==subColumn"></el-input>
+
+            <el-form-item prop="beginTime" label="开始时间">
+                <template>
+                    <div class="block">
+                        <el-date-picker v-model="formData.beginTime" type="datetime" value-format="timestamp" placeholder="选择日期" :disabled="'beginTime'==subColumn">
+                        </el-date-picker>
+                    </div>
+                </template>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                                                                                                                        <el-form-item prop="beginTime" label="开始时间">
-                            <template>
-                                <div class="block">
-                                    <el-date-picker
-                                            v-model="formData.beginTime"
-                                            type="datetime"
-                                            value-format="timestamp"
-                                            placeholder="选择日期"
-                                            :disabled="'beginTime'==subColumn">
-                                    </el-date-picker>
-                                </div>
-                            </template>
-                        </el-form-item>
-                                                                                                                                                                                                                                                                                                                                        <el-form-item prop="endTime" label="结束时间">
-                            <template>
-                                <div class="block">
-                                    <el-date-picker
-                                            v-model="formData.endTime"
-                                            type="datetime"
-                                            value-format="timestamp"
-                                            placeholder="选择日期"
-                                            :disabled="'endTime'==subColumn">
-                                    </el-date-picker>
-                                </div>
-                            </template>
-                        </el-form-item>
-                                                                                                                                                                                                                                                                                                                                                <el-form-item prop="statusFlag" label="状态">
+            <el-form-item prop="endTime" label="结束时间">
                 <template>
-                    <el-select v-model="formData.statusFlag" clearable  placeholder="请选择" :disabled="'statusFlag'==subColumn">
-                        <el-option
-                                v-for="item in statusFlagOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value">
-                        </el-option>
-                    </el-select>
+                    <div class="block">
+                        <el-date-picker v-model="formData.endTime" type="datetime" value-format="timestamp" placeholder="选择日期" :disabled="'endTime'==subColumn">
+                        </el-date-picker>
+                    </div>
                 </template>
             </el-form-item>
-                                                                                                                                                                                                                        <el-form-item prop="examineUser" label="审核人">
+            <el-form-item prop="remark" label="备注">
+                <el-input v-model="formData.remark" :disabled="'remark'==subColumn"></el-input>
+            </el-form-item>
+
+            <el-form-item prop="examineUser" label="审核人">
                 <el-input v-model="formData.examineUser" :disabled="'examineUser'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                                                                                                                        <el-form-item prop="examineTime" label="审核时间">
-                            <template>
-                                <div class="block">
-                                    <el-date-picker
-                                            v-model="formData.examineTime"
-                                            type="datetime"
-                                            value-format="timestamp"
-                                            placeholder="选择日期"
-                                            :disabled="'examineTime'==subColumn">
-                                    </el-date-picker>
-                                </div>
-                            </template>
-                        </el-form-item>
-                                                                                                                                                                                                                                            <el-form-item prop="examineType" label="审核类型">
+            <el-form-item prop="examineTime" label="审核时间">
+                <template>
+                    <div class="block">
+                        <el-date-picker v-model="formData.examineTime" type="datetime" value-format="timestamp" placeholder="选择日期" :disabled="'examineTime'==subColumn">
+                        </el-date-picker>
+                    </div>
+                </template>
+            </el-form-item>
+            <el-form-item prop="examineType" label="审核类型">
                 <el-input v-model="formData.examineType" :disabled="'examineType'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="video" label="视频地址">
+            <el-form-item prop="video" label="视频地址">
                 <el-input v-model="formData.video" :disabled="'video'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="liveTime" label="存活时长">
-                <el-input v-model="formData.liveTime" :disabled="'liveTime'==subColumn"></el-input>
-            </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="gameType" label="游戏类型">
+
+            <el-form-item prop="gameType" label="游戏类型">
                 <el-input v-model="formData.gameType" :disabled="'gameType'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="seasonId" label="赛季ID">
+            <el-form-item prop="seasonId" label="赛季ID">
                 <el-input v-model="formData.seasonId" :disabled="'seasonId'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                        <el-form-item>
+            <el-form-item>
                 <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
                 <el-button @click="onDelete" v-if="formData.id" type="danger">删除</el-button>
                 <el-button @click="$router.go(-1)">取消</el-button>
@@ -120,93 +100,93 @@
     </div>
 </template>
 <script>
-    import formValidator from '../formValidator'
+import formValidator from '../formValidator'
 
-    export default {
-        created() {
-            if (this.$route.query.column) {
-                this.subColumn = this.$route.query.column.split(',')[1];
-                this.subValue = this.$route.query.column.split(',')[0];
-            }
+export default {
+    created() {
+        if (this.$route.query.column) {
+            this.subColumn = this.$route.query.column.split(',')[1];
+            this.subValue = this.$route.query.column.split(',')[0];
+        }
 
-            if (this.$route.query.id) {
-                this.$http.get({
-                    url: '/playerInfo/getOne',
-                    data: {
-                        id: this.$route.query.id
-                    }
-                }).then(res => {
-                    if (res.success) {
+        if (this.$route.query.id) {
+            this.$http.get({
+                url: '/playerInfo/getOne',
+                data: {
+                    id: this.$route.query.id
+                }
+            }).then(res => {
+                if (res.success) {
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
-                        this.formData = res.data;
+
+                    this.formData = res.data;
 
                     if (this.$route.query.column) {
                         this.formData[this.subColumn] = this.subValue;
                     }
-                    }
-                })
-            }else {
-                if (this.$route.query.column) {
-                    this.formData[this.subColumn] = this.subValue;
                 }
+            })
+        } else {
+            if (this.$route.query.column) {
+                this.formData[this.subColumn] = this.subValue;
             }
+        }
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                },
-        data() {
-            return {
-                saving: false,
-                formData: {},
-                rules: {
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            },
-                                                                                                                                                                        statusFlagOptions:[{label:'等待中',value:1},{label:'准备中',value:2},{label:'游戏中',value:3},{label:'已结束',value:4},{label:'处理中',value:5},{label:'已完成',value:6}],
-                                                                                        subColumn: '',
+    },
+    data() {
+        return {
+            saving: false,
+            formData: {},
+            rules: {
+            },
+            statusFlagOptions: [{ label: '等待中', value: 1 }, { label: '准备中', value: 2 }, { label: '游戏中', value: 3 }, { label: '已结束', value: 4 }, { label: '处理中', value: 5 }, { label: '已完成', value: 6 }],
+            subColumn: '',
             subValue: '',
         }
+    },
+    methods: {
+        onSave() {
+            this.$refs.form.validate((valid) => {
+                if (valid) {
+                    this.submit();
+                } else {
+                    return false;
+                }
+            });
         },
-        methods: {
-            onSave() {
-                this.$refs.form.validate((valid) => {
-                    if (valid) {
-                        this.submit();
-                    } else {
-                        return false;
-                    }
-                });
-            },
-            submit() {
-                var data = JSON.parse(JSON.stringify(this.formData));
-                this.$http.post({
-                    url: this.formData.id ? '/playerInfo/update' : '/playerInfo/save',
-                    data: data
-                }).then(res => {
-                    if (res.success) {
-                        this.$message.success('成功');
-                        this.$router.go(-1);
-                    } else {
-                        this.$message.warning('失败')
-                    }
-                });
-            },
-            onDelete() {
-                this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
-                    return this.$http.post({
+        submit() {
+            var data = JSON.parse(JSON.stringify(this.formData));
+            this.$http.post({
+                url: this.formData.id ? '/playerInfo/update' : '/playerInfo/save',
+                data: data
+            }).then(res => {
+                if (res.success) {
+                    this.$message.success('成功');
+                    this.$router.go(-1);
+                } else {
+                    this.$message.warning('失败')
+                }
+            });
+        },
+        onDelete() {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
+                return this.$http.post({
                     url: '/playerInfo/del',
                     data: { id: this.formData.id }
-                    })
-                }).then(() => {
-                    this.$message.success('删除成功');
-                    this.$router.go(-1);
-                }).catch(action => {
-                    if (action === 'cancel') {
-                        this.$message.info('删除取消');
-                    } else {
-                        this.$message.error('删除失败');
-                    }
                 })
-            },
-        }
+            }).then(() => {
+                this.$message.success('删除成功');
+                this.$router.go(-1);
+            }).catch(action => {
+                if (action === 'cancel') {
+                    this.$message.info('删除取消');
+                } else {
+                    this.$message.error('删除失败');
+                }
+            })
+        },
     }
+}
 </script>
 <style lang="less" scoped>
 </style>

+ 473 - 590
src/main/vue/src/pages/PlayerInfos.vue

@@ -5,21 +5,18 @@
             <el-input placeholder="关键字" size="small" v-model="filter1" clearable class="filter-item"></el-input>
             <el-button @click="searchData" type="primary" size="small" icon="el-icon-search" class="filter-item">搜索
             </el-button>
-            <el-button @click="showAdvancedQueryDialog = !showAdvancedQueryDialog" type="primary" size="small"
-                       icon="el-icon-search" class="filter-item">高级查询
+            <el-button @click="showAdvancedQueryDialog = !showAdvancedQueryDialog" type="primary" size="small" icon="el-icon-search" class="filter-item">高级查询
             </el-button>
-            <el-button @click="showTableSortDialog = !showTableSortDialog" type="primary" size="small"
-                       icon="el-icon-sort" class="filter-item">排序
+            <el-button @click="showTableSortDialog = !showTableSortDialog" type="primary" size="small" icon="el-icon-sort" class="filter-item">排序
             </el-button>
-            <el-button @click="$router.push({path:'/playerInfo',query:{column:$route.query.column}})" type="primary"
-                       size="small" icon="el-icon-edit"
-                       class="filter-item">添加
+            <el-button @click="$router.push({path:'/playerInfo',query:{column:$route.query.column}})" type="primary" size="small" icon="el-icon-edit" class="filter-item">添加
             </el-button>
             <el-button @click="exportExcel" type="primary" size="small" icon="el-icon-share" class="filter-item">导出EXCEL
             </el-button>
             <el-dropdown trigger="click" size="medium" class="table-column-filter">
                 <span>
-                  筛选数据<i class="el-icon-arrow-down el-icon--right"></i>
+                    筛选数据
+                    <i class="el-icon-arrow-down el-icon--right"></i>
                 </span>
                 <el-dropdown-menu slot="dropdown" class="table-column-filter-wrapper">
                     <el-checkbox v-for="item in tableColumns" :key="item.value" v-model="item.show">{{item.label}}
@@ -27,190 +24,86 @@
                 </el-dropdown-menu>
             </el-dropdown>
         </div>
-        <el-table
-            :data="tableData"
-            :height="tableHeight"
-            row-key="id"
-            ref="table">
-            <el-table-column
-                v-if="multipleMode"
-                align="center"
-                type="selection"
-                width="50">
+        <el-table :data="tableData" :height="tableHeight" row-key="id" ref="table">
+            <el-table-column v-if="multipleMode" align="center" type="selection" width="50">
             </el-table-column>
-            <el-table-column
-                type="index"
-                min-width="50"
-                align="center">
+            <el-table-column type="index" min-width="50" align="center">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('id')"
-                prop="id"
-                label="ID"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('id')" prop="id" label="ID" min-width="50">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('gameId')"
-                prop="gameId"
-                label="游戏ID"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('gameId')" prop="gameId" label="游戏ID" min-width="70">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('houseId')"
-                prop="houseId"
-                label="房间ID"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('houseId')" prop="houseId" label="房间ID" min-width="70">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('joinTime')"
-                prop="joinTime"
-                label="加入时间"
-                :formatter="DateTimeFormatter"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('principal')" prop="principal" label="参赛积分" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('principal')"
-                prop="principal"
-                label="本金"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('bonus')" prop="bonus" label="奖励" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('bonus')"
-                prop="bonus"
-                label="奖金"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('userId')" prop="userId" label="用户" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('userId')"
-                prop="userId"
-                label="用户"
-                min-width="100">
-            </el-table-column>
-
-            <el-table-column
-                v-if="isColumnShow('remark')"
-                prop="remark"
-                label="备注"
-                min-width="100">
-            </el-table-column>
-
-            <el-table-column
-                v-if="isColumnShow('image')"
-                prop="image"
-                label="截图"
-                min-width="200">
+            <el-table-column v-if="isColumnShow('statusFlag')" prop="statusFlag" label="状态" width="100" align="center">
                 <template slot-scope="{row}">
-                    <img :src="row.image" @click="showImg(row.image)"
-                         style="width: 160px;height: 90px;vertical-align: middle;"/>
+                    <el-tag :type="getStatus(row).type" size="small">{{getStatus(row).label}}</el-tag>
                 </template>
-
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('killNumber')"
-                prop="killNumber"
-                label="击败玩家"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('killNumber')" prop="killNumber" label="击败玩家" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('ranking')"
-                prop="ranking"
-                label="游戏排名"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('ranking')" prop="ranking" label="游戏排名" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('beginTime')"
-                prop="beginTime"
-                label="开始时间"
-                :formatter="DateTimeFormatter"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('liveTime')" prop="liveTime" label="存活时长" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('endTime')"
-                prop="endTime"
-                label="结束时间"
-                :formatter="DateTimeFormatter"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('image')" prop="image" label="截图" min-width="200">
+                <template slot-scope="{row}" v-if="row.image">
+                    <img :src="row.image" @click="showImg(row.image)" style="width: 160px;height: 90px;vertical-align: middle;" />
+                </template>
+
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('statusFlag')"
-                prop="statusFlag"
-                label="状态"
-                width="100"
-                align="center">
+            <el-table-column v-if="isColumnShow('video')" prop="video" label="视频地址" min-width="200">
                 <template slot-scope="{row}">
-                    <el-tag :type="getStatus(row).type" size="small">{{getStatus(row).label}}</el-tag>
+                    <el-button type="text" size="small" @click="download(row.video)">{{row.video}}</el-button>
                 </template>
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('examineUser')"
-                prop="examineUser"
-                label="审核人"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('joinTime')" prop="joinTime" label="加入时间" :formatter="DateTimeFormatter" min-width="150">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('examineTime')"
-                prop="examineTime"
-                label="审核时间"
-                :formatter="DateTimeFormatter"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('beginTime')" prop="beginTime" label="开始时间" :formatter="DateTimeFormatter" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('examineType')"
-                prop="examineType"
-                label="审核类型"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('endTime')" prop="endTime" label="结束时间" :formatter="DateTimeFormatter" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('video')"
-                prop="video"
-                label="视频地址"
-                min-width="200">
-                <template slot-scope="{row}">
-                    <el-button type="text" size="small" @click="download(row.video)">{{row.video}}</el-button>
-                </template>
+            <el-table-column v-if="isColumnShow('examineUser')" prop="examineUser" label="审核人" min-width="100">
+            </el-table-column>
+
+            <el-table-column v-if="isColumnShow('examineTime')" prop="examineTime" label="审核时间" :formatter="DateTimeFormatter" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('liveTime')"
-                prop="liveTime"
-                label="存活时长"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('examineType')" prop="examineType" label="审核类型" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('gameType')"
-                prop="gameType"
-                label="游戏类型"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('gameType')" prop="gameType" label="游戏类型" min-width="100">
             </el-table-column>
 
-            <el-table-column
-                v-if="isColumnShow('seasonId')"
-                prop="seasonId"
-                label="赛季ID"
-                min-width="100">
+            <el-table-column v-if="isColumnShow('seasonId')" prop="seasonId" label="赛季ID" min-width="100">
             </el-table-column>
-            <el-table-column
-                label="操作"
-                align="center"
-                fixed="right"
-                min-width="150">
+
+            <el-table-column v-if="isColumnShow('remark')" prop="remark" label="备注" min-width="100">
+            </el-table-column>
+
+            <el-table-column label="操作" align="center" fixed="right" min-width="150">
                 <template slot-scope="scope">
                     <el-button @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
                     <el-button @click="deleteRow(scope.row)" type="danger" size="mini" plain>删除</el-button>
@@ -226,15 +119,7 @@
                     <el-button size="small" @click="toggleMultipleMode(false)">取消</el-button>
                 </el-button-group>
             </div>
-            <el-pagination
-                background
-                @size-change="pageSizeChange"
-                @current-change="currentPageChange"
-                :current-page="currentPage"
-                :page-sizes="[10, 20, 30, 40, 50]"
-                :page-size="pageSize"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="totalNumber">
+            <el-pagination background @size-change="pageSizeChange" @current-change="currentPageChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="totalNumber">
             </el-pagination>
         </div>
         <el-dialog title="高级查询" :visible.sync="showAdvancedQueryDialog">
@@ -255,16 +140,14 @@
                     <template slot-scope="{row}">
                         <el-select v-model="row.name">
 
-                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value"
-                                       :key="item.value"></el-option>
+                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value" :key="item.value"></el-option>
                         </el-select>
                     </template>
                 </el-table-column>
                 <el-table-column prop="searchMethod" label="搜索方式" width="150" align="center">
                     <template slot-scope="{row}">
                         <el-select v-model="row.searchMethod">
-                            <el-option v-for="item in searchMethods" :label="item" :value="item"
-                                       :key="item"></el-option>
+                            <el-option v-for="item in searchMethods" :label="item" :value="item" :key="item"></el-option>
                         </el-select>
                     </template>
                 </el-table-column>
@@ -294,8 +177,7 @@
                     <template slot-scope="{row}">
                         <el-select v-model="row.name">
 
-                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value"
-                                       :key="item.value"></el-option>
+                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value" :key="item.value"></el-option>
                         </el-select>
                     </template>
                 </el-table-column>
@@ -328,464 +210,465 @@
     </div>
 </template>
 <script>
-    import {mapState} from 'vuex'
-    import {format} from 'date-fns'
-    import zh from 'date-fns/locale/zh_cn'
-
-    export default {
-        created() {
+import { mapState } from 'vuex'
+import { format } from 'date-fns'
+import zh from 'date-fns/locale/zh_cn'
+
+export default {
+    created() {
+        this.getData();
+    },
+    data() {
+        return {
+            totalNumber: 0,
+            totalPage: 10,
+            currentPage: 1,
+            pageSize: 20,
+            tableData: [],
+            filter1: '',
+            filter2: '',
+            tableColumns: [
+                {
+                    label: 'ID',
+                    value: 'id',
+                    show: true
+                },
+                {
+                    label: '游戏ID',
+                    value: 'gameId',
+                    show: false
+                },
+                {
+                    label: '房间ID',
+                    value: 'houseId',
+                    show: true
+                },
+                {
+                    label: '加入时间',
+                    value: 'joinTime',
+                    show: true
+                },
+                {
+                    label: '参赛积分',
+                    value: 'principal',
+                    show: true
+                },
+                {
+                    label: '奖励',
+                    value: 'bonus',
+                    show: true
+                },
+                {
+                    label: '用户',
+                    value: 'userId',
+                    show: true
+                },
+
+                {
+                    label: '截图',
+                    value: 'image',
+                    show: true
+                },
+                {
+                    label: '击败玩家',
+                    value: 'killNumber',
+                    show: false
+                },
+                {
+                    label: '游戏排名',
+                    value: 'ranking',
+                    show: true
+                },
+                {
+                    label: '开始时间',
+                    value: 'beginTime',
+                    show: false
+                },
+                {
+                    label: '结束时间',
+                    value: 'endTime',
+                    show: false
+                },
+                {
+                    label: '状态',
+                    value: 'statusFlag',
+                    show: true
+                },
+                {
+                    label: '审核人',
+                    value: 'examineUser',
+                    show: false
+                },
+                {
+                    label: '审核时间',
+                    value: 'examineTime',
+                    show: false
+                },
+                {
+                    label: '审核类型',
+                    value: 'examineType',
+                    show: false
+                },
+                {
+                    label: '视频地址',
+                    value: 'video',
+                    show: true
+                },
+                {
+                    label: '存活时长',
+                    value: 'liveTime',
+                    show: true
+                },
+                {
+                    label: '游戏类型',
+                    value: 'gameType',
+                    show: false
+                },
+                {
+                    label: '赛季ID',
+                    value: 'seasonId',
+                    show: false
+                },
+                {
+                    label: '备注',
+                    value: 'remark',
+                    show: false
+                },
+            ],
+            multipleMode: false,
+            showAdvancedQueryDialog: false,
+            advancedQueryFields: [],
+            showTableSortDialog: false,
+            tableSortFields: [],
+            searchMethods: ['=', '!=', '>', '>=', '<', '<=', 'like'],
+            advancedQueryColumns: [
+                {
+                    label: 'ID',
+                    value: 'id'
+                },
+                {
+                    label: '游戏ID',
+                    value: 'game_id'
+                },
+                {
+                    label: '房间ID',
+                    value: 'house_id'
+                },
+                {
+                    label: '加入时间',
+                    value: 'join_time'
+                },
+                {
+                    label: '参赛积分',
+                    value: 'principal'
+                },
+                {
+                    label: '奖励',
+                    value: 'bonus'
+                },
+                {
+                    label: '用户',
+                    value: 'user_id'
+                },
+                {
+                    label: '备注',
+                    value: 'remark'
+                },
+                {
+                    label: '截图',
+                    value: 'image'
+                },
+                {
+                    label: '击败玩家',
+                    value: 'kill_number'
+                },
+                {
+                    label: '游戏排名',
+                    value: 'ranking'
+                },
+                {
+                    label: '开始时间',
+                    value: 'begin_time'
+                },
+                {
+                    label: '结束时间',
+                    value: 'end_time'
+                },
+                {
+                    label: '状态',
+                    value: 'status_flag'
+                },
+                {
+                    label: '审核人',
+                    value: 'examine_user'
+                },
+                {
+                    label: '审核时间',
+                    value: 'examine_time'
+                },
+                {
+                    label: '审核类型',
+                    value: 'examine_type'
+                },
+                {
+                    label: '视频地址',
+                    value: 'video'
+                },
+                {
+                    label: '存活时长',
+                    value: 'live_time'
+                },
+                {
+                    label: '游戏类型',
+                    value: 'game_type'
+                },
+                {
+                    label: '赛季ID',
+                    value: 'season_id'
+                },
+            ],
+            advancedQuerySearchKey: '',
+            orderByStr: '',
+            imgSrc: '',
+            imageDialogVisible: false
+        }
+    },
+    computed: {
+        ...mapState(['tableHeight']),
+        selection() {
+            return this.$refs.table.selection.map(i => i.id);
+        }
+    },
+    methods: {
+        pageSizeChange(size) {
+            this.currentPage = 1;
+            this.pageSize = size;
             this.getData();
         },
-        data() {
-            return {
-                totalNumber: 0,
-                totalPage: 10,
-                currentPage: 1,
-                pageSize: 20,
-                tableData: [],
-                filter1: '',
-                filter2: '',
-                tableColumns: [
-                    {
-                        label: 'ID',
-                        value: 'id',
-                        show: true
-                    },
-                    {
-                        label: '游戏ID',
-                        value: 'gameId',
-                        show: true
-                    },
-                    {
-                        label: '房间ID',
-                        value: 'houseId',
-                        show: true
-                    },
-                    {
-                        label: '加入时间',
-                        value: 'joinTime',
-                        show: true
-                    },
-                    {
-                        label: '本金',
-                        value: 'principal',
-                        show: true
-                    },
-                    {
-                        label: '奖金',
-                        value: 'bonus',
-                        show: true
-                    },
-                    {
-                        label: '用户',
-                        value: 'userId',
-                        show: true
-                    },
-                    {
-                        label: '备注',
-                        value: 'remark',
-                        show: true
-                    },
-                    {
-                        label: '截图',
-                        value: 'image',
-                        show: true
-                    },
-                    {
-                        label: '击败玩家',
-                        value: 'killNumber',
-                        show: true
-                    },
-                    {
-                        label: '游戏排名',
-                        value: 'ranking',
-                        show: true
-                    },
-                    {
-                        label: '开始时间',
-                        value: 'beginTime',
-                        show: true
-                    },
-                    {
-                        label: '结束时间',
-                        value: 'endTime',
-                        show: true
-                    },
-                    {
-                        label: '状态',
-                        value: 'statusFlag',
-                        show: true
-                    },
-                    {
-                        label: '审核人',
-                        value: 'examineUser',
-                        show: true
-                    },
-                    {
-                        label: '审核时间',
-                        value: 'examineTime',
-                        show: true
-                    },
-                    {
-                        label: '审核类型',
-                        value: 'examineType',
-                        show: true
-                    },
-                    {
-                        label: '视频地址',
-                        value: 'video',
-                        show: true
-                    },
-                    {
-                        label: '存活时长',
-                        value: 'liveTime',
-                        show: true
-                    },
-                    {
-                        label: '游戏类型',
-                        value: 'gameType',
-                        show: true
-                    },
-                    {
-                        label: '赛季ID',
-                        value: 'seasonId',
-                        show: true
-                    },
-                ],
-                multipleMode: false,
-                showAdvancedQueryDialog: false,
-                advancedQueryFields: [],
-                showTableSortDialog: false,
-                tableSortFields: [],
-                searchMethods: ['=', '!=', '>', '>=', '<', '<=', 'like'],
-                advancedQueryColumns: [
-                    {
-                        label: 'ID',
-                        value: 'id'
-                    },
-                    {
-                        label: '游戏ID',
-                        value: 'game_id'
-                    },
-                    {
-                        label: '房间ID',
-                        value: 'house_id'
-                    },
-                    {
-                        label: '加入时间',
-                        value: 'join_time'
-                    },
-                    {
-                        label: '本金',
-                        value: 'principal'
-                    },
-                    {
-                        label: '奖金',
-                        value: 'bonus'
-                    },
-                    {
-                        label: '用户',
-                        value: 'user_id'
-                    },
-                    {
-                        label: '备注',
-                        value: 'remark'
-                    },
-                    {
-                        label: '截图',
-                        value: 'image'
-                    },
-                    {
-                        label: '击败玩家',
-                        value: 'kill_number'
-                    },
-                    {
-                        label: '游戏排名',
-                        value: 'ranking'
-                    },
-                    {
-                        label: '开始时间',
-                        value: 'begin_time'
-                    },
-                    {
-                        label: '结束时间',
-                        value: 'end_time'
-                    },
-                    {
-                        label: '状态',
-                        value: 'status_flag'
-                    },
-                    {
-                        label: '审核人',
-                        value: 'examine_user'
-                    },
-                    {
-                        label: '审核时间',
-                        value: 'examine_time'
-                    },
-                    {
-                        label: '审核类型',
-                        value: 'examine_type'
-                    },
-                    {
-                        label: '视频地址',
-                        value: 'video'
-                    },
-                    {
-                        label: '存活时长',
-                        value: 'live_time'
-                    },
-                    {
-                        label: '游戏类型',
-                        value: 'game_type'
-                    },
-                    {
-                        label: '赛季ID',
-                        value: 'season_id'
-                    },
-                ],
-                advancedQuerySearchKey: '',
-                orderByStr: '',
-                imgSrc: '',
-                imageDialogVisible: false
-            }
+        currentPageChange(page) {
+            this.currentPage = page;
+            this.getData();
         },
-        computed: {
-            ...mapState(['tableHeight']),
-            selection() {
-                return this.$refs.table.selection.map(i => i.id);
+        getData() {
+
+            var data = {
+                currentPage: this.currentPage,
+                pageNumber: this.pageSize,
+                searchKey: this.filter1,
+                advancedQuery: this.advancedQuerySearchKey,
+                orderByStr: this.orderByStr,
             }
-        },
-        methods: {
-            pageSizeChange(size) {
-                this.currentPage = 1;
-                this.pageSize = size;
-                this.getData();
-            },
-            currentPageChange(page) {
-                this.currentPage = page;
-                this.getData();
-            },
-            getData() {
-
-                var data = {
-                    currentPage: this.currentPage,
-                    pageNumber: this.pageSize,
-                    searchKey: this.filter1,
-                    advancedQuery: this.advancedQuerySearchKey,
-                    orderByStr: this.orderByStr,
-                }
 
-                if (this.$route.query.column) {
-                    var tempColumn = this.$route.query.column;
-                    data[tempColumn.split(',')[1]] = tempColumn.split(',')[0];
-                }
+            if (this.$route.query.column) {
+                var tempColumn = this.$route.query.column;
+                data[tempColumn.split(',')[1]] = tempColumn.split(',')[0];
+            }
 
-                this.$http.get({
-                    url: '/playerInfo/page',
-                    data: data
-                }).then(res => {
-                    if (res.success) {
-                        this.totalNumber = res.data.page.totalNumber;
-                        this.tableData = res.data.pp;
-                    }
-                })
-            },
-            isColumnShow(column) {
-                var row = this.tableColumns.find(i => i.value === column);
-                return row ? row.show : false;
-            },
-            toggleMultipleMode(multipleMode) {
-                this.multipleMode = multipleMode;
-                if (!multipleMode) {
-                    this.$refs.table.clearSelection();
+            this.$http.get({
+                url: '/playerInfo/page',
+                data: data
+            }).then(res => {
+                if (res.success) {
+                    this.totalNumber = res.data.page.totalNumber;
+                    this.tableData = res.data.pp;
                 }
-            },
-            editRow(row) {
-                this.$router.push({
-                    path: '/playerInfo',
-                    query: {
-                        id: row.id,
-                        column: this.$route.query.column,
-                    }
-                })
-            },
-            operation1() {
-                this.$notify({
-                    title: '提示',
-                    message: this.selection
-                });
-            },
-            operation2() {
-                this.$message('操作2');
-            },
-            addField() {
-                this.advancedQueryFields.push({
-                    link: 'AND',
-                    name: '',
-                    searchMethod: '=',
-                    value: '',
-                });
-            },
-            removeField(i) {
-                if (this.advancedQueryFields.length > 0) {
-                    this.advancedQueryFields.splice(i, 1);
+            })
+        },
+        isColumnShow(column) {
+            var row = this.tableColumns.find(i => i.value === column);
+            return row ? row.show : false;
+        },
+        toggleMultipleMode(multipleMode) {
+            this.multipleMode = multipleMode;
+            if (!multipleMode) {
+                this.$refs.table.clearSelection();
+            }
+        },
+        editRow(row) {
+            this.$router.push({
+                path: '/playerInfo',
+                query: {
+                    id: row.id,
+                    column: this.$route.query.column,
                 }
-            },
-            advancedQuery() {
+            })
+        },
+        operation1() {
+            this.$notify({
+                title: '提示',
+                message: this.selection
+            });
+        },
+        operation2() {
+            this.$message('操作2');
+        },
+        addField() {
+            this.advancedQueryFields.push({
+                link: 'AND',
+                name: '',
+                searchMethod: '=',
+                value: '',
+            });
+        },
+        removeField(i) {
+            if (this.advancedQueryFields.length > 0) {
+                this.advancedQueryFields.splice(i, 1);
+            }
+        },
+        advancedQuery() {
 
-                this.advancedQuerySearchKey = '';
+            this.advancedQuerySearchKey = '';
 
-                if (this.advancedQueryFields.length > 0) {
+            if (this.advancedQueryFields.length > 0) {
 
-                    var templist = [];
+                var templist = [];
 
-                    this.advancedQueryFields.forEach(item => {
-                        if (item.link && item.name && item.searchMethod && item.value) {
-                            var tempItem = item.link + '_,' + item.name + '_,' + item.searchMethod + '_,' + item.value;
-                            templist.push(tempItem);
-                        }
-                    })
+                this.advancedQueryFields.forEach(item => {
+                    if (item.link && item.name && item.searchMethod && item.value) {
+                        var tempItem = item.link + '_,' + item.name + '_,' + item.searchMethod + '_,' + item.value;
+                        templist.push(tempItem);
+                    }
+                })
 
-                    if (templist.length > 0) {
+                if (templist.length > 0) {
 
-                        this.advancedQuerySearchKey = templist.join('_;');
-                    }
+                    this.advancedQuerySearchKey = templist.join('_;');
                 }
+            }
 
-                this.getData();
-                this.showAdvancedQueryDialog = false;
-            },
-            addSortField() {
-                this.tableSortFields.push({
-                    name: '',
-                    order: 'asc',
-                });
-            },
-            removeSortField(i) {
-                if (this.tableSortFields.length > 0) {
-                    this.tableSortFields.splice(i, 1);
-                }
-            },
-            tableSortQuery() {
+            this.getData();
+            this.showAdvancedQueryDialog = false;
+        },
+        addSortField() {
+            this.tableSortFields.push({
+                name: '',
+                order: 'asc',
+            });
+        },
+        removeSortField(i) {
+            if (this.tableSortFields.length > 0) {
+                this.tableSortFields.splice(i, 1);
+            }
+        },
+        tableSortQuery() {
 
-                this.orderByStr = '';
+            this.orderByStr = '';
 
-                if (this.tableSortFields.length > 0) {
+            if (this.tableSortFields.length > 0) {
 
-                    var templist = [];
+                var templist = [];
 
-                    this.tableSortFields.forEach(item => {
-                        if (item.name && item.order) {
-                            var tempItem = item.name + '_,' + item.order;
-                            templist.push(tempItem);
-                        }
-                    })
+                this.tableSortFields.forEach(item => {
+                    if (item.name && item.order) {
+                        var tempItem = item.name + '_,' + item.order;
+                        templist.push(tempItem);
+                    }
+                })
 
-                    if (templist.length > 0) {
+                if (templist.length > 0) {
 
-                        this.orderByStr = templist.join('_;');
-                    }
+                    this.orderByStr = templist.join('_;');
                 }
+            }
 
-                this.getData();
-                this.showTableSortDialog = false;
-            },
-            exportExcel() {
-                window.location.href = this.$baseUrl + "/playerInfo/exportExcel?searchKey="
-                    + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey + "&orderByStr=" + this.orderByStr;
-            },
-            searchData() {
-                this.currentPage = 1;
-                this.getData();
-            },
-            deleteRow(row) {
-                this.$alert('删除将无法恢复,确认要删除么?', '警告', {type: 'error'}).then(() => {
-                    return this.$http.post({
-                        url: '/playerInfo/del',
-                        data: {id: row.id}
-                    })
-                }).then(() => {
-                    this.$message.success('删除成功');
-                    this.getData();
-                }).catch(action => {
-                    if (action === 'cancel') {
-                        this.$message.info('删除取消');
-                    } else {
-                        this.$message.error('删除失败');
-                    }
+            this.getData();
+            this.showTableSortDialog = false;
+        },
+        exportExcel() {
+            window.location.href = this.$baseUrl + "/playerInfo/exportExcel?searchKey="
+                + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey + "&orderByStr=" + this.orderByStr;
+        },
+        searchData() {
+            this.currentPage = 1;
+            this.getData();
+        },
+        deleteRow(row) {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
+                return this.$http.post({
+                    url: '/playerInfo/del',
+                    data: { id: row.id }
                 })
-            },
-            DateTimeFormatter(row, column, cellValue) {
-                if (cellValue) {
-                    return format(cellValue, 'YYYY/MM/DD HH:mm', {locale: zh})
+            }).then(() => {
+                this.$message.success('删除成功');
+                this.getData();
+            }).catch(action => {
+                if (action === 'cancel') {
+                    this.$message.info('删除取消');
+                } else {
+                    this.$message.error('删除失败');
                 }
+            })
+        },
+        DateTimeFormatter(row, column, cellValue) {
+            if (cellValue) {
+                return format(cellValue, 'YYYY/MM/DD HH:mm', { locale: zh })
+            }
 
-            },
-            DateFormatter(row, column, cellValue) {
-                if (cellValue) {
-                    return format(cellValue, 'YYYY/MM/DD', {locale: zh})
-                }
+        },
+        DateFormatter(row, column, cellValue) {
+            if (cellValue) {
+                return format(cellValue, 'YYYY/MM/DD', { locale: zh })
+            }
 
-            },
-            showImg(img) {
-                this.imgSrc = img;
-                this.imageDialogVisible = true;
-            },
-            download(path) {
-                let url = path.replace("/var", "http://49.4.66.233:8080");
-                window.open(url);
-            },
-            getStatus(row) {
-                let type, label;
-                switch (row.statusFlag) {
-                    case 0:
-                        type = 'info';
-                        label = '加入';
-                        break;
-                    case 1:
-                        type = 'info';
-                        label = '准备';
-                        break;
-                    case 2:
-                        type = 'info';
-                        label = '开始';
-                        break;
-                    case 3:
-                        type = 'info';
-                        label = '结束';
-                        break;
-                    case 4:
-                        type = 'info';
-                        label = '结算';
-                        break;
-                    case 5:
-                        type = 'info';
-                        label = '领取奖励';
-                        break;
-                    case 6:
-                        type = 'info';
-                        label = '未比赛';
-                        break;
-                    case 7:
-                        type = 'info';
-                        label = '比赛超时';
-                        break;
-                    case 8:
-                        type = 'info';
-                        label = '解析完成';
-                        break;
-                    default:
-                        type = 'info';
-                        label = '未知';
-                }
-                return {type, label}
+        },
+        showImg(img) {
+            this.imgSrc = img;
+            this.imageDialogVisible = true;
+        },
+        download(path) {
+            let url = path.replace("/var", "http://49.4.66.233:8080");
+            window.open(url);
+        },
+        getStatus(row) {
+            let type, label;
+            switch (row.statusFlag) {
+                case 0:
+                    type = 'info';
+                    label = '加入';
+                    break;
+                case 1:
+                    type = 'info';
+                    label = '准备';
+                    break;
+                case 2:
+                    type = 'info';
+                    label = '开始';
+                    break;
+                case 3:
+                    type = 'info';
+                    label = '结束';
+                    break;
+                case 4:
+                    type = 'info';
+                    label = '结算';
+                    break;
+                case 5:
+                    type = 'info';
+                    label = '领取奖励';
+                    break;
+                case 6:
+                    type = 'info';
+                    label = '未比赛';
+                    break;
+                case 7:
+                    type = 'info';
+                    label = '比赛超时';
+                    break;
+                case 8:
+                    type = 'info';
+                    label = '解析完成';
+                    break;
+                default:
+                    type = 'info';
+                    label = '未知';
             }
+            return { type, label }
         }
     }
+}
 </script>
 <style lang="less">
-    .vjs-tech {
-        object-fit: cover;
-    }
+.vjs-tech {
+    object-fit: cover;
+}
 </style>