Browse Source

v4.12.0 动态面板功能

dengsixing 1 year ago
parent
commit
61526e4b73

+ 14 - 0
src/main/java/com/fdkankan/scene/controller/SceneController.java

@@ -3,6 +3,7 @@ package com.fdkankan.scene.controller;
 
 import com.fdkankan.common.constant.SceneInfoReqType;
 import com.fdkankan.scene.annotation.CheckPermit;
+import com.fdkankan.scene.service.ISceneDynamicPanelService;
 import com.fdkankan.scene.service.ISceneService;
 import com.fdkankan.web.response.ResultData;
 import com.fdkankan.scene.service.ISceneEditInfoService;
@@ -35,6 +36,8 @@ public class SceneController extends BaseController {
     private IScenePlusService scenePlusService;
     @Autowired
     private ISceneService sceneService;
+    @Autowired
+    private ISceneDynamicPanelService sceneDynamicPanelService;
 
     /**
      * <p>
@@ -101,5 +104,16 @@ public class SceneController extends BaseController {
         return sceneService.getBodySegmentStatus(uuid);
     }
 
+    /**
+     * 查询是否有动态面板数据
+     * @param num
+     * @return
+     */
+    @GetMapping("/checkDynamicPanel")
+    public ResultData checkDynamicPanel(@RequestParam("num") String num){
+       return ResultData.ok(sceneDynamicPanelService.checkDynamicPanel(num));
+    }
+
+
 }
 

+ 53 - 0
src/main/java/com/fdkankan/scene/controller/SceneDynamicPanelController.java

@@ -0,0 +1,53 @@
+package com.fdkankan.scene.controller;
+
+
+import com.fdkankan.scene.annotation.CheckPermit;
+import com.fdkankan.scene.service.ISceneDynamicPanelService;
+import com.fdkankan.scene.vo.BaseJsonDataParamVO;
+import com.fdkankan.web.response.ResultData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * <p>
+ * 场景动态面板 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2024-05-21
+ */
+@RestController
+@RequestMapping("/service/scene/edit/dynamicPanel")
+public class SceneDynamicPanelController {
+
+    @Autowired
+    private ISceneDynamicPanelService sceneDynamicPanelService;
+
+    /**
+     * 获取动态面板列表
+     * @param num
+     * @return
+     */
+    @CheckPermit
+    @GetMapping("/list")
+    public ResultData list(@RequestParam("num") String num){
+        return ResultData.ok(sceneDynamicPanelService.list(num));
+    }
+
+    /**
+     * 修改动态面板
+     * @param param
+     * @return
+     */
+    @CheckPermit
+    @PostMapping("/update")
+    public ResultData update(@RequestBody @Valid BaseJsonDataParamVO param){
+        sceneDynamicPanelService.update(param);
+        return ResultData.ok();
+    }
+
+
+}
+

+ 66 - 0
src/main/java/com/fdkankan/scene/entity/SceneDynamicPanel.java

@@ -0,0 +1,66 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 场景动态面板
+ * </p>
+ *
+ * @author
+ * @since 2024-05-21
+ */
+@Getter
+@Setter
+@TableName("t_scene_dynamic_panel")
+public class SceneDynamicPanel implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * sid
+     */
+    @TableField("sid")
+    private String sid;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 删除状态(A-可用,I删除)
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A", delval = "I")
+    private String recStatus;
+
+
+}

+ 1 - 1
src/main/java/com/fdkankan/scene/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
 
         generate(path,"scene", getTables(new String[]{
-                "t_scene_cold_storage"
+                "t_scene_dynamic_panel"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ISceneDynamicPanelMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.SceneDynamicPanel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 场景动态面板 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-05-21
+ */
+@Mapper
+public interface ISceneDynamicPanelMapper extends BaseMapper<SceneDynamicPanel> {
+
+}

+ 25 - 0
src/main/java/com/fdkankan/scene/service/ISceneDynamicPanelService.java

@@ -0,0 +1,25 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.SceneDynamicPanel;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.vo.BaseJsonDataParamVO;
+import com.fdkankan.scene.vo.SceneDynamicPanelVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 场景动态面板 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-05-21
+ */
+public interface ISceneDynamicPanelService extends IService<SceneDynamicPanel> {
+
+    List<SceneDynamicPanelVO> list(String num);
+
+    void update(BaseJsonDataParamVO param);
+
+    Byte checkDynamicPanel(String num);
+}

+ 84 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneDynamicPanelServiceImpl.java

@@ -0,0 +1,84 @@
+package com.fdkankan.scene.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.common.constant.CommonStatus;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.model.constants.UploadFilePath;
+import com.fdkankan.scene.entity.SceneDynamicPanel;
+import com.fdkankan.scene.mapper.ISceneDynamicPanelMapper;
+import com.fdkankan.scene.service.ISceneDynamicPanelService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.scene.vo.BaseJsonDataParamVO;
+import com.fdkankan.scene.vo.SceneDynamicPanelVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 场景动态面板 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-05-21
+ */
+@Service
+public class SceneDynamicPanelServiceImpl extends ServiceImpl<ISceneDynamicPanelMapper, SceneDynamicPanel> implements ISceneDynamicPanelService {
+
+    @Resource
+    private FYunFileServiceInterface fileServiceInterface;
+
+    @Override
+    public List<SceneDynamicPanelVO> list(String num) {
+        List<SceneDynamicPanel> list = this.list(new LambdaQueryWrapper<SceneDynamicPanel>().eq(SceneDynamicPanel::getNum, num));
+        return BeanUtil.copyToList(list, SceneDynamicPanelVO.class);
+    }
+
+    @Override
+    public void update(BaseJsonDataParamVO param) {
+        JSONObject data = param.getData();
+        String sid = data.getString("sid");
+        if(StrUtil.isEmpty(sid)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001, "sid can not be null");
+        }
+
+        SceneDynamicPanel one = this.getOne(new LambdaQueryWrapper<SceneDynamicPanel>().eq(SceneDynamicPanel::getNum, param.getNum()).eq(SceneDynamicPanel::getSid, sid));
+        if(Objects.isNull(one)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001, "sid error");
+        }
+
+        //上传文件
+        String editPath = String.format(UploadFilePath.USER_EDIT_PATH, param.getNum()) + "dynamicPanel.json";
+        String viewPath = String.format(UploadFilePath.USER_VIEW_PATH, param.getNum()) + "dynamicPanel.json";
+
+        String fileContent = fileServiceInterface.getFileContent(editPath);
+        JSONArray jsonArray = JSON.parseArray(fileContent);
+        Map<String, JSONObject> map = new HashMap<>();
+        jsonArray.stream().forEach(v->{
+            JSONObject obj = (JSONObject) v;
+            map.put(obj.getString("sid"), obj);
+        });
+        map.put(sid, data);
+        Collection<JSONObject> values = map.values();
+        fileServiceInterface.uploadFile(JSON.toJSONString(values).getBytes(StandardCharsets.UTF_8), editPath);
+        fileServiceInterface.uploadFile(JSON.toJSONString(values).getBytes(StandardCharsets.UTF_8), viewPath);
+    }
+
+    @Override
+    public Byte checkDynamicPanel(String num) {
+        Long count = this.count(new LambdaQueryWrapper<SceneDynamicPanel>().eq(SceneDynamicPanel::getNum, num));
+        return count > 0 ? CommonStatus.YES.code() : CommonStatus.NO.code();
+    }
+}

+ 29 - 0
src/main/java/com/fdkankan/scene/vo/SceneDynamicPanelParamVO.java

@@ -0,0 +1,29 @@
+package com.fdkankan.scene.vo;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 场景动态面板
+ * </p>
+ *
+ * @author
+ * @since 2024-05-21
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SceneDynamicPanelParamVO extends BaseSceneParamVO {
+
+    private static final long serialVersionUID = 1L;
+
+    private JSONObject data;
+
+}

+ 27 - 0
src/main/java/com/fdkankan/scene/vo/SceneDynamicPanelVO.java

@@ -0,0 +1,27 @@
+package com.fdkankan.scene.vo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.*;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 场景动态面板
+ * </p>
+ *
+ * @author
+ * @since 2024-05-21
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SceneDynamicPanelVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String sid;
+
+}

+ 5 - 0
src/main/resources/mapper/scene/SceneDynamicPanelMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.scene.mapper.ISceneDynamicPanelMapper">
+
+</mapper>