package com.mossflower.antifraud.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.mossflower.antifraud.admin.service.AdminPortraitService;
import com.mossflower.antifraud.common.G;
import com.mossflower.antifraud.common.exception.SystemException;
import com.mossflower.antifraud.dto.AdminPortraitDto;
import com.mossflower.antifraud.entity.FraudAssessment;
import com.mossflower.antifraud.entity.Portrait;
import com.mossflower.antifraud.mapper.FraudAssessmentMapper;
import com.mossflower.antifraud.mapper.PortraitMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
/**
* @author z's'b
* @version 1.0
* @date 2022/8/21 12:19
*/
@Service
@Transactional(rollbackFor = SQLException.class)
public class AdminPortraitServiceImpl implements AdminPortraitService {
@Autowired
private PortraitMapper portraitMapper;
@Autowired
private FraudAssessmentMapper fraudAssessmentMapper;
@Override
public AdminPortraitDto getPortrait(String stuCard) {
LambdaQueryWrapper<Portrait> lqw = new LambdaQueryWrapper<>();
lqw.eq(Portrait::getStudentCard, stuCard);
LambdaQueryWrapper<FraudAssessment> fraudAssessmentLambdaQueryWrapper = new LambdaQueryWrapper<>();
fraudAssessmentLambdaQueryWrapper.eq(FraudAssessment::getStudentCard, stuCard).
eq(FraudAssessment::getIsDelete, false);
Portrait selectPortrait = portraitMapper.selectOne(lqw);
String character = "爱管闲事、安静、跋扈、拜金、保守、报复型、暴躁、悲观、博学多才、不合群、不灵活、不善表达、不善言谈交际、不专注、"
+ "才思敏捷、猜疑、沉静、沉著、诚实坦白、成熟、成熟稳重、迟钝、迟缓、冲动、处事洒脱、聪明伶俐、粗心、脆弱、大胆、独立、独断独行、"
+ "大公无私、胆怯、胆小、胆小怕事、担忧、淡泊名利、喋喋不休、独立、多愁善感、多疑、乏味、反覆、放任、风趣、风趣幽默、浮躁 、"
+ "富创造力、富有朝气、富于冒险、刚正不阿、杠精、耿直、工作狂、孤僻、固执、寡言、果断、果敢坚持、过分敏感、害羞、好表现、好吃懒做、"
+ "好动、好交际、好批评、好心肠、好争吵、豪放不羁、豪爽、憨厚、和气 、和蔼可亲、患得患失、活泼、活泼可爱、活力充沛、豁达、"
+ "积极、积极进取、机敏、尖刻、俭朴、坚强、见多识广、见利忘义、健谈、健忘、狡猾、谨慎、井井有条、精力充沛、倔强、"
+ "开朗、开朗大方、可爱、可亲、可依赖、刻薄 、口是心非、快言快语、懒惰、老练、老实、老实巴交、唠叨、乐观、乐善好施、雷历风行、"
+ "冷淡、冷漠、礼貌、吝啬、鲁莽、罗嗦、满足、慢条斯理、莽撞、敏感、目中无人、严肃、言行不一、阳光、一本正经、依赖、毅力、抑郁、"
+ "易激动、易见异思迁、易怒、易轻率作决定、易随波逐流、易兴奋、疑神疑鬼、意志坚定、阴险狡诈、勇敢、勇敢正义、友爱、友善、犹豫不决、"
+ "忧心忡忡、有趣、有韧性、有条理、优柔寡断、幽默、幼稚、幼稚调皮、愉快、郁郁寡欢、圆滑老练、怨恨、";
List<String> collect = Arrays.stream(character.split("、")).collect(Collectors.toList());
String characters = "";
characters += (collect.get(new Random().nextInt(collect.size())) + "、");
characters += (collect.get(new Random().nextInt(collect.size())) + "、");
characters += collect.get(new Random().nextInt(collect.size()));
List<String> fraudTags = new ArrayList<>();
List<String> fraudTypes = new ArrayList<>();
int count = 0;
List<FraudAssessment> fraudAssessments = fraudAssessmentMapper.selectList(fraudAssessmentLambdaQueryWrapper);
for (FraudAssessment fraudAssessment : fraudAssessments) {
if (fraudAssessment.getFraudResult()) {
count++;
fraudTypes.add(fraudAssessment.getFraudType());
}
fraudTags.addAll(Arrays.asList(fraudAssessment.getFraudTags().split(",")));
}
List<String> list = fraudTags.stream().distinct().collect(Collectors.toList());
String tags = String.join(",", list);
String types = String.join(",", fraudTypes);
if (selectPortrait == null) {
Portrait portrait = new Portrait();
portrait.setStudentCard(stuCard);
portrait.setPersonality(characters);
portrait.setFraudTags(tags);
portrait.setFraudTypes(types);
portrait.setIsFraud(count >= 3);
int insert = portraitMapper.insert(portrait);
if (insert <= 0) {
throw new SystemException("插入失败");
}
} else {
selectPortrait.setPersonality(characters);
selectPortrait.setFraudTags(tags);
selectPortrait.setFraudTypes(types);
selectPortrait.setIsFraud(count >= 3);
int update = portraitMapper.updateById(selectPortrait);
if (update <= 0) {
throw new SystemException("更新失败");
}
}
AdminPortraitDto adminPortraitDto = new AdminPortraitDto();
adminPortraitDto.setStudentCard(stuCard);
adminPortraitDto.setPersonality(characters);
adminPortraitDto.setFraudTags(tags);
adminPortraitDto.setFraudTypes(types);
adminPortraitDto.setIsFraud(count >= 3);
List<Integer> fraudLevel = new ArrayList<>();
List<Integer> answeredNum = new ArrayList<>();
List<Integer> questionNum = new ArrayList<>();
for (int i = 0; i < 5; i++) {
fraudLevel.add(new Random().nextInt(5));
answeredNum.add(new Random().nextInt(10) * 5 + 47);
questionNum.add(new Random().nextInt(5) * 10 + 100);
}
if (!adminPortraitDto.getIsFraud()) {
for (int i = 0; i < fraudLevel.size(); i++) {
if (fraudLevel.get(i) >= 2) {
fraudLevel.set(i, new Random().nextInt(2));
}
}
} else {
for (int i = 0; i < fraudLevel.size(); i++) {
if (fraudLevel.get(i) < 2) {
fraudLevel.set(i, new Random().nextInt(3) + 2);
}
}
}
adminPortraitDto.setFraudLevel(fraudLevel);
adminPortraitDto.setAnsweredNum(answeredNum);
adminPortraitDto.setQuestionNum(questionNum);
G.removeDecodeJwt();
return adminPortraitDto;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Vue开发的大学生防诈骗交互式课件系统源码+sql数据库+项目使用说明.zip 一、项目介绍 1. 项目名称 前台交互课件 后台管理系统 微信小程序端 2. 项目功能 前台交互课件 场景探索,通过3D场景探索,了解诈骗的常见手段 复盘讲解,通过案例了解诈骗的常见手段 游戏巩固,通过游戏巩固诈骗的常见手段 测试提升,通过测试来提升自己的防诈骗能力 用户画像,生成个性化的用户画像,查缺补漏 后台管理系统 用户班级管理,查看每个班级的用户信息及用户画像 测试题管理,对测试题进行增删改查 数据统计,对用户的测试数据进行统计分析 权限管理,对用户的权限进行管理 系统日志,对系统的操作日志进行查看 标签管理,对用户的标签进行管理 微信小程序端 课件展示,展示课件的内容 题目测试,进行题目测试 个人中心,查看个人信息及个人画像 课件下载,下载课件 【备注】更多详情请看项目说明!!!
资源推荐
资源详情
资源评论
收起资源包目录
基于Vue开发的大学生防诈骗交互式课件系统源码+sql数据库+项目使用说明.zip (485个子文件)
index.html 368B
favicon.ico 4KB
AdminPortraitServiceImpl.java 7KB
StudentPortraitServiceImpl.java 7KB
AdminStatisticsServiceImpl.java 4KB
StudentFraudAssessmentServiceImpl.java 3KB
JsonObjectMapper.java 3KB
JwtInterceptor.java 3KB
ExceptionInterceptor.java 2KB
AdminStatisticsController.java 2KB
Student.java 2KB
Admin.java 2KB
WebConfig.java 2KB
JwtUtil.java 2KB
FraudAssessment.java 2KB
AdminFraudSubjectController.java 2KB
FraudSubject.java 2KB
AdminFraudSubjectServiceImpl.java 2KB
R.java 2KB
StuClazz.java 2KB
MpConfig.java 2KB
StudentFraudSubjectServiceImpl.java 2KB
StudentServiceImpl.java 2KB
Portrait.java 2KB
AdminFraudTagServiceImpl.java 2KB
AdminStatisticsService.java 2KB
AdminServiceImpl.java 1KB
FraudTag.java 1KB
FraudType.java 1KB
AdminFraudTypeServiceImpl.java 1KB
StudentController.java 1KB
AdminFraudTagController.java 1KB
G.java 1KB
StudentFraudSubjectController.java 1KB
AdminStuServiceImpl.java 1KB
AdminController.java 1KB
PushServiceImpl.java 1KB
AdminFraudSubjectService.java 1KB
StudentFraudAssessmentController.java 973B
StudentPortraitController.java 947B
AdminFraudTypeController.java 933B
AdminStuController.java 930B
AdminStuClazzController.java 925B
AdminPortraitController.java 912B
PushController.java 880B
ExceptionMsgCode.java 809B
AdminStuClazzServiceImpl.java 795B
AntifraudApplication.java 780B
Constant.java 764B
AdminFraudTagService.java 575B
StudentService.java 562B
CommonMsgCode.java 478B
StudentFraudSubjectService.java 451B
AdminStuService.java 427B
AdminPortraitDto.java 409B
StudentFraudAssessmentService.java 405B
AdminService.java 404B
StudentPortraitService.java 400B
AdminPortraitService.java 391B
PushService.java 360B
FraudAssessmentMapper.java 352B
AdminMapper.java 349B
FraudSubjectMapper.java 344B
AdminStuClazzService.java 340B
FraudTypeMapper.java 335B
StuClazzMapper.java 332B
PortraitMapper.java 332B
FraudTagMapper.java 332B
AdminFraudTypeService.java 309B
StudentMapper.java 289B
StuPortraitDto.java 289B
AntifraudApplicationTests.java 228B
BusinessException.java 214B
SystemException.java 211B
icon.jpeg 64KB
icon.jpeg 64KB
网购界面.jpg 886KB
网购界面.jpg 886KB
3.jpg 576KB
2.jpg 505KB
9.jpg 493KB
14.jpg 423KB
12.jpg 338KB
4.jpg 333KB
8.jpg 303KB
13.jpg 295KB
5.jpg 274KB
15.jpg 272KB
7.jpg 255KB
10.jpg 230KB
bg.jpg 124KB
bg.jpg 124KB
6.jpg 120KB
11.jpg 103KB
个人画像.jpg 89KB
test.jpg 87KB
game.jpg 81KB
map.jpg 68KB
1.jpg 68KB
首页.jpg 29KB
共 485 条
- 1
- 2
- 3
- 4
- 5
资源评论
极客程序设计
- 粉丝: 7175
- 资源: 3585
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功