修改服务器崩溃问题等等

beetlsql3-dev
yz 3 months ago
parent 402b73736f
commit befb3cbdfe

@ -247,8 +247,7 @@ public class CoreUserService extends CoreBaseService<CoreUser> {
* *
* @return * @return
*/ */
public Boolean recordLoginInformation(Long userId, String lastLoginTime) { public Boolean recordLoginInformation(Long userId, String lastLoginTime,CoreUser cacheUser) {
CoreUser cacheUser = coreUserDao.single(userId);
if (cacheUser == null) { if (cacheUser == null) {
return false; return false;
} }

@ -282,66 +282,6 @@ left join core_user_role cur on cu.ID = cur.USER_ID
where cu.CODE = #username# where cu.CODE = #username#
and cur.ROLE_ID in (192, 194) and cur.ROLE_ID in (192, 194)
[//]: # ()
[//]: # (getUserInfosByUsername)
[//]: # (===)
[//]: # (select cu.CODE as username,)
[//]: # (cu.PASSWORD as password,)
[//]: # (IF&#40;s.student_name IS NULL, t.teacher_name, s.student_name&#41; as name, )
[//]: # (cu.old_id as userId,)
[//]: # (if&#40;cur.ROLE_ID = 192, 4, 3&#41; as roleId,)
[//]: # (uc.old_school_id as schoolId,)
[//]: # (uc.universities_colleges_name as schoolName,)
[//]: # (sc.old_class_id as classId,)
[//]: # (sc.class_name as className,)
[//]: # (IF&#40;s.student_mobile IS NULL, t.teacher_mobile, s.student_mobile&#41; as phone,)
[//]: # (IF&#40;uf.old_id is null, uf1.old_id, uf.old_id&#41; as collegeId,)
[//]: # (IF&#40;uf.university_faculty_name is null, uf1.university_faculty_name, uf.university_faculty_name&#41; as collegeName,)
[//]: # (IF&#40;us.old_id is null, us1.old_id, us.old_id&#41; as majorId,)
[//]: # (IF&#40;us.university_system_name is null, us1.university_system_name, us.university_system_name&#41; as majorName,)
[//]: # (s.old_id as studentId,)
[//]: # (t.old_id as teacherId)
[//]: # (from core_user cu)
[//]: # (join universities_colleges uc on cu.ORG_ID = uc.org_id)
[//]: # (left join student s on cu.ID = s.user_id)
[//]: # (left join teacher t on cu.ID = t.user_id)
[//]: # (left join school_class sc on s.class_id = sc.class_id)
[//]: # (left join university_faculty uf on t.university_faculty_id = uf.university_faculty_id)
[//]: # (left join university_faculty uf1 on sc.university_faculty_id = uf1.university_faculty_id)
[//]: # (left join university_system us on t.university_system_id = us.university_system_id)
[//]: # (left join university_system us1 on sc.university_system_id = us1.university_system_id)
[//]: # (left join core_user_role cur on cu.ID = cur.USER_ID)
[//]: # (where cur.ROLE_ID in &#40;192, 194&#41; )
getUserInfosByUsername getUserInfosByUsername
=== ===
select cu.CODE as username, select cu.CODE as username,

@ -77,6 +77,15 @@
<div class="layui-row" id="admin_view" style="margin: 20px 0;"> <div class="layui-row" id="admin_view" style="margin: 20px 0;">
<script id="admin_Demo" type="text/html"> <script id="admin_Demo" type="text/html">
<div class="layui-row"> <div class="layui-row">
<div class="jstd" style="background-color: #7f83f7">
<div class="layui-col-md4">
<i class="iconfont" style="font-size: 4rem">&#xebc2;</i>
</div>
<div class="layui-col-md8 jsrc1" style="text-align: right">
<p>院校数量</p>
<p style="margin-top: 20px;">{{!$.isEmpty(d.schoolNumber)?d.schoolNumber:0}}</p>
</div>
</div>
<div class="jsrc" style="background-color: #ff7a70"> <div class="jsrc" style="background-color: #ff7a70">
<div class="layui-col-md4"> <div class="layui-col-md4">
<i class="iconfont" style="font-size: 4rem">&#xebcf;</i> <i class="iconfont" style="font-size: 4rem">&#xebcf;</i>
@ -113,15 +122,7 @@
<p style="margin-top: 20px;">{{!$.isEmpty(d.caseNumber)?d.caseNumber:0}}</p> <p style="margin-top: 20px;">{{!$.isEmpty(d.caseNumber)?d.caseNumber:0}}</p>
</div> </div>
</div> </div>
<div class="jsrc" style="background-color: #648cff">
<div class="layui-col-md4">
<i class="iconfont" style="font-size: 4rem">&#xebd0;</i>
</div>
<div class="layui-col-md8 jsrc1" style="text-align: right">
<p>视频数量</p>
<p style="margin-top: 20px;">{{!$.isEmpty(d.videoNumber)?d.videoNumber:0}}</p>
</div>
</div>
</div> </div>
<div class="layui-row" style="margin: 20px 0;" id="title_view1"> <div class="layui-row" style="margin: 20px 0;" id="title_view1">
@ -135,24 +136,25 @@
<p style="margin-top: 20px;">{{!$.isEmpty(d.questionNumber)?d.questionNumber:0}}</p> <p style="margin-top: 20px;">{{!$.isEmpty(d.questionNumber)?d.questionNumber:0}}</p>
</div> </div>
</div> </div>
<div class="jstd" style="background-color: #7f83f7"> <div class="jsrc" style="background-color: #648cff">
<div class="layui-col-md4">
<i class="iconfont" style="font-size: 4rem">&#xebc2;</i>
</div>
<div class="layui-col-md8 jsrc1" style="text-align: right">
<p>院校数量</p>
<p style="margin-top: 20px;">{{!$.isEmpty(d.schoolNumber)?d.schoolNumber:0}}</p>
</div>
</div>
<div class="jsrc" style="background-color: #93cb3f">
<div class="layui-col-md4"> <div class="layui-col-md4">
<i class="iconfont" style="font-size: 4rem">&#xebd1;</i> <i class="iconfont" style="font-size: 4rem">&#xebd0;</i>
</div> </div>
<div class="layui-col-md8 jsrc1" style="text-align: right"> <div class="layui-col-md8 jsrc1" style="text-align: right">
<p>上线课程数</p> <p>视频数量</p>
<p style="margin-top: 20px;">{{!$.isEmpty(d.courseNumber)?d.courseNumber:0}}</p> <p style="margin-top: 20px;">{{!$.isEmpty(d.videoNumber)?d.videoNumber:0}}</p>
</div> </div>
</div> </div>
<!-- <div class="jsrc" style="background-color: #93cb3f">-->
<!-- <div class="layui-col-md4">-->
<!-- <i class="iconfont" style="font-size: 4rem">&#xebd1;</i>-->
<!-- </div>-->
<!-- <div class="layui-col-md8 jsrc1" style="text-align: right">-->
<!-- <p>上线课程数</p>-->
<!-- <p style="margin-top: 20px;">{{!$.isEmpty(d.courseNumber)?d.courseNumber:0}}</p>-->
<!-- </div>-->
<!-- </div>-->
<div class="jstd" style="background-color: #307db0"> <div class="jstd" style="background-color: #307db0">
<div class="layui-col-md4"> <div class="layui-col-md4">
<i class="iconfont" style="font-size: 4rem">&#xebd4;</i> <i class="iconfont" style="font-size: 4rem">&#xebd4;</i>
@ -209,15 +211,15 @@
<p style="margin-top: 20px;">{{!$.isEmpty(d.studentPersonTime)?d.studentPersonTime:0}}</p> <p style="margin-top: 20px;">{{!$.isEmpty(d.studentPersonTime)?d.studentPersonTime:0}}</p>
</div> </div>
</div> </div>
<div class="jsrc" style="background-color: #93cb3f"> <!-- <div class="jsrc" style="background-color: #93cb3f">-->
<div class="layui-col-md4"> <!-- <div class="layui-col-md4">-->
<i class="iconfont" style="font-size: 4rem">&#xebd1;</i> <!-- <i class="iconfont" style="font-size: 4rem">&#xebd1;</i>-->
</div> <!-- </div>-->
<div class="layui-col-md8 jsrc1" style="text-align: right"> <!-- <div class="layui-col-md8 jsrc1" style="text-align: right">-->
<p>上线课程数</p> <!-- <p>上线课程数</p>-->
<p style="margin-top: 20px;">{{!$.isEmpty(d.courseNumber)?d.courseNumber:0}}</p> <!-- <p style="margin-top: 20px;">{{!$.isEmpty(d.courseNumber)?d.courseNumber:0}}</p>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
</div> </div>
<div class="layui-row" style="margin: 20px 0;"> <div class="layui-row" style="margin: 20px 0;">
<div class="jstd" style="background-color: #307db0"> <div class="jstd" style="background-color: #307db0">

@ -122,6 +122,7 @@ public class InterceptorConfig implements WebMvcConfigurer, InitializingBean {
"/wx", "/wx",
"/test/**", "/test/**",
"/account/**", "/account/**",
"/getSonSystemLogo/**",
"/api/resourcesApplication/logicPicture.json", "/api/resourcesApplication/logicPicture.json",
"/api/resourcesApplication/getPageList.do" "/api/resourcesApplication/getPageList.do"
// "/upload/**" // "/upload/**"

@ -62,85 +62,86 @@ public class KeyExpiredListener extends KeyExpirationEventMessageListener {
super(listenerContainer); super(listenerContainer);
} }
@Override @Override //*****
protected void doHandleMessage(Message message) { protected void doHandleMessage(Message message) {
super.doHandleMessage(message); return;
// super.doHandleMessage(message);
try {
String messageAsString = new String(message.getBody(), StandardCharsets.UTF_8); // try {
// String messageAsString = new String(message.getBody(), StandardCharsets.UTF_8);
// 用户token到期事件 //
if (messageAsString.indexOf(TOKEN_KEY) == 0) { // // 用户token到期事件
// if (messageAsString.indexOf(TOKEN_KEY) == 0) {
log.info("有用户的token到期{}", messageAsString); //
// log.info("有用户的token到期{}", messageAsString);
String token = messageAsString.replace(TOKEN_KEY + ":", ""); //
List<String> audience = JWT.decode(token).getAudience(); // String token = messageAsString.replace(TOKEN_KEY + ":", "");
Map<String, Claim> claims = JWT.decode(token).getClaims(); // List<String> audience = JWT.decode(token).getAudience();
String userId = CollectionUtil.getFirst(audience); // Map<String, Claim> claims = JWT.decode(token).getClaims();
// String userId = CollectionUtil.getFirst(audience);
// 获取真实的用户ID和身份类型 //
String realId = "", jobType1Name = ""; // // 获取真实的用户ID和身份类型
for (String key : claims.keySet()) { // String realId = "", jobType1Name = "";
realId = key; // for (String key : claims.keySet()) {
jobType1Name = claims.get(key).asString(); // realId = key;
} // jobType1Name = claims.get(key).asString();
// }
// 这里必然能查到系统用户 //
CoreUser coreUser = coreUserService.getUserById(Long.valueOf(userId)); // // 这里必然能查到系统用户
// CoreUser coreUser = coreUserService.getUserById(Long.valueOf(userId));
//查询最新一次登出得记录 //
SysLog logoutData = sysLogDao.getSQLManager().lambdaQuery(SysLog.class) // //查询最新一次登出得记录
.andEq(SysLog::getRequestUrl, TOKEN_EXPIRED_MESSAGE) // SysLog logoutData = sysLogDao.getSQLManager().lambdaQuery(SysLog.class)
.andEq(SysLog::getUserId, userId) // .andEq(SysLog::getRequestUrl, TOKEN_EXPIRED_MESSAGE)
.desc(SysLog::getCreateTime) // .andEq(SysLog::getUserId, userId)
.limit(0, 1).single(); // .desc(SysLog::getCreateTime)
// .limit(0, 1).single();
List<SysLog> single = sysLogDao.getSQLManager().lambdaQuery(SysLog.class) //
.andEq(SysLog::getUserId, userId) // List<SysLog> single = sysLogDao.getSQLManager().lambdaQuery(SysLog.class)
.andLike(SysLog::getRequestUrl, "%" + ResponseControllerAdvice.LOGIN_URL) // .andEq(SysLog::getUserId, userId)
.andGreat(SysLog::getCreateTime,Query.filterEmpty(Objects.isNull(logoutData)? false : logoutData.getCreateTime())).select(); // .andLike(SysLog::getRequestUrl, "%" + ResponseControllerAdvice.LOGIN_URL)
// .andGreat(SysLog::getCreateTime,Query.filterEmpty(Objects.isNull(logoutData)? false : logoutData.getCreateTime())).select();
List<Long> sysLogIdData = new ArrayList<>(); //
single.forEach(item -> { // List<Long> sysLogIdData = new ArrayList<>();
sysLogIdData.add(item.getId()); // single.forEach(item -> {
}); // sysLogIdData.add(item.getId());
// });
// 记录上一次登录的时间,距离现在的时间差(秒) //
SysLog sysLog = new SysLog(); // // 记录上一次登录的时间,距离现在的时间差(秒)
Date now = cn.jlw.util.DateUtil.getPreciseTime(new Date()); // SysLog sysLog = new SysLog();
// 这里固定该接口的请求路径 // Date now = cn.jlw.util.DateUtil.getPreciseTime(new Date());
sysLog.setMethod("com.ibeetl.jlw.conf.KeyExpiredListener.doHandleMessage"); // // 这里固定该接口的请求路径
sysLog.setRequestUrl(TOKEN_EXPIRED_MESSAGE); // sysLog.setMethod("com.ibeetl.jlw.conf.KeyExpiredListener.doHandleMessage");
sysLog.setParams("{\"_referer\":[]}"); // sysLog.setRequestUrl(TOKEN_EXPIRED_MESSAGE);
// sysLog.setResult(String.valueOf(DateUtil.between(coreUser.getLastLoginTime(), now, DateUnit.SECOND))); // sysLog.setParams("{\"_referer\":[]}");
sysLog.setResult(StringUtils.join(sysLogIdData, ",")); //// sysLog.setResult(String.valueOf(DateUtil.between(coreUser.getLastLoginTime(), now, DateUnit.SECOND)));
sysLog.setIp("0.0.0.0"); // sysLog.setResult(StringUtils.join(sysLogIdData, ","));
sysLog.setCreateTime(now); // sysLog.setIp("0.0.0.0");
sysLog.setResultTime(now); // sysLog.setCreateTime(now);
sysLog.setSession(token); // sysLog.setResultTime(now);
sysLog.setUserId(coreUser.getId()); // sysLog.setSession(token);
sysLog.setToken(token); // sysLog.setUserId(coreUser.getId());
//目前这个字段还没有用到,所以先暂时用来存储学习时长 // sysLog.setToken(token);
sysLog.setOpenId(String.valueOf(DateUtil.between(coreUser.getLastLoginTime(), now, DateUnit.SECOND))); // //目前这个字段还没有用到,所以先暂时用来存储学习时长
// 记录学生ID // sysLog.setOpenId(String.valueOf(DateUtil.between(coreUser.getLastLoginTime(), now, DateUnit.SECOND)));
if (null != realId && StrUtil.isNotBlank(jobType1Name) && JT_S_03.equals(MenuEnums.getBySelfAttributeName(jobType1Name))) { // // 记录学生ID
sysLog.setStudentId(Long.valueOf(realId)); // if (null != realId && StrUtil.isNotBlank(jobType1Name) && JT_S_03.equals(MenuEnums.getBySelfAttributeName(jobType1Name))) {
} // sysLog.setStudentId(Long.valueOf(realId));
sysLogService.insert(sysLog); // }
// sysLogService.insert(sysLog);
List<StudentTeacherSystemUseLogAnalysis> teacherSystemUseLogAnalyses = studentTeacherSystemUseLogAnalysisDao.getSQLManager() //
.lambdaQuery(StudentTeacherSystemUseLogAnalysis.class) // List<StudentTeacherSystemUseLogAnalysis> teacherSystemUseLogAnalyses = studentTeacherSystemUseLogAnalysisDao.getSQLManager()
.andIsNull(StudentTeacherSystemUseLogAnalysis::getDayTime).select(); // .lambdaQuery(StudentTeacherSystemUseLogAnalysis.class)
teacherSystemUseLogAnalyses.forEach(item ->{ // .andIsNull(StudentTeacherSystemUseLogAnalysis::getDayTime).select();
long time = (Objects.isNull(item.getAddTime()) ? 0 : item.getAddTime().getTime()) + (Objects.isNull(item.getUseDuration()) ? 0 : (item.getUseDuration() * 60 * 1000)); // teacherSystemUseLogAnalyses.forEach(item ->{
item.setDayTime(DateUtil.formatDateTime(DateUtil.date(time))); // long time = (Objects.isNull(item.getAddTime()) ? 0 : item.getAddTime().getTime()) + (Objects.isNull(item.getUseDuration()) ? 0 : (item.getUseDuration() * 60 * 1000));
studentTeacherSystemUseLogAnalysisDao.updateTemplateById(item); // item.setDayTime(DateUtil.formatDateTime(DateUtil.date(time)));
}); // studentTeacherSystemUseLogAnalysisDao.updateTemplateById(item);
} // });
// }
} catch (Exception e) { //
log.error("有用户的token到期but日志记录失败", e.getMessage()); // } catch (Exception e) {
} // log.error("有用户的token到期but日志记录失败", e.getMessage());
// }
} }
} }

@ -49,6 +49,7 @@ public interface GeneralQuestionLogDao extends BaseMapper<GeneralQuestionLog> {
List<GeneralQuestionLog> getByIds(String ids); List<GeneralQuestionLog> getByIds(String ids);
List<GeneralQuestionLog> getValuesByQuery(GeneralQuestionLogQuery generalQuestionLogQuery); List<GeneralQuestionLog> getValuesByQuery(GeneralQuestionLogQuery generalQuestionLogQuery);
List<GeneralQuestionLog> selectByIdOne(GeneralQuestionLogQuery generalQuestionLogQuery);
List<GeneralQuestionLog> getValuesByQueryNotWithPermission(GeneralQuestionLogQuery generalQuestionLogQuery); List<GeneralQuestionLog> getValuesByQueryNotWithPermission(GeneralQuestionLogQuery generalQuestionLogQuery);

@ -35,12 +35,14 @@ public enum SubsystemName {
CSRC("证监会、银保监会、行业协会"), CSRC("证监会、银保监会、行业协会"),
RISK_MANAGEMENT("风险管理"), RISK_MANAGEMENT("风险管理"),
DIGITAL_MARKETING("数字营销"), DIGITAL_MARKETING("数字营销"),
CREDIT_RATING_AGENCIES("征信评级机构"), CREDIT_RATING_AGENCIES("征信评级"),
FINANCIAL_BIGDATA("金融大数据"), //598 FINANCIAL_BIGDATA("金融大数据"), //598
BIGDATA_BASICS("大数据基础"), //Python基础 698 BIGDATA_BASICS("大数据基础"), //Python基础 698
MACHINE_LEARNING("机器学习"), //798 MACHINE_LEARNING("机器学习"), //798
INTELLIGEN_RISK_CONTROL("智能风控"),//金融风险管理 898 INTELLIGEN_RISK_CONTROL("智能风控"),//金融风险管理 898
IPO("私募"); Text_MINING("文本挖掘"),//文本挖掘
IPO("私募"),
MONEY_MANAGEMENT_NEW("研究咨询"); //智能理财分析教学系统V2.0

@ -689,6 +689,23 @@ public class CourseInfoService extends CoreBaseService<CourseInfo> {
buildCourseInfoResources(courseInfoList); buildCourseInfoResources(courseInfoList);
courseInfoList.sort(Comparator.comparing(o -> defaultIfNull(o.getOrderIndex(), ZERO))); courseInfoList.sort(Comparator.comparing(o -> defaultIfNull(o.getOrderIndex(), ZERO)));
for (int i = 0; i < courseInfoList.size(); i++) {
CourseInfo courseInfo1 = courseInfoList.get(i);
if(courseInfo1!=null){
List<ResourcesInfo> resourcesInfo = courseInfo1.getResourcesInfo();
if(!resourcesInfo.isEmpty()){
for (int j = 0; j < resourcesInfo.size(); j++) {
if(resourcesInfo.get(j).getResourcesInfoContent().contains("pptx")){
resourcesInfo.get(j).setResourcesInfoContent(resourcesInfo.get(j).getResourcesInfoContent().replace("pptx","pdf"));
}
if(resourcesInfo.get(j).getResourcesInfoContent().contains("pptx")){
resourcesInfo.get(j).setResourcesInfoContent(resourcesInfo.get(j).getResourcesInfoContent().replace("pptx","pdf"));
}
}
}
}
}
return courseInfoList; return courseInfoList;
} }

@ -1391,4 +1391,11 @@ public class GeneralQuestionLogService extends CoreBaseService<GeneralQuestionLo
public Boolean existGeneralQuestionSettingId(Long generalQuestionSettingId) { public Boolean existGeneralQuestionSettingId(Long generalQuestionSettingId) {
return generalQuestionLogDao.existGeneralQuestionSettingId(generalQuestionSettingId); return generalQuestionLogDao.existGeneralQuestionSettingId(generalQuestionSettingId);
} }
public List<QuestionLogAnswerLockVO> questionLogAnswerFinallySubmit(Long generalQuestionLogId) {
GeneralQuestionLogQuery logQuery = new GeneralQuestionLogQuery();
logQuery.setGeneralQuestionLogId(generalQuestionLogId);
List<GeneralQuestionLog> valuesByQueryNotWithPermission = generalQuestionLogDao.selectByIdOne(logQuery);
return BeanUtil.copyToList(valuesByQueryNotWithPermission, QuestionLogAnswerLockVO.class);
}
} }

@ -379,7 +379,7 @@ public class ResourcesApplicationService extends CoreBaseService<ResourcesApplic
item.setRealUrl(realUrl); item.setRealUrl(realUrl);
item.setCanUsed(true); item.setCanUsed(true);
}); });
queryListAfter(list); // queryListAfter(list);
return ret; return ret;
} }

@ -9,6 +9,7 @@ import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.util.DateUtil; import com.ibeetl.admin.core.util.DateUtil;
import com.ibeetl.admin.core.util.enums.DelFlagEnum; import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import com.ibeetl.jlw.conf.KeyExpiredListener; import com.ibeetl.jlw.conf.KeyExpiredListener;
import com.ibeetl.jlw.dao.SysLogDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseQuestionSettingDao; import com.ibeetl.jlw.dao.TeacherOpenCourseQuestionSettingDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseScoreDashboardDao; import com.ibeetl.jlw.dao.TeacherOpenCourseScoreDashboardDao;
import com.ibeetl.jlw.dao.UniversitiesCollegesJurisdictionExperimentalSystemDao; import com.ibeetl.jlw.dao.UniversitiesCollegesJurisdictionExperimentalSystemDao;
@ -119,6 +120,9 @@ public class StatisticalAnalysisService {
@Autowired @Autowired
private CourseInfoService courseInfoService; private CourseInfoService courseInfoService;
@Autowired
private SysLogDao sysLogDao;
/** /**
* *
@ -206,7 +210,7 @@ public class StatisticalAnalysisService {
data.put("signInNum", signinLogs.size()); data.put("signInNum", signinLogs.size());
//到课率 //到课率
if (signinTotalCount != 0 && signinStudentTotalCount != 0) { if (signinTotalCount != 0 && signinStudentTotalCount != 0) {
data.put("signInRate", BigDecimal.valueOf(signinTotalCount).divide(BigDecimal.valueOf(signinStudentTotalCount),2, RoundingMode.DOWN).multiply(BigDecimal.valueOf(100))); data.put("signInRate", BigDecimal.valueOf(signinTotalCount).divide(BigDecimal.valueOf(signinStudentTotalCount), 2, RoundingMode.DOWN).multiply(BigDecimal.valueOf(100)));
} else { } else {
data.put("signInRate", 0); data.put("signInRate", 0);
} }
@ -460,6 +464,208 @@ public class StatisticalAnalysisService {
} }
public Map<String, Object> adminIndexDetail(Date stime, Date etime, UniversitiesColleges universitiesColleges, CoreUser coreUser) { public Map<String, Object> adminIndexDetail(Date stime, Date etime, UniversitiesColleges universitiesColleges, CoreUser coreUser) {
Date startTime = DateUtil.beginOfDay(new Date());
Date endTime = DateUtil.endOfDay(new Date());
if (!Objects.isNull(stime)) {
startTime = DateUtil.beginOfDay(stime);
}
if (!Objects.isNull(stime)) {
endTime = DateUtil.endOfDay(etime);
}
Long orgId = coreUser.getOrgId();
Long universitiesCollegesId = (universitiesColleges == null ? orgId : universitiesColleges.getUniversitiesCollegesId());
Long uniOrgId = (universitiesColleges == null ? orgId : universitiesColleges.getOrgId());
Map<String, Object> data = new HashMap<>();
StudentLoginLogQuery condition = new StudentLoginLogQuery();
if (ObjectUtil.isNotEmpty(startTime)) {
condition.setLoginStartTime(startTime);
}
if (ObjectUtil.isNotEmpty(endTime)) {
condition.setLoginEndTime(endTime);
}
condition.setLoginPath(ResponseControllerAdvice.LOGIN_URL);
condition.setLogoutPath(KeyExpiredListener.TOKEN_EXPIRED_MESSAGE);
UniversitiesColleges uniAdmin = getUniAdmin();
if (null != uniAdmin) {
condition.getPageQuery().setPara("universitiesCollegesId", uniAdmin.getUniversitiesCollegesId());
}
//登录人数 1.5S
PageQuery<StudentLogAnalysisVO> studentLogAnalysisVOPageQuery = studentService.queryStatisticalStatementNumberPeopleByCondition(condition.getPageQuery());
long loginDistinctCount = studentLogAnalysisVOPageQuery.getList().stream().mapToLong(i -> Integer.parseInt(i.getLoginCount())).sum();
data.put("loginNumber", loginDistinctCount);
// 获取登录次数
PageQuery<StudentLoginLogVO> studentLoginLogVOPageQuery = studentService.queryUserLoginLogByCondition(condition.getPageQuery());
Long loginCount = studentLoginLogVOPageQuery.getTotalRow();
//登录人次
data.put("studentPersonTime", loginCount);
if (coreUser.isUniAdmin()) { //学校管理员
List<Student> studentList = studentService.getStudentByStimeAndEtime(startTime, endTime, uniOrgId);
//注册学生数
data.put("studentNumber", studentList.size());
//注册老师数
List<Teacher> teachers = teacherService.getTeacherByStimeAndEtime(startTime, endTime, uniOrgId);
data.put("teacherNumber", teachers.size());
//上线课程数 11s
// TeacherOpenCourseQuery teacherOpenCourseQuery = new TeacherOpenCourseQuery();
// if (ObjectUtil.isNotEmpty(startTime)){
// teacherOpenCourseQuery.setFilterStartTime(startTime);
// }
// if (ObjectUtil.isNotEmpty(endTime)){
// teacherOpenCourseQuery.setFilterEndTime(endTime);
// }
// List<TeacherOpenCourse> teacherOpenCourseMergeCourseInfo = teacherOpenCourseService.getTeacherOpenCourseMergeCourseInfo(teacherOpenCourseQuery, coreUser);
// data.put("courseNumber", teacherOpenCourseMergeCourseInfo.size());
Long resourcesApplicationCount = 0L;
resourcesApplicationCount = universitiesCollegesJurisdictionExperimentalSystemDao.createLambdaQuery()
.andEq(UniversitiesCollegesJurisdictionExperimentalSystem::getUniversitiesCollegesId, universitiesCollegesId)
.andNotEq(UniversitiesCollegesJurisdictionExperimentalSystem::getUseType, 0)
.andBetween(UniversitiesCollegesJurisdictionExperimentalSystem::getAddTime, startTime, endTime)
.count();
data.put("applicationNumber", resourcesApplicationCount);
TeacherOpenCourseQuestionSettingQuery teacherOpenCourseQuestionSettingQuery = new TeacherOpenCourseQuestionSettingQuery();
List<TeacherOpenCourse> select11 = teacherOpenCourseService.createLambdaQuery().andEq(TeacherOpenCourse::getOrgId, uniOrgId)
.andEq(TeacherOpenCourse::getTeacherOpenCourseStatus, 1).select();
Set<Long> collect11 = select11.stream().map(TeacherOpenCourse::getTeacherOpenCourseId).collect(Collectors.toSet());
if (orgId != null && orgId != 1) {
teacherOpenCourseQuestionSettingQuery.setOrgId(uniOrgId);
}
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingPushStatus(GlobalPushStatusEnum.PUSH);
teacherOpenCourseQuestionSettingQuery.setTeacherOpenCourseQuestionSettingStatus(1);
if (ObjectUtil.isNotEmpty(startTime)) {
teacherOpenCourseQuestionSettingQuery.setStartTime(startTime);
}
if (ObjectUtil.isNotEmpty(endTime)) {
teacherOpenCourseQuestionSettingQuery.setEndTime(endTime);
}
List<TeacherOpenCourseQuestionSettingPure> courseQuestionSettings = teacherOpenCourseQuestionSettingDao.getValuesByQueryNotWithPermission2(teacherOpenCourseQuestionSettingQuery);
long homeWorkNumber = courseQuestionSettings.stream().filter(item -> !HOMEWORK_FILE.equals(item.getTeacherOpenCourseQuestionSettingType())).count();
//批改作业数
data.put("homeWorkNumber", homeWorkNumber);
//课件学习
TeacherOpenCourseHandsOnSimulationTasksQuery tasksQuery = new TeacherOpenCourseHandsOnSimulationTasksQuery();
tasksQuery.setTeacherOpenCourseIdPlural(CollectionUtil.join(collect11, ","));
if (ObjectUtil.isNotEmpty(startTime)) {
tasksQuery.setStartTime(startTime);
}
if (ObjectUtil.isNotEmpty(endTime)) {
tasksQuery.setEndTime(endTime);
}
if (orgId != 1) {
tasksQuery.setOrgId(orgId);
}
List<TeacherOpenCourseHandsOnSimulationTasks> teacherOpenCourseHandsOnSimulationTasks = teacherOpenCourseHandsOnSimulationTasksService.getValuesByQueryNotWithPermission(tasksQuery);
long count = teacherOpenCourseHandsOnSimulationTasks.stream().filter(v -> "1".equals(v.getTaskType()) || "2".equals(v.getTaskType())).count();
data.put("studyNumber", count);
//学生做题 课程实操。学生做题:读取【文档存档】中所有课程的【章节】、【课程实操】、【作业—题库作业】、【考试】,这几个模块的任务数量 (题目配置数量,非题目数量)
data.put("exerciseNumber", teacherOpenCourseHandsOnSimulationTasks.size() + courseQuestionSettings.size() + homeWorkNumber);
//学校动态码
data.put("universitiesCollegesAuthCode", universitiesColleges != null ? universitiesColleges.getUniversitiesCollegesAuthCode() : "暂无动态码");
return data;
} else {//管理员
//上线应用数
Long resourcesApplicationCount = resourcesApplicationService.getApplicationByStimeAndEtime(startTime, endTime, uniOrgId);
data.put("applicationNumber", resourcesApplicationCount);
//注册用户数
LambdaQuery<CoreUser> lambdaQuery2 = coreUserDao.createLambdaQuery();
if (uniOrgId != null && uniOrgId != 1) {
lambdaQuery2.andEq(CoreUser::getOrgId, uniOrgId);
}
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
lambdaQuery2.andBetween(CoreUser::getCreateTime, startTime, endTime);
}
int size = lambdaQuery2.andEq(CoreUser::getDelFlag, DelFlagEnum.NORMAL.getValue())
.andNotEq(CoreUser::getId, 1)
.select().size();
data.put("userNumber", size);
data.put("universitiesCollegesAuthCode", universitiesColleges != null ? universitiesColleges.getUniversitiesCollegesAuthCode() : "暂无动态码");
//案例数量
LambdaQuery<HandsOn> lambdaQuery3 = handsOnService.createLambdaQuery();
if (uniOrgId != null && uniOrgId != 1) {
lambdaQuery3.andEq(HandsOn::getOrgId, uniOrgId);
}
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
lambdaQuery3.andBetween(HandsOn::getAddTime, startTime, endTime);
}
int values = lambdaQuery3.andEq(HandsOn::getHandsOnStatus, 1)
.select().size();
LambdaQuery<ResourcesTraining> lambdaQuery4 = resourcesTrainingService.createLambdaQuery();
if (uniOrgId != null && uniOrgId != 1) {
lambdaQuery4.andEq(ResourcesTraining::getOrgId, uniOrgId);
}
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
lambdaQuery4.andBetween(ResourcesTraining::getAddTime, startTime, endTime);
}
int values2 = lambdaQuery4.andEq(ResourcesTraining::getResourcesTrainingStatus, 1)
.select().size();
LambdaQuery<ResourcesCompetition> lambdaQuery5 = resourcesCompetitionService.createLambdaQuery();
if (uniOrgId != null && uniOrgId != 1) {
lambdaQuery5.andEq(ResourcesCompetition::getOrgId, uniOrgId);
}
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
lambdaQuery5.andBetween(ResourcesCompetition::getAddTime, startTime, endTime);
}
int values3 = lambdaQuery5.andEq(ResourcesCompetition::getResourcesCompetitionStatus, 1)
.select().size();
data.put("caseNumber", values + values2 + values3);
//视频数量
ResourcesInfoQuery resourcesInfoQuery = new ResourcesInfoQuery();
resourcesInfoQuery.setResourcesInfoType(1);
resourcesInfoQuery.setStartTime(stime);
resourcesInfoQuery.setEndTime(etime);
if (uniOrgId != null && uniOrgId != 1) {
resourcesInfoQuery.setOrgId(uniOrgId);
}
List<ResourcesInfo> videoNumber = resourcesInfoService.getValues(resourcesInfoQuery);
data.put("videoNumber", videoNumber.size());
//题库数量
ResourcesQuestionQuery paras1 = new ResourcesQuestionQuery();
paras1.setQuestionStatus(1);
if (uniOrgId != null && uniOrgId != 1) {
paras1.setOrgId(uniOrgId);
}
if (ObjectUtil.isNotEmpty(startTime)) {
paras1.setStartTime(startTime);
}
if (ObjectUtil.isNotEmpty(endTime)) {
paras1.setEndTime(endTime);
}
List<ResourcesQuestion> questionList = resourcesQuestionService.getValues(paras1);
data.put("questionNumber", questionList.size());
//院校数量
// UniversitiesCollegesQuery paras = new UniversitiesCollegesQuery();
// paras.setUniversitiesCollegesStatus(1);
// if (uniOrgId != null && uniOrgId != 1) {
// paras.setOrgId(uniOrgId);
// }
// if (ObjectUtil.isNotEmpty(startTime)) {
// paras.setStartTime(startTime);
// }
// if (ObjectUtil.isNotEmpty(endTime)) {
// paras.setEndTime(endTime);
// }
// List<UniversitiesColleges> schoolList = universitiesCollegesService.getValues(paras);
// data.put("schoolNumber", schoolList.size());
data.put("schoolNumber", 376);
}
return data;
}
public Map<String, Object> adminIndexDetail1(Date stime, Date etime, UniversitiesColleges universitiesColleges, CoreUser coreUser) {
// Date startTime = DateUtil.beginOfDay(new Date()); // Date startTime = DateUtil.beginOfDay(new Date());
// Date endTime = DateUtil.endOfDay(new Date()); // Date endTime = DateUtil.endOfDay(new Date());
//-------------------------------------------------- //--------------------------------------------------

@ -1169,6 +1169,23 @@ public class StudentService extends CoreBaseService<Student> {
} }
// 查询所有的班级编号 // 查询所有的班级编号
List<String> studentSnList = list.stream().map(Student::getStudentSn).collect(Collectors.toList()); List<String> studentSnList = list.stream().map(Student::getStudentSn).collect(Collectors.toList());
//验证学号格式
String regex = "[a-zA-Z\\u4e00-\\u9fa5]+$";
List<String> regexList=new ArrayList<>();
for (int i = 0; i < studentSnList.size(); i++) {
if(!studentSnList.get(i).matches(regex)){
regexList.add(studentSnList.get(i));
}
}
for (String duplicateElement : regexList) {
int errorRowIndex = studentSnList.indexOf(duplicateElement);
// 这里固定列索引,省事
listener.putFailMessage(
errorRowIndex, 2, StrUtil.format("学号有特殊字符:\"{}\"", duplicateElement));
}
// 获取重复的元素 // 获取重复的元素
List<String> duplicateElements = getDuplicateElements(studentSnList); List<String> duplicateElements = getDuplicateElements(studentSnList);

@ -89,7 +89,7 @@ public class TeacherOpenCourseMergeStudentService extends CoreBaseService<Teache
}); });
ret.setList(studentList); ret.setList(studentList);
} }
queryListAfter(ret.getList()); // queryListAfter(ret.getList());
return ret; return ret;
} }

@ -451,7 +451,7 @@ public class TeacherOpenCourseScoreDashboardService extends CoreBaseService<Teac
/** /**
* * *****
* *
* @param teacherOpenCourseId id * @param teacherOpenCourseId id
* @return * @return

@ -152,13 +152,15 @@ public class UniversitiesCollegesJurisdictionExperimentalSystemService extends C
List<ZYUserInfo> userInfos=new ArrayList<>(); List<ZYUserInfo> userInfos=new ArrayList<>();
List<Map<String, Object>> teacherList=teacherService.findAllByUniversitiesCollegesId(universitiesCollegesId); List<Map<String, Object>> teacherList=teacherService.findAllByUniversitiesCollegesId(universitiesCollegesId);
for (int i = 0; i < teacherList.size(); i++) { for (int i = 0; i < teacherList.size(); i++) {
Map<String, Object> userInfoByUsername = coreUserService.getUserInfoByUsername(String.valueOf(teacherList.get(i).get("name"))); Map<String, Object> userInfoByUsername = coreUserService.getUserInfoByUsername(String.valueOf(teacherList.get(i).get("teacherNo")));
if (userInfoByUsername==null){ if (userInfoByUsername==null){
continue; continue;
} }
ZYUserInfo info = new ZYUserInfo info = new
ZYUserInfo( ZYUserInfo(
coreUserService.getUserInfoByUsername(String.valueOf(teacherList.get(i).get("name")))); coreUserService.getUserInfoByUsername(String.valueOf(teacherList.get(i).get("teacherNo"))));
info.setSchoolId(Math.toIntExact(universitiesCollegesId));
info.setCollegeId(universitiesCollegesId);
userInfos.add(info); userInfos.add(info);
} }
try { try {

@ -72,7 +72,7 @@ public class UniversitiesCollegesService extends CoreBaseService<UniversitiesCol
public PageQuery<UniversitiesColleges> queryByCondition(PageQuery query) { public PageQuery<UniversitiesColleges> queryByCondition(PageQuery query) {
PageQuery ret = universitiesCollegesDao.queryByCondition(query); PageQuery ret = universitiesCollegesDao.queryByCondition(query);
queryListAfter(ret.getList()); // queryListAfter(ret.getList());
return ret; return ret;
} }

@ -118,6 +118,22 @@ public class WebPlatformService {
} }
} }
/**
* Session
* @param user
*/
public void setTeacherUserInfoToSessionByIdentity(String token, @NotNull(message = "登录用户不能为空!") CoreUser user,Teacher teacher) {
httpRequestLocal.setSessionValueByToken(token, T_TEACHER, teacher);
}
/**
* Session
* @param user
*/
public void setStudentUserInfoToSessionByIdentity(String token, @NotNull(message = "登录用户不能为空!") CoreUser user,Student student) {
httpRequestLocal.setSessionValueByToken(token, T_STUDENT, student);
}
/** /**
* Session * Session
* @param user * @param user
@ -207,10 +223,14 @@ public class WebPlatformService {
* *
* @param userId * @param userId
*/ */
public void checkUserLoginStatusThrow(Long userId) { public void checkUserLoginStatusThrow(Long userId,String role) {
TeacherExtendSchoolInfo teacherExtendSchoolInfo =null;
StudentExtendSchoolInfo studentExtendSchoolInfo = studentService.getStudentExtendSchoolInfoByUserIds(userId.toString()); StudentExtendSchoolInfo studentExtendSchoolInfo =null;
TeacherExtendSchoolInfo teacherExtendSchoolInfo = teacherService.getTeacherExtendSchoolInfoByUserIds(userId.toString()); if("tea".equals(role)){
teacherExtendSchoolInfo = teacherService.getTeacherExtendSchoolInfoByUserIds(userId.toString());
}else {
studentExtendSchoolInfo = studentService.getStudentExtendSchoolInfoByUserIds(userId.toString());
}
Assert.isFalse(ObjectUtil.isAllEmpty(studentExtendSchoolInfo, teacherExtendSchoolInfo), "学生信息异常,请联系管理员!"); Assert.isFalse(ObjectUtil.isAllEmpty(studentExtendSchoolInfo, teacherExtendSchoolInfo), "学生信息异常,请联系管理员!");

@ -29,7 +29,7 @@ public class ApiIndexBaseService extends CoreBaseAnnotationParser {
.build(); .build();
// 解析注解 // 解析注解
queryEntityAfter(currentUserInfo); // queryEntityAfter(currentUserInfo);
return currentUserInfo; return currentUserInfo;
} }
} }

@ -361,8 +361,9 @@ public class ApiStudentService {
// 设置登录时间和最后登录时间用登录后update core_user表来实现最后登录时间和登录次数的统计。 // 设置登录时间和最后登录时间用登录后update core_user表来实现最后登录时间和登录次数的统计。
// sysLogService.setLoginLogInfo(userId, coreUser); // sysLogService.setLoginLogInfo(userId, coreUser);
// 活跃度 // 活跃度 *****
StudentActiveInfo studentActiveInfo = studentActiveInfo(); // StudentActiveInfo studentActiveInfo = studentActiveInfo();
StudentActiveInfo studentActiveInfo = null;
return StudentUserCenterData.builder().userInfo(coreUser) return StudentUserCenterData.builder().userInfo(coreUser)

@ -41,6 +41,8 @@ public class SubsystemUserUtil {
//开启区块链数字人民币权限 //开启区块链数字人民币权限
private static final String QUL_BLOCKDIGITALCURRENCY_START_URL="https://qkljr.sztzjy.com:89/api/admin/permissions/getDigitalCurrency"; private static final String QUL_BLOCKDIGITALCURRENCY_START_URL="https://qkljr.sztzjy.com:89/api/admin/permissions/getDigitalCurrency";
//新版智能理财
private static final String ZNLC_USER_INSERT_API_URL="https://znlc.sztzjy.com:118/api/user/checkOrCreateForexSimulationUser";
public static void subsystemUserCreate(List<ZYUserInfo> zyUserInfoss, List<String> applications) throws JsonProcessingException { public static void subsystemUserCreate(List<ZYUserInfo> zyUserInfoss, List<String> applications) throws JsonProcessingException {
@ -156,6 +158,15 @@ public class SubsystemUserUtil {
//MNJY系统新增用户信息 //MNJY系统新增用户信息
HttpUtil.sendPostRequest(SZYX_USER_INSERT_API_URL, json, "application/json"); HttpUtil.sendPostRequest(SZYX_USER_INSERT_API_URL, json, "application/json");
} }
if (applications.contains(SubsystemName.CREDIT_RATING_AGENCIES.getText())) {
//文本挖掘
HttpUtil.sendPostRequest(SZZX_USER_INSERT_API_URL, json, "application/json");
}
if (applications.contains(SubsystemName.MONEY_MANAGEMENT_NEW.getText())) {
//新版本智能理财 研究咨询
HttpUtil.sendPostRequest(ZNLC_USER_INSERT_API_URL, json, "application/json");
}
} }

@ -74,11 +74,12 @@ public class AnalysisController extends BaseController {
@PostMapping(MODEL + "/systemUseLogsAnalysis.json") @PostMapping(MODEL + "/systemUseLogsAnalysis.json")
@ResponseBody @ResponseBody
@ApiOperation("在线人数统计") @ApiOperation("在线人数统计*****")
public JsonResult<List<SystemUseCountVO>> systemUseLogsAnalysis(SystemUseCountDTO dto, @SCoreUser CoreUser coreUser){ public JsonResult<List<SystemUseCountVO>> systemUseLogsAnalysis(SystemUseCountDTO dto, @SCoreUser CoreUser coreUser){
dto.setMethod(ON_LINE_METHOD_NAME); return null;
dto.setRequestUrl("在线人数统计"); // dto.setMethod(ON_LINE_METHOD_NAME);
return JsonResult.success(analysisService.systemUseLogsAnalysis(dto)); // dto.setRequestUrl("在线人数统计");
// return JsonResult.success(analysisService.systemUseLogsAnalysis(dto));
} }
} }

@ -161,7 +161,8 @@ public class GeneralQuestionLogController extends BaseController {
logQuery.setQuestionLogAddType(FINALLY_SUBMIT); logQuery.setQuestionLogAddType(FINALLY_SUBMIT);
logQuery.setUserId(coreUser.getId()); logQuery.setUserId(coreUser.getId());
logQuery.setOrgId(coreUser.getOrgId()); logQuery.setOrgId(coreUser.getOrgId());
return JsonResult.success(generalQuestionLogService.getValuesByQueryNotWithPermission(logQuery)); List<GeneralQuestionLog> valuesByQueryNotWithPermission = generalQuestionLogService.getValuesByQueryNotWithPermission(logQuery);
return JsonResult.success(valuesByQueryNotWithPermission);
} }
/** /**
@ -499,6 +500,23 @@ public class GeneralQuestionLogController extends BaseController {
return JsonResult.success(generalQuestionLogService.questionLogAnswerLock(questionSettingId, questionSnapIds, student)); return JsonResult.success(generalQuestionLogService.questionLogAnswerLock(questionSettingId, questionSnapIds, student));
} }
/**
* : <br>
*
*
* @param coreUser
* @return {@link JsonResult}
* @Author: lx
* @Date: 2022/12/1 0:28
*/
@PostMapping(API + "/questionLogAnswerFinallySubmit.do")
@ApiOperation("题目获取错题集答案")
public JsonResult questionLogAnswerFinallySubmit(Long generalQuestionLogId, @SCoreUser CoreUser coreUser){
Student student = getStudent();
Assert.notNull(student, "该接口只能学生操作");
return JsonResult.success(generalQuestionLogService.questionLogAnswerFinallySubmit(generalQuestionLogId));
}
/* 后台页面 */ /* 后台页面 */

@ -788,7 +788,7 @@ public class IndexController {
// 教师 // 教师
case JT_S_02: { case JT_S_02: {
// 判断必要的信息不能为空 // 判断必要的信息不能为空
webPlatformService.checkUserLoginStatusThrow(user.getId()); webPlatformService.checkUserLoginStatusThrow(user.getId(),"tea");
// 验证使用权,是否到期 // 验证使用权,是否到期
UniversitiesColleges universitiesColleges = universitiesCollegesService.getByOrgId(user.getOrgId()); UniversitiesColleges universitiesColleges = universitiesCollegesService.getByOrgId(user.getOrgId());
@ -828,14 +828,14 @@ public class IndexController {
final String loginTime = jwtStrings[1]; final String loginTime = jwtStrings[1];
// 登录信息存放Session // 登录信息存放Session
webPlatformService.setUserInfoToSessionByIdentity(token, info.getUser()); webPlatformService.setTeacherUserInfoToSessionByIdentity(token, info.getUser(),teacher);
platformService.setLoginUserByToken(token, info.getUser(), info.getCurrentOrg(), info.getOrgs(), uSystem); platformService.setLoginUserByToken(token, info.getUser(), info.getCurrentOrg(), info.getOrgs(), uSystem);
tokenSessionMap.put(token, new Object[]{user, info.getCurrentOrg(), info.getOrgs(), uSystem}); tokenSessionMap.put(token, new Object[]{user, info.getCurrentOrg(), info.getOrgs(), uSystem});
insertCookie(response, user, teacherToken,loginTime); insertCookie(response, user, teacherToken,loginTime);
// 更新 // 更新
ThreadUtil.execute(() -> { ThreadUtil.execute(() -> {
userService.recordLoginInformation(user.getId(),loginTime); userService.recordLoginInformation(user.getId(),loginTime,user);
}); });
// isBG 是否大后台 // isBG 是否大后台
@ -849,7 +849,7 @@ public class IndexController {
// 学生 // 学生
case JT_S_03: { case JT_S_03: {
// 判断必要的信息不能为空 // 判断必要的信息不能为空
webPlatformService.checkUserLoginStatusThrow(user.getId()); webPlatformService.checkUserLoginStatusThrow(user.getId(),"stu");
Student s = studentService.getByUserId(user.getId()); Student s = studentService.getByUserId(user.getId());
final String studentToken = tokenService.getToken(s); final String studentToken = tokenService.getToken(s);
@ -863,13 +863,13 @@ public class IndexController {
tokenSessionMap.put(token, new Object[]{user, info.getCurrentOrg(), info.getOrgs(), uSystem}); tokenSessionMap.put(token, new Object[]{user, info.getCurrentOrg(), info.getOrgs(), uSystem});
// 登录信息存放Session // 登录信息存放Session
webPlatformService.setUserInfoToSessionByIdentity(token, info.getUser()); webPlatformService.setStudentUserInfoToSessionByIdentity(token, info.getUser(),s);
platformService.setLoginUserByToken(token, info.getUser(), info.getCurrentOrg(), info.getOrgs(), uSystem); platformService.setLoginUserByToken(token, info.getUser(), info.getCurrentOrg(), info.getOrgs(), uSystem);
insertCookie(response, user, studentToken,loginTime); insertCookie(response, user, studentToken,loginTime);
// 更新 // 更新
ThreadUtil.execute(() -> { ThreadUtil.execute(() -> {
userService.recordLoginInformation(user.getId(),loginTime); userService.recordLoginInformation(user.getId(),loginTime,user);
}); });
// isBG 是否大后台 // isBG 是否大后台
@ -898,7 +898,7 @@ public class IndexController {
// 更新 // 更新
ThreadUtil.execute(() -> { ThreadUtil.execute(() -> {
userService.recordLoginInformation(user.getId(),loginTime); userService.recordLoginInformation(user.getId(),loginTime,user);
}); });
// isBG 是否大后台 // isBG 是否大后台

@ -84,8 +84,9 @@ public class StatisticalAnalysisController {
@ApiOperation("柱状图") @ApiOperation("柱状图")
@RequestMapping("/adminIndexBarchart.do") @RequestMapping("/adminIndexBarchart.do")
public JsonResult<Object> adminIndexBarchart(@RequestParam(value = "stime", required = false) Date stime, @RequestParam(value = "etime", required = false) Date etime) { public JsonResult<Object> adminIndexBarchart(@RequestParam(value = "stime", required = false) Date stime, @RequestParam(value = "etime", required = false) Date etime) {
Map<String, Object> detail = statisticalAnalysisService.adminIndexBarchart(stime, etime); // Map<String, Object> detail = statisticalAnalysisService.adminIndexBarchart(stime, etime);
return JsonResult.success(detail); // return JsonResult.success(detail);
return JsonResult.success(null);
} }

@ -2319,6 +2319,7 @@ public class StudentController extends BaseController {
ZYUserInfo info = new ZYUserInfo info = new
ZYUserInfo( ZYUserInfo(
coreUserService.getUserInfoByUsername(student.getStudentSn())); coreUserService.getUserInfoByUsername(student.getStudentSn()));
info.setSchoolId(Integer.valueOf(String.valueOf(schoolId)));
List<String> applications = universitiesCollegesJurisdictionExperimentalSystemService.getAllApplicationIdBySchoolId(schoolId); List<String> applications = universitiesCollegesJurisdictionExperimentalSystemService.getAllApplicationIdBySchoolId(schoolId);
SubsystemUserUtil.subsystemUserCreate(Arrays.asList(info), applications); SubsystemUserUtil.subsystemUserCreate(Arrays.asList(info), applications);
return jsonResult; return jsonResult;
@ -2480,19 +2481,21 @@ public class StudentController extends BaseController {
@GetMapping(MODEL + "/studentLoginLogList.json") @GetMapping(MODEL + "/studentLoginLogList.json")
@Function("student.query") @Function("student.query")
@ResponseBody @ResponseBody
@ApiOperation("登录日志") @ApiOperation("登录日志*****")
public JsonResult<PageQuery> studentLoginLogList(StudentLoginLogQuery condition, @SCoreUser CoreUser coreUser) { public JsonResult<PageQuery> studentLoginLogList(StudentLoginLogQuery condition, @SCoreUser CoreUser coreUser) {
Assert.isFalse(coreUser.isStudent(), "暂无权限访问!"); return null;
condition.setLoginPath(ResponseControllerAdvice.LOGIN_URL); // Assert.isFalse(coreUser.isStudent(), "暂无权限访问!");
condition.setLogoutPath(KeyExpiredListener.TOKEN_EXPIRED_MESSAGE); // condition.setLoginPath(ResponseControllerAdvice.LOGIN_URL);
if (!Objects.isNull(condition.getLoginStartTime())) { // condition.setLogoutPath(KeyExpiredListener.TOKEN_EXPIRED_MESSAGE);
condition.setLoginStartTime(DateUtil.beginOfDay(condition.getLoginStartTime())); // if (!Objects.isNull(condition.getLoginStartTime())) {
} // condition.setLoginStartTime(DateUtil.beginOfDay(condition.getLoginStartTime()));
if (!Objects.isNull(condition.getLoginEndTime())) { // }
condition.setLoginEndTime(DateUtil.endOfDay(condition.getLoginEndTime())); // if (!Objects.isNull(condition.getLoginEndTime())) {
} // condition.setLoginEndTime(DateUtil.endOfDay(condition.getLoginEndTime()));
// return JsonResult.success(studentService.queryStudentLoginLogByCondition(condition.getPageQuery())); // }
return JsonResult.success(studentService.queryUserLoginLogByCondition(condition.getPageQuery())); //// return JsonResult.success(studentService.queryStudentLoginLogByCondition(condition.getPageQuery()));
// PageQuery<StudentLoginLogVO> studentLoginLogVOPageQuery = studentService.queryUserLoginLogByCondition(condition.getPageQuery());
// return JsonResult.success(studentService.queryUserLoginLogByCondition(studentLoginLogVOPageQuery));
} }
/** /**
@ -2506,25 +2509,26 @@ public class StudentController extends BaseController {
*/ */
@GetMapping(MODEL + "/studentLoginLogListExport.json") @GetMapping(MODEL + "/studentLoginLogListExport.json")
@ResponseBody @ResponseBody
@ApiOperation("登录日志 导出") @ApiOperation("登录日志 导出*****")
public String studentLoginLogListExport(StudentLoginLogQuery condition, @SCoreUser CoreUser coreUser) throws IOException { public String studentLoginLogListExport(StudentLoginLogQuery condition, @SCoreUser CoreUser coreUser) throws IOException {
Assert.isFalse(coreUser.isStudent(), "暂无权限访问!");
condition.setLoginPath(ResponseControllerAdvice.LOGIN_URL);
condition.setLogoutPath(KeyExpiredListener.TOKEN_EXPIRED_MESSAGE);
if (!Objects.isNull(condition.getLoginStartTime())) {
condition.setLoginStartTime(DateUtil.beginOfDay(condition.getLoginStartTime()));
}
if (!Objects.isNull(condition.getLoginEndTime())) {
condition.setLoginEndTime(DateUtil.endOfDay(condition.getLoginEndTime()));
}
condition.setPage(1);
condition.setLimit(Integer.MAX_VALUE + 0L);
// PageQuery<StudentLoginLogVO> page = studentService.queryStudentLoginLogByCondition(condition.getPageQuery());
PageQuery<StudentLoginLogVO> page = studentService.queryUserLoginLogByCondition(condition.getPageQuery());
String filename = StrUtil.format("学生登录日志导出{}.xlsx", System.currentTimeMillis());
write(response, filename, "Sheet1", StudentLoginLogVO.class, page.getList());
return null; return null;
// Assert.isFalse(coreUser.isStudent(), "暂无权限访问!");
// condition.setLoginPath(ResponseControllerAdvice.LOGIN_URL);
// condition.setLogoutPath(KeyExpiredListener.TOKEN_EXPIRED_MESSAGE);
// if (!Objects.isNull(condition.getLoginStartTime())) {
// condition.setLoginStartTime(DateUtil.beginOfDay(condition.getLoginStartTime()));
// }
// if (!Objects.isNull(condition.getLoginEndTime())) {
// condition.setLoginEndTime(DateUtil.endOfDay(condition.getLoginEndTime()));
// }
// condition.setPage(1);
// condition.setLimit(Integer.MAX_VALUE + 0L);
//// PageQuery<StudentLoginLogVO> page = studentService.queryStudentLoginLogByCondition(condition.getPageQuery());
// PageQuery<StudentLoginLogVO> page = studentService.queryUserLoginLogByCondition(condition.getPageQuery());
//
// String filename = StrUtil.format("学生登录日志导出{}.xlsx", System.currentTimeMillis());
// write(response, filename, "Sheet1", StudentLoginLogVO.class, page.getList());
// return null;
} }
/** /**
@ -2557,17 +2561,18 @@ public class StudentController extends BaseController {
*/ */
@GetMapping(MODEL + "/studentUseLogListExport.json") @GetMapping(MODEL + "/studentUseLogListExport.json")
@ResponseBody @ResponseBody
@ApiOperation("学生使用日志 导出") @ApiOperation("学生使用日志 导出*****")
public String studentUseLogListExport(StudentUseLogQuery condition, @SCoreUser CoreUser coreUser) throws IOException { public String studentUseLogListExport(StudentUseLogQuery condition, @SCoreUser CoreUser coreUser) throws IOException {
Assert.isFalse(coreUser.isStudent(), "暂无权限访问!");
condition.setPage(1);
condition.setLimit(Integer.MAX_VALUE + 0L);
PageQuery<StudentUseLogVO> page = studentService.queryStudentUseLogByCondition(condition.getPageQuery());
String filename = StrUtil.format("学生使用日志导出{}.xlsx", System.currentTimeMillis());
write(response, filename, "Sheet1", StudentUseLogVO.class, page.getList());
return null; return null;
// Assert.isFalse(coreUser.isStudent(), "暂无权限访问!");
//
// condition.setPage(1);
// condition.setLimit(Integer.MAX_VALUE + 0L);
// PageQuery<StudentUseLogVO> page = studentService.queryStudentUseLogByCondition(condition.getPageQuery());
//
// String filename = StrUtil.format("学生使用日志导出{}.xlsx", System.currentTimeMillis());
// write(response, filename, "Sheet1", StudentUseLogVO.class, page.getList());
// return null;
} }
/** /**
@ -2583,19 +2588,20 @@ public class StudentController extends BaseController {
@GetMapping(MODEL + "/studentLogAnalysisList.json") @GetMapping(MODEL + "/studentLogAnalysisList.json")
@Function("student.query") @Function("student.query")
@ResponseBody @ResponseBody
@ApiOperation("学生日志,统计报表") @ApiOperation("学生日志,统计报表*****")
public JsonResult<PageQuery> studentLogAnalysisList(StudentLogAnalysisQuery condition, @SCoreUser CoreUser coreUser) { public JsonResult<PageQuery> studentLogAnalysisList(StudentLogAnalysisQuery condition, @SCoreUser CoreUser coreUser) {
Assert.isFalse(coreUser.isStudent(), "暂无权限访问!"); Assert.isFalse(coreUser.isStudent(), "暂无权限访问!");
condition.setLoginPath(ResponseControllerAdvice.LOGIN_URL); return null;
condition.setLogoutPath(KeyExpiredListener.TOKEN_EXPIRED_MESSAGE); // condition.setLoginPath(ResponseControllerAdvice.LOGIN_URL);
if (!Objects.isNull(condition.getLoginStartTime())) { // condition.setLogoutPath(KeyExpiredListener.TOKEN_EXPIRED_MESSAGE);
condition.setLoginStartTime(DateUtil.beginOfDay(condition.getLoginStartTime())); // if (!Objects.isNull(condition.getLoginStartTime())) {
} // condition.setLoginStartTime(DateUtil.beginOfDay(condition.getLoginStartTime()));
if (!Objects.isNull(condition.getLoginEndTime())) { // }
condition.setLoginEndTime(DateUtil.endOfDay(condition.getLoginEndTime())); // if (!Objects.isNull(condition.getLoginEndTime())) {
} // condition.setLoginEndTime(DateUtil.endOfDay(condition.getLoginEndTime()));
// return JsonResult.success(studentService.queryStudentLogAnalysisByCondition(condition.getPageQuery())); // }
return JsonResult.success(studentService.queryStatisticalStatementNumberPeopleByCondition(condition.getPageQuery())); //// return JsonResult.success(studentService.queryStudentLogAnalysisByCondition(condition.getPageQuery()));
// return JsonResult.success(studentService.queryStatisticalStatementNumberPeopleByCondition(condition.getPageQuery()));
} }
@ -3052,6 +3058,10 @@ public class StudentController extends BaseController {
ExcelUtil.readExcelNotContainHeader(file, StudentBatchImportUniAdminDTO.class, listener); ExcelUtil.readExcelNotContainHeader(file, StudentBatchImportUniAdminDTO.class, listener);
// 判断错误的结果集 // 判断错误的结果集
Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage())); Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage()));
for (int i = 0; i < listener.getData().size(); i++) {
String studentSn = listener.getData().get(i).getStudentSn();
System.out.println(studentSn);
}
// 类型转换 // 类型转换
List<Student> list = listener.getData().stream().map(item -> { List<Student> list = listener.getData().stream().map(item -> {
@ -3134,6 +3144,10 @@ public class StudentController extends BaseController {
coreUserService.getUserInfoByUsername(student.getStudentSn()) coreUserService.getUserInfoByUsername(student.getStudentSn())
)); ));
} }
for (int i = 0; i < zyUserInfos.size(); i++) {
ZYUserInfo zyUserInfo = zyUserInfos.get(i);
zyUserInfo.setSchoolId(Integer.valueOf(schoolId.toString()));
}
List<String> applications = universitiesCollegesJurisdictionExperimentalSystemService.getAllApplicationIdBySchoolId(schoolId); List<String> applications = universitiesCollegesJurisdictionExperimentalSystemService.getAllApplicationIdBySchoolId(schoolId);
SubsystemUserUtil.subsystemUserCreate(zyUserInfos, applications); SubsystemUserUtil.subsystemUserCreate(zyUserInfos, applications);
platformService.clearDictCache(); platformService.clearDictCache();
@ -3215,7 +3229,27 @@ public class StudentController extends BaseController {
Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage())); Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage()));
// 导入并添加身份信息 // 导入并添加身份信息
list.forEach(studentService::add); // list.forEach(studentService::add);
List<ZYUserInfo> zyUserInfos = new ArrayList<>();
SchoolClassQuery query = new SchoolClassQuery();
query.setClassId(list.get(0).getClassId());
SchoolClass schoolClass = schoolClassService.getValuesByQuery(query).get(0);
Long schoolId = schoolClass.getUniversitiesCollegesId();
for (Student student : list) {
studentService.add(student);
zyUserInfos.add(new
ZYUserInfo(
coreUserService.getUserInfoByUsername(student.getStudentSn())
));
}
for (int i = 0; i < zyUserInfos.size(); i++) {
ZYUserInfo zyUserInfo = zyUserInfos.get(i);
zyUserInfo.setSchoolId(Integer.valueOf(schoolId.toString()));
}
List<String> applications = universitiesCollegesJurisdictionExperimentalSystemService.getAllApplicationIdBySchoolId(schoolId);
SubsystemUserUtil.subsystemUserCreate(zyUserInfos, applications);
platformService.clearDictCache(); platformService.clearDictCache();
} catch (IllegalArgumentException exception) { } catch (IllegalArgumentException exception) {
return JsonResult.failMessage(exception.getMessage()).setCode(DIY_ERROR.getCode()); return JsonResult.failMessage(exception.getMessage()).setCode(DIY_ERROR.getCode());

@ -471,26 +471,27 @@ public class StudentTeacherSystemUseLogAnalysisController extends BaseController
*/ */
@GetMapping(MODEL + "/applicationUseLogsAnalysisExport.json") @GetMapping(MODEL + "/applicationUseLogsAnalysisExport.json")
@ResponseBody @ResponseBody
@ApiOperation("院校使用日志 导出") @ApiOperation("院校使用日志 导出*****")
public String applicationUseLogsAnalysisExport(SystemUseLogsAnalysisDTO condition, @SCoreUser CoreUser coreUser) throws IOException { public String applicationUseLogsAnalysisExport(SystemUseLogsAnalysisDTO condition, @SCoreUser CoreUser coreUser) throws IOException {
Assert.isFalse(coreUser.isStudent(), "暂无权限访问!");
if (ObjectUtil.isNotEmpty(condition.getStartDayTime())){
condition.setStartDayTime(DateUtil.beginOfDay(condition.getStartDayTime()));
}
if (ObjectUtil.isNotEmpty(condition.getEndDayTime())){
condition.setEndDayTime(DateUtil.endOfDay(condition.getEndDayTime()));
}
condition.setPage(1); condition.setLimit(Integer.MAX_VALUE + 0L);
PageQuery<SystemUseLogsAnalysisVO> page = studentTeacherSystemUseLogAnalysisService.applicationUseLogsAnalysis(condition.getPageQuery());
page.getList().forEach(item ->{
item.setUseTime(DateUtil.formatDateTime(item.getDayTime()));
});
String filename = StrUtil.format("院校使用日志导出{}.xlsx", System.currentTimeMillis());
write(response, filename, "Sheet1", SystemUseLogsAnalysisVO.class, page.getList());
return null; return null;
// Assert.isFalse(coreUser.isStudent(), "暂无权限访问!");
//
// if (ObjectUtil.isNotEmpty(condition.getStartDayTime())){
// condition.setStartDayTime(DateUtil.beginOfDay(condition.getStartDayTime()));
// }
//
// if (ObjectUtil.isNotEmpty(condition.getEndDayTime())){
// condition.setEndDayTime(DateUtil.endOfDay(condition.getEndDayTime()));
// }
//
// condition.setPage(1); condition.setLimit(Integer.MAX_VALUE + 0L);
// PageQuery<SystemUseLogsAnalysisVO> page = studentTeacherSystemUseLogAnalysisService.applicationUseLogsAnalysis(condition.getPageQuery());
//
// page.getList().forEach(item ->{
// item.setUseTime(DateUtil.formatDateTime(item.getDayTime()));
// });
// String filename = StrUtil.format("院校使用日志导出{}.xlsx", System.currentTimeMillis());
// write(response, filename, "Sheet1", SystemUseLogsAnalysisVO.class, page.getList());
// return null;
} }
} }

@ -1134,6 +1134,7 @@ public class TeacherController extends BaseController {
ZYUserInfo info = new ZYUserInfo info = new
ZYUserInfo( ZYUserInfo(
coreUserService.getUserInfoByUsername(teacher.getTeacherJobNumber())); coreUserService.getUserInfoByUsername(teacher.getTeacherJobNumber()));
info.setSchoolId(Integer.valueOf(String.valueOf(schoolId)));
List<String> applications = universitiesCollegesJurisdictionExperimentalSystemService.getAllApplicationIdBySchoolId(schoolId); List<String> applications = universitiesCollegesJurisdictionExperimentalSystemService.getAllApplicationIdBySchoolId(schoolId);
try { try {
SubsystemUserUtil.subsystemUserCreate(Arrays.asList(info), applications); SubsystemUserUtil.subsystemUserCreate(Arrays.asList(info), applications);

@ -0,0 +1,21 @@
package com.ibeetl.jlw.web.api;
import com.ibeetl.jlw.service.UniversitiesCollegesJurisdictionExperimentalSystemService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "对外开放接口-获取子系统LOGO")
@RestController
@RequestMapping("getSonSystemLogo")
public class SonSystemLogoController {
@PostMapping("getLogo")
public void getAllByQuery(String schoolId,String systemName){
//根据schoolId和systemTypeId 查询第一条项目标志 并返回对象
}
}

@ -31,6 +31,13 @@ spring.datasource.dynamic.datasource.master.username=tianze-pro
spring.datasource.dynamic.datasource.master.password=xYR3A4EXCWxkHmNX spring.datasource.dynamic.datasource.master.password=xYR3A4EXCWxkHmNX
spring.datasource.dynamic.datasource.master.hikari.max-lifetime=60000 spring.datasource.dynamic.datasource.master.hikari.max-lifetime=60000
# master
#spring.datasource.dynamic.datasource.master.driverClassName=com.mysql.cj.jdbc.Driver
#spring.datasource.dynamic.datasource.master.url=jdbc:mysql://localhost:3306/tianze-pro?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
#spring.datasource.dynamic.datasource.master.username=root
#spring.datasource.dynamic.datasource.master.password=tz123456
#spring.datasource.dynamic.datasource.master.hikari.max-lifetime=60000
# ds2 # ds2
#spring.datasource.dynamic.datasource.ds2.driverClassName=com.mysql.cj.jdbc.Driver #spring.datasource.dynamic.datasource.ds2.driverClassName=com.mysql.cj.jdbc.Driver
#spring.datasource.dynamic.datasource.ds2.url=jdbc:mysql://124.223.219.235:3306/tzcj?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true #spring.datasource.dynamic.datasource.ds2.url=jdbc:mysql://124.223.219.235:3306/tzcj?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
@ -77,6 +84,7 @@ dynamic.beetlsql.cs.dynamicConnectionSource = master,ds2
#\u6559\u5E08\u7AEF\u548C\u5B66\u751F\u7AEF\u7684\u767B\u5F55\u5730\u5740 #\u6559\u5E08\u7AEF\u548C\u5B66\u751F\u7AEF\u7684\u767B\u5F55\u5730\u5740
student.teacher.url = http://localhost:8080/ student.teacher.url = http://localhost:8080/
#student.teacher.url = http://localhost:8081/
#\u8BD5\u5377\u5230\u4EA4\u5377\u65F6\u95F4\u540E\uFF0C\u5EF6\u8FDF\u4EA4\u5377\u7684\u6BEB\u79D2\u6570 #\u8BD5\u5377\u5230\u4EA4\u5377\u65F6\u95F4\u540E\uFF0C\u5EF6\u8FDF\u4EA4\u5377\u7684\u6BEB\u79D2\u6570
delay.submit.out-time=1800000 delay.submit.out-time=1800000

@ -234,6 +234,9 @@ queryByConditionQuery
@if(!isEmpty(userIdPlural)){ @if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#) and find_in_set(t.user_id,#userIdPlural#)
@} @}
@if(!isEmpty(questionLogAddType)){
and t.question_log_add_type=#questionLogAddType#
@}
@ -654,6 +657,13 @@ getValuesByQuery
and find_in_set(t.user_id,#userIdPlural#) and find_in_set(t.user_id,#userIdPlural#)
@} @}
selectByIdOne
===
select t.*
from general_question_log t
where
t.general_question_log_id =#generalQuestionLogId#
getValuesByQueryNotWithPermission getValuesByQueryNotWithPermission
=== ===
@ -771,8 +781,6 @@ getValuesByQueryNotWithPermission
@} @}
getExcelValues getExcelValues
=== ===

@ -125,7 +125,7 @@
elem: '#srTime' elem: '#srTime'
, type: 'date' , type: 'date'
, range: '~' , range: '~'
, value: [Common.getNowDate(-365 / 2) + ' ~ ' + Common.getNowDate(1)] , value: [Common.getNowDate(-2) + ' ~ ' + Common.getNowDate(1)]
, trigger: 'click' , trigger: 'click'
}); });
@ -139,7 +139,7 @@
elem: '#test5' elem: '#test5'
, type: 'date' , type: 'date'
, range: '~' , range: '~'
, value: [Common.getNowDate(-365 / 2) + ' ~ ' + Common.getNowDate(1)] , value: [Common.getNowDate(-2 / 2) + ' ~ ' + Common.getNowDate(1)]
, trigger: 'click' , trigger: 'click'
}); });

Loading…
Cancel
Save