|
@@ -4,11 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.zanxiang.erp.base.pojo.TokenInfo;
|
|
|
import com.zanxiang.erp.security.util.SecurityUtil;
|
|
|
import com.zanxiang.game.module.manage.constant.RedisKeyConstant;
|
|
|
+import com.zanxiang.game.module.manage.enums.KfOperateEnum;
|
|
|
import com.zanxiang.game.module.manage.enums.KfRoomMsgOwnerEnum;
|
|
|
import com.zanxiang.game.module.manage.enums.KfRoomMsgTypeEnum;
|
|
|
import com.zanxiang.game.module.manage.enums.KfWebSocketMsgEnum;
|
|
|
import com.zanxiang.game.module.manage.pojo.dto.KfWebSocketMsgDTO;
|
|
|
import com.zanxiang.game.module.manage.pojo.params.KfWebSocketMsgParam;
|
|
|
+import com.zanxiang.game.module.manage.service.IKfQuickReplyService;
|
|
|
import com.zanxiang.game.module.manage.service.IKfRoomMsgService;
|
|
|
import com.zanxiang.game.module.manage.service.IKfRoomService;
|
|
|
import com.zanxiang.game.module.manage.service.IKfSessionUserService;
|
|
@@ -63,6 +65,9 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
|
|
|
@Autowired
|
|
|
private KfWxApiService wxApiService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IKfQuickReplyService kfQuickReplyService;
|
|
|
+
|
|
|
/**
|
|
|
* websocket连接建立成功
|
|
|
*/
|
|
@@ -119,7 +124,7 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
|
|
|
getOrderList(session, param);
|
|
|
break;
|
|
|
case WEBSOCKET_MSG_QUICK_REPLY:
|
|
|
- // 快捷回复,可以添加对应的处理逻辑
|
|
|
+ quickReply(session, param);
|
|
|
break;
|
|
|
default:
|
|
|
this.sendMessage(session, KfWebSocketMsgDTO.fail(webSocketMsgType, "参数错误, 未知的消息类型"));
|
|
@@ -156,10 +161,51 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ private void quickReply(WebSocketSession session, KfWebSocketMsgParam param) {
|
|
|
+ KfWebSocketMsgParam.QuickReplyBean quickReplyBean = param.getQuickReplyBean();
|
|
|
+ if (quickReplyBean == null) {
|
|
|
+ this.sendMessage(session, KfWebSocketMsgDTO.fail(param.getWebSocketMsgType(),
|
|
|
+ "快捷回复参数错误, 参数对象不可为空, param : " + JsonUtil.toString(param)));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //查询
|
|
|
+ if (Objects.equals(quickReplyBean.getKfOperateEnum(), KfOperateEnum.KF_OPERATE_SELECT)) {
|
|
|
+ Tuple2<KfWebSocketMsgDTO.PageBean, List<KfWebSocketMsgDTO.QuickReplyBean>> tuple2 = kfQuickReplyService
|
|
|
+ .quickReplyList(param.getPage());
|
|
|
+ this.sendMessage(session, KfWebSocketMsgDTO.builder()
|
|
|
+ .webSocketMsgType(param.getWebSocketMsgType())
|
|
|
+ .page(tuple2.getT1())
|
|
|
+ .quickReplyList(tuple2.getT2())
|
|
|
+ .build());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //处理不同类型的消息
|
|
|
+ Boolean result = null;
|
|
|
+ switch (quickReplyBean.getKfOperateEnum()) {
|
|
|
+ case KF_OPERATE_ADD:
|
|
|
+ result = kfQuickReplyService.quickReplyAdd(param.getQuickReplyBean());
|
|
|
+ break;
|
|
|
+ case KF_OPERATE_DELETE:
|
|
|
+ result = kfQuickReplyService.quickReplyDelete(param.getQuickReplyBean());
|
|
|
+ break;
|
|
|
+ case KF_OPERATE_UPDATE:
|
|
|
+ result = kfQuickReplyService.quickReplyUpdate(param.getQuickReplyBean());
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ }
|
|
|
+ if (result != null && result) {
|
|
|
+ this.sendMessage(session, KfWebSocketMsgDTO.ok(param.getWebSocketMsgType()));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.sendMessage(session, KfWebSocketMsgDTO.fail(param.getWebSocketMsgType(),
|
|
|
+ "快捷回复操作失败, param : " + JsonUtil.toString(param)));
|
|
|
+ }
|
|
|
+
|
|
|
private void getUser(WebSocketSession session, KfWebSocketMsgParam param) {
|
|
|
if (Strings.isBlank(param.getOpenId())) {
|
|
|
this.sendMessage(session, KfWebSocketMsgDTO.fail(param.getWebSocketMsgType(),
|
|
|
"获取玩家信息参数错误, openId不可为空, param : " + JsonUtil.toString(param)));
|
|
|
+ return;
|
|
|
}
|
|
|
KfWebSocketMsgDTO.UserBean userBean = kfRoomService.getUserBean(param.getOpenId());
|
|
|
this.sendMessage(session, KfWebSocketMsgDTO.builder()
|
|
@@ -173,6 +219,7 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
|
|
|
if (Strings.isBlank(param.getOpenId())) {
|
|
|
this.sendMessage(session, KfWebSocketMsgDTO.fail(param.getWebSocketMsgType(),
|
|
|
"获取玩家角色列表参数错误, openId不可为空, param : " + JsonUtil.toString(param)));
|
|
|
+ return;
|
|
|
}
|
|
|
Tuple2<KfWebSocketMsgDTO.PageBean, List<KfWebSocketMsgDTO.GameRoleBean>> tuple2 = kfRoomService
|
|
|
.getRoleBeanList(param.getOpenId(), param.getPage());
|
|
@@ -188,6 +235,7 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
|
|
|
if (Strings.isBlank(param.getOpenId())) {
|
|
|
this.sendMessage(session, KfWebSocketMsgDTO.fail(param.getWebSocketMsgType(),
|
|
|
"获取玩家订单列表参数错误, openId不可为空, param : " + JsonUtil.toString(param)));
|
|
|
+ return;
|
|
|
}
|
|
|
Tuple2<KfWebSocketMsgDTO.PageBean, List<KfWebSocketMsgDTO.OrderBean>> tuple2 = kfRoomService
|
|
|
.getOrderBeanList(param.getOpenId(), param.getPage());
|
|
@@ -283,6 +331,7 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
|
|
|
if (param.getRoomId() == null) {
|
|
|
this.sendMessage(session, KfWebSocketMsgDTO.fail(param.getWebSocketMsgType(),
|
|
|
"获取房间历史消息参数错误, roomId不可为空, param : " + JsonUtil.toString(param)));
|
|
|
+ return;
|
|
|
}
|
|
|
//分页获取房间消息列表
|
|
|
Tuple2<KfWebSocketMsgDTO.PageBean, List<KfWebSocketMsgDTO.RoomMsgBean>> tuple2 = kfRoomMsgService
|
|
@@ -308,6 +357,7 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
|
|
|
if (Strings.isBlank(param.getOpenId())) {
|
|
|
this.sendMessage(session, KfWebSocketMsgDTO.fail(param.getWebSocketMsgType(),
|
|
|
"接入玩家参数错误, openId不可为空, param : " + JsonUtil.toString(param)));
|
|
|
+ return;
|
|
|
}
|
|
|
//触发玩家接入线程锁
|
|
|
if (!distributedLockComponent.doLock(RedisKeyConstant.KF_MSG_USER_CONNECT_JOIN + param.getOpenId(),
|