| | |
| | | List<TAppUser> list = appUserService.list(new QueryWrapper<TAppUser>().eq("cityCode", cityCode).eq("state", 1)); |
| | | return list.stream().map(TAppUser::getId).collect(Collectors.toList()); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据省市名称所有用户 |
| | | * @param appUserIdsByCityName |
| | | * @return |
| | | */ |
| | | @PostMapping("/appUser/getAppUserIdsByCityName") |
| | | public List<Integer> getAppUserIdsByCityName(@RequestBody AppUserIdsByCityName appUserIdsByCityName){ |
| | | QueryWrapper<TAppUser> queryWrapper = new QueryWrapper<TAppUser>().eq("state", 1); |
| | | if(ToolUtil.isNotEmpty(appUserIdsByCityName.getProvince())){ |
| | | queryWrapper.like("province", appUserIdsByCityName.getProvince()); |
| | | } |
| | | if(ToolUtil.isNotEmpty(appUserIdsByCityName.getCity())){ |
| | | queryWrapper.like("city", appUserIdsByCityName.getCity()); |
| | | } |
| | | List<TAppUser> list = appUserService.list(queryWrapper); |
| | | return list.stream().map(TAppUser::getId).collect(Collectors.toList()); |
| | | } |
| | | } |
New file |
| | |
| | | package com.dsh.account.model; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/3/6 16:46 |
| | | */ |
| | | @Data |
| | | public class AppUserIdsByCityName { |
| | | /** |
| | | * 省名称 |
| | | */ |
| | | private String province; |
| | | /** |
| | | * 市名称 |
| | | */ |
| | | private String city; |
| | | } |
| | |
| | | public Map<String, Object> getRegisteredPersonnel(@RequestBody RegisteredPersonnel registeredPersonnel){ |
| | | return worldCupPaymentParticipantService.getRegisteredPersonnel(registeredPersonnel); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取比赛排行榜列表数据 |
| | | * @param worldCupRecords |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/worldCup/worldCupRecordsList") |
| | | public Map<String, Object> worldCupRecordsList(@RequestBody WorldCupRecords worldCupRecords){ |
| | | return worldCupCompetitorService.worldCupRecordsList(worldCupRecords); |
| | | } |
| | | } |
| | |
| | | package com.dsh.communityWorldCup.feignclient.account; |
| | | |
| | | import com.dsh.communityWorldCup.feignclient.account.model.AppUser; |
| | | import com.dsh.communityWorldCup.feignclient.account.model.AppUserIdsByCityName; |
| | | import org.springframework.cloud.openfeign.FeignClient; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | |
| | |
| | | @PostMapping("/appUser/getAppUserIds") |
| | | List<Integer> getAppUserIds(String cityCode); |
| | | |
| | | |
| | | /** |
| | | * 根据省市名称获取用户的id集合 |
| | | * @param appUserIdsByCityName |
| | | * @return |
| | | */ |
| | | @PostMapping("/appUser/getAppUserIdsByCityName") |
| | | List<Integer> getAppUserIdsByCityName(AppUserIdsByCityName appUserIdsByCityName); |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.communityWorldCup.feignclient.account.model; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/3/6 16:46 |
| | | */ |
| | | @Data |
| | | public class AppUserIdsByCityName { |
| | | /** |
| | | * 省名称 |
| | | */ |
| | | private String province; |
| | | /** |
| | | * 市名称 |
| | | */ |
| | | private String city; |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dsh.communityWorldCup.entity.WorldCupCompetitor; |
| | | import com.dsh.communityWorldCup.model.MatchRecord; |
| | | import com.dsh.communityWorldCup.model.MatchRecordList; |
| | | import com.dsh.communityWorldCup.model.WorldCupRank; |
| | | import com.dsh.communityWorldCup.model.WorldCupRankVo; |
| | | import com.dsh.communityWorldCup.model.*; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> getWorldCupRank(@Param("item") WorldCupRank worldCupRank, @Param("appUserIds") List<Integer> appUserIds); |
| | | |
| | | |
| | | /** |
| | | * 获取比赛排行榜列表数据 |
| | | * @param worldCupRecords |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> worldCupRecordsList(@Param("item") WorldCupRecords worldCupRecords, @Param("appUserIds") List<Integer> appUserIds); |
| | | |
| | | |
| | | int worldCupRecordsListCount(@Param("appUserIds") List<Integer> appUserIds); |
| | | } |
New file |
| | |
| | | package com.dsh.communityWorldCup.model; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/3/6 16:17 |
| | | */ |
| | | @Data |
| | | public class WorldCupRecords { |
| | | /** |
| | | * 省名称 |
| | | */ |
| | | private String province; |
| | | /** |
| | | * 市名称 |
| | | */ |
| | | private String city; |
| | | /** |
| | | * 页码 |
| | | */ |
| | | private Integer offset; |
| | | /** |
| | | * 页条数 |
| | | */ |
| | | private Integer limit; |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.communityWorldCup.entity.WorldCupCompetitor; |
| | | import com.dsh.communityWorldCup.model.*; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | |
| | | * @param blue |
| | | */ |
| | | void endWorldCupCallback(String custom, Integer red_score, Integer blue); |
| | | |
| | | |
| | | /** |
| | | * 获取比赛排行榜列表数据 |
| | | * @param worldCupRecords |
| | | * @return |
| | | */ |
| | | Map<String, Object> worldCupRecordsList(WorldCupRecords worldCupRecords); |
| | | } |
| | |
| | | import com.dsh.communityWorldCup.feignclient.account.AppUserClient; |
| | | import com.dsh.communityWorldCup.feignclient.account.StudentClient; |
| | | import com.dsh.communityWorldCup.feignclient.account.model.AppUser; |
| | | import com.dsh.communityWorldCup.feignclient.account.model.AppUserIdsByCityName; |
| | | import com.dsh.communityWorldCup.feignclient.account.model.TStudent; |
| | | import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient; |
| | | import com.dsh.communityWorldCup.feignclient.competition.model.Participant; |
| | |
| | | import java.math.BigDecimal; |
| | | import java.math.MathContext; |
| | | import java.math.RoundingMode; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | |
| | | |
| | | this.updateBatchById(worldCupCompetitors); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取比赛排行榜列表数据 |
| | | * @param worldCupRecords |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Map<String, Object> worldCupRecordsList(WorldCupRecords worldCupRecords) { |
| | | Map<String, Object> map1 = new HashMap<>(); |
| | | AppUserIdsByCityName appUserIdsByCityName = new AppUserIdsByCityName(); |
| | | appUserIdsByCityName.setProvince(worldCupRecords.getProvince()); |
| | | appUserIdsByCityName.setCity(worldCupRecords.getCity()); |
| | | List<Integer> appUserIds = appUserClient.getAppUserIdsByCityName(appUserIdsByCityName); |
| | | List<Map<String, Object>> mapList = this.baseMapper.worldCupRecordsList(worldCupRecords, appUserIds); |
| | | 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); |
| | | map.put("name", tStudent.getName()); |
| | | map.put("phone", tStudent.getPhone()); |
| | | }else{ |
| | | Participant participant = participantClient.getParticipant(participantId); |
| | | map.put("name", participant.getName()); |
| | | map.put("phone", participant.getPhone()); |
| | | } |
| | | } |
| | | map1.put("rows", mapList); |
| | | int count = this.baseMapper.worldCupRecordsListCount(appUserIds); |
| | | map1.put("total", count); |
| | | return map1; |
| | | } |
| | | } |
| | |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | <select id="worldCupRecordsList" resultType="map"> |
| | | select @row_num := @row_num + 1 AS row_num, bb.* from ( |
| | | 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 1 = 1 |
| | | <if test="null != appUserIds and appUserIds.size() > 0"> |
| | | and appUserId in |
| | | <foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")"> |
| | | #{iten} |
| | | </foreach> |
| | | </if> |
| | | group by participantType, participantId, appUserId |
| | | ) as a |
| | | left join ( |
| | | select |
| | | participantType, |
| | | participantId, |
| | | appUserId, |
| | | count(*) as num |
| | | from t_world_cup_competitor |
| | | where matchResult = 1 |
| | | <if test="null != appUserIds and appUserIds.size() > 0"> |
| | | and appUserId in |
| | | <foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")"> |
| | | #{iten} |
| | | </foreach> |
| | | </if> |
| | | group by participantType, participantId, appUserId |
| | | ) as b on (a.participantId = b.participantId and a.participantType = b.participantType) |
| | | ) as aa order by aa.totalSession desc |
| | | ) as bb, (SELECT @row_num := 0) AS r |
| | | </select> |
| | | |
| | | |
| | | <select id="worldCupRecordsListCount" resultType="int"> |
| | | select count(*) from { |
| | | select |
| | | participantType, |
| | | participantId, |
| | | appUserId, |
| | | from t_world_cup_competitor |
| | | where 1 = 1 |
| | | <if test="null != appUserIds and appUserIds.size() > 0"> |
| | | and appUserId in |
| | | <foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")"> |
| | | #{iten} |
| | | </foreach> |
| | | </if> |
| | | group by participantType, participantId, appUserId |
| | | } as aa |
| | | </select> |
| | | </mapper> |