|
|
@@ -0,0 +1,95 @@
|
|
|
+package fohow_user_controller
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "fohow-statement-api/models"
|
|
|
+ "github.com/astaxie/beego"
|
|
|
+ "strconv"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+type FohowUserGrouthController struct {
|
|
|
+ beego.Controller
|
|
|
+}
|
|
|
+
|
|
|
+// @Title Get
|
|
|
+// @Description get d5c's user_grouth : FOHOW平台的近六月的用户增长(注册用户,新代理)
|
|
|
+// @Param Authorization header string true "格式: Token XXXXXX"
|
|
|
+// @Success 200 {object} Ret
|
|
|
+// @router / [get]
|
|
|
+func (self *FohowUserGrouthController) Get() {
|
|
|
+
|
|
|
+ type Ret struct {
|
|
|
+ Months []string `json:"months"` //最近6个月
|
|
|
+ MonthNewUsers []int64 `json:"month_users"` //每月新增粉丝用户
|
|
|
+ MonthNewInvestUsers []int64 `json:"month_invest_users"` //每月新增代理
|
|
|
+ MonthNewShopUsers []int64 `json:"month_shop_users"` //每月新增店长
|
|
|
+ MonthTotalOrders []int64 `json:"month_total_orders"` //每月订单总额
|
|
|
+ }
|
|
|
+ now := time.Now()
|
|
|
+ startTime := now.AddDate(0, -5, 0) //前五个月
|
|
|
+ endTime := now.AddDate(0, 1, 0)
|
|
|
+
|
|
|
+ // 2017-10-01 00:00:00 前五个月的第一天
|
|
|
+ start := time.Date(startTime.Year(), startTime.Month(), 1, 0, 0, 0, 0, time.Local)
|
|
|
+ // 2018-03-01 00:00:00 下一个月的第一天
|
|
|
+ end := time.Date(endTime.Year(), endTime.Month(), 1, 0, 0, 0, 0, time.Local)
|
|
|
+
|
|
|
+ beego.BeeLogger.Warn("getting fohow's user_grouth: %s, %s", start.Format("2006-01-02"), end.Format("2006-01-02"))
|
|
|
+
|
|
|
+ var months []string
|
|
|
+ var monthNewUsers []int64
|
|
|
+ var monthNewInvestUsers []int64
|
|
|
+ var monthNewShops []int64
|
|
|
+ var monthNewTotalOrders []int64
|
|
|
+
|
|
|
+ monthNewUserList := models.GetFohowMonthNewUsers(start.Format("2006-01-02"), end.Format("2006-01-02"))
|
|
|
+
|
|
|
+ monthNewInvestUserList := models.GetFohowRankMonthNewUsers(start, end)
|
|
|
+ monthNewShopList := models.GetFohowMonthNewShops(start.Format("2006-01-02"), end.Format("2006-01-02"))
|
|
|
+
|
|
|
+ monthNewOrderLists := models.GetFohowMonthNewOrderTotals(start.Format("2006-01-02"), end.Format("2006-01-02"))
|
|
|
+
|
|
|
+ for i := 0; i < 6; i++ {
|
|
|
+
|
|
|
+ month := start.AddDate(0, i, 0).Month()
|
|
|
+
|
|
|
+ months = append(months, fmt.Sprintf("%d月", month))
|
|
|
+
|
|
|
+ ym := start.AddDate(0, i, 0).Format("200601")
|
|
|
+
|
|
|
+ ymInt, _ := strconv.ParseInt(ym, 0, 64)
|
|
|
+
|
|
|
+ if tmp := models.YearMonthIsContainInList(ymInt, monthNewUserList); tmp != nil {
|
|
|
+
|
|
|
+ monthNewUsers = append(monthNewUsers, tmp.Count)
|
|
|
+ } else {
|
|
|
+ monthNewUsers = append(monthNewUsers, 0)
|
|
|
+ }
|
|
|
+
|
|
|
+ if tmp := models.YearMonthIsContainInList(ymInt, monthNewInvestUserList); tmp != nil {
|
|
|
+ monthNewInvestUsers = append(monthNewInvestUsers, tmp.Count)
|
|
|
+ } else {
|
|
|
+ monthNewInvestUsers = append(monthNewInvestUsers, 0)
|
|
|
+ }
|
|
|
+ if tmp := models.YearMonthIsContainInList(ymInt, monthNewShopList); tmp != nil {
|
|
|
+
|
|
|
+ monthNewShops = append(monthNewShops, tmp.Count)
|
|
|
+ } else {
|
|
|
+ monthNewShops = append(monthNewShops, 0)
|
|
|
+ }
|
|
|
+ if tmp := models.YearMonthIsContainInList(ymInt, monthNewOrderLists); tmp != nil {
|
|
|
+
|
|
|
+ monthNewTotalOrders = append(monthNewTotalOrders, tmp.Count)
|
|
|
+ } else {
|
|
|
+ monthNewTotalOrders = append(monthNewTotalOrders, 0)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ beego.BeeLogger.Warn("geted fohow's user_grouth: %s, %s", start.Format("2006-01-02"), end.Format("2006-01-02"))
|
|
|
+
|
|
|
+ self.Data["json"] = &Ret{Months: months, MonthNewUsers: monthNewUsers, MonthNewInvestUsers: monthNewInvestUsers, MonthNewShopUsers: monthNewShops, MonthTotalOrders: monthNewTotalOrders}
|
|
|
+ self.ServeJSON()
|
|
|
+
|
|
|
+}
|