From 05372fd5f0eb8a0f5ed65e7691fe569dd3fbd9f0 Mon Sep 17 00:00:00 2001
From: fengjin <1435304038@qq.com>
Date: 星期六, 15 十月 2022 18:06:23 +0800
Subject: [PATCH] 1.修改bug 2.后台首页小程序统计

---
 flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml                |  160 ++++++++++++++++++++++++++++++++
 flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java        |    2 
 flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java        |   17 +++
 flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java          |   25 +++++
 flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java        |    2 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java |   27 +++++
 flower_city/src/main/java/com/dg/core/db/manual/pojo/AppletUserCount.java               |   22 ++++
 flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java                |   14 ++
 8 files changed, 266 insertions(+), 3 deletions(-)

diff --git a/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java b/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
index d37a4ed..e00f2cc 100644
--- a/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
+++ b/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
@@ -190,7 +190,7 @@
             wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,order);
             }
             else if (order.getSubmitType().equals(2)){
-                smsUtil.sendSmsComplete(order.getSubmitUserPhone(),order.getMatterName());
+                smsUtil.sendSmsComplete(order.getConsultUserPhone(),order.getMatterName());
             }
             //待评价
             order.setState("4");
diff --git a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
index 09503a3..3e47c92 100644
--- a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
+++ b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
@@ -236,7 +236,7 @@
                 wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,order);
             }
             else if (order.getSubmitType().equals(2)){
-                smsUtil.sendSmsComplete(order.getSubmitUserPhone(),order.getMatterName());
+                smsUtil.sendSmsComplete(order.getConsultUserPhone(),order.getMatterName());
             }
             order.setState("4");
             entity.setState("9");
diff --git a/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java b/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
index 567c294..7ea028a 100644
--- a/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
+++ b/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
@@ -2,6 +2,7 @@
 
 import com.dg.core.ResultData;
 import com.dg.core.db.gen.entity.*;
+import com.dg.core.db.manual.pojo.AppletUserCount;
 import com.dg.core.service.*;
 import com.dg.core.util.TableDataInfo;
 import io.swagger.annotations.Api;
@@ -43,6 +44,9 @@
 
     @Autowired
     IAreaCodeService iAreaCodeService;
+
+    @Autowired
+    private ISysUserRecordService iSysUserRecordService;
 
 
     @ApiOperation("首页统计不同状态工单数")
@@ -358,6 +362,27 @@
     }
 
 
+    /**
+     * 小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问
+     * @return
+     */
+    @ApiOperation(value = "导办工单按区域统计",response = AppletUserCount.class)
+    @GetMapping("/selectUserRecordCount")
+    public ResultData selectUserRecordCount(){
+        return  iSysUserRecordService.selectUserRecordCount();
+    }
+
+    /**
+     * 小程序用户访问量统计1.近15天 2.近30天 3.近一年
+     * @return
+     */
+    @ApiOperation(value = "小程序用户访问量统计1.近15天 2.近30天 3.近一年",response = AppletUserCount.class)
+    @GetMapping("/selectByDateType")
+    public ResultData selectByDateType(@RequestParam("dateType") Integer dateType){
+        return  iSysUserRecordService.selectByDateType(dateType);
+    }
+
+
 
 
 
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java
index 16d1531..84075a6 100644
--- a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java
@@ -2,6 +2,9 @@
 
 import com.dg.core.db.gen.entity.AutomessageSysUserRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dg.core.db.manual.pojo.AppletUserCount;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,28 @@
  */
 public interface AutomessageSysUserRecordMapper extends BaseMapper<AutomessageSysUserRecord> {
 
+    /**
+     * 小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问
+     * @return
+     */
+    List<AppletUserCount> selectUserRecordCount();
+
+    /**
+     * 小程序用户访问量统计近15天
+     * @return
+     */
+    List<AppletUserCount> selectByDay();
+
+    /**
+     * 小程序用户访问量统计近30天
+     * @return
+     */
+    List<AppletUserCount> selectByMonth();
+
+    /**
+     * 小程序用户访问量统计近一年
+     * @return
+     */
+    List<AppletUserCount> selectByYear();
+
 }
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/pojo/AppletUserCount.java b/flower_city/src/main/java/com/dg/core/db/manual/pojo/AppletUserCount.java
new file mode 100644
index 0000000..602dfb8
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/pojo/AppletUserCount.java
@@ -0,0 +1,22 @@
+package com.dg.core.db.manual.pojo;
+
+import com.dg.core.annotation.Authorization;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@ApiModel("小程序用户统计结果")
+@Data
+public class AppletUserCount {
+
+    @ApiModelProperty("日期,可以是月也可以是日")
+    private String date;
+
+    @ApiModelProperty("访问量")
+    private Long visits;
+
+    @ApiModelProperty("类型1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问量")
+    private Integer type;
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java b/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java
index 4d6131a..b0b2119 100644
--- a/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java
+++ b/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java
@@ -3,6 +3,7 @@
 import com.dg.core.ResultData;
 import com.dg.core.db.gen.entity.SysUser;
 
+
 public interface ISysUserRecordService {
 
     /**
@@ -11,4 +12,17 @@
      * @return 参数配置信息
      */
     ResultData add(SysUser sysUser);
+
+
+    /**
+     * 小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问
+     * @return
+     */
+    ResultData selectUserRecordCount();
+
+    /**
+     * 小程序用户访问量统计1.近15天 2.近30天 3.近一年
+     * @return
+     */
+    ResultData selectByDateType(Integer dateType);
 }
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java
index 1df2211..40a4143 100644
--- a/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java
+++ b/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dg.core.ResultData;
 import com.dg.core.db.gen.entity.AutomessageSysUserRecord;
-import com.dg.core.db.gen.entity.AutomessageTransactionEventInterview;
 import com.dg.core.db.gen.entity.SysUser;
 import com.dg.core.db.gen.mapper.AutomessageSysUserRecordMapper;
 import com.dg.core.db.gen.mapper.SysUserMapper;
@@ -43,4 +42,20 @@
         return null;
     }
 
+    @Override
+    public ResultData selectUserRecordCount() {
+        return ResultData.success(baseMapper.selectUserRecordCount());
+    }
+
+    @Override
+    public ResultData selectByDateType(Integer dateType) {
+        if (dateType.equals(1))
+            return ResultData.success(baseMapper.selectByDay());
+        if (dateType.equals(2))
+            return ResultData.success(baseMapper.selectByMonth());
+        if (dateType.equals(3))
+            return ResultData.success(baseMapper.selectByYear());
+        return null;
+    }
+
 }
diff --git a/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml b/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml
index 28ad48b..f3f7756 100644
--- a/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml
+++ b/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml
@@ -1,5 +1,165 @@
 <?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.dg.core.db.gen.mapper.AutomessageSysUserRecordMapper">
+    <resultMap type="com.dg.core.db.gen.entity.AutomessageSysUserRecord" id="AutomessageSysUserRecordResult">
+        <id     property="id"      column="id"      />
+        <id     property="userId"      column="user_id"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="joinType"      column="join_type"      />
+    </resultMap>
+
+    <sql id="selectAgreement">
+        select id,user_id,
+               (select user_name from automessage_sys_user where user_id=a.user_id)userName,
+               create_time,join_type FROM automessage_sys_user_record a
+    </sql>
+<!--    小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问-->
+    <select id="selectUserRecordCount"  resultType="com.dg.core.db.manual.pojo.AppletUserCount">
+        select count(*)visits,1 type  from  automessage_sys_user_record UNION
+        select count(*)visits,2 type  from  automessage_sys_user_record where year(create_time)=year(SYSDATE()) UNION
+        select count(*)visits,3 type  from  automessage_sys_user_record where DATE_FORMAT(create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) ,'%Y%m' ) UNION
+        select count(*)visits,4 type  from  automessage_sys_user_record where to_days(create_time) = to_days(now()) UNION
+        select count(*)visits,5 type  from  automessage_sys_user_record where TO_DAYS( SYSDATE() ) - TO_DAYS(create_time) = 1
+    </select>
+
+    <select id="selectByDay" resultType="com.dg.core.db.manual.pojo.AppletUserCount">
+        select d.date, IFNULL(T.score,0) visits from
+            (
+                SELECT CURDATE() AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 8 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 9 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 10 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 11 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 12 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 13 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 14 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 15 DAY) AS date
+            )  d
+                left join(
+                select DATE_FORMAT(create_time,'%Y-%m-%d')create_time, COUNT(*) as score
+                from automessage_sys_user_record
+                group by DATE_FORMAT(create_time,'%Y-%m-%d')
+            ) T on T.create_time = d.date
+        GROUP BY d.date
+    </select>
+
+    <select id="selectByMonth" resultType="com.dg.core.db.manual.pojo.AppletUserCount">
+        select d.date, IFNULL(T.score,0) visits from
+            (
+                SELECT CURDATE() AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 8 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 9 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 10 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 11 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 12 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 13 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 14 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 15 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 16 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 17 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 18 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 19 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 20 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 21 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 22 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 23 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 24 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 25 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 26 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 27 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 28 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 29 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 30 DAY) AS date
+            )  d
+                left join(
+                select DATE_FORMAT(create_time,'%Y-%m-%d')create_time, COUNT(*) as score
+                from automessage_sys_user_record
+                group by DATE_FORMAT(create_time,'%Y-%m-%d')
+            ) T on T.create_time = d.date
+        GROUP BY d.date
+    </select>
+
+    <select id="selectByYear" resultType="com.dg.core.db.manual.pojo.AppletUserCount">
+        select d.date, IFNULL(T.score,0) visits from
+            (
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 11 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 10 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 9 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 8 month),"%Y-%m")  date UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 7 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 6 month),"%Y-%m") date UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 5 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 4 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 3 month),"%Y-%m")  date UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 2 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 month),"%Y-%m") date UNION
+                select DATE_FORMAT(NOW(),"%Y-%m") FROM DUAL
+            )  d
+                left join(
+                select DATE_FORMAT(create_time,'%Y-%m')create_time, COUNT(*) as score
+                from automessage_sys_user_record
+                group by DATE_FORMAT(create_time,'%Y-%m')
+            ) T on T.create_time = d.date
+        GROUP BY d.date
+    </select>
 
 </mapper>

--
Gitblit v1.7.1