代碼實現
獲取當前周信息,並獲取每天的登錄次數,因爲是走勢圖調用,所以返回數組,可根據個人需要進行更改
/*
* @Description TODO 登錄統計
* @Author dengewi
* @Date 2019/11/2
* @Param
* @return
**/
@GetMapping("loginCount")
public Map<String, Object> loginCount(
HttpServletRequest request, HttpServletResponse response
) throws Exception{
SysUser sysUser = (SysUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
//獲取當前周時間
Calendar calendar = Calendar.getInstance();
while (calendar.get(Calendar.DAY_OF_WEEK)!=Calendar.MONDAY){
calendar.add(Calendar.DAY_OF_WEEK, -1);
}
String weekDays[] = {"週一","週二","週三","週四","週五","週六","週日",};
Integer value[] = new Integer[7]; //統計數量
for(int i=0;i<7;i++){
LogSysExample example = new LogSysExample();
LogSysExample.Criteria criteria = example.createCriteria();
//獲取開始結束時間
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date startdate = calendar.getTime();
//獲取結束時間
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
Date enddate = calendar.getTime();
//條件
criteria.andCreatetimeBetween(startdate, enddate);
criteria.andActionEqualTo("登錄");
criteria.andUseridEqualTo(sysUser.getId());
List<LogSys> loglist = logSysService.selectAll(example);
value[i] = loglist.size();
calendar.add(Calendar.DATE,1);
}
LoginCount loginCount = new LoginCount();
loginCount.setWeeks(weekDays);
loginCount.setCount(value);
return restHelper.toJsonMap(RestHelper.SUCCESS,"獲取走勢圖數據",loginCount);
}
接口返回
{
"msg" : "獲取走勢圖數據",
"data" : {
"weeks" : [ "週一", "週二", "週三", "週四", "週五", "週六", "週日" ],
"count" : [ 0, 0, 1, 0, 0, 0, 0 ]
},
"code" : 200
}
返回對象
/*
* @Description TODO 首頁接口返回
* @Author dengewi
* @Date 2019/11/2 13:30
* @Param
* @return
**/
public class LoginCount {
private String[] weeks;
private Integer[] count;
public String[] getWeeks() {
return weeks;
}
public void setWeeks(String[] weeks) {
this.weeks = weeks;
}
public Integer[] getCount() {
return count;
}
public void setCount(Integer[] count) {
this.count = count;
}
}