Browse Source

创建游戏分组

master
zhangye 6 years ago
parent
commit
1bafd02de7
  1. 12
      game/src/main/java/com/ccsens/game/bean/vo/ScreenVo.java
  2. 9
      game/src/main/java/com/ccsens/game/persist/dao/GameGroupDao.java
  3. 4
      game/src/main/java/com/ccsens/game/service/MessageService.java
  4. 55
      game/src/main/java/com/ccsens/game/service/ScreenService.java
  5. 4
      tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java
  6. 10
      tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java

12
game/src/main/java/com/ccsens/game/bean/vo/ScreenVo.java

@ -34,6 +34,8 @@ public class ScreenVo {
private int usedCount ; private int usedCount ;
@ApiModelProperty("总人数") @ApiModelProperty("总人数")
private int totalMembers ; private int totalMembers ;
@ApiModelProperty("分组信息")
private List<Group> groups ;
@ApiModelProperty("未开始") @ApiModelProperty("未开始")
private PendingData pendingData; private PendingData pendingData;
@ -46,6 +48,16 @@ public class ScreenVo {
} }
@Data
@ApiModel("准备中")
public static class Group{
@ApiModelProperty("分组id")
private Long groupId ;
@ApiModelProperty("分组名称")
private String groupName ;
}
@Data @Data
@ApiModel("未开始") @ApiModel("未开始")
public static class PendingData{ public static class PendingData{

9
game/src/main/java/com/ccsens/game/persist/dao/GameGroupDao.java

@ -0,0 +1,9 @@
package com.ccsens.game.persist.dao;
import com.ccsens.game.bean.po.GameGroup;
import com.ccsens.game.persist.mapper.GameGroupMapper;
import org.springframework.stereotype.Repository;
@Repository
public interface GameGroupDao extends GameGroupMapper {
}

4
game/src/main/java/com/ccsens/game/service/MessageService.java

@ -109,7 +109,9 @@ public class MessageService implements IMessageService {
gameMessages.forEach(gameMessage -> { gameMessages.forEach(gameMessage -> {
gameMessage.setType(WebConstant.Message_Type.ChangeStatus.phase); gameMessage.setType(WebConstant.Message_Type.ChangeStatus.phase);
log.info("============ {}",gameMessage); log.info("============ {}",gameMessage);
sendTo(gameMessage.getUserId().toString(), gameMessage); if(!sendTo(gameMessage.getUserId().toString(), gameMessage)){
return;
}
}); });
} }
} }

55
game/src/main/java/com/ccsens/game/service/ScreenService.java

@ -48,6 +48,8 @@ public class ScreenService implements IScreenService{
@Autowired @Autowired
private GameRecordDao gameRecordDao; private GameRecordDao gameRecordDao;
@Autowired @Autowired
private GameGroupDao gameGroupDao;
@Autowired
private GameActivityRuleDao activityRuleDao; private GameActivityRuleDao activityRuleDao;
@Autowired @Autowired
private GameActivityPrizeDao activityPrizeDao; private GameActivityPrizeDao activityPrizeDao;
@ -111,7 +113,18 @@ public class ScreenService implements IScreenService{
gameRecord.setUrl(WebConstant.TEST_URL_GAME + gameType.getScreenUrl() + "?id="+gameRecord.getId()); gameRecord.setUrl(WebConstant.TEST_URL_GAME + gameType.getScreenUrl() + "?id="+gameRecord.getId());
gameRecord.setQrCodeUrl(WebConstant.TEST_URL_GAME + gameRecord.getId() + File.separator + gameType.getClientUrl()); gameRecord.setQrCodeUrl(WebConstant.TEST_URL_GAME + gameRecord.getId() + File.separator + gameType.getClientUrl());
gameRecordDao.insertSelective(gameRecord); gameRecordDao.insertSelective(gameRecord);
//4、 判断是否有分组 //4、 判断是否有分组,如果是分组游戏,添加两条分组信息
if(gameType.getIsGroup() == 1){
GameGroup gameGroupBlue = new GameGroup();
gameGroupBlue.setId(snowflake.nextId());
gameGroupBlue.setRecordId(gameRecord.getId());
gameGroupBlue.setName("蓝队");
GameGroup gameGroupRed = new GameGroup();
gameGroupRed.setId(snowflake.nextId());
gameGroupRed.setRecordId(gameRecord.getId());
gameGroupRed.setName("红队");
}
//5、查询该游戏的规则 //5、查询该游戏的规则
List<String> ruleList = getGameActivityRule(gameType.getId()); List<String> ruleList = getGameActivityRule(gameType.getId());
//6、返回 //6、返回
@ -170,9 +183,23 @@ public class ScreenService implements IScreenService{
gameuserJoinExample.createCriteria().andRecordIdEqualTo(memberRecord.getMemberRecord()); gameuserJoinExample.createCriteria().andRecordIdEqualTo(memberRecord.getMemberRecord());
totalUsers = gameUserJoinDao.countByExample(gameuserJoinExample); totalUsers = gameUserJoinDao.countByExample(gameuserJoinExample);
} }
//总人数
gameInfoVo.setTotalMembers(totalUsers == null ? 0 : totalUsers.intValue()); gameInfoVo.setTotalMembers(totalUsers == null ? 0 : totalUsers.intValue());
//获取分组信息
GameGroupExample gameGroupExample = new GameGroupExample();
gameGroupExample.createCriteria().andRecordIdEqualTo(gameRecord.getId());
List<GameGroup> gameGroupList = gameGroupDao.selectByExample(gameGroupExample);
if(CollectionUtil.isNotEmpty(gameGroupList)){
List<ScreenVo.Group> groups = new ArrayList<>();
for(GameGroup gameGroup:gameGroupList){
ScreenVo.Group group = new ScreenVo.Group();
group.setGroupId(gameGroup.getId());
group.setGroupName(gameGroup.getName());
groups.add(group);
}
gameInfoVo.setGroups(groups);
}
switch (gameInfoVo.getGameStatus()){ switch (gameInfoVo.getGameStatus()){
case 0: case 0:
@ -214,6 +241,8 @@ public class ScreenService implements IScreenService{
return gameInfoVo; return gameInfoVo;
} }
/** /**
* 获取游戏状态 * 获取游戏状态
*/ */
@ -270,6 +299,28 @@ public class ScreenService implements IScreenService{
return gameStatusVo; return gameStatusVo;
} }
/**
* 结束时查询胜利组的信息总分数总次数平均以及前十名
*/
private ScreenVo.CompletedData getCompletedDataByWin(Long gameRecordId) {
//1、分别查询redis内每个队伍的总分,
//2、查询获胜队伍的信息
//3、redis内没有则查询数据库
//查询分组信息
GameGroupExample gameGroupExample = new GameGroupExample();
gameGroupExample.createCriteria().andRecordIdEqualTo(gameRecordId);
List<GameGroup> gameGroupList = gameGroupDao.selectByExample(gameGroupExample);
if(CollectionUtil.isNotEmpty(gameGroupList)){
//分别查找两个队伍的总分
}
//4、分别查询每个队伍的总分
//5、获取获胜队伍的信息
return null;
}
/** /**
* 查询总分数总次数平均以及前十名 * 查询总分数总次数平均以及前十名
* @param gameRecordId * @param gameRecordId

4
tall/src/main/java/com/ccsens/tall/bean/dto/TaskDto.java

@ -166,9 +166,13 @@ public class TaskDto {
private String text; private String text;
} }
@ApiModel
@Data @Data
public static class TaskSubTimeId { public static class TaskSubTimeId {
@ApiModelProperty("任务id")
private Long id; private Long id;
@ApiModelProperty("任务完成状态0未完成 1进行中 2已完成")
private int completedStatus;
} }
} }

10
tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java

@ -91,7 +91,7 @@ public class TaskSubTimeService implements ITaskSubTimeService {
ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole()); ProRole role = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole());
Boolean isBelongRole = proMemberService.userIsBelongRole(currentUserId, role.getId()); Boolean isBelongRole = proMemberService.userIsBelongRole(currentUserId, role.getId());
if (!role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) && !isBelongRole) { if (!role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) && !isBelongRole) {
log.info("此用户不是该任务的检查人:{}",role); log.info("此用户不是该任务的负责人:{}",role);
throw new BaseException(CodeEnum.IS_NOT_EXECUTOR); throw new BaseException(CodeEnum.IS_NOT_EXECUTOR);
} }
//查找此用户在任务下的成员 //查找此用户在任务下的成员
@ -133,26 +133,26 @@ public class TaskSubTimeService implements ITaskSubTimeService {
if(ObjectUtil.isNull(subTimeMember)){ if(ObjectUtil.isNull(subTimeMember)){
subTimeMember = new ProSubTimeMember(); subTimeMember = new ProSubTimeMember();
subTimeMember.setId(snowflake.nextId()); subTimeMember.setId(snowflake.nextId());
subTimeMember.setComplatedStatus((byte) 2); subTimeMember.setComplatedStatus((byte) subTimeId.getCompletedStatus());
subTimeMember.setMemberId(member.getId()); subTimeMember.setMemberId(member.getId());
subTimeMember.setTaskSubTimeId(subTimeId.getId()); subTimeMember.setTaskSubTimeId(subTimeId.getId());
subTimeMember.setRealFinishTime(System.currentTimeMillis()); subTimeMember.setRealFinishTime(System.currentTimeMillis());
proSubTimeMemberDao.insertSelective(subTimeMember); proSubTimeMemberDao.insertSelective(subTimeMember);
}else { }else {
subTimeMember.setComplatedStatus((byte) 2); subTimeMember.setComplatedStatus((byte) subTimeId.getCompletedStatus());
subTimeMember.setRealFinishTime(System.currentTimeMillis()); subTimeMember.setRealFinishTime(System.currentTimeMillis());
proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember); proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember);
} }
}else { }else {
ProSubTimeMember subTimeMember = isFinishTask(member.getId(),subTimeId.getId()); ProSubTimeMember subTimeMember = isFinishTask(member.getId(),subTimeId.getId());
if(ObjectUtil.isNotNull(subTimeMember)){ if(ObjectUtil.isNotNull(subTimeMember)){
subTimeMember.setComplatedStatus((byte) 2); subTimeMember.setComplatedStatus((byte) subTimeId.getCompletedStatus());
subTimeMember.setRealFinishTime(System.currentTimeMillis()); subTimeMember.setRealFinishTime(System.currentTimeMillis());
proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember); proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember);
}else { }else {
subTimeMember = new ProSubTimeMember(); subTimeMember = new ProSubTimeMember();
subTimeMember.setId(snowflake.nextId()); subTimeMember.setId(snowflake.nextId());
subTimeMember.setComplatedStatus((byte) 2); subTimeMember.setComplatedStatus((byte) subTimeId.getCompletedStatus());
subTimeMember.setTaskSubTimeId(subTimeId.getId()); subTimeMember.setTaskSubTimeId(subTimeId.getId());
subTimeMember.setMemberId(member.getId()); subTimeMember.setMemberId(member.getId());
subTimeMember.setRealFinishTime(System.currentTimeMillis()); subTimeMember.setRealFinishTime(System.currentTimeMillis());

Loading…
Cancel
Save