| @@ -0,0 +1,2 @@ | |||||
| UPDATE `mall_permission` SET `icon` = 'icon-iconfontchangemeter-copy' WHERE (`id` = '108'); | |||||
| UPDATE `mall_permission` SET `icon` = 'icon-dianbiao' WHERE (`id` = '952'); | |||||
| @@ -8,6 +8,7 @@ import com.iformall.common.ResultData; | |||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| import com.iformall.domain.po.WxDevice; | import com.iformall.domain.po.WxDevice; | ||||
| import com.iformall.domain.po.WxScreenAd; | import com.iformall.domain.po.WxScreenAd; | ||||
| import com.iformall.enums.EnumDeviceOnlineStatus; | |||||
| import com.iformall.enums.EnumScreenAdStatus; | import com.iformall.enums.EnumScreenAdStatus; | ||||
| import com.iformall.enums.EnumScreenAdType; | import com.iformall.enums.EnumScreenAdType; | ||||
| import com.iformall.service.*; | import com.iformall.service.*; | ||||
| @@ -97,6 +98,7 @@ public class WxDeviceScreenAdController extends BaseController { | |||||
| if (wxDevice.getFirstHbTime() == null) | if (wxDevice.getFirstHbTime() == null) | ||||
| record.setFirstHbTime(new Date()); | record.setFirstHbTime(new Date()); | ||||
| record.setLastHbTime(new Date()); | record.setLastHbTime(new Date()); | ||||
| record.setOnlineStatus(EnumDeviceOnlineStatus.ONLINE.getCode()); | |||||
| record.setVersion(paramMap.get("version")); | record.setVersion(paramMap.get("version")); | ||||
| wxDeviceService.saveOrUpdate(record); | wxDeviceService.saveOrUpdate(record); | ||||
| @@ -1,12 +1,11 @@ | |||||
| package com.iformall.schedule; | package com.iformall.schedule; | ||||
| import com.iformall.domain.po.WxDevice; | |||||
| import com.iformall.enums.EnumDeviceOnlineStatus; | |||||
| import com.iformall.enums.EnumDeviceStatus; | |||||
| import com.iformall.mapper.KwBoxMapper; | |||||
| import com.iformall.mapper.KwMeterMapper; | |||||
| import com.iformall.mapper.WxDeviceMapper; | import com.iformall.mapper.WxDeviceMapper; | ||||
| import com.iformall.service.WxDeviceService; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| @@ -15,7 +14,6 @@ import org.springframework.scheduling.annotation.Scheduled; | |||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | |||||
| @Component | @Component | ||||
| @@ -28,31 +26,19 @@ public class DeviceHbCheckSchedule { | |||||
| @Autowired | @Autowired | ||||
| WxDeviceMapper wxDeviceMapper; | WxDeviceMapper wxDeviceMapper; | ||||
| @Autowired | |||||
| KwBoxMapper kwBoxMapper; | |||||
| @Autowired | |||||
| KwMeterMapper kwMeterMapper; | |||||
| @Scheduled(cron = "0 */5 * * * *?") // 每5分钟检查一次 | @Scheduled(cron = "0 */5 * * * *?") // 每5分钟检查一次 | ||||
| //@Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 | //@Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 | ||||
| public void deviceHbCheckSchedule() { | |||||
| WxDevice wxDevice = new WxDevice(); | |||||
| wxDevice.setStatus(EnumDeviceStatus.VALID.getCode()); | |||||
| List<WxDevice> list = wxDeviceMapper.findList(wxDevice); | |||||
| list.stream().forEach(d->{ | |||||
| WxDevice record = new WxDevice(); | |||||
| record.setId(d.getId()); | |||||
| if (d.getLastHbTime() == null) { | |||||
| record.setOnlineStatus(EnumDeviceOnlineStatus.OFFLINE.getCode()); | |||||
| } else { | |||||
| if (new Date().getTime() - d.getLastHbTime().getTime() > TIME_OUT_VALUE) { | |||||
| record.setOnlineStatus(EnumDeviceOnlineStatus.OFFLINE.getCode()); | |||||
| } else { | |||||
| record.setOnlineStatus(EnumDeviceOnlineStatus.ONLINE.getCode()); | |||||
| } | |||||
| } | |||||
| if (!d.getOnlineStatus().equals(record.getOnlineStatus())) { | |||||
| wxDeviceMapper.updateByPrimaryKeySelective(record); | |||||
| } | |||||
| }); | |||||
| public void offlineCheckSchedule() { | |||||
| Date expiredTime = new Date((new Date().getTime() - TIME_OUT_VALUE)); | |||||
| wxDeviceMapper.offlineScan(expiredTime); | |||||
| kwBoxMapper.offlineScan(expiredTime); | |||||
| kwMeterMapper.offlineScan(expiredTime); | |||||
| } | } | ||||
| } | } | ||||
| @@ -2,12 +2,14 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.KwBox; | import com.iformall.domain.po.KwBox; | ||||
| import org.apache.ibatis.annotations.Param; | |||||
| import java.util.Date; | |||||
| import java.util.List; | import java.util.List; | ||||
| public interface KwBoxMapper extends CommonMapper<KwBox, Long> { | public interface KwBoxMapper extends CommonMapper<KwBox, Long> { | ||||
| List<KwBox> findList(KwBox param); | List<KwBox> findList(KwBox param); | ||||
| int offlineScan(@Param("expiredTime") Date expiredTime); | |||||
| } | } | ||||
| @@ -4,6 +4,7 @@ import com.iformall.common.CommonMapper; | |||||
| import com.iformall.domain.po.KwMeter; | import com.iformall.domain.po.KwMeter; | ||||
| import org.apache.ibatis.annotations.Param; | import org.apache.ibatis.annotations.Param; | ||||
| import java.util.Date; | |||||
| import java.util.List; | import java.util.List; | ||||
| public interface KwMeterMapper extends CommonMapper<KwMeter, Long> { | public interface KwMeterMapper extends CommonMapper<KwMeter, Long> { | ||||
| @@ -19,4 +20,5 @@ public interface KwMeterMapper extends CommonMapper<KwMeter, Long> { | |||||
| int unbind(@Param("meterId")Long meterId); | int unbind(@Param("meterId")Long meterId); | ||||
| int unbindBatch(@Param("boxId")Long boxId); | int unbindBatch(@Param("boxId")Long boxId); | ||||
| int offlineScan(@Param("expiredTime") Date expiredTime); | |||||
| } | } | ||||
| @@ -2,11 +2,13 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxDevice; | import com.iformall.domain.po.WxDevice; | ||||
| import org.apache.ibatis.annotations.Param; | |||||
| import java.util.Date; | |||||
| import java.util.List; | import java.util.List; | ||||
| public interface WxDeviceMapper extends CommonMapper<WxDevice, Long> { | public interface WxDeviceMapper extends CommonMapper<WxDevice, Long> { | ||||
| List<WxDevice> findList(WxDevice wxDevice); | List<WxDevice> findList(WxDevice wxDevice); | ||||
| int offlineScan(@Param("expiredTime") Date expiredTime); | |||||
| } | } | ||||
| @@ -78,4 +78,11 @@ | |||||
| </select> | </select> | ||||
| <update id="offlineScan" parameterType="java.util.Date"> | |||||
| update kw_box set `online_status` = 0 | |||||
| where `status` = 0 | |||||
| and `online_status` = 1 | |||||
| and `last_online_time` < #{expiredTime} | |||||
| </update> | |||||
| </mapper> | </mapper> | ||||
| @@ -145,4 +145,11 @@ | |||||
| where `id` = #{id} | where `id` = #{id} | ||||
| </update> | </update> | ||||
| <update id="offlineScan" parameterType="java.util.Date"> | |||||
| update kw_meter set `online_status` = 0 | |||||
| where `status` = 0 | |||||
| and `online_status` = 1 | |||||
| and `last_online_time` < #{expiredTime} | |||||
| </update> | |||||
| </mapper> | </mapper> | ||||
| @@ -104,5 +104,10 @@ | |||||
| <include refid="dynamicWhereConditions"/> | <include refid="dynamicWhereConditions"/> | ||||
| </select> | </select> | ||||
| <update id="offlineScan" parameterType="java.util.Date"> | |||||
| update wx_device set `online_status` = 0 | |||||
| where `status` = 0 | |||||
| and `online_status` = 1 | |||||
| and `last_hb_time` < #{expiredTime} | |||||
| </update> | |||||
| </mapper> | </mapper> | ||||