|
|
@@ -10,8 +10,10 @@ import com.ytpm.agent.enums.UserStatusEnum;
|
|
|
import com.ytpm.agent.model.YtAppUser;
|
|
|
import com.ytpm.agent.model.YtPlatformBanned;
|
|
|
import com.ytpm.agent.model.YtPlatformDeblocking;
|
|
|
+import com.ytpm.app.model.YtAppUserLoginRecord;
|
|
|
import com.ytpm.app.view.YtAppUserListView;
|
|
|
import com.ytpm.custom.CustomField;
|
|
|
+import com.ytpm.dao.AppLoginRecordMapper;
|
|
|
import com.ytpm.dao.DictMapper;
|
|
|
import com.ytpm.dao.RiskConfigMapper;
|
|
|
import com.ytpm.dao.RiskManageMapper;
|
|
|
@@ -43,9 +45,12 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.lang.reflect.Field;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -64,6 +69,8 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
private RiskUserMapper riskUserMapper;
|
|
|
@Resource
|
|
|
private RiskManageMapper riskManageMapper;
|
|
|
+ @Resource
|
|
|
+ private AppLoginRecordMapper loginRecordMapper;
|
|
|
|
|
|
/**
|
|
|
* 查询配置字段选项
|
|
|
@@ -133,7 +140,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
if(Objects.isNull(appUser)){
|
|
|
return Result.resultOk(RepMessage.LOCK_USER_SUCCESS);
|
|
|
}
|
|
|
- if(UserStatusEnum.NORMAL.getCode().equals(appUser.getUserStatus())){
|
|
|
+ if(UserStatusEnum.LOCK.getCode().equals(appUser.getUserStatus())){
|
|
|
return Result.resultErr(RepMessage.ALREADY_RISK_USER);
|
|
|
}
|
|
|
YtAppUser user = new YtAppUser();
|
|
|
@@ -149,14 +156,12 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public Result<?> banned(RiskBannedParam param) {
|
|
|
- List<YtAppUser> userList = riskUserMapper.getBannedUserList(param);
|
|
|
- if(CollUtil.isEmpty(userList)){
|
|
|
+ YtAppUser appUser = riskUserMapper.selectByUserId(param.getUserId());
|
|
|
+ if(Objects.isNull(appUser)||UserStatusEnum.RISK.getCode().equals(appUser.getUserStatus())){
|
|
|
return Result.resultOk(RepMessage.ALREADY_RISK_USER);
|
|
|
}
|
|
|
- List<String> userIdList = userList.stream().map(YtAppUser::getUserId)
|
|
|
- .distinct().collect(Collectors.toList());
|
|
|
- riskUserMapper.banned(userIdList);
|
|
|
- addBannedRecord(userIdList,param);
|
|
|
+ riskUserMapper.banned(Collections.singletonList(param.getUserId()));
|
|
|
+ addBannedRecord(Collections.singletonList(param.getUserId()),param);
|
|
|
return Result.resultOk(RepMessage.ALREADY_RISK_USER);
|
|
|
}
|
|
|
|
|
|
@@ -175,7 +180,32 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
@Override
|
|
|
public ResultTable<RiskBannedListView> bannedList(RiskBannedListParam param) {
|
|
|
PageHelper.startPage(param.getPage(),param.getLimit());
|
|
|
- return ResultTable.resultTableOk(new PageInfo<RiskBannedListView>(riskManageMapper.getBannedList(param)));
|
|
|
+ List<RiskBannedListView> bannedList = riskManageMapper.getBannedList(param);
|
|
|
+ if(CollUtil.isNotEmpty(bannedList)){
|
|
|
+ setBannedLoginInfo(bannedList);
|
|
|
+ }
|
|
|
+ return ResultTable.resultTableOk(new PageInfo<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));
|
|
|
+ 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());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -318,7 +348,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
deblocking.setBannedId(bannedId);
|
|
|
deblocking.setDeblockingReason(reason);
|
|
|
deblocking.setDeblockingTime(new Date());
|
|
|
- deblocking.setChannelId(userId);
|
|
|
+ deblocking.setChannelId(operator);
|
|
|
riskManageMapper.addDeblockingRecord(deblocking);
|
|
|
}
|
|
|
|
|
|
@@ -335,6 +365,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
|
|
|
banned.setBannedLimit(Objects.isNull(param.getBannedLimit())?defaultLimit:param.getBannedLimit());
|
|
|
banned.setBannedReason(StrUtil.isBlank(param.getBannedReason())?defaultReason:param.getBannedReason());
|
|
|
banned.setBannedType(param.getBannedType());
|
|
|
+ banned.setBannedTime(new Date());
|
|
|
banned.setOperator(param.getOperator());
|
|
|
banned.setOperatorName(param.getOperatorName());
|
|
|
riskUserMapper.addBannedRecord(banned);
|