| 
					
				 | 
			
			
				@@ -7,6 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.zanxiang.corp.base.CorpServer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.zanxiang.corp.base.pojo.dto.CorpExternalUserDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.zanxiang.corp.base.rpc.ICorpExternalUserServiceRpc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.module.base.pojo.enums.GameCategoryEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.module.manage.pojo.dto.AgentDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.module.manage.pojo.dto.CpDTO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17,6 +20,7 @@ import com.zanxiang.game.module.manage.pojo.params.UserUpdateParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.module.manage.pojo.vo.UserCardVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.module.manage.pojo.vo.UserListVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.module.manage.pojo.vo.UserVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.zanxiang.game.module.manage.pojo.vo.UserWeChatVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.module.manage.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.module.mybatis.entity.Agent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.game.module.mybatis.entity.GameUserRole; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -26,12 +30,15 @@ import com.zanxiang.module.util.bean.BeanUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.module.util.encryption.Md5Util; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.zanxiang.module.util.exception.BaseException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import lombok.extern.slf4j.Slf4j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.dubbo.config.annotation.DubboReference; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.logging.log4j.util.Strings; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import reactor.util.function.Tuple2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.time.Duration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.time.LocalDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.LocalDateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.LocalTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Collections; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -65,6 +72,26 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private IGameUserRoleService gameUserRoleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @DubboReference(providedBy = CorpServer.SERVER_DUBBO_NAME) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ICorpExternalUserServiceRpc corpExternalUserServiceRpc; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public UserWeChatVO getUserWeChat(Long userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        User user = super.getById(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new BaseException("参数错误, 用户信息不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, String> channelTransform = agentService.channelTransform(user.getChannel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (channelTransform.containsKey("params")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String[] params = channelTransform.get("params").split(":"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CorpExternalUserDTO corpExternalUser = corpExternalUserServiceRpc.getCorpExternalUser(params[0], params[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (corpExternalUser != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return BeanUtil.copy(corpExternalUser, UserWeChatVO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        throw new BaseException("未查询到用户微信信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public IPage<UserListVO> list(UserListParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //游戏条件处理 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -138,6 +165,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //最近角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         GameUserRole gameUserRole = gameUserRoleService.getLastGameUserRoleName(user.getId(), user.getGameId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         userListVO.setLastGameRoleName(gameUserRole == null ? null : gameUserRole.getRoleName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //注册充值时间差 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (userListVO.getLastRechargeTime() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            userListVO.setRegPayTimeDiff(Duration.between(userListVO.getCreateTime(), userListVO.getLastRechargeTime()).getSeconds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //返回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return userListVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -199,7 +230,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Map<Long, UserDTO> userCondition(Long userId, List<Long> agentIdList, String userName, String nickname, String regIp) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Map<Long, UserDTO> userCondition(Long userId, List<Long> agentIdList, String userName, String nickname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            String regIp, LocalDate regTimeBeginDate, LocalDate regTimeEndDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //用户信息条件处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (userId == null && CollectionUtils.isEmpty(agentIdList) && Strings.isBlank(userName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 && Strings.isBlank(nickname) && Strings.isBlank(regIp)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -212,6 +244,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .eq(Strings.isNotBlank(regIp), User::getIp, regIp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .like(Strings.isNotBlank(userName), User::getUsername, userName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .like(Strings.isNotBlank(nickname), User::getNickname, nickname) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .ge(regTimeBeginDate != null, User::getCreateTime, regTimeBeginDate == null ? null : LocalDateTime.of(regTimeBeginDate, LocalTime.MIN)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .le(regTimeEndDate != null, User::getCreateTime, regTimeEndDate == null ? null : LocalDateTime.of(regTimeEndDate, LocalTime.MAX)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .select(User::getId, User::getUsername, User::getNickname, User::getIp, User::getCreateTime, User::getAgentId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (CollectionUtils.isEmpty(userList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return Collections.emptyMap(); 
			 |