diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceController.java index bdd04a1ad..718d34061 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceController.java @@ -53,8 +53,8 @@ public class WxDeviceController extends BaseController { wxDevice.setStatus(EnumDeviceStatus.VALID.getCode()); wxDevice.setOnlineStatus(EnumDeviceOnlineStatus.OFFLINE.getCode()); wxDevice.setTenantId(getTenantId()); - wxDeviceService.saveOrUpdate(wxDevice); - return new ResultData(); + + return wxDeviceService.saveOrUpdate(wxDevice); } @ApiOperation("更新设备") @@ -65,8 +65,8 @@ public class WxDeviceController extends BaseController { if (wxDevice.getId() == null) return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); wxDevice.setTenantId(getTenantId()); - wxDeviceService.saveOrUpdate(wxDevice); - return new ResultData(); + + return wxDeviceService.saveOrUpdate(wxDevice); } @ApiOperation("设备详情") @@ -90,8 +90,9 @@ public class WxDeviceController extends BaseController { wxDevice.setId(id); wxDevice.setTenantId(getTenantId()); wxDevice.setStatus(EnumDeviceStatus.INVALID.getCode()); - wxDeviceService.saveOrUpdate(wxDevice); - return new ResultData(); + + return wxDeviceService.saveOrUpdate(wxDevice); + } } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceScreenAdController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceScreenAdController.java index afc554af7..a8bdb8e52 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceScreenAdController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceScreenAdController.java @@ -95,7 +95,7 @@ public class WxDeviceScreenAdController extends BaseController { wxDevice.setLastHbTime(new Date()); wxDevice.setVersion(paramMap.get("version")); wxDeviceService.saveOrUpdate(wxDevice); - return new ResultData(wxDevice); + return new ResultData(wxDevice.getConfig()); } @ApiOperation("基础信息") diff --git a/mallinkService/src/main/java/com/iformall/service/WxDeviceService.java b/mallinkService/src/main/java/com/iformall/service/WxDeviceService.java index 4b0dec811..b8a71c7b1 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxDeviceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxDeviceService.java @@ -2,6 +2,7 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; import com.iformall.domain.po.WxDevice; import java.util.List; @@ -34,7 +35,7 @@ public interface WxDeviceService { * * @param record */ - void saveOrUpdate(WxDevice record); + ResultData saveOrUpdate(WxDevice record); /** diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxDeviceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxDeviceServiceImpl.java index 49a721965..4a2794b97 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxDeviceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxDeviceServiceImpl.java @@ -1,11 +1,15 @@ package com.iformall.service.impl; +import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; +import com.iformall.common.ResultData; import com.iformall.domain.po.WxDevice; import com.iformall.enums.EnumDeviceStatus; +import com.iformall.enums.EnumDeviceType; import com.iformall.mapper.WxDeviceMapper; import com.iformall.service.WxDeviceService; import org.slf4j.Logger; @@ -24,6 +28,14 @@ public class WxDeviceServiceImpl implements WxDeviceService { @Autowired WxDeviceMapper wxDeviceMapper; + final String DEVICE_DEFAULT_CONFIG_SCREEN_AD = "{" + + "\"heartBeatIntervel\":300000," + //5MIN + "\"dataRefreshIntervel\":3600000," + //1HOUR + "\"pageChangeInterval\":10000," + //10SEC + "\"animationTheme\":0" + + "}"; + + @Override public PageInfo listAsPage(WxDevice record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxDeviceMapper.findList(record)); @@ -34,20 +46,60 @@ public class WxDeviceServiceImpl implements WxDeviceService { return wxDeviceMapper.selectByPrimaryKey(id); } + + private String getDefaultConfig(int type) { + + if (type == EnumDeviceType.SCREEN.getCode()) { + return DEVICE_DEFAULT_CONFIG_SCREEN_AD; + } + return null; + } + + private boolean checkConfig(int type, String config) { + JSONObject jConfig; + try { + jConfig = JSONObject.parseObject(config); + } catch (Exception e) { + return false; + } + + if (type == EnumDeviceType.SCREEN.getCode()) { + Integer heartBeatIntervel = jConfig.getInteger("heartBeatIntervel"); + Integer dataRefreshIntervel = jConfig.getInteger("dataRefreshIntervel"); + Integer pageChangeInterval = jConfig.getInteger("pageChangeInterval"); + Integer animationTheme = jConfig.getInteger("animationTheme"); + if (heartBeatIntervel == null || + dataRefreshIntervel == null || + pageChangeInterval == null || + animationTheme == null) { + return false; + } + } + return true; + } + @Override - public void saveOrUpdate(WxDevice record) { + public ResultData saveOrUpdate(WxDevice record) { if (record.getId() == null) { final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); record.setCreateDate(new Date()); record.setUpdateDate(new Date()); + record.setConfig(getDefaultConfig(record.getType())); wxDeviceMapper.insertSelective(record); } else { record.setUpdateDate(new Date()); + if (record.getConfig() != null) { + if (!checkConfig(record.getType(),record.getConfig())) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + } + } wxDeviceMapper.updateByPrimaryKeySelective(record); } + return new ResultData(); } + @Override public void deleteById(Long id) { wxDeviceMapper.deleteByPrimaryKey(id);