lyhzzz 2 سال پیش
والد
کامیت
5f4884100b

+ 13 - 3
src/main/java/com/fdkankan/ucenter/config/WebAppConfig.java

@@ -22,9 +22,19 @@ public class WebAppConfig implements WebMvcConfigurer {
 	@Override
 	public void addInterceptors(InterceptorRegistry registry) {
 		registry.addInterceptor(ucenterInterceptor).addPathPatterns("/**")
-				.excludePathPatterns("/**/sso/**","/app/**","/test/**","/_inner/**","/**/fusion/**");
-
-		registry.addInterceptor(appInterceptor).addPathPatterns("/app/**");
+				.excludePathPatterns(
+						"/**/sso/**",
+						"/app/**",
+						"/test/**",
+						"/_inner/**",
+						"/**/fusion/**",
+						"/goods/version/enabled"
+				);
+
+		registry.addInterceptor(appInterceptor).addPathPatterns("/app/**")
+				.excludePathPatterns(
+						"/app/camera/uploadUserCameraInfo"
+				);
 		WebMvcConfigurer.super.addInterceptors(registry);
 	}
 

+ 25 - 0
src/main/java/com/fdkankan/ucenter/controller/app/AppApiController.java

@@ -0,0 +1,25 @@
+package com.fdkankan.ucenter.controller.app;
+
+import com.fdkankan.ucenter.common.Result;
+import com.fdkankan.ucenter.service.ICameraService;
+import com.fdkankan.ucenter.service.ICameraVersionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class AppApiController {
+
+    @Autowired
+    ICameraVersionService cameraVersionService;
+
+    /**
+     * 给硬件部接口,不需要拦截
+     */
+    @GetMapping("/goods/version/enabled")
+    public Result getEnabledCameraVersion(@RequestParam(required = false) String type) {
+        return Result.success(cameraVersionService.findByStatus(type));
+    }
+}

+ 22 - 4
src/main/java/com/fdkankan/ucenter/controller/app/AppCameraController.java

@@ -2,12 +2,14 @@ package com.fdkankan.ucenter.controller.app;
 
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.ucenter.common.Result;
+import com.fdkankan.ucenter.constant.LoginConstant;
 import com.fdkankan.ucenter.service.impl.AppCameraService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
 
 @RestController
 @RequestMapping("/app/camera")
@@ -53,4 +55,20 @@ public class AppCameraController {
         String childPassword = param.get("childPassword") == null ? null : param.getString("childPassword");
         return Result.success(appCameraService.getCameraInfo(childName,childPassword));
     }
+
+    /**
+     * 用户相机信息上报 app 需要调用
+     */
+    @RequestMapping(value = "/uploadUserCameraInfo", method = RequestMethod.POST)
+    public Result uploadUserCameraInfo(@RequestBody Map<String,String> param) throws Exception {
+        if (ObjectUtils.isEmpty(param) || !param.containsKey("snCode") || !param.containsKey("cameraVersion")
+                || !param.containsKey("appVersion")) {
+            return Result.failure(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
+        }
+        CompletableFuture.runAsync(() -> {
+            appCameraService.uploadUserCameraInfo(param.get("snCode"),param.get("cameraVersion"),param.get("appVersion"));
+        });
+        return Result.success();
+    }
+
 }

+ 99 - 0
src/main/java/com/fdkankan/ucenter/entity/CameraVersion.java

@@ -0,0 +1,99 @@
+package com.fdkankan.ucenter.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 2022-10-13
+ */
+@Getter
+@Setter
+@TableName("t_camera_version")
+public class CameraVersion implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 文件rul
+     */
+    @TableField("file_url")
+    private String fileUrl;
+
+    /**
+     * 文件MD5
+     */
+    @TableField("file_md5")
+    private String fileMd5;
+
+    /**
+     * 描述
+     */
+    @TableField("description")
+    private String description;
+
+    /**
+     * 相机版本
+     */
+    @TableField("version")
+    private String version;
+
+    /**
+     * 相机类型,1八目,2双目, 3转台双目, 4激光转台
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 活动状态:A: 生效,I: 禁用
+     */
+    @TableField("status")
+    private String status;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 创建日期
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 修改日期
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 相机版本(最小)
+     */
+    @TableField("min_version")
+    private String minVersion;
+
+
+}

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

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

+ 18 - 0
src/main/java/com/fdkankan/ucenter/mapper/ICameraVersionMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.ucenter.mapper;
+
+import com.fdkankan.ucenter.entity.CameraVersion;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机版本表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-10-13
+ */
+@Mapper
+public interface ICameraVersionMapper extends BaseMapper<CameraVersion> {
+
+}

+ 2 - 0
src/main/java/com/fdkankan/ucenter/service/ICameraDetailService.java

@@ -36,4 +36,6 @@ public interface ICameraDetailService extends IService<CameraDetail> {
     List<CameraAppVo> getListByUserAndType(Long userId, Integer cameraType);
 
     boolean updateCameraBalance(Long cameraId, int body, Integer points);
+
+    void uploadUserCameraInfo(Long id, String cameraVersion, String appVersion);
 }

+ 17 - 0
src/main/java/com/fdkankan/ucenter/service/ICameraVersionService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.ucenter.service;
+
+import com.fdkankan.ucenter.entity.CameraVersion;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 相机版本表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-10-13
+ */
+public interface ICameraVersionService extends IService<CameraVersion> {
+
+    CameraVersion findByStatus(String type);
+}

+ 9 - 0
src/main/java/com/fdkankan/ucenter/service/impl/AppCameraService.java

@@ -15,6 +15,7 @@ import com.fdkankan.ucenter.vo.response.GroupByCount;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
 import java.math.BigInteger;
 import java.util.Collections;
@@ -129,4 +130,12 @@ public class AppCameraService {
         }
         return cameraAppVos.get(0);
     }
+
+    public void uploadUserCameraInfo(String snCode, String cameraVersion, String appVersion) {
+        Camera cameraEntity = cameraService.getBySnCode(snCode);
+        if(ObjectUtils.isEmpty(cameraEntity)){
+            return;
+        }
+        cameraDetailService.uploadUserCameraInfo(cameraEntity.getId(),cameraVersion,appVersion);
+    }
 }

+ 1 - 1
src/main/java/com/fdkankan/ucenter/service/impl/AppSceneService.java

@@ -84,7 +84,7 @@ public class AppSceneService {
         param.setCameraId(camera.getId());
         Page<AppSceneVo> page =  scenePlusMapper.pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
         for (AppSceneVo record : page.getRecords()) {
-
+            record.setChildName(record.getSnCode());
             if (record.getStatus() == -1) {
                 record.setStatus(0);
             } else if (record.getStatus() == 500) {

+ 10 - 0
src/main/java/com/fdkankan/ucenter/service/impl/CameraDetailServiceImpl.java

@@ -166,4 +166,14 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         detailEntity.setBalance(String.valueOf(sub));
         return this.updateById(detailEntity);
     }
+
+    @Override
+    public void uploadUserCameraInfo(Long id, String cameraVersion, String appVersion) {
+        LambdaUpdateWrapper<CameraDetail> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(CameraDetail::getCameraId,id)
+                .set(CameraDetail::getUserCameraVersion,cameraVersion)
+                .set(CameraDetail::getAppVersion,appVersion)
+                .set(CameraDetail::getLastRequestTime,new DateTime());
+        this.update(wrapper);
+    }
 }

+ 40 - 0
src/main/java/com/fdkankan/ucenter/service/impl/CameraVersionServiceImpl.java

@@ -0,0 +1,40 @@
+package com.fdkankan.ucenter.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.ucenter.entity.CameraVersion;
+import com.fdkankan.ucenter.mapper.ICameraVersionMapper;
+import com.fdkankan.ucenter.service.ICameraVersionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 相机版本表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-10-13
+ */
+@Service
+public class CameraVersionServiceImpl extends ServiceImpl<ICameraVersionMapper, CameraVersion> implements ICameraVersionService {
+
+    @Override
+    public CameraVersion findByStatus(String type) {
+        LambdaQueryWrapper<CameraVersion> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CameraVersion::getStatus,"A");
+        if(StringUtils.isNotBlank(type)){
+            wrapper.eq(CameraVersion::getType,type);
+        }else {
+            wrapper.eq(CameraVersion::getType,1);
+        }
+        wrapper.orderByDesc(CameraVersion::getCreateTime);
+        List<CameraVersion> list = this.list(wrapper);
+        if (list.size() > 0) {
+            return list.get(0);
+        }
+        return null;
+    }
+}

+ 2 - 0
src/main/java/com/fdkankan/ucenter/vo/response/AppSceneVo.java

@@ -33,6 +33,8 @@ public class AppSceneVo {
     private Integer sceneSourceType;
     private Long userId;
 
+    private String dataSource;
+
     public String getCreateTime() {
         return DateUserUtil.getDayTime(createTime);
     }

+ 5 - 0
src/main/resources/mapper/ucenter/CameraVersionMapper.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.ucenter.mapper.ICameraVersionMapper">
+
+</mapper>

+ 4 - 2
src/main/resources/mapper/ucenter/ScenePlusMapper.xml

@@ -4,7 +4,8 @@
 
     <select id="pageList" resultType="com.fdkankan.ucenter.vo.response.AppSceneVo">
         SELECT p.id ,null as name ,0 as isFolder,null as type,null as parentId ,p.create_time,num,scene_name,scene_dec,
-        p.status,pay_status,thumb,web_site,0 as is_upgrade,sn_code,view_count,u.user_name as cooperationUserName ,u.id as cooperationUserId,p.camera_id,p.user_id
+        p.status,pay_status,thumb,web_site,0 as is_upgrade,sn_code,view_count,u.user_name as cooperationUserName ,u.id as cooperationUserId,
+         p.camera_id,p.user_id ,p.data_source
         FROM t_scene_pro p
         <include refid="sceneJoinCamera"></include>
         WHERE is_upgrade = 0 and  p.rec_status = 'A'
@@ -14,7 +15,8 @@
         </if>
         UNION
         SELECT p.id as id ,null as name ,0 as isFolder,null as type,null as parentId,p.create_time ,num,title as scene_name,description as scene_dec,
-        scene_status as status,pay_status,thumb,web_site,1 as is_upgrade,sn_code,view_count,u.user_name as cooperationUserName,u.id as cooperationUserId,p.camera_id,p.user_id
+        scene_status as status,pay_status,thumb,web_site,1 as is_upgrade,sn_code,view_count,u.user_name as cooperationUserName,u.id as cooperationUserId,
+        p.camera_id,p.user_id,e.data_source
         FROM t_scene_plus p
         LEFT JOIN t_scene_plus_ext e on p.id = e.plus_id
         <include refid="sceneJoinCamera"></include>