lyhzzz 3 месяцев назад
Родитель
Сommit
628ba369dc

+ 14 - 0
doc/update.2.2.0.sql

@@ -3241,4 +3241,18 @@ ALTER TABLE `fd_fusion`.`t_scene_down_log`
     ADD COLUMN `type` varchar(255) NULL DEFAULT 'scene' AFTER `update_time`;
 
 
+ALTER TABLE `fd_fusion`.`t_case_files`
+    ADD COLUMN `num` varchar(255) NULL AFTER `tabulation_id`;
 
+
+CREATE TABLE `t_auth_page` (
+                               `id` int NOT NULL AUTO_INCREMENT,
+                               `jy_id` int DEFAULT NULL,
+                               `page_auth` int DEFAULT NULL,
+                               `creater_id` int DEFAULT NULL,
+                               `creater_platform_id` int DEFAULT NULL,
+                               `rec_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT 'A',
+                               `create_time` timestamp NULL DEFAULT NULL,
+                               `update_time` timestamp NULL DEFAULT NULL,
+                               PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

+ 58 - 9
src/main/java/com/fdkankan/manage/controller/DataController.java

@@ -1,12 +1,18 @@
 package com.fdkankan.manage.controller;
 
 import com.fdkankan.manage.common.ResultData;
+import com.fdkankan.manage.service.IAuthPageService;
 import com.fdkankan.manage.service.IDataService;
 import com.fdkankan.manage.service.IDistrictCodeService;
+import com.fdkankan.manage.vo.AuthPageVo;
+import com.fdkankan.manage.vo.request.PageDataAuth;
 import com.fdkankan.manage.vo.request.SceneTotalParam;
+import com.fdkankan.manage.vo.request.UserParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
+
 /**
  * 统计分析
  */
@@ -18,12 +24,26 @@ public class DataController extends BaseController{
     IDataService dataService;
     @Autowired
     IDistrictCodeService districtCodeService;
+    @Autowired
+    IAuthPageService authPageService;
+
+    /**
+     * 场景数据总览
+     */
+    @GetMapping("/sceneTotal")
+    public ResultData sceneTotal(){
+        HashMap<String,Long> map = new HashMap<>();
+        map.put("preMonthAddCount",0L);
+        map.put("todayAddCount",0L);
+        map.put("totalSceneCount",0L);
+        return ResultData.ok(map);
+    }
 
     /**
      * 场景数据总览
      */
-    @PostMapping("/sceneTotal")
-    public ResultData sceneTotal(@RequestBody SceneTotalParam param){
+    @PostMapping("/sceneTotal2")
+    public ResultData sceneTotal2(@RequestBody SceneTotalParam param){
         return ResultData.ok(dataService.sceneTotal(param));
     }
 
@@ -67,13 +87,6 @@ public class DataController extends BaseController{
         return ResultData.ok(dataService.districtScatter(param));
     }
 
-    /**
-     * 设置权限
-     */
-    @PostMapping("/setDataAuth")
-    public ResultData setDataAuth(@RequestBody SceneTotalParam param){
-        return ResultData.ok();
-    }
 
     /**
      * 导出场景数据
@@ -82,4 +95,40 @@ public class DataController extends BaseController{
     public void exportSceneList(@RequestBody SceneTotalParam param){
         dataService.exportSceneList(param,request,response);
     }
+
+
+
+    /**
+     * 页面权限列表
+     */
+    @PostMapping("/pageAuthList")
+    public ResultData pageAuthList(@RequestBody PageDataAuth param){
+        return ResultData.ok(authPageService.pageList(param));
+    }
+
+    /**
+     * 页面权限
+     */
+    @PostMapping("/pageAuthAdd")
+    public ResultData pageAuthAdd(@RequestBody PageDataAuth param){
+        authPageService.setAuth(param);
+        return ResultData.ok();
+    }
+
+    /**
+     * 删除页面权限
+     */
+    @PostMapping("/delPageAuth")
+    public ResultData delPageAuth(@RequestBody AuthPageVo param){
+        authPageService.delAuth(param);
+        return ResultData.ok();
+    }
+
+    /**
+     * 获取平台列表
+     */
+    @GetMapping("/platformList")
+    public ResultData platformList(){
+        return ResultData.ok(authPageService.platformList());
+    }
 }

+ 54 - 0
src/main/java/com/fdkankan/manage/entity/AuthPage.java

@@ -0,0 +1,54 @@
+package com.fdkankan.manage.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-12-11
+ */
+@Getter
+@Setter
+@TableName("t_auth_page")
+public class AuthPage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("jy_id")
+    private Integer jyId;
+
+    @TableField("page_auth")
+    private Integer pageAuth;
+
+    @TableField("creater_id")
+    private Integer createrId;
+
+    @TableField("creater_platform_id")
+    private Integer createrPlatformId;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 3 - 0
src/main/java/com/fdkankan/manage/entity/JyPlatform.java

@@ -79,4 +79,7 @@ public class JyPlatform implements Serializable {
 
     @TableField(exist = false)
     private Boolean isNew = false;
+
+    @TableField(exist = false)
+    private String pageAuth = "ordinary";
 }

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

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

+ 24 - 0
src/main/java/com/fdkankan/manage/mapper/IAuthPageMapper.java

@@ -0,0 +1,24 @@
+package com.fdkankan.manage.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.manage.entity.AuthPage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.AuthPageVo;
+import com.fdkankan.manage.vo.request.PageDataAuth;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-11
+ */
+@Mapper
+public interface IAuthPageMapper extends BaseMapper<AuthPage> {
+
+    List<AuthPageVo> pageList(Page<Object> objectPage, PageDataAuth param);
+}

+ 3 - 0
src/main/java/com/fdkankan/manage/mapper/IDataMapper.java

@@ -1,5 +1,6 @@
 package com.fdkankan.manage.mapper;
 
+import com.fdkankan.manage.entity.ScenePlus;
 import com.fdkankan.manage.vo.request.SceneTotalParam;
 import com.fdkankan.manage.vo.response.*;
 import org.apache.ibatis.annotations.Mapper;
@@ -23,4 +24,6 @@ public interface IDataMapper {
     List<GroupByCountVo> getSceneGroupByDistrict(@Param("param")SceneTotalParam param);
 
     List<ExportSceneList> getExPortSceneList(@Param("param")SceneTotalParam param);
+
+    String getLastSceneBuildTime(@Param("param")SceneTotalParam param);
 }

+ 28 - 0
src/main/java/com/fdkankan/manage/service/IAuthPageService.java

@@ -0,0 +1,28 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.AuthPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage.entity.JyPlatform;
+import com.fdkankan.manage.vo.AuthPageVo;
+import com.fdkankan.manage.vo.request.PageDataAuth;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-11
+ */
+public interface IAuthPageService extends IService<AuthPage> {
+
+    void setAuth(PageDataAuth param);
+
+    void delAuth(AuthPageVo param);
+
+    List<AuthPageVo> pageList(PageDataAuth param);
+
+    List<JyPlatform> platformList();
+}

+ 2 - 0
src/main/java/com/fdkankan/manage/service/IJyUserService.java

@@ -59,4 +59,6 @@ public interface IJyUserService extends IService<JyUser> {
     JyUser getEntityByParam(String ryId, String ryNo);
 
     HashMap<Integer, List<Long>> getPlatformIdBySysUserIds(List<Long> sysUserIds);
+
+    JyUser getLoginUser();
 }

+ 113 - 0
src/main/java/com/fdkankan/manage/service/impl/AuthPageServiceImpl.java

@@ -0,0 +1,113 @@
+package com.fdkankan.manage.service.impl;
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.manage.common.ResultCode;
+import com.fdkankan.manage.entity.AuthPage;
+import com.fdkankan.manage.entity.JyPlatform;
+import com.fdkankan.manage.entity.JyUser;
+import com.fdkankan.manage.exception.BusinessException;
+import com.fdkankan.manage.mapper.IAuthPageMapper;
+import com.fdkankan.manage.service.IAuthPageService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.service.IJyPlatformService;
+import com.fdkankan.manage.service.IJyUserService;
+import com.fdkankan.manage.service.ISysRoleService;
+import com.fdkankan.manage.vo.AuthPageVo;
+import com.fdkankan.manage.vo.request.PageDataAuth;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-11
+ */
+@Service
+public class AuthPageServiceImpl extends ServiceImpl<IAuthPageMapper, AuthPage> implements IAuthPageService {
+
+    @Autowired
+    IJyUserService jyUserService;
+    @Autowired
+    IJyPlatformService platformService;
+    @Autowired
+    ISysRoleService sysRoleService;
+    @Override
+    public void setAuth(PageDataAuth param) {
+        if(param.getJyId() == null ){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        JyUser jyUser = jyUserService.getById(param.getJyId());
+        if(jyUser == null || jyUser.getStatus() == 0){
+            throw new BusinessException(ResultCode.USERNAME_ERROR);
+        }
+        JyUser loginUser = jyUserService.getLoginUser();
+
+        AuthPage authPage = new AuthPage();
+        authPage.setJyId(param.getJyId() );
+        authPage.setPageAuth(param.getPageAuth());
+        authPage.setCreaterId(loginUser.getId());
+        authPage.setCreaterPlatformId(loginUser.getPlatformId());
+        this.save(authPage);
+    }
+
+    @Override
+    public void delAuth(AuthPageVo param) {
+        if(param.getId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        this.removeById(param.getId());
+    }
+
+    @Override
+    public List<AuthPageVo> pageList(PageDataAuth param) {
+
+        JyUser loginUser = jyUserService.getLoginUser();
+        param.setPlatformId(loginUser.getPlatformId());
+
+        return this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
+    }
+
+    @Override
+    public List<JyPlatform> platformList() {
+        JyUser loginUser = jyUserService.getLoginUser();
+        if(sysRoleService.isSuperAdmin()){
+            List<JyPlatform> list = platformService.list();
+            for (JyPlatform jyPlatform : list) {
+                jyPlatform.setPageAuth("admin");
+            }
+            return list ;
+        }
+        List<AuthPage> authPages = this.getByJyUserId(loginUser.getId());
+        List<Integer> platformIds = authPages.stream().map(AuthPage::getCreaterPlatformId).collect(Collectors.toList());
+        if(loginUser.getPlatformId() != null){
+            platformIds.add(loginUser.getPlatformId());
+        }
+        if(platformIds!= null && !platformIds.isEmpty()){
+            List<JyPlatform> jyPlatforms = platformService.listByIds(platformIds);
+            for (JyPlatform jyPlatform : jyPlatforms) {
+                if(platformIds.contains(jyPlatform.getId())){
+                    jyPlatform.setPageAuth("admin");
+
+                }
+            }
+            return jyPlatforms;
+        }
+
+        return new ArrayList<>();
+    }
+
+    private List<AuthPage> getByJyUserId(Integer jyId) {
+        LambdaQueryWrapper<AuthPage> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(AuthPage::getJyId,jyId);
+        return this.list(wrapper);
+    }
+}

+ 26 - 10
src/main/java/com/fdkankan/manage/service/impl/DataService.java

@@ -3,8 +3,12 @@ package com.fdkankan.manage.service.impl;
 import cn.dev33.satoken.stp.StpUtil;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.manage.common.FilePath;
+import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.entity.DistrictCode;
+import com.fdkankan.manage.entity.JyPlatform;
 import com.fdkankan.manage.entity.JyUser;
+import com.fdkankan.manage.entity.ScenePlus;
+import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.mapper.IDataMapper;
 import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.util.Dateutils;
@@ -33,20 +37,29 @@ public class DataService implements IDataService {
    IDistrictCodeService districtCodeService;
    @Autowired
    IScenePlusService scenePlusService;
+   @Autowired
+   IAuthPageService authPageService;
 
 
    private JyUser commonSetParam(SceneTotalParam param){
-       Long sysUserId = Long.valueOf(StpUtil.getLoginId().toString());
-       Integer loginPlatformId = userPlatformService.getLoginPlatformId();
-       JyUser jyUser = jyUserService.getBySysId(sysUserId);
-       if(!sysRoleService.isSuperAdmin()){
-           Boolean flag = sysRoleService.isAdmin();
-           if(!flag){
-               param.setUserId(jyUser.getUserId());
-           }else {
-               param.setPlatformId(loginPlatformId);
+       JyUser jyUser = jyUserService.getLoginUser();
+       if(param.getPlatformId() != null){
+           List<JyPlatform> jyPlatforms = authPageService.platformList();
+           List<Integer> collect = jyPlatforms.stream().map(JyPlatform::getId).collect(Collectors.toList());
+           if(!collect.contains(param.getPlatformId())){
+               throw new BusinessException(ResultCode.NOT_PERMISSION);
+           }
+       }else {
+           if(!sysRoleService.isSuperAdmin()){
+               Boolean flag = sysRoleService.isAdmin();
+               if(!flag){
+                   param.setUserId(jyUser.getUserId());
+               }else {
+                   param.setPlatformId(jyUser.getPlatformId());
+               }
            }
        }
+
        return jyUser;
    }
     @Override
@@ -57,7 +70,7 @@ public class DataService implements IDataService {
         Long totalSceneCount = dataMapper.totalSceneCount(param);
 
         param.setStartTime(Dateutils.getStartTime(Dateutils.getDaysAgoStr(30)));
-        param.setEndTime(Dateutils.getEndTime(Dateutils.getDaysAgoStr(30)));
+        param.setEndTime(Dateutils.getEndTime(Dateutils.getDate(new Date())));
         Long preMonthAddCount = dataMapper.totalSceneCount(param);
 
         param.setStartTime(Dateutils.getStartTime(Dateutils.getDaysAgoStr(0)));
@@ -69,12 +82,15 @@ public class DataService implements IDataService {
         param.setUserId(jyUser.getUserId());
         Long userSceneCount = dataMapper.totalSceneCount(param);
 
+        String updateTime = dataMapper.getLastSceneBuildTime(param);
+
         totalVo.setTotalSceneCount(totalSceneCount);
         totalVo.setTimeSceneCount(preMonthAddCount);
         totalVo.setTodaySceneCount(todayAddCount);
         totalVo.setTotalUserCount(totalUserCount);
         totalVo.setTotalSceneUserCount(Long.valueOf(totalSceneUserCount));
         totalVo.setUserSceneCount(userSceneCount);
+        totalVo.setUpdateTime(updateTime);
         return totalVo;
     }
 

+ 16 - 0
src/main/java/com/fdkankan/manage/service/impl/JyUserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fdkankan.manage.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -33,6 +34,8 @@ import java.util.stream.Collectors;
 @Service
 public class JyUserServiceImpl extends ServiceImpl<IJyUserMapper, JyUser> implements IJyUserService {
 
+    @Autowired
+    ISysUserService sysUserService;
     @Override
     public HashMap<Integer, JyUser> getByIds(List<Integer> jyUserIds) {
         HashMap<Integer, JyUser> map = new HashMap<>();
@@ -329,4 +332,17 @@ public class JyUserServiceImpl extends ServiceImpl<IJyUserMapper, JyUser> implem
         }
         return map;
     }
+
+    @Override
+    public JyUser getLoginUser() {
+        SysUser sysUser = sysUserService.getById(Long.valueOf(StpUtil.getLoginId().toString()));
+        if(sysUser == null){
+            throw new BusinessException(ResultCode.USER_NOT_LOGIN);
+        }
+        JyUser jyUser = this.getBySysId(sysUser.getId());
+        if(jyUser == null){
+            throw new BusinessException(ResultCode.USER_NOT_LOGIN);
+        }
+        return jyUser;
+    }
 }

+ 11 - 0
src/main/java/com/fdkankan/manage/vo/AuthPageVo.java

@@ -0,0 +1,11 @@
+package com.fdkankan.manage.vo;
+
+import lombok.Data;
+
+@Data
+public class AuthPageVo {
+    private Integer id;
+    private String ryNickName;
+    private String ryNo;
+    private String platformName;
+}

+ 10 - 0
src/main/java/com/fdkankan/manage/vo/request/PageDataAuth.java

@@ -0,0 +1,10 @@
+package com.fdkankan.manage.vo.request;
+
+import lombok.Data;
+
+@Data
+public class PageDataAuth extends RequestBase{
+    private Integer jyId;
+    private Integer pageAuth;
+    private Integer platformId;
+}

+ 1 - 0
src/main/java/com/fdkankan/manage/vo/request/SceneTotalParam.java

@@ -17,6 +17,7 @@ public class SceneTotalParam {
 
     private String districtCode;
     private List<String> districtCodeList;
+    private List<Integer> cameraTypeList;
     private String jyType;
     private List<String> timeList;
 

+ 7 - 5
src/main/java/com/fdkankan/manage/vo/response/SceneTotalVo.java

@@ -5,27 +5,29 @@ import lombok.Data;
 @Data
 public class SceneTotalVo {
     /**
-     * 场景总数
+     * 累计采集数量
      */
     private Long totalSceneCount = 0L;
     /**
-     * 登录用户场景
+     * 当前账号采集总
      */
     private Long userSceneCount = 0L;
     /**
-     * 30日场景数
+     * 30日采集数量
      */
     private Long timeSceneCount = 0L;
     /**
-     * 30日场景数
+     * 今日采集数量
      */
     private Long todaySceneCount = 0L;
     /**
-     * 采集用户数
+     * 采集用户数
      */
     private Long totalSceneUserCount = 0L;
     /**
      * 总用户数
      */
     private Long totalUserCount = 0L;
+
+    private String updateTime;
 }

+ 13 - 0
src/main/resources/mapper/manage/AuthPageMapper.xml

@@ -0,0 +1,13 @@
+<?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.mapper.IAuthPageMapper">
+
+    <select id="pageList" resultType="com.fdkankan.manage.vo.AuthPageVo">
+        select ap.id,jy.ry_nick_name,jy.ry_no,jp.`name` as platformName from t_auth_page ap
+                left join jy_user jy on ap.jy_id = jy.id
+                left join jy_platform jp on jy.platform_id = jp.id
+        where ap.rec_status = 'A'
+        and ap.creater_platform_id = #{param.platformId}
+
+    </select>
+</mapper>

+ 17 - 3
src/main/resources/mapper/manage/DataMapper.xml

@@ -16,7 +16,7 @@
             and user_id =#{param.userId}
         </if>
         <if test="param.platformId != null">
-            and platfrom_id =#{param.platformId}
+            and platform_id =#{param.platformId}
         </if>
     </select>
     <select id="totalSceneUserCount" resultType="com.fdkankan.manage.vo.response.GroupByCount">
@@ -28,7 +28,7 @@
             and s.user_id =#{param.userId}
         </if>
         <if test="param.platformId != null">
-            and jy.platfrom_id =#{param.platformId}
+            and jy.platform_id =#{param.platformId}
         </if>
         <if test="param.cameraType!=null ">
             and d.type = #{param.cameraType}
@@ -72,6 +72,20 @@
                 #{districtCode}
             </foreach>
         </if>
+        <if test="param.cameraTypeList!=null and param.cameraTypeList.size >0">
+            and d.type in
+            <foreach item="type" collection="param.cameraTypeList" open="(" separator="," close=")">
+                #{type}
+            </foreach>
+        </if>
+    </select>
+    <select id="getLastSceneBuildTime" resultType="java.lang.String">
+        SELECT  max(e.algorithm_time) from t_scene_plus s
+        LEFT JOIN t_scene_plus_ext e on s.id =e.plus_id
+        left join jy_user jy on s.user_id = jy.user_id
+        left join t_camera_detail d on s.camera_id = d.camera_id
+        <include refid="commonWhere"></include>
+        and s.create_time is not null
     </select>
 
 
@@ -81,7 +95,7 @@
             and s.user_id =#{param.userId}
         </if>
         <if test="param.platformId != null">
-            and jy.platfrom_id =#{param.platformId}
+            and jy.platform_id =#{param.platformId}
         </if>
         <if test="param.startTime != null and param.startTime!=''">
             and s.create_time &gt;=#{param.startTime}