puzhibing
2024-03-06 f6d50410b2674c2564be93b3887fff60e5769bd1
添加方法
9个文件已修改
11个文件已添加
1032 ■■■■ 已修改文件
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/ChangeScore.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupGameStatisticsInfoList.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupGameStatisticsListInfo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/ChangeScore.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupGameStatistics.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupGameStatisticsInfoList.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupGameStatisticsListInfo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/WorldCupClient.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupRecordsController.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupGameStatisticsInfo.html 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupGameStatisticsListInfo.html 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupRecords.html 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupGameStatisticsInfo.js 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupRecords.js 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
@@ -727,4 +727,38 @@
    public Map<String, Object> worldCupGameStatistics(@RequestBody WorldCupGameStatistics worldCupGameStatistics){
        return worldCupService.worldCupGameStatistics(worldCupGameStatistics);
    }
    /**
     * 获取比赛统计详情列表
     * @param worldCupGameStatisticsInfoList
     * @return
     */
    @ResponseBody
    @PostMapping("/worldCup/worldCupGameStatisticsInfoList")
    public Map<String, Object> worldCupGameStatisticsInfoList(@RequestBody WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList){
        return worldCupCompetitorService.worldCupGameStatisticsInfoList(worldCupGameStatisticsInfoList);
    }
    /**
     * 获取单场参赛详情列表
     * @return
     */
    @ResponseBody
    @PostMapping("/worldCup/worldCupGameStatisticsListInfo")
    public Map<String, Object> worldCupGameStatisticsListInfo(@RequestBody WorldCupGameStatisticsListInfo worldCupGameStatisticsListInfo){
        return worldCupCompetitorService.worldCupGameStatisticsListInfo(worldCupGameStatisticsListInfo);
    }
    /**
     * 修改比分
     * @param changeScore
     */
    @ResponseBody
    @PostMapping("/worldCup/changeScore")
    public void changeScore(@RequestBody ChangeScore changeScore){
        worldCupCompetitorService.changeScore(changeScore);
    }
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java
@@ -47,4 +47,12 @@
    int worldCupRecordsListCount(@Param("appUserIds") List<Integer> appUserIds);
    /**
     * 获取比赛统计详情列表
     * @param worldCupId
     * @return
     */
    List<Map<String, Object>> worldCupGameStatisticsInfoList(@Param("worldCupId") Integer worldCupId);
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/ChangeScore.java
New file
@@ -0,0 +1,23 @@
package com.dsh.communityWorldCup.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2024/3/6 20:00
 */
@Data
public class ChangeScore {
    /**
     * 参赛数据id
     */
    private Long id;
    /**
     * 蓝方得分
     */
    private Integer blue;
    /**
     * 红方得分
     */
    private Integer red;
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupGameStatisticsInfoList.java
New file
@@ -0,0 +1,35 @@
package com.dsh.communityWorldCup.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2024/3/6 18:55
 */
@Data
public class WorldCupGameStatisticsInfoList {
    /**
     * 赛事id
     */
    private Integer id;
    /**
     * 比赛名称
     */
    private String name;
    /**
     * 手机号
     */
    private String phone;
    /**
     * 身份证号
     */
    private String idcard;
    /**
     * 页码
     */
    private Integer offset;
    /**
     * 页条数
     */
    private Integer limit;
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupGameStatisticsListInfo.java
New file
@@ -0,0 +1,19 @@
package com.dsh.communityWorldCup.model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2024/3/6 19:18
 */
@Data
public class WorldCupGameStatisticsListInfo {
    /**
     * 参赛数据id
     */
    private Long id;
    /**
     * 姓名
     */
    private String name;
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java
@@ -54,4 +54,26 @@
     * @return
     */
    Map<String, Object> worldCupRecordsList(WorldCupRecords worldCupRecords);
    /**
     * 获取比赛统计详情列表
     * @param worldCupGameStatisticsInfoList
     * @return
     */
    Map<String, Object> worldCupGameStatisticsInfoList(WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList);
    /**
     * 获取单场参赛详情列表
     * @return
     */
    Map<String, Object> worldCupGameStatisticsListInfo(WorldCupGameStatisticsListInfo worldCupGameStatisticsListInfo);
    /**
     * 修改比分
     * @param changeScore
     */
    void changeScore(ChangeScore changeScore);
}
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
@@ -17,6 +17,7 @@
import com.dsh.communityWorldCup.model.*;
import com.dsh.communityWorldCup.service.IWorldCupCompetitorService;
import com.dsh.communityWorldCup.service.IWorldCupService;
import com.dsh.communityWorldCup.util.ToolUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -24,6 +25,7 @@
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -342,4 +344,177 @@
        map1.put("total", count);
        return map1;
    }
    /**
     * 获取比赛统计详情列表
     * @param worldCupGameStatisticsInfoList
     * @return
     */
    @Override
    public Map<String, Object> worldCupGameStatisticsInfoList(WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList) {
        Map<String, Object> map1 = new HashMap<>();
        Integer id = worldCupGameStatisticsInfoList.getId();
        String name = worldCupGameStatisticsInfoList.getName();
        String phone = worldCupGameStatisticsInfoList.getPhone();
        String idcard = worldCupGameStatisticsInfoList.getIdcard();
        List<Map<String, Object>> mapList = this.baseMapper.worldCupGameStatisticsInfoList(id);
        List<Map<String, Object>> list = new ArrayList<>();
        for (int i = 0; i < mapList.size(); i++) {
            Map<String, Object> map = mapList.get(i);
            Integer participantType = Integer.valueOf(map.get("participantType").toString());
            Integer participantId = Integer.valueOf(map.get("participantId").toString());
            Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
            Integer totalSession = Integer.valueOf(map.get("totalSession").toString());
            Integer win = Integer.valueOf(map.get("win").toString());
            Integer lose = totalSession - win;
            map.put("lose", lose);
            AppUser appUser = appUserClient.getAppUser(appUserId);
            map.put("province", appUser.getProvince() + appUser.getCity());
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId);
                if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                    continue;
                }
                if(ToolUtil.isNotEmpty(phone) && tStudent.getPhone().indexOf(phone) == -1){
                    continue;
                }
                if(ToolUtil.isNotEmpty(idcard) && tStudent.getIdCard().indexOf(idcard) == -1){
                    continue;
                }
                map.put("name", tStudent.getName());
                map.put("phone", tStudent.getPhone());
            }else{
                Participant participant = participantClient.getParticipant(participantId);
                if(ToolUtil.isNotEmpty(name) && participant.getName().indexOf(name) == -1){
                    continue;
                }
                if(ToolUtil.isNotEmpty(phone) && participant.getPhone().indexOf(phone) == -1){
                    continue;
                }
                if(ToolUtil.isNotEmpty(idcard) && participant.getIdcard().indexOf(idcard) == -1){
                    continue;
                }
                map.put("name", participant.getName());
                map.put("phone", participant.getPhone());
            }
            list.add(map);
        }
        map1.put("total", mapList.size());
        Integer offset = worldCupGameStatisticsInfoList.getOffset();
        Integer limit = worldCupGameStatisticsInfoList.getLimit();
        limit += offset;
        map1.put("rows", mapList.subList(offset, mapList.size() >= limit ? limit : mapList.size()));
        return map1;
    }
    /**
     * 获取单场参赛详情列表
     * @return
     */
    @Override
    public Map<String, Object> worldCupGameStatisticsListInfo(WorldCupGameStatisticsListInfo worldCupGameStatisticsListInfo) {
        Long id = worldCupGameStatisticsListInfo.getId();
        String name = worldCupGameStatisticsListInfo.getName();
        WorldCupCompetitor worldCupCompetitor = this.getById(id);
        List<WorldCupCompetitor> list = this.list(new QueryWrapper<WorldCupCompetitor>().eq("code", worldCupCompetitor.getCode()));
        List<Map<String, Object>> mapList = new ArrayList<>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy.HH.dd HH:mm");
        for (WorldCupCompetitor cupCompetitor : list) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", cupCompetitor.getId());
            Integer participantType = cupCompetitor.getParticipantType();
            Integer participantId = cupCompetitor.getParticipantId();
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId);
                if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                    continue;
                }
                map.put("name", tStudent.getName());
            }else{
                Participant participant = participantClient.getParticipant(participantId);
                if(ToolUtil.isNotEmpty(name) && participant.getName().indexOf(name) == -1){
                    continue;
                }
                map.put("name", participant.getName());
            }
            map.put("startTime", sdf.format(cupCompetitor.getStartTime()));
            map.put("score", cupCompetitor.getOurScore().compareTo(cupCompetitor.getOpponentScore()) > 0 ?
                    cupCompetitor.getOurScore() + ":" + cupCompetitor.getOpponentScore() :
                    cupCompetitor.getOpponentScore() + ":" + cupCompetitor.getOurScore());
            map.put("matchResult", cupCompetitor.getMatchResult() == 1 ? "胜" : "负");
            mapList.add(map);
        }
        Map<String, Object> map = new HashMap<>();
        map.put("rows", mapList);
        map.put("total", mapList.size());
        return map;
    }
    /**
     * 修改比分
     * @param changeScore
     */
    @Override
    public void changeScore(ChangeScore changeScore) {
        Long id = changeScore.getId();
        Integer blue = changeScore.getBlue();
        Integer red = changeScore.getRed();
        WorldCupCompetitor worldCupCompetitor = this.getById(id);
        List<WorldCupCompetitor> blueList = this.list(new QueryWrapper<WorldCupCompetitor>().eq("code", worldCupCompetitor.getCode()).eq("participant", 1));
        WorldCup worldCup = worldCupService.getById(blueList.get(0).getWorldCupId());
        for (WorldCupCompetitor cupCompetitor : blueList) {
            //如果之前输了,现在赢了,需要增加积分
            if(cupCompetitor.getMatchResult() == -1 && blue.compareTo(red) > 0){
                AppUser appUser = appUserClient.getAppUser(cupCompetitor.getAppUserId());
                appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
                appUserClient.updateAppUser(appUser);
                cupCompetitor.setMatchResult(1);
                cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
            }
            //如果之前赢了,现在输了,需要扣减积分
            if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) < 0){
                AppUser appUser = appUserClient.getAppUser(cupCompetitor.getAppUserId());
                appUser.setIntegral(appUser.getIntegral() - worldCup.getWinIntegral());
                appUserClient.updateAppUser(appUser);
                cupCompetitor.setMatchResult(-1);
                cupCompetitor.setWinIntegral(0);
            }
            cupCompetitor.setOurScore(blue);
            cupCompetitor.setOpponentScore(red);
        }
        this.updateBatchById(blueList);
        List<WorldCupCompetitor> redList = this.list(new QueryWrapper<WorldCupCompetitor>().eq("code", worldCupCompetitor.getCode()).eq("participant", 2));
        for (WorldCupCompetitor cupCompetitor : redList) {
            //如果之前输了,现在赢了,需要增加积分
            if(cupCompetitor.getMatchResult() == -1 && red.compareTo(blue) > 0){
                AppUser appUser = appUserClient.getAppUser(cupCompetitor.getAppUserId());
                appUser.setIntegral(appUser.getIntegral() + worldCup.getWinIntegral());
                appUserClient.updateAppUser(appUser);
                cupCompetitor.setMatchResult(1);
                cupCompetitor.setWinIntegral(worldCup.getWinIntegral());
            }
            //如果之前赢了,现在输了,需要扣减积分
            if(cupCompetitor.getMatchResult() == 1 && red.compareTo(blue) < 0){
                AppUser appUser = appUserClient.getAppUser(cupCompetitor.getAppUserId());
                appUser.setIntegral(appUser.getIntegral() - worldCup.getWinIntegral());
                appUserClient.updateAppUser(appUser);
                cupCompetitor.setMatchResult(-1);
                cupCompetitor.setWinIntegral(0);
            }
            cupCompetitor.setOurScore(red);
            cupCompetitor.setOpponentScore(blue);
        }
        this.updateBatchById(blueList);
    }
}
cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
@@ -159,4 +159,36 @@
            group by participantType, participantId, appUserId
        } as aa
    </select>
    <select id="worldCupGameStatisticsInfoList" resultType="map">
        select * from (
            select
            a.participantType,
            a.participantId,
            a.appUserId,
            a.num as totalSession,
            ifnull(b.num, 0) as win,
            (ifnull(b.num, 0) / a.num * 100) as winRate
            from (
                select
                participantType,
                participantId,
                appUserId,
                count(*) as num
                from t_world_cup_competitor
                where worldCupId = #{worldCupId} group by participantType, participantId, appUserId
            ) as a
            left join (
                select
                participantType,
                participantId,
                appUserId,
                count(*) as num
                from t_world_cup_competitor
                where matchResult = 1 and worldCupId = #{worldCupId} group by participantType, participantId, appUserId
            ) as b on (a.participantId = b.participantId and a.participantType = b.participantType)
        ) as aa order by aa.totalSession desc
    </select>
</mapper>
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/ChangeScore.java
New file
@@ -0,0 +1,23 @@
package com.dsh.course.feignClient.communityWorldCup.Model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2024/3/6 20:00
 */
@Data
public class ChangeScore {
    /**
     * 参赛数据id
     */
    private Long id;
    /**
     * 蓝方得分
     */
    private Integer blue;
    /**
     * 红方得分
     */
    private Integer red;
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupGameStatistics.java
New file
@@ -0,0 +1,23 @@
package com.dsh.course.feignClient.communityWorldCup.Model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2024/3/6 17:42
 */
@Data
public class WorldCupGameStatistics {
    /**
     * 比赛名称
     */
    private String name;
    /**
     * 页码
     */
    private Integer offset;
    /**
     * 页条数
     */
    private Integer limit;
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupGameStatisticsInfoList.java
New file
@@ -0,0 +1,35 @@
package com.dsh.course.feignClient.communityWorldCup.Model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2024/3/6 18:55
 */
@Data
public class WorldCupGameStatisticsInfoList {
    /**
     * 赛事id
     */
    private Integer id;
    /**
     * 比赛名称
     */
    private String name;
    /**
     * 手机号
     */
    private String phone;
    /**
     * 身份证号
     */
    private String idcard;
    /**
     * 页码
     */
    private Integer offset;
    /**
     * 页条数
     */
    private Integer limit;
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupGameStatisticsListInfo.java
New file
@@ -0,0 +1,19 @@
package com.dsh.course.feignClient.communityWorldCup.Model;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2024/3/6 19:18
 */
@Data
public class WorldCupGameStatisticsListInfo {
    /**
     * 参赛数据id
     */
    private Long id;
    /**
     * 姓名
     */
    private String name;
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/WorldCupClient.java
@@ -1,9 +1,6 @@
package com.dsh.course.feignClient.communityWorldCup;
import com.dsh.course.feignClient.communityWorldCup.Model.RegisteredPersonnel;
import com.dsh.course.feignClient.communityWorldCup.Model.WorldCup;
import com.dsh.course.feignClient.communityWorldCup.Model.WorldCupListAll;
import com.dsh.course.feignClient.communityWorldCup.Model.WorldCupRecords;
import com.dsh.course.feignClient.communityWorldCup.Model.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@@ -77,4 +74,38 @@
     */
    @PostMapping("/worldCup/worldCupRecordsList")
    Map<String, Object> worldCupRecordsList(WorldCupRecords worldCupRecords);
    /**
     * 获取比赛统计
     * @param worldCupGameStatistics
     * @return
     */
    @PostMapping("/worldCup/worldCupGameStatistics")
    Map<String, Object> worldCupGameStatistics(WorldCupGameStatistics worldCupGameStatistics);
    /**
     * 获取比赛统计详情列表
     * @param worldCupGameStatisticsInfoList
     * @return
     */
    @PostMapping("/worldCup/worldCupGameStatisticsInfoList")
    Map<String, Object> worldCupGameStatisticsInfoList(WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList);
    /**
     * 获取单场参赛数据详情列表
     * @return
     */
    @PostMapping("/worldCup/worldCupGameStatisticsListInfo")
    Map<String, Object> worldCupGameStatisticsListInfo(WorldCupGameStatisticsListInfo worldCupGameStatisticsListInfo);
    /**
     * 修改得分
     * @param changeScore
     */
    @PostMapping("/worldCup/changeScore")
    void changeScore(ChangeScore changeScore);
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupRecordsController.java
@@ -1,8 +1,10 @@
package com.dsh.guns.modular.system.controller.code;
import com.dsh.course.feignClient.communityWorldCup.Model.WorldCupRecords;
import com.dsh.course.feignClient.communityWorldCup.Model.*;
import com.dsh.course.feignClient.communityWorldCup.WorldCupClient;
import com.dsh.guns.modular.system.util.ResultUtil;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -30,6 +32,26 @@
    }
    @RequestMapping("/openWorldCupGameStatisticsInfo")
    public String openWorldCupGameStatisticsInfo(Model model, Integer id){
        model.addAttribute("id", id);
        return PREFIX + "worldCupGameStatisticsInfo.html";
    }
    @RequestMapping("/openWorldCupGameStatisticsListInfo")
    public String openWorldCupGameStatisticsListInfo(Model model, Integer id){
        model.addAttribute("id", id);
        return PREFIX + "worldCupGameStatisticsListInfo.html";
    }
    /**
     * 获取排行榜列表数据
     * @param worldCupRecords
@@ -40,4 +62,53 @@
    public Map<String, Object> worldCupRecordsList(WorldCupRecords worldCupRecords){
        return worldCupClient.worldCupRecordsList(worldCupRecords);
    }
    /**
     * 获取比赛统计
     * @param worldCupGameStatistics
     * @return
     */
    @ResponseBody
    @PostMapping("/worldCupGameStatistics")
    public Map<String, Object> worldCupGameStatistics(WorldCupGameStatistics worldCupGameStatistics){
        return worldCupClient.worldCupGameStatistics(worldCupGameStatistics);
    }
    /**
     * 获取比赛统计详情列表
     * @param worldCupGameStatisticsInfoList
     * @return
     */
    @ResponseBody
    @PostMapping("/worldCupGameStatisticsInfoList")
    public Map<String, Object> worldCupGameStatisticsInfoList(WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList){
        return worldCupClient.worldCupGameStatisticsInfoList(worldCupGameStatisticsInfoList);
    }
    /**
     * 获取单场参赛数据详情列表
     * @param worldCupGameStatisticsListInfo
     * @return
     */
    @ResponseBody
    @PostMapping("/worldCupGameStatisticsListInfo")
    public Map<String, Object> worldCupGameStatisticsListInfo(WorldCupGameStatisticsListInfo worldCupGameStatisticsListInfo){
        return worldCupClient.worldCupGameStatisticsListInfo(worldCupGameStatisticsListInfo);
    }
    /**
     * 修改比分
     * @param changeScore
     * @return
     */
    @ResponseBody
    @PostMapping("/changeScore")
    public ResultUtil changeScore(ChangeScore changeScore){
        worldCupClient.changeScore(changeScore);
        return ResultUtil.success();
    }
}
cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupGameStatisticsInfo.html
New file
@@ -0,0 +1,46 @@
@layout("/common/_container.html"){
<div class="row">
    <div class="col-sm-12">
        <div class="ibox float-e-margins">
            <div class="ibox-title">
                <h5>查看详情</h5>
            </div>
            <div class="ibox-content">
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <input type="hidden" id="id" value="${id}">
                        <div class="row">
                            <div class="col-sm-3">
                                <#NameCon id="name" name="用户姓名:" />
                            </div>
                            <div class="col-sm-3">
                                <#NameCon id="phone" name="联系电话:" />
                            </div>
                            <div class="col-sm-3">
                                <#NameCon id="idcard" name="身份证号:" />
                            </div>
                            <div class="col-sm-3">
                                <#button name="搜索" icon="fa-search" clickFun="WorldCupGameStatisticsInfo.search()"/>
                                <#button name="重置" icon="fa-trash" clickFun="WorldCupGameStatisticsInfo.resetSearch()" space="true"/>
                            </div>
                        </div>
                        <div class="hidden-xs" id="WorldCupGameStatisticsInfoTableToolbar" role="group">
                            <#button name="比赛详情" icon="fa-plus" clickFun="WorldCupGameStatisticsInfo.openWorldCupGameStatisticsInfo()"/>
                        </div>
                        <#table id="WorldCupGameStatisticsInfoTable"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/modular/system/worldCupRecords/worldCupGameStatisticsInfo.js"></script>
<script>
    laydate.render({
        elem: '#startTime'
    });
    laydate.render({
        elem: '#endTime'
    });
</script>
@}
cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupGameStatisticsListInfo.html
New file
@@ -0,0 +1,40 @@
@layout("/common/_container.html"){
<div class="row">
  <div class="col-sm-12">
    <div class="ibox float-e-margins">
      <div class="ibox-title">
        <h5>比赛详情</h5>
      </div>
      <div class="ibox-content">
        <div class="row row-lg">
          <div class="col-sm-12">
            <input type="hidden" id="id" value="${id}">
            <div class="row">
              <div class="col-sm-3">
                <#NameCon id="name" name="用户姓名:" />
              </div>
              <div class="col-sm-3">
                <#button name="搜索" icon="fa-search" clickFun="WorldCupGameStatisticsListInfo.search()"/>
                <#button name="重置" icon="fa-trash" clickFun="WorldCupGameStatisticsListInfo.resetSearch()" space="true"/>
              </div>
            </div>
            <div class="hidden-xs" id="WorldCupGameStatisticsListInfoTableToolbar" role="group">
              <#button name="比赛详情" icon="fa-plus" clickFun="WorldCupGameStatisticsListInfo.openWorldCupGameStatisticsListInfo()"/>
            </div>
            <#table id="WorldCupGameStatisticsListInfoTable"/>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
<script src="${ctxPath}/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js"></script>
<script>
  laydate.render({
    elem: '#startTime'
  });
  laydate.render({
    elem: '#endTime'
  });
</script>
@}
cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupRecords.html
@@ -36,10 +36,7 @@
                  <div class="panel-body">
                    <div class="row">
                      <div class="col-sm-3">
                        <#NameCon id="province" name="所在省份:" />
                      </div>
                      <div class="col-sm-3">
                        <#NameCon id="city" name="所在城市:" />
                        <#NameCon id="name" name="比赛名称:" />
                      </div>
                      <div class="col-sm-3">
                        <#button name="搜索" icon="fa-search" clickFun="WorldCupRecords.search2()"/>
@@ -47,21 +44,7 @@
                      </div>
                    </div>
                    <div class="hidden-xs" id="WorldCupRecordsTable2Toolbar" role="group">
                      @if(shiro.hasPermission("/WorldCupRecords/openAddWorldCupRecords")){
                      <#button name="添加" icon="fa-plus" clickFun="WorldCupRecords.openAddWorldCupRecords()"/>
                      @}
                      @if(shiro.hasPermission("/WorldCupRecords/openEditWorldCupRecords")){
                      <#button name="编辑" icon="fa-edit" clickFun="WorldCupRecords.openEditWorldCupRecords()" space="true"/>
                      @}
                      @if(shiro.hasPermission("/WorldCupRecords/cancelWorldCupRecords")){
                      <#button name="取消" icon="fa-edit" clickFun="WorldCupRecords.cancelWorldCupRecords()" space="true"/>
                      @}
                      @if(shiro.hasPermission("/WorldCupRecords/openWorldCupRecordsInfo")){
                      <#button name="查看详情" icon="fa-edit" clickFun="WorldCupRecords.openWorldCupRecordsInfo()" space="true"/>
                      @}
                      @if(shiro.hasPermission("/WorldCupRecords/registeredPersonnel")){
                      <#button name="已报名人员" icon="fa-edit" clickFun="WorldCupRecords.registeredPersonnel()" space="true"/>
                      @}
                      <#button name="查看详情" icon="fa-plus" clickFun="WorldCupRecords.openWorldCupRecordsInfo()"/>
                    </div>
                    <#table id="WorldCupRecordsTable2"/>
                  </div>
@@ -108,7 +91,7 @@
    </div>
  </div>
</div>
<script src="${ctxPath}/modular/system/WorldCupRecordsRecords/WorldCupRecordsRecords.js"></script>
<script src="${ctxPath}/modular/system/worldCupRecords/worldCupRecords.js"></script>
<script>
  laydate.render({
    elem: '#startTime'
cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupGameStatisticsInfo.js
New file
@@ -0,0 +1,99 @@
/**
 * 跨城站点管理管理初始化
 */
var WorldCupGameStatisticsInfo = {
    id: "WorldCupGameStatisticsInfoTable",    //表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1,
};
/**
 * 初始化表格的列
 */
WorldCupGameStatisticsInfo.initColumn = function () {
    return [
        {field: 'selectItem', checkbox: true},
        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
        {title: '用户姓名', field: 'name', visible: true, align: 'center', valign: 'middle',},
        {title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'},
        {title: '所在城市', field: 'province', visible: true, align: 'center', valign: 'middle'},
        {title: '已比赛场次', field: 'totalSession', visible: true, align: 'center', valign: 'middle'},
        {title: '胜-负场次', field: 'win', visible: true, align: 'center', valign: 'middle',
            formatter:function (data, item) {
                return item.win + '-' + item.lose;
            }
        },
        {title: '胜率', field: 'winRate', visible: true, align: 'center', valign: 'middle',
            formatter:function (data) {
                return data + '%';
            }
        },
    ];
};
/**
 * 检查是否选中
 */
WorldCupGameStatisticsInfo.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }else{
        WorldCupGameStatisticsInfo.seItem = selected[0];
        return true;
    }
};
/**
 * 商户号认证
 */
WorldCupGameStatisticsInfo.openWorldCupGameStatisticsInfo = function () {
    if(this.check()){
        var index = layer.open({
            type: 2,
            title: '比赛详情',
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/worldCupRecords/openWorldCupGameStatisticsListInfo?id=' + WorldCupGameStatisticsInfo.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 关闭此对话框
 */
WorldCupGameStatisticsInfo.close = function() {
    parent.layer.close(window.parent.WorldCupGameStatisticsInfo.layerIndex);
};
WorldCupGameStatisticsInfo.search = function () {
    var queryData = {};
    queryData['id']  = $("#id").val();
    queryData['name']  = $("#name").val();
    queryData['phone'] =$("#phone").val();
    queryData['idcard'] =$("#idcard").val();
    WorldCupGameStatisticsInfo.table.refresh({query: queryData});
};
WorldCupGameStatisticsInfo.resetSearch = function () {
    $("#name").val("");
    $("#phone").val("");
    $("#idcard").val("");
    WorldCupGameStatisticsInfo.search();
};
$(function () {
    var defaultColunms = WorldCupGameStatisticsInfo.initColumn();
    var table = new BSTable(WorldCupGameStatisticsInfo.id, "/worldCupRecords/worldCupGameStatisticsInfoList", defaultColunms);
    table.setPaginationType("server");
    table.setQueryParams({
        'id': $('#id').val()
    })
    WorldCupGameStatisticsInfo.table = table.init();
});
cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js
New file
@@ -0,0 +1,133 @@
/**
 * 跨城站点管理管理初始化
 */
var WorldCupGameStatisticsListInfo = {
    id: "WorldCupGameStatisticsListInfoTable",    //表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1,
};
/**
 * 初始化表格的列
 */
WorldCupGameStatisticsListInfo.initColumn = function () {
    return [
        {field: 'selectItem', checkbox: true},
        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
        {title: '用户姓名', field: 'name', visible: true, align: 'center', valign: 'middle',},
        {title: '比赛时间', field: 'startTime', visible: true, align: 'center', valign: 'middle'},
        {title: '比分', field: 'score', visible: true, align: 'center', valign: 'middle'},
        {title: '结果', field: 'matchResult', visible: true, align: 'center', valign: 'middle'},
        {title: '操作', field: 'id', visible: true, align: 'center', valign: 'middle',
            formatter:function (data) {
                return '<a href="#" onclick="WorldCupGameStatisticsListInfo.changeScore(\'' + data + '\')">修改比分</a>';
            }
        },
    ];
};
/**
 * 检查是否选中
 */
WorldCupGameStatisticsListInfo.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }else{
        WorldCupGameStatisticsListInfo.seItem = selected[0];
        return true;
    }
};
/**
 * 商户号认证
 */
WorldCupGameStatisticsListInfo.changeScore = function (id) {
    const str = '<div class="row">\n' +
        '                <div class="form-group" style="height: 50px;">\n' +
        '                   <label class="col-sm-3 control-label">蓝方得分:</label>' +
        '                    <div class="col-sm-8">\n' +
        '                        <input id="blue" type="number" min="0"/>\n' +
        '                    </div>\n' +
        '                </div>\n' +
        '                <div class="form-group" style="height: 50px;">\n' +
        '                   <label class="col-sm-3 control-label">红方得分:</label>' +
        '                    <div class="col-sm-8">\n' +
        '                        <input id="red" type="number" min="0"/>\n' +
        '                    </div>\n' +
        '                </div>\n' +
        '       </div>'
    layer.open({
        type: 1
        ,title: '修改比分'
        ,area: ['500px', '400px']
        ,offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
        ,id: 'layerDemo' //防止重复弹出
        ,content: '<div style="padding: 20px">' + str + '</div>'
        ,btnAlign: 'c' //按钮居中
        ,shade: 0.5 //不显示遮罩
        ,yes: function (){
            let blue = $('#blue').val();
            let red = $('#red').val();
            if(null == blue || '' == blue){
                Feng.error("请填写有效的得分");
                return
            }
            if(null == red || '' == red){
                Feng.error("请填写有效的得分");
                return
            }
            //提交信息
            var ajax = new $ax(Feng.ctxPath + "/worldCupRecords/changeScore", function (res) {
                if (res.code==200){
                    Feng.success("修改成功!");
                    window.parent.WorldCupGameStatisticsInfo.refresh();
                    WorldCupGameStatisticsListInfo.close();
                }else{
                    Feng.error(res.msg);
                }
            }, function (data) {
                Feng.error("修改失败!" + data.responseJSON.message + "!");
            });
            ajax.set({
                'id': id,
                'blue': blue,
                'red': red
            });
            ajax.start();
        }
    });
};
/**
 * 关闭此对话框
 */
WorldCupGameStatisticsListInfo.close = function() {
    parent.layer.close(window.parent.WorldCupGameStatisticsInfo.layerIndex);
};
WorldCupGameStatisticsListInfo.search = function () {
    var queryData = {};
    queryData['id']  = $("#id").val();
    queryData['name']  = $("#name").val();
    WorldCupGameStatisticsListInfo.table.refresh({query: queryData});
};
WorldCupGameStatisticsListInfo.resetSearch = function () {
    $("#name").val("");
    WorldCupGameStatisticsListInfo.search();
};
$(function () {
    var defaultColunms = WorldCupGameStatisticsListInfo.initColumn();
    var table = new BSTable(WorldCupGameStatisticsListInfo.id, "/worldCupRecords/worldCupGameStatisticsListInfo", defaultColunms);
    table.setPaginationType("server");
    table.setQueryParams({
        'id': $('#id').val()
    })
    WorldCupGameStatisticsListInfo.table = table.init();
});
cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupRecords.js
@@ -25,76 +25,25 @@
        return true;
    }
};
/**
 * 商户号认证
 */
WorldCupRecords.openAddWorldCupRecords = function () {
    var index = layer.open({
        type: 2,
        title: '添加比赛',
        area: ['100%', '100%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/WorldCupRecords/openAddWorldCupRecords'
    });
    this.layerIndex = index;
};
/**
 * 编辑
 */
WorldCupRecords.openEditWorldCupRecords = function () {
    if(this.check()){
        var index = layer.open({
            type: 2,
            title: '编辑比赛',
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/WorldCupRecords/openEditWorldCupRecords?id=' + WorldCupRecords.seItem.id
        });
        this.layerIndex = index;
    }
};
WorldCupRecords.openWorldCupRecordsInfo = function () {
    if(this.check()){
    var selected = $('#WorldCupRecordsTable2').bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }
    let seItem2 = selected[0];
        var index = layer.open({
            type: 2,
            title: '比赛详情',
        title: '查看详情',
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/WorldCupRecords/openInfoWorldCupRecords?id=' + WorldCupRecords.seItem.id
        content: Feng.ctxPath + '/worldCupRecords/openWorldCupGameStatisticsInfo?id=' + seItem2.id
        });
        this.layerIndex = index;
    }
};
/**
 * 下架
 */
WorldCupRecords.registeredPersonnel = function () {
    if(this.check()){
        var index = layer.open({
            type: 2,
            title: '已报名人员',
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/WorldCupRecords/openRegisteredPersonnel?id=' + WorldCupRecords.seItem.id
        });
        this.layerIndex = index;
    }
};
@@ -122,14 +71,12 @@
WorldCupRecords.search2 = function () {
    var queryData = {};
    queryData['province']  = $("#province").val();
    queryData['city'] =$("#city").val();
    queryData['name']  = $("#name").val();
    WorldCupRecords.table2.refresh({query: queryData});
};
WorldCupRecords.resetSearch2 = function () {
    $("#province").val("");
    $("#city").val("");
    $("#name").val("");
    WorldCupRecords.search2();
};
@@ -150,13 +97,17 @@
    var defaultColunms1 = [
        {field: 'selectItem', checkbox: true},
        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
        {title: '名次', field: 'name', visible: true, align: 'center', valign: 'middle',width:'20%',},
        {title: '用户姓名', field: 'startTime', visible: true, align: 'center', valign: 'middle',},
        {title: '联系电话', field: 'endTime', visible: true, align: 'center', valign: 'middle'},
        {title: '所在城市', field: 'age', visible: true, align: 'center', valign: 'middle'},
        {title: '已比赛场次', field: 'maxPeople', visible: true, align: 'center', valign: 'middle'},
        {title: '胜-负场次', field: 'maxPeople', visible: true, align: 'center', valign: 'middle'},
        {title: '胜率', field: 'status', visible: true, align: 'center', valign: 'middle',
        {title: '名次', field: 'row_num', visible: true, align: 'center', valign: 'middle',width:'20%',},
        {title: '用户姓名', field: 'name', visible: true, align: 'center', valign: 'middle',},
        {title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'},
        {title: '所在城市', field: 'province', visible: true, align: 'center', valign: 'middle'},
        {title: '已比赛场次', field: 'totalSession', visible: true, align: 'center', valign: 'middle'},
        {title: '胜-负场次', field: 'win', visible: true, align: 'center', valign: 'middle',
            formatter:function (data, item) {
                return item.win + '-' + item.lose;
            }
        },
        {title: '胜率', field: 'winRate', visible: true, align: 'center', valign: 'middle',
            formatter:function (data) {
                return data + '%';
            }
@@ -172,28 +123,28 @@
        {title: '比赛名称', field: 'name', visible: true, align: 'center', valign: 'middle',width:'20%',},
        {title: '开始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle',},
        {title: '结束时间', field: 'endTime', visible: true, align: 'center', valign: 'middle'},
        {title: '已报名人数', field: 'age', visible: true, align: 'center', valign: 'middle'},
        {title: '已比赛场次', field: 'maxPeople', visible: true, align: 'center', valign: 'middle'},
        {title: '已报名人数', field: 'applicants', visible: true, align: 'center', valign: 'middle'},
        {title: '已比赛场次', field: 'matchTime', visible: true, align: 'center', valign: 'middle'},
    ];
    var table2 = new BSTable("WorldCupRecordsTable2", "/worldCupRecords/listAll", defaultColunms2);
    var table2 = new BSTable("WorldCupRecordsTable2", "/worldCupRecords/worldCupGameStatistics", defaultColunms2);
    table2.setPaginationType("server");
    WorldCupRecords.table2 = table2.init();
    var defaultColunms3 = [
        {field: 'selectItem', checkbox: true},
        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
        {title: '用户姓名', field: 'name', visible: true, align: 'center', valign: 'middle',width:'20%',},
        {title: '联系电话', field: 'startTime', visible: true, align: 'center', valign: 'middle',},
        {title: '身份证号', field: 'endTime', visible: true, align: 'center', valign: 'middle'},
        {title: '已比赛场次', field: 'maxPeople', visible: true, align: 'center', valign: 'middle'},
        {title: '胜-负场次', field: 'maxPeople', visible: true, align: 'center', valign: 'middle'},
        {title: '胜率', field: 'status', visible: true, align: 'center', valign: 'middle',
            formatter:function (data) {
                return data + '%';
            }
        },
    ];
    var table3 = new BSTable("WorldCupRecordsTable3", "/worldCupRecords/listAll", defaultColunms3);
    table3.setPaginationType("server");
    WorldCupRecords.table3 = table3.init();
    // var defaultColunms3 = [
    //     {field: 'selectItem', checkbox: true},
    //     {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
    //     {title: '用户姓名', field: 'name', visible: true, align: 'center', valign: 'middle',width:'20%',},
    //     {title: '联系电话', field: 'startTime', visible: true, align: 'center', valign: 'middle',},
    //     {title: '身份证号', field: 'endTime', visible: true, align: 'center', valign: 'middle'},
    //     {title: '已比赛场次', field: 'maxPeople', visible: true, align: 'center', valign: 'middle'},
    //     {title: '胜-负场次', field: 'maxPeople', visible: true, align: 'center', valign: 'middle'},
    //     {title: '胜率', field: 'status', visible: true, align: 'center', valign: 'middle',
    //         formatter:function (data) {
    //             return data + '%';
    //         }
    //     },
    // ];
    // var table3 = new BSTable("WorldCupRecordsTable3", "/worldCupRecords/listAll", defaultColunms3);
    // table3.setPaginationType("server");
    // WorldCupRecords.table3 = table3.init();
});