Browse Source

改变状态

master
zhangye 6 years ago
parent
commit
8fb2258227
  1. 2
      game/src/main/java/com/ccsens/game/api/ScreenController.java
  2. 5
      game/src/main/java/com/ccsens/game/bean/dto/message/AuthMessageDto.java
  3. 32
      game/src/main/java/com/ccsens/game/bean/dto/message/AuthMessageWithAnswerDto.java
  4. 35
      game/src/main/java/com/ccsens/game/bean/dto/message/ChangeStatusMessageDto.java
  5. 6
      game/src/main/java/com/ccsens/game/bean/dto/message/ChromeMessageDto.java
  6. 10
      game/src/main/java/com/ccsens/game/bean/dto/message/GameMessageCountIn.java
  7. 3
      game/src/main/java/com/ccsens/game/bean/dto/message/GameMessageCountOut.java
  8. 31
      game/src/main/java/com/ccsens/game/bean/dto/message/GameMessageWithChangeStatusIn.java
  9. 33
      game/src/main/java/com/ccsens/game/bean/dto/message/GameMessageWithChangeStatusOut.java
  10. 29
      game/src/main/java/com/ccsens/game/netty/ChannelManager.java
  11. 10
      game/src/main/java/com/ccsens/game/netty/WrapperedChannel.java
  12. 54
      game/src/main/java/com/ccsens/game/netty/wsserver/WebSocketDecoder.java
  13. 1
      game/src/main/java/com/ccsens/game/netty/wsserver/WebSocketEncoder.java
  14. 11
      game/src/main/java/com/ccsens/game/netty/wsserver/WebSocketHandler.java
  15. 18
      game/src/main/java/com/ccsens/game/service/ClientService.java
  16. 3
      game/src/main/java/com/ccsens/game/service/IClientService.java
  17. 7
      game/src/main/java/com/ccsens/game/service/IMessageService.java
  18. 42
      game/src/main/java/com/ccsens/game/service/MessageService.java
  19. 2
      game/src/main/java/com/ccsens/game/service/ScreenService.java
  20. 22
      tall/src/main/java/com/ccsens/tall/service/TaskSubTimeService.java
  21. 21
      util/src/main/java/com/ccsens/util/WebConstant.java

2
game/src/main/java/com/ccsens/game/api/ScreenController.java

@ -26,7 +26,7 @@ public class ScreenController {
@Autowired
private IScreenService screenService;
// @MustLogin
@MustLogin
@ApiOperation(value = "获取大屏路径", notes = "")
@RequestMapping(value = "url", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<ScreenVo.UrlVo> getScreenUrl(@ApiParam @Validated @RequestBody QueryDto<ScreenDto.MemberGame> params) throws Exception {

5
game/src/main/java/com/ccsens/game/bean/dto/message/AuthMessageDto.java

@ -10,7 +10,7 @@ public class AuthMessageDto extends BaseMessageDto {
@Setter
@Getter
public static class Data{
private Long id;
private String id;
private String userId;
private String channelId;
private String token;
@ -24,11 +24,12 @@ public class AuthMessageDto extends BaseMessageDto {
setTime(System.currentTimeMillis());
}
public AuthMessageDto(String userId, String channelId){
public AuthMessageDto(String userId, String channelId,String recordId){
this();
Data d = new Data();
d.setUserId(userId);
d.setChannelId(channelId);
d.setId(recordId);
setData(d);
}
}

32
game/src/main/java/com/ccsens/game/bean/dto/message/AuthMessageWithAnswerDto.java

@ -0,0 +1,32 @@
package com.ccsens.game.bean.dto.message;
import com.ccsens.util.WebConstant;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Data
public class AuthMessageWithAnswerDto extends BaseMessageDto{
@Setter
@Getter
public static class Data{
private Boolean success;
private String phase;
}
private Data data;
public AuthMessageWithAnswerDto(){
setType(WebConstant.Message_Type.Auth.phase);
setEvent(WebConstant.Message_Auth_Event.Answer.phase);
setTime(System.currentTimeMillis());
}
public AuthMessageWithAnswerDto(Boolean success, String phase){
this();
Data d = new Data();
d.setSuccess(success);
d.setPhase(phase);
setData(d);
}
}

35
game/src/main/java/com/ccsens/game/bean/dto/message/ChangeStatusMessageDto.java

@ -0,0 +1,35 @@
package com.ccsens.game.bean.dto.message;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class ChangeStatusMessageDto {
@Data
@ApiModel("开始")
public static class PendingData{
@ApiModelProperty("活动规则")
private Long startLocalTime ;
@ApiModelProperty("活动奖品")
private Long endLocalTime;
}
@Data
@ApiModel("结束")
public static class CompletedData{
@ApiModelProperty("总人数")
private int totalMembers ;
@ApiModelProperty("总次数")
private int totalTimes;
@ApiModelProperty("总分数")
private int totalScore;
@ApiModelProperty("平均每人多少分")
private int averageTimes;
@ApiModelProperty("平均次数超过百分之多少人")
private int over;
}
}

6
game/src/main/java/com/ccsens/game/bean/dto/message/ChromeMessageDto.java

@ -13,6 +13,8 @@ public class ChromeMessageDto extends BaseMessageDto{
@Setter
@Getter
public static class Data{
private Long projectId;
private Long recordId;
private String url;
}
private Data data;
@ -22,11 +24,13 @@ public class ChromeMessageDto extends BaseMessageDto{
setTime(System.currentTimeMillis());
}
public ChromeMessageDto(String url){
public ChromeMessageDto(String url,Long recordId, Long projectId){
this();
if(data == null){
data = new Data();
}
data.setUrl(url);
data.setRecordId(recordId);
data.setProjectId(projectId);
}
}

10
game/src/main/java/com/ccsens/game/bean/dto/message/GameMessageCountIn.java

@ -1,5 +1,15 @@
package com.ccsens.game.bean.dto.message;
import com.ccsens.util.WebConstant;
import lombok.Data;
@Data
public class GameMessageCountIn extends BaseMessageDto{
public GameMessageCountIn(){
setType(WebConstant.Message_Type.Count.phase);
setTime(System.currentTimeMillis());
}
}

3
game/src/main/java/com/ccsens/game/bean/dto/message/GameMessageCountOut.java

@ -16,8 +16,7 @@ public class GameMessageCountOut extends BaseMessageDto {
private Data data;
public GameMessageCountOut(){
setType(WebConstant.Message_Type.Game.phase);
setEvent(WebConstant.Message_Url_Event.Url.phase);
setType(WebConstant.Message_Type.Count.phase);
setTime(System.currentTimeMillis());
}

31
game/src/main/java/com/ccsens/game/bean/dto/message/GameMessageWithChangeStatusIn.java

@ -0,0 +1,31 @@
package com.ccsens.game.bean.dto.message;
import com.ccsens.util.WebConstant;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Data
public class GameMessageWithChangeStatusIn extends BaseMessageDto{
@Setter
@Getter
public static class Data{
private String recordId;
private int gameStatus;
}
private Data data;
public GameMessageWithChangeStatusIn(){
setType(WebConstant.Message_Type.ChangeStatus.phase);
setTime(System.currentTimeMillis());
}
public GameMessageWithChangeStatusIn(String recordId, int gameStatus){
this();
Data d = new Data();
d.setRecordId(recordId);
d.setGameStatus(gameStatus);
setData(d);
}
}

33
game/src/main/java/com/ccsens/game/bean/dto/message/GameMessageWithChangeStatusOut.java

@ -0,0 +1,33 @@
package com.ccsens.game.bean.dto.message;
import com.ccsens.util.WebConstant;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Data
public class GameMessageWithChangeStatusOut extends BaseMessageDto{
@Setter
@Getter
public static class Data{
private Long recordId;
private int gameStatus;
private ChangeStatusMessageDto changeStatusMessageDto;
}
private Data data;
public GameMessageWithChangeStatusOut(){
setType(WebConstant.Message_Type.ChangeStatus.phase);
setTime(System.currentTimeMillis());
}
public GameMessageWithChangeStatusOut(Long recordId,int gameStatus,ChangeStatusMessageDto changeStatusMessageDto){
this();
Data d = new Data();
d.setRecordId(recordId);
d.setGameStatus(gameStatus);
d.setChangeStatusMessageDto(changeStatusMessageDto);
setData(d);
}
}

29
game/src/main/java/com/ccsens/game/netty/ChannelManager.java

@ -95,6 +95,30 @@ public class ChannelManager {
}
}
/**
* 手机端用户游戏认证
* @param channel 连接
* @param userId 用户ID
* @param major 客户端主版本号
* @param minor 客户端次版本号
* @param minor 用户参加的游戏id
*/
public static synchronized void authChannel(Channel channel,String userId,Integer major,Integer minor,String recordId){
logger.debug("Invoke authedChannels({},{},{},{})",channel.id().asLongText(),userId,major,minor);
major = major != null ? major : 0;
minor = minor != null ? minor : 0;
WrapperedChannel wrapperedChannel = rawChannels.get(channel);
if(wrapperedChannel != null){
wrapperedChannel.whenAuthed(userId,major,minor,recordId);
Set<WrapperedChannel> authedWchannelSet = authedChannels.computeIfAbsent(userId, k -> new HashSet<>());
authedWchannelSet.add(wrapperedChannel);
logger.debug("Authed channel {} with user {}", channel.id().asLongText(), userId);
}else{
logger.error("Authed channel,but wrappedChannel is null.");
}
}
/**
* 移除一个连接(Channel)
* @param channel 要移除的连接
@ -359,4 +383,9 @@ public class ChannelManager {
public static Set<String> getAllOnlineUsers() {
return authedChannels.keySet();
}
public static String getRecordIdByChannel(Channel channel) {
System.out.println(rawChannels.containsKey(channel) ? rawChannels.get(channel).getRecordId() : null);
return rawChannels.containsKey(channel) ? rawChannels.get(channel).getRecordId() : null;
}
}

10
game/src/main/java/com/ccsens/game/netty/WrapperedChannel.java

@ -29,6 +29,10 @@ public class WrapperedChannel {
* Netty's Channel
*/
private Channel channel;
/**
* 用户加入的游戏id
*/
private String recordId;
/**
* userId
*/
@ -148,6 +152,12 @@ public class WrapperedChannel {
setVersion(major,minor);
this.userId = userId;
}
public void whenAuthed(String userId,int major,int minor,String recordId){
whenAuthed();
setVersion(major,minor);
this.userId = userId;
this.recordId = recordId;
}
public void writeAndFlush(Object message){
if(channel != null && channel.isActive()){

54
game/src/main/java/com/ccsens/game/netty/wsserver/WebSocketDecoder.java

@ -1,7 +1,8 @@
package com.ccsens.game.netty.wsserver;
import com.ccsens.game.bean.dto.message.BaseMessageDto;
import com.ccsens.game.bean.dto.message.*;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.WebConstant;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageDecoder;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
@ -17,17 +18,46 @@ import java.util.List;
public class WebSocketDecoder extends MessageToMessageDecoder<TextWebSocketFrame> {
private static Logger logger = LoggerFactory.getLogger(WebSocketDecoder.class);
@Override
protected void decode(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame msg, List<Object> out) throws Exception {
String text = msg.text();
logger.info("Websocket received: {}",text);
try {
out.add(JacksonUtil.jsonToBean(text, BaseMessageDto.class));
}catch(IOException e){
e.printStackTrace();
logger.error("Websocket Read Error: {}",text);
throw e;
// @Override
// protected void decode(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame msg, List<Object> out) throws Exception {
// String text = msg.text();
// logger.info("Websocket received: {}",text);
//
// try {
//
// out.add(JacksonUtil.jsonToBean(text, BaseMessageDto.class));
// }catch(IOException e){
// e.printStackTrace();
// logger.error("Websocket Read Error: {}",text);
// throw e;
// }
// }
@Override
protected void decode(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame msg, List<Object> out) throws Exception {
String text = msg.text();
BaseMessageDto baseMessage = JacksonUtil.jsonToBean(text,BaseMessageDto.class);
WebConstant.Message_Type type = WebConstant.Message_Type.phaseOf(baseMessage.getType());
System.out.println(text);
switch (type){
case Heart: {
out.add(JacksonUtil.jsonToBean(text, HeartMessageDto.class));
break;
}
case Auth:{
out.add(JacksonUtil.jsonToBean(text, AuthMessageDto.class));
break;
}case Ack:{
out.add(JacksonUtil.jsonToBean(text, AckMessageDto.class));
break;
}case Count:{
out.add(JacksonUtil.jsonToBean(text, GameMessageCountIn.class));
break;
}case ChangeStatus:{
out.add(JacksonUtil.jsonToBean(text, GameMessageWithChangeStatusOut.class));
break;
}
default:
break;
}
}
}

1
game/src/main/java/com/ccsens/game/netty/wsserver/WebSocketEncoder.java

@ -22,4 +22,5 @@ public class WebSocketEncoder extends MessageToByteEncoder<BaseMessageDto> {
logger.info("Websocket send: {}",msg);
}
}

11
game/src/main/java/com/ccsens/game/netty/wsserver/WebSocketHandler.java

@ -1,10 +1,7 @@
package com.ccsens.game.netty.wsserver;
import com.ccsens.game.bean.dto.message.AckMessageDto;
import com.ccsens.game.bean.dto.message.AuthMessageDto;
import com.ccsens.game.bean.dto.message.BaseMessageDto;
import com.ccsens.game.bean.dto.message.HeartMessageDto;
import com.ccsens.game.bean.dto.message.*;
import com.ccsens.game.netty.ChannelManager;
import com.ccsens.game.service.IClientService;
import com.ccsens.game.service.IMessageService;
@ -105,9 +102,13 @@ public class WebSocketHandler extends SimpleChannelInboundHandler<BaseMessageDto
break;
case Count:
String userId = ChannelManager.getUserIdByChannel(ctx.channel());
clientService.clientAddTimes(userId);
String recordId = ChannelManager.getRecordIdByChannel(ctx.channel());
GameMessageCountOut gameMessageCountOut = clientService.clientAddTimes(userId,recordId);
ChannelManager.sendTo(ctx.channel(), gameMessageCountOut);
break;
case ChangeStatus:
GameMessageWithChangeStatusOut gameMessage = (GameMessageWithChangeStatusOut) baseMessage;
messageService.doChangeStatusMessageDto(gameMessage);
break;
default:
break;

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

@ -8,6 +8,8 @@ import com.ccsens.cloudutil.bean.tall.vo.MemberVo;
import com.ccsens.cloudutil.feign.TallFeignClient;
import com.ccsens.game.bean.dto.ClientDto;
import com.ccsens.game.bean.dto.message.BaseMessageDto;
import com.ccsens.game.bean.dto.message.GameMessageCountIn;
import com.ccsens.game.bean.dto.message.GameMessageCountOut;
import com.ccsens.game.bean.po.GameRecord;
import com.ccsens.game.bean.po.GameUserJoin;
import com.ccsens.game.bean.po.GameUserJoinExample;
@ -227,12 +229,22 @@ public class ClientService implements IClientService {
}
@Override
public void clientAddTimes(String userId) {
public GameMessageCountOut clientAddTimes(String userId,String recordId) {
GameMessageCountOut gameMessageCountOut = new GameMessageCountOut();
if(ObjectUtil.isNotNull(userId)){
GameUserJoinExample gameUserJoinExample = new GameUserJoinExample();
gameUserJoinExample.createCriteria().andUserIdEqualTo(Long.valueOf(userId));
gameUserJoinExample.createCriteria().andUserIdEqualTo(Long.valueOf(userId)).andRecordIdEqualTo(Long.valueOf(recordId));
List<GameUserJoin> userJoinList = gameUserJoinDao.selectByExample(gameUserJoinExample);
if(CollectionUtil.isNotEmpty(userJoinList)){
GameUserJoin userJoin = userJoinList.get(0);
userJoin.setTimes(userJoin.getTimes() + 1);
userJoin.setScore(userJoin.getScore() + 1);
gameUserJoinDao.updateByPrimaryKeySelective(userJoin);
gameMessageCountOut = new GameMessageCountOut(userJoin.getTimes(),userJoin.getScore());
}
}
return gameMessageCountOut;
}
}

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

@ -2,6 +2,7 @@ package com.ccsens.game.service;
import com.ccsens.game.bean.dto.ClientDto;
import com.ccsens.game.bean.dto.message.BaseMessageDto;
import com.ccsens.game.bean.dto.message.GameMessageCountOut;
import com.ccsens.game.bean.vo.ClientVo;
import com.ccsens.util.bean.dto.QueryDto;
@ -25,5 +26,5 @@ public interface IClientService {
/**
* 滑动时增加次数
*/
void clientAddTimes(String userId);
GameMessageCountOut clientAddTimes(String userId, String recordId);
}

7
game/src/main/java/com/ccsens/game/service/IMessageService.java

@ -1,9 +1,6 @@
package com.ccsens.game.service;
import com.ccsens.game.bean.dto.message.AckMessageDto;
import com.ccsens.game.bean.dto.message.AuthMessageDto;
import com.ccsens.game.bean.dto.message.ChromeMessageDto;
import com.ccsens.game.bean.dto.message.GameMessageWithGetUrlDto;
import com.ccsens.game.bean.dto.message.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import io.netty.channel.ChannelHandlerContext;
@ -14,5 +11,7 @@ public interface IMessageService {
void doAckMessageWithAck(String userId, AckMessageDto message);
void doAuthMessageWithAuth(ChannelHandlerContext ctx, AuthMessageDto message);
void doChangeStatusMessageDto(GameMessageWithChangeStatusOut gameMessage);
}

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

@ -1,10 +1,12 @@
package com.ccsens.game.service;
import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.cloudutil.feign.TallFeignClient;
import com.ccsens.game.bean.dto.message.AckMessageDto;
import com.ccsens.game.bean.dto.message.AuthMessageDto;
import com.ccsens.game.bean.dto.message.ChromeMessageDto;
import com.ccsens.game.bean.dto.message.*;
import com.ccsens.game.bean.po.GameUserJoin;
import com.ccsens.game.bean.po.GameUserJoinExample;
import com.ccsens.game.netty.ChannelManager;
import com.ccsens.game.persist.dao.GameUserJoinDao;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.config.RabbitMQConfig;
import io.netty.channel.ChannelHandlerContext;
@ -12,12 +14,19 @@ import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import static com.ccsens.game.netty.ChannelManager.sendTo;
@Service
public class MessageService implements IMessageService{
public class MessageService implements IMessageService {
@Autowired
private AmqpTemplate rabbitTemplate;
@Autowired
private TallFeignClient tallFeignClient;
@Autowired
private GameUserJoinDao gameUserJoinDao;
@Override
public void sendGameMessageWithGetUrl(ChromeMessageDto message) throws Exception {
@ -40,11 +49,16 @@ public class MessageService implements IMessageService{
System.out.println(message);
//ws连接认证
String userId = message.getData().getUserId();
if(userId == null){
if (userId == null) {
String token = message.getData().getToken();
userId = tallFeignClient.getUserId(token);
}
ChannelManager.authChannel(ctx.channel(),userId,1,1);
String recordId = message.getData().getId();
ChannelManager.authChannel(ctx.channel(), userId, 1, 1, recordId);
AuthMessageWithAnswerDto messageWithAnswerDto = new AuthMessageWithAnswerDto(true, "ok");
sendTo(ctx.channel(), messageWithAnswerDto);
// if(userId == null){
//// logger.warn(String.format("Auth failed: %s",userId,message.getData().getToken()));
//// ChannelManager.removeChannel(ctx.channel());
@ -55,7 +69,7 @@ public class MessageService implements IMessageService{
// }
// String channelId = message.getData().getChannelId();
// if(ChannelManager.authChannel(ctx.channel(),userId)){ //认证成功
//查找所有该用户相关未收到的消息和未读消息依次发送给该用户
//查找所有该用户相关未收到的消息和未读消息依次发送给该用户
// sendAllUnSendSuccessedMessagesByUserId(userId,0L);
// AuthMessageWithAnswerDto messageWithAnswerDto = new AuthMessageWithAnswerDto(true,"ok");
// sendTo(ctx.channel(),messageWithAnswerDto);
@ -64,4 +78,18 @@ public class MessageService implements IMessageService{
//// sendTo(ctx.channel(),messageWithAnswerDto);
// }
}
@Override
public void doChangeStatusMessageDto(GameMessageWithChangeStatusOut gameMessage) {
Long recordId = gameMessage.getData().getRecordId();
GameUserJoinExample gameUserJoinExample = new GameUserJoinExample();
gameUserJoinExample.createCriteria().andRecordIdEqualTo(recordId);
List<GameUserJoin> userJoinList = gameUserJoinDao.selectByExample(gameUserJoinExample);
if (CollectionUtil.isNotEmpty(userJoinList)) {
for(GameUserJoin userJoin : userJoinList){
sendTo(userJoin.getUserId().toString(),gameMessage);
}
}
}
}

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

@ -105,7 +105,7 @@ public class ScreenService implements IScreenService{
urlVo.setRuleList(ruleList);
//给所有人发送消息发送消息
ChromeMessageDto chromeMessageDto = new ChromeMessageDto(gameRecord.getUrl());
ChromeMessageDto chromeMessageDto = new ChromeMessageDto(gameRecord.getUrl(),gameRecord.getId(),memberGame.getProjectId());
BaseMessageDto.MessageUser messageUser = null;
List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>();
//获取项目下所有成员

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

@ -193,17 +193,21 @@ public class TaskSubTimeService implements ITaskSubTimeService {
String player = null;
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskSubTime.getTaskDetailId());
if(ObjectUtil.isNotNull(taskDetail)){
if(taskDetail.getAllMember() == 0){
ProTaskMemberExample taskMemberExample = new ProTaskMemberExample();
taskMemberExample.createCriteria().andTaskDetailIdEqualTo(taskDetail.getId());
List<ProTaskMember> taskMemberList = taskMemberDao.selectByExample(taskMemberExample);
if(CollectionUtil.isNotEmpty(taskMemberList)){
ProMember member = proMemberDao.selectByPrimaryKey(taskMemberList.get(0).getMemberId());
player = member.getNickname();
}
}
player = taskDetail.getDescription();
}
// if(ObjectUtil.isNotNull(taskDetail)){
// if(taskDetail.getAllMember() == 0){
// ProTaskMemberExample taskMemberExample = new ProTaskMemberExample();
// taskMemberExample.createCriteria().andTaskDetailIdEqualTo(taskDetail.getId());
// List<ProTaskMember> taskMemberList = taskMemberDao.selectByExample(taskMemberExample);
// if(CollectionUtil.isNotEmpty(taskMemberList)){
// ProMember member = proMemberDao.selectByPrimaryKey(taskMemberList.get(0).getMemberId());
// player = member.getNickname();
// }
// }
// }
//发送同步消息
SysProject project = sysProjectDao.selectByPrimaryKey(startTaskDto.getProjectId());
//已发布的项目才同步

21
util/src/main/java/com/ccsens/util/WebConstant.java

@ -361,7 +361,9 @@ public class WebConstant {
,Deliver(0x14,"Deliver")
,Game(0x15,"Game")
,Chrome(0x15,"Chrome")
,PPTCtl(0x15,"PPTCtl");
,PPTCtl(0x15,"PPTCtl")
,Count(0x16,"Count")
,ChangeStatus(0x17,"ChangeStatus");
public int value;
public String phase;
Message_Type(int value,String thePhase){
@ -384,6 +386,8 @@ public class WebConstant {
case 0x13: return Ring;
case 0x14: return Deliver;
case 0x15: return Game;
case 0x16: return Count;
case 0x17: return ChangeStatus;
default: return null;
}
}
@ -430,6 +434,12 @@ public class WebConstant {
}
if(phase.equalsIgnoreCase("Game")) {
return Game;
}
if(phase.equalsIgnoreCase("Count")) {
return Count;
}
if(phase.equalsIgnoreCase("ChangeStatus")) {
return Count;
}else {
return null;
}
@ -588,7 +598,8 @@ public class WebConstant {
}
public enum Message_Auth_Event{
Auth(0,"Auth");
Auth(0,"Auth"),
Answer(1,"Answer");
public int value;
public String phase;
Message_Auth_Event(int value,String thePhase){
@ -598,13 +609,17 @@ public class WebConstant {
public static Message_Auth_Event valueOf(int value) { // 手写的从int到enum的转换函数
switch (value) {
case 0: return Auth;
case 1: return Answer;
default: return null;
}
}
public static Message_Auth_Event phaseOf(String phase) { // 手写的从String到enum的转换函数
if(phase.equalsIgnoreCase("Auth")) {
return Auth;
} else {
}
if(phase.equalsIgnoreCase("Answer")) {
return Answer;
}else {
return null;
}
}

Loading…
Cancel
Save