Merge remote-tracking branch 'origin/beetlsql3-dev' into beetlsql3-dev

beetlsql3-dev
姚丹ab 2 years ago
commit 9cf7504c66

@ -2,6 +2,7 @@ package com.ibeetl.jlw.dao;
import com.ibeetl.jlw.entity.Teacher;
import com.ibeetl.jlw.entity.TeacherExtendSchoolInfo;
import com.ibeetl.jlw.entity.api.teacher.TeacherUserCenterData;
import com.ibeetl.jlw.web.query.TeacherQuery;
import org.beetl.sql.core.engine.PageQuery;
import org.beetl.sql.mapper.BaseMapper;
@ -50,4 +51,6 @@ public interface TeacherDao extends BaseMapper<Teacher>{
* @return
*/
List<TeacherExtendSchoolInfo> getTeacherExtendSchoolInfoListByUserIds(String userIds);
List<TeacherUserCenterData.TeacherRuleInfo> getTeacherUserInfoRuleInfo(Long userId, Long teacherId);
}

@ -51,6 +51,14 @@ public class StudentExtendSchoolInfo extends Student implements ExtendSchoolInfo
*
*/
private String universitiesCollegesName;
/**
*
*/
private String universitiesCollegesProvince;
/**
*
*/
private String universitiesCollegesCity;
}

@ -41,4 +41,13 @@ public class TeacherExtendSchoolInfo extends Teacher implements ExtendSchoolInfo
*
*/
private String universitiesCollegesName;
/**
*
*/
private String universitiesCollegesProvince;
/**
*
*/
private String universitiesCollegesCity;
}

@ -0,0 +1,34 @@
package com.ibeetl.jlw.entity.api.student;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.jlw.entity.Student;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* -
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Accessors(chain = true)
public class StudentUserCenterData {
/**
*
*/
private Student studentInfo;
/**
*
*/
private CoreUser userInfo;
/**
*
*/
private StudentActiveInfo activeInfo;
}

@ -0,0 +1,64 @@
package com.ibeetl.jlw.entity.api.teacher;
import com.ibeetl.admin.core.entity.BaseEntity;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.jlw.entity.Teacher;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* -
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Accessors(chain = true)
public class TeacherUserCenterData {
/**
*
*/
private Teacher teacherInfo;
/**
*
*/
private CoreUser userInfo;
/**
*
*/
private TeacherRuleInfo ruleInfo;
@Data
public static class TeacherRuleInfo extends BaseEntity {
/**
*
*/
private String teacherName;
/**
*
*/
private String universitiesCollegesName;
/**
*
*/
private String universitiesCollegesAddress;
/**
*
*/
private String universityFacultyName;
/**
*
*/
private String universitySystemName;
/**
*
*/
private String classNames;
}
}

@ -269,8 +269,9 @@ public class StatisticalAnalysisService {
if (stime != null && etime != null) {
logDaoLambdaQuery.andBetween(SysLog::getCreateTime, stime, etime);
}
long loginCount = logDaoLambdaQuery.andLike(SysLog::getRequestUrl, "%login%").andLike(SysLog::getResult, "%成功%").count();
long loginDistinctCount = logDaoLambdaQuery.distinct().andLike("request_url", "%login%").andLike("result", "%成功%").select("user_id").stream().count();
long loginDistinctCount = CollectionUtil.emptyIfNull(logDaoLambdaQuery.distinct().andLike("request_url", "%login%").andLike("result", "%成功%").select("user_id")).stream().count();
//登录人数
data.put("loginNumber", loginDistinctCount);

@ -1,6 +1,9 @@
package com.ibeetl.jlw.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.Header;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@ -14,6 +17,7 @@ import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.entity.SysLog;
import org.beetl.sql.core.SqlId;
import org.beetl.sql.core.engine.PageQuery;
import org.beetl.sql.core.query.LambdaQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -169,4 +173,42 @@ public class SysLogService extends CoreBaseService<SysLog> {
}
/**
*
*
* @param userId
* @param dbUser
*/
public void setLoginLogInfo(Long userId, CoreUser dbUser) {
if (ObjectUtil.isAllEmpty(userId, dbUser)) {
return;
}
LambdaQuery<SysLog> sysLogLambdaQuery = sysLogDao.createLambdaQuery();
long loginCount = sysLogLambdaQuery.andLike(SysLog::getRequestUrl, "%login%").andLike(SysLog::getResult, "%成功%").andEq(SysLog::getUserId, userId).count();
// 登录次数
dbUser.set("loginCount", loginCount);
//最后登陆时间
SysLog lastLoginLog = sysLogLambdaQuery.andLike(SysLog::getRequestUrl, "%login%").andLike(SysLog::getResult, "%成功%")
.andEq(SysLog::getUserId, userId).desc(SysLog::getResultTime).limit(0, 1).single("result_time");
// 最后登录时间,默认置空
dbUser.set("lastLoginTime", "-");
if (lastLoginLog != null) {
dbUser.set("lastLoginTime", lastLoginLog.getResultTime());
}
// 登录天数
List<SysLog> loginDaysLogList = sysLogLambdaQuery.andLike(SysLog::getRequestUrl, "%login%").andLike(SysLog::getResult, "%成功%")
.andEq(SysLog::getUserId, userId).desc(SysLog::getResultTime).select(SysLog::getResultTime);
long loginDays = CollectionUtil.emptyIfNull(loginDaysLogList).stream().map(item -> DateUtil.formatDate(item.getResultTime())).distinct().count();
dbUser.set("loginDays", loginDays);
}
}

@ -114,6 +114,16 @@ public class TeacherOpenCourseMergeStudentService extends CoreBaseService<Teache
public JsonResult add(TeacherOpenCourseMergeStudentQuery teacherOpenCourseMergeStudentQuery){
String msg = "";
TeacherOpenCourseMergeStudent teacherOpenCourseMergeStudent = teacherOpenCourseMergeStudentQuery.pojo();
Long studentId = teacherOpenCourseMergeStudent.getStudentId();
Long teacherOpenCourseId = teacherOpenCourseMergeStudent.getTeacherOpenCourseId();
boolean isNotExists = teacherOpenCourseMergeStudentDao.createLambdaQuery().andEq(TeacherOpenCourseMergeStudent::getStudentId, studentId)
.andEq(TeacherOpenCourseMergeStudent::getTeacherOpenCourseId, teacherOpenCourseId)
.andEq(TeacherOpenCourseMergeStudent::getTeacherOpenCourseSchoolClassMergeStudentStatus, 1)
.count() == 0;
Assert.isTrue(isNotExists, "已经加入过该课程,请勿重复操作!");
teacherOpenCourseMergeStudent.setTeacherOpenCourseSchoolClassMergeStudentAddTime(new Date());
teacherOpenCourseMergeStudentDao.insert(teacherOpenCourseMergeStudent);
teacherOpenCourseMergeStudentQuery.setTeacherOpenCourseSchoolClassMergeStudentId(teacherOpenCourseMergeStudent.getTeacherOpenCourseSchoolClassMergeStudentId());

@ -49,6 +49,8 @@ public class UniversitiesCollegesService extends CoreBaseService<UniversitiesCol
@Autowired private OrgConsoleService orgConsoleService;
@Autowired private CoreUserService coreUserService;
@Autowired private WebPlatformService webPlatformService;
@Autowired
private SysLogService sysLogService;
public PageQuery<UniversitiesColleges>queryByCondition(PageQuery query){
PageQuery ret = universitiesCollegesDao.queryByCondition(query);
@ -215,11 +217,16 @@ public class UniversitiesCollegesService extends CoreBaseService<UniversitiesCol
CoreUser user = getUser();
Assert.isTrue(user.isUniAdmin(), "该接口只有学校管理管理员可以使用!");
Long userId = user.getId();
CoreUser dbUser = coreUserService.getUserById(userId);
// 设置登录时间和最后登录时间
sysLogService.setLoginLogInfo(userId, dbUser);
// 构建返回实体
UniversitiesCollegesUserInfo universitiesCollegesUserInfo = new UniversitiesCollegesUserInfo();
// 当前的登录的学校管理员登录信息
// TODO 需要增加 登录次数和登录天数信息和最后登录时间。
universitiesCollegesUserInfo.setCoreUser(user);
universitiesCollegesUserInfo.setCoreUser(dbUser);
// 院校信息
UniversitiesColleges universitiesColleges = (UniversitiesColleges) webPlatformService.getUserInfoFromSessionByIdentity(user);
@ -231,6 +238,7 @@ public class UniversitiesCollegesService extends CoreBaseService<UniversitiesCol
return universitiesCollegesUserInfo;
}
/**
*
* @param universitiesCollegesId ID

@ -2,7 +2,9 @@ package com.ibeetl.jlw.service.api.student;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import com.ibeetl.admin.core.conf.PasswordConfig;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreUserService;
import com.ibeetl.jlw.dao.StudentDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseMergeStudentDao;
@ -10,12 +12,10 @@ import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.entity.api.CurrentUserInfo;
import com.ibeetl.jlw.entity.api.student.StudentActiveInfo;
import com.ibeetl.jlw.entity.api.student.StudentIndexData;
import com.ibeetl.jlw.entity.api.student.StudentUserCenterData;
import com.ibeetl.jlw.entity.dto.StudentEditPasswordDTO;
import com.ibeetl.jlw.entity.dto.StudentRegisterDTO;
import com.ibeetl.jlw.service.ResourcesApplicationService;
import com.ibeetl.jlw.service.StudentService;
import com.ibeetl.jlw.service.TeacherOpenCourseNoticeService;
import com.ibeetl.jlw.service.UniversitiesCollegesService;
import com.ibeetl.jlw.service.*;
import com.ibeetl.jlw.service.api.ApiIndexBaseService;
import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeStudentQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseNoticeQuery;
@ -30,6 +30,7 @@ import java.util.List;
import java.util.Map;
import static cn.jlw.util.CacheUserUtil.getStudent;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
/**
* <p>
@ -53,6 +54,8 @@ public class ApiStudentService {
@Autowired private UniversitiesCollegesService universitiesCollegesService;
@Autowired private PasswordConfig.PasswordEncryptService passwordEncryptService;
@Autowired private CoreUserService coreUserService;
@Autowired
private SysLogService sysLogService;
/**
* -
@ -220,4 +223,29 @@ public class ApiStudentService {
Assert.notNull(student, "该接口只能学生查看!");
return studentDao.studentActiveInfo(student.getStudentId());
}
public StudentUserCenterData userCenter() {
CoreUser user = getUser();
Assert.isTrue(user.isStudent(), "该接口只能学生访问!");
Long userId = user.getId();
List<StudentExtendSchoolInfo> extendStudentList = studentDao.getStudentExtendSchoolInfoListByUserIds(userId.toString());
StudentExtendSchoolInfo studentExtendSchoolInfo = null;
if (ObjectUtil.isNotEmpty(extendStudentList)) {
studentExtendSchoolInfo = extendStudentList.get(0);
}
CoreUser coreUser = coreUserService.getUserById(userId);
// 设置登录时间和最后登录时间
sysLogService.setLoginLogInfo(userId, coreUser);
// 活跃度
StudentActiveInfo studentActiveInfo = studentActiveInfo();
return StudentUserCenterData.builder().userInfo(coreUser)
.studentInfo(studentExtendSchoolInfo).activeInfo(studentActiveInfo)
.build();
}
}

@ -2,10 +2,15 @@ package com.ibeetl.jlw.service.api.teacher;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreUserService;
import com.ibeetl.jlw.dao.TeacherDao;
import com.ibeetl.jlw.dao.TeacherMergeApplicationDao;
import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.entity.api.CurrentUserInfo;
import com.ibeetl.jlw.entity.api.teacher.TeacherIndexData;
import com.ibeetl.jlw.entity.api.teacher.TeacherUserCenterData;
import com.ibeetl.jlw.service.*;
import com.ibeetl.jlw.service.api.ApiIndexBaseService;
import com.ibeetl.jlw.web.query.ResourcesApplicationQuery;
@ -19,6 +24,8 @@ import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
/**
* <p>
* -API
@ -43,6 +50,12 @@ public class ApiTeacherService {
private ResourcesApplicationService resourcesApplicationService;
@Autowired
private TeacherService teacherService;
@Autowired
private TeacherDao teacherDao;
@Autowired
private CoreUserService coreUserService;
@Autowired
private SysLogService sysLogService;
/**
* -
@ -88,4 +101,34 @@ public class ApiTeacherService {
.myOpenCourseList(openCourseList)
.build();
}
/**
* : <br>
* -
*
* @return {@link TeacherUserCenterData}
* @Author: 87966
* @Date: 2022/12/21 14:52
*/
public TeacherUserCenterData userCenter() {
CoreUser user = getUser();
Assert.isTrue(user.isTeacher(), "该接口只能教师访问!");
Long userId = user.getId();
Teacher teacher = teacherDao.getByUserId(userId);
CoreUser coreUser = coreUserService.getUserById(userId);
// 设置登录时间和最后登录时间
sysLogService.setLoginLogInfo(userId, coreUser);
List<TeacherUserCenterData.TeacherRuleInfo> ruleInfoList = teacherDao.getTeacherUserInfoRuleInfo(userId, null);
TeacherUserCenterData.TeacherRuleInfo teacherRuleInfo = null;
if (ObjectUtil.isNotEmpty(ruleInfoList)) {
teacherRuleInfo = ruleInfoList.get(0);
}
return TeacherUserCenterData.builder()
.teacherInfo(teacher).userInfo(coreUser).ruleInfo(teacherRuleInfo).build();
}
}

@ -1045,7 +1045,7 @@ public class IndexController {
@PostMapping("/logout.json")
@ResponseBody
public JsonResult logout() {
public JsonResult logout(@SCoreUser CoreUser coreUser) {
return JsonResult.success(platformService.logout());
}

@ -2,12 +2,14 @@ package com.ibeetl.jlw.web.api.student;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.api.student.StudentIndexData;
import com.ibeetl.jlw.entity.api.student.StudentUserCenterData;
import com.ibeetl.jlw.entity.dto.StudentEditPasswordDTO;
import com.ibeetl.jlw.entity.dto.StudentRegisterDTO;
import com.ibeetl.jlw.service.api.student.ApiStudentService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -62,4 +64,14 @@ public class ApiStudentController {
public JsonResult studentActiveInfo() {
return JsonResult.success(apiStudentService.studentActiveInfo());
}
/**
* -
* @return
*/
@GetMapping("userCenter.do")
public JsonResult<StudentUserCenterData> userCenter() {
return JsonResult.success(apiStudentService.userCenter());
}
}

@ -2,10 +2,12 @@ package com.ibeetl.jlw.web.api.teacher;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.api.teacher.TeacherIndexData;
import com.ibeetl.jlw.entity.api.teacher.TeacherUserCenterData;
import com.ibeetl.jlw.service.api.teacher.ApiTeacherService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -32,4 +34,14 @@ public class ApiTeacherController {
return JsonResult.success(apiTeacherService.index());
}
/**
* -
* @return
*/
@GetMapping("userCenter.do")
public JsonResult<TeacherUserCenterData> userCenter() {
return JsonResult.success(apiTeacherService.userCenter());
}
}

@ -1388,7 +1388,9 @@ getStudentExtendSchoolInfo
tc.university_faculty_id,
tc.university_faculty_name,
td.universities_colleges_id,
td.universities_colleges_name
td.universities_colleges_name,
td.universities_colleges_city,
td.universities_colleges_province
FROM
student t
LEFT JOIN school_class ta ON ta.class_id = t.class_id
@ -1417,7 +1419,9 @@ getStudentExtendSchoolInfoListByUserIds
tc.university_faculty_id,
tc.university_faculty_name,
td.universities_colleges_id,
td.universities_colleges_name
td.universities_colleges_name,
td.universities_colleges_city,
td.universities_colleges_province
FROM
student t
LEFT JOIN school_class ta ON ta.class_id = t.class_id

@ -475,7 +475,9 @@ getTeacherExtendSchoolInfo
tc.university_faculty_id,
tc.university_faculty_name,
td.universities_colleges_id,
td.universities_colleges_name
td.universities_colleges_name,
td.universities_colleges_city,
td.universities_colleges_province
FROM
teacher t
LEFT JOIN university_system tb ON tb.university_system_id = t.university_system_id
@ -499,7 +501,9 @@ getTeacherExtendSchoolInfoListByUserIds
tc.university_faculty_id,
tc.university_faculty_name,
td.universities_colleges_id,
td.universities_colleges_name
td.universities_colleges_name,
td.universities_colleges_city,
td.universities_colleges_province
FROM
teacher t
LEFT JOIN university_system tb ON tb.university_system_id = t.university_system_id
@ -510,4 +514,47 @@ getTeacherExtendSchoolInfoListByUserIds
AND td.universities_colleges_status = 1
WHERE
1 = 1
AND FIND_IN_SET(t.user_id,#userIds#)
AND FIND_IN_SET(t.user_id,#userIds#)
getTeacherUserInfoRuleInfo
===
* 通过用户ID 获取教师的学校信息 用户中心
SELECT
t.teacher_name,
tb.university_system_name,
tc.university_faculty_name,
td.universities_colleges_name,
concat( td.universities_colleges_province, universities_colleges_city ) AS universities_colleges_address,
(
SELECT
GROUP_CONCAT(class_name separator '、')
FROM
school_class ab
WHERE
ab.class_id IN (
SELECT DISTINCT
a.school_class_id
FROM
teacher_open_course_merge_school_class a
WHERE
a.teacher_open_course_id IN ( SELECT DISTINCT teacher_open_course_id FROM teacher_open_course_merge_teacher b WHERE b.teacher_id = t.teacher_id ))) AS class_names
FROM
teacher t
INNER JOIN university_system tb ON tb.university_system_id = t.university_system_id
AND tb.university_system_status = 1
INNER JOIN university_faculty tc ON tc.university_faculty_id = t.university_faculty_id
AND tc.university_faculty_status = 1
INNER JOIN universities_colleges td ON td.universities_colleges_id = t.universities_colleges_id
AND td.universities_colleges_status = 1
WHERE
1 = 1
@if(!isEmpty(teacherId)){
and t.teacher_id =#teacherId#
@}
@if(!isEmpty(userId)){
and t.user_id =#userId#
@}

Loading…
Cancel
Save