From 0934421b0d22906a3d9006f101d6af5715b7e3fd Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Wed, 19 Aug 2020 14:41:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E7=BB=84=E5=A4=B4=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/game/api/ClientController.java | 10 +++++++--- .../java/com/ccsens/game/bean/vo/ScreenVo.java | 2 ++ .../com/ccsens/game/service/ClientService.java | 16 +++++++++++++++- .../com/ccsens/game/service/ScreenService.java | 8 +++++--- util/src/main/java/com/ccsens/util/CodeEnum.java | 1 + 5 files changed, 30 insertions(+), 7 deletions(-) diff --git a/game/src/main/java/com/ccsens/game/api/ClientController.java b/game/src/main/java/com/ccsens/game/api/ClientController.java index 497a0cde..766a2e57 100644 --- a/game/src/main/java/com/ccsens/game/api/ClientController.java +++ b/game/src/main/java/com/ccsens/game/api/ClientController.java @@ -35,9 +35,10 @@ public class ClientController { @ApiImplicitParams({ }) @RequestMapping(value = "groupMembers", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse groupMembers(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + public JsonResponse> groupMembers(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { log.info("查看组内排行榜:{}",params); PageInfo rankingAll = clientService.groupMembers(params.getParam()); + log.info("查询组内排行榜结束"); return JsonResponse.newInstance().ok(rankingAll); } @@ -48,6 +49,7 @@ public class ClientController { public JsonResponse members(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { log.info("查看全部排行榜:{}",params); ClientVo.RankingAll rankingAll = clientService.getRankingAll(params); + log.info("查询排行榜结束"); return JsonResponse.newInstance().ok(rankingAll); } @@ -59,6 +61,7 @@ public class ClientController { public JsonResponse joinGame(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { log.info("参加游戏:{}",params); ClientVo.Join join = clientService.join(params.getParam(), params.getUserId()); + log.info("参加游戏结果:{}", join); return JsonResponse.newInstance().ok(join); } @@ -68,7 +71,6 @@ public class ClientController { @RequestMapping(value = "activityRule", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) public JsonResponse> getGameActivityRule(@ApiParam @RequestParam Long recordId) throws Exception { log.info("获取游戏规则:{}",recordId); - List gameActivityRule = screenService.getGameActivityRule(screenService.getGameTypeId(recordId)); return JsonResponse.newInstance().ok(gameActivityRule); } @@ -100,6 +102,7 @@ public class ClientController { public JsonResponse> getGroupByRecordId(@ApiParam @RequestParam Long recordId) throws Exception { log.info("根据游戏id获取分组信息:{}",recordId); List groupList = screenService.getGroupByRecordId(recordId); + log.info("分组查询结束"); return JsonResponse.newInstance().ok(groupList); } @@ -108,8 +111,9 @@ public class ClientController { }) @RequestMapping(value = "task", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) public JsonResponse getRecordByTaskId(@ApiParam @RequestParam Long taskId,String gameType) throws Exception { - log.info("根据游戏id获取分组信息:{}",taskId); + log.info("根据任务id获取游戏记录id:{}",taskId); ScreenVo.RecordInfo recordInfo = screenService.getRecordByTaskId(taskId,gameType); + log.info("游戏信息:{}", recordInfo); return JsonResponse.newInstance().ok(recordInfo); } } diff --git a/game/src/main/java/com/ccsens/game/bean/vo/ScreenVo.java b/game/src/main/java/com/ccsens/game/bean/vo/ScreenVo.java index 05472f35..2c38b461 100644 --- a/game/src/main/java/com/ccsens/game/bean/vo/ScreenVo.java +++ b/game/src/main/java/com/ccsens/game/bean/vo/ScreenVo.java @@ -53,6 +53,8 @@ public class ScreenVo { private Long groupId ; @ApiModelProperty("分组名称") private String groupName ; + @ApiModelProperty("头像") + private String headPortraitUrl; @ApiModelProperty("该组参赛总人数") private int totalGroupMembers ; } diff --git a/game/src/main/java/com/ccsens/game/service/ClientService.java b/game/src/main/java/com/ccsens/game/service/ClientService.java index 297cf94f..516c35c4 100644 --- a/game/src/main/java/com/ccsens/game/service/ClientService.java +++ b/game/src/main/java/com/ccsens/game/service/ClientService.java @@ -76,7 +76,7 @@ public class ClientService implements IClientService { //获取游戏的购买记录和类型 // TODO 暂时没有购买相关的,先不查询 // GameUserPay gameUserPay = gameUserPayDao.selectByPrimaryKey(gameRecord.getUserPayId()); - Boolean isGroup = gameRecord.getGameGroup() == GameConstant.GAME_GROUP; + boolean isGroup = gameRecord.getGameGroup() == GameConstant.GAME_GROUP; //根据游戏ID和用户ID查询用户是否加入 GameUserJoinExample example = new GameUserJoinExample(); @@ -105,6 +105,20 @@ public class ClientService implements IClientService { joinVo.setCompletedData(completedData); return joinVo; } + + // 判断是否达到组内上限 +// if (gameRecord.getMemberLimit()) + if (isGroup) { + GameUserJoinGroupExample groupExample = new GameUserJoinGroupExample(); + groupExample.createCriteria().andGameGroupIdEqualTo(join.getGroupId()); + long count = gameUserJoinGroupDao.countByExample(groupExample); + log.info("组内人数:{},上限:{}", count, gameRecord.getMemberLimit()); + if (count >= gameRecord.getMemberLimit()) { + throw new BaseException(CodeEnum.GROUP_MEMBER_LIMIT); + } + } + + //准备中 boolean prepare = gameRecord.getGameStatus().byteValue() == GameConstant.GAME_PREPARATION; //进行中 diff --git a/game/src/main/java/com/ccsens/game/service/ScreenService.java b/game/src/main/java/com/ccsens/game/service/ScreenService.java index bb7f3a85..7b9e5eab 100644 --- a/game/src/main/java/com/ccsens/game/service/ScreenService.java +++ b/game/src/main/java/com/ccsens/game/service/ScreenService.java @@ -232,7 +232,7 @@ public class ScreenService implements IScreenService { } //添加分组信息 if(gameRecord.getGameGroup() == 1){ - for (int i = 8; i < sheet.getLastRowNum(); i++){ + for (int i = 8; i <= sheet.getLastRowNum(); i++){ XSSFRow groupRow = sheet.getRow(i); if(ObjectUtil.isNotNull(groupRow)){ String groupName = ExcelUtil.getCellValue(groupRow.getCell(0)); @@ -541,7 +541,7 @@ public class ScreenService implements IScreenService { break; case GameConstant.GAME_PROCESSING: //查询游戏是否有分组 - if (gameType.getIsGroup() == 0) { + if (gameRecord.getGameGroup() == GameConstant.GAME_SINGLE) { //普通游戏返回前十名的信息 ScreenVo.ProcessingData processingData = new ScreenVo.ProcessingData(); // 查询前十名(列表顺序即前十名顺序) @@ -550,7 +550,8 @@ public class ScreenService implements IScreenService { gameStatusVo.setProcessingData(processingData); } else { //分组游戏则返回每个分组的信息 - List groupVoList = getGroupScore(gameRecord); +// List groupVoList = getGroupScore(gameRecord); + List groupVoList = groupVo; gameStatusVo.setProcessingData(groupVoList); } break; @@ -1170,6 +1171,7 @@ public class ScreenService implements IScreenService { ScreenVo.Group group = new ScreenVo.Group(); group.setGroupId(gameGroup.getId()); group.setGroupName(gameGroup.getName()); + group.setHeadPortraitUrl(gameGroup.getHeadPortraitUrl()); groupList.add(group); } } diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index c37eda4a..d760206f 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -138,6 +138,7 @@ public enum CodeEnum { VOTE_COMPLETED(116,"投票已结束",true), VOTE_NOT_START(117,"投票未开始",true), NOT_CONFIG_OR_ERR(118,"缺少配置信息,或配置信息异常",true), + GROUP_MEMBER_LIMIT(119,"当前组内人员已满,请选择其他组",true), ;