|
@@ -11,7 +11,10 @@ import com.ytpm.agent.model.YtAppUser;
|
|
|
import com.ytpm.agent.model.YtPlatformBanned;
|
|
import com.ytpm.agent.model.YtPlatformBanned;
|
|
|
import com.ytpm.agent.model.YtPlatformDeblocking;
|
|
import com.ytpm.agent.model.YtPlatformDeblocking;
|
|
|
import com.ytpm.agent.view.AgentEnableAppView;
|
|
import com.ytpm.agent.view.AgentEnableAppView;
|
|
|
|
|
+import com.ytpm.agent.view.AgentUserInfo;
|
|
|
import com.ytpm.app.model.YtAppUserLoginRecord;
|
|
import com.ytpm.app.model.YtAppUserLoginRecord;
|
|
|
|
|
+import com.ytpm.app.model.YtDyzLoginRecord;
|
|
|
|
|
+import com.ytpm.app.model.YtDyzUser;
|
|
|
import com.ytpm.app.view.YtAppUserListView;
|
|
import com.ytpm.app.view.YtAppUserListView;
|
|
|
import com.ytpm.custom.CustomField;
|
|
import com.ytpm.custom.CustomField;
|
|
|
import com.ytpm.dao.AppLoginRecordMapper;
|
|
import com.ytpm.dao.AppLoginRecordMapper;
|
|
@@ -19,10 +22,12 @@ import com.ytpm.dao.DictMapper;
|
|
|
import com.ytpm.dao.RiskConfigMapper;
|
|
import com.ytpm.dao.RiskConfigMapper;
|
|
|
import com.ytpm.dao.RiskManageMapper;
|
|
import com.ytpm.dao.RiskManageMapper;
|
|
|
import com.ytpm.dao.RiskUserMapper;
|
|
import com.ytpm.dao.RiskUserMapper;
|
|
|
|
|
+import com.ytpm.feign.AppFeign;
|
|
|
import com.ytpm.general.RepMessage;
|
|
import com.ytpm.general.RepMessage;
|
|
|
import com.ytpm.general.Result;
|
|
import com.ytpm.general.Result;
|
|
|
import com.ytpm.general.ResultTable;
|
|
import com.ytpm.general.ResultTable;
|
|
|
import com.ytpm.handle.CustomerException;
|
|
import com.ytpm.handle.CustomerException;
|
|
|
|
|
+import com.ytpm.risk.enums.BannedTypeEnum;
|
|
|
import com.ytpm.risk.model.YtRiskConfig;
|
|
import com.ytpm.risk.model.YtRiskConfig;
|
|
|
import com.ytpm.risk.model.YtRiskTemplate;
|
|
import com.ytpm.risk.model.YtRiskTemplate;
|
|
|
import com.ytpm.risk.param.RiskBannedListParam;
|
|
import com.ytpm.risk.param.RiskBannedListParam;
|
|
@@ -73,13 +78,25 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
private RiskManageMapper riskManageMapper;
|
|
private RiskManageMapper riskManageMapper;
|
|
|
@Resource
|
|
@Resource
|
|
|
private AppLoginRecordMapper loginRecordMapper;
|
|
private AppLoginRecordMapper loginRecordMapper;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private AppFeign appFeign;
|
|
|
/**
|
|
/**
|
|
|
* 查询配置字段选项
|
|
* 查询配置字段选项
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public ResultTable<RiskConfigView> getRiskConfig() {
|
|
public ResultTable<RiskConfigView> getRiskConfig() {
|
|
|
- Field[] fields = ReflectUtil.getClassField(YtAppUserListView.class);
|
|
|
|
|
|
|
+ Field[] userFields = ReflectUtil.getClassField(YtDyzUser.class);
|
|
|
|
|
+ Field[] loginFields = ReflectUtil.getClassField(YtDyzLoginRecord.class);
|
|
|
List<RiskConfigView> configList = new ArrayList<RiskConfigView>();
|
|
List<RiskConfigView> configList = new ArrayList<RiskConfigView>();
|
|
|
|
|
+ addConfigItem(userFields,configList);
|
|
|
|
|
+ addConfigItem(loginFields,configList);
|
|
|
|
|
+ return ResultTable.resultTableOk(new PageInfo<RiskConfigView>(configList));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 添加配置项
|
|
|
|
|
+ */
|
|
|
|
|
+ private void addConfigItem(Field[] fields, List<RiskConfigView> configList) {
|
|
|
RiskConfigView view;
|
|
RiskConfigView view;
|
|
|
for (Field field : fields) {
|
|
for (Field field : fields) {
|
|
|
field.setAccessible(true);
|
|
field.setAccessible(true);
|
|
@@ -92,7 +109,6 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
view.setFieldDesc(field.getAnnotation(ApiModelProperty.class).value());
|
|
view.setFieldDesc(field.getAnnotation(ApiModelProperty.class).value());
|
|
|
configList.add(view);
|
|
configList.add(view);
|
|
|
}
|
|
}
|
|
|
- return ResultTable.resultTableOk(new PageInfo<RiskConfigView>(configList));
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -148,18 +164,26 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
* 锁定用户禁止用户登录
|
|
* 锁定用户禁止用户登录
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
- public Result<?> lockUser(String userId) {
|
|
|
|
|
- YtAppUser appUser = riskUserMapper.selectByUserId(userId);
|
|
|
|
|
|
|
+ public Result<?> lockUser(String userId, AgentUserInfo userInfo) {
|
|
|
|
|
+ YtDyzUser appUser = appFeign.getUserInfo(userId).getData();
|
|
|
if(Objects.isNull(appUser)){
|
|
if(Objects.isNull(appUser)){
|
|
|
return Result.resultOk(RepMessage.LOCK_USER_SUCCESS);
|
|
return Result.resultOk(RepMessage.LOCK_USER_SUCCESS);
|
|
|
}
|
|
}
|
|
|
if(UserStatusEnum.LOCK.getCode().equals(appUser.getUserStatus())){
|
|
if(UserStatusEnum.LOCK.getCode().equals(appUser.getUserStatus())){
|
|
|
return Result.resultErr(RepMessage.ALREADY_RISK_USER);
|
|
return Result.resultErr(RepMessage.ALREADY_RISK_USER);
|
|
|
}
|
|
}
|
|
|
- YtAppUser user = new YtAppUser();
|
|
|
|
|
|
|
+ YtDyzUser user = new YtDyzUser();
|
|
|
user.setUserId(userId);
|
|
user.setUserId(userId);
|
|
|
user.setUserStatus(UserStatusEnum.LOCK.getCode());
|
|
user.setUserStatus(UserStatusEnum.LOCK.getCode());
|
|
|
- riskUserMapper.updateByUserId(user);
|
|
|
|
|
|
|
+ user.setRiskReason(BannedTypeEnum.CHANNEL.getDesc()+"禁止登录");
|
|
|
|
|
+ appFeign.updateUserInfo(user);
|
|
|
|
|
+ RiskBannedParam param = new RiskBannedParam();
|
|
|
|
|
+ param.setUserId(userId);
|
|
|
|
|
+ param.setBannedReason(BannedTypeEnum.CHANNEL.getDesc()+"禁止登录");
|
|
|
|
|
+ param.setOperatorName(userInfo.getNickName());
|
|
|
|
|
+ param.setOperator(userInfo.getUserId());
|
|
|
|
|
+ param.setBannedType(BannedTypeEnum.CHANNEL.getCode());
|
|
|
|
|
+ addBannedRecord(Collections.singletonList(user.getUserId()),param);
|
|
|
return Result.resultOk(RepMessage.LOCK_USER_SUCCESS);
|
|
return Result.resultOk(RepMessage.LOCK_USER_SUCCESS);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -169,11 +193,15 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
@Override
|
|
|
public Result<?> banned(RiskBannedParam param) {
|
|
public Result<?> banned(RiskBannedParam param) {
|
|
|
- YtAppUser appUser = riskUserMapper.selectByUserId(param.getUserId());
|
|
|
|
|
|
|
+ YtDyzUser appUser = appFeign.getUserInfo(param.getUserId()).getData();
|
|
|
if(Objects.isNull(appUser)||UserStatusEnum.RISK.getCode().equals(appUser.getUserStatus())){
|
|
if(Objects.isNull(appUser)||UserStatusEnum.RISK.getCode().equals(appUser.getUserStatus())){
|
|
|
return Result.resultOk(RepMessage.ALREADY_RISK_USER);
|
|
return Result.resultOk(RepMessage.ALREADY_RISK_USER);
|
|
|
}
|
|
}
|
|
|
- riskUserMapper.banned(Collections.singletonList(param.getUserId()));
|
|
|
|
|
|
|
+ YtDyzUser user = new YtDyzUser();
|
|
|
|
|
+ user.setUserId(param.getUserId());
|
|
|
|
|
+ user.setUserStatus(UserStatusEnum.RISK.getCode());
|
|
|
|
|
+ user.setRiskReason(BannedTypeEnum.CHANNEL.getDesc()+"封禁账号");
|
|
|
|
|
+ appFeign.updateUserInfo(user);
|
|
|
addBannedRecord(Collections.singletonList(param.getUserId()),param);
|
|
addBannedRecord(Collections.singletonList(param.getUserId()),param);
|
|
|
return Result.resultOk(RepMessage.ALREADY_RISK_USER);
|
|
return Result.resultOk(RepMessage.ALREADY_RISK_USER);
|
|
|
}
|
|
}
|
|
@@ -204,30 +232,62 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
* 查询登录记录并设置信息
|
|
* 查询登录记录并设置信息
|
|
|
*/
|
|
*/
|
|
|
private void setBannedLoginInfo(List<RiskBannedListView> bannedList) {
|
|
private void setBannedLoginInfo(List<RiskBannedListView> bannedList) {
|
|
|
- List<String> userIdList = bannedList.stream().
|
|
|
|
|
- map(RiskBannedListView::getUserId).collect(Collectors.toList());
|
|
|
|
|
- List<YtAppUserLoginRecord> records = loginRecordMapper.getByUserIds(userIdList);
|
|
|
|
|
- Map<String, List<YtAppUserLoginRecord>> recordMap = records.stream().collect(
|
|
|
|
|
- Collectors.groupingBy(YtAppUserLoginRecord::getUserId));
|
|
|
|
|
|
|
+ String userIds = bannedList.stream().map(
|
|
|
|
|
+ RiskBannedListView::getUserId).distinct().collect(Collectors.joining(","));
|
|
|
|
|
+ List<YtDyzUser> data = appFeign.getUserList(userIds).getData();
|
|
|
|
|
+ Map<String, YtDyzUser> collect = data.stream().collect(Collectors.toMap(YtDyzUser::getUserId, o->o));
|
|
|
for (RiskBannedListView view : bannedList) {
|
|
for (RiskBannedListView view : bannedList) {
|
|
|
- if(!recordMap.containsKey(view.getUserId()))continue;
|
|
|
|
|
- List<YtAppUserLoginRecord> collect = recordMap.get(view.getUserId()).stream().sorted(Comparator
|
|
|
|
|
- .comparing(YtAppUserLoginRecord::getLoginTime).reversed()).limit(1).collect(Collectors.toList());
|
|
|
|
|
- YtAppUserLoginRecord record = collect.get(0);
|
|
|
|
|
- view.setPhoneBrand(record.getPhoneBrand());
|
|
|
|
|
- view.setPhoneModel(record.getPhoneModel());
|
|
|
|
|
- view.setCommunicationOperator(record.getCommunicationOperator());
|
|
|
|
|
- view.setIpAddr(record.getIpAddr());
|
|
|
|
|
|
|
+ if(!collect.containsKey(view.getUserId()))continue;
|
|
|
|
|
+ YtDyzUser dyzUser = collect.get(view.getUserId());
|
|
|
|
|
+ List<YtDyzLoginRecord> recordList = dyzUser.getLoginRecordList();
|
|
|
|
|
+ if(CollUtil.isNotEmpty(recordList)){
|
|
|
|
|
+ view.setPhoneModel(recordList.get(0).getDeviceModel());
|
|
|
|
|
+ view.setPhoneBrand(recordList.get(0).getDeviceBrand());
|
|
|
|
|
+ view.setIpAddr(recordList.get(0).getIpAddr());
|
|
|
|
|
+ view.setCommunicationOperator(recordList.get(0).getOperator());
|
|
|
|
|
+ }
|
|
|
|
|
+ view.setPlatformId(dyzUser.getPlatformId());
|
|
|
|
|
+ view.setChannelId(dyzUser.getUserId());
|
|
|
|
|
+ view.setUserId(dyzUser.getUserId());
|
|
|
|
|
+ view.setNickName(dyzUser.getNickName());
|
|
|
|
|
+ view.setRegistryTime(dyzUser.getRegistryTime());
|
|
|
|
|
+ view.setLastLoginIp(dyzUser.getLastLoginIp());
|
|
|
|
|
+ view.setLastLoginTime(dyzUser.getLastLoginTime());
|
|
|
|
|
+ view.setUserStatus(dyzUser.getUserStatus());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 设置解封用户信息
|
|
|
|
|
+ */
|
|
|
|
|
+ private void setDeblockLoginInfo(List<RiskDeblockingListView> deblockingList) {
|
|
|
|
|
+ String userIds = deblockingList.stream().map(
|
|
|
|
|
+ RiskDeblockingListView::getUserId).distinct().collect(Collectors.joining(","));
|
|
|
|
|
+ List<YtDyzUser> data = appFeign.getUserList(userIds).getData();
|
|
|
|
|
+ Map<String, YtDyzUser> collect = data.stream().collect(Collectors.toMap(YtDyzUser::getUserId, o->o));
|
|
|
|
|
+ for (RiskDeblockingListView view : deblockingList) {
|
|
|
|
|
+ if(!collect.containsKey(view.getUserId()))continue;
|
|
|
|
|
+ YtDyzUser dyzUser = collect.get(view.getUserId());
|
|
|
|
|
+ view.setPlatformId(dyzUser.getPlatformId());
|
|
|
|
|
+ view.setChannelId(dyzUser.getUserId());
|
|
|
|
|
+ view.setUserId(dyzUser.getUserId());
|
|
|
|
|
+ view.setNickName(dyzUser.getNickName());
|
|
|
|
|
+ view.setRegistryTime(dyzUser.getRegistryTime());
|
|
|
|
|
+ view.setLastLoginTime(dyzUser.getLastLoginTime());
|
|
|
|
|
+ view.setUserStatus(dyzUser.getUserStatus());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
/**
|
|
/**
|
|
|
* 查询解封记录
|
|
* 查询解封记录
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public ResultTable<RiskDeblockingListView> deblockingList(RiskDeblockingListParam param) {
|
|
public ResultTable<RiskDeblockingListView> deblockingList(RiskDeblockingListParam param) {
|
|
|
PageHelper.startPage(param.getPage(),param.getLimit());
|
|
PageHelper.startPage(param.getPage(),param.getLimit());
|
|
|
- return ResultTable.resultTableOk(new PageInfo<RiskDeblockingListView>(riskManageMapper.getDeblockingList(param)));
|
|
|
|
|
|
|
+ List<RiskDeblockingListView> deblockingList = riskManageMapper.getDeblockingList(param);
|
|
|
|
|
+ if(CollUtil.isNotEmpty(deblockingList)){
|
|
|
|
|
+ setDeblockLoginInfo(deblockingList);
|
|
|
|
|
+ }
|
|
|
|
|
+ return ResultTable.resultTableOk(new PageInfo<RiskDeblockingListView>(deblockingList));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -236,7 +296,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Result<?> changeUserStatus(RiskUserStatusParam param) {
|
|
public Result<?> changeUserStatus(RiskUserStatusParam param) {
|
|
|
- YtAppUser user = riskUserMapper.selectByUserId(param.getUserId());
|
|
|
|
|
|
|
+ YtDyzUser user = appFeign.getUserInfo(param.getUserId()).getData();
|
|
|
if(param.getUserStatus().equals(user.getUserStatus())){
|
|
if(param.getUserStatus().equals(user.getUserStatus())){
|
|
|
return Result.resultOk(RepMessage.USER_STATUS_MODIFY);
|
|
return Result.resultOk(RepMessage.USER_STATUS_MODIFY);
|
|
|
}
|
|
}
|
|
@@ -336,22 +396,30 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
return Result.resultOk(RepMessage.QUERY_SUCCESS);
|
|
return Result.resultOk(RepMessage.QUERY_SUCCESS);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 根据appId查询应用配置模版
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Result<RiskTemplateView> getAppConfig(String appId) {
|
|
|
|
|
+ return Result.resultObjOk(configMapper.getAppConfig(appId));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 修改用户信息
|
|
* 修改用户信息
|
|
|
*/
|
|
*/
|
|
|
- private void modifyAppUserInfo(YtAppUser user, RiskUserStatusParam param) {
|
|
|
|
|
- YtAppUser appUser = new YtAppUser();
|
|
|
|
|
|
|
+ private void modifyAppUserInfo(YtDyzUser user, RiskUserStatusParam param) {
|
|
|
|
|
+ YtDyzUser appUser = new YtDyzUser();
|
|
|
appUser.setUserId(param.getUserId());
|
|
appUser.setUserId(param.getUserId());
|
|
|
appUser.setUserStatus(param.getUserStatus());
|
|
appUser.setUserStatus(param.getUserStatus());
|
|
|
switch (param.getUserStatus()){
|
|
switch (param.getUserStatus()){
|
|
|
case 2:
|
|
case 2:
|
|
|
- appUser.setLockReason(param.getReason());
|
|
|
|
|
- break;
|
|
|
|
|
|
|
+ appUser.setRiskReason(param.getReason());
|
|
|
case 3: //增加封禁记录
|
|
case 3: //增加封禁记录
|
|
|
RiskBannedParam bannedParam = new RiskBannedParam();
|
|
RiskBannedParam bannedParam = new RiskBannedParam();
|
|
|
BeanUtil.copyProperties(param, bannedParam);
|
|
BeanUtil.copyProperties(param, bannedParam);
|
|
|
bannedParam.setUserId(param.getUserId());
|
|
bannedParam.setUserId(param.getUserId());
|
|
|
bannedParam.setBannedReason(param.getReason());
|
|
bannedParam.setBannedReason(param.getReason());
|
|
|
|
|
+ appUser.setRiskReason(param.getReason());
|
|
|
addBannedRecord(Collections.singletonList(user.getUserId()),bannedParam);
|
|
addBannedRecord(Collections.singletonList(user.getUserId()),bannedParam);
|
|
|
break;
|
|
break;
|
|
|
default: //解禁
|
|
default: //解禁
|
|
@@ -361,7 +429,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
,param.getReason(),param.getOperatorName());
|
|
,param.getReason(),param.getOperatorName());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- riskUserMapper.updateByUserId(appUser);
|
|
|
|
|
|
|
+ appFeign.updateUserInfo(appUser);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -371,6 +439,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
YtPlatformDeblocking deblocking = new YtPlatformDeblocking();
|
|
YtPlatformDeblocking deblocking = new YtPlatformDeblocking();
|
|
|
deblocking.setDeblockingId(IdUtil.fastSimpleUUID());
|
|
deblocking.setDeblockingId(IdUtil.fastSimpleUUID());
|
|
|
deblocking.setUserId(userId);
|
|
deblocking.setUserId(userId);
|
|
|
|
|
+ deblocking.setAppId("a684009039113d");
|
|
|
deblocking.setOperator(operator);
|
|
deblocking.setOperator(operator);
|
|
|
deblocking.setOperatorName(operatorName);
|
|
deblocking.setOperatorName(operatorName);
|
|
|
deblocking.setBannedId(bannedId);
|
|
deblocking.setBannedId(bannedId);
|
|
@@ -389,10 +458,11 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
banned = new YtPlatformBanned();
|
|
banned = new YtPlatformBanned();
|
|
|
banned.setBannedId(IdUtil.fastSimpleUUID());
|
|
banned.setBannedId(IdUtil.fastSimpleUUID());
|
|
|
banned.setUserId(userId);
|
|
banned.setUserId(userId);
|
|
|
|
|
+ banned.setAppId("a684009039113d");
|
|
|
banned.setChannelId(param.getOperator());
|
|
banned.setChannelId(param.getOperator());
|
|
|
banned.setBannedLimit(Objects.isNull(param.getBannedLimit())?defaultLimit:param.getBannedLimit());
|
|
banned.setBannedLimit(Objects.isNull(param.getBannedLimit())?defaultLimit:param.getBannedLimit());
|
|
|
banned.setBannedReason(StrUtil.isBlank(param.getBannedReason())?defaultReason:param.getBannedReason());
|
|
banned.setBannedReason(StrUtil.isBlank(param.getBannedReason())?defaultReason:param.getBannedReason());
|
|
|
- banned.setBannedType(param.getBannedType());
|
|
|
|
|
|
|
+ banned.setBannedType(BannedTypeEnum.CHANNEL.getCode());
|
|
|
banned.setBannedTime(new Date());
|
|
banned.setBannedTime(new Date());
|
|
|
banned.setOperator(param.getOperator());
|
|
banned.setOperator(param.getOperator());
|
|
|
banned.setOperatorName(param.getOperatorName());
|
|
banned.setOperatorName(param.getOperatorName());
|