|
- package hdl
-
- import (
- "applet/app/db"
- "applet/app/e"
- "applet/app/utils"
- "fmt"
- "github.com/gin-gonic/gin"
- "time"
- )
-
- func HomeIndex(c *gin.Context) {
- now := time.Now()
-
- //1、统计公司数量
- mapArr1, err := db.QueryNativeString(db.Db, "SELECT COUNT(*) AS total FROM `company`")
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
-
- //2、统计校企数量
- mapArr2, err := db.QueryNativeString(db.Db, "SELECT COUNT(*) AS total FROM `enterprise`")
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
-
- //3、统计订单付款金额
- mapArr3, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT SUM(amount) AS total FROM `order` where create_at >='%s' and state != 5", now.AddDate(0, -3, 0).Format("2006-01-02 15:04:05")))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
-
- //4、统计订单取消金额
- mapArr4, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT SUM(amount) as total FROM `order` AS total where create_at >='%s' and state = 5", now.AddDate(0, -3, 0).Format("2006-01-02 15:04:05")))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
-
- var result1, result2, result3, result4 float64
- if mapArr1 != nil {
- result1 = utils.StrToFloat64(mapArr1[0]["total"])
- }
- if mapArr2 != nil {
- result2 = utils.StrToFloat64(mapArr2[0]["total"])
- }
- if mapArr3 != nil {
- result3 = utils.StrToFloat64(mapArr3[0]["total"])
- }
- if mapArr4 != nil {
- result4 = utils.StrToFloat64(mapArr4[0]["total"])
- }
- e.OutSuc(c, map[string]interface{}{
- "company_total_nums": result1,
- "enterprise_total_nums": result2,
- "order_total_amount_for_success": result3,
- "order_total_amount_for_cancel": result4,
- }, nil)
- return
- }
-
- func RepayBehaviorAnalysis(c *gin.Context) {
- now := time.Now()
-
- //1、统计订单数据
- mapArr1, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT COUNT(*) AS total, enterprise_id FROM `order` where create_at >='%s' and create_at < '%s' GROUP BY enterprise_id", now.AddDate(0, -3, 0).Format("2006-01-02 15:04:05"), now.Format("2006-01-02 15:04:05")))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
-
- //2、数据整理
- var dataMap = map[int]float64{}
- var totalNUms = len(mapArr1)
- for _, v := range mapArr1 {
- dataMap[utils.StrToInt(v["total"])]++
- }
-
- //3、数据计算
- var result []map[string]interface{}
- for k, v := range dataMap {
- result = append(result, map[string]interface{}{
- "key": utils.IntToStr(k) + "次购买",
- "value": v / float64(totalNUms),
- })
- }
- e.OutSuc(c, map[string]interface{}{
- "result": result,
- }, nil)
- return
- }
-
- func OperationalDataStatistics(c *gin.Context) {
- startDate := c.DefaultQuery("start_date", "")
- endDate := c.DefaultQuery("end_date", "")
- if startDate == "" || endDate == "" {
- e.OutErr(c, e.ERR_INVALID_ARGS, "时间范围不能为空")
- return
- }
-
- now := time.Now()
- //1、商品数量
- mapArr1, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT COUNT(*) AS total FROM `goods` where create_at >='%s' and create_at < '%s'", startDate, endDate))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
- mapArr11, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT COUNT(*) AS total FROM `goods`"))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
-
- //2、订单数量
- mapArr2, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT COUNT(*) AS total FROM `order` where create_at >='%s' and create_at < '%s'", startDate, endDate))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
- mapArr22, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT COUNT(*) AS total FROM `order` where create_at >='%s' and create_at < '%s'", now.AddDate(0, -3, 0).Format("2006-01-02 15:04:05"), now.Format("2006-01-02 15:04:05")))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
-
- //3、统计订单付款金额
- mapArr3, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT SUM(amount) AS total FROM `order` where create_at >='%s' and create_at < '%s' and state != 5", startDate, endDate))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
- mapArr33, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT SUM(amount) as total FROM `order` AS total where create_at >='%s' and create_at < '%s' and state != 5", now.AddDate(0, -3, 0).Format("2006-01-02 15:04:05"), now.Format("2006-01-02 15:04:05")))
- fmt.Println(fmt.Sprintf("SELECT SUM(amount) as total FROM `order` AS total where create_at >='%s' and create_at < '%s' and state != 5", now.AddDate(0, -3, 0).Format("2006-01-02 15:04:05"), now.Format("2006-01-02 15:04:05")))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
-
- //4、统计订单取消金额
- mapArr4, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT SUM(amount) AS total FROM `order` where create_at >='%s' and create_at < '%s' and state = 5", startDate, endDate))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
- mapArr44, err := db.QueryNativeString(db.Db, fmt.Sprintf("SELECT SUM(amount) as total FROM `order` AS total where create_at >='%s' and create_at < '%s' and state = 5", now.AddDate(0, -3, 0).Format("2006-01-02 15:04:05"), now.Format("2006-01-02 15:04:05")))
- if err != nil {
- e.OutErr(c, e.ERR_DB_ORM, err.Error())
- return
- }
-
- var result1, result2, result3, result4, result11, result22, result33, result44 float64
- if mapArr1 != nil {
- result1 = utils.StrToFloat64(mapArr1[0]["total"])
- }
- if mapArr2 != nil {
- result2 = utils.StrToFloat64(mapArr2[0]["total"])
- }
- if mapArr3 != nil {
- result3 = utils.StrToFloat64(mapArr3[0]["total"])
- }
- if mapArr4 != nil {
- result4 = utils.StrToFloat64(mapArr4[0]["total"])
- }
- if mapArr11 != nil {
- result11 = utils.StrToFloat64(mapArr11[0]["total"])
- }
- if mapArr22 != nil {
- result22 = utils.StrToFloat64(mapArr22[0]["total"])
- }
- if mapArr33 != nil {
- result33 = utils.StrToFloat64(mapArr33[0]["total"])
- }
- if mapArr44 != nil {
- result44 = utils.StrToFloat64(mapArr44[0]["total"])
- }
-
- e.OutSuc(c, map[string]interface{}{
- "goods_increase_value": result1,
- "goods_total_value": result11,
- "order_increase_value": result2,
- "order_total_value": result22,
- "success_order_total_amount_increase_value": result3,
- "success_order_total_amount_total_value": result33,
- "cancel_order_total_amount_increase_value": result4,
- "cancel_order_total_amount_total_value": result44,
- }, nil)
- return
- }
|