java 獲取本週開始時間與結束時間,並查出當前時間段內的數據量

代碼實現

獲取當前周信息,並獲取每天的登錄次數,因爲是走勢圖調用,所以返回數組,可根據個人需要進行更改

	/*
	  * @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;
    }
}
發佈了19 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章