|
@@ -1,7 +1,6 @@
|
|
|
package com.dgtly.system.service.impl;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.Calendar;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import com.dgtly.common.utils.DateUtils;
|
|
@@ -63,10 +62,13 @@ public class SysMagnetLogServiceImpl implements ISysMagnetLogService
|
|
|
public int insertSysMagnetLog(SysMagnetLog sysMagnetLog)
|
|
|
{
|
|
|
try{
|
|
|
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
SysUser user =userMapper.selectUserById(sysMagnetLog.getUserId());
|
|
|
sysMagnetLog.setLoginName(user.getLoginName());
|
|
|
sysMagnetLog.setSapEmployeeId(user.getSysUserExt().getSapEmployeeId());
|
|
|
- sysMagnetLog.setCreateTime(DateUtils.getNowDate());
|
|
|
+ //存时间时,舍弃毫秒数
|
|
|
+ String createTimeStr=sf.format(new Date());
|
|
|
+ sysMagnetLog.setCreateTime(sf.parse(createTimeStr));
|
|
|
//计算渠道看板、产品看板、会员看板的停留时长
|
|
|
//本次是主页、渠道看板、产品看板、会员看板、关闭数据看板
|
|
|
if("主页".equals(sysMagnetLog.getMagnetName()) || "渠道看板".equals(sysMagnetLog.getMagnetName()) || "产品看板".equals(sysMagnetLog.getMagnetName()) || "会员看板".equals(sysMagnetLog.getMagnetName()) || "关闭数据看板".equals(sysMagnetLog.getMagnetName())){
|
|
@@ -76,21 +78,9 @@ public class SysMagnetLogServiceImpl implements ISysMagnetLogService
|
|
|
//记录结束访问时间(仅渠道看板、产品看板、会员看板)
|
|
|
sysMagnetLogLast.setUpdateTime(sysMagnetLog.getCreateTime());
|
|
|
//记录上次的停留时间
|
|
|
- SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
- //处理开始时间
|
|
|
- String startStr = sf.format(sysMagnetLogLast.getCreateTime());
|
|
|
- Date startDate=sf.parse(startStr);
|
|
|
- //处理结束时间
|
|
|
- String endStr = sf.format(sysMagnetLogLast.getUpdateTime());
|
|
|
- Date endDate=sf.parse(endStr);
|
|
|
+ long milliseconds = sysMagnetLogLast.getUpdateTime().getTime() - sysMagnetLogLast.getCreateTime().getTime();
|
|
|
|
|
|
- Calendar startCal = Calendar.getInstance();
|
|
|
- startCal.setTime(startDate);
|
|
|
- Calendar endCal = Calendar.getInstance();
|
|
|
- endCal.setTime(endDate);
|
|
|
- long milliseconds = endCal.getTimeInMillis() - startCal.getTimeInMillis();
|
|
|
- //因为当前时间是毫秒级别的,存在小数点,所以,向上取整
|
|
|
- long seconds = (long) Math.ceil((double)milliseconds / 1000);
|
|
|
+ long seconds = milliseconds / 1000;
|
|
|
//停留时间超过24小时,就不再存停留时间了,只保存离开时间
|
|
|
if(seconds<86400){
|
|
|
sysMagnetLogLast.setStayDuration(seconds);
|