Bläddra i källkod

增加数据统计

wangfei 6 år sedan
förälder
incheckning
a80e8e708e
4 ändrade filer med 243 tillägg och 2 borttagningar
  1. 127
    0
      log/common.log
  2. 1
    0
      models/model/ta_customer.go
  3. 110
    0
      models/statistics/statistics.go
  4. 5
    2
      service/customer/customer.go

+ 127
- 0
log/common.log Visa fil

@@ -2697,3 +2697,130 @@
2697 2697
 2018/09/11 14:15:33 [E] 用户没有设置默认案场
2698 2698
 2018/09/11 14:15:59 [E] 用户没有设置默认案场
2699 2699
 2018/09/11 14:16:44 [E] 用户没有设置默认案场
2700
+2018/09/11 14:26:31 [E] 用户没有设置默认案场
2701
+2018/09/11 14:26:34 [E] 用户没有设置默认案场
2702
+2018/09/11 14:26:53 [E] 用户没有设置默认案场
2703
+2018/09/11 14:27:39 [I] 请求远程接口: %!(EXTRA string=https://api.weixin.qq.com/cgi-bin/token?appid=wx7320287e057bbeee&grant_type=client_credential&secret=6e844dc2ade439545c47569ba1707673)
2704
+2018/09/11 14:27:39 [I] 远程请求结果:%!(EXTRA string={"access_token":"13_rEPC9o2S5Ncg2-rmVVwkzOyBFcjTQYc5u_kABdZpsOLYBE4Wzq2Cu7alJz-xeD23PHchO7SASZnlitrNDK4fUdldW6QmB94dqjLUJ_JOThybbzc4ww2JyYWOcGgL6idxLCpJZeaW_rul9SK9JUGbAEAVGS","expires_in":7200})
2705
+2018/09/11 14:27:39 [I] 接口返回结果: %!(EXTRA map[string]interface {}=map[access_token:13_rEPC9o2S5Ncg2-rmVVwkzOyBFcjTQYc5u_kABdZpsOLYBE4Wzq2Cu7alJz-xeD23PHchO7SASZnlitrNDK4fUdldW6QmB94dqjLUJ_JOThybbzc4ww2JyYWOcGgL6idxLCpJZeaW_rul9SK9JUGbAEAVGS expires_in:7200])
2706
+2018/09/11 14:29:48 [E] 用户没有设置默认案场
2707
+2018/09/11 14:29:55 [E] 用户没有设置默认案场
2708
+2018/09/11 14:30:04 [E] 用户没有设置默认案场
2709
+2018/09/11 14:30:38 [E] 用户没有设置默认案场
2710
+2018/09/11 14:32:17 [E] 用户没有设置默认案场
2711
+2018/09/11 14:32:40 [E] 用户没有设置默认案场
2712
+2018/09/11 14:33:21 [E] 用户没有设置默认案场
2713
+2018/09/11 14:33:54 [E] 用户没有设置默认案场
2714
+2018/09/11 14:38:48 [E] 用户没有设置默认案场
2715
+2018/09/11 14:47:06 [E] 用户没有设置默认案场
2716
+2018/09/11 14:47:08 [E] 用户没有设置默认案场
2717
+2018/09/11 14:47:08 [E] 用户没有设置默认案场
2718
+2018/09/11 14:47:10 [E] 用户没有设置默认案场
2719
+2018/09/11 14:48:23 [E] 解密 Base64 字串失败: illegal base64 data at input byte 0
2720
+2018/09/11 14:48:23 [E] 获取组织信息失败: 没有查询到机构信息
2721
+2018/09/11 14:48:23 [E] 用户没有设置默认案场
2722
+2018/09/11 14:48:25 [E] 用户没有设置默认案场
2723
+2018/09/11 14:48:25 [E] 用户没有设置默认案场
2724
+2018/09/11 14:49:41 [E] 用户没有设置默认案场
2725
+2018/09/11 14:50:00 [E] 用户没有设置默认案场
2726
+2018/09/11 14:50:04 [E] 用户没有设置默认案场
2727
+2018/09/11 14:50:08 [E] 用户没有设置默认案场
2728
+2018/09/11 14:57:52 [E] 用户没有设置默认案场
2729
+2018/09/11 14:58:11 [E] 用户没有设置默认案场
2730
+2018/09/11 14:58:53 [E] 用户没有设置默认案场
2731
+2018/09/11 14:59:05 [E] 用户没有设置默认案场
2732
+2018/09/11 14:59:21 [E] 用户没有设置默认案场
2733
+2018/09/11 14:59:26 [E] 用户没有设置默认案场
2734
+2018/09/11 15:19:15 [E] 用户没有设置默认案场
2735
+2018/09/11 15:20:50 [E] 用户没有设置默认案场
2736
+2018/09/11 15:22:14 [E] 用户没有设置默认案场
2737
+2018/09/11 15:22:14 [E] 用户没有设置默认案场
2738
+2018/09/11 15:22:15 [E] 用户没有设置默认案场
2739
+2018/09/11 15:22:15 [E] 用户没有设置默认案场
2740
+2018/09/11 15:22:19 [E] 用户没有设置默认案场
2741
+2018/09/11 15:23:59 [E] 用户没有设置默认案场
2742
+2018/09/11 15:25:01 [E] 用户没有设置默认案场
2743
+2018/09/11 15:37:01 [E] 用户没有设置默认案场
2744
+2018/09/11 15:37:37 [I] 请求远程接口: %!(EXTRA string=https://api.weixin.qq.com/cgi-bin/token?appid=wx7320287e057bbeee&grant_type=client_credential&secret=6e844dc2ade439545c47569ba1707673)
2745
+2018/09/11 15:37:37 [I] 远程请求结果:%!(EXTRA string={"access_token":"13_MhXWnAqHcTTlXBcY3B5li9hXD_ViskIoxwl4y7YnZpTZGoy9QhTJ--24YCYSzCp7Ya3c2LWviup_gWnxIFQGOBv_M671RVY7xjXZDzgO6lm2vnMuIdkChi028cxrKS0c263Ivdd-t086zWzPGGVdAAATTI","expires_in":7200})
2746
+2018/09/11 15:37:37 [I] 接口返回结果: %!(EXTRA map[string]interface {}=map[access_token:13_MhXWnAqHcTTlXBcY3B5li9hXD_ViskIoxwl4y7YnZpTZGoy9QhTJ--24YCYSzCp7Ya3c2LWviup_gWnxIFQGOBv_M671RVY7xjXZDzgO6lm2vnMuIdkChi028cxrKS0c263Ivdd-t086zWzPGGVdAAATTI expires_in:7200])
2747
+2018/09/11 15:37:53 [I] 请求远程接口: %!(EXTRA string=https://api.weixin.qq.com/cgi-bin/token?appid=wx7320287e057bbeee&grant_type=client_credential&secret=6e844dc2ade439545c47569ba1707673)
2748
+2018/09/11 15:37:53 [I] 远程请求结果:%!(EXTRA string={"access_token":"13_xbKe8E8EGLiXdRKw3B5li9hXD_ViskIoxwl4y7YnZpTZGoy9QhTJ--24YCaqG-3KDwiV921WvTJ4jaQCcFRoqizA1Dn6AFVQbWTTP-yfzo8Rn5a6aqAhc7rH6sUusDIbOlDRLt9j-SIFEDcIANBdAAAWJX","expires_in":7200})
2749
+2018/09/11 15:37:53 [I] 接口返回结果: %!(EXTRA map[string]interface {}=map[access_token:13_xbKe8E8EGLiXdRKw3B5li9hXD_ViskIoxwl4y7YnZpTZGoy9QhTJ--24YCaqG-3KDwiV921WvTJ4jaQCcFRoqizA1Dn6AFVQbWTTP-yfzo8Rn5a6aqAhc7rH6sUusDIbOlDRLt9j-SIFEDcIANBdAAAWJX expires_in:7200])
2750
+2018/09/11 15:40:25 [I] 请求远程接口: %!(EXTRA string=https://api.weixin.qq.com/cgi-bin/token?appid=wx7320287e057bbeee&grant_type=client_credential&secret=6e844dc2ade439545c47569ba1707673)
2751
+2018/09/11 15:40:25 [I] 远程请求结果:%!(EXTRA string={"access_token":"13_GfzcgjbXDNuI5gQnRouc5sin8BHZTUcYQXNEZupMTwlDQGySf9L35PZf2kRtdzgYj7hGZojZGXzmhgHmshMEIuNzhIgcO8RnLoWF2g28uxaGtbOIRuQu3gAFcExOSHky_V3j1X9HWAYrQ_0yGHGeAIACDC","expires_in":7200})
2752
+2018/09/11 15:40:25 [I] 接口返回结果: %!(EXTRA map[string]interface {}=map[access_token:13_GfzcgjbXDNuI5gQnRouc5sin8BHZTUcYQXNEZupMTwlDQGySf9L35PZf2kRtdzgYj7hGZojZGXzmhgHmshMEIuNzhIgcO8RnLoWF2g28uxaGtbOIRuQu3gAFcExOSHky_V3j1X9HWAYrQ_0yGHGeAIACDC expires_in:7200])
2753
+2018/09/11 15:50:29 [E] 用户没有设置默认案场
2754
+2018/09/11 15:50:31 [E] 用户没有设置默认案场
2755
+2018/09/11 15:55:28 [E] 用户没有设置默认案场
2756
+2018/09/11 15:55:32 [E] 用户没有设置默认案场
2757
+2018/09/11 15:55:35 [E] 用户没有设置默认案场
2758
+2018/09/11 15:56:24 [E] 用户没有设置默认案场
2759
+2018/09/11 15:56:26 [E] 用户没有设置默认案场
2760
+2018/09/11 15:56:26 [E] 用户没有设置默认案场
2761
+2018/09/11 15:56:26 [E] 用户没有设置默认案场
2762
+2018/09/11 15:56:27 [E] 用户没有设置默认案场
2763
+2018/09/11 15:56:27 [E] 用户没有设置默认案场
2764
+2018/09/11 15:56:27 [E] 用户没有设置默认案场
2765
+2018/09/11 15:56:33 [E] 解密 Base64 字串失败: illegal base64 data at input byte 0
2766
+2018/09/11 15:56:33 [E] 获取组织信息失败: 没有查询到机构信息
2767
+2018/09/11 15:56:33 [E] 用户没有设置默认案场
2768
+2018/09/11 15:57:08 [E] 用户没有设置默认案场
2769
+2018/09/11 15:57:08 [E] 用户没有设置默认案场
2770
+2018/09/11 15:57:08 [E] 用户没有设置默认案场
2771
+2018/09/11 15:57:22 [E] 解密 Base64 字串失败: illegal base64 data at input byte 0
2772
+2018/09/11 15:57:22 [E] 获取组织信息失败: 没有查询到机构信息
2773
+2018/09/11 15:57:22 [E] 用户没有设置默认案场
2774
+2018/09/11 15:57:32 [E] 用户没有设置默认案场
2775
+2018/09/11 15:57:32 [E] 用户没有设置默认案场
2776
+2018/09/11 15:57:32 [E] 用户没有设置默认案场
2777
+2018/09/11 15:57:32 [E] 用户没有设置默认案场
2778
+2018/09/11 15:57:39 [E] 解密 Base64 字串失败: illegal base64 data at input byte 0
2779
+2018/09/11 15:57:39 [E] 获取组织信息失败: 没有查询到机构信息
2780
+2018/09/11 15:57:39 [E] 用户没有设置默认案场
2781
+2018/09/11 15:58:57 [E] 用户没有设置默认案场
2782
+2018/09/11 15:59:00 [E] 用户没有设置默认案场
2783
+2018/09/11 15:59:00 [E] 用户没有设置默认案场
2784
+2018/09/11 15:59:00 [E] 用户没有设置默认案场
2785
+2018/09/11 15:59:01 [E] 用户没有设置默认案场
2786
+2018/09/11 15:59:01 [E] 用户没有设置默认案场
2787
+2018/09/11 15:59:01 [E] 用户没有设置默认案场
2788
+2018/09/11 15:59:14 [E] 用户没有设置默认案场
2789
+2018/09/11 15:59:14 [E] 用户没有设置默认案场
2790
+2018/09/11 15:59:14 [E] 用户没有设置默认案场
2791
+2018/09/11 15:59:40 [E] 用户没有设置默认案场
2792
+2018/09/11 15:59:40 [E] 用户没有设置默认案场
2793
+2018/09/11 15:59:40 [E] 用户没有设置默认案场
2794
+2018/09/11 15:59:40 [E] 用户没有设置默认案场
2795
+2018/09/11 15:59:47 [E] 解密 Base64 字串失败: illegal base64 data at input byte 0
2796
+2018/09/11 15:59:47 [E] 获取组织信息失败: 没有查询到机构信息
2797
+2018/09/11 15:59:47 [E] 用户没有设置默认案场
2798
+2018/09/11 16:03:38 [E] 用户没有设置默认案场
2799
+2018/09/11 16:07:00 [E] 用户没有设置默认案场
2800
+2018/09/11 16:11:44 [E] 用户没有设置默认案场
2801
+2018/09/11 16:16:41 [E] 用户没有设置默认案场
2802
+2018/09/11 16:16:58 [E] 用户没有设置默认案场
2803
+2018/09/11 16:17:14 [E] 用户没有设置默认案场
2804
+2018/09/11 16:19:37 [E] 用户没有设置默认案场
2805
+2018/09/11 16:26:10 [E] 用户没有设置默认案场
2806
+2018/09/11 16:26:13 [E] 用户没有设置默认案场
2807
+2018/09/11 16:26:15 [E] 用户没有设置默认案场
2808
+2018/09/11 16:28:05 [E] 用户没有设置默认案场
2809
+2018/09/11 16:28:10 [E] 用户没有设置默认案场
2810
+2018/09/11 16:28:53 [E] 用户没有设置默认案场
2811
+2018/09/11 16:29:49 [E] 用户没有设置默认案场
2812
+2018/09/11 16:29:59 [E] 用户没有设置默认案场
2813
+2018/09/11 16:30:54 [E] 用户没有设置默认案场
2814
+2018/09/11 16:31:08 [E] 用户没有设置默认案场
2815
+2018/09/11 16:31:17 [E] 用户没有设置默认案场
2816
+2018/09/11 16:32:10 [E] 用户没有设置默认案场
2817
+2018/09/11 16:32:12 [E] 用户没有设置默认案场
2818
+2018/09/11 16:32:25 [E] 用户没有设置默认案场
2819
+2018/09/11 16:32:39 [E] 用户没有设置默认案场
2820
+2018/09/11 16:32:53 [E] 用户没有设置默认案场
2821
+2018/09/11 16:34:10 [E] 用户没有设置默认案场
2822
+2018/09/11 16:34:10 [E] 用户没有设置默认案场
2823
+2018/09/11 16:59:57 [E] 用户没有设置默认案场
2824
+2018/09/11 17:00:53 [E] 用户没有设置默认案场
2825
+2018/09/11 17:01:40 [E] 用户没有设置默认案场
2826
+2018/09/11 17:02:35 [E] 用户没有设置默认案场

+ 1
- 0
models/model/ta_customer.go Visa fil

@@ -18,4 +18,5 @@ type TaCustomer struct {
18 18
 	CreateDate    time.Time `xorm:"DATETIME"`
19 19
 	Status        int       `xorm:"SMALLINT(6)"`
20 20
 	UserId        string    `xorm:"VARCHAR(64)"`
21
+	BindingDate   time.Time `xorm:"DATETIME"`
21 22
 }

+ 110
- 0
models/statistics/statistics.go Visa fil

@@ -0,0 +1,110 @@
1
+package statistics
2
+
3
+import (
4
+	"spaceofcheng/services/models"
5
+	"spaceofcheng/services/models/model"
6
+	"spaceofcheng/services/utils"
7
+	"strconv"
8
+	"strings"
9
+
10
+	"github.com/go-xorm/xorm"
11
+)
12
+
13
+// StatisticsDAO 当前数据库操作对象
14
+type StatisticsDAO struct {
15
+	ctx *utils.Context
16
+	db  *xorm.Session
17
+}
18
+
19
+// NewStatisticsDAO New Inst
20
+func NewStatisticsDAO(ctx *utils.Context) *StatisticsDAO {
21
+	return &StatisticsDAO{
22
+		ctx: ctx,
23
+		db:  ctx.DB,
24
+	}
25
+}
26
+
27
+// GetCustomerCount 获取会员总数
28
+func (m *StatisticsDAO) GetCustomerCount(orgid string) (int, error) {
29
+	var customers []model.TaCustomer
30
+	err := m.db.Where("org_id=?", orgid).And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&customers)
31
+	if err != nil {
32
+		return 0, err
33
+	}
34
+	return len(customers), nil
35
+}
36
+
37
+// GetCourseOrderCount 获取课程预约总量
38
+func (m *StatisticsDAO) GetCourseOrderCount(caseids string) (int64, error) {
39
+	var courses = new(model.TaCustomerCourse)
40
+	total, err := m.db.Where("case_id in ('"+strings.Replace(caseids, ",", "','", -1)+"')").And("status>"+strconv.Itoa(models.STATUS_DEL)).SumInt(courses, "course_num")
41
+	if err != nil {
42
+		return 0, err
43
+	}
44
+	return total, nil
45
+}
46
+
47
+// GetGoodsOrderCount 获取商品下单总量
48
+func (m *StatisticsDAO) GetGoodsOrderCount(caseids string) (int64, error) {
49
+	var goodsorder = new(model.TaGoodsOrders)
50
+	total, err := m.db.Where("case_id in ('"+strings.Replace(caseids, ",", "','", -1)+"')").And("status>"+strconv.Itoa(models.STATUS_DEL)).SumInt(goodsorder, "orders_num")
51
+	if err != nil {
52
+		return 0, err
53
+	}
54
+	return total, nil
55
+}
56
+
57
+// GetCustomerCountByDate 根据时间获取新增会员数量
58
+func (m *StatisticsDAO) GetCustomerCountByDate(caseids, begindate, enddate string) (int, error) {
59
+	var customers []model.TaCustomer
60
+	err := m.db.Where("recommend_case in ('" + strings.Replace(caseids, ",", "','", -1) + "')").And("binding_date BETWEEN '" + begindate + "' AND '" + enddate + "'").And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&customers)
61
+	if err != nil {
62
+		return 0, err
63
+	}
64
+	return len(customers), nil
65
+}
66
+
67
+// GetCoursesCountByDate 根据时间获取课程数
68
+func (m *StatisticsDAO) GetCoursesCountByDate(caseids, begindate, enddate string) (int, error) {
69
+	var details []model.TaCourseDetail
70
+	sql := `select a.* from ta_course_detail a inner join ta_course b on a.course_id=b.course_id where b.status=` + strconv.Itoa(models.STATUS_NORMAL)
71
+	sql += ` and a.case_id in ('` + strings.Replace(caseids, ",", "','", -1) + `') and a.begin_date  BETWEEN '` + begindate + `' AND '` + enddate + `'`
72
+	err := m.db.Sql(sql).Find(&details)
73
+	if err != nil {
74
+		return 0, err
75
+	}
76
+	return len(details), nil
77
+}
78
+
79
+// GetCourseOrderCountByDate 根据时间获取课程预约数量
80
+func (m *StatisticsDAO) GetCourseOrderCountByDate(caseids, begindate, enddate string) (int64, error) {
81
+	courses := new(model.TaCustomerCourse)
82
+	total, err := m.db.Where("case_id in ('"+strings.Replace(caseids, ",", "','", -1)+"')").And("status>"+strconv.Itoa(models.STATUS_DEL)).And("create_date BETWEEN '"+begindate+"' AND '"+enddate+"'").SumInt(courses, "course_num")
83
+	if err != nil {
84
+		return 0, err
85
+	}
86
+	return total, nil
87
+}
88
+
89
+// GetCourseVerifyCountByDate 根据时间获取课程核销人数
90
+func (m *StatisticsDAO) GetCourseVerifyCountByDate(caseids, begindate, enddate string) ([]model.TaCourseVerifcation, error) {
91
+	var courseVerify []model.TaCourseVerifcation
92
+	err := m.db.Where("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").And("status>" + strconv.Itoa(models.STATUS_DEL)).And("create_date BETWEEN '" + begindate + "' AND '" + enddate + "'").Find(&courseVerify)
93
+	return courseVerify, err
94
+}
95
+
96
+// GetGymVerifyCountByDate 根据时间获取健身卡核销人数
97
+func (m *StatisticsDAO) GetGymVerifyCountByDate(caseids, begindate, enddate string) ([]model.TaGymCardUsage, error) {
98
+	var gyms []model.TaGymCardUsage
99
+	err := m.db.Where("status>" + strconv.Itoa(models.STATUS_DEL)).And("use_case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").And("create_date BETWEEN '" + begindate + "' AND '" + enddate + "'").Find(&gyms)
100
+	return gyms, err
101
+}
102
+
103
+// GetGoodsOrderCountByDate 根据时间获取商品下单
104
+func (m *StatisticsDAO) GetGoodsOrderCountByDate(caseids, begindate, enddate string) ([]model.TaGoodsOrders, error) {
105
+	var goodsorder []model.TaGoodsOrders
106
+	err := m.db.Where("case_id in ('" + strings.Replace(caseids, ",", "','", -1) + "')").And("create_date BETWEEN '" + begindate + "' AND '" + enddate + "'").And("status>" + strconv.Itoa(models.STATUS_DEL)).Find(&goodsorder)
107
+	return goodsorder, err
108
+}
109
+
110
+//

+ 5
- 2
service/customer/customer.go Visa fil

@@ -9,6 +9,7 @@ import (
9 9
 	"spaceofcheng/services/service/events"
10 10
 	"spaceofcheng/services/utils"
11 11
 	"strconv"
12
+	"time"
12 13
 )
13 14
 
14 15
 // CustomerServ 系统处理
@@ -177,8 +178,9 @@ func (s *CustomerServ) BindWechatCust(userMap *model.TaUserMapping, phone, caseI
177 178
 		openid := wxInfo["openid"].(string)
178 179
 		customer, err := s.dao.GetCustWithWXByOpenID(openid)
179 180
 		newCust := model.TaCustomer{
180
-			CustomerId: customer.CustomerId,
181
-			Phone:      phone,
181
+			CustomerId:  customer.CustomerId,
182
+			Phone:       phone,
183
+			BindingDate: time.Now(),
182 184
 		}
183 185
 		// 校验案场信息
184 186
 		if caseID != "" {
@@ -218,6 +220,7 @@ func (s *CustomerServ) BindWechatCust(userMap *model.TaUserMapping, phone, caseI
218 220
 			"recommend_id",
219 221
 			"recommend_case",
220 222
 			"recommend_name",
223
+			"binding_date",
221 224
 		})
222 225
 		if err != nil {
223 226
 			utils.LogError(err.Error())