Explorar el Código

管理后台文件夹

lyhzzz hace 2 meses
padre
commit
aeb20094d8

+ 2 - 0
src/main/java/com/fdkankan/manage_jp/common/ResultCode.java

@@ -61,6 +61,8 @@ public enum ResultCode  {
 
 
     SCENE_MOVE_ERROR(5037, "场景类型错误,不能迁移"),
     SCENE_MOVE_ERROR(5037, "场景类型错误,不能迁移"),
 
 
+    FOLDER_NOT_EXSIT(5038, "文件夹不存在"),
+
     ;
     ;
 
 
     private Integer code;
     private Integer code;

+ 54 - 0
src/main/java/com/fdkankan/manage_jp/controller/ManageFolderController.java

@@ -0,0 +1,54 @@
+package com.fdkankan.manage_jp.controller;
+
+
+import com.fdkankan.manage_jp.common.Result;
+import com.fdkankan.manage_jp.common.ResultCode;
+import com.fdkankan.manage_jp.entity.ManageFolder;
+import com.fdkankan.manage_jp.entity.User;
+import com.fdkankan.manage_jp.exception.BusinessException;
+import com.fdkankan.manage_jp.service.IManageFolderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-27
+ */
+@RestController
+@RequestMapping("/manage_jp/manageFolder")
+public class ManageFolderController extends BaseController{
+
+    @Autowired
+    IManageFolderService manageFolderService;
+
+    @PostMapping("/addOrUpdate")
+    public Result addOrUpdate(@RequestBody ManageFolder manageFolder){
+        if(manageFolder.getId() == null){
+            User user = getUser();
+            manageFolder.setCreateId(user.getId());
+            manageFolder.setCompanyId(user.getCompanyId());
+        }
+        manageFolderService.saveOrUpdate(manageFolder);
+        return Result.success();
+    }
+
+
+    @PostMapping("/del")
+    public Result del(@RequestBody ManageFolder manageFolder){
+        if(manageFolder.getId() == null){
+            throw new BusinessException(ResultCode.PARAM_ERROR);
+        }
+        manageFolderService.del(manageFolder.getId());
+        return Result.success();
+    }
+
+    @GetMapping("/tree")
+    public Result tree(@RequestParam (required = false)Integer type){
+        return Result.success(manageFolderService.tree(getUser(),type));
+    }
+}
+

+ 62 - 0
src/main/java/com/fdkankan/manage_jp/entity/ManageFolder.java

@@ -0,0 +1,62 @@
+package com.fdkankan.manage_jp.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.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-27
+ */
+@Getter
+@Setter
+@TableName("t_manage_folder")
+public class ManageFolder implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("name")
+    private String name;
+
+    @TableField("company_id")
+    private Long companyId;
+
+    @TableField("create_id")
+    private Long createId;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("type")
+    private Integer type;
+
+    @TableField("parent_id")
+    private Integer parentId;
+
+    @TableField(exist = false)
+    private List<ManageFolder> childrenList = new ArrayList<>();
+
+}

+ 52 - 0
src/main/java/com/fdkankan/manage_jp/entity/ManageFolderScene.java

@@ -0,0 +1,52 @@
+package com.fdkankan.manage_jp.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 2025-11-27
+ */
+@Getter
+@Setter
+@TableName("t_manage_folder_scene")
+public class ManageFolderScene implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("num")
+    private String num;
+
+    @TableField("is_obj")
+    private Integer isObj;
+
+    @TableField("folder_id")
+    private Integer folderId;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+
+}

+ 5 - 3
src/main/java/com/fdkankan/manage_jp/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
         String path =System.getProperty("user.dir");
 
 
         generate(path,"manage_jp", getTables(new String[]{
         generate(path,"manage_jp", getTables(new String[]{
-              "t_platform","t_user_platform"
+              "t_manage_folder","t_manage_folder_scene"
         }));
         }));
 
 
 //        generate(path,"goods", getTables(new String[]{
 //        generate(path,"goods", getTables(new String[]{
@@ -46,8 +46,10 @@ public class AutoGenerate {
 
 
 
 
     public static void  generate(String path,String moduleName,  List<String> tables){
     public static void  generate(String path,String moduleName,  List<String> tables){
-        FastAutoGenerator.create("jdbc:mysql://47.106.180.58:13306/4dkankan_v4",
-                "root","JK20220120%JIK")
+//        FastAutoGenerator.create("jdbc:mysql://47.106.180.58:13306/4dkankan_v4",
+//                "root","JK20220120%JIK")
+        FastAutoGenerator.create("jdbc:mysql://57.181.154.43:3306/4dkankan_v4",
+                "root","4Dkankan2022ricoh%")
                 .globalConfig(builder -> {
                 .globalConfig(builder -> {
                     builder.author("")               //作者
                     builder.author("")               //作者
                             .outputDir(path+"\\src\\main\\java")    //输出路径(写到java目录)
                             .outputDir(path+"\\src\\main\\java")    //输出路径(写到java目录)

+ 18 - 0
src/main/java/com/fdkankan/manage_jp/mapper/IManageFolderMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage_jp.mapper;
+
+import com.fdkankan.manage_jp.entity.ManageFolder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-27
+ */
+@Mapper
+public interface IManageFolderMapper extends BaseMapper<ManageFolder> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/manage_jp/mapper/IManageFolderSceneMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage_jp.mapper;
+
+import com.fdkankan.manage_jp.entity.ManageFolderScene;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-27
+ */
+@Mapper
+public interface IManageFolderSceneMapper extends BaseMapper<ManageFolderScene> {
+
+}

+ 21 - 0
src/main/java/com/fdkankan/manage_jp/service/IManageFolderSceneService.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage_jp.service;
+
+import com.fdkankan.manage_jp.entity.ManageFolderScene;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-27
+ */
+public interface IManageFolderSceneService extends IService<ManageFolderScene> {
+
+    List<ManageFolderScene> getByFolderId(Integer folderId);
+
+    List<ManageFolderScene> getByFolderIds(List<Integer> collect);
+}

+ 24 - 0
src/main/java/com/fdkankan/manage_jp/service/IManageFolderService.java

@@ -0,0 +1,24 @@
+package com.fdkankan.manage_jp.service;
+
+import com.fdkankan.manage_jp.entity.ManageFolder;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage_jp.entity.User;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-27
+ */
+public interface IManageFolderService extends IService<ManageFolder> {
+
+    void del(Integer id);
+
+    List<ManageFolder> getSonList(Integer folderId);
+
+    List<ManageFolder>  tree(User user,Integer tyep);
+}

+ 40 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/ManageFolderSceneServiceImpl.java

@@ -0,0 +1,40 @@
+package com.fdkankan.manage_jp.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage_jp.entity.ManageFolderScene;
+import com.fdkankan.manage_jp.mapper.IManageFolderSceneMapper;
+import com.fdkankan.manage_jp.service.IManageFolderSceneService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-27
+ */
+@Service
+public class ManageFolderSceneServiceImpl extends ServiceImpl<IManageFolderSceneMapper, ManageFolderScene> implements IManageFolderSceneService {
+
+    @Override
+    public List<ManageFolderScene> getByFolderId(Integer folderId) {
+        LambdaQueryWrapper<ManageFolderScene> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ManageFolderScene::getFolderId,folderId);
+        return this.list(wrapper);
+    }
+
+    @Override
+    public List<ManageFolderScene> getByFolderIds(List<Integer> folderIds) {
+        if(folderIds.isEmpty()){
+            return new ArrayList<>();
+        }
+        LambdaQueryWrapper<ManageFolderScene> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(ManageFolderScene::getFolderId, folderIds);
+        return this.list(wrapper);
+    }
+}

+ 112 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/ManageFolderServiceImpl.java

@@ -0,0 +1,112 @@
+package com.fdkankan.manage_jp.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage_jp.common.ResultCode;
+import com.fdkankan.manage_jp.entity.ManageFolder;
+import com.fdkankan.manage_jp.entity.ManageFolderScene;
+import com.fdkankan.manage_jp.entity.User;
+import com.fdkankan.manage_jp.exception.BusinessException;
+import com.fdkankan.manage_jp.mapper.IManageFolderMapper;
+import com.fdkankan.manage_jp.service.IManageFolderSceneService;
+import com.fdkankan.manage_jp.service.IManageFolderService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage_jp.service.ISceneProService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.YearMonth;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-11-27
+ */
+@Service
+public class ManageFolderServiceImpl extends ServiceImpl<IManageFolderMapper, ManageFolder> implements IManageFolderService {
+
+    @Autowired
+    IManageFolderSceneService manageFolderSceneService;
+    @Autowired
+    ISceneProService sceneProService;
+
+    @Override
+    public void del(Integer folderId) {
+        List<ManageFolder> sonList = this.getSonList(folderId);
+        if(sonList.isEmpty()){
+            return;
+        }
+        List<Integer> collect = sonList.stream().map(ManageFolder::getId).collect(Collectors.toList());
+
+        this.removeByIds(collect);
+        List<ManageFolderScene> folderSceneList = manageFolderSceneService.getByFolderIds(collect);
+        for (ManageFolderScene manageFolderScene : folderSceneList) {
+            sceneProService.deleteByNum(manageFolderScene.getNum());
+        }
+
+    }
+
+    @Override
+    public List<ManageFolder> getSonList(Integer folderId) {
+        ManageFolder manageFolder = this.getById(folderId);
+        if(manageFolder == null){
+            throw new BusinessException(ResultCode.FOLDER_NOT_EXSIT);
+        }
+        List<ManageFolder> allList = new ArrayList<>();
+        allList.add(manageFolder);
+        getAllSon(allList,folderId);
+        return allList;
+    }
+
+    private void getAllSon(List<ManageFolder> allList, Integer folderId) {
+        LambdaQueryWrapper<ManageFolder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ManageFolder::getParentId,folderId);
+        List<ManageFolder> list = this.list(wrapper);
+        if(!list.isEmpty()){
+            allList.addAll(list);
+            for (ManageFolder manageFolder : list) {
+                getAllSon(allList,manageFolder.getId());
+            }
+        }
+    }
+
+
+    @Override
+    public List<ManageFolder> tree(User user,Integer type) {
+        LambdaQueryWrapper<ManageFolder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ManageFolder::getType, type);
+        if(user.getCompanyId() != null){
+            wrapper.eq(ManageFolder::getCompanyId,user.getCompanyId());
+        }else {
+            wrapper.eq(ManageFolder::getCreateId,user.getId());
+        }
+        List<ManageFolder> list = this.list(wrapper);
+        if(list.isEmpty()){
+            return new ArrayList<>();
+        }
+        List<ManageFolder> reList = new ArrayList<>();
+        HashMap<Integer,ManageFolder> map = new HashMap<>();
+        for (ManageFolder manageFolder : list) {
+            if(manageFolder.getParentId() == null){
+                reList.add(manageFolder);
+            }
+            map.put(manageFolder.getId(),manageFolder);
+        }
+        for (ManageFolder manageFolder : list) {
+            if(manageFolder.getParentId() != null){
+                ManageFolder parentVo = map.get(manageFolder.getParentId());
+                parentVo.getChildrenList().add(manageFolder);
+            }
+        }
+
+        return reList;
+    }
+
+
+}

+ 7 - 0
src/main/java/com/fdkankan/manage_jp/service/impl/SceneProServiceImpl.java

@@ -104,6 +104,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     IProjectNumService projectNumService;
     IProjectNumService projectNumService;
     @Autowired
     @Autowired
     IProjectSceneGpsService projectSceneGpsService;
     IProjectSceneGpsService projectSceneGpsService;
+    @Autowired
+    IManageFolderSceneService manageFolderSceneService;
 
 
     @Override
     @Override
     public Long getCountByUserIds(List<Long> userIds) {
     public Long getCountByUserIds(List<Long> userIds) {
@@ -157,6 +159,11 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             }
             }
             param.setProjectNums(projectNums);
             param.setProjectNums(projectNums);
         }
         }
+        if(param.getFolderId() != null){
+            List<ManageFolderScene> byFolderId = manageFolderSceneService.getByFolderId(param.getFolderId());
+            List<String> collect = byFolderId.stream().map(ManageFolderScene::getNum).collect(Collectors.toList());
+            param.getProjectNums().addAll(collect);
+        }
 
 
         Page<SceneVo> page  = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
         Page<SceneVo> page  = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
         List<String> sceneNumList = page.getRecords().stream().map(SceneVo::getNum).collect(Collectors.toList());
         List<String> sceneNumList = page.getRecords().stream().map(SceneVo::getNum).collect(Collectors.toList());

+ 5 - 1
src/main/java/com/fdkankan/manage_jp/vo/request/SceneParam.java

@@ -3,6 +3,7 @@ package com.fdkankan.manage_jp.vo.request;
 import com.fdkankan.manage_jp.common.RequestBase;
 import com.fdkankan.manage_jp.common.RequestBase;
 import lombok.Data;
 import lombok.Data;
 
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 @Data
 @Data
@@ -33,7 +34,10 @@ public class SceneParam extends RequestBase {
 
 
     private Integer id;
     private Integer id;
     private Integer projectId;
     private Integer projectId;
-    private List<String> projectNums;
+    private List<String> projectNums = new ArrayList<>();
     private Integer mapShow;
     private Integer mapShow;
     private Integer isLaser;
     private Integer isLaser;
+
+    private Integer haveFolder = 0;
+    private Integer folderId;
 }
 }

+ 5 - 0
src/main/resources/mapper/manage_jp/ManageFolderMapper.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.manage_jp.mapper.IManageFolderMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/manage_jp/ManageFolderSceneMapper.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.manage_jp.mapper.IManageFolderSceneMapper">
+
+</mapper>

+ 24 - 0
src/main/resources/mapper/manage_jp/SceneProMapper.xml

@@ -2,9 +2,31 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fdkankan.manage_jp.mapper.ISceneProMapper">
 <mapper namespace="com.fdkankan.manage_jp.mapper.ISceneProMapper">
 
 
+    <sql id="folderSelect">
+        select f.name as sceneName,null as num ,null as create_time,null as sn_code,null as sceneSize
+        ,null as user_name,null as view_count,null as status,null as pay_status,null as scene_version,null as webSite,null as thumb
+        ,null as algorithmTime,null as child_name,null as camera_id,null as laser_title,co.company_name,null as location,null as scene_source,null as shoot_count,null as map_show
+        from t_manage_folder f
+        left join t_company co on f.company_id = co.id
+        where f.rec_status = 'A'
+        <if test="param.type !=null ">
+            and f.type = #{param.type}
+        </if>
+        <if test="param.folderId !=null ">
+            and f.parent_id = #{param.folderId}
+        </if>
+        <if test="param.companyName !=null and param.companyName !='' ">
+            and co.company_name like concat ('%',#{param.companyName},'%')
+        </if>
+    </sql>
+
 
 
     <select id="pageList" resultType="com.fdkankan.manage_jp.vo.response.SceneVo">
     <select id="pageList" resultType="com.fdkankan.manage_jp.vo.response.SceneVo">
         SELECT * FROM(
         SELECT * FROM(
+        <if test="param.haveFolder != null and param.haveFolder ==1">
+            <include refid="folderSelect"></include>
+            UNION
+        </if>
         select s.scene_name ,s.num,s.create_time,c.sn_code,s.space as sceneSize
         select s.scene_name ,s.num,s.create_time,c.sn_code,s.space as sceneSize
         ,u.user_name,s.view_count,s.status,s.pay_status,'v3' as scene_version ,s.web_site as webSite,thumb
         ,u.user_name,s.view_count,s.status,s.pay_status,'v3' as scene_version ,s.web_site as webSite,thumb
         ,null as algorithmTime,c.child_name,s.camera_id,s.laser_title,co.company_name,null as location,s.scene_source,s.shoot_count,s.map_show
         ,null as algorithmTime,c.child_name,s.camera_id,s.laser_title,co.company_name,null as location,s.scene_source,s.shoot_count,s.map_show
@@ -103,6 +125,8 @@
                 #{num}
                 #{num}
             </foreach>
             </foreach>
         </if>
         </if>
+
+
     </sql>
     </sql>
 
 
 </mapper>
 </mapper>