Explorar o código

用户管理/用户概览

lyhzzz %!s(int64=3) %!d(string=hai) anos
pai
achega
c0f2cb82e7
Modificáronse 50 ficheiros con 2057 adicións e 10 borrados
  1. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraController.java
  2. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraDetailController.java
  3. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraOutController.java
  4. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneController.java
  5. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneProController.java
  6. 84 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/UserController.java
  7. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/UserIncrementController.java
  8. 83 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/Camera.java
  9. 146 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraDetail.java
  10. 66 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraOut.java
  11. 5 9
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraVersion.java
  12. 275 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/Scene.java
  13. 227 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/ScenePro.java
  14. 138 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/User.java
  15. 98 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/UserIncrement.java
  16. 1 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/generate/AutoGenerate.java
  17. 23 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraDetailMapper.java
  18. 22 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraMapper.java
  19. 18 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraOutMapper.java
  20. 23 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneMapper.java
  21. 23 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneProMapper.java
  22. 23 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/IUserIncrementMapper.java
  23. 18 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/IUserMapper.java
  24. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraDetailService.java
  25. 16 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraOutService.java
  26. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraService.java
  27. 20 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneProService.java
  28. 20 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneService.java
  29. 30 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IUserIncrementService.java
  30. 22 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IUserService.java
  31. 31 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraDetailServiceImpl.java
  32. 20 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraOutServiceImpl.java
  33. 39 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraServiceImpl.java
  34. 31 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java
  35. 31 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneServiceImpl.java
  36. 119 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/UserIncrementServiceImpl.java
  37. 95 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/UserServiceImpl.java
  38. 12 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/UserIncrementParam.java
  39. 10 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/UserParam.java
  40. 11 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/CameraDetailVo.java
  41. 9 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/GroupByUserIdCount.java
  42. 11 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/UserIncrementVo.java
  43. 18 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/UserVo.java
  44. 12 0
      4dkankan-center-manage/src/main/resources/mapper/manage/CameraDetailMapper.xml
  45. 11 0
      4dkankan-center-manage/src/main/resources/mapper/manage/CameraMapper.xml
  46. 5 0
      4dkankan-center-manage/src/main/resources/mapper/manage/CameraOutMapper.xml
  47. 12 0
      4dkankan-center-manage/src/main/resources/mapper/manage/SceneMapper.xml
  48. 12 0
      4dkankan-center-manage/src/main/resources/mapper/manage/SceneProMapper.xml
  49. 14 0
      4dkankan-center-manage/src/main/resources/mapper/manage/UserIncrementMapper.xml
  50. 5 0
      4dkankan-center-manage/src/main/resources/mapper/manage/UserMapper.xml

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 相机主表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@RestController
+@RequestMapping("/manage/camera")
+public class CameraController {
+
+}
+

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraDetailController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 相机子表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@RestController
+@RequestMapping("/manage/cameraDetail")
+public class CameraDetailController {
+
+}
+

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraOutController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 相机出库表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@RestController
+@RequestMapping("/manage/cameraOut")
+public class CameraOutController {
+
+}
+

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场景表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@RestController
+@RequestMapping("/manage/scene")
+public class SceneController {
+
+}
+

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneProController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * pro场景表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@RestController
+@RequestMapping("/manage/scenePro")
+public class SceneProController {
+
+}
+

+ 84 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/UserController.java

@@ -0,0 +1,84 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.ICameraService;
+import com.fdkankan.manage.service.IUserIncrementService;
+import com.fdkankan.manage.service.IUserService;
+import com.fdkankan.manage.vo.request.UserIncrementParam;
+import com.fdkankan.manage.vo.request.UserParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 用户信息表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@RestController
+@RequestMapping("/service/manage/user")
+public class UserController {
+
+    @Autowired
+    IUserService userService;
+    @Autowired
+    IUserIncrementService userIncrementService;
+    @Autowired
+    ICameraService cameraService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody UserParam param){
+        return ResultData.ok(userService.pageList(param));
+    }
+
+    @GetMapping("/getIncrementListByUserId")
+    public ResultData getIncrementListByUserId(@RequestParam(required = false) Long userId,
+                                               @RequestParam(required = false,defaultValue = "1") Integer pageNum,
+                                               @RequestParam(required = false,defaultValue = "10") Integer pageSize){
+        return ResultData.ok(userIncrementService.pageList(userId,pageNum,pageSize));
+    }
+
+    @PostMapping("/IncrementDelay")
+    public ResultData IncrementDelay(@RequestBody UserIncrementParam param){
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        userIncrementService.delayById(param.getId(),param.getYear());
+        return ResultData.ok();
+    }
+
+    @PostMapping("/addUserIncrement")
+    public ResultData addUserIncrement(@RequestBody UserIncrementParam param){
+        if(param.getUserId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        userIncrementService.add(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/addDownNum")
+    public ResultData addDownNum(@RequestBody UserIncrementParam param){
+        if(param.getUserId() == null){
+            throw  new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        userService.addDownNum(param);
+        return ResultData.ok();
+    }
+
+    @GetMapping("/getCameraDetail")
+    public ResultData getCameraDetail(@RequestParam(required = false) Long userId,
+                                      @RequestParam(required = false,defaultValue = "1") Integer pageNum,
+                                      @RequestParam(required = false,defaultValue = "10") Integer pageSize){
+        if(userId == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        return ResultData.ok(cameraService.getCameraByUserId(pageNum,pageSize,userId));
+    }
+
+}
+

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/UserIncrementController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 用户增值权益表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@RestController
+@RequestMapping("/manage/userIncrement")
+public class UserIncrementController {
+
+}
+

+ 83 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/Camera.java

@@ -0,0 +1,83 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 相机主表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Getter
+@Setter
+@TableName("t_camera")
+public class Camera implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 相机的Mac地址
+     */
+    @TableField("child_name")
+    private String childName;
+
+    /**
+     * 激活时间
+     */
+    @TableField("activated_time")
+    private String activatedTime;
+
+    /**
+     * 相机密码
+     */
+    @TableField("child_password")
+    private String childPassword;
+
+    /**
+     * sn码
+     */
+    @TableField("sn_code")
+    private String snCode;
+
+    /**
+     * wifi名称
+     */
+    @TableField("wifi_name")
+    private String wifiName;
+
+    /**
+     * wifi密码
+     */
+    @TableField("wifi_password")
+    private String wifiPassword;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 146 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraDetail.java

@@ -0,0 +1,146 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 相机子表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Getter
+@Setter
+@TableName("t_camera_detail")
+public class CameraDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 余额
+     */
+    @TableField("balance")
+    private String balance;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 0表示客户,1表示员工,2表示赠送,3表示其他,4经销商销售
+     */
+    @TableField("own")
+    private Integer own;
+
+    /**
+     * 订单号
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+    /**
+     * 0表示本国,1表示国外
+     */
+    @TableField("country")
+    private Integer country;
+
+    /**
+     * 经销商
+     */
+    @TableField("agency")
+    private String agency;
+
+    /**
+     * 相机类型,0表示双目,1四维看看pro,2 四维看看lite,9 双目转台,10 激光转台
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 总容量
+     */
+    @TableField("total_space")
+    private Long totalSpace;
+
+    /**
+     * 已使用容量
+     */
+    @TableField("used_space")
+    private Long usedSpace;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 商品表t_goods的id
+     */
+    @TableField("goods_id")
+    private Long goodsId;
+
+    /**
+     * 企业表t_company的id
+     */
+    @TableField("company_id")
+    private Long companyId;
+
+    /**
+     * 代理商架构管理t_agent_framework的id
+     */
+    @TableField("agent_framework_id")
+    private Long agentFrameworkId;
+
+    /**
+     * 相机协作用户id
+     */
+    @TableField("cooperation_user")
+    private Long cooperationUser;
+
+    /**
+     * 设备地址(追溯管理后台)
+     */
+    @TableField("address")
+    private String address;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("user_camera_version")
+    private String userCameraVersion;
+
+    @TableField("app_version")
+    private String appVersion;
+
+    @TableField("last_request_time")
+    private String lastRequestTime;
+
+
+}

+ 66 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraOut.java

@@ -0,0 +1,66 @@
+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 2022-06-16
+ */
+@Getter
+@Setter
+@TableName("t_camera_out")
+public class CameraOut implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 相机id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 订单id
+     */
+    @TableField("order_id")
+    private Long orderId;
+
+    /**
+     * 经销商
+     */
+    @TableField("agent_name")
+    private String agentName;
+
+    /**
+     * 0:测试使用,1:线上出库,2:经销商出库
+     */
+    @TableField("type")
+    private Integer type;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("rec_status")
+    @TableLogic
+    private String recStatus;
+
+
+}

+ 5 - 9
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraVersion.java

@@ -1,15 +1,11 @@
 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 com.baomidou.mybatisplus.annotation.*;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.io.Serializable;
+
 /**
  * <p>
  * 相机版本表
@@ -81,13 +77,13 @@ public class CameraVersion implements Serializable {
      * 创建日期
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 修改日期
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
     /**
      * 相机版本(最小)

+ 275 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/Scene.java

@@ -0,0 +1,275 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 场景表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Getter
+@Setter
+@TableName("t_scene")
+public class Scene implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景名称
+     */
+    @TableField("scene_name")
+    private String sceneName;
+
+    /**
+     * 场景描述
+     */
+    @TableField("scene_dec")
+    private String sceneDec;
+
+    /**
+     * 场景的链接地址
+     */
+    @TableField("web_site")
+    private String webSite;
+
+    /**
+     * 场景缩略图
+     */
+    @TableField("thumb")
+    private String thumb;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 0表示未建好,1表示建好,-1表示出错,-2表示不要在官网上显示
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 原始的大场景数据(七牛)
+     */
+    @TableField("data_source")
+    private String dataSource;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 0表示未付款,1表示付款了,-1表示欠费
+     */
+    @TableField("pay_status")
+    private Integer payStatus;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 手机id
+     */
+    @TableField("phone_id")
+    private String phoneId;
+
+    /**
+     * 大场景序号
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 大场景的密钥
+     */
+    @TableField("scene_key")
+    private String sceneKey;
+
+    /**
+     * 0表示其他,1表示文博,2表示地产,3表示电商,4表示餐饮,5表示家居
+     */
+    @TableField("scene_type")
+    private Integer sceneType;
+
+    /**
+     * 1表示推荐,0表示正常
+     */
+    @TableField("recommend")
+    private Integer recommend;
+
+    /**
+     * 浏览次数
+     */
+    @TableField("view_count")
+    private Integer viewCount;
+
+    /**
+     * 版本
+     */
+    @TableField("version")
+    private Integer version;
+
+    /**
+     * 表示缩略图是否存在
+     */
+    @TableField("thumb_status")
+    private Integer thumbStatus;
+
+    /**
+     * 0表示默认,1表示自己上传
+     */
+    @TableField("floor_logo")
+    private String floorLogo;
+
+    /**
+     * 标记大小
+     */
+    @TableField("floor_logo_size")
+    private Integer floorLogoSize;
+
+    /**
+     * 要上传的热点的id集合,用逗号隔开
+     */
+    @TableField("hots_ids")
+    private String hotsIds;
+
+    /**
+     * 表示初始点信息
+     */
+    @TableField("entry")
+    private String entry;
+
+    /**
+     * 拍摄数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
+     * 风格
+     */
+    @TableField("style")
+    private Integer style;
+
+    /**
+     * 要gps定位
+     */
+    @TableField("gps")
+    private String gps;
+
+    /**
+     * 方案:1是双目,2是转台,3是六目,4是八目
+     */
+    @TableField("scene_scheme")
+    private Integer sceneScheme;
+
+    /**
+     * 背景音乐名称
+     */
+    @TableField("bg_music")
+    private String bgMusic;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 普通录屏文件地址
+     */
+    @TableField("screencap_voice_src")
+    private String screencapVoiceSrc;
+
+    /**
+     * 旧版录屏数据地址
+     */
+    @TableField("screencap_music")
+    private String screencapMusic;
+
+    /**
+     * 录屏文件个数
+     */
+    @TableField("screencap_len")
+    private Integer screencapLen;
+
+    /**
+     * 录音文件地址
+     */
+    @TableField("screencap_voice_sound")
+    private String screencapVoiceSound;
+
+    /**
+     * 选择的类型,sound为screencapVoiceSound,file为screencapVoiceSrc
+     */
+    @TableField("screencap_voice_type")
+    private String screencapVoiceType;
+
+    /**
+     * 录屏文件地址
+     */
+    @TableField("play_data")
+    private String playData;
+
+    /**
+     * 算法类型
+     */
+    @TableField("algorithm")
+    private String algorithm;
+
+    /**
+     * oss服务商
+     */
+    @TableField("oss")
+    private String oss;
+
+    /**
+     * 重新建模的版本
+     */
+    @TableField("floor_edit_ver")
+    private Integer floorEditVer;
+
+    /**
+     * 正式发布重新建模的版本
+     */
+    @TableField("floor_publish_ver")
+    private Integer floorPublishVer;
+
+    /**
+     * 使用容量
+     */
+    @TableField("space")
+    private Long space;
+
+    /**
+     * 录屏图片存放文件
+     */
+    @TableField("screencap_thumb")
+    private String screencapThumb;
+
+
+}

+ 227 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/ScenePro.java

@@ -0,0 +1,227 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * pro场景表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Getter
+@Setter
+@TableName("t_scene_pro")
+public class ScenePro implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景名称
+     */
+    @TableField("scene_name")
+    private String sceneName;
+
+    /**
+     * 场景描述
+     */
+    @TableField("scene_dec")
+    private String sceneDec;
+
+    /**
+     * 场景的链接地址
+     */
+    @TableField("web_site")
+    private String webSite;
+
+    /**
+     * 场景缩略图
+     */
+    @TableField("thumb")
+    private String thumb;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 0表示未建好,1表示建好,-1表示出错,-2表示不要在官网上显示
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 原始的大场景数据(七牛)
+     */
+    @TableField("data_source")
+    private String dataSource;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 0表示未付款,1表示付款了,-1表示欠费,-2表示容量不足
+     */
+    @TableField("pay_status")
+    private Integer payStatus;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 手机id
+     */
+    @TableField("phone_id")
+    private String phoneId;
+
+    /**
+     * 场景logo
+     */
+    @TableField("scene_logo")
+    private String sceneLogo;
+
+    /**
+     * 大场景序号
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 0表示其他,1表示文博,2表示地产,3表示电商,4表示餐饮,5表示家居,99一件换装虚拟房源
+     */
+    @TableField("scene_type")
+    private Integer sceneType;
+
+    /**
+     * 1表示推荐,0表示正常
+     */
+    @TableField("recommend")
+    private Integer recommend;
+
+    /**
+     * 浏览次数
+     */
+    @TableField("view_count")
+    private Integer viewCount;
+
+    /**
+     * 拍摄数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
+     * 所有资源文件名
+     */
+    @TableField("files_name")
+    private String filesName;
+
+    /**
+     * 点位视频
+     */
+    @TableField("videos")
+    private String videos;
+
+    /**
+     * 要gps定位
+     */
+    @TableField("gps")
+    private String gps;
+
+    /**
+     * 方案:1是双目,2是转台,3是六目,4是八目,10获取4k图,11获取2k,12获取1k
+     */
+    @TableField("scene_scheme")
+    private Integer sceneScheme;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 算法类型
+     */
+    @TableField("algorithm")
+    private String algorithm;
+
+    /**
+     * 服务器的服务商
+     */
+    @TableField("ecs")
+    private String ecs;
+
+    /**
+     * 使用容量
+     */
+    @TableField("space")
+    private Long space;
+
+    /**
+     * 固件版本
+     */
+    @TableField("firmware_version")
+    private String firmwareVersion;
+
+    /**
+     * 调用V2还是V3的算法
+     */
+    @TableField("build_type")
+    private String buildType;
+
+    /**
+     * 计算时间(秒为单位)
+     */
+    @TableField("compute_time")
+    private Long computeTime;
+
+    /**
+     * 场景来源,相机拍摄10以内表示,1表示八目,2双目,3转台,4 激光  其他来源10以上,11:一键换装,12:123看房,13文通虚拟场景,14上传的matterport场景
+     */
+    @TableField("scene_source")
+    private Integer sceneSource;
+
+    /**
+     * 大场景序号(随心装场景码)
+     */
+    @TableField("vrnum")
+    private String vrnum;
+
+    @TableField("unicode")
+    private String unicode;
+
+    @TableField("mosaics")
+    private String mosaics;
+
+    /**
+     * 是否已升级v4(0-否,1-是)
+     */
+    @TableField("is_upgrade")
+    private Integer isUpgrade;
+
+
+}

+ 138 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/User.java

@@ -0,0 +1,138 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 用户信息表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Getter
+@Setter
+@TableName("t_user")
+public class User implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 头像对应的链接地址
+     */
+    @TableField("head")
+    private String head;
+
+    /**
+     * 用户密码
+     */
+    @TableField("password")
+    private String password;
+
+    /**
+     * 用户邮箱
+     */
+    @TableField("email")
+    private String email;
+
+    /**
+     * 注册时间
+     */
+    @TableField("register_time")
+    private Date registerTime;
+
+    /**
+     * 用户名
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 昵称
+     */
+    @TableField("nick_name")
+    private String nickName;
+
+    /**
+     * 0表示禁言(bbs)
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 0表示拒绝通知,1表示接受通知
+     */
+    @TableField("is_notice")
+    private Integer isNotice;
+
+    /**
+     * 机构名称
+     */
+    @TableField("organization_name")
+    private String organizationName;
+
+    /**
+     * 主页链接
+     */
+    @TableField("main_page")
+    private String mainPage;
+
+    /**
+     * 所在国家,默认是86
+     */
+    @TableField("country")
+    private String country;
+
+    /**
+     * 所在省份
+     */
+    @TableField("province")
+    private String province;
+
+    /**
+     * 所在城市
+     */
+    @TableField("city")
+    private String city;
+
+    /**
+     * 可下载场景总数
+     */
+    @TableField("download_num_total")
+    private Integer downloadNumTotal;
+
+    /**
+     * 已下载场景总数
+     */
+    @TableField("download_num")
+    private Integer downloadNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

+ 98 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/UserIncrement.java

@@ -0,0 +1,98 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 用户增值权益表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Getter
+@Setter
+@TableName("t_user_increment")
+public class UserIncrement implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 权益包标识
+     */
+    @TableField("key_word")
+    private String keyWord;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 会员权益类型Id
+     */
+    @TableField("increment_type_id")
+    private Integer incrementTypeId;
+
+    /**
+     * 结束时间
+     */
+    @TableField("increment_end_time")
+    private String incrementEndTime;
+
+    /**
+     * 是否过期(1过期,0未过期)
+     */
+    @TableField("is_expired")
+    private Integer isExpired;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 扩容订单集合
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+    /**
+     * 生效时间
+     */
+    @TableField("increment_start_time")
+    private String incrementStartTime;
+
+    @TableField("download_num")
+    private Integer downloadNum;
+
+
+}

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

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") + "\\4dkankan-center-manage";
 
         generate(path,"manage", getTables(new String[]{
-                "t_camera_version"
+                "t_camera_out"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 23 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraDetailMapper.java

@@ -0,0 +1,23 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.CameraDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.response.GroupByUserIdCount;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 相机子表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Mapper
+public interface ICameraDetailMapper extends BaseMapper<CameraDetail> {
+
+    List<GroupByUserIdCount> getCountGroupByUserId(@Param("userIdList") List<Long> userIdList);
+}

+ 22 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraMapper.java

@@ -0,0 +1,22 @@
+package com.fdkankan.manage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.manage.entity.Camera;
+import com.fdkankan.manage.vo.response.CameraDetailVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 相机主表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Mapper
+public interface ICameraMapper extends BaseMapper<Camera> {
+
+    Page<CameraDetailVo> getCameraByUserId(Page<CameraDetailVo> page, @Param("userId") Long userId);
+}

+ 18 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraOutMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.CameraOut;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机出库表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Mapper
+public interface ICameraOutMapper extends BaseMapper<CameraOut> {
+
+}

+ 23 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneMapper.java

@@ -0,0 +1,23 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.Scene;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.response.GroupByUserIdCount;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 场景表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Mapper
+public interface ISceneMapper extends BaseMapper<Scene> {
+
+    List<GroupByUserIdCount> getCountGroupByUserId(@Param("userIdList") List<Long> userIdList);
+}

+ 23 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneProMapper.java

@@ -0,0 +1,23 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.ScenePro;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.response.GroupByUserIdCount;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * pro场景表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Mapper
+public interface ISceneProMapper extends BaseMapper<ScenePro> {
+
+    List<GroupByUserIdCount> getCountGroupByUserId(@Param("userIdList") List<Long> userIdList);
+}

+ 23 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/IUserIncrementMapper.java

@@ -0,0 +1,23 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.UserIncrement;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.response.GroupByUserIdCount;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 用户增值权益表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Mapper
+public interface IUserIncrementMapper extends BaseMapper<UserIncrement> {
+
+    List<GroupByUserIdCount> getValidCountGroupByUserId(@Param("userIdList") List<Long> userIdList);
+}

+ 18 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/IUserMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.User;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 用户信息表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Mapper
+public interface IUserMapper extends BaseMapper<User> {
+
+}

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraDetailService.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.CameraDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ * 相机子表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+public interface ICameraDetailService extends IService<CameraDetail> {
+
+    HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList);
+
+}

+ 16 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraOutService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.CameraOut;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 相机出库表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+public interface ICameraOutService extends IService<CameraOut> {
+
+}

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraService.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage.entity.Camera;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 相机主表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+public interface ICameraService extends IService<Camera> {
+
+    List<Camera> getListByCameraIdList(List<Long> cameraIdList);
+
+    Object getCameraByUserId(Integer pageNum, Integer pageSize, Long userId);
+}

+ 20 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneProService.java

@@ -0,0 +1,20 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.ScenePro;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ * pro场景表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+public interface ISceneProService extends IService<ScenePro> {
+
+    HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList);
+}

+ 20 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneService.java

@@ -0,0 +1,20 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.Scene;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ * 场景表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+public interface ISceneService extends IService<Scene> {
+
+    HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList);
+}

+ 30 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IUserIncrementService.java

@@ -0,0 +1,30 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.manage.entity.UserIncrement;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage.vo.request.UserIncrementParam;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ * 用户增值权益表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+public interface IUserIncrementService extends IService<UserIncrement> {
+
+    Long getValidCountByUserId(Long userId);
+
+    HashMap<Long, Long> getValidCountGroupByUserId(List<Long> userIdList);
+
+    PageInfo pageList(Long userId, Integer pageNum, Integer pageSize);
+
+    void delayById(Long id, Integer year);
+
+    void add(UserIncrementParam param);
+}

+ 22 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IUserService.java

@@ -0,0 +1,22 @@
+package com.fdkankan.manage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.manage.entity.User;
+import com.fdkankan.manage.vo.request.UserIncrementParam;
+import com.fdkankan.manage.vo.request.UserParam;
+
+/**
+ * <p>
+ * 用户信息表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+public interface IUserService extends IService<User> {
+
+    PageInfo pageList(UserParam param);
+
+    void addDownNum(UserIncrementParam param);
+}

+ 31 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraDetailServiceImpl.java

@@ -0,0 +1,31 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.entity.CameraDetail;
+import com.fdkankan.manage.mapper.ICameraDetailMapper;
+import com.fdkankan.manage.service.ICameraDetailService;
+import com.fdkankan.manage.vo.response.GroupByUserIdCount;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ * 相机子表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Service
+public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, CameraDetail> implements ICameraDetailService {
+
+    @Override
+    public HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList) {
+        HashMap<Long,Long> map = new HashMap<>();
+        List<GroupByUserIdCount> result = this.getBaseMapper().getCountGroupByUserId(userIdList);
+        result.forEach(entity ->map.put(entity.getUserId(),entity.getCount()));
+        return map;
+    }
+}

+ 20 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraOutServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.manage.service.impl;
+
+import com.fdkankan.manage.entity.CameraOut;
+import com.fdkankan.manage.mapper.ICameraOutMapper;
+import com.fdkankan.manage.service.ICameraOutService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 相机出库表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Service
+public class CameraOutServiceImpl extends ServiceImpl<ICameraOutMapper, CameraOut> implements ICameraOutService {
+
+}

+ 39 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraServiceImpl.java

@@ -0,0 +1,39 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.manage.entity.Camera;
+import com.fdkankan.manage.mapper.ICameraMapper;
+import com.fdkankan.manage.service.ICameraService;
+import com.fdkankan.manage.vo.response.CameraDetailVo;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 相机主表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Service
+public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implements ICameraService {
+
+
+    @Override
+    public List<Camera> getListByCameraIdList(List<Long> cameraIdList) {
+        LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(Camera::getId,cameraIdList);
+        return this.list(wrapper);
+    }
+
+    @Override
+    public PageInfo getCameraByUserId(Integer pageNum, Integer pageSize,Long userId) {
+        Page<CameraDetailVo> page = this.getBaseMapper().getCameraByUserId(new Page<>(pageNum,pageSize),userId);
+        return PageInfo.PageInfo(page);
+    }
+}

+ 31 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -0,0 +1,31 @@
+package com.fdkankan.manage.service.impl;
+
+import com.fdkankan.manage.entity.ScenePro;
+import com.fdkankan.manage.mapper.ISceneProMapper;
+import com.fdkankan.manage.service.ISceneProService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.vo.response.GroupByUserIdCount;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ * pro场景表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Service
+public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro> implements ISceneProService {
+
+    @Override
+    public HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList) {
+        HashMap<Long,Long> map = new HashMap<>();
+        List<GroupByUserIdCount> result = this.getBaseMapper().getCountGroupByUserId(userIdList);
+        result.forEach(entity ->map.put(entity.getUserId(),entity.getCount()));
+        return map;
+    }
+}

+ 31 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneServiceImpl.java

@@ -0,0 +1,31 @@
+package com.fdkankan.manage.service.impl;
+
+import com.fdkankan.manage.entity.Scene;
+import com.fdkankan.manage.mapper.ISceneMapper;
+import com.fdkankan.manage.service.ISceneService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.vo.response.GroupByUserIdCount;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ * 场景表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Service
+public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implements ISceneService {
+
+    @Override
+    public HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList) {
+        HashMap<Long,Long> map = new HashMap<>();
+        List<GroupByUserIdCount> result = this.getBaseMapper().getCountGroupByUserId(userIdList);
+        result.forEach(entity ->map.put(entity.getUserId(),entity.getCount()));
+        return map;
+    }
+}

+ 119 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/UserIncrementServiceImpl.java

@@ -0,0 +1,119 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.common.util.DateUtil;
+import com.fdkankan.manage.entity.Camera;
+import com.fdkankan.manage.entity.UserIncrement;
+import com.fdkankan.manage.mapper.IUserIncrementMapper;
+import com.fdkankan.manage.service.ICameraService;
+import com.fdkankan.manage.service.IUserIncrementService;
+import com.fdkankan.manage.vo.request.UserIncrementParam;
+import com.fdkankan.manage.vo.response.GroupByUserIdCount;
+import com.fdkankan.manage.vo.response.UserIncrementVo;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 用户增值权益表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Service
+public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper, UserIncrement> implements IUserIncrementService {
+
+    @Autowired
+    private ICameraService cameraService;
+
+    @Override
+    public Long getValidCountByUserId(Long userId) {
+        LambdaQueryWrapper<UserIncrement> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(UserIncrement::getUserId,userId);
+        wrapper.gt(UserIncrement::getIncrementEndTime, DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
+        return this.count(wrapper);
+    }
+
+    @Override
+    public HashMap<Long, Long> getValidCountGroupByUserId(List<Long> userIdList) {
+        HashMap<Long,Long> map = new HashMap<>();
+        List<GroupByUserIdCount> result = this.getBaseMapper().getValidCountGroupByUserId(userIdList);
+        result.forEach(entity ->map.put(entity.getUserId(),entity.getCount()));
+        return map;
+    }
+
+    @Override
+    public PageInfo pageList(Long userId, Integer pageNum, Integer pageSize) {
+        LambdaQueryWrapper<UserIncrement> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(UserIncrement::getUserId,userId);
+        Page<UserIncrement> page = this.page(new Page<>(pageNum, pageSize), wrapper);
+
+        List<Long> cameraIdList = page.getRecords().parallelStream()
+                .filter(camera ->camera.getCameraId()!=null)
+                .map(UserIncrement::getCameraId)
+                .collect(Collectors.toList());
+        HashMap<Long,Camera> cameraMap = new HashMap<>();
+        if(cameraIdList.size() >0){
+            List<Camera> details = cameraService.getListByCameraIdList(cameraIdList);
+            for (Camera detail : details) {
+                cameraMap.put(detail.getId(),detail);
+            }
+        }
+        List<UserIncrementVo> voList = new ArrayList<>();
+        for (UserIncrement record : page.getRecords()) {
+            UserIncrementVo vo = new UserIncrementVo();
+            BeanUtils.copyProperties(record,vo);
+            if(record.getCameraId() != null){
+                Camera camera = cameraMap.get(record.getCameraId());
+                if(camera != null){
+                    vo.setSnCode(camera.getSnCode());
+                }
+            }
+            voList.add(vo);
+        }
+        Page<UserIncrementVo> voPage = new Page<>(pageNum, pageSize);
+        voPage.setRecords(voList);
+        voPage.setTotal(page.getTotal());
+        return PageInfo.PageInfo(voPage);
+    }
+
+    @Override
+    public void delayById(Long id, Integer year) {
+        UserIncrement userIncrement = this.getById(id);
+        if(userIncrement == null){
+            throw new BusinessException(-1,"权益包不存在");
+        }
+        userIncrement.setIsExpired(0);
+        Date date = DateUtil.string2Date(userIncrement.getIncrementEndTime(), DateUtil.DEFAULT_DATE_FORMAT);
+        Date delay = DateUtil.delay(date, 1, 1);
+        userIncrement.setIncrementEndTime(DateUtil.date2String(delay,DateUtil.DEFAULT_DATE_FORMAT));
+        this.updateById(userIncrement);
+    }
+
+    @Override
+    public void add(UserIncrementParam param) {
+        List<UserIncrement> userIncrementList = new ArrayList<>();
+        for (int i = 0 ; i<param.getCount() ;i++) {
+            UserIncrement userIncrement = new UserIncrement();
+            String date = DateUtil.date2String(new Date(), DateUtil.DEFAULT_DATE_FORMAT);
+            userIncrement.setUserId(param.getUserId());
+            userIncrement.setKeyWord(UUID.randomUUID().toString().replace("-", ""));
+            userIncrement.setIsExpired(0);
+            userIncrement.setCreateTime(date);
+            userIncrement.setUpdateTime(date);
+            userIncrement.setIncrementStartTime(date);
+            userIncrement.setIncrementEndTime(param.getIncrementEndTime());
+            userIncrementList.add(userIncrement);
+        }
+        this.saveBatch(userIncrementList);
+    }
+}

+ 95 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/UserServiceImpl.java

@@ -0,0 +1,95 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.manage.entity.User;
+import com.fdkankan.manage.mapper.IUserMapper;
+import com.fdkankan.manage.service.*;
+import com.fdkankan.manage.vo.request.UserIncrementParam;
+import com.fdkankan.manage.vo.request.UserParam;
+import com.fdkankan.manage.vo.response.UserVo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 用户信息表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Service
+public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements IUserService {
+
+    @Autowired
+    private IUserIncrementService userIncrementService;
+    @Autowired
+    private ICameraDetailService cameraDetailService;
+    @Autowired
+    private ISceneService sceneService;
+    @Autowired
+    private ISceneProService sceneProService;
+
+    @Override
+    public PageInfo pageList(UserParam param) {
+        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
+        if(StringUtils.isNotBlank(param.getUserName())){
+            wrapper.like(User::getUserName,param.getUserName());
+        }
+        if(StringUtils.isNotBlank(param.getEmail())){
+            wrapper.like(User::getEmail,param.getEmail());
+        }
+        wrapper.orderByDesc(User::getCreateTime);
+        Page<User> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
+        List<UserVo> voList = new ArrayList<>();
+        if(page.getTotal() >0){
+            List<Long> userIdList = page.getRecords().parallelStream().map(User::getId).collect(Collectors.toList());
+            HashMap<Long,Long> incrementCountMap = userIncrementService.getValidCountGroupByUserId(userIdList);
+            HashMap<Long,Long> cameraCountMap = cameraDetailService.getCountGroupByUserId(userIdList);
+            HashMap<Long,Long> sceneCountMap = sceneService.getCountGroupByUserId(userIdList);
+            HashMap<Long,Long> sceneProCountMap = sceneProService.getCountGroupByUserId(userIdList);
+            for (User user : page.getRecords()) {
+                long incrementCount = incrementCountMap.get(user.getId()) == null ? 0 : incrementCountMap.get(user.getId());
+                long cameraCount = cameraCountMap.get(user.getId()) == null ? 0 : cameraCountMap.get(user.getId());
+                long sceneCount = sceneCountMap.get(user.getId()) == null ? 0 : sceneCountMap.get(user.getId());
+                long sceneProCount = sceneProCountMap.get(user.getId()) == null ? 0 : sceneProCountMap.get(user.getId());
+
+                UserVo vo = new UserVo();
+                BeanUtils.copyProperties(user,vo);
+                vo.setVip(incrementCount  > 0 ? 1: 0);
+                vo.setIncrementCount(incrementCount);
+                vo.setSurDownNum(user.getDownloadNumTotal() - user.getDownloadNum());
+                vo.setCameraCount(cameraCount);
+                vo.setSceneNum(sceneCount + sceneProCount);
+                voList.add(vo);
+            }
+        }
+        Page<UserVo> pageVo = new Page<>(page.getCurrent(),page.getSize());
+        pageVo.setTotal(page.getTotal());
+        pageVo.setRecords(voList);
+        return PageInfo.PageInfo(pageVo);
+    }
+
+    @Override
+    public void addDownNum(UserIncrementParam param) {
+        User user = this.getById(param.getUserId());
+        if(user == null){
+            throw new BusinessException(ErrorCode.USER_NOT_EXIST);
+        }
+        Integer totalNum = user.getDownloadNumTotal() == null ? 0 : user.getDownloadNumTotal() + param.getCount();
+        user.setDownloadNumTotal(totalNum);
+        this.updateById(user);
+    }
+}

+ 12 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/UserIncrementParam.java

@@ -0,0 +1,12 @@
+package com.fdkankan.manage.vo.request;
+
+import lombok.Data;
+
+@Data
+public class UserIncrementParam {
+    private Long id;
+    private Long userId;
+    private Integer year = 1;
+    private Integer count = 1;
+    private String incrementEndTime;
+}

+ 10 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/UserParam.java

@@ -0,0 +1,10 @@
+package com.fdkankan.manage.vo.request;
+
+import com.fdkankan.common.request.RequestBase;
+import lombok.Data;
+
+@Data
+public class UserParam extends RequestBase {
+    private String userName;
+    private String email;
+}

+ 11 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/CameraDetailVo.java

@@ -0,0 +1,11 @@
+package com.fdkankan.manage.vo.response;
+
+import lombok.Data;
+
+@Data
+public class CameraDetailVo {
+    private Long id;
+    private String snCode;
+    private String activatedTime;
+    private String outTime;
+}

+ 9 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/GroupByUserIdCount.java

@@ -0,0 +1,9 @@
+package com.fdkankan.manage.vo.response;
+
+import lombok.Data;
+
+@Data
+public class GroupByUserIdCount {
+    private Long userId;
+    private Long count;
+}

+ 11 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/UserIncrementVo.java

@@ -0,0 +1,11 @@
+package com.fdkankan.manage.vo.response;
+
+import lombok.Data;
+
+@Data
+public class UserIncrementVo {
+    private Long id;
+    private String snCode;
+    private String incrementStartTime;
+    private String incrementEndTime;
+}

+ 18 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/UserVo.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.vo.response;
+
+import lombok.Data;
+
+@Data
+public class UserVo {
+    private Long id;
+    private String userName;
+    private String nickName;
+    private String email;
+    private String createTime;
+    private Integer vip;            //是否 vip  0 否,1是  (根据权益数量判定)
+
+    private Long incrementCount;    //权益数量
+    private Integer surDownNum;     //剩余下载次数
+    private Long cameraCount;       //相机数量
+    private Long SceneNum;          //场景数量
+}

+ 12 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/CameraDetailMapper.xml

@@ -0,0 +1,12 @@
+<?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.ICameraDetailMapper">
+
+    <select id="getCountGroupByUserId" resultType="com.fdkankan.manage.vo.response.GroupByUserIdCount" >
+        SELECT user_id as userId, count(id) as count FROM t_camera_detail  WHERE rec_status = 'A' and    user_id in
+        <foreach item="userId" collection="userIdList" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+        GROUP BY user_id
+    </select>
+</mapper>

+ 11 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/CameraMapper.xml

@@ -0,0 +1,11 @@
+<?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.ICameraMapper">
+
+    <select id="getCameraByUserId" resultType="com.fdkankan.manage.vo.response.CameraDetailVo">
+        select c.id ,c.sn_code,c.activated_time ,o.create_time as outTime  from t_camera c
+            left join t_camera_detail d on c.id = d.camera_id
+            left join t_camera_out o on c.id = o.camera_id
+            where c.rec_status = 'A' and d.user_id = #{userId}
+    </select>
+</mapper>

+ 5 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/CameraOutMapper.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.mapper.ICameraOutMapper">
+
+</mapper>

+ 12 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/SceneMapper.xml

@@ -0,0 +1,12 @@
+<?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.ISceneMapper">
+
+    <select id="getCountGroupByUserId" resultType="com.fdkankan.manage.vo.response.GroupByUserIdCount" >
+        SELECT user_id as userId, count(id) as count  FROM t_scene  WHERE rec_status = 'A' and    user_id in
+         <foreach item="userId" collection="userIdList" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+        GROUP BY user_id
+    </select>
+</mapper>

+ 12 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/SceneProMapper.xml

@@ -0,0 +1,12 @@
+<?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.ISceneProMapper">
+
+    <select id="getCountGroupByUserId" resultType="com.fdkankan.manage.vo.response.GroupByUserIdCount" >
+        SELECT user_id as userId, count(id) as count FROM t_scene_pro  WHERE  rec_status = 'A' and  user_id in
+         <foreach item="userId" collection="userIdList" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+        GROUP BY user_id
+    </select>
+</mapper>

+ 14 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/UserIncrementMapper.xml

@@ -0,0 +1,14 @@
+<?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.IUserIncrementMapper">
+
+    <select id="getValidCountGroupByUserId" resultType="com.fdkankan.manage.vo.response.GroupByUserIdCount" >
+        SELECT user_id as userId, count(id) as count  FROM t_user_increment
+        WHERE rec_status = 'A' and is_expired = 0 and increment_end_time &gt; now() and user_id in
+        <foreach item="userId" collection="userIdList" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+        GROUP BY user_id
+    </select>
+
+</mapper>

+ 5 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/UserMapper.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.mapper.IUserMapper">
+
+</mapper>