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 ;
@ApiModelProperty("总人数")
private int totalMembers ;
@ApiModelProperty("分组信息")
private List<Group> groups ;
@ApiModelProperty("未开始")
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
@ApiModel("未开始")
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 -> {
gameMessage.setType(WebConstant.Message_Type.ChangeStatus.phase);
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
private GameRecordDao gameRecordDao;
@Autowired
private GameGroupDao gameGroupDao;
@Autowired
private GameActivityRuleDao activityRuleDao;
@Autowired
private GameActivityPrizeDao activityPrizeDao;
@ -111,7 +113,18 @@ public class ScreenService implements IScreenService{
gameRecord.setUrl(WebConstant.TEST_URL_GAME + gameType.getScreenUrl() + "?id="+gameRecord.getId());
gameRecord.setQrCodeUrl(WebConstant.TEST_URL_GAME + gameRecord.getId() + File.separator + gameType.getClientUrl());
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、查询该游戏的规则
List<String> ruleList = getGameActivityRule(gameType.getId());
//6、返回
@ -170,9 +183,23 @@ public class ScreenService implements IScreenService{
gameuserJoinExample.createCriteria().andRecordIdEqualTo(memberRecord.getMemberRecord());
totalUsers = gameUserJoinDao.countByExample(gameuserJoinExample);
}
//总人数
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()){
case 0:
@ -214,6 +241,8 @@ public class ScreenService implements IScreenService{
return gameInfoVo;
}
/**
* 获取游戏状态
*/
@ -270,6 +299,28 @@ public class ScreenService implements IScreenService{
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

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

@ -166,9 +166,13 @@ public class TaskDto {
private String text;
}
@ApiModel
@Data
public static class TaskSubTimeId {
@ApiModelProperty("任务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());
Boolean isBelongRole = proMemberService.userIsBelongRole(currentUserId, role.getId());
if (!role.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase) && !isBelongRole) {
log.info("此用户不是该任务的检查人:{}",role);
log.info("此用户不是该任务的负责人:{}",role);
throw new BaseException(CodeEnum.IS_NOT_EXECUTOR);
}
//查找此用户在任务下的成员
@ -133,26 +133,26 @@ public class TaskSubTimeService implements ITaskSubTimeService {
if(ObjectUtil.isNull(subTimeMember)){
subTimeMember = new ProSubTimeMember();
subTimeMember.setId(snowflake.nextId());
subTimeMember.setComplatedStatus((byte) 2);
subTimeMember.setComplatedStatus((byte) subTimeId.getCompletedStatus());
subTimeMember.setMemberId(member.getId());
subTimeMember.setTaskSubTimeId(subTimeId.getId());
subTimeMember.setRealFinishTime(System.currentTimeMillis());
proSubTimeMemberDao.insertSelective(subTimeMember);
}else {
subTimeMember.setComplatedStatus((byte) 2);
subTimeMember.setComplatedStatus((byte) subTimeId.getCompletedStatus());
subTimeMember.setRealFinishTime(System.currentTimeMillis());
proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember);
}
}else {
ProSubTimeMember subTimeMember = isFinishTask(member.getId(),subTimeId.getId());
if(ObjectUtil.isNotNull(subTimeMember)){
subTimeMember.setComplatedStatus((byte) 2);
subTimeMember.setComplatedStatus((byte) subTimeId.getCompletedStatus());
subTimeMember.setRealFinishTime(System.currentTimeMillis());
proSubTimeMemberDao.updateByPrimaryKeySelective(subTimeMember);
}else {
subTimeMember = new ProSubTimeMember();
subTimeMember.setId(snowflake.nextId());
subTimeMember.setComplatedStatus((byte) 2);
subTimeMember.setComplatedStatus((byte) subTimeId.getCompletedStatus());
subTimeMember.setTaskSubTimeId(subTimeId.getId());
subTimeMember.setMemberId(member.getId());
subTimeMember.setRealFinishTime(System.currentTimeMillis());

Loading…
Cancel
Save