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. 52
      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. 16
      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. 40
      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 @Autowired
private IScreenService screenService; private IScreenService screenService;
// @MustLogin @MustLogin
@ApiOperation(value = "获取大屏路径", notes = "") @ApiOperation(value = "获取大屏路径", notes = "")
@RequestMapping(value = "url", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) @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 { 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 @Setter
@Getter @Getter
public static class Data{ public static class Data{
private Long id; private String id;
private String userId; private String userId;
private String channelId; private String channelId;
private String token; private String token;
@ -24,11 +24,12 @@ public class AuthMessageDto extends BaseMessageDto {
setTime(System.currentTimeMillis()); setTime(System.currentTimeMillis());
} }
public AuthMessageDto(String userId, String channelId){ public AuthMessageDto(String userId, String channelId,String recordId){
this(); this();
Data d = new Data(); Data d = new Data();
d.setUserId(userId); d.setUserId(userId);
d.setChannelId(channelId); d.setChannelId(channelId);
d.setId(recordId);
setData(d); 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 @Setter
@Getter @Getter
public static class Data{ public static class Data{
private Long projectId;
private Long recordId;
private String url; private String url;
} }
private Data data; private Data data;
@ -22,11 +24,13 @@ public class ChromeMessageDto extends BaseMessageDto{
setTime(System.currentTimeMillis()); setTime(System.currentTimeMillis());
} }
public ChromeMessageDto(String url){ public ChromeMessageDto(String url,Long recordId, Long projectId){
this(); this();
if(data == null){ if(data == null){
data = new Data(); data = new Data();
} }
data.setUrl(url); 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; package com.ccsens.game.bean.dto.message;
import com.ccsens.util.WebConstant;
import lombok.Data;
@Data
public class GameMessageCountIn extends BaseMessageDto{ 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; private Data data;
public GameMessageCountOut(){ public GameMessageCountOut(){
setType(WebConstant.Message_Type.Game.phase); setType(WebConstant.Message_Type.Count.phase);
setEvent(WebConstant.Message_Url_Event.Url.phase);
setTime(System.currentTimeMillis()); 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) * 移除一个连接(Channel)
* @param channel 要移除的连接 * @param channel 要移除的连接
@ -359,4 +383,9 @@ public class ChannelManager {
public static Set<String> getAllOnlineUsers() { public static Set<String> getAllOnlineUsers() {
return authedChannels.keySet(); 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 * Netty's Channel
*/ */
private Channel channel; private Channel channel;
/**
* 用户加入的游戏id
*/
private String recordId;
/** /**
* userId * userId
*/ */
@ -148,6 +152,12 @@ public class WrapperedChannel {
setVersion(major,minor); setVersion(major,minor);
this.userId = userId; 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){ public void writeAndFlush(Object message){
if(channel != null && channel.isActive()){ if(channel != null && channel.isActive()){

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

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

16
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.cloudutil.feign.TallFeignClient;
import com.ccsens.game.bean.dto.ClientDto; import com.ccsens.game.bean.dto.ClientDto;
import com.ccsens.game.bean.dto.message.BaseMessageDto; 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.GameRecord;
import com.ccsens.game.bean.po.GameUserJoin; import com.ccsens.game.bean.po.GameUserJoin;
import com.ccsens.game.bean.po.GameUserJoinExample; import com.ccsens.game.bean.po.GameUserJoinExample;
@ -227,12 +229,22 @@ public class ClientService implements IClientService {
} }
@Override @Override
public void clientAddTimes(String userId) { public GameMessageCountOut clientAddTimes(String userId,String recordId) {
GameMessageCountOut gameMessageCountOut = new GameMessageCountOut();
if(ObjectUtil.isNotNull(userId)){ if(ObjectUtil.isNotNull(userId)){
GameUserJoinExample gameUserJoinExample = new GameUserJoinExample(); 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); 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.ClientDto;
import com.ccsens.game.bean.dto.message.BaseMessageDto; 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.game.bean.vo.ClientVo;
import com.ccsens.util.bean.dto.QueryDto; 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; package com.ccsens.game.service;
import com.ccsens.game.bean.dto.message.AckMessageDto; import com.ccsens.game.bean.dto.message.*;
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.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
@ -14,5 +11,7 @@ public interface IMessageService {
void doAckMessageWithAck(String userId, AckMessageDto message); void doAckMessageWithAck(String userId, AckMessageDto message);
void doAuthMessageWithAuth(ChannelHandlerContext ctx, AuthMessageDto message); void doAuthMessageWithAuth(ChannelHandlerContext ctx, AuthMessageDto message);
void doChangeStatusMessageDto(GameMessageWithChangeStatusOut gameMessage);
} }

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

@ -1,10 +1,12 @@
package com.ccsens.game.service; package com.ccsens.game.service;
import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.cloudutil.feign.TallFeignClient; import com.ccsens.cloudutil.feign.TallFeignClient;
import com.ccsens.game.bean.dto.message.AckMessageDto; import com.ccsens.game.bean.dto.message.*;
import com.ccsens.game.bean.dto.message.AuthMessageDto; import com.ccsens.game.bean.po.GameUserJoin;
import com.ccsens.game.bean.dto.message.ChromeMessageDto; import com.ccsens.game.bean.po.GameUserJoinExample;
import com.ccsens.game.netty.ChannelManager; import com.ccsens.game.netty.ChannelManager;
import com.ccsens.game.persist.dao.GameUserJoinDao;
import com.ccsens.util.JacksonUtil; import com.ccsens.util.JacksonUtil;
import com.ccsens.util.config.RabbitMQConfig; import com.ccsens.util.config.RabbitMQConfig;
import io.netty.channel.ChannelHandlerContext; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import static com.ccsens.game.netty.ChannelManager.sendTo;
@Service @Service
public class MessageService implements IMessageService{ public class MessageService implements IMessageService {
@Autowired @Autowired
private AmqpTemplate rabbitTemplate; private AmqpTemplate rabbitTemplate;
@Autowired @Autowired
private TallFeignClient tallFeignClient; private TallFeignClient tallFeignClient;
@Autowired
private GameUserJoinDao gameUserJoinDao;
@Override @Override
public void sendGameMessageWithGetUrl(ChromeMessageDto message) throws Exception { public void sendGameMessageWithGetUrl(ChromeMessageDto message) throws Exception {
@ -40,11 +49,16 @@ public class MessageService implements IMessageService{
System.out.println(message); System.out.println(message);
//ws连接认证 //ws连接认证
String userId = message.getData().getUserId(); String userId = message.getData().getUserId();
if(userId == null){ if (userId == null) {
String token = message.getData().getToken(); String token = message.getData().getToken();
userId = tallFeignClient.getUserId(token); 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){ // if(userId == null){
//// logger.warn(String.format("Auth failed: %s",userId,message.getData().getToken())); //// logger.warn(String.format("Auth failed: %s",userId,message.getData().getToken()));
//// ChannelManager.removeChannel(ctx.channel()); //// ChannelManager.removeChannel(ctx.channel());
@ -64,4 +78,18 @@ public class MessageService implements IMessageService{
//// sendTo(ctx.channel(),messageWithAnswerDto); //// 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); urlVo.setRuleList(ruleList);
//给所有人发送消息发送消息 //给所有人发送消息发送消息
ChromeMessageDto chromeMessageDto = new ChromeMessageDto(gameRecord.getUrl()); ChromeMessageDto chromeMessageDto = new ChromeMessageDto(gameRecord.getUrl(),gameRecord.getId(),memberGame.getProjectId());
BaseMessageDto.MessageUser messageUser = null; BaseMessageDto.MessageUser messageUser = null;
List<BaseMessageDto.MessageUser> messageUserList = new ArrayList<>(); 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; String player = null;
ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskSubTime.getTaskDetailId()); ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(taskSubTime.getTaskDetailId());
if(ObjectUtil.isNotNull(taskDetail)){ if(ObjectUtil.isNotNull(taskDetail)){
if(taskDetail.getAllMember() == 0){ player = taskDetail.getDescription();
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();
}
}
} }
// 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()); 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") ,Deliver(0x14,"Deliver")
,Game(0x15,"Game") ,Game(0x15,"Game")
,Chrome(0x15,"Chrome") ,Chrome(0x15,"Chrome")
,PPTCtl(0x15,"PPTCtl"); ,PPTCtl(0x15,"PPTCtl")
,Count(0x16,"Count")
,ChangeStatus(0x17,"ChangeStatus");
public int value; public int value;
public String phase; public String phase;
Message_Type(int value,String thePhase){ Message_Type(int value,String thePhase){
@ -384,6 +386,8 @@ public class WebConstant {
case 0x13: return Ring; case 0x13: return Ring;
case 0x14: return Deliver; case 0x14: return Deliver;
case 0x15: return Game; case 0x15: return Game;
case 0x16: return Count;
case 0x17: return ChangeStatus;
default: return null; default: return null;
} }
} }
@ -430,6 +434,12 @@ public class WebConstant {
} }
if(phase.equalsIgnoreCase("Game")) { if(phase.equalsIgnoreCase("Game")) {
return Game; return Game;
}
if(phase.equalsIgnoreCase("Count")) {
return Count;
}
if(phase.equalsIgnoreCase("ChangeStatus")) {
return Count;
}else { }else {
return null; return null;
} }
@ -588,7 +598,8 @@ public class WebConstant {
} }
public enum Message_Auth_Event{ public enum Message_Auth_Event{
Auth(0,"Auth"); Auth(0,"Auth"),
Answer(1,"Answer");
public int value; public int value;
public String phase; public String phase;
Message_Auth_Event(int value,String thePhase){ Message_Auth_Event(int value,String thePhase){
@ -598,13 +609,17 @@ public class WebConstant {
public static Message_Auth_Event valueOf(int value) { // 手写的从int到enum的转换函数 public static Message_Auth_Event valueOf(int value) { // 手写的从int到enum的转换函数
switch (value) { switch (value) {
case 0: return Auth; case 0: return Auth;
case 1: return Answer;
default: return null; default: return null;
} }
} }
public static Message_Auth_Event phaseOf(String phase) { // 手写的从String到enum的转换函数 public static Message_Auth_Event phaseOf(String phase) { // 手写的从String到enum的转换函数
if(phase.equalsIgnoreCase("Auth")) { if(phase.equalsIgnoreCase("Auth")) {
return Auth; return Auth;
} else { }
if(phase.equalsIgnoreCase("Answer")) {
return Answer;
}else {
return null; return null;
} }
} }

Loading…
Cancel
Save