最近服务器的日志显示处理和计算时间变长了,这个是是好事,表示业务量变大了。但是对于我们程序来说可能是需要处理的大事,所以要着手开始优化程序了。首先是去除多余的冗余查询。reviewcode后发现有个页面用到了echart。但是同事用了同步数据获取和foreach查询数据库。再就是发现页面的数据异步请求一次在进行数据筛选就可以了,但是会涉及到前端的页面时间的操作,所以记录下:
// 判断选择的时间 得到 开始时间和结束时间
function dateDispose(props: number) {
//当前时间
const nowDate = parseInt((new Date().getTime() / 1000).toString()); //当前时间
// 当前零点的时间
let zeroDate = nowDate - (nowDate % 86400) - 3600 * 8;
//过去24小时
let formerlyDate = nowDate - 86400;
//昨天 昨天00:00:00的时间
let yesterday = nowDate - (nowDate % 86400) - 3600 * 8 - 3600 * 24;
//本周星期一的时间
let nowThisWeek = new Date().getDay(); //获取当前周
let a = nowDate - (nowThisWeek - 1) * 86400; //得到当前时间到这周
let thisWeek = a - (a % 86400) - 3600 * 8;
//上周星期一的时间
let lastWeek = thisWeek - 86400 * 7;
//过去七天
let formerlySeven = nowDate - 86400 * 7;
//本月的的开始时间
let MonthDate: any = new Date();
MonthDate.setDate(1); //set设置时间
MonthDate.setHours(0);
MonthDate.setSeconds(0);
MonthDate.setMinutes(0);
let thisMonth = parseInt((MonthDate / 1000).toString());
//获取过去30天时间
let lastMonth = nowDate - 86400 * 30;
//获取上月时间
let nowMonthDate: any = new Date();
let getMonth = nowMonthDate.getMonth() + 1;
nowMonthDate.setMonth(getMonth - 2);
nowMonthDate.setDate(1); //set设置时间
nowMonthDate.setHours(0);
nowMonthDate.setSeconds(0);
nowMonthDate.setMinutes(0);
let nowMonth = parseInt((nowMonthDate / 1000).toString());
//获取本年开始的时间
let yearDate: any = new Date();
yearDate.setMonth(0);
yearDate.setDate(1); //set设置时间
yearDate.setHours(0);
yearDate.setSeconds(0);
yearDate.setMinutes(0);
let thisYear = parseInt((yearDate / 1000).toString());
//获取过去12个月的时间
let now12Date: any = new Date();
let getYear12 = now12Date.getFullYear();
now12Date.setYear(getYear12 - 1);
let formerlyYear = parseInt((now12Date / 1000).toString());
//获取上一个年度的开始时间
let nowYearDate: any = new Date();
let getYear = nowYearDate.getFullYear();
nowYearDate.setYear(getYear - 1);
nowYearDate.setMonth(0);
nowYearDate.setDate(1); //set设置时间
nowYearDate.setHours(0);
nowYearDate.setSeconds(0);
nowYearDate.setMinutes(0);
let lastYear = parseInt((nowYearDate / 1000).toString());
//getBeginEndTime()是封装的ajax请求方法
console.log("当前时间", formerlyYear);
switch (props) {
case 0: //今天
getBeginEndTime(zeroDate, nowDate);
break;
case 1: //过去24
getBeginEndTime(formerlyDate, nowDate);
break;
case 2: //昨天
getBeginEndTime(yesterday, zeroDate);
break;
case 3: //本周
getBeginEndTime(thisWeek, nowDate);
break;
case 4: //上周
getBeginEndTime(lastWeek, thisWeek);
break;
case 5: //过去七天
getBeginEndTime(formerlySeven, nowDate);
break;
case 6: //本月
getBeginEndTime(thisMonth, nowDate);
break;
case 7: //过去30天
getBeginEndTime(lastMonth, nowDate);
break;
case 8: //上月
getBeginEndTime(nowMonth, thisMonth);
break;
case 9: //本年时间
getBeginEndTime(thisYear, nowDate);
break;
case 10: //过去12个月的时间
getBeginEndTime(formerlyYear, nowDate);
break;
case 11: //上一年度的时间
getBeginEndTime(lastYear, thisYear);
break;
default:
break;
}
}