使用MySQL 的DATE_FORMAT函数进行筛选
参考链接1
@PostMapping("/getAlumniTime")
public ResultVO getAlumniTime(HttpServletRequest request, @RequestBody String param) {
SystemUser user = sysUserUtil.getUser(request);
HashMap conditionMap = new HashMap<>();
List yearData = new ArrayList<>();
List regAdd = new ArrayList<>();//数据
JSONObject jsonObject = new JSONObject();
switch (time) {
case "year":
List countListY = regAlumniuserService.getAlumniTime(conditionMap, user.getOrganizationId());
conditionMap.put("time", "year");
for (Integer i = 1; i <= 12; i++) {
String month = i + "月";
regAdd.add(i - 1, 0);
if (countListY.size() > 0) {
for (Count cy : countListY) {
if ((cy.getSchName().equals(i.toString()))) {
regAdd.add(i - 1, cy.getSchId());
}
}
}
yearData.add(month);
}
jsonObject.put("time", yearData);
jsonObject.put("data", regAdd);
return new ResultVO(ResultCode.SUCCESS, jsonObject.toString());
case "month":
conditionMap.put("time", "month");
Calendar a = Calendar.getInstance();//获取当前日期
a.set(Calendar.DATE, 1);//
a.roll(Calendar.DATE, -1);
int maxDate = a.get(Calendar.DATE);
List countListM = regAlumniuserService.getAlumniTime(conditionMap, user.getOrganizationId());
for (Integer i = 1; i <= maxDate; i++) {
String day = i + "日";
regAdd.add(i - 1, 0);
if (countListM.size() > 0) {
for (Count cy : countListM) {
if ((cy.getSchName().equals(i.toString()))) {
regAdd.add(i - 1, cy.getSchId());
}
}
}
yearData.add(day);
}
jsonObject.put("time", yearData);
jsonObject.put("data", regAdd);
return new ResultVO(ResultCode.SUCCESS, jsonObject.toString());
default:
conditionMap.put("time", "day");
List countListD = regAlumniuserService.getAlumniTime(conditionMap, user.getOrganizationId());
for (Integer i = 1; i <= 24; i++) {
String hour = i + "点";
regAdd.add(i - 1, 0);
if (countListD.size() > 0) {
for (Count cy : countListD) {
if ((cy.getSchName().equals(i.toString()))) {
regAdd.add(i - 1, cy.getSchId());
}
}
}
yearData.add(hour);
}
jsonObject.put("time", yearData);
jsonObject.put("data", regAdd);
return new ResultVO(ResultCode.SUCCESS, jsonObject.toString());
}
}
2.server和Mapper基本一致
create_tm 的数据库格式为 2021-09-07 15:23:41
3.对应的sql//年 select COUNT( rau.reg_alumniuserid ) AS schId , DATE_FORMAT( rau.create_tm ,'%c')AS schName from table where DATE_FORMAT(rau.create_tm, '%Y') = DATE_FORMAT(now(), '%Y') group by schName //月 select COUNT( rau.reg_alumniuserid ) AS schId , DATE_FORMAT( rau.create_tm ,'%e')AS schName from table where DATE_FORMAT(rau.create_tm, '%m') = DATE_FORMAT(now(), '%m') group by schName //日 select COUNT( rau.reg_alumniuserid ) AS schId , DATE_FORMAT( rau.create_tm ,'%k')AS schName from table where DATE_FORMAT(rau.create_tm, '%j') = DATE_FORMAT(now(), '%j') group by schName



