|
|
@@ -71,7 +71,6 @@ import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
-import java.util.Random;
|
|
|
import java.util.Set;
|
|
|
import java.util.concurrent.Executors;
|
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
|
@@ -216,18 +215,8 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
*/
|
|
|
@Override
|
|
|
public Result<?> lockUser(String userId,String appId, AgentUserInfo userInfo) {
|
|
|
- YtDyzUser appUser = appFeign.getUserInfo(userId).getData();
|
|
|
- if(Objects.isNull(appUser)){
|
|
|
- return Result.resultOk(RepMessage.LOCK_USER_SUCCESS);
|
|
|
- }
|
|
|
- if(UserStatusEnum.LOCK.getCode().equals(appUser.getUserStatus())){
|
|
|
- return Result.resultErr(RepMessage.ALREADY_RISK_USER);
|
|
|
- }
|
|
|
- YtDyzUser user = new YtDyzUser();
|
|
|
- user.setUserId(userId);
|
|
|
- user.setUserStatus(UserStatusEnum.LOCK.getCode());
|
|
|
- user.setRiskReason(BannedTypeEnum.CHANNEL.getDesc()+"禁止登录");
|
|
|
- appFeign.updateUserInfo(user);
|
|
|
+ YtDyzUser lockBody = appFeign.lockUser(userId,UserStatusEnum.LOCK.getCode());
|
|
|
+ if(Objects.isNull(lockBody)) return Result.resultErr(RepMessage.LOCK_FAIL);
|
|
|
RiskBannedParam param = new RiskBannedParam();
|
|
|
param.setUserId(userId);
|
|
|
param.setAppId(appId);
|
|
|
@@ -236,7 +225,9 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
param.setOperator(userInfo.getUserId());
|
|
|
param.setAgentId(userInfo.getUserId());
|
|
|
param.setBannedType(BannedTypeEnum.CHANNEL.getCode());
|
|
|
- addBannedRecord(Collections.singletonList(user.getUserId()),param);
|
|
|
+ addBannedRecord(Collections.singletonList(userId),param);
|
|
|
+ //预设24小时过期key 用于解锁用户
|
|
|
+ redisService.setTimeOutHoursStr("unlock_"+userId,appId,24);
|
|
|
return Result.resultOk(RepMessage.LOCK_USER_SUCCESS);
|
|
|
}
|
|
|
|
|
|
@@ -246,16 +237,13 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public Result<?> banned(RiskBannedParam param) {
|
|
|
- YtDyzUser appUser = appFeign.getUserInfo(param.getUserId()).getData();
|
|
|
- if(Objects.isNull(appUser)||UserStatusEnum.RISK.getCode().equals(appUser.getUserStatus())){
|
|
|
- return Result.resultOk(RepMessage.ALREADY_RISK_USER);
|
|
|
- }
|
|
|
- YtDyzUser user = new YtDyzUser();
|
|
|
- user.setUserId(param.getUserId());
|
|
|
- user.setUserStatus(UserStatusEnum.RISK.getCode());
|
|
|
- user.setRiskReason(BannedTypeEnum.CHANNEL.getDesc()+"封禁账号");
|
|
|
- appFeign.updateUserInfo(user);
|
|
|
+ YtDyzUser appUser = appFeign.lockUser(param.getUserId(),UserStatusEnum.RISK.getCode());
|
|
|
+ if(Objects.isNull(appUser)){
|
|
|
+ return Result.resultErr(RepMessage.LOCK_FAIL);
|
|
|
+ }
|
|
|
addBannedRecord(Collections.singletonList(param.getUserId()),param);
|
|
|
+ //预设24小时过期key 用于解锁用户
|
|
|
+ redisService.setTimeOutHoursStr("unlock_"+param.getUserId(),param.getAppId(),param.getBannedLimit() * 24L);
|
|
|
return Result.resultOk(RepMessage.ALREADY_RISK_USER);
|
|
|
}
|
|
|
|
|
|
@@ -355,12 +343,8 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Result<?> changeUserStatus(RiskUserStatusParam param) {
|
|
|
- YtDyzUser user = appFeign.getUserInfo(param.getUserId()).getData();
|
|
|
- if(param.getUserStatus().equals(user.getUserStatus())){
|
|
|
- return Result.resultOk(RepMessage.USER_STATUS_MODIFY);
|
|
|
- }
|
|
|
//如果原账号状态正常且本次操作状态不正常
|
|
|
- modifyAppUserInfo(user,param);
|
|
|
+ modifyAppUserInfo(param.getUserId(),param);
|
|
|
return Result.resultOk(RepMessage.USER_STATUS_MODIFY);
|
|
|
}
|
|
|
|
|
|
@@ -663,15 +647,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
appFeign.updateUserInfo(next);
|
|
|
},300,TimeUnit.MILLISECONDS);
|
|
|
//修改为解锁用户存入redis 24小时后进行解锁
|
|
|
- redisService.setTimeOutHoursStr("unlock_"+dyzUser.getUserId(),dyzUser.getAppId(),24);
|
|
|
- //创建一次性定时任务用于24小时后解锁用户
|
|
|
-// scheduled.schedule(()->{
|
|
|
-// YtDyzUser user = new YtDyzUser();
|
|
|
-// user.setUserId(dyzUser.getUserId());
|
|
|
-// user.setUserStatus(UserStatusEnum.NORMAL.getCode());
|
|
|
-// appFeign.updateUserInfo(user);
|
|
|
-// scheduled.shutdown();
|
|
|
-// },24, TimeUnit.HOURS);
|
|
|
+ redisService.setTimeOutHoursStr("unlock_"+dyzUser.getUserId(),dyzUser.getAppId(), 24);
|
|
|
scheduled.shutdown();
|
|
|
throw new CustomerException(errMsg);
|
|
|
}
|
|
|
@@ -679,13 +655,16 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
/**
|
|
|
* 修改用户信息
|
|
|
*/
|
|
|
- private void modifyAppUserInfo(YtDyzUser user, RiskUserStatusParam param) {
|
|
|
+ private void modifyAppUserInfo(String userId, RiskUserStatusParam param) {
|
|
|
YtDyzUser appUser = new YtDyzUser();
|
|
|
appUser.setUserId(param.getUserId());
|
|
|
appUser.setUserStatus(param.getUserStatus());
|
|
|
switch (param.getUserStatus()){
|
|
|
case 2:
|
|
|
appUser.setRiskReason(param.getReason());
|
|
|
+ appFeign.lockUser(appUser.getUserId(),UserStatusEnum.LOCK.getCode());
|
|
|
+ //修改为解锁用户存入redis 24小时后进行解锁
|
|
|
+ redisService.setTimeOutHoursStr("unlock_"+userId,param.getAppId(),24);
|
|
|
break;
|
|
|
case 3: //增加封禁记录
|
|
|
RiskBannedParam bannedParam = new RiskBannedParam();
|
|
|
@@ -693,15 +672,17 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
bannedParam.setUserId(param.getUserId());
|
|
|
bannedParam.setBannedReason(param.getReason());
|
|
|
appUser.setRiskReason(param.getReason());
|
|
|
- addBannedRecord(Collections.singletonList(user.getUserId()),bannedParam);
|
|
|
+ addBannedRecord(Collections.singletonList(userId),bannedParam);
|
|
|
+ appFeign.lockUser(appUser.getUserId(),UserStatusEnum.RISK.getCode());
|
|
|
+ redisService.setTimeOutHoursStr("unlock_"+userId,param.getAppId(),param.getBannedLimit()*24L);
|
|
|
break;
|
|
|
default: //解禁
|
|
|
- YtPlatformBanned banned = riskManageMapper.getLastBanned(user.getUserId());
|
|
|
+ YtPlatformBanned banned = riskManageMapper.getLastBanned(userId);
|
|
|
if(Objects.nonNull(banned)){
|
|
|
addDeblockingRecord(banned,param);
|
|
|
}
|
|
|
+ appFeign.unLockUser(appUser.getUserId());
|
|
|
}
|
|
|
- appFeign.updateUserInfo(appUser);
|
|
|
}
|
|
|
|
|
|
/**
|