Sfoglia il codice sorgente

用户,设备统计

lyhzzz 3 anni fa
parent
commit
a504ff900a

+ 55 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/DataController.java

@@ -0,0 +1,55 @@
+package com.fdkankan.manage.controller;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.IDataService;
+import com.fdkankan.manage.service.ISysRoleService;
+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
+@RequestMapping("/service/manager/data")
+public class DataController {
+
+    @Autowired
+    IDataService dataService;
+    @Autowired
+    ISysRoleService sysRoleService;
+
+    /**
+     *统计新增用户数
+     * @param type  0:日 ,1:月,2:年
+     */
+    @GetMapping("/user")
+    public ResultData userData(@RequestParam(required = false,defaultValue = "0") Integer type){
+        return ResultData.ok(dataService.userData(type));
+    }
+
+    /**
+     *统计相机数据
+     */
+    @GetMapping("/camera")
+    public ResultData camera(){
+        return ResultData.ok(dataService.cameraData());
+    }
+
+    /**
+     *统计权益订单
+     * @param type  0:日 ,1:月,2:年
+     */
+    @GetMapping("/increment")
+    public ResultData incrementData(@RequestParam(required = false,defaultValue = "0") Integer type){
+        return ResultData.ok(dataService.incrementData(type));
+    }
+
+    /**
+     *统计下载订单
+     * @param type  0:日 ,1:月,2:年
+     */
+    @GetMapping("/down")
+    public ResultData downData(@RequestParam(required = false,defaultValue = "0") Integer type){
+        return ResultData.ok(dataService.downData(type));
+    }
+}

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

@@ -79,5 +79,5 @@ public class Camera implements Serializable {
     @TableLogic(value = "A",delval = "I")
     private String recStatus;
 
-
+    private Integer isOut;
 }

+ 32 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/IDataMapper.java

@@ -0,0 +1,32 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.vo.response.DataGroupByCount;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface IDataMapper {
+
+    List<DataGroupByCount> userDataGroupByDay();
+
+    List<DataGroupByCount> userDataGroupByMouth();
+
+    List<DataGroupByCount> userDataGroupByYear();
+
+    List<DataGroupByCount> cameraDataUnBindGroupByType();
+
+    List<DataGroupByCount> cameraDataBindGroupByType();
+
+    List<DataGroupByCount> incrementDataGroupByDay();
+
+    List<DataGroupByCount> incrementDataGroupByMouth();
+
+    List<DataGroupByCount> incrementDataGroupByYear();
+
+    List<DataGroupByCount> downDataGroupByDay();
+
+    List<DataGroupByCount> downDataGroupByMouth();
+
+    List<DataGroupByCount> downDataGroupByYear();
+}

+ 17 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IDataService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.vo.response.CameraDataVo;
+import com.fdkankan.manage.vo.response.DataGroupByCount;
+
+import java.util.List;
+
+public interface IDataService {
+
+    List<DataGroupByCount> userData(Integer type);
+
+    CameraDataVo cameraData();
+
+    List<DataGroupByCount>  incrementData(Integer type);
+
+    List<DataGroupByCount>  downData(Integer type);
+}

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

@@ -120,9 +120,35 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
             camera.setWifiPassword(CameraConstant.WIFI_PASSWORD_VALUE);
             camera.setChildPassword(CameraConstant.CHILD_PASSWORD_VALUE);
             camera.setActivatedTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
+            camera.setIsOut(0);
             cameraList.add(camera);
+
+        }
+        this.saveBatch(cameraList);
+
+        List<CameraDetail> cameraDetailList = new ArrayList<>();
+        for (Camera camera : cameraList) {
+            String wifiName = camera.getWifiName();
+            Integer type = CameraTypeEnum.getTypeByWifiNamePrefix(wifiName.substring(0,wifiName.lastIndexOf("_") +1));
+            CameraDetail cameraDetail = new CameraDetail();
+            cameraDetail.setAgency(CameraConstant.DEFAULT_AGENT);
+            cameraDetail.setCameraId(camera.getId());
+            cameraDetail.setCountry(0);//默认中国
+            if("aws".equals(ossType)){
+                cameraDetail.setCountry(1);//1-国外
+            }
+            cameraDetail.setType(type);
+            if (1 == cameraDetail.getType() || 9 == cameraDetail.getType() || 10 == cameraDetail.getType()){
+                cameraDetail.setTotalSpace(Long.valueOf(Constant.CAMERA_BASE_SPACE_VALUE));
+                cameraDetail.setUsedSpace(0L);
+            }
+            if(type != 9 && type != 10){
+                type = type == 0 ? 1: 4;
+            }
+            cameraDetail.setGoodsId(Long.valueOf(type));
+            cameraDetailList.add(cameraDetail);
         }
-        return this.saveBatch(cameraList) ? cameraList.size() : 0;
+        return  cameraDetailService.saveBatch(cameraDetailList) ? cameraList.size() : 0;
 
     }
     @Override
@@ -188,48 +214,31 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
             throw new BusinessException(-1,"相机不存在");
         }
         CameraDetail detail = cameraDetailService.getByCameraId(camera.getId());
-        if(detail !=null){
-            throw new BusinessException(-1,"该相机已出库");
+        if(detail ==null){
+            throw new BusinessException(-1,"该相机未入库");
         }
-        HashMap<String,Camera> hashMap = new HashMap<>();
-        hashMap.put(param.getSnCode(),camera);
-        this.saveBatchDetail(hashMap, Collections.singletonList(param));
+
+        HashMap<String,CameraDetail> detailMap = new HashMap<>();
+        detailMap.put(detail.getCameraId().toString(),detail);
+        this.saveBatchDetail(detailMap, Collections.singletonList(param));
 
     }
     @Override
     public Integer outs(List<CameraInOutParam> params){
         setCompanyIdByDb(params);
-        HashMap<String, Object> resultMap = getResultMap(params,1);
-        HashMap<String,Camera> snCodeMap = (HashMap<String, Camera>) resultMap.get("snCodeMap");
-        return this.saveBatchDetail(snCodeMap,params);
+        HashMap<String, Object> resultMap = getResultMap(params);
+        HashMap<String,CameraDetail> detailMap = (HashMap<String, CameraDetail>) resultMap.get("detailMap");
+        return this.saveBatchDetail(detailMap,params);
 
     }
 
-    private Integer saveBatchDetail(HashMap<String,Camera> snCodeMap, List<CameraInOutParam> params){
+    private Integer saveBatchDetail(HashMap<String, CameraDetail> detailMap, List<CameraInOutParam> params){
         List<CameraDetail> cameraDetails = new ArrayList<>();
         for (CameraInOutParam param : params) {
-            Camera camera = snCodeMap.get(param.getSnCode());
-            String wifiName = camera.getWifiName();
-            Integer type = CameraTypeEnum.getTypeByWifiNamePrefix(wifiName.substring(0,wifiName.lastIndexOf("_") +1));
-            CameraDetail cameraDetail = new CameraDetail();
+            CameraDetail cameraDetail = detailMap.get(param.getId().toString());
             cameraDetail.setOrderSn(param.getOrderSn());
             cameraDetail.setOwn(param.getOutType());
             cameraDetail.setCompanyId(param.getCompanyId());
-            cameraDetail.setAgency(CameraConstant.DEFAULT_AGENT);
-            cameraDetail.setCameraId(camera.getId());
-            cameraDetail.setCountry(0);//默认中国
-            if("aws".equals(ossType)){
-                cameraDetail.setCountry(1);//1-国外
-            }
-            cameraDetail.setType(type);
-            if (1 == cameraDetail.getType() || 9 == cameraDetail.getType() || 10 == cameraDetail.getType()){
-                cameraDetail.setTotalSpace(Long.valueOf(Constant.CAMERA_BASE_SPACE_VALUE));
-                cameraDetail.setUsedSpace(0L);
-            }
-            if(type != 9 && type != 10){
-                type = type == 0 ? 1: 4;
-            }
-            cameraDetail.setGoodsId(Long.valueOf(type));
             cameraDetails.add(cameraDetail);
         }
         return cameraDetailService.saveBatch(cameraDetails) ? cameraDetails.size() : 0;
@@ -293,7 +302,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
     @Override
     public Integer updateCompany(List<CameraInOutParam> companyParams) {
         setCompanyIdByDb(companyParams);
-        HashMap<String, Object> resultMap = getResultMap(companyParams,2);
+        HashMap<String, Object> resultMap = getResultMap(companyParams);
         HashMap<Long, CameraDetail> detailMap = (HashMap<Long, CameraDetail>) resultMap.get("detailMap");
         HashMap<String, Camera> snCodeMap = (HashMap<String, Camera>) resultMap.get("snCodeMap");
         List<CameraDetail> updateDetailList = new ArrayList<>();
@@ -322,7 +331,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         }
     }
 
-    private HashMap<String, Object> getResultMap(List<CameraInOutParam> params, Integer type){
+    private HashMap<String, Object> getResultMap(List<CameraInOutParam> params){
         HashMap<String,Object> resultMap = new HashMap<>();
         List<String> snCodeList = params.parallelStream().map(CameraInOutParam::getSnCode).collect(Collectors.toList());
         checkSnCode(snCodeList);
@@ -343,10 +352,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         List<Integer> errorList = new ArrayList<>();
         for (String snCode : snCodeList) {
             Camera camera = snCodeMap.get(snCode);
-            if(type == 1 && (camera == null || detailMap.get(camera.getId()) !=null)){
-                errorList.add(snCodeList.indexOf(snCode) +3);
-            }
-            if(type == 2 && (camera == null || detailMap.get(camera.getId()) == null)){
+            if(camera == null || detailMap.get(camera.getId()) !=null){
                 errorList.add(snCodeList.indexOf(snCode) +3);
             }
         }

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

@@ -0,0 +1,90 @@
+package com.fdkankan.manage.service.impl;
+
+import com.fdkankan.manage.mapper.IDataMapper;
+import com.fdkankan.manage.service.IDataService;
+import com.fdkankan.manage.vo.response.CameraDataVo;
+import com.fdkankan.manage.vo.response.DataGroupByCount;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class DataService implements IDataService {
+
+    @Resource
+    IDataMapper dataMapper;
+
+    @Override
+    public List<DataGroupByCount> userData(Integer type) {
+        List<DataGroupByCount> result = new ArrayList<>();
+        switch (type){
+            case 0 : return  dataMapper.userDataGroupByDay();
+            case 1 : return  dataMapper.userDataGroupByMouth();
+            case 2 : return  dataMapper.userDataGroupByYear();
+        }
+        return result;
+    }
+
+    @Override
+    public CameraDataVo cameraData() {
+        CameraDataVo cameraDataVo = new CameraDataVo();
+        // 0KK 1KK 2KK 9KJ 10SS
+        List<DataGroupByCount> cameraUnBindList = dataMapper.cameraDataUnBindGroupByType();
+        long count = 0L;
+        for (DataGroupByCount dataGroupByCount : cameraUnBindList) {
+            switch (dataGroupByCount.getGroupKey()){
+                case "0" : case "1" : case "2" :
+                    count = cameraDataVo.getKkUnBindCount() + dataGroupByCount.getCount();
+                    cameraDataVo.setKkUnBindCount(count); break;
+                case "9" :
+                    count = cameraDataVo.getKjUnBindCount() + dataGroupByCount.getCount();
+                    cameraDataVo.setKkBindCount(count); break;
+                case "10" :
+                    count = cameraDataVo.getSsUnBindCount() + dataGroupByCount.getCount();
+                    cameraDataVo.setSsUnBindCount(count); break;
+                default: break;
+            }
+        }
+        List<DataGroupByCount> cameraBindList = dataMapper.cameraDataBindGroupByType();
+        for (DataGroupByCount dataGroupByCount : cameraBindList) {
+            switch (dataGroupByCount.getGroupKey()){
+                case "0" : case "1" : case "2" :
+                    count = cameraDataVo.getKkBindCount() + dataGroupByCount.getCount();
+                    cameraDataVo.setKkBindCount(count); break;
+                case "9" :
+                    count = cameraDataVo.getKjBindCount() + dataGroupByCount.getCount();
+                    cameraDataVo.setKjBindCount(count); break;
+                case "10" :
+                    count = cameraDataVo.getSsBindCount() + dataGroupByCount.getCount();
+                    cameraDataVo.setSsBindCount(count); break;
+                default: break;
+            }
+        }
+        return cameraDataVo;
+    }
+
+    @Override
+    public List<DataGroupByCount>  incrementData(Integer type) {
+        List<DataGroupByCount> result = new ArrayList<>();
+        switch (type){
+            case 0 : return  dataMapper.incrementDataGroupByDay();
+            case 1 : return  dataMapper.incrementDataGroupByMouth();
+            case 2 : return  dataMapper.incrementDataGroupByYear();
+        }
+        return result;
+    }
+
+    @Override
+    public List<DataGroupByCount> downData(Integer type) {
+        List<DataGroupByCount> result = new ArrayList<>();
+        switch (type){
+            case 0 : return  dataMapper.downDataGroupByDay();
+            case 1 : return  dataMapper.downDataGroupByMouth();
+            case 2 : return  dataMapper.downDataGroupByYear();
+        }
+        return result;
+    }
+
+}

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

@@ -0,0 +1,16 @@
+package com.fdkankan.manage.vo.response;
+
+import lombok.Data;
+
+@Data
+public class CameraDataVo {
+
+    private Long kkUnBindCount = 0L;            //四维看看未绑定数量
+    private Long kkBindCount = 0L;              //四维看看未绑定数量
+
+    private Long kjUnBindCount = 0L;             //四维看见未绑定数量
+    private Long kjBindCount = 0L;               //四维看见未绑定数量
+
+    private Long ssUnBindCount = 0L;              //四维深时未绑定数量
+    private Long ssBindCount = 0L;               //四维深时未绑定数量
+}

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

@@ -0,0 +1,12 @@
+package com.fdkankan.manage.vo.response;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class DataGroupByCount {
+    private String groupKey;
+    private Long count;
+    private BigDecimal amount;
+}

+ 55 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/DataMapper.xml

@@ -0,0 +1,55 @@
+<?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.IDataMapper">
+
+    <select id="userDataGroupByDay" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT @groupTime:=DATE_FORMAT(create_time,'%Y-%m-%d') AS groupKey, count(id) AS count FROM t_user WHERE rec_status = 'A'   GROUP BY groupKey
+    </select>
+
+    <select id="userDataGroupByMouth" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT @groupTime:=DATE_FORMAT(create_time,'%Y-%m') AS groupKey, count(id) AS count FROM t_user WHERE rec_status = 'A'   GROUP BY groupKey
+    </select>
+
+    <select id="userDataGroupByYear" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT @groupTime:=DATE_FORMAT(create_time,'%Y') AS groupKey, count(id) AS count FROM t_user WHERE rec_status = 'A'   GROUP BY groupKey
+    </select>
+
+    <select id="cameraDataUnBindGroupByType" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT type AS groupKey, count(id) AS count FROM t_camera_detail  WHERE rec_status = 'A' AND user_id IS  NUll GROUP BY type
+    </select>
+
+    <select id="cameraDataBindGroupByType" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT type AS groupKey, count(id) AS count FROM t_camera_detail  WHERE rec_status = 'A' AND user_id IS NOT NUll GROUP BY type
+    </select>
+
+    <select id="incrementDataGroupByDay" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT @groupTime:=DATE_FORMAT(create_time,'%Y-%m-%d') AS groupKey, count(id) AS count ,sum(amount) AS amount  FROM t_increment_order
+        WHERE rec_status = 'A' and pay_status = 1  GROUP BY groupKey
+    </select>
+
+    <select id="incrementDataGroupByMouth" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT @groupTime:=DATE_FORMAT(create_time,'%Y-%m') AS groupKey, count(id) AS count ,sum(amount) AS amount  FROM t_increment_order
+        WHERE rec_status = 'A' and pay_status = 1  GROUP BY groupKey
+    </select>
+
+    <select id="incrementDataGroupByYear" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT @groupTime:=DATE_FORMAT(create_time,'%Y') AS groupKey, count(id) AS count ,sum(amount) AS amount  FROM t_increment_order
+        WHERE rec_status = 'A' and pay_status = 1  GROUP BY groupKey
+    </select>
+
+    <select id="downDataGroupByDay" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT @groupTime:=DATE_FORMAT(create_time,'%Y-%m-%d') AS groupKey, count(id) AS count ,sum(amount) AS amount  FROM t_download_order
+        WHERE rec_status = 'A' and pay_status = 1  GROUP BY groupKey
+    </select>
+
+    <select id="downDataGroupByMouth" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT @groupTime:=DATE_FORMAT(create_time,'%Y-%m') AS groupKey, count(id) AS count ,sum(amount) AS amount  FROM t_download_order
+        WHERE rec_status = 'A' and pay_status = 1  GROUP BY groupKey
+    </select>
+
+    <select id="downDataGroupByYear" resultType="com.fdkankan.manage.vo.response.DataGroupByCount">
+        SELECT @groupTime:=DATE_FORMAT(create_time,'%Y') AS groupKey, count(id) AS count ,sum(amount) AS amount  FROM t_download_order
+        WHERE rec_status = 'A' and pay_status = 1  GROUP BY groupKey
+    </select>
+    
+</mapper>