From 0f957890aa4eed6767922fa26c888d4074ae25b0 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 28 二月 2024 17:24:26 +0800 Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai into 2.0 --- cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java | 10 + cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupInfo.java | 46 +++++ cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml | 2 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java | 18 ++ cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EntrantRank.java | 19 ++ cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupPaymentParticipantMapper.xml | 26 +++ cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupPaymentParticipantMapper.java | 12 + cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EntrantRankVo.java | 28 +++ cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml | 19 ++ cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java | 38 ++++ cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupList.java | 25 +++ cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/competition/ParticipantClient.java | 5 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupPaymentParticipantService.java | 22 ++ cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java | 104 +++++++++++++ cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java | 13 + cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java | 11 + cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java | 7 cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListVo.java | 2 cloud-server-other/src/main/java/com/dsh/other/entity/HomeModule.java | 54 +++--- 19 files changed, 433 insertions(+), 28 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java index d40d094..00ad35c 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java @@ -609,4 +609,17 @@ .eq("cityCode", cityCode) ); } + + + + /** + * 根据城市code获取用户的id集合 + * @param cityCode 城市code + * @return + */ + @PostMapping("/appUser/getAppUserIds") + public List<Integer> getAppUserIds(@RequestBody String cityCode){ + List<TAppUser> list = appUserService.list(new QueryWrapper<TAppUser>().eq("cityCode", cityCode).eq("state", 1)); + return list.stream().map(TAppUser::getId).collect(Collectors.toList()); + } } diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java index 076f753..0bfffc6 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java @@ -17,6 +17,7 @@ import com.dsh.communityWorldCup.feignclient.other.model.Site; import com.dsh.communityWorldCup.feignclient.other.model.Store; import com.dsh.communityWorldCup.model.*; +import com.dsh.communityWorldCup.service.IWorldCupCompetitorService; import com.dsh.communityWorldCup.service.IWorldCupPaymentParticipantService; import com.dsh.communityWorldCup.service.IWorldCupService; import com.dsh.communityWorldCup.service.IWorldCupStoreService; @@ -83,6 +84,9 @@ @Autowired private IWorldCupStoreService worldCupStoreService; + + @Autowired + private IWorldCupCompetitorService worldCupCompetitorService; @@ -384,4 +388,38 @@ List<Integer> collect = worldCupList.stream().map(WorldCup::getId).collect(Collectors.toList()); return worldCupStoreService.list(new QueryWrapper<WorldCupStore>().eq("storeId", storeId).in("worldCupId", collect)); } + + + + + @ResponseBody + @PostMapping("/api/worldCup/getEntrantRank") + @ApiOperation(value = "获取世界杯排名【2.0】", tags = {"APP-个人中心"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<EntrantRankVo> getEntrantRank(EntrantRank entrantRank){ + EntrantRankVo entrantRank1 = worldCupCompetitorService.getEntrantRank(entrantRank); + return ResultUtil.success(entrantRank1); + } + + + + + @ResponseBody + @PostMapping("/api/worldCup/getMyWorldCupList") + @ApiOperation(value = "获取报名的世界杯列表【2.0】", tags = {"APP-个人中心"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<List<WorldCupListVo>> getMyWorldCupList(MyWorldCupList myWorldCupList){ + List<WorldCupListVo> myWorldCupList1 = worldCupPaymentParticipantService.getMyWorldCupList(myWorldCupList); + return ResultUtil.success(myWorldCupList1); + } + + + +// public ResultUtil<MyWorldCupInfo> getMyWorldCupInfo(@RequestBody String id){ +// +// } } diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java index a8a3e4e..a50d20d 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java @@ -39,5 +39,12 @@ AppUser getAppUser(Integer appUserId); + /** + * 根据城市code获取用户的id集合 + * @param cityCode 城市code + * @return + */ + @PostMapping("/base/appUser/getAppUserIds") + List<Integer> getAppUserIds(String cityCode); } diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/competition/ParticipantClient.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/competition/ParticipantClient.java index 93ade4d..64d6d09 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/competition/ParticipantClient.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/competition/ParticipantClient.java @@ -12,6 +12,11 @@ public interface ParticipantClient { + /** + * 获取参赛人员信息 + * @param id 参赛人员id + * @return + */ @PostMapping("/participant/getParticipant") Participant getParticipant(Integer id); diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java index fc4aeeb..3b04e73 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java @@ -2,10 +2,21 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.communityWorldCup.entity.WorldCupCompetitor; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; /** * @author zhibing.pu * @Date 2024/2/19 15:45 */ public interface WorldCupCompetitorMapper extends BaseMapper<WorldCupCompetitor> { + + /** + * 获取参赛次数排名 + * @param appUserIds + * @return + */ + List<Map<String, Object>> getNumberOfGamesRanked(@Param("appUserIds") List<Integer> appUserIds); } diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupPaymentParticipantMapper.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupPaymentParticipantMapper.java index 43db527..ec5aed5 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupPaymentParticipantMapper.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupPaymentParticipantMapper.java @@ -2,7 +2,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.communityWorldCup.entity.WorldCupPaymentParticipant; +import com.dsh.communityWorldCup.model.MyWorldCupList; +import com.dsh.communityWorldCup.model.WorldCupListVo; import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author zhibing.pu @@ -20,4 +24,12 @@ */ WorldCupPaymentParticipant getWorldCupPaymentParticipant(@Param("worldCupId") Integer worldCupId, @Param("participantType") Integer participantType, @Param("participantId") Integer participantId); + + + /** + * 获取社区世界杯我的报名列表 + * @param myWorldCupList + * @return + */ + List<WorldCupListVo> getMyWorldCupList(@Param("item") MyWorldCupList myWorldCupList); } diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EntrantRank.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EntrantRank.java new file mode 100644 index 0000000..a934e07 --- /dev/null +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EntrantRank.java @@ -0,0 +1,19 @@ +package com.dsh.communityWorldCup.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2024/2/28 14:57 + */ +@Data +@ApiModel +public class EntrantRank { + @ApiModelProperty(value = "参赛人id", required = true, dataType = "int") + private Integer id; + @ApiModelProperty(value = "是否是学员", required = true, dataType = "int") + private Integer isStudent; + private Integer appUserId; +} diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EntrantRankVo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EntrantRankVo.java new file mode 100644 index 0000000..602e636 --- /dev/null +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EntrantRankVo.java @@ -0,0 +1,28 @@ +package com.dsh.communityWorldCup.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2024/2/28 14:52 + */ +@Data +@ApiModel +public class EntrantRankVo { + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("全国排名") + private Integer nationalRank; + @ApiModelProperty("城市名称") + private String cityName; + @ApiModelProperty("城市排名") + private Integer cityRank; + @ApiModelProperty("胜利场次") + private Integer win; + @ApiModelProperty("失败场次") + private Integer lose; + @ApiModelProperty("胜率") + private Double winRate; +} diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupInfo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupInfo.java new file mode 100644 index 0000000..85cd333 --- /dev/null +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupInfo.java @@ -0,0 +1,46 @@ +package com.dsh.communityWorldCup.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2024/2/28 16:49 + */ +@Data +@ApiModel +public class MyWorldCupInfo { + @ApiModelProperty("世界杯id") + private Integer id; + @ApiModelProperty("图片") + private String infoImg; + @ApiModelProperty("名称") + private String name; + @ApiModelProperty("热度") + private Integer heat; + @ApiModelProperty("开始时间") + private String startTime; + @ApiModelProperty("结束时间") + private String endTime; + @ApiModelProperty("报名截止时间") + private String registrationClosingTime; + @ApiModelProperty("报名年龄") + private String age; + @ApiModelProperty("报名性别(0=全部,1=男,2=女)") + private Integer gender; + @ApiModelProperty("参赛地址") + private String address; + @ApiModelProperty("参与赛点") + private String stores; + @ApiModelProperty("比赛费用(现金)") + private Double cash; + @ApiModelProperty("比赛费用(玩湃币)") + private Double paiCoin; + @ApiModelProperty("比赛费用(课时)") + private Double classHour; + @ApiModelProperty("简介") + private String intro; + @ApiModelProperty("富文本") + private String content; +} diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupList.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupList.java new file mode 100644 index 0000000..c12c467 --- /dev/null +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupList.java @@ -0,0 +1,25 @@ +package com.dsh.communityWorldCup.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhibing.pu + * @Date 2024/2/28 16:25 + */ +@Data +@ApiModel +public class MyWorldCupList { + @ApiModelProperty(value = "参赛人id", required = true, dataType = "int") + private Integer id; + @ApiModelProperty(value = "是否是学员", required = true, dataType = "int") + private Integer isStudent; + @ApiModelProperty(value = "页码,首页1", required = true, dataType = "int") + private Integer pageNo; + @ApiModelProperty(value = "每页条数", required = true, dataType = "int") + private Integer pageSize; + @ApiModelProperty(value = "状态(1=未开始,2=进行中)") + private Integer state; + private Integer appUserId; +} diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListVo.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListVo.java index 36a5b79..013d93e 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListVo.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListVo.java @@ -12,7 +12,7 @@ @ApiModel public class WorldCupListVo { @ApiModelProperty("世界杯id") - private Integer id; + private String id; @ApiModelProperty("名称") private String name; @ApiModelProperty("报名截止时间") diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java index 0932996..b88ad1e 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java @@ -2,10 +2,20 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.communityWorldCup.entity.WorldCupCompetitor; +import com.dsh.communityWorldCup.model.EntrantRank; +import com.dsh.communityWorldCup.model.EntrantRankVo; /** * @author zhibing.pu * @Date 2024/2/19 15:47 */ public interface IWorldCupCompetitorService extends IService<WorldCupCompetitor> { + + + /** + * 获取参赛人员名次 + * @param entrantRank + * @return + */ + EntrantRankVo getEntrantRank(EntrantRank entrantRank); } diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupPaymentParticipantService.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupPaymentParticipantService.java index d0e07ce..b40293a 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupPaymentParticipantService.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupPaymentParticipantService.java @@ -2,6 +2,12 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.communityWorldCup.entity.WorldCupPaymentParticipant; +import com.dsh.communityWorldCup.model.MyWorldCupInfo; +import com.dsh.communityWorldCup.model.MyWorldCupList; +import com.dsh.communityWorldCup.model.WorldCupListVo; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; /** * @author zhibing.pu @@ -18,4 +24,20 @@ * @return */ WorldCupPaymentParticipant getWorldCupPaymentParticipant(Integer worldCupId, Integer participantType, Integer participantId); + + + /** + * 获取社区世界杯我的报名列表 + * @param myWorldCupList + * @return + */ + List<WorldCupListVo> getMyWorldCupList(MyWorldCupList myWorldCupList); + + + /** + * 获取已报名的世界杯详情 + * @param id + * @return + */ + MyWorldCupInfo getMyWorldCupInfo(String id); } diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java index 3806327..d4ac4e6 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java @@ -1,10 +1,27 @@ package com.dsh.communityWorldCup.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.communityWorldCup.entity.WorldCupCompetitor; +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.TStudent; +import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient; +import com.dsh.communityWorldCup.feignclient.competition.model.Participant; +import com.dsh.communityWorldCup.feignclient.other.StoreClient; import com.dsh.communityWorldCup.mapper.WorldCupCompetitorMapper; +import com.dsh.communityWorldCup.model.EntrantRank; +import com.dsh.communityWorldCup.model.EntrantRankVo; import com.dsh.communityWorldCup.service.IWorldCupCompetitorService; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.MathContext; +import java.math.RoundingMode; +import java.util.List; +import java.util.Map; /** * @author zhibing.pu @@ -12,4 +29,91 @@ */ @Service public class WorldCupCompetitorServiceImpl extends ServiceImpl<WorldCupCompetitorMapper, WorldCupCompetitor> implements IWorldCupCompetitorService { + + @Resource + private StudentClient studentClient; + + @Resource + private ParticipantClient participantClient; + + @Resource + private AppUserClient appUserClient; + + + + + + /** + * 获取参赛人员名次信息 + * @param entrantRank + * @return + */ + @Override + public EntrantRankVo getEntrantRank(EntrantRank entrantRank) { + EntrantRankVo entrantRankVo = new EntrantRankVo(); + if(entrantRank.getIsStudent() == 0){ + //参赛人员 + Participant participant = participantClient.getParticipant(entrantRank.getId()); + entrantRankVo.setName(participant.getName()); + }else{ + //学员 + TStudent tStudent = studentClient.queryById(entrantRank.getId()); + entrantRankVo.setName(tStudent.getName()); + } + //全国排名---直接数据库分组查询后排序 + entrantRankVo.setNationalRank(0); + List<Map<String, Object>> mapList = this.baseMapper.getNumberOfGamesRanked(null); + 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 num = Integer.valueOf(map.get("num").toString()); + if(null != participantId && participantId.equals(entrantRank.getId()) && participantType.equals(entrantRank.getIsStudent())){ + entrantRankVo.setNationalRank(i + 1); + } + } + /** + * 城市排名 + * 1、先查询出当前用户对应的城市 + * 2、再根据城市查询对应的所有人员 + * 3、再根据查询出来的参赛人分组查询出参赛次数后排序 + */ + entrantRankVo.setCityRank(0); + AppUser appUser = appUserClient.getAppUser(entrantRank.getAppUserId()); + entrantRankVo.setCityName(appUser.getCity()); + List<Integer> appUserIds = appUserClient.getAppUserIds(appUser.getCityCode()); + List<Map<String, Object>> mapList1 = this.baseMapper.getNumberOfGamesRanked(appUserIds); + for (int i = 0; i < mapList1.size(); i++) { + Map<String, Object> map = mapList1.get(i); + Integer participantType = Integer.valueOf(map.get("participantType").toString()); + Integer participantId = Integer.valueOf(map.get("participantId").toString()); + Integer num = Integer.valueOf(map.get("num").toString()); + if(null != participantId && participantId.equals(entrantRank.getId()) && participantType.equals(entrantRank.getIsStudent())){ + entrantRankVo.setCityRank(i + 1); + } + } + QueryWrapper<WorldCupCompetitor> wrapper = new QueryWrapper<>(); + if(entrantRank.getIsStudent() == 0){ + wrapper.eq("participantType", 2); + }else{ + wrapper.eq("participantType", 1); + } + int win = this.count(wrapper.eq("participantId", entrantRank.getId()).eq("matchResult", 1)); + entrantRankVo.setWin(win); + + wrapper = new QueryWrapper<>(); + if(entrantRank.getIsStudent() == 0){ + wrapper.eq("participantType", 2); + }else{ + wrapper.eq("participantType", 1); + } + int lose = this.count(wrapper.eq("participantId", entrantRank.getId()).eq("matchResult", -1)); + entrantRankVo.setLose(lose); + if((win + lose) == 0){ + entrantRankVo.setWinRate(0D); + }else{ + entrantRankVo.setWinRate(new BigDecimal(win).divide(new BigDecimal(win + lose), new MathContext(4, RoundingMode.HALF_EVEN)).multiply(new BigDecimal(100)).doubleValue()); + } + return entrantRankVo; + } } diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java index 003a4ec..c9d0723 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java @@ -3,8 +3,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.communityWorldCup.entity.WorldCupPaymentParticipant; import com.dsh.communityWorldCup.mapper.WorldCupPaymentParticipantMapper; +import com.dsh.communityWorldCup.model.MyWorldCupList; +import com.dsh.communityWorldCup.model.WorldCupListVo; import com.dsh.communityWorldCup.service.IWorldCupPaymentParticipantService; import org.springframework.stereotype.Service; + +import java.util.List; /** * @author zhibing.pu @@ -25,4 +29,18 @@ public WorldCupPaymentParticipant getWorldCupPaymentParticipant(Integer worldCupId, Integer participantType, Integer participantId) { return this.baseMapper.getWorldCupPaymentParticipant(worldCupId, participantType, participantId); } + + + /** + * 获取社区世界杯我的报名列表 + * @param myWorldCupList + * @return + */ + @Override + public List<WorldCupListVo> getMyWorldCupList(MyWorldCupList myWorldCupList) { + int pageNo = (myWorldCupList.getPageNo() - 1) * myWorldCupList.getPageSize(); + myWorldCupList.setPageNo(pageNo); + myWorldCupList.setIsStudent(myWorldCupList.getIsStudent() == 0 ? 2 : 1); + return this.baseMapper.getMyWorldCupList(myWorldCupList); + } } diff --git a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml index c6d5d47..0f696eb 100644 --- a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml +++ b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml @@ -1,6 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.dsh.communityWorldCup.mapper.WorldCupCompetitor"> +<mapper namespace="com.dsh.communityWorldCup.mapper.WorldCupCompetitorMapper"> + <select id="getNumberOfGamesRanked" resultType="map"> + select * from ( + select + CASE WHEN participantType = 2 THEN 0 ELSE 1 END as participantType, + participantId, + 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="item" index="index" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + group by participantType, participantId + ) as aa order by aa.num desc + </select> </mapper> \ No newline at end of file diff --git a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml index 6400680..c8f165c 100644 --- a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml +++ b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml @@ -39,7 +39,7 @@ a.lat, ifnull(b.num, 0) + a.basePeople as heat from t_world_cup a - left join (select worldCupId, count(*) as num from t_world_cup_payment_participant where worldCupPaymentId in (select id from t_world_cup_payment where payStatus = 2 and state = 1) group by worldCupId) b on (a.id = b.worldCupId) + left join (select worldCupId, count(*) as num from t_world_cup_payment_participant where worldCupPaymentId in (select id from t_world_cup_payment where payStatus = 2 and refundTime is null and state = 1) group by worldCupId) b on (a.id = b.worldCupId) where a.status in (1, 2) order by a.createTime desc <if test="null != item.content and '' != item.content"> and a.name like CONCAT('%', #{item.content}, '%') diff --git a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupPaymentParticipantMapper.xml b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupPaymentParticipantMapper.xml index 85cfe5f..f57d0c1 100644 --- a/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupPaymentParticipantMapper.xml +++ b/cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupPaymentParticipantMapper.xml @@ -4,11 +4,35 @@ - <select id="getWorldCupPaymentParticipant" resultType="com.dsh.communityWorldCup.mapper.WorldCupPaymentParticipantMapper"> + <select id="getWorldCupPaymentParticipant" resultType="com.dsh.communityWorldCup.entity.WorldCupPaymentParticipant"> select * from t_world_cup_payment_participant where worldCupId = #{worldCupId} and participantType = #{participantType} and participantId = #{participantId} and worldCupPaymentId in ( select id from t_world_cup_payment where worldCupId = #{worldCupId} and payStatus = 2 and state = 1 ) </select> + + + + <select id="getMyWorldCupList" resultType="com.dsh.communityWorldCup.model.WorldCupListVo"> + select + a.id, + c.name, + DATE_FORMATc.registrationClosingTime, '%Y-%m-%d %H:%i') as registrationClosingTime, + CONCAT(c.startAge, '-', c.endAge) as age, + c.coverImg, + c.intro as content, + c.lon, + c.lat, + ifnull(d.num, 0) + c.basePeople as heat + from t_world_cup_payment_participant a + left join t_world_cup_payment b on (a.worldCupPaymentId = b.id) + left join t_world_cup c on (b.worldCupId = c.id) + left join (select worldCupId, count(*) as num from t_world_cup_payment_participant where worldCupPaymentId in (select id from t_world_cup_payment where payStatus = 2 and refundTime is null and state = 1) group by worldCupId) d on (c.id = d.worldCupId) + where a.participantType = #{item.isStudent} and a.participantId = #{item.id} and b.payStatus = 2 and b.refundTime is null and b.state = 1 + <if test="null != item.state"> + and c.status = #{item.state} + </if> + order by b.createTime desc limit #{item.pageNo}, #{item.pageSize} + </select> </mapper> \ No newline at end of file diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/HomeModule.java b/cloud-server-other/src/main/java/com/dsh/other/entity/HomeModule.java index a6de6ab..6b3ff6f 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/entity/HomeModule.java +++ b/cloud-server-other/src/main/java/com/dsh/other/entity/HomeModule.java @@ -51,33 +51,39 @@ @ApiModelProperty("按钮图片") private String buttonImage; /** - * 跳转模块(0=不跳转,1=加入玩湃,2=开始课程,3=使用福利,4=探索玩湃) - */ - @TableField("jumpModule") - @ApiModelProperty("跳转模块(0=不跳转,1=加入玩湃,2=开始课程,3=使用福利,4=探索玩湃)") - private Integer jumpModule; - /** - * 跳转页面(1=主页,2=课程列表,3=赛事活动列表,4=线上课得积分,5=看视频得奖励,6=预约场地,7=智慧球场,8=成为会员,9=充值中心,10=积分商城,11=本周福利,12=门店列表,13=常见问题,14=公告发布) - */ - @TableField("jumpPage") - @ApiModelProperty("跳转页面(1=主页,2=课程列表,3=赛事活动列表,4=线上课得积分,5=看视频得奖励,6=预约场地,7=智慧球场,8=成为会员,9=充值中心,10=积分商城,11=本周福利,12=门店列表,13=常见问题,14=公告发布)") - private Integer jumpPage; - /** - * 跳转类型(1=主页,2=列表,3=详情,4=限时折扣,5=赠送课时,6=指定折扣) - */ - @TableField("jumpType") - @ApiModelProperty("跳转类型(1=主页,2=列表,3=详情,4=限时折扣,5=赠送课时,6=指定折扣)") - private Integer jumpType; - /** - * 跳转详情id - */ - @TableField("detailID") - @ApiModelProperty("跳转详情id") - private String detailID; - /** * 富文本内容 */ @TableField("content") @ApiModelProperty("富文本内容") private String content; + /** + * 跳转页面id + */ + @TableField("jumpPage") + private Integer jumpPage; + /** + * 跳转模块 + */ + @TableField("model") + private String model; + /** + * 跳转类型 + */ + @TableField("type") + private String type; + /** + * 跳转类型 + */ + @TableField("turnId") + private String turnId; + /** + * 跳转页面 + */ + @TableField("page") + private String page; + /** + * 跳转类型id + */ + @TableField("typeId") + private Integer typeId; } -- Gitblit v1.7.1