puzhibing
2024-03-08 2e854f0e55775ec32ee0ba47bf4f2d3fe822ddbf
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
@@ -65,7 +65,7 @@
            entrantRankVo.setName(participant.getName());
        }else{
            //学员
            TStudent tStudent = studentClient.queryById(entrantRank.getId());
            TStudent tStudent = studentClient.queryById(entrantRank.getId().intValue());
            entrantRankVo.setName(tStudent.getName());
        }
        //全国排名---直接数据库分组查询后排序
@@ -164,7 +164,7 @@
        for (int i = 0; i < lists.size(); i++) {
            Map<String, Object> map = lists.get(i);
            Integer participantType = Integer.valueOf(map.get("participantType").toString());
            Integer participantId = Integer.valueOf(map.get("participantId").toString());
            Long participantId = Long.valueOf(map.get("participantId").toString());
            Integer appUserId = Integer.valueOf(map.get("appUserId").toString());
            Integer totalSession = Integer.valueOf(map.get("totalSession").toString());
            Double winRate = Double.valueOf(map.get("winRate").toString());
@@ -172,11 +172,12 @@
            boolean b = false;
            if(i <= 19){
                WorldCupRankVo worldCupRankVo = new WorldCupRankVo();
                worldCupRankVo.setRank(i + 1);
                worldCupRankVo.setTotalSession(totalSession);
                worldCupRankVo.setWinRate(winRate);
                //学员
                if(participantType == 1){
                    TStudent tStudent = studentClient.queryById(participantId);
                    TStudent tStudent = studentClient.queryById(participantId.intValue());
                    worldCupRankVo.setAvatar(tStudent.getHeadImg());
                    String name = tStudent.getName();
                    if(name.length() > 2){
@@ -217,11 +218,12 @@
            if(i > 19 && !b){
                if(worldCupRank.getIsStudent().equals(participantType) && worldCupRank.getId().equals(participantId)){
                    WorldCupRankVo worldCupRankVo = new WorldCupRankVo();
                    worldCupRankVo.setRank(i + 1);
                    worldCupRankVo.setTotalSession(totalSession);
                    worldCupRankVo.setWinRate(winRate);
                    //学员
                    if(participantType == 1){
                        TStudent tStudent = studentClient.queryById(participantId);
                        TStudent tStudent = studentClient.queryById(participantId.intValue());
                        worldCupRankVo.setAvatar(tStudent.getHeadImg());
                        String name = tStudent.getName();
                        if(name.length() > 2){
@@ -318,7 +320,7 @@
        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());
            Long participantId = Long.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());
@@ -327,7 +329,7 @@
            AppUser appUser = appUserClient.getAppUser(appUserId);
            map.put("province", appUser.getProvince() + appUser.getCity());
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId);
                TStudent tStudent = studentClient.queryById(participantId.intValue());
                map.put("name", tStudent.getName());
                map.put("phone", tStudent.getPhone());
            }else{
@@ -363,16 +365,18 @@
        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());
            Long participantId = Long.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);
            map.put("participantType", participantType);
            map.put("participantId", participantId);
            AppUser appUser = appUserClient.getAppUser(appUserId);
            map.put("province", appUser.getProvince() + appUser.getCity());
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId);
                TStudent tStudent = studentClient.queryById(participantId.intValue());
                if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                    continue;
                }
@@ -427,9 +431,9 @@
            Map<String, Object> map = new HashMap<>();
            map.put("id", cupCompetitor.getId());
            Integer participantType = cupCompetitor.getParticipantType();
            Integer participantId = cupCompetitor.getParticipantId();
            Long participantId = cupCompetitor.getParticipantId();
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId);
                TStudent tStudent = studentClient.queryById(participantId.intValue());
                if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                    continue;
                }
@@ -517,4 +521,49 @@
        }
        this.updateBatchById(blueList);
    }
    /**
     * 获取用户比赛记录详情
     * @param userGameRecordList
     * @return
     */
    @Override
    public Map<String, Object> userGameRecordList(UserGameRecordList userGameRecordList) {
        String name = userGameRecordList.getUserName();
        List<Map<String, Object>> list = this.baseMapper.userGameRecordList(userGameRecordList.getName());
        List<Map<String, Object>> mapList = new ArrayList<>();
        for (Map<String, Object> map : list) {
            Long participantType = Long.valueOf(map.get("participantType").toString());
            Long participantId = Long.valueOf(map.get("participantId").toString());
            Integer ourScore = Integer.valueOf(map.get("ourScore").toString());
            Integer opponentScore = Integer.valueOf(map.get("opponentScore").toString());
            Integer matchResult = Integer.valueOf(map.get("matchResult").toString());
            if(1 == participantType){
                TStudent tStudent = studentClient.queryById(participantId.intValue());
                if(ToolUtil.isNotEmpty(name) && tStudent.getName().indexOf(name) == -1){
                    continue;
                }
                map.put("userName", tStudent.getName());
            }else{
                Participant participant = participantClient.getParticipant(participantId);
                if(ToolUtil.isNotEmpty(name) && participant.getName().indexOf(name) == -1){
                    continue;
                }
                map.put("userName", participant.getName());
            }
            map.put("score", ourScore.compareTo(opponentScore) > 0 ?
                    ourScore + ":" + opponentScore :
                    opponentScore + ":" + ourScore);
            map.put("matchResult", matchResult == 1 ? "胜" : "负");
            mapList.add(map);
        }
        Map<String, Object> map = new HashMap<>();
        map.put("total", mapList.size());
        Integer offset = userGameRecordList.getOffset();
        Integer limit = userGameRecordList.getLimit();
        limit += offset;
        map.put("rows", mapList.subList(offset, mapList.size() >= limit ? limit : mapList.size()));
        return map;
    }
}