Browse Source

参加游戏

master
6 years ago
parent
commit
3ddb700784
  1. 10
      game/src/main/java/com/ccsens/game/bean/dto/ClientDto.java
  2. 2
      game/src/main/java/com/ccsens/game/bean/vo/ClientVo.java
  3. 56
      game/src/main/java/com/ccsens/game/service/ClientService.java
  4. 11
      game/src/main/java/com/ccsens/game/service/IClientService.java
  5. 21
      game/src/main/java/com/ccsens/game/util/GameConstant.java

10
game/src/main/java/com/ccsens/game/bean/dto/ClientDto.java

@ -1,8 +1,11 @@
package com.ccsens.game.bean.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @description:
* @author: wuHuiJuan
@ -13,6 +16,11 @@ public class ClientDto {
@Data
@ApiModel("ClientDtoJoin")
public static class Join{
@NotNull(message = "请选择正确的游戏")
@ApiModelProperty("游戏记录ID")
private Long urlId;
@NotNull(message = "请选择的时间")
@ApiModelProperty("本地时间")
private Long localTime;
}
}

2
game/src/main/java/com/ccsens/game/bean/vo/ClientVo.java

@ -13,6 +13,8 @@ public class ClientVo {
@Data
@ApiModel("ClientVoJoin")
public static class Join{
@ApiModelProperty("游戏状态")
private Byte gameStatus;
}
}

56
game/src/main/java/com/ccsens/game/service/ClientService.java

@ -1,9 +1,65 @@
package com.ccsens.game.service;
import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.game.bean.dto.ClientDto;
import com.ccsens.game.bean.po.GameMemberJoin;
import com.ccsens.game.bean.po.GameMemberJoinExample;
import com.ccsens.game.bean.po.GameRecord;
import com.ccsens.game.bean.vo.ClientVo;
import com.ccsens.game.persist.dao.GameMemberJoinDao;
import com.ccsens.game.persist.dao.GameRecordDao;
import com.ccsens.game.util.GameConstant;
import com.ccsens.util.CodeEnum;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @description:
* @author: wuHuiJuan
* @create: 2019/12/26 15:01
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class ClientService implements IClientService {
@Autowired
private GameMemberJoinDao gameMemberJoinDao;
@Autowired
private GameRecordDao gameRecordDao;
@Override
public ClientVo.Join join(ClientDto.Join join, Long userId) {
log.info("加入游戏:{}, userId:{}", join, userId);
ClientVo.Join joinVo = new ClientVo.Join();
//根据游戏ID和用户ID查询用户是否加入
GameMemberJoinExample example = new GameMemberJoinExample();
example.createCriteria().andRecordIdEqualTo(join.getUrlId()).andMemberIdEqualTo(userId);
List<GameMemberJoin> gameMemberJoins = gameMemberJoinDao.selectByExample(example);
if (CollectionUtil.isNotEmpty(gameMemberJoins)) {
Long localStartTime = gameMemberJoins.get(0).getLocalStartTime();
log.info("用户已加入该游戏,直接返回开始时间{}", localStartTime);
joinVo.setStartLocalTime(localStartTime);
return joinVo;
}
//获取游戏信息
GameRecord gameRecord = gameRecordDao.selectByPrimaryKey(join.getUrlId());
log.info("游戏信息:{}", gameRecord);
if (gameRecord == null) {
log.info("未找到游戏信息");
throw new BaseException(CodeEnum.PARAM_ERROR);
}
//判断游戏状态
gameRecord.getGameStatus().byteValue() == GameConstant.GAME_END
return null;
}
}

11
game/src/main/java/com/ccsens/game/service/IClientService.java

@ -1,5 +1,8 @@
package com.ccsens.game.service;
import com.ccsens.game.bean.dto.ClientDto;
import com.ccsens.game.bean.vo.ClientVo;
/**
* @description:
* @author: wuHuiJuan
@ -7,5 +10,11 @@ package com.ccsens.game.service;
*/
public interface IClientService {
/**
* 加入游戏
* @param join
* @param userId
* @return
*/
ClientVo.Join join(ClientDto.Join join, Long userId);
}

21
game/src/main/java/com/ccsens/game/util/GameConstant.java

@ -0,0 +1,21 @@
package com.ccsens.game.util;
/**
* @description:
* @author: wuHuiJuan
* @create: 2019/12/26 17:32
*/
public class GameConstant {
/**游戏状态:未开始*/
public static final byte GAME_NO_START = 0;
/**游戏状态:准备中*/
public static final byte GAME_PREPARATION = 1;
/**游戏状态:进行中*/
public static final byte GAME_STARTED = 2;
/**游戏状态:已结束*/
public static final byte GAME_END = 3;
}
Loading…
Cancel
Save