1、使用记录

beetlsql3-dev
wgf 2 years ago
parent 4caab36310
commit 2c3e1640fd

@ -12,7 +12,9 @@ import com.auth0.jwt.interfaces.Claim;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.enums.MenuEnums;
import com.ibeetl.admin.core.service.CoreUserService;
import com.ibeetl.jlw.dao.StudentTeacherSystemUseLogAnalysisDao;
import com.ibeetl.jlw.dao.SysLogDao;
import com.ibeetl.jlw.entity.StudentTeacherSystemUseLogAnalysis;
import com.ibeetl.jlw.entity.SysLog;
import com.ibeetl.jlw.service.SysLogService;
import lombok.extern.slf4j.Slf4j;
@ -53,6 +55,8 @@ public class KeyExpiredListener extends KeyExpirationEventMessageListener {
@Autowired
private SysLogDao sysLogDao;
@Autowired
private StudentTeacherSystemUseLogAnalysisDao studentTeacherSystemUseLogAnalysisDao;
public KeyExpiredListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
@ -123,6 +127,15 @@ public class KeyExpiredListener extends KeyExpirationEventMessageListener {
sysLog.setStudentId(Long.valueOf(realId));
}
sysLogService.insert(sysLog);
List<StudentTeacherSystemUseLogAnalysis> teacherSystemUseLogAnalyses = studentTeacherSystemUseLogAnalysisDao.getSQLManager()
.lambdaQuery(StudentTeacherSystemUseLogAnalysis.class)
.andIsNull(StudentTeacherSystemUseLogAnalysis::getDayTime).select();
teacherSystemUseLogAnalyses.forEach(item ->{
long time = (Objects.isNull(item.getAddTime()) ? 0 : item.getAddTime().getTime()) + (Objects.isNull(item.getUseDuration()) ? 0 : (item.getUseDuration() * 60 * 1000));
item.setDayTime(DateUtil.formatDateTime(DateUtil.date(time)));
studentTeacherSystemUseLogAnalysisDao.updateTemplateById(item);
});
}
} catch (Exception e) {

@ -49,6 +49,13 @@ public interface StudentDao extends BaseMapper<Student>{
}
List<Student> getStudentLog (StudentQuery studentQuery);
PageQuery<StudentUseLogVO> queryStudentUseLogByCondition(PageQuery query);
/**
* -使
* @param query
* @return
*/
PageQuery<StudentUseLogVO> queryStudentTeacherOrUseLogBy(PageQuery query);
PageQuery<StudentLoginLogVO> queryStudentLoginLogByCondition(PageQuery query);
/**

@ -165,7 +165,7 @@ public class StudentTeacherSystemUseLogAnalysis extends BaseEntity{
public String getDayTime(){
return dayTime;
}
/**
/**()
*@param dayTime
*/
public void setDayTime(String dayTime){

@ -57,44 +57,38 @@ public class StudentLoginLogVO extends BaseEntity {
/**
*
*/
// @ExcelProperty(value = "班级名称", index = 4)
@ExcelProperty(value = "班级名称", index = 4)
private String className;
/**
*
*/
// @ExcelProperty(value = "登入时间", index = 5)
@ExcelProperty(value = "登入时间", index = 4)
@ExcelProperty(value = "登入时间", index = 5)
private String loginTime;
/**
*
*/
// @ExcelProperty(value = "登出时间", index = 6)
@ExcelProperty(value = "登出时间", index = 5)
@ExcelProperty(value = "登出时间", index = 6)
private String logoutTime;
/**
* 线
*/
// @ExcelProperty(value = "在线时长", index = 7)
@ExcelProperty(value = "在线时长", index = 6)
@ExcelProperty(value = "在线时长", index = 7)
private String onlineDuration;
/**
* 线
*/
// @ExcelProperty(value = "是否在线", index = 8)
@ExcelProperty(value = "是否在线", index = 7)
@ExcelProperty(value = "是否在线", index = 8)
private Boolean isOnLine;
/**
* IP
*/
// @ExcelProperty(value = "登录IP", index = 9)
@ExcelProperty(value = "登录IP", index = 8)
@ExcelProperty(value = "登录IP", index = 9)
private String ip;
/**
* IP
*/
// @ExcelProperty(value = "IP所属地", index = 10)
@ExcelProperty(value = "IP所属地", index = 9)
@ExcelProperty(value = "IP所属地", index = 10)
private String ipAddress;
/**
*

@ -224,7 +224,8 @@ public class StudentService extends CoreBaseService<Student>{
if (null != uniAdmin) {
query.setPara("universitiesCollegesId", uniAdmin.getUniversitiesCollegesId());
}
return studentDao.queryStudentUseLogByCondition(query);
// return studentDao.queryStudentUseLogByCondition(query);
return studentDao.queryStudentTeacherOrUseLogBy(query);
}
/**

@ -49,9 +49,10 @@ import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
@Service
@Transactional
@Validated
public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<StudentTeacherSystemUseLogAnalysis>{
public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<StudentTeacherSystemUseLogAnalysis> {
@Autowired private StudentTeacherSystemUseLogAnalysisDao studentTeacherSystemUseLogAnalysisDao;
@Autowired
private StudentTeacherSystemUseLogAnalysisDao studentTeacherSystemUseLogAnalysisDao;
@Autowired
private StudentService studentService;
@Autowired
@ -59,30 +60,30 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
@Autowired
private UniversitiesCollegesService universitiesCollegesService;
public PageQuery<StudentTeacherSystemUseLogAnalysis>queryByCondition(PageQuery query){
PageQuery ret = studentTeacherSystemUseLogAnalysisDao.queryByCondition(query);
public PageQuery<StudentTeacherSystemUseLogAnalysis> queryByCondition(PageQuery query) {
PageQuery ret = studentTeacherSystemUseLogAnalysisDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret;
}
public PageQuery<StudentTeacherSystemUseLogAnalysis>queryByConditionQuery(PageQuery query){
PageQuery ret = studentTeacherSystemUseLogAnalysisDao.queryByConditionQuery(query);
public PageQuery<StudentTeacherSystemUseLogAnalysis> queryByConditionQuery(PageQuery query) {
PageQuery ret = studentTeacherSystemUseLogAnalysisDao.queryByConditionQuery(query);
queryListAfter(ret.getList());
return ret;
}
public void deleteByList(List list){
public void deleteByList(List list) {
String ids = "";
ToolUtils.deleteNullList(list);
for(int i=0;null != list && i<list.size();i++){
ids += list.get(i).toString()+(i==list.size()-1?"":",");
for (int i = 0; null != list && i < list.size(); i++) {
ids += list.get(i).toString() + (i == list.size() - 1 ? "" : ",");
}
if(StringUtils.isNotBlank(ids)){
if (StringUtils.isNotBlank(ids)) {
studentTeacherSystemUseLogAnalysisDao.deleteStudentTeacherSystemUseLogAnalysisByIds(ids);
}
}
public void deleteStudentTeacherSystemUseLogAnalysis(String ids){
public void deleteStudentTeacherSystemUseLogAnalysis(String ids) {
try {
studentTeacherSystemUseLogAnalysisDao.deleteStudentTeacherSystemUseLogAnalysisByIds(ids);
} catch (Exception e) {
@ -90,7 +91,7 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
}
}
public String addAll(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){
public String addAll(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
String msg = "";
List<StudentTeacherSystemUseLogAnalysis> studentTeacherSystemUseLogAnalysisList = new ArrayList<>();
try {
@ -98,11 +99,12 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
} catch (Exception e) {
try {
studentTeacherSystemUseLogAnalysisList.add(JSONObject.parseObject(studentTeacherSystemUseLogAnalysisQuery.getStudentTeacherSystemUseLogAnalysisJsonStr(), StudentTeacherSystemUseLogAnalysis.class));
} catch (Exception e1) {}
} catch (Exception e1) {
}
}
ToolUtils.deleteNullList(studentTeacherSystemUseLogAnalysisList);
if(null != studentTeacherSystemUseLogAnalysisList && studentTeacherSystemUseLogAnalysisList.size()>0){
for(int i=0;i<studentTeacherSystemUseLogAnalysisList.size();i++){
if (null != studentTeacherSystemUseLogAnalysisList && studentTeacherSystemUseLogAnalysisList.size() > 0) {
for (int i = 0; i < studentTeacherSystemUseLogAnalysisList.size(); i++) {
StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = studentTeacherSystemUseLogAnalysisList.get(i);
studentTeacherSystemUseLogAnalysis.setUserId(studentTeacherSystemUseLogAnalysisQuery.getUserId());
studentTeacherSystemUseLogAnalysis.setOrgId(studentTeacherSystemUseLogAnalysisQuery.getOrgId());
@ -112,7 +114,7 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
return msg;
}
public JsonResult add(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){
public JsonResult add(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
String msg = "";
StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = studentTeacherSystemUseLogAnalysisQuery.pojo();
studentTeacherSystemUseLogAnalysisDao.insert(studentTeacherSystemUseLogAnalysis);
@ -124,76 +126,76 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
return jsonResult;
}
public String edit(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){
public String edit(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
String msg = "";
StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = studentTeacherSystemUseLogAnalysisQuery.pojo();
studentTeacherSystemUseLogAnalysisDao.updateTemplateById(studentTeacherSystemUseLogAnalysis);
return msg;
}
public String updateGivenByIds(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){
public String updateGivenByIds(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
String msg = "";
if(StringUtils.isNotBlank(studentTeacherSystemUseLogAnalysisQuery.get_given())){
if (StringUtils.isNotBlank(studentTeacherSystemUseLogAnalysisQuery.get_given())) {
boolean flag = studentTeacherSystemUseLogAnalysisDao.updateGivenByIds(studentTeacherSystemUseLogAnalysisQuery) > 0;
if(!flag){
if (!flag) {
msg = "更新指定参数失败";
}
}else{
} else {
msg = "指定参数为空";
}
return msg;
}
public List<StudentTeacherSystemUseLogAnalysis> getValues (Object paras){
public List<StudentTeacherSystemUseLogAnalysis> getValues(Object paras) {
return sqlManager.select(SqlId.of("jlw.studentTeacherSystemUseLogAnalysis.getStudentTeacherSystemUseLogAnalysisValues"), StudentTeacherSystemUseLogAnalysis.class, paras);
}
public List<StudentTeacherSystemUseLogAnalysis> getValuesByQuery (StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){
public List<StudentTeacherSystemUseLogAnalysis> getValuesByQuery(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
return studentTeacherSystemUseLogAnalysisDao.getValuesByQuery(studentTeacherSystemUseLogAnalysisQuery);
}
public List<StudentTeacherSystemUseLogAnalysis> getValuesByQueryNotWithPermission (StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){
public List<StudentTeacherSystemUseLogAnalysis> getValuesByQueryNotWithPermission(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
return studentTeacherSystemUseLogAnalysisDao.getValuesByQueryNotWithPermission(studentTeacherSystemUseLogAnalysisQuery);
}
public StudentTeacherSystemUseLogAnalysis getInfo (Long id){
public StudentTeacherSystemUseLogAnalysis getInfo(Long id) {
StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery = new StudentTeacherSystemUseLogAnalysisQuery();
studentTeacherSystemUseLogAnalysisQuery.setId(id);
List<StudentTeacherSystemUseLogAnalysis> list = studentTeacherSystemUseLogAnalysisDao.getValuesByQuery(studentTeacherSystemUseLogAnalysisQuery);
if(null != list && list.size()>0){
if (null != list && list.size() > 0) {
return list.get(0);
}else{
} else {
return null;
}
}
public StudentTeacherSystemUseLogAnalysis getInfo (StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){
public StudentTeacherSystemUseLogAnalysis getInfo(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
List<StudentTeacherSystemUseLogAnalysis> list = studentTeacherSystemUseLogAnalysisDao.getValuesByQuery(studentTeacherSystemUseLogAnalysisQuery);
if(null != list && list.size()>0){
if (null != list && list.size() > 0) {
return list.get(0);
}else{
} else {
return null;
}
}
public JsonResult importTemplate(List<FileEntity> fileEntityList,List<Long>list,CoreUser coreUser){
List<String[]>errMsg = new ArrayList<>();
String msg ="";
public JsonResult importTemplate(List<FileEntity> fileEntityList, List<Long> list, CoreUser coreUser) {
List<String[]> errMsg = new ArrayList<>();
String msg = "";
int count = 0;
Date date = new Date();
for(int item=0;null != fileEntityList && item<fileEntityList.size();item++){
for (int item = 0; null != fileEntityList && item < fileEntityList.size(); item++) {
FileEntity fileEntity = fileEntityList.get(item);
if(null != fileEntity){
if (null != fileEntity) {
File file = new File(fileEntity.getAbsoluteUrl());
if(file.exists() && file.isFile() && file.canRead() && ToolUtils.findInSet("xls,xlsx",fileEntity.getFormat())){
if (file.exists() && file.isFile() && file.canRead() && ToolUtils.findInSet("xls,xlsx", fileEntity.getFormat())) {
Workbook wb = null;
InputStream is = null;
try {
is = new FileInputStream(fileEntity.getAbsoluteUrl());
if("xls".equals(fileEntity.getFormat())){
if ("xls".equals(fileEntity.getFormat())) {
wb = new HSSFWorkbook(is);
}else if("xlsx".equals(fileEntity.getFormat())){
} else if ("xlsx".equals(fileEntity.getFormat())) {
wb = new XSSFWorkbook(is);
}
} catch (FileNotFoundException e) {
@ -202,13 +204,13 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
e.printStackTrace();
}
try {
if(null != is){
is.close();
}
}catch (Exception e){
if (null != is) {
is.close();
}
} catch (Exception e) {
e.printStackTrace();
}
if(wb != null){
if (wb != null) {
//获取Sheet1
Sheet sheet = wb.getSheet("Sheet1");
//获取最大行数
@ -219,48 +221,48 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
int colNum = firstRow.getPhysicalNumberOfCells();
String columns[] = {
"一级名称",
"二级名称",
"院校名称",
"院校",
"用户类型 UserTypeEnum",
"所在省份",
"日期",
"使用时长",
"创建时间",
"一级名称",
"二级名称",
"院校名称",
"院校",
"用户类型 UserTypeEnum",
"所在省份",
"日期",
"使用时长",
"创建时间",
};
Map<String,Integer> map = new HashMap<>();//获取需要的表头的列
Map<String, Integer> map = new HashMap<>();//获取需要的表头的列
//从第一列找到需要的表头
for (int i=0; i<colNum; i++){
for (int i = 0; i < colNum; i++) {
String cellData = getCellFormatValue(firstRow.getCell(i));
for(int j=0;j<columns.length;j++){
if(columns[j].equals(cellData)){
map.put(columns[j],i);
for (int j = 0; j < columns.length; j++) {
if (columns[j].equals(cellData)) {
map.put(columns[j], i);
}
}
}
//验证所需要的表头是否全
Integer flag = 0;
for(int i=0;i<columns.length;i++){
if(null != map.get(columns[i])){
flag ++;
for (int i = 0; i < columns.length; i++) {
if (null != map.get(columns[i])) {
flag++;
}
}
if(flag != columns.length){
if (flag != columns.length) {
String str = " ";
for(int i=0;i<columns.length;i++){
str += "\""+columns[i]+"\""+(i == columns.length-1?"":", ");
for (int i = 0; i < columns.length; i++) {
str += "\"" + columns[i] + "\"" + (i == columns.length - 1 ? "" : ", ");
}
return JsonResult.failMessage("导入失败,表格表头应包含"+str);
return JsonResult.failMessage("导入失败,表格表头应包含" + str);
}
for (int i = 1; i<rowNum; i++) {
for (int i = 1; i < rowNum; i++) {
Row row = sheet.getRow(i);
if(null == row){
errMsg.add(new String[]{"第"+(i+1)+"数据为空"});
if (null == row) {
errMsg.add(new String[]{"第" + (i + 1) + "数据为空"});
continue;
}
@ -274,58 +276,49 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
String useDuration = getCellFormatValue(row.getCell(map.get(columns[7])));
String addTime = getCellFormatValue(row.getCell(map.get(columns[8])));
//TODO 判断(如重复等复杂判断要额外写)
if(StringUtils.isBlank(firstName)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[0])+1)+"列,第"+(i+1)+"行一级名称为空"});
if (StringUtils.isBlank(firstName)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[0]) + 1) + "列,第" + (i + 1) + "行一级名称为空"});
continue;
}else
if(StringUtils.isBlank(secondName)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[1])+1)+"列,第"+(i+1)+"行二级名称为空"});
} else if (StringUtils.isBlank(secondName)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[1]) + 1) + "列,第" + (i + 1) + "行二级名称为空"});
continue;
}else
if(StringUtils.isBlank(universitiesCollegesName)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[2])+1)+"列,第"+(i+1)+"行院校名称为空"});
} else if (StringUtils.isBlank(universitiesCollegesName)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[2]) + 1) + "列,第" + (i + 1) + "行院校名称为空"});
continue;
}else
if(StringUtils.isBlank(universitiesCollegesId)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[3])+1)+"列,第"+(i+1)+"行院校为空"});
} else if (StringUtils.isBlank(universitiesCollegesId)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[3]) + 1) + "列,第" + (i + 1) + "行院校为空"});
continue;
}else
if(StringUtils.isBlank(userType)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[4])+1)+"列,第"+(i+1)+"行用户类型 UserTypeEnum为空"});
} else if (StringUtils.isBlank(userType)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[4]) + 1) + "列,第" + (i + 1) + "行用户类型 UserTypeEnum为空"});
continue;
}else
if(StringUtils.isBlank(province)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[5])+1)+"列,第"+(i+1)+"行所在省份为空"});
} else if (StringUtils.isBlank(province)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[5]) + 1) + "列,第" + (i + 1) + "行所在省份为空"});
continue;
}else
if(StringUtils.isBlank(dayTime)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[6])+1)+"列,第"+(i+1)+"行日期为空"});
} else if (StringUtils.isBlank(dayTime)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[6]) + 1) + "列,第" + (i + 1) + "行日期为空"});
continue;
}else
if(StringUtils.isBlank(useDuration)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[7])+1)+"列,第"+(i+1)+"行使用时长为空"});
} else if (StringUtils.isBlank(useDuration)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[7]) + 1) + "列,第" + (i + 1) + "行使用时长为空"});
continue;
}else
if(StringUtils.isBlank(addTime)){
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[8])+1)+"列,第"+(i+1)+"行创建时间为空"});
} else if (StringUtils.isBlank(addTime)) {
errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[8]) + 1) + "列,第" + (i + 1) + "行创建时间为空"});
continue;
}else
{
//TODO 保存
StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = new StudentTeacherSystemUseLogAnalysis();
studentTeacherSystemUseLogAnalysis.setFirstName(firstName);
studentTeacherSystemUseLogAnalysis.setSecondName(secondName);
studentTeacherSystemUseLogAnalysis.setUniversitiesCollegesName(universitiesCollegesName);
studentTeacherSystemUseLogAnalysis.setUniversitiesCollegesId(Long.parseLong(universitiesCollegesId));
studentTeacherSystemUseLogAnalysis.setUserType(EnumUtil.likeValueOf(UseTypeEnum.class, userType));
studentTeacherSystemUseLogAnalysis.setProvince(province);
studentTeacherSystemUseLogAnalysis.setDayTime(dayTime);
studentTeacherSystemUseLogAnalysis.setUseDuration(Long.parseLong(useDuration));
studentTeacherSystemUseLogAnalysis.setAddTime(TimeTool.getTime(addTime));
studentTeacherSystemUseLogAnalysis.setOrgId(coreUser.getOrgId());
studentTeacherSystemUseLogAnalysis.setUserId(coreUser.getId());
count++;
} else {
//TODO 保存
StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = new StudentTeacherSystemUseLogAnalysis();
studentTeacherSystemUseLogAnalysis.setFirstName(firstName);
studentTeacherSystemUseLogAnalysis.setSecondName(secondName);
studentTeacherSystemUseLogAnalysis.setUniversitiesCollegesName(universitiesCollegesName);
studentTeacherSystemUseLogAnalysis.setUniversitiesCollegesId(Long.parseLong(universitiesCollegesId));
studentTeacherSystemUseLogAnalysis.setUserType(EnumUtil.likeValueOf(UseTypeEnum.class, userType));
studentTeacherSystemUseLogAnalysis.setProvince(province);
studentTeacherSystemUseLogAnalysis.setDayTime(dayTime);
studentTeacherSystemUseLogAnalysis.setUseDuration(Long.parseLong(useDuration));
studentTeacherSystemUseLogAnalysis.setAddTime(TimeTool.getTime(addTime));
studentTeacherSystemUseLogAnalysis.setOrgId(coreUser.getOrgId());
studentTeacherSystemUseLogAnalysis.setUserId(coreUser.getId());
count++;
}
}
}
@ -333,18 +326,19 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
}
}
JsonResult jsonResult = new JsonResult();
jsonResult.setCode(count>0?JsonReturnCode.SUCCESS.getCode():JsonReturnCode.FAIL.getCode());
jsonResult.setCode(count > 0 ? JsonReturnCode.SUCCESS.getCode() : JsonReturnCode.FAIL.getCode());
jsonResult.setData(errMsg);
jsonResult.setMsg((count>0?"导入成功,共导入"+count+"条":"导入失败")+(StringUtils.isNotBlank(msg)?"<br>"+msg:""));
jsonResult.setMsg((count > 0 ? "导入成功,共导入" + count + "条" : "导入失败") + (StringUtils.isNotBlank(msg) ? "<br>" + msg : ""));
return jsonResult;
}
public List<Map<String,Object>> getExcelValues (StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){
public List<Map<String, Object>> getExcelValues(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
return studentTeacherSystemUseLogAnalysisDao.getExcelValues(studentTeacherSystemUseLogAnalysisQuery);
}
/**
* 使
*
* @param page
* @return
*/
@ -379,28 +373,97 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
*/
public void addOrUpdateUseLog(StudentTeacherSystemUseLogAnalysisAddDTO dto, CoreUser coreUser) {
// 追加的使用时长
Long appendUseDuration = defaultIfNull(dto.getUseDuration(), 5L);
final String firstName = dto.getFirstName().trim();
final String secondName = dto.getSecondName().trim();
final Long userId = coreUser.getId();
final Long orgId = coreUser.getOrgId();
final String today = DateUtil.today();
// Long appendUseDuration = defaultIfNull(dto.getUseDuration(), 5L);
// final String firstName = Objects.isNull(dto.getFirstName()) ? null : dto.getFirstName().trim();
// final String secondName = Objects.isNull(dto.getSecondName()) ? null : dto.getSecondName().trim();
// final Long userId = coreUser.getId();
// final Long orgId = coreUser.getOrgId();
// final String today = DateUtil.today();
// // 院校名称
// String universitiesCollegesName = "";
// // 院校ID
// Long universitiesCollegesId = null;
// // 院校所在省
// String province = null;
// // 用户类型
// UseTypeEnum useType = null;
//
// // 查询唯一的条件,如果没查到那肯定是要新增一条数据咯
// StudentTeacherSystemUseLogAnalysisQuery query = new StudentTeacherSystemUseLogAnalysisQuery();
// query.setFirstName(firstName);
// query.setSecondName(secondName);
// query.setUserId(userId);
// query.setOrgId(orgId);
// query.setDayTime(today);
//
// // 追加院校ID条件
// if (coreUser.isStudent()) {
// Student student = studentService.getByUserId(userId);
// useType = UseTypeEnum.STUDENT;
// if (student != null) {
// UniversitiesColleges universitiesColleges = universitiesCollegesService.getUniversitiesCollegesByStudent(student);
// province = universitiesColleges.getUniversitiesCollegesProvince();
// universitiesCollegesId = universitiesColleges.getUniversitiesCollegesId();
// universitiesCollegesName = universitiesColleges.getUniversitiesCollegesName();
// query.setUniversitiesCollegesId(universitiesCollegesId);
// }
// }
// if (coreUser.isTeacher()) {
// Teacher teacher = teacherService.getByUserId(userId);
// useType = UseTypeEnum.TEACHER;
// if (teacher != null) {
// UniversitiesColleges universitiesColleges = universitiesCollegesService.getUniversitiesCollegesByTeacher(teacher);
// province = universitiesColleges.getUniversitiesCollegesProvince();
// universitiesCollegesId = universitiesColleges.getUniversitiesCollegesId();
// universitiesCollegesName = universitiesColleges.getUniversitiesCollegesName();
// query.setUniversitiesCollegesId(universitiesColleges.getUniversitiesCollegesId());
// }
// }
//
// List<StudentTeacherSystemUseLogAnalysis> logAnalysisList = getValuesByQueryNotWithPermission(query);
//
// // 如果查询到数据,则追加使用时长(分钟)
// if (CollectionUtil.isNotEmpty(logAnalysisList)) {
// StudentTeacherSystemUseLogAnalysis logAnalysis = getFirst(logAnalysisList);
// logAnalysis.setUseDuration(defaultIfNull(logAnalysis.getUseDuration(), 0L) + appendUseDuration);
// updateTemplate(logAnalysis);
// }
//
// // 否则新增一条数据
// else {
// StudentTeacherSystemUseLogAnalysis useLogAnalysis = new StudentTeacherSystemUseLogAnalysis();
// useLogAnalysis.setFirstName(firstName);
// useLogAnalysis.setSecondName(secondName);
// useLogAnalysis.setUniversitiesCollegesName(universitiesCollegesName);
// useLogAnalysis.setUniversitiesCollegesId(universitiesCollegesId);
// useLogAnalysis.setUserType(useType);
// useLogAnalysis.setProvince(province);
// useLogAnalysis.setDayTime(today);
// useLogAnalysis.setUseDuration(appendUseDuration);
// useLogAnalysis.setAddTime(now());
// useLogAnalysis.setOrgId(orgId);
// useLogAnalysis.setUserId(userId);
//
// insert(useLogAnalysis);
// }
// 追加的使用时长
Long appendUseDuration = defaultIfNull(dto.getUseDuration(), 5L);
String firstName = Objects.isNull(dto.getFirstName()) ? null : dto.getFirstName().trim();
String secondName = Objects.isNull(dto.getSecondName()) ? null : dto.getSecondName().trim();
Long userId = coreUser.getId();
Long orgId = coreUser.getOrgId();
// 院校名称
String universitiesCollegesName = "";
// 院校ID
Long universitiesCollegesId = null;
Long universitiesCollegesId = null;
// 院校所在省
String province = null;
String province = null;
// 用户类型
UseTypeEnum useType = null;
UseTypeEnum useType = null;
// 查询唯一的条件,如果没查到那肯定是要新增一条数据咯
StudentTeacherSystemUseLogAnalysisQuery query = new StudentTeacherSystemUseLogAnalysisQuery();
query.setFirstName(firstName);
query.setSecondName(secondName);
query.setUserId(userId);
query.setOrgId(orgId);
query.setDayTime(today);
// 追加院校ID条件
if (coreUser.isStudent()) {
@ -408,35 +471,45 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
useType = UseTypeEnum.STUDENT;
if (student != null) {
UniversitiesColleges universitiesColleges = universitiesCollegesService.getUniversitiesCollegesByStudent(student);
province = universitiesColleges.getUniversitiesCollegesProvince();
universitiesCollegesId = universitiesColleges.getUniversitiesCollegesId();
province = universitiesColleges.getUniversitiesCollegesProvince();
universitiesCollegesId = universitiesColleges.getUniversitiesCollegesId();
universitiesCollegesName = universitiesColleges.getUniversitiesCollegesName();
query.setUniversitiesCollegesId(universitiesCollegesId);
}
}
if (coreUser.isTeacher()) {
Teacher teacher = teacherService.getByUserId(userId);
useType = UseTypeEnum.TEACHER;
if (teacher != null) {
UniversitiesColleges universitiesColleges = universitiesCollegesService.getUniversitiesCollegesByTeacher(teacher);
province = universitiesColleges.getUniversitiesCollegesProvince();
universitiesCollegesId = universitiesColleges.getUniversitiesCollegesId();
province = universitiesColleges.getUniversitiesCollegesProvince();
universitiesCollegesId = universitiesColleges.getUniversitiesCollegesId();
universitiesCollegesName = universitiesColleges.getUniversitiesCollegesName();
query.setUniversitiesCollegesId(universitiesColleges.getUniversitiesCollegesId());
}
}
List<StudentTeacherSystemUseLogAnalysis> logAnalysisList = getValuesByQueryNotWithPermission(query);
StudentTeacherSystemUseLogAnalysis logAnalysis = sqlManager.lambdaQuery(StudentTeacherSystemUseLogAnalysis.class)
.andEq(StudentTeacherSystemUseLogAnalysis::getUniversitiesCollegesId, universitiesCollegesId)
.andEq(StudentTeacherSystemUseLogAnalysis::getOrgId, orgId)
.andEq(StudentTeacherSystemUseLogAnalysis::getUserId, userId)
.orderBy("id DESC")
.limit(0, 1)
.single();
// 如果查询到数据,则追加使用时长(分钟)
if (CollectionUtil.isNotEmpty(logAnalysisList)) {
StudentTeacherSystemUseLogAnalysis logAnalysis = getFirst(logAnalysisList);
//查看数据库最新一条进行对比,如果是相同模块就累计时间
if (!Objects.isNull(logAnalysis) && StringUtils.equals(logAnalysis.getFirstName(), firstName) && StringUtils.isEmpty(logAnalysis.getDayTime())) {
logAnalysis.setUseDuration(defaultIfNull(logAnalysis.getUseDuration(), 0L) + appendUseDuration);
updateTemplate(logAnalysis);
}
} else {
if (!Objects.isNull(logAnalysis) && StringUtils.isEmpty(logAnalysis.getDayTime())) {
long time = (Objects.isNull(logAnalysis.getAddTime()) ? 0 : logAnalysis.getAddTime().getTime()) + (Objects.isNull(logAnalysis.getUseDuration()) ? 0 : (logAnalysis.getUseDuration() * 60 * 1000));
logAnalysis.setDayTime(DateUtil.formatDateTime(DateUtil.date(time)));
updateTemplate(logAnalysis);
}
// 否则新增一条数据
else {
// 否则新增一条数据
StudentTeacherSystemUseLogAnalysis useLogAnalysis = new StudentTeacherSystemUseLogAnalysis();
useLogAnalysis.setFirstName(firstName);
useLogAnalysis.setSecondName(secondName);
@ -444,7 +517,6 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
useLogAnalysis.setUniversitiesCollegesId(universitiesCollegesId);
useLogAnalysis.setUserType(useType);
useLogAnalysis.setProvince(province);
useLogAnalysis.setDayTime(today);
useLogAnalysis.setUseDuration(appendUseDuration);
useLogAnalysis.setAddTime(now());
useLogAnalysis.setOrgId(orgId);

@ -2341,7 +2341,8 @@ public class StudentController extends BaseController{
@ResponseBody
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);
condition.setPage(1); condition.setLimit(Integer.MAX_VALUE + 0L);
// PageQuery<StudentLoginLogVO> page = studentService.queryStudentLoginLogByCondition(condition.getPageQuery());
PageQuery<StudentLoginLogVO> page = studentService.queryUserLoginLogByCondition(condition.getPageQuery());

@ -1970,7 +1970,8 @@ queryUserLoginLogByCondition
jsl.create_time AS logout_time,
timediff(jsl.create_time,a.create_time) AS online_duration,
isnull(jsl.create_time) AS is_on_line,
a.ip
a.ip,
tb.class_name
@}
FROM
sys_log a
@ -1980,6 +1981,15 @@ queryUserLoginLogByCondition
universities_colleges uc ON uc.org_id = cu.ORG_ID
LEFT JOIN
sys_log jsl ON jsl.request_url = #logoutPath# AND jsl.user_id = a.user_id AND FIND_IN_SET(a.id,jsl.result)
LEFT JOIN
(
SELECT
sc.class_name,
s.user_id
FROM
student s
LEFT JOIN school_class sc ON sc.class_id = s.class_id
) tb on tb.user_id = a.user_id
WHERE
a.request_url LIKE #'%'+loginPath+'%'#
AND a.user_id IS NOT NULL
@ -2058,4 +2068,47 @@ queryStatisticalStatementNumberPeopleByCondition
ORDER BY any_value(a.create_time) DESC
) b
GROUP BY b.time,b.universities_colleges_name,b.universities_colleges_province
) c
) c
queryStudentTeacherOrUseLogBy
===
* 使用日志:
* 院校管理员 只能查看他院校下面的学生、教师、院校管理跳转子应用的日志
* 超管 查看院校菜单导航栏功能模块的使用时长
SELECT
@pageTag() {
cu.`NAME`,
cu.`CODE`,
a.universities_colleges_name,
a.province AS universities_colleges_province,
a.first_name AS platform,
a.add_time AS login_time,
a.day_time AS logout_time,
SEC_TO_TIME(a.use_duration * 60) AS online_duration,
tb.class_name
@}
FROM
student_teacher_system_use_log_analysis a
LEFT JOIN core_user cu ON cu.ID = a.user_id
LEFT JOIN
(
SELECT
sc.class_name,
s.user_id
FROM
student s
LEFT JOIN school_class sc ON sc.class_id = s.class_id
) tb on tb.user_id = a.user_id
WHERE
1=1
@if(!isEmpty(codeOrName)) {
AND concat(cu.`NAME`, cu.`CODE`) LIKE #'%'+codeOrName+'%'#
@}
@if(!isEmpty(universitiesCollegesId)) {
AND a.universities_colleges_id = #universitiesCollegesId#
@}
@if(!isEmpty(loginStartTime) && !isEmpty(loginEndTime)) {
AND a.add_time between str_to_date(#loginStartTime#,'%Y-%m-%d') AND date_add(str_to_date(#loginEndTime#,'%Y-%m-%d'),interval 1 day)
@}
ORDER BY a.add_time DESC

Loading…
Cancel
Save