|
|
@@ -0,0 +1,191 @@ |
|
|
|
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 |
|
|
|
} |