|  | @@ -14,7 +14,7 @@ import com.zanxiang.game.module.manage.utils.RedisUtil;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.module.mybatis.entity.KfRoom;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.module.mybatis.entity.KfRoomMsg;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.module.mybatis.entity.KfSessionUser;
 | 
	
		
			
				|  |  | -import com.zanxiang.module.redis.service.IDistributedLockComponent;
 | 
	
		
			
				|  |  | +import com.zanxiang.game.module.mybatis.entity.KfSystemReply;
 | 
	
		
			
				|  |  |  import com.zanxiang.module.util.JsonUtil;
 | 
	
		
			
				|  |  |  import lombok.extern.slf4j.Slf4j;
 | 
	
		
			
				|  |  |  import org.apache.logging.log4j.util.Strings;
 | 
	
	
		
			
				|  | @@ -27,10 +27,7 @@ import reactor.util.function.Tuple2;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.io.IOException;
 | 
	
		
			
				|  |  |  import java.time.LocalDateTime;
 | 
	
		
			
				|  |  | -import java.util.HashMap;
 | 
	
		
			
				|  |  | -import java.util.List;
 | 
	
		
			
				|  |  | -import java.util.Map;
 | 
	
		
			
				|  |  | -import java.util.Objects;
 | 
	
		
			
				|  |  | +import java.util.*;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * @author : lingfeng
 | 
	
	
		
			
				|  | @@ -55,7 +52,10 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
 | 
	
		
			
				|  |  |      private IKfRoomMsgService kfRoomMsgService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  | -    private IDistributedLockComponent distributedLockComponent;
 | 
	
		
			
				|  |  | +    private IKfSystemReplyService kfSystemReplyService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private KfWxApiService kfWxApiService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private KfWxApiService wxApiService;
 | 
	
	
		
			
				|  | @@ -434,6 +434,47 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
 | 
	
		
			
				|  |  |                  .gameId(param.getGameId())
 | 
	
		
			
				|  |  |                  .waitUserList(waitUserList)
 | 
	
		
			
				|  |  |                  .build());
 | 
	
		
			
				|  |  | +        //发送欢迎语
 | 
	
		
			
				|  |  | +        this.sendWelcomeMsg(param.getGameId(), param.getOpenId(), roomId, kfSessionUser.getUserId());
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private void sendWelcomeMsg(Long gameId, String openId, Long roomId, Long userId) {
 | 
	
		
			
				|  |  | +        //获取自动回复配置
 | 
	
		
			
				|  |  | +        KfSystemReply kfSystemReply = kfSystemReplyService.getById(gameId);
 | 
	
		
			
				|  |  | +        if (kfSystemReply == null || Strings.isBlank(kfSystemReply.getWorkSysReply())) {
 | 
	
		
			
				|  |  | +            return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //休息时间, 发送指定消息
 | 
	
		
			
				|  |  | +        Map<String, Object> textMap = new HashMap<>(1);
 | 
	
		
			
				|  |  | +        textMap.put("content", kfSystemReply.getWorkSysReply());
 | 
	
		
			
				|  |  | +        Map<String, Object> msgParamMap = new HashMap<>(3);
 | 
	
		
			
				|  |  | +        msgParamMap.put("touser", openId);
 | 
	
		
			
				|  |  | +        msgParamMap.put("text", textMap);
 | 
	
		
			
				|  |  | +        msgParamMap.put("msgtype", KfRoomMsgTypeEnum.KF_MSG_TYPE_TEXT.getValue());
 | 
	
		
			
				|  |  | +        kfWxApiService.sendCustomMessageApi(gameId, msgParamMap);
 | 
	
		
			
				|  |  | +        //保存消息
 | 
	
		
			
				|  |  | +        Map<String, Object> kfRoomMsgMap = new HashMap<>(1);
 | 
	
		
			
				|  |  | +        kfRoomMsgMap.put("text", kfSystemReply.getWorkSysReply());
 | 
	
		
			
				|  |  | +        kfRoomMsgService.save(this.transform(openId, gameId, roomId, userId, JsonUtil.toString(kfRoomMsgMap)));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private KfRoomMsg transform(String openId, Long gameId, Long roomId, Long userId, String msgContent) {
 | 
	
		
			
				|  |  | +        return KfRoomMsg.builder()
 | 
	
		
			
				|  |  | +                .msgId(UUID.randomUUID().toString().replace("-", ""))
 | 
	
		
			
				|  |  | +                .msgType(KfRoomMsgTypeEnum.KF_MSG_TYPE_TEXT.getValue())
 | 
	
		
			
				|  |  | +                .gameId(gameId)
 | 
	
		
			
				|  |  | +                .openId(openId)
 | 
	
		
			
				|  |  | +                .userId(userId)
 | 
	
		
			
				|  |  | +                .readStatus(Boolean.TRUE)
 | 
	
		
			
				|  |  | +                .roomId(roomId)
 | 
	
		
			
				|  |  | +                .kfUserId(SecurityUtil.getUserId())
 | 
	
		
			
				|  |  | +                .msgOwner(KfRoomMsgOwnerEnum.KF_MSG_OWNER_SYSTEM.getValue())
 | 
	
		
			
				|  |  | +                .content(msgContent)
 | 
	
		
			
				|  |  | +                .source(msgContent)
 | 
	
		
			
				|  |  | +                .sortTime(System.currentTimeMillis())
 | 
	
		
			
				|  |  | +                .createTime(LocalDateTime.now())
 | 
	
		
			
				|  |  | +                .updateTime(LocalDateTime.now())
 | 
	
		
			
				|  |  | +                .build();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private void kfCreateConnect(WebSocketSession session, KfWebSocketMsgEnum msgTypeEnum, Long gameId) {
 |