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.entity.CoreUser;
import com.ibeetl.admin.core.enums.MenuEnums; import com.ibeetl.admin.core.enums.MenuEnums;
import com.ibeetl.admin.core.service.CoreUserService; import com.ibeetl.admin.core.service.CoreUserService;
import com.ibeetl.jlw.dao.StudentTeacherSystemUseLogAnalysisDao;
import com.ibeetl.jlw.dao.SysLogDao; import com.ibeetl.jlw.dao.SysLogDao;
import com.ibeetl.jlw.entity.StudentTeacherSystemUseLogAnalysis;
import com.ibeetl.jlw.entity.SysLog; import com.ibeetl.jlw.entity.SysLog;
import com.ibeetl.jlw.service.SysLogService; import com.ibeetl.jlw.service.SysLogService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -53,6 +55,8 @@ public class KeyExpiredListener extends KeyExpirationEventMessageListener {
@Autowired @Autowired
private SysLogDao sysLogDao; private SysLogDao sysLogDao;
@Autowired
private StudentTeacherSystemUseLogAnalysisDao studentTeacherSystemUseLogAnalysisDao;
public KeyExpiredListener(RedisMessageListenerContainer listenerContainer) { public KeyExpiredListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer); super(listenerContainer);
@ -123,6 +127,15 @@ public class KeyExpiredListener extends KeyExpirationEventMessageListener {
sysLog.setStudentId(Long.valueOf(realId)); sysLog.setStudentId(Long.valueOf(realId));
} }
sysLogService.insert(sysLog); 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) { } catch (Exception e) {

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

@ -165,7 +165,7 @@ public class StudentTeacherSystemUseLogAnalysis extends BaseEntity{
public String getDayTime(){ public String getDayTime(){
return dayTime; return dayTime;
} }
/** /**()
*@param dayTime *@param dayTime
*/ */
public void setDayTime(String 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; private String className;
/** /**
* *
*/ */
// @ExcelProperty(value = "登入时间", index = 5) @ExcelProperty(value = "登入时间", index = 5)
@ExcelProperty(value = "登入时间", index = 4)
private String loginTime; private String loginTime;
/** /**
* *
*/ */
// @ExcelProperty(value = "登出时间", index = 6) @ExcelProperty(value = "登出时间", index = 6)
@ExcelProperty(value = "登出时间", index = 5)
private String logoutTime; private String logoutTime;
/** /**
* 线 * 线
*/ */
// @ExcelProperty(value = "在线时长", index = 7) @ExcelProperty(value = "在线时长", index = 7)
@ExcelProperty(value = "在线时长", index = 6)
private String onlineDuration; private String onlineDuration;
/** /**
* 线 * 线
*/ */
// @ExcelProperty(value = "是否在线", index = 8) @ExcelProperty(value = "是否在线", index = 8)
@ExcelProperty(value = "是否在线", index = 7)
private Boolean isOnLine; private Boolean isOnLine;
/** /**
* IP * IP
*/ */
// @ExcelProperty(value = "登录IP", index = 9) @ExcelProperty(value = "登录IP", index = 9)
@ExcelProperty(value = "登录IP", index = 8)
private String ip; private String ip;
/** /**
* IP * IP
*/ */
// @ExcelProperty(value = "IP所属地", index = 10) @ExcelProperty(value = "IP所属地", index = 10)
@ExcelProperty(value = "IP所属地", index = 9)
private String ipAddress; private String ipAddress;
/** /**
* *

@ -224,7 +224,8 @@ public class StudentService extends CoreBaseService<Student>{
if (null != uniAdmin) { if (null != uniAdmin) {
query.setPara("universitiesCollegesId", uniAdmin.getUniversitiesCollegesId()); 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 @Service
@Transactional @Transactional
@Validated @Validated
public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<StudentTeacherSystemUseLogAnalysis>{ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<StudentTeacherSystemUseLogAnalysis> {
@Autowired private StudentTeacherSystemUseLogAnalysisDao studentTeacherSystemUseLogAnalysisDao; @Autowired
private StudentTeacherSystemUseLogAnalysisDao studentTeacherSystemUseLogAnalysisDao;
@Autowired @Autowired
private StudentService studentService; private StudentService studentService;
@Autowired @Autowired
@ -59,30 +60,30 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
@Autowired @Autowired
private UniversitiesCollegesService universitiesCollegesService; private UniversitiesCollegesService universitiesCollegesService;
public PageQuery<StudentTeacherSystemUseLogAnalysis>queryByCondition(PageQuery query){ public PageQuery<StudentTeacherSystemUseLogAnalysis> queryByCondition(PageQuery query) {
PageQuery ret = studentTeacherSystemUseLogAnalysisDao.queryByCondition(query); PageQuery ret = studentTeacherSystemUseLogAnalysisDao.queryByCondition(query);
queryListAfter(ret.getList()); queryListAfter(ret.getList());
return ret; return ret;
} }
public PageQuery<StudentTeacherSystemUseLogAnalysis>queryByConditionQuery(PageQuery query){ public PageQuery<StudentTeacherSystemUseLogAnalysis> queryByConditionQuery(PageQuery query) {
PageQuery ret = studentTeacherSystemUseLogAnalysisDao.queryByConditionQuery(query); PageQuery ret = studentTeacherSystemUseLogAnalysisDao.queryByConditionQuery(query);
queryListAfter(ret.getList()); queryListAfter(ret.getList());
return ret; return ret;
} }
public void deleteByList(List list){ public void deleteByList(List list) {
String ids = ""; String ids = "";
ToolUtils.deleteNullList(list); ToolUtils.deleteNullList(list);
for(int i=0;null != list && i<list.size();i++){ for (int i = 0; null != list && i < list.size(); i++) {
ids += list.get(i).toString()+(i==list.size()-1?"":","); ids += list.get(i).toString() + (i == list.size() - 1 ? "" : ",");
} }
if(StringUtils.isNotBlank(ids)){ if (StringUtils.isNotBlank(ids)) {
studentTeacherSystemUseLogAnalysisDao.deleteStudentTeacherSystemUseLogAnalysisByIds(ids); studentTeacherSystemUseLogAnalysisDao.deleteStudentTeacherSystemUseLogAnalysisByIds(ids);
} }
} }
public void deleteStudentTeacherSystemUseLogAnalysis(String ids){ public void deleteStudentTeacherSystemUseLogAnalysis(String ids) {
try { try {
studentTeacherSystemUseLogAnalysisDao.deleteStudentTeacherSystemUseLogAnalysisByIds(ids); studentTeacherSystemUseLogAnalysisDao.deleteStudentTeacherSystemUseLogAnalysisByIds(ids);
} catch (Exception e) { } 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 = ""; String msg = "";
List<StudentTeacherSystemUseLogAnalysis> studentTeacherSystemUseLogAnalysisList = new ArrayList<>(); List<StudentTeacherSystemUseLogAnalysis> studentTeacherSystemUseLogAnalysisList = new ArrayList<>();
try { try {
@ -98,11 +99,12 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
} catch (Exception e) { } catch (Exception e) {
try { try {
studentTeacherSystemUseLogAnalysisList.add(JSONObject.parseObject(studentTeacherSystemUseLogAnalysisQuery.getStudentTeacherSystemUseLogAnalysisJsonStr(), StudentTeacherSystemUseLogAnalysis.class)); studentTeacherSystemUseLogAnalysisList.add(JSONObject.parseObject(studentTeacherSystemUseLogAnalysisQuery.getStudentTeacherSystemUseLogAnalysisJsonStr(), StudentTeacherSystemUseLogAnalysis.class));
} catch (Exception e1) {} } catch (Exception e1) {
}
} }
ToolUtils.deleteNullList(studentTeacherSystemUseLogAnalysisList); ToolUtils.deleteNullList(studentTeacherSystemUseLogAnalysisList);
if(null != studentTeacherSystemUseLogAnalysisList && studentTeacherSystemUseLogAnalysisList.size()>0){ if (null != studentTeacherSystemUseLogAnalysisList && studentTeacherSystemUseLogAnalysisList.size() > 0) {
for(int i=0;i<studentTeacherSystemUseLogAnalysisList.size();i++){ for (int i = 0; i < studentTeacherSystemUseLogAnalysisList.size(); i++) {
StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = studentTeacherSystemUseLogAnalysisList.get(i); StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = studentTeacherSystemUseLogAnalysisList.get(i);
studentTeacherSystemUseLogAnalysis.setUserId(studentTeacherSystemUseLogAnalysisQuery.getUserId()); studentTeacherSystemUseLogAnalysis.setUserId(studentTeacherSystemUseLogAnalysisQuery.getUserId());
studentTeacherSystemUseLogAnalysis.setOrgId(studentTeacherSystemUseLogAnalysisQuery.getOrgId()); studentTeacherSystemUseLogAnalysis.setOrgId(studentTeacherSystemUseLogAnalysisQuery.getOrgId());
@ -112,7 +114,7 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
return msg; return msg;
} }
public JsonResult add(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){ public JsonResult add(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
String msg = ""; String msg = "";
StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = studentTeacherSystemUseLogAnalysisQuery.pojo(); StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = studentTeacherSystemUseLogAnalysisQuery.pojo();
studentTeacherSystemUseLogAnalysisDao.insert(studentTeacherSystemUseLogAnalysis); studentTeacherSystemUseLogAnalysisDao.insert(studentTeacherSystemUseLogAnalysis);
@ -124,76 +126,76 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
return jsonResult; return jsonResult;
} }
public String edit(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){ public String edit(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
String msg = ""; String msg = "";
StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = studentTeacherSystemUseLogAnalysisQuery.pojo(); StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = studentTeacherSystemUseLogAnalysisQuery.pojo();
studentTeacherSystemUseLogAnalysisDao.updateTemplateById(studentTeacherSystemUseLogAnalysis); studentTeacherSystemUseLogAnalysisDao.updateTemplateById(studentTeacherSystemUseLogAnalysis);
return msg; return msg;
} }
public String updateGivenByIds(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){ public String updateGivenByIds(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
String msg = ""; String msg = "";
if(StringUtils.isNotBlank(studentTeacherSystemUseLogAnalysisQuery.get_given())){ if (StringUtils.isNotBlank(studentTeacherSystemUseLogAnalysisQuery.get_given())) {
boolean flag = studentTeacherSystemUseLogAnalysisDao.updateGivenByIds(studentTeacherSystemUseLogAnalysisQuery) > 0; boolean flag = studentTeacherSystemUseLogAnalysisDao.updateGivenByIds(studentTeacherSystemUseLogAnalysisQuery) > 0;
if(!flag){ if (!flag) {
msg = "更新指定参数失败"; msg = "更新指定参数失败";
} }
}else{ } else {
msg = "指定参数为空"; msg = "指定参数为空";
} }
return 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); 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); return studentTeacherSystemUseLogAnalysisDao.getValuesByQuery(studentTeacherSystemUseLogAnalysisQuery);
} }
public List<StudentTeacherSystemUseLogAnalysis> getValuesByQueryNotWithPermission (StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){ public List<StudentTeacherSystemUseLogAnalysis> getValuesByQueryNotWithPermission(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
return studentTeacherSystemUseLogAnalysisDao.getValuesByQueryNotWithPermission(studentTeacherSystemUseLogAnalysisQuery); return studentTeacherSystemUseLogAnalysisDao.getValuesByQueryNotWithPermission(studentTeacherSystemUseLogAnalysisQuery);
} }
public StudentTeacherSystemUseLogAnalysis getInfo (Long id){ public StudentTeacherSystemUseLogAnalysis getInfo(Long id) {
StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery = new StudentTeacherSystemUseLogAnalysisQuery(); StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery = new StudentTeacherSystemUseLogAnalysisQuery();
studentTeacherSystemUseLogAnalysisQuery.setId(id); studentTeacherSystemUseLogAnalysisQuery.setId(id);
List<StudentTeacherSystemUseLogAnalysis> list = studentTeacherSystemUseLogAnalysisDao.getValuesByQuery(studentTeacherSystemUseLogAnalysisQuery); List<StudentTeacherSystemUseLogAnalysis> list = studentTeacherSystemUseLogAnalysisDao.getValuesByQuery(studentTeacherSystemUseLogAnalysisQuery);
if(null != list && list.size()>0){ if (null != list && list.size() > 0) {
return list.get(0); return list.get(0);
}else{ } else {
return null; return null;
} }
} }
public StudentTeacherSystemUseLogAnalysis getInfo (StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){ public StudentTeacherSystemUseLogAnalysis getInfo(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
List<StudentTeacherSystemUseLogAnalysis> list = studentTeacherSystemUseLogAnalysisDao.getValuesByQuery(studentTeacherSystemUseLogAnalysisQuery); List<StudentTeacherSystemUseLogAnalysis> list = studentTeacherSystemUseLogAnalysisDao.getValuesByQuery(studentTeacherSystemUseLogAnalysisQuery);
if(null != list && list.size()>0){ if (null != list && list.size() > 0) {
return list.get(0); return list.get(0);
}else{ } else {
return null; return null;
} }
} }
public JsonResult importTemplate(List<FileEntity> fileEntityList,List<Long>list,CoreUser coreUser){ public JsonResult importTemplate(List<FileEntity> fileEntityList, List<Long> list, CoreUser coreUser) {
List<String[]>errMsg = new ArrayList<>(); List<String[]> errMsg = new ArrayList<>();
String msg =""; String msg = "";
int count = 0; int count = 0;
Date date = new Date(); 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); FileEntity fileEntity = fileEntityList.get(item);
if(null != fileEntity){ if (null != fileEntity) {
File file = new File(fileEntity.getAbsoluteUrl()); 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; Workbook wb = null;
InputStream is = null; InputStream is = null;
try { try {
is = new FileInputStream(fileEntity.getAbsoluteUrl()); is = new FileInputStream(fileEntity.getAbsoluteUrl());
if("xls".equals(fileEntity.getFormat())){ if ("xls".equals(fileEntity.getFormat())) {
wb = new HSSFWorkbook(is); wb = new HSSFWorkbook(is);
}else if("xlsx".equals(fileEntity.getFormat())){ } else if ("xlsx".equals(fileEntity.getFormat())) {
wb = new XSSFWorkbook(is); wb = new XSSFWorkbook(is);
} }
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
@ -202,13 +204,13 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
e.printStackTrace(); e.printStackTrace();
} }
try { try {
if(null != is){ if (null != is) {
is.close(); is.close();
} }
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if(wb != null){ if (wb != null) {
//获取Sheet1 //获取Sheet1
Sheet sheet = wb.getSheet("Sheet1"); Sheet sheet = wb.getSheet("Sheet1");
//获取最大行数 //获取最大行数
@ -219,48 +221,48 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
int colNum = firstRow.getPhysicalNumberOfCells(); int colNum = firstRow.getPhysicalNumberOfCells();
String columns[] = { 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)); String cellData = getCellFormatValue(firstRow.getCell(i));
for(int j=0;j<columns.length;j++){ for (int j = 0; j < columns.length; j++) {
if(columns[j].equals(cellData)){ if (columns[j].equals(cellData)) {
map.put(columns[j],i); map.put(columns[j], i);
} }
} }
} }
//验证所需要的表头是否全 //验证所需要的表头是否全
Integer flag = 0; Integer flag = 0;
for(int i=0;i<columns.length;i++){ for (int i = 0; i < columns.length; i++) {
if(null != map.get(columns[i])){ if (null != map.get(columns[i])) {
flag ++; flag++;
} }
} }
if(flag != columns.length){ if (flag != columns.length) {
String str = " "; String str = " ";
for(int i=0;i<columns.length;i++){ for (int i = 0; i < columns.length; i++) {
str += "\""+columns[i]+"\""+(i == columns.length-1?"":", "); 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); Row row = sheet.getRow(i);
if(null == row){ if (null == row) {
errMsg.add(new String[]{"第"+(i+1)+"数据为空"}); errMsg.add(new String[]{"第" + (i + 1) + "数据为空"});
continue; continue;
} }
@ -274,58 +276,49 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
String useDuration = getCellFormatValue(row.getCell(map.get(columns[7]))); String useDuration = getCellFormatValue(row.getCell(map.get(columns[7])));
String addTime = getCellFormatValue(row.getCell(map.get(columns[8]))); String addTime = getCellFormatValue(row.getCell(map.get(columns[8])));
//TODO 判断(如重复等复杂判断要额外写) //TODO 判断(如重复等复杂判断要额外写)
if(StringUtils.isBlank(firstName)){ if (StringUtils.isBlank(firstName)) {
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[0])+1)+"列,第"+(i+1)+"行一级名称为空"}); errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[0]) + 1) + "列,第" + (i + 1) + "行一级名称为空"});
continue; continue;
}else } else if (StringUtils.isBlank(secondName)) {
if(StringUtils.isBlank(secondName)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[1]) + 1) + "列,第" + (i + 1) + "行二级名称为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[1])+1)+"列,第"+(i+1)+"行二级名称为空"});
continue; continue;
}else } else if (StringUtils.isBlank(universitiesCollegesName)) {
if(StringUtils.isBlank(universitiesCollegesName)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[2]) + 1) + "列,第" + (i + 1) + "行院校名称为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[2])+1)+"列,第"+(i+1)+"行院校名称为空"});
continue; continue;
}else } else if (StringUtils.isBlank(universitiesCollegesId)) {
if(StringUtils.isBlank(universitiesCollegesId)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[3]) + 1) + "列,第" + (i + 1) + "行院校为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[3])+1)+"列,第"+(i+1)+"行院校为空"});
continue; continue;
}else } else if (StringUtils.isBlank(userType)) {
if(StringUtils.isBlank(userType)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[4]) + 1) + "列,第" + (i + 1) + "行用户类型 UserTypeEnum为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[4])+1)+"列,第"+(i+1)+"行用户类型 UserTypeEnum为空"});
continue; continue;
}else } else if (StringUtils.isBlank(province)) {
if(StringUtils.isBlank(province)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[5]) + 1) + "列,第" + (i + 1) + "行所在省份为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[5])+1)+"列,第"+(i+1)+"行所在省份为空"});
continue; continue;
}else } else if (StringUtils.isBlank(dayTime)) {
if(StringUtils.isBlank(dayTime)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[6]) + 1) + "列,第" + (i + 1) + "行日期为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[6])+1)+"列,第"+(i+1)+"行日期为空"});
continue; continue;
}else } else if (StringUtils.isBlank(useDuration)) {
if(StringUtils.isBlank(useDuration)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[7]) + 1) + "列,第" + (i + 1) + "行使用时长为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[7])+1)+"列,第"+(i+1)+"行使用时长为空"});
continue; continue;
}else } else if (StringUtils.isBlank(addTime)) {
if(StringUtils.isBlank(addTime)){ errMsg.add(new String[]{"第" + ToolUtils.numberToLetter(map.get(columns[8]) + 1) + "列,第" + (i + 1) + "行创建时间为空"});
errMsg.add(new String[]{"第"+ToolUtils.numberToLetter(map.get(columns[8])+1)+"列,第"+(i+1)+"行创建时间为空"});
continue; continue;
}else } else {
{ //TODO 保存
//TODO 保存 StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = new StudentTeacherSystemUseLogAnalysis();
StudentTeacherSystemUseLogAnalysis studentTeacherSystemUseLogAnalysis = new StudentTeacherSystemUseLogAnalysis(); studentTeacherSystemUseLogAnalysis.setFirstName(firstName);
studentTeacherSystemUseLogAnalysis.setFirstName(firstName); studentTeacherSystemUseLogAnalysis.setSecondName(secondName);
studentTeacherSystemUseLogAnalysis.setSecondName(secondName); studentTeacherSystemUseLogAnalysis.setUniversitiesCollegesName(universitiesCollegesName);
studentTeacherSystemUseLogAnalysis.setUniversitiesCollegesName(universitiesCollegesName); studentTeacherSystemUseLogAnalysis.setUniversitiesCollegesId(Long.parseLong(universitiesCollegesId));
studentTeacherSystemUseLogAnalysis.setUniversitiesCollegesId(Long.parseLong(universitiesCollegesId)); studentTeacherSystemUseLogAnalysis.setUserType(EnumUtil.likeValueOf(UseTypeEnum.class, userType));
studentTeacherSystemUseLogAnalysis.setUserType(EnumUtil.likeValueOf(UseTypeEnum.class, userType)); studentTeacherSystemUseLogAnalysis.setProvince(province);
studentTeacherSystemUseLogAnalysis.setProvince(province); studentTeacherSystemUseLogAnalysis.setDayTime(dayTime);
studentTeacherSystemUseLogAnalysis.setDayTime(dayTime); studentTeacherSystemUseLogAnalysis.setUseDuration(Long.parseLong(useDuration));
studentTeacherSystemUseLogAnalysis.setUseDuration(Long.parseLong(useDuration)); studentTeacherSystemUseLogAnalysis.setAddTime(TimeTool.getTime(addTime));
studentTeacherSystemUseLogAnalysis.setAddTime(TimeTool.getTime(addTime)); studentTeacherSystemUseLogAnalysis.setOrgId(coreUser.getOrgId());
studentTeacherSystemUseLogAnalysis.setOrgId(coreUser.getOrgId()); studentTeacherSystemUseLogAnalysis.setUserId(coreUser.getId());
studentTeacherSystemUseLogAnalysis.setUserId(coreUser.getId());
count++;
count++;
} }
} }
} }
@ -333,18 +326,19 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
} }
} }
JsonResult jsonResult = new JsonResult(); 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.setData(errMsg);
jsonResult.setMsg((count>0?"导入成功,共导入"+count+"条":"导入失败")+(StringUtils.isNotBlank(msg)?"<br>"+msg:"")); jsonResult.setMsg((count > 0 ? "导入成功,共导入" + count + "条" : "导入失败") + (StringUtils.isNotBlank(msg) ? "<br>" + msg : ""));
return jsonResult; return jsonResult;
} }
public List<Map<String,Object>> getExcelValues (StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery){ public List<Map<String, Object>> getExcelValues(StudentTeacherSystemUseLogAnalysisQuery studentTeacherSystemUseLogAnalysisQuery) {
return studentTeacherSystemUseLogAnalysisDao.getExcelValues(studentTeacherSystemUseLogAnalysisQuery); return studentTeacherSystemUseLogAnalysisDao.getExcelValues(studentTeacherSystemUseLogAnalysisQuery);
} }
/** /**
* 使 * 使
*
* @param page * @param page
* @return * @return
*/ */
@ -379,28 +373,97 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
*/ */
public void addOrUpdateUseLog(StudentTeacherSystemUseLogAnalysisAddDTO dto, CoreUser coreUser) { public void addOrUpdateUseLog(StudentTeacherSystemUseLogAnalysisAddDTO dto, CoreUser coreUser) {
// 追加的使用时长 // 追加的使用时长
Long appendUseDuration = defaultIfNull(dto.getUseDuration(), 5L); // Long appendUseDuration = defaultIfNull(dto.getUseDuration(), 5L);
final String firstName = dto.getFirstName().trim(); // final String firstName = Objects.isNull(dto.getFirstName()) ? null : dto.getFirstName().trim();
final String secondName = dto.getSecondName().trim(); // final String secondName = Objects.isNull(dto.getSecondName()) ? null : dto.getSecondName().trim();
final Long userId = coreUser.getId(); // final Long userId = coreUser.getId();
final Long orgId = coreUser.getOrgId(); // final Long orgId = coreUser.getOrgId();
final String today = DateUtil.today(); // 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 = ""; String universitiesCollegesName = "";
// 院校ID // 院校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条件 // 追加院校ID条件
if (coreUser.isStudent()) { if (coreUser.isStudent()) {
@ -408,35 +471,45 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
useType = UseTypeEnum.STUDENT; useType = UseTypeEnum.STUDENT;
if (student != null) { if (student != null) {
UniversitiesColleges universitiesColleges = universitiesCollegesService.getUniversitiesCollegesByStudent(student); UniversitiesColleges universitiesColleges = universitiesCollegesService.getUniversitiesCollegesByStudent(student);
province = universitiesColleges.getUniversitiesCollegesProvince(); province = universitiesColleges.getUniversitiesCollegesProvince();
universitiesCollegesId = universitiesColleges.getUniversitiesCollegesId(); universitiesCollegesId = universitiesColleges.getUniversitiesCollegesId();
universitiesCollegesName = universitiesColleges.getUniversitiesCollegesName(); universitiesCollegesName = universitiesColleges.getUniversitiesCollegesName();
query.setUniversitiesCollegesId(universitiesCollegesId);
} }
} }
if (coreUser.isTeacher()) { if (coreUser.isTeacher()) {
Teacher teacher = teacherService.getByUserId(userId); Teacher teacher = teacherService.getByUserId(userId);
useType = UseTypeEnum.TEACHER; useType = UseTypeEnum.TEACHER;
if (teacher != null) { if (teacher != null) {
UniversitiesColleges universitiesColleges = universitiesCollegesService.getUniversitiesCollegesByTeacher(teacher); UniversitiesColleges universitiesColleges = universitiesCollegesService.getUniversitiesCollegesByTeacher(teacher);
province = universitiesColleges.getUniversitiesCollegesProvince(); province = universitiesColleges.getUniversitiesCollegesProvince();
universitiesCollegesId = universitiesColleges.getUniversitiesCollegesId(); universitiesCollegesId = universitiesColleges.getUniversitiesCollegesId();
universitiesCollegesName = universitiesColleges.getUniversitiesCollegesName(); 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); logAnalysis.setUseDuration(defaultIfNull(logAnalysis.getUseDuration(), 0L) + appendUseDuration);
updateTemplate(logAnalysis); 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(); StudentTeacherSystemUseLogAnalysis useLogAnalysis = new StudentTeacherSystemUseLogAnalysis();
useLogAnalysis.setFirstName(firstName); useLogAnalysis.setFirstName(firstName);
useLogAnalysis.setSecondName(secondName); useLogAnalysis.setSecondName(secondName);
@ -444,7 +517,6 @@ public class StudentTeacherSystemUseLogAnalysisService extends CoreBaseService<S
useLogAnalysis.setUniversitiesCollegesId(universitiesCollegesId); useLogAnalysis.setUniversitiesCollegesId(universitiesCollegesId);
useLogAnalysis.setUserType(useType); useLogAnalysis.setUserType(useType);
useLogAnalysis.setProvince(province); useLogAnalysis.setProvince(province);
useLogAnalysis.setDayTime(today);
useLogAnalysis.setUseDuration(appendUseDuration); useLogAnalysis.setUseDuration(appendUseDuration);
useLogAnalysis.setAddTime(now()); useLogAnalysis.setAddTime(now());
useLogAnalysis.setOrgId(orgId); useLogAnalysis.setOrgId(orgId);

@ -2341,7 +2341,8 @@ public class StudentController extends BaseController{
@ResponseBody @ResponseBody
public String studentLoginLogListExport(StudentLoginLogQuery condition, @SCoreUser CoreUser coreUser) throws IOException { public String studentLoginLogListExport(StudentLoginLogQuery condition, @SCoreUser CoreUser coreUser) throws IOException {
Assert.isFalse(coreUser.isStudent(), "暂无权限访问!"); Assert.isFalse(coreUser.isStudent(), "暂无权限访问!");
condition.setLoginPath(ResponseControllerAdvice.LOGIN_URL);
condition.setLogoutPath(KeyExpiredListener.TOKEN_EXPIRED_MESSAGE);
condition.setPage(1); condition.setLimit(Integer.MAX_VALUE + 0L); condition.setPage(1); condition.setLimit(Integer.MAX_VALUE + 0L);
// PageQuery<StudentLoginLogVO> page = studentService.queryStudentLoginLogByCondition(condition.getPageQuery()); // PageQuery<StudentLoginLogVO> page = studentService.queryStudentLoginLogByCondition(condition.getPageQuery());
PageQuery<StudentLoginLogVO> page = studentService.queryUserLoginLogByCondition(condition.getPageQuery()); PageQuery<StudentLoginLogVO> page = studentService.queryUserLoginLogByCondition(condition.getPageQuery());

@ -1970,7 +1970,8 @@ queryUserLoginLogByCondition
jsl.create_time AS logout_time, jsl.create_time AS logout_time,
timediff(jsl.create_time,a.create_time) AS online_duration, timediff(jsl.create_time,a.create_time) AS online_duration,
isnull(jsl.create_time) AS is_on_line, isnull(jsl.create_time) AS is_on_line,
a.ip a.ip,
tb.class_name
@} @}
FROM FROM
sys_log a sys_log a
@ -1980,6 +1981,15 @@ queryUserLoginLogByCondition
universities_colleges uc ON uc.org_id = cu.ORG_ID universities_colleges uc ON uc.org_id = cu.ORG_ID
LEFT JOIN 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) 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 WHERE
a.request_url LIKE #'%'+loginPath+'%'# a.request_url LIKE #'%'+loginPath+'%'#
AND a.user_id IS NOT NULL AND a.user_id IS NOT NULL
@ -2058,4 +2068,47 @@ queryStatisticalStatementNumberPeopleByCondition
ORDER BY any_value(a.create_time) DESC ORDER BY any_value(a.create_time) DESC
) b ) b
GROUP BY b.time,b.universities_colleges_name,b.universities_colleges_province 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