|
@@ -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();
|