|
@@ -0,0 +1,127 @@
|
|
|
+package com.fdkankan.scene.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.fdkankan.common.constant.ConstantFilePath;
|
|
|
+import com.fdkankan.common.constant.ErrorCode;
|
|
|
+import com.fdkankan.common.constant.TbStatus;
|
|
|
+import com.fdkankan.common.exception.BusinessException;
|
|
|
+import com.fdkankan.common.response.ResultData;
|
|
|
+import com.fdkankan.fyun.oss.UploadToOssUtil;
|
|
|
+import com.fdkankan.scene.bean.SceneJsonBean;
|
|
|
+import com.fdkankan.scene.entity.SceneEditControls;
|
|
|
+import com.fdkankan.scene.entity.SceneEditInfo;
|
|
|
+import com.fdkankan.scene.entity.ScenePro;
|
|
|
+import com.fdkankan.scene.mapper.ISceneEditInfoMapper;
|
|
|
+import com.fdkankan.scene.service.ISceneEditControlsService;
|
|
|
+import com.fdkankan.scene.service.ISceneEditInfoService;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fdkankan.scene.service.ISceneProService;
|
|
|
+import com.fdkankan.scene.vo.SceneEditControlsVO;
|
|
|
+import com.fdkankan.scene.vo.SceneEditInfoParamVO;
|
|
|
+import com.fdkankan.scene.vo.SceneEditInfoVO;
|
|
|
+import com.fdkankan.scene.vo.SceneEditParamVO;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 服务实现类
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author
|
|
|
+ * @since 2022-01-18
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper, SceneEditInfo> implements ISceneEditInfoService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ISceneEditControlsService sceneEditControlsService;
|
|
|
+ @Autowired
|
|
|
+ private ISceneProService sceneProService;
|
|
|
+ @Autowired
|
|
|
+ private UploadToOssUtil uploadToOssUtil;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SceneEditInfoVO saveSceneEditInfo(SceneEditInfoParamVO param) {
|
|
|
+
|
|
|
+ ScenePro scenePro = sceneProService.findBySceneNum(param.getNum());
|
|
|
+ SceneEditInfo sceneEditInfoDb = this.getBySceneProId(scenePro.getId());
|
|
|
+ SceneEditControls sceneEditControlsDb = null;
|
|
|
+ if(Objects.nonNull(sceneEditInfoDb)){
|
|
|
+ sceneEditControlsDb = sceneEditControlsService.getBySceneEditId(sceneEditInfoDb.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ SceneEditInfo sceneEditInfo = BeanUtil.copyProperties(param, SceneEditInfo.class);
|
|
|
+ sceneEditInfo.setSceneProId(scenePro.getId());
|
|
|
+ sceneEditInfo.setCreateTime(Calendar.getInstance().getTime());
|
|
|
+ if(Objects.isNull(sceneEditInfoDb)){
|
|
|
+ this.save(sceneEditInfo);
|
|
|
+ }else{
|
|
|
+ sceneEditInfo.setId(sceneEditInfoDb.getId());
|
|
|
+ sceneEditInfo.setUpdateTime(Calendar.getInstance().getTime());
|
|
|
+ this.updateById(sceneEditInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ SceneEditControls sceneEditControls = BeanUtil.copyProperties(param.getControls(), SceneEditControls.class);
|
|
|
+ sceneEditControls.setEditInfoId(sceneEditInfo.getId());
|
|
|
+ if(Objects.isNull(sceneEditControlsDb)){
|
|
|
+ sceneEditControlsService.save(sceneEditControls);
|
|
|
+ }else{
|
|
|
+ sceneEditControls.setId(sceneEditControlsDb.getId());
|
|
|
+ sceneEditControlsService.updateById(sceneEditControls);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ SceneEditInfoVO result = BeanUtil.copyProperties(param, SceneEditInfoVO.class);
|
|
|
+ result.setCreateTime(sceneEditInfo.getCreateTime());
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SceneEditInfo getBySceneProId(long sceneProId) {
|
|
|
+ return this.getOne(new LambdaQueryWrapper<SceneEditInfo>()
|
|
|
+ .eq(SceneEditInfo::getTbStatus, TbStatus.VALID.code())
|
|
|
+ .eq(SceneEditInfo::getSceneProId, sceneProId));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResultData publicScene(SceneEditParamVO sceneEditParamVO) throws Exception {
|
|
|
+ String sceneNum = sceneEditParamVO.getSceneNum();
|
|
|
+ if(StrUtil.isEmpty(sceneNum)){
|
|
|
+ throw new BusinessException(ErrorCode.PARAM_REQUIRED);
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据场景码查询数据库
|
|
|
+ ScenePro scenePro = sceneProService.findBySceneNum(sceneEditParamVO.getSceneNum());
|
|
|
+ SceneEditInfo sceneEditInfo = this.getBySceneProId(scenePro.getId());
|
|
|
+ SceneEditControls sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfo.getId());
|
|
|
+
|
|
|
+ //生成sceneJson
|
|
|
+ SceneJsonBean sceneJson = BeanUtil.copyProperties(sceneEditInfo, SceneJsonBean.class);
|
|
|
+ SceneEditControlsVO sceneEditControlsVO = BeanUtil.copyProperties(sceneEditControls, SceneEditControlsVO.class);
|
|
|
+ sceneJson.setControls(sceneEditControlsVO);
|
|
|
+ sceneJson.setNum(sceneEditParamVO.getSceneNum());
|
|
|
+
|
|
|
+ //上传sceneJson文件
|
|
|
+// String sceneJsonPath = String.format(ConstantFilePath.)
|
|
|
+// uploadToOssUtil.upload();
|
|
|
+
|
|
|
+ //oss文件拷贝
|
|
|
+// uploadToOssUtil.copyFiles();
|
|
|
+
|
|
|
+
|
|
|
+ //删除没用文件
|
|
|
+
|
|
|
+ //sceneJson放入缓存
|
|
|
+
|
|
|
+ return ResultData.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|