leon 5 лет назад
Родитель
Сommit
05c1a8106f
18 измененных файлов с 277 добавлено и 49 удалено
  1. 1 1
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxMobileController.java
  2. 19 12
      src/main/java/com/mokamrp/privates/controller/pangu/PromoteCodeDataController.java
  3. 3 3
      src/main/java/com/mokamrp/privates/mapper/data/PanCSLTRecordMapper.java
  4. 4 4
      src/main/java/com/mokamrp/privates/mapper/data/PanCSLTRecordMapper.xml
  5. 6 1
      src/main/java/com/mokamrp/privates/mapper/data/PanCSTQRecordMapper.java
  6. 14 0
      src/main/java/com/mokamrp/privates/mapper/data/PanCSTQRecordMapper.xml
  7. 1 1
      src/main/java/com/mokamrp/privates/mapper/data/pojo/PanCSLTRecord.java
  8. 1 1
      src/main/java/com/mokamrp/privates/mapper/data/pojo/PanCSLTRecordTotal.java
  9. 1 1
      src/main/java/com/mokamrp/privates/mapper/data/pojo/PanCSTQRecord.java
  10. 30 0
      src/main/java/com/mokamrp/privates/mapper/data/pojo/PanCSTQRecordTotal.java
  11. 9 3
      src/main/java/com/mokamrp/privates/service/data/PanCSLTRecordService.java
  12. 4 0
      src/main/java/com/mokamrp/privates/service/data/PanCSTQRecordService.java
  13. 94 11
      src/main/java/com/mokamrp/privates/service/data/impl/PanCSLTRecordServiceImpl.java
  14. 78 3
      src/main/java/com/mokamrp/privates/service/data/impl/PanCSTQRecordServiceImpl.java
  15. 1 1
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxMobileServiceImpl.java
  16. 3 2
      src/main/java/com/mokamrp/privates/task/pangu/SyncFosterwxEdit.java
  17. 2 1
      src/main/java/com/mokamrp/privates/task/pangu/SyncFosterwxStationEdit.java
  18. 6 4
      src/main/resources/application-local.properties

+ 1 - 1
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxMobileController.java

@@ -96,7 +96,7 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
             return AjaxResult.error("该站点中该手机编码已登陆!请确认!");
         }
         FosterwxStation stationInfo = fosterwxStationService.getOne(new QueryWrapper<FosterwxStation>()
-                .eq("station_id",addHandle.getRaw().getStationId()));
+                .eq("id",addHandle.getRaw().getStationId()));
         // 新增账号
         this.onInsert(addHandle.getRaw());
         addHandle.getRaw().setMobileCode(String.format("%03d", Integer.parseInt(addHandle.getRaw().getMobileCode())));

+ 19 - 12
src/main/java/com/mokamrp/privates/controller/pangu/PromoteCodeDataController.java

@@ -1,19 +1,10 @@
 package com.mokamrp.privates.controller.pangu;
 
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.mokamrp.privates.constant.Constants;
 import com.mokamrp.privates.constant.HttpStatus;
-import com.mokamrp.privates.constant.RedisKey;
-import com.mokamrp.privates.controller.BaseController;
-import com.mokamrp.privates.entity.AddHandle;
 import com.mokamrp.privates.entity.DateHandle;
-import com.mokamrp.privates.entity.DelHandle;
-import com.mokamrp.privates.entity.EditHandle;
-import com.mokamrp.privates.entity.pangu.PromoteCodeListHandle;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecord;
-import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordDayTotal;
+import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordTotal;
 import com.mokamrp.privates.mapper.pangu.pojo.PromoteQrcodePool;
 import com.mokamrp.privates.service.data.PanCSLTRecordService;
 import com.mokamrp.privates.service.pangu.PromoteQrcodePoolRecordService;
@@ -28,6 +19,7 @@ import com.mokamrp.privates.mapper.pangu.pojo.PromoteCode;
 import javax.validation.Valid;
 import java.time.Duration;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -68,13 +60,28 @@ public class PromoteCodeDataController{
             return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
         }
         Duration duration = java.time.Duration.between(dateHandle.startDate, dateHandle.endDate);
+        Map<String,Object> res = new HashMap<>();
         if (duration.toDays() > 1){
-            List<PanCSLTRecordDayTotal> res = panCSLTRecordService.getLongTouchPvByDay(
+            List<PanCSLTRecordTotal> pvRes = panCSLTRecordService.getLongTouchPvByDay(
                     dateHandle.startDate, dateHandle.endDate, Integer.parseInt(String.valueOf(duration.toDays()))
             );
+            List<PanCSLTRecordTotal> uvRes = panCSLTRecordService.getLongTouchUvByDay(
+                    dateHandle.startDate, dateHandle.endDate, Integer.parseInt(String.valueOf(duration.toDays()))
+            );
+            res.put("uv",uvRes);
+            res.put("pv",pvRes);
+            return AjaxResult.success(res);
+        }else{
+            List<PanCSLTRecordTotal> pvRes = panCSLTRecordService.getLongTouchPvByHour(
+                    dateHandle.startDate, dateHandle.endDate, Integer.parseInt(String.valueOf(duration.toHours()))
+            );
+            List<PanCSLTRecordTotal> uvRes = panCSLTRecordService.getLongTouchUvByHour(
+                    dateHandle.startDate, dateHandle.endDate, Integer.parseInt(String.valueOf(duration.toHours()))
+            );
+            res.put("uv",uvRes);
+            res.put("pv",pvRes);
             return AjaxResult.success(res);
         }
-        return null;
     }
 }
 

+ 3 - 3
src/main/java/com/mokamrp/privates/mapper/data/PanCSLTRecordMapper.java

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.mokamrp.privates.entity.pangu.GetPromoteQrcodePoolHandle;
 import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecord;
-import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordDayTotal;
+import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordTotal;
 import com.mokamrp.privates.mapper.pangu.pojo.PromoteQrcodePoolVo;
 import com.mokamrp.privates.service.data.PanCSLTRecordService;
 import org.apache.ibatis.annotations.Param;
@@ -20,8 +20,8 @@ import java.util.List;
  * @since 2021-04-12
  */
 public interface PanCSLTRecordMapper extends BaseMapper<PanCSLTRecord> {
-    public List<PanCSLTRecordDayTotal> getDayPvTotal(@Param("startTimestamp") Long startTimestamp,@Param("endTimestamp") Long endTimestamp);
+    public List<PanCSLTRecordTotal> getDayPvTotal(@Param("startTimestamp") Long startTimestamp, @Param("endTimestamp") Long endTimestamp);
 
-    public List<PanCSLTRecordDayTotal> getDayUvTotal(@Param("startTimestamp") Long startTimestamp,@Param("endTimestamp") Long endTimestamp);
+    public List<PanCSLTRecordTotal> getDayUvTotal(@Param("startTimestamp") Long startTimestamp,@Param("endTimestamp") Long endTimestamp);
 
 }

+ 4 - 4
src/main/java/com/mokamrp/privates/mapper/data/PanCSLTRecordMapper.xml

@@ -3,16 +3,16 @@
 <mapper namespace="com.mokamrp.privates.mapper.data.PanCSLTRecordMapper">
 
 
-    <select id="getDayPvTotal" resultType="com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordDayTotal">
+    <select id="getDayPvTotal" resultType="com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordTotal">
         select timestamp,uuid
-        from ods_hera_pangu_record_custservice_longtouch_holo
+        from ods_hera_pangu_record_custservice_longtouch
         where promote_id is not null
         and custservice_id <![CDATA[ <> ]]> '0'
         and timestamp between #{startTimestamp} and #{endTimestamp}
     </select>
-    <select id="getDayUvTotal" resultType="com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordDayTotal">
+    <select id="getDayUvTotal" resultType="com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordTotal">
         select timestamp,uuid
-        from ods_hera_pangu_record_custservice_longtouch_holo
+        from ods_hera_pangu_record_custservice_longtouch
         where promote_id is not null
         and custservice_id <![CDATA[ <> ]]> '0'
         and timestamp between #{startTimestamp} and #{endTimestamp}

+ 6 - 1
src/main/java/com/mokamrp/privates/mapper/data/PanCSTQRecordMapper.java

@@ -1,8 +1,11 @@
 package com.mokamrp.privates.mapper.data;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecord;
 import com.mokamrp.privates.mapper.data.pojo.PanCSTQRecord;
+import com.mokamrp.privates.mapper.data.pojo.PanCSTQRecordTotal;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,5 +16,7 @@ import com.mokamrp.privates.mapper.data.pojo.PanCSTQRecord;
  * @since 2021-04-12
  */
 public interface PanCSTQRecordMapper extends BaseMapper<PanCSTQRecord> {
+    public List<PanCSTQRecordTotal> getDayPvTotal(@Param("startTimestamp") Long startTimestamp, @Param("endTimestamp") Long endTimestamp);
+    public List<PanCSTQRecordTotal> getDayUvTotal(@Param("startTimestamp") Long startTimestamp, @Param("endTimestamp") Long endTimestamp);
 
 }

+ 14 - 0
src/main/java/com/mokamrp/privates/mapper/data/PanCSTQRecordMapper.xml

@@ -3,4 +3,18 @@
 <mapper namespace="com.mokamrp.privates.mapper.data.PanCSTQRecordMapper">
 
 
+    <select id="getDayPvTotal" resultType="com.mokamrp.privates.mapper.data.pojo.PanCSTQRecordTotal">
+        select timestamp,uuid
+        from ods_hera_pangu_record_promotecode_take_qrcode
+        where promote_id is not null
+          and custservice_id <![CDATA[ <> ]]> '0'
+          and timestamp between #{startTimestamp} and #{endTimestamp}
+    </select>
+    <select id="getDayUvTotal" resultType="com.mokamrp.privates.mapper.data.pojo.PanCSTQRecordTotal">
+        select timestamp,uuid
+        from ods_hera_pangu_record_promotecode_take_qrcode
+        where promote_id is not null
+          and custservice_id <![CDATA[ <> ]]> '0'
+          and timestamp between #{startTimestamp} and #{endTimestamp}
+    </select>
 </mapper>

+ 1 - 1
src/main/java/com/mokamrp/privates/mapper/data/pojo/PanCSLTRecord.java

@@ -13,7 +13,7 @@ import lombok.Data;
  * @since 2021-04-19
  */
 @Data
-@TableName("ods_hera_pangu_record_custservice_longtouch_holo")
+@TableName("ods_hera_pangu_record_custservice_longtouch")
 public class PanCSLTRecord extends Model<PanCSLTRecord>{
 
     private Integer longTouchCnt;

+ 1 - 1
src/main/java/com/mokamrp/privates/mapper/data/pojo/PanCSLTRecordDayTotal.java → src/main/java/com/mokamrp/privates/mapper/data/pojo/PanCSLTRecordTotal.java

@@ -16,7 +16,7 @@ import java.time.LocalDateTime;
  * @since 2021-04-19
  */
 @Data
-public class PanCSLTRecordDayTotal extends Model<PanCSLTRecordDayTotal>{
+public class PanCSLTRecordTotal extends Model<PanCSLTRecordTotal>{
 
     private Long timestamp;
 

+ 1 - 1
src/main/java/com/mokamrp/privates/mapper/data/pojo/PanCSTQRecord.java

@@ -13,7 +13,7 @@ import lombok.Data;
  * @since 2021-04-19
  */
 @Data
-@TableName("ods_hera_pangu_record_promotecode_take_qrcode_holo")
+@TableName("ods_hera_pangu_record_promotecode_take_qrcode")
 public class PanCSTQRecord extends Model<PanCSTQRecord>{
 
     private Integer takeQrcodeCnt;

+ 30 - 0
src/main/java/com/mokamrp/privates/mapper/data/pojo/PanCSTQRecordTotal.java

@@ -0,0 +1,30 @@
+package com.mokamrp.privates.mapper.data.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 企业
+ * </p>
+ *
+ * @author leon
+ * @since 2021-04-19
+ */
+@Data
+public class PanCSTQRecordTotal extends Model<PanCSTQRecordTotal>{
+
+    private Long timestamp;
+
+    private String uuid;
+
+    @TableField(exist = false)
+    private Integer cnt;
+
+    @TableField(exist = false)
+    private LocalDateTime date;
+
+}

+ 9 - 3
src/main/java/com/mokamrp/privates/service/data/PanCSLTRecordService.java

@@ -2,7 +2,7 @@ package com.mokamrp.privates.service.data;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecord;
-import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordDayTotal;
+import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordTotal;
 
 import java.time.LocalDateTime;
 import java.util.List;
@@ -10,7 +10,13 @@ import java.util.List;
 public interface PanCSLTRecordService extends IService<PanCSLTRecord> {
     //.获取客服码长按次数
     public List<PanCSLTRecord> getCustserviceLongTouchPv();
-    //.获取长按识别每天PV
-    public List<PanCSLTRecordDayTotal> getLongTouchPvByDay(LocalDateTime startDate, LocalDateTime endDate, Integer gapDay);
+    //.获取长按识别指定范围的PV数据(天)
+    public List<PanCSLTRecordTotal> getLongTouchPvByDay(LocalDateTime startDate, LocalDateTime endDate, Integer gapDay);
+    //.获取长按识别指定范围的UV数据(天)
+    public List<PanCSLTRecordTotal> getLongTouchUvByDay(LocalDateTime startDate, LocalDateTime endDate, Integer gapDay);
+    //.获取长按识别指定范围的PV数据(小时)
+    public List<PanCSLTRecordTotal> getLongTouchPvByHour(LocalDateTime startDate, LocalDateTime endDate, Integer gapHour);
+    //.获取长按识别指定范围的UV数据(小时)
+    public List<PanCSLTRecordTotal> getLongTouchUvByHour(LocalDateTime startDate, LocalDateTime endDate, Integer gapHour);
 
 }

+ 4 - 0
src/main/java/com/mokamrp/privates/service/data/PanCSTQRecordService.java

@@ -2,11 +2,15 @@ package com.mokamrp.privates.service.data;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.mapper.data.pojo.PanCSTQRecord;
+import com.mokamrp.privates.mapper.data.pojo.PanCSTQRecordTotal;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 public interface PanCSTQRecordService extends IService<PanCSTQRecord> {
     //.获取客服码扫码次数
     public List<PanCSTQRecord> getCustserviceTakeQrcodePv();
+    public List<PanCSTQRecordTotal> getTakeQRPvByDay(LocalDateTime startDate, LocalDateTime endDate, Integer gapDay);
+    public List<PanCSTQRecordTotal> getTakeQRUvByDay(LocalDateTime startDate, LocalDateTime endDate, Integer gapDay);
 
 }

+ 94 - 11
src/main/java/com/mokamrp/privates/service/data/impl/PanCSLTRecordServiceImpl.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mokamrp.privates.mapper.data.PanCSLTRecordMapper;
 import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecord;
-import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordDayTotal;
+import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecordTotal;
 import com.mokamrp.privates.service.data.PanCSLTRecordService;
 import org.apache.tomcat.jni.Local;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,22 +38,29 @@ public class PanCSLTRecordServiceImpl extends ServiceImpl<PanCSLTRecordMapper, P
         return res;
     }
 
-    public List<PanCSLTRecordDayTotal> getLongTouchPvByDay(LocalDateTime startDate,LocalDateTime endDate,Integer gapDay){
-        List<PanCSLTRecordDayTotal> dataList = new ArrayList<>();
+    /**
+     * 指定时间范围内,天为单位的长按数据PV
+     * @param startDate
+     * @param endDate
+     * @param gapDay
+     * @return
+     */
+    public List<PanCSLTRecordTotal> getLongTouchPvByDay(LocalDateTime startDate,LocalDateTime endDate,Integer gapDay){
+        List<PanCSLTRecordTotal> dataList = new ArrayList<>();
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         //.查询时间段内所有数据
-        List<PanCSLTRecordDayTotal> res = panCSLTRecordMapper.getDayPvTotal(startDate.plusDays(-1).toEpochSecond(ZoneOffset.of("+8")),endDate.toEpochSecond(ZoneOffset.of("+8")));
+        List<PanCSLTRecordTotal> res = panCSLTRecordMapper.getDayPvTotal(startDate.plusDays(-1).toEpochSecond(ZoneOffset.of("+8")),endDate.toEpochSecond(ZoneOffset.of("+8")));
         for (Integer i = -1;i<gapDay;i++) {
             Long date1 = startDate.plusDays(i).toEpochSecond(ZoneOffset.of("+8"));
             LocalDateTime localDate2 =  startDate.plusDays(i+1);
             Long date2 = startDate.plusDays(i+1).toEpochSecond(ZoneOffset.of("+8"));
             Integer cnt = 0;
-            for(PanCSLTRecordDayTotal data : res) {
+            for(PanCSLTRecordTotal data : res) {
                 if (data.getTimestamp() >= date1 && data.getTimestamp() <= date2){
                     cnt++;
                 }
             }
-            PanCSLTRecordDayTotal total = new PanCSLTRecordDayTotal();
+            PanCSLTRecordTotal total = new PanCSLTRecordTotal();
             total.setCnt(cnt);
             total.setDate(localDate2);
             dataList.add(total);
@@ -61,26 +68,102 @@ public class PanCSLTRecordServiceImpl extends ServiceImpl<PanCSLTRecordMapper, P
         return dataList;
     }
 
-    public List<PanCSLTRecordDayTotal> getLongTouchUvByDay(LocalDateTime startDate,LocalDateTime endDate,Integer gapDay){
-        List<PanCSLTRecordDayTotal> dataList = new ArrayList<>();
+    /**
+     * 指定时间范围内,天为单位的长按数据UV
+     * @param startDate
+     * @param endDate
+     * @param gapDay
+     * @return
+     */
+    public List<PanCSLTRecordTotal> getLongTouchUvByDay(LocalDateTime startDate,LocalDateTime endDate,Integer gapDay){
+        List<PanCSLTRecordTotal> dataList = new ArrayList<>();
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         //.查询时间段内所有数据
-        List<PanCSLTRecordDayTotal> res = panCSLTRecordMapper.getDayUvTotal(startDate.plusDays(-1).toEpochSecond(ZoneOffset.of("+8")),endDate.toEpochSecond(ZoneOffset.of("+8")));
+        List<PanCSLTRecordTotal> res = panCSLTRecordMapper.getDayUvTotal(startDate.plusDays(-1).toEpochSecond(ZoneOffset.of("+8")),endDate.toEpochSecond(ZoneOffset.of("+8")));
         for (Integer i = -1;i<gapDay;i++) {
             Long date1 = startDate.plusDays(i).toEpochSecond(ZoneOffset.of("+8"));
             LocalDateTime localDate2 =  startDate.plusDays(i+1);
             Long date2 = startDate.plusDays(i+1).toEpochSecond(ZoneOffset.of("+8"));
             Integer cnt = 0;
             Map<String,Boolean> uuidRecord = new HashMap<>();
-            for(PanCSLTRecordDayTotal data : res) {
+            for(PanCSLTRecordTotal data : res) {
                 if (data.getTimestamp() >= date1 && data.getTimestamp() <= date2){
+                    if (data.getUuid() == null){
+                        continue;
+                    }
+                    if (uuidRecord.get(data.getUuid()) == null){
+                        cnt++;
+                        uuidRecord.put(data.getUuid(),true);
+                    }
+                }
+            }
+            PanCSLTRecordTotal total = new PanCSLTRecordTotal();
+            total.setCnt(cnt);
+            total.setDate(localDate2);
+            dataList.add(total);
+        }
+        return dataList;
+    }
+
+    /**
+     * 指定时间范围内,小时为单位的长按数据PV
+     * @param startDate
+     * @param endDate
+     * @param gapHour
+     * @return
+     */
+    public List<PanCSLTRecordTotal> getLongTouchPvByHour(LocalDateTime startDate, LocalDateTime endDate, Integer gapHour){
+        List<PanCSLTRecordTotal> dataList = new ArrayList<>();
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        //.查询时间段内所有数据
+        List<PanCSLTRecordTotal> res = panCSLTRecordMapper.getDayPvTotal(startDate.plusHours(-1).toEpochSecond(ZoneOffset.of("+8")),endDate.toEpochSecond(ZoneOffset.of("+8")));
+        for (Integer i = -1;i<gapHour;i++) {
+            Long date1 = startDate.plusHours(i).toEpochSecond(ZoneOffset.of("+8"));
+            LocalDateTime localDate2 =  startDate.plusHours(i+1);
+            Long date2 = startDate.plusHours(i+1).toEpochSecond(ZoneOffset.of("+8"));
+            Integer cnt = 0;
+            for(PanCSLTRecordTotal data : res) {
+                if (data.getTimestamp() >= date1 && data.getTimestamp() <= date2){
+                    cnt++;
+                }
+            }
+            PanCSLTRecordTotal total = new PanCSLTRecordTotal();
+            total.setCnt(cnt);
+            total.setDate(localDate2);
+            dataList.add(total);
+        }
+        return dataList;
+    }
+    /**
+     * 指定时间范围内,小时为单位的长按数据UV
+     * @param startDate
+     * @param endDate
+     * @param gapHour
+     * @return
+     */
+    public List<PanCSLTRecordTotal> getLongTouchUvByHour(LocalDateTime startDate,LocalDateTime endDate,Integer gapHour){
+        List<PanCSLTRecordTotal> dataList = new ArrayList<>();
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        //.查询时间段内所有数据
+        List<PanCSLTRecordTotal> res = panCSLTRecordMapper.getDayUvTotal(startDate.plusHours(-1).toEpochSecond(ZoneOffset.of("+8")),endDate.toEpochSecond(ZoneOffset.of("+8")));
+        for (Integer i = -1;i<gapHour;i++) {
+            Long date1 = startDate.plusHours(i).toEpochSecond(ZoneOffset.of("+8"));
+            LocalDateTime localDate2 =  startDate.plusHours(i+1);
+            Long date2 = startDate.plusHours(i+1).toEpochSecond(ZoneOffset.of("+8"));
+            Integer cnt = 0;
+            Map<String,Boolean> uuidRecord = new HashMap<>();
+            for(PanCSLTRecordTotal data : res) {
+                if (data.getTimestamp() >= date1 && data.getTimestamp() <= date2){
+                    if (data.getUuid() == null){
+                        continue;
+                    }
                     if (uuidRecord.get(data.getUuid()) == null){
                         cnt++;
                         uuidRecord.put(data.getUuid(),true);
                     }
                 }
             }
-            PanCSLTRecordDayTotal total = new PanCSLTRecordDayTotal();
+            PanCSLTRecordTotal total = new PanCSLTRecordTotal();
             total.setCnt(cnt);
             total.setDate(localDate2);
             dataList.add(total);

+ 78 - 3
src/main/java/com/mokamrp/privates/service/data/impl/PanCSTQRecordServiceImpl.java

@@ -3,18 +3,26 @@ package com.mokamrp.privates.service.data.impl;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.mokamrp.privates.mapper.data.PanCSLTRecordMapper;
 import com.mokamrp.privates.mapper.data.PanCSTQRecordMapper;
-import com.mokamrp.privates.mapper.data.pojo.PanCSLTRecord;
 import com.mokamrp.privates.mapper.data.pojo.PanCSTQRecord;
-import com.mokamrp.privates.service.data.PanCSLTRecordService;
+import com.mokamrp.privates.mapper.data.pojo.PanCSTQRecordTotal;
 import com.mokamrp.privates.service.data.PanCSTQRecordService;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+
 @Service
 @DS("datadb")
 public class PanCSTQRecordServiceImpl  extends ServiceImpl<PanCSTQRecordMapper,PanCSTQRecord> implements PanCSTQRecordService {
+
+    public PanCSTQRecordMapper panCSTQRecordMapper;
+
     /**
      * 获取客服码扫码次数
      * @return
@@ -28,4 +36,71 @@ public class PanCSTQRecordServiceImpl  extends ServiceImpl<PanCSTQRecordMapper,P
         System.out.println(res);
         return res;
     }
+
+    /**
+     * 获取指定范围日期内 每一天的活码扫码数据PV记录
+     * @param startDate
+     * @param endDate
+     * @param gapDay
+     * @return
+     */
+    public List<PanCSTQRecordTotal> getTakeQRPvByDay(LocalDateTime startDate, LocalDateTime endDate, Integer gapDay){
+        List<PanCSTQRecordTotal> dataList = new ArrayList<>();
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        //.查询时间段内所有数据
+        List<PanCSTQRecordTotal> res = panCSTQRecordMapper.getDayPvTotal(startDate.plusDays(-1).toEpochSecond(ZoneOffset.of("+8")),endDate.toEpochSecond(ZoneOffset.of("+8")));
+        for (Integer i = -1;i<gapDay;i++) {
+            Long date1 = startDate.plusDays(i).toEpochSecond(ZoneOffset.of("+8"));
+            LocalDateTime localDate2 =  startDate.plusDays(i+1);
+            Long date2 = startDate.plusDays(i+1).toEpochSecond(ZoneOffset.of("+8"));
+            Integer cnt = 0;
+            for(PanCSTQRecordTotal data : res) {
+                if (data.getTimestamp() >= date1 && data.getTimestamp() <= date2){
+                    cnt++;
+                }
+            }
+            PanCSTQRecordTotal total = new PanCSTQRecordTotal();
+            total.setCnt(cnt);
+            total.setDate(localDate2);
+            dataList.add(total);
+        }
+        return dataList;
+    }
+
+    /**
+     * 获取指定范围日期内 每一天的活码扫码数据UV记录
+     * @param startDate
+     * @param endDate
+     * @param gapDay
+     * @return
+     */
+    public List<PanCSTQRecordTotal> getTakeQRUvByDay(LocalDateTime startDate, LocalDateTime endDate, Integer gapDay){
+        List<PanCSTQRecordTotal> dataList = new ArrayList<>();
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        //.查询时间段内所有数据
+        List<PanCSTQRecordTotal> res = panCSTQRecordMapper.getDayUvTotal(startDate.plusDays(-1).toEpochSecond(ZoneOffset.of("+8")),endDate.toEpochSecond(ZoneOffset.of("+8")));
+        for (Integer i = -1;i<gapDay;i++) {
+            Long date1 = startDate.plusDays(i).toEpochSecond(ZoneOffset.of("+8"));
+            LocalDateTime localDate2 =  startDate.plusDays(i+1);
+            Long date2 = startDate.plusDays(i+1).toEpochSecond(ZoneOffset.of("+8"));
+            Integer cnt = 0;
+            Map<String,Boolean> uuidRecord = new HashMap<>();
+            for(PanCSTQRecordTotal data : res) {
+                if (data.getTimestamp() >= date1 && data.getTimestamp() <= date2){
+                    if (data.getUuid() == null){
+                        continue;
+                    }
+                    if (uuidRecord.get(data.getUuid()) == null){
+                        cnt++;
+                        uuidRecord.put(data.getUuid(),true);
+                    }
+                }
+            }
+            PanCSTQRecordTotal total = new PanCSTQRecordTotal();
+            total.setCnt(cnt);
+            total.setDate(localDate2);
+            dataList.add(total);
+        }
+        return dataList;
+    }
 }

+ 1 - 1
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxMobileServiceImpl.java

@@ -114,7 +114,7 @@ public class FosterwxMobileServiceImpl extends ServiceImpl<FosterwxMobileMapper,
             fosterwxMobile.setCreateAt(nowDate);
             fosterwxMobile.setUpdateAt(nowDate);
             FosterwxStation stationInfo = fosterwxStationService.getOne(new QueryWrapper<FosterwxStation>()
-                    .eq("station_id",fosterwxMobile.getStationId()));
+                    .eq("id",fosterwxMobile.getStationId()));
             fosterwxMobile.setMobileUnioCode(stationInfo.getStationName() +  fosterwxMobile.getMobileCode());
             this.save(fosterwxMobile);
             //.批量录入微信好友

+ 3 - 2
src/main/java/com/mokamrp/privates/task/pangu/SyncFosterwxEdit.java

@@ -79,8 +79,9 @@ public class SyncFosterwxEdit {
                     fosterwxMobileLambdaQueryWrapper.eq(FosterwxMobile::getMobileCode, fosterwxMobile.getMobileCode());
                     if (fosterwxMobileService.count(fosterwxMobileLambdaQueryWrapper) > 0) continue;
                     FosterwxStation stationInfo = fosterwxStationService.getOne(new QueryWrapper<FosterwxStation>()
-                            .eq("station_id",fosterwxMobile.getStationId()));
-                    fosterwxMobile.setMobileUnioCode(stationInfo.getStationName() + String.format("%03d", Integer.parseInt(fosterwxMobile.getMobileCode())));
+                            .eq("id",fosterwxMobile.getStationId()));
+                    fosterwxMobile.setMobileCode( String.format("%03d", Integer.parseInt(fosterwxMobile.getMobileCode())));
+                    fosterwxMobile.setMobileUnioCode(stationInfo.getStationName() + fosterwxMobile.getMobileCode());
                     fosterwxMobile.setCreateAt(LocalDateTime.now());
                     fosterwxMobile.setUpdateAt(LocalDateTime.now());
                     fosterwxMobileService.save(fosterwxMobile);

+ 2 - 1
src/main/java/com/mokamrp/privates/task/pangu/SyncFosterwxStationEdit.java

@@ -60,7 +60,8 @@ public class SyncFosterwxStationEdit {
                 //.更新
                 fosterwxStationService.update(save, new QueryWrapper<FosterwxStation>().eq("id", fosterwxStation.getId()));
                 //.立刻更新账号REDIS
-                FosterwxStation stationInfo = fosterwxStationService.getOne(new QueryWrapper<FosterwxStation>().eq("id", fosterwxStation.getId()));
+                FosterwxStation stationInfo = fosterwxStationService.getOne(new QueryWrapper<FosterwxStation>()
+                        .eq("id", fosterwxStation.getId()));
                 stringRedisTemplate.opsForHash().put(RedisKey.PanWxFosterStationInfo,fosterwxStation.getId().toString(),JSONObject.toJSONString(stationInfo));
             } catch (InterruptedException ie) {
                 Thread.currentThread().interrupt();

+ 6 - 4
src/main/resources/application-local.properties

@@ -16,10 +16,12 @@ spring.datasource.dynamic.datasource.db.url=jdbc:mysql://172.18.71.27:3306/mocha
 spring.datasource.dynamic.datasource.db.username=typer
 spring.datasource.dynamic.datasource.db.password=jch9sh_shl
 #大数据数据库
-spring.datasource.dynamic.datasource.datadb.url=jdbc:postgresql://hgmc-cn-7mz27ayc6003-cn-shanghai.hologres.aliyuncs.com:80/galaxy
-spring.datasource.dynamic.datasource.datadb.username=LTAI5tEWU1j9H2poG4zWgfEP
-spring.datasource.dynamic.datasource.datadb.password=p9tVmeDeeEENKhfsBsSeYc0F0ggH5b
-spring.datasource.dynamic.datasource.datadb.driverClassName=org.postgresql.Driver
+spring.datasource.dynamic.datasource.datadb.driverClassName=com.mysql.cj.jdbc.Driver
+spring.datasource.dynamic.datasource.datadb.url=jdbc:mysql://rm-uf6uysb4ncki343q7go.mysql.rds.aliyuncs.com:3306/hera_data
+spring.datasource.dynamic.datasource.datadb.username=yangpeng_data_warehouse
+spring.datasource.dynamic.datasource.datadb.password=YangPeng_Data_War666$%Yp
+
+
 
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
 spring.jpa.properties.hibernate.hbm2ddl.auto=update