Browse Source

时间存数据库舍弃毫秒数

pengyg 3 tháng trước cách đây
mục cha
commit
79a2534868

+ 6 - 16
suishenbang-system/src/main/java/com/dgtly/system/service/impl/SysMagnetLogServiceImpl.java

@@ -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);