|
|
|
@ -57,6 +57,7 @@ import java.util.stream.Collectors;
|
|
|
|
|
*/
|
|
|
|
|
@Service
|
|
|
|
|
public class UserInfoService {
|
|
|
|
|
|
|
|
|
|
private final UserInfoDao userInfoDao;
|
|
|
|
|
|
|
|
|
|
private final IdWorker idWorker;
|
|
|
|
@ -82,7 +83,8 @@ public class UserInfoService {
|
|
|
|
|
private final UserPointLogDao userPointLogDao;
|
|
|
|
|
|
|
|
|
|
public UserInfoService(UserInfoDao userInfoDao, IdWorker idWorker, RedisTemplate redisTemplate,
|
|
|
|
|
RabbitTemplate rabbitTemplate, BCryptPasswordEncoder encoder, HttpServletRequest request,
|
|
|
|
|
RabbitTemplate rabbitTemplate, BCryptPasswordEncoder encoder,
|
|
|
|
|
HttpServletRequest request,
|
|
|
|
|
JwtUtil jwtUtil, UserRealNameDao userRealNameDao, UserBankDao userBankDao,
|
|
|
|
|
WithdrawDao withdrawDao, UserPointLogService userPointLogService,
|
|
|
|
|
UserPointLogDao userPointLogDao) {
|
|
|
|
@ -221,7 +223,8 @@ public class UserInfoService {
|
|
|
|
|
userInfo.setLastUseDeviceId(deviceId);
|
|
|
|
|
userInfo.setLastUseDeviceBrand(deviceBrand);
|
|
|
|
|
userInfoDao.save(userInfo);
|
|
|
|
|
return Constants.TOKEN_PREFIX + jwtUtil.createJWT(userLoginDto.getUserId(), userInfo.getNickName(),
|
|
|
|
|
return Constants.TOKEN_PREFIX + jwtUtil.createJWT(userLoginDto.getUserId(),
|
|
|
|
|
userInfo.getNickName(),
|
|
|
|
|
userLoginDto.getRoles(), userLoginDto.getAvatar());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -268,7 +271,8 @@ public class UserInfoService {
|
|
|
|
|
userInfo.setLastLoginTime(new Date());
|
|
|
|
|
userInfoDao.save(userInfo);
|
|
|
|
|
String token = Constants.TOKEN_PREFIX
|
|
|
|
|
+ jwtUtil.createJWT(userInfo.getId(), userInfo.getNickName(), Constants.TOKEN_ROLE_APP_USER, userInfo.getAvatar());
|
|
|
|
|
+ jwtUtil.createJWT(userInfo.getId(), userInfo.getNickName(),
|
|
|
|
|
Constants.TOKEN_ROLE_APP_USER, userInfo.getAvatar());
|
|
|
|
|
if (isNewUser) {
|
|
|
|
|
// 只有新用户会获得积分
|
|
|
|
|
userPointLogService.addByTaskNew(TaskPointIdConstants.NEW_USER_WELCOME_AWARD, token);
|
|
|
|
@ -291,19 +295,26 @@ public class UserInfoService {
|
|
|
|
|
userInfo.setInvitationUserId(userInfoDaoByInvitationCode.getId());
|
|
|
|
|
this.update(userInfo);
|
|
|
|
|
// 邀请人与被邀请人同时获取积分
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.NEW_USER_INVITE, userInfoDaoByInvitationCode.getId());
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.NEW_USER_INVITE, userInfo.getId());
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.NEW_USER_INVITE,
|
|
|
|
|
userInfoDaoByInvitationCode.getId());
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.NEW_USER_INVITE,
|
|
|
|
|
userInfo.getId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<UserPointLog> list = userPointLogDao.findUserPointLogsByUserIdAndTaskPointId(userInfoDaoByInvitationCode.getId(), TaskPointIdConstants.NEW_USER_INVITE);
|
|
|
|
|
List<UserPointLog> list = userPointLogDao.findUserPointLogsByUserIdAndTaskPointId(
|
|
|
|
|
userInfoDaoByInvitationCode.getId(), TaskPointIdConstants.NEW_USER_INVITE);
|
|
|
|
|
if (list.size() == 3) {
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.INVITE_USER_3, userInfoDaoByInvitationCode.getId());
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.INVITE_USER_3,
|
|
|
|
|
userInfoDaoByInvitationCode.getId());
|
|
|
|
|
} else if (list.size() == 6) {
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.INVITE_USER_6, userInfoDaoByInvitationCode.getId());
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.INVITE_USER_6,
|
|
|
|
|
userInfoDaoByInvitationCode.getId());
|
|
|
|
|
} else if (list.size() == 10) {
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.INVITE_USER_10, userInfoDaoByInvitationCode.getId());
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.INVITE_USER_10,
|
|
|
|
|
userInfoDaoByInvitationCode.getId());
|
|
|
|
|
} else if (list.size() == 20) {
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.INVITE_USER_20, userInfoDaoByInvitationCode.getId());
|
|
|
|
|
userPointLogService.addByTaskDailyAndUserId(TaskPointIdConstants.INVITE_USER_20,
|
|
|
|
|
userInfoDaoByInvitationCode.getId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@ -341,7 +352,8 @@ public class UserInfoService {
|
|
|
|
|
userInfo.setLastLoginTime(new Date());
|
|
|
|
|
userInfoDao.save(userInfo);
|
|
|
|
|
String token = Constants.TOKEN_PREFIX
|
|
|
|
|
+ jwtUtil.createJWT(userInfo.getId(), userInfo.getNickName(), Constants.TOKEN_ROLE_APP_USER, userInfo.getAvatar());
|
|
|
|
|
+ jwtUtil.createJWT(userInfo.getId(), userInfo.getNickName(),
|
|
|
|
|
Constants.TOKEN_ROLE_APP_USER, userInfo.getAvatar());
|
|
|
|
|
|
|
|
|
|
if (isNewUser) {
|
|
|
|
|
// 只有新用户会获得积分
|
|
|
|
@ -382,7 +394,8 @@ public class UserInfoService {
|
|
|
|
|
userInfo.setLastLoginTime(new Date());
|
|
|
|
|
userInfoDao.save(userInfo);
|
|
|
|
|
String token = Constants.TOKEN_PREFIX
|
|
|
|
|
+ jwtUtil.createJWT(userInfo.getId(), userInfo.getNickName(), Constants.TOKEN_ROLE_APP_USER, userInfo.getAvatar());
|
|
|
|
|
+ jwtUtil.createJWT(userInfo.getId(), userInfo.getNickName(),
|
|
|
|
|
Constants.TOKEN_ROLE_APP_USER, userInfo.getAvatar());
|
|
|
|
|
if (isNewUser) {
|
|
|
|
|
// 只有新用户会获得积分
|
|
|
|
|
userPointLogService.addByTaskNew(TaskPointIdConstants.NEW_USER_WELCOME_AWARD, token);
|
|
|
|
@ -422,14 +435,14 @@ public class UserInfoService {
|
|
|
|
|
|
|
|
|
|
public String wechatlogin(UserInfo loginUserInfo) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!UserStatusEnum.ENABLE.getStatus().equals(loginUserInfo.getStatus())) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
loginUserInfo.setLastLoginTime(new Date());
|
|
|
|
|
userInfoDao.save(loginUserInfo);
|
|
|
|
|
return Constants.TOKEN_PREFIX
|
|
|
|
|
+ jwtUtil.createJWT(loginUserInfo.getId(), loginUserInfo.getNickName(), Constants.TOKEN_ROLE_APP_USER, loginUserInfo.getAvatar());
|
|
|
|
|
+ jwtUtil.createJWT(loginUserInfo.getId(), loginUserInfo.getNickName(),
|
|
|
|
|
Constants.TOKEN_ROLE_APP_USER, loginUserInfo.getAvatar());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -468,7 +481,8 @@ public class UserInfoService {
|
|
|
|
|
userInfo.setLastLoginTime(new Date());
|
|
|
|
|
userInfoDao.save(userInfo);
|
|
|
|
|
String token = Constants.TOKEN_PREFIX
|
|
|
|
|
+ jwtUtil.createJWT(userInfo.getId(), userInfo.getNickName(), Constants.TOKEN_ROLE_APP_USER, userInfo.getAvatar());
|
|
|
|
|
+ jwtUtil.createJWT(userInfo.getId(), userInfo.getNickName(),
|
|
|
|
|
Constants.TOKEN_ROLE_APP_USER, userInfo.getAvatar());
|
|
|
|
|
if (isNewUser) {
|
|
|
|
|
// 只有新用户会获得积分
|
|
|
|
|
userPointLogService.addByTaskNew(TaskPointIdConstants.NEW_USER_WELCOME_AWARD, token);
|
|
|
|
@ -482,7 +496,8 @@ public class UserInfoService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<UserInfo> cmsOrderByField(List<String> idList) {
|
|
|
|
|
return orderByField(idList).stream().map(this::updateAvatarPath).collect(Collectors.toList());
|
|
|
|
|
return orderByField(idList).stream().map(this::updateAvatarPath)
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<SimpleUser> getSimpleUserOrderByField(List<String> idList) {
|
|
|
|
@ -516,16 +531,20 @@ public class UserInfoService {
|
|
|
|
|
predicateList.add(criteriaBuilder.equal(root.get("id"), queryReq.getId()));
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotBlank(queryReq.getMobile())) {
|
|
|
|
|
predicateList.add(criteriaBuilder.equal(root.get("mobile").as(String.class), queryReq.getMobile()));
|
|
|
|
|
predicateList.add(criteriaBuilder.equal(root.get("mobile").as(String.class),
|
|
|
|
|
queryReq.getMobile()));
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotBlank(queryReq.getNickName())) {
|
|
|
|
|
predicateList.add(criteriaBuilder.like(root.get("nickName"), '%' + queryReq.getNickName() + '%'));
|
|
|
|
|
predicateList.add(criteriaBuilder.like(root.get("nickName"),
|
|
|
|
|
'%' + queryReq.getNickName() + '%'));
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotBlank(queryReq.getBadge())) {
|
|
|
|
|
predicateList.add(criteriaBuilder.equal(root.get("badge").as(String.class), queryReq.getBadge()));
|
|
|
|
|
predicateList.add(criteriaBuilder.equal(root.get("badge").as(String.class),
|
|
|
|
|
queryReq.getBadge()));
|
|
|
|
|
}
|
|
|
|
|
if (Objects.nonNull(queryReq.getStatus())) {
|
|
|
|
|
predicateList.add(criteriaBuilder.equal(root.get("status").as(Integer.class), queryReq.getStatus()));
|
|
|
|
|
predicateList.add(criteriaBuilder.equal(root.get("status").as(Integer.class),
|
|
|
|
|
queryReq.getStatus()));
|
|
|
|
|
}
|
|
|
|
|
/*
|
|
|
|
|
* if(Objects.nonNull(queryReq.getOnlineStatus())){
|
|
|
|
@ -534,11 +553,13 @@ public class UserInfoService {
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
if (Objects.nonNull(queryReq.getCreateDateStart())) {
|
|
|
|
|
predicateList.add(criteriaBuilder.greaterThanOrEqualTo(root.get("joinTime").as(Date.class),
|
|
|
|
|
predicateList.add(
|
|
|
|
|
criteriaBuilder.greaterThanOrEqualTo(root.get("joinTime").as(Date.class),
|
|
|
|
|
queryReq.getCreateDateStart()));
|
|
|
|
|
}
|
|
|
|
|
if (Objects.nonNull(queryReq.getCreateDateEnd())) {
|
|
|
|
|
predicateList.add(criteriaBuilder.lessThanOrEqualTo(root.get("joinTime").as(Date.class),
|
|
|
|
|
predicateList.add(
|
|
|
|
|
criteriaBuilder.lessThanOrEqualTo(root.get("joinTime").as(Date.class),
|
|
|
|
|
queryReq.getCreateDateEnd()));
|
|
|
|
|
}
|
|
|
|
|
Predicate[] predicates = new Predicate[predicateList.size()];
|
|
|
|
@ -569,7 +590,8 @@ public class UserInfoService {
|
|
|
|
|
*/
|
|
|
|
|
public UserInfo findByUserNameAndPassword(String userName, String password) {
|
|
|
|
|
UserInfo userInfoByUserName = userInfoDao.findUserInfoByUserName(userName);
|
|
|
|
|
if (userInfoByUserName != null && encoder.matches(password, userInfoByUserName.getPassword())) {
|
|
|
|
|
if (userInfoByUserName != null && encoder.matches(password,
|
|
|
|
|
userInfoByUserName.getPassword())) {
|
|
|
|
|
return userInfoByUserName;
|
|
|
|
|
} else {
|
|
|
|
|
return null;
|
|
|
|
@ -627,7 +649,8 @@ public class UserInfoService {
|
|
|
|
|
throw new BizException(ErrorConstants.REAL_NAME_IS_CHECKED);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ObjectUtils.equals(UserRealNameStateEnum.FAIL.getCode(), userRealNameCheckDto.getState())
|
|
|
|
|
if (ObjectUtils.equals(UserRealNameStateEnum.FAIL.getCode(),
|
|
|
|
|
userRealNameCheckDto.getState())
|
|
|
|
|
&& StringUtils.isBlank(userRealNameCheckDto.getContent())) {
|
|
|
|
|
// 必须填写拒绝理由
|
|
|
|
|
throw new BizException(ErrorConstants.REASONS_FOR_REFUSAL_MUST_BE_GIVEN);
|
|
|
|
@ -723,7 +746,8 @@ public class UserInfoService {
|
|
|
|
|
userBank.setCreateUser(user.getUserId());
|
|
|
|
|
userBank.setState(UserBankStateEnum.BIND.getCode());
|
|
|
|
|
|
|
|
|
|
List<UserBank> checkList = userBankDao.findAllByBankCardAndStateAndUserId(userBank.getBankCard(), userBank.getState(), userBank.getUserId());
|
|
|
|
|
List<UserBank> checkList = userBankDao.findAllByBankCardAndStateAndUserId(
|
|
|
|
|
userBank.getBankCard(), userBank.getState(), userBank.getUserId());
|
|
|
|
|
if (checkList.isEmpty()) {
|
|
|
|
|
// 先解绑所有已绑定的银行卡
|
|
|
|
|
userBankDao.untieAllCard(user.getUserId());
|
|
|
|
@ -768,7 +792,8 @@ public class UserInfoService {
|
|
|
|
|
throw new BizException(ErrorConstants.USER_VERIFICATION_FAILURE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return userBankDao.findAllByUserIdAndState(user.getUserId(), UserBankStateEnum.BIND.getCode());
|
|
|
|
|
return userBankDao.findAllByUserIdAndState(user.getUserId(),
|
|
|
|
|
UserBankStateEnum.BIND.getCode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -821,7 +846,9 @@ public class UserInfoService {
|
|
|
|
|
List<Withdraw> content = withdrawPage.getContent();
|
|
|
|
|
for (Withdraw withdraw : content) {
|
|
|
|
|
if (withdraw.getState() != null) {
|
|
|
|
|
withdraw.setStateStr(Objects.requireNonNull(WithdrawStateEnum.getByCode(withdraw.getState())).getDesc());
|
|
|
|
|
withdraw.setStateStr(
|
|
|
|
|
Objects.requireNonNull(WithdrawStateEnum.getByCode(withdraw.getState()))
|
|
|
|
|
.getDesc());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new PageResult<>(totalElements, content);
|
|
|
|
@ -888,9 +915,9 @@ public class UserInfoService {
|
|
|
|
|
return byId.getInvitationCode();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String invitationCode = RandomStringUtils.randomNumeric(6);
|
|
|
|
|
String invitationCode = generateUniqueInvitationCode();
|
|
|
|
|
while (userInfoDao.findByInvitationCode(invitationCode) != null) {
|
|
|
|
|
invitationCode = RandomStringUtils.randomNumeric(6);
|
|
|
|
|
invitationCode = generateUniqueInvitationCode();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
byId.setInvitationCode(invitationCode);
|
|
|
|
@ -899,6 +926,16 @@ public class UserInfoService {
|
|
|
|
|
return invitationCode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 邀请码改为: 第一第二位是大写英文,后面四位数字
|
|
|
|
|
* @return 邀请码
|
|
|
|
|
*/
|
|
|
|
|
private static String generateUniqueInvitationCode() {
|
|
|
|
|
String firstTwoChars = RandomStringUtils.random(2, true, false).toUpperCase();
|
|
|
|
|
String lastFourChars = RandomStringUtils.randomNumeric(4);
|
|
|
|
|
return firstTwoChars + lastFourChars;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取已过期的会员
|
|
|
|
|
*
|
|
|
|
|