|
|
@@ -1,16 +1,22 @@
|
|
|
package com.fdkankan.openApi.service.www.impl;
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
+import com.fdkankan.common.constant.CommonStatus;
|
|
|
import com.fdkankan.common.constant.ErrorCode;
|
|
|
import com.fdkankan.common.exception.BusinessException;
|
|
|
+import com.fdkankan.common.util.DateExtUtil;
|
|
|
import com.fdkankan.fyun.face.FYunFileServiceInterface;
|
|
|
import com.fdkankan.model.constants.UploadFilePath;
|
|
|
import com.fdkankan.openApi.bean.www.SceneJsonBean;
|
|
|
+import com.fdkankan.openApi.entity.www.SceneEditControls;
|
|
|
import com.fdkankan.openApi.entity.www.SceneEditInfo;
|
|
|
import com.fdkankan.openApi.entity.www.ScenePlus;
|
|
|
import com.fdkankan.openApi.service.www.GaSceneService;
|
|
|
+import com.fdkankan.openApi.service.www.ISceneEditControlsService;
|
|
|
import com.fdkankan.openApi.service.www.ISceneEditInfoService;
|
|
|
import com.fdkankan.openApi.service.www.IScenePlusService;
|
|
|
import com.fdkankan.openApi.vo.www.SaveScenePasswordDto;
|
|
|
@@ -21,6 +27,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
+import java.util.Date;
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
@DS("www")
|
|
|
@@ -38,28 +45,52 @@ public class GaSceneServiceImpl implements GaSceneService {
|
|
|
private FYunFileServiceInterface fYunFileService;
|
|
|
@Resource
|
|
|
private RedisUtil redisUtil;
|
|
|
+ @Autowired
|
|
|
+ private ISceneEditControlsService sceneEditControlsService;
|
|
|
|
|
|
@Override
|
|
|
public void saveSceneViewPassword(SaveScenePasswordDto dto) {
|
|
|
String num = dto.getSceneCode();
|
|
|
- //校验密码格式是否正确
|
|
|
- if(!this.validateScenePassword(dto.getPassword())){
|
|
|
- throw new BusinessException(ErrorCode.FAILURE_CODE_3011.code(), "请设置4位数字或英文密码");
|
|
|
+ Integer showLock = null;
|
|
|
+ String expireTimeStr = null;//为空时,代表不改变过期时间
|
|
|
+ if(StrUtil.isEmpty(dto.getPassword())){//密码为空,代表场景设置为公开
|
|
|
+ showLock = CommonStatus.NO.code().intValue();
|
|
|
+ }else{
|
|
|
+ showLock = CommonStatus.YES.code().intValue();
|
|
|
+ //校验密码格式是否正确
|
|
|
+ if(!this.validateScenePassword(dto.getPassword())){
|
|
|
+ throw new BusinessException(ErrorCode.FAILURE_CODE_3011.code(), "请设置4位数字或英文密码");
|
|
|
+ }
|
|
|
+ if(dto.getExpireTime() == null){//如果过期时间为空,则为取消过期时间设置
|
|
|
+ expireTimeStr = "";
|
|
|
+ }else{
|
|
|
+ expireTimeStr = DateUtil.format(dto.getExpireTime(), DateExtUtil.dateStyle);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
ScenePlus scenePlus = scenePlusService.getByNum(num);
|
|
|
if(scenePlus == null){
|
|
|
throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
|
|
|
}
|
|
|
SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
|
|
|
sceneEditInfo.setScenePassword(dto.getPassword());
|
|
|
+ sceneEditInfo.setPasswordExpirTime(expireTimeStr);
|
|
|
sceneEditInfo.setUpdateTime(null);
|
|
|
sceneEditInfoService.updateById(sceneEditInfo);
|
|
|
|
|
|
+ sceneEditControlsService.lambdaUpdate()
|
|
|
+ .eq(SceneEditControls::getEditInfoId, sceneEditInfo.getScenePlusId())
|
|
|
+ .set(SceneEditControls::getShowLock, showLock)
|
|
|
+ .update();
|
|
|
+
|
|
|
//发布 scenePassword
|
|
|
String sceneJsonPath = String.format(UploadFilePath.DATA_VIEW_PATH, num) + "scene.json";
|
|
|
String sceneJson = fYunFileService.getFileContent(sceneJsonPath);
|
|
|
JSONObject jsonObject = JSON.parseObject(sceneJson);
|
|
|
jsonObject.put("scenePassword", dto.getPassword());
|
|
|
+ jsonObject.put("passwordExpirTime", sceneEditInfo.getPasswordExpirTime());
|
|
|
+ JSONObject controls = jsonObject.getJSONObject("controls");
|
|
|
+ controls.put("showLock", showLock);
|
|
|
fYunFileService.uploadFile(jsonObject.toJSONString().getBytes(StandardCharsets.UTF_8), sceneJsonPath);
|
|
|
//删除redis缓存
|
|
|
redisUtil.del(String.format(RedisKey.SCENE_JSON, num));
|