|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- package hdl
-
- import (
- "applet/app/admin/md"
- "applet/app/admin/svc"
- "applet/app/db"
- "applet/app/e"
- "applet/app/enum"
- "applet/app/utils"
- "applet/app/utils/cache"
- "encoding/json"
- "fmt"
- "github.com/gin-gonic/gin"
- "time"
- )
-
- func HomePageIndex(c *gin.Context) {
- now := time.Now()
- todayStart := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location()).Format("2006-01-02 15:04:05") //今日开始时间
- todayEnd := time.Date(now.Year(), now.Month(), now.Day()+1, 0, 0, 0, 0, now.Location()).Format("2006-01-02 15:04:05") //今日结束时间
- sql1 := fmt.Sprintf("SELECT sum(trade_amount) as total FROM self_support_for_school_ord where order_status = 2 and face_time >= '%s' and face_time < '%s'", todayStart, todayEnd) //统计今日"自营-学校"收益
- sql2 := fmt.Sprintf("SELECT sum(total_price) as total FROM central_kitchen_for_school_package_ord where state = 1 and create_at >= '%s' and create_at < '%s'", todayStart, todayEnd) //统计今日"央厨-学校"收益
- mapArr1, err := db.QueryNativeString(db.Db, sql1)
- if err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
- mapArr2, err := db.QueryNativeString(db.Db, sql2)
- if err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
- var result1, result2, todayIncome float64
- if mapArr1 != nil {
- result1 = utils.StrToFloat64(mapArr1[0]["total"])
- }
- if mapArr2 != nil {
- result2 = utils.StrToFloat64(mapArr2[0]["total"])
- }
- todayIncome = result1 + result2
-
- sql3 := fmt.Sprintf("SELECT COUNT(*) as total,kind FROM `enterprise` GROUP BY kind") //统计校企类型数量
- mapArr3, err := db.QueryNativeString(db.Db, sql3)
- if err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
-
- var totalCentralKitchenForSchoolNums, totalCentralKitchenForFactoryNums, totalSelfSupportForSchoolNums, totalSelfSupportForFactoryNums int
- if mapArr3 != nil {
- for _, v := range mapArr3 {
- if v["kind"] == utils.IntToStr(enum.EnterpriseKindByCentralKitchenForSchool) {
- totalCentralKitchenForSchoolNums = utils.StrToInt(v["total"])
- }
- if v["kind"] == utils.IntToStr(enum.EnterpriseKindByCentralKitchenForFactory) {
- totalCentralKitchenForFactoryNums = utils.StrToInt(v["total"])
- }
- if v["kind"] == utils.IntToStr(enum.EnterpriseKindBySelfSupportForSchool) {
- totalSelfSupportForSchoolNums = utils.StrToInt(v["total"])
- }
- if v["kind"] == utils.IntToStr(enum.EnterpriseKindBySelfSupportForFactory) {
- totalSelfSupportForFactoryNums = utils.StrToInt(v["total"])
- }
- }
- }
-
- var totalCentralKitchenForSchoolUserIdentityNums, totalCentralKitchenForFactoryUserIdentityNums, totalSelfSupportForSchoolUserIdentityNums, totalSelfSupportForFactoryUserIdentityNums int
- sql4 := fmt.Sprintf("select count(*) as total from `user_identity` where kind in (%d, %d) ", enum.UserIdentityForCentralKitchenForStudent, enum.UserIdentityForCentralKitchenForTeacher) //统计"央厨-学校"用户数
- sql5 := fmt.Sprintf("select count(*) as total from `user_identity` where kind in (%d, %d, %d) ", enum.UserIdentityForSelfSupportForStudent, enum.UserIdentityForSelfSupportForTeacher, enum.UserIdentityForSelfSupportForWorker) //统计"自营-学校"用户数
- mapArr4, err := db.QueryNativeString(db.Db, sql4)
- if err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
- if mapArr4 != nil {
- totalCentralKitchenForSchoolUserIdentityNums = utils.StrToInt(mapArr4[0]["total"])
- }
-
- mapArr5, err := db.QueryNativeString(db.Db, sql5)
- if err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
- if mapArr5 != nil {
- totalSelfSupportForSchoolUserIdentityNums = utils.StrToInt(mapArr4[0]["total"])
- }
-
- e.OutSuc(c, map[string]interface{}{
- "data": map[string]interface{}{
- "todayIncome": utils.Float64ToStr(todayIncome),
- "totalCentralKitchenForSchoolNums": totalCentralKitchenForSchoolNums,
- "totalCentralKitchenForFactoryNums": totalCentralKitchenForFactoryNums,
- "totalSelfSupportForSchoolNums": totalSelfSupportForSchoolNums,
- "totalSelfSupportForFactoryNums": totalSelfSupportForFactoryNums,
- "totalCentralKitchenForSchoolUserIdentityNums": totalCentralKitchenForSchoolUserIdentityNums,
- "totalCentralKitchenForFactoryUserIdentityNums": totalCentralKitchenForFactoryUserIdentityNums,
- "totalSelfSupportForSchoolUserIdentityNums": totalSelfSupportForSchoolUserIdentityNums,
- "totalSelfSupportForFactoryUserIdentityNums": totalSelfSupportForFactoryUserIdentityNums,
- },
- }, nil)
- return
- }
-
- func ThisWeekData(c *gin.Context) {
- now := time.Now()
- var list []map[string]interface{}
- for i := -6; i <= 0; i++ {
- day := now.AddDate(0, 0, i).Format("2006-01-02") //7日前
- dayStart := now.AddDate(0, 0, i).Format("2006-01-02")
- dayEnd := now.AddDate(0, 0, i+1).Format("2006-01-02")
- sql1 := fmt.Sprintf("SELECT sum(trade_amount) as total FROM self_support_for_school_ord where order_status = 2 and face_time >= '%s' and face_time < '%s'", dayStart, dayEnd) //统计今日"自营-学校"收益
- sql2 := fmt.Sprintf("SELECT sum(total_price) as total FROM central_kitchen_for_school_package_ord where state = 1 and create_at >= '%s' and create_at < '%s'", dayStart, dayEnd) //统计今日"央厨-学校"收益
- mapArr1, err := db.QueryNativeString(db.Db, sql1)
- if err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
- mapArr2, err := db.QueryNativeString(db.Db, sql2)
- if err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
- var result1, result2, todayIncome float64
- if mapArr1 != nil {
- result1 = utils.StrToFloat64(mapArr1[0]["total"])
- }
- if mapArr2 != nil {
- result2 = utils.StrToFloat64(mapArr2[0]["total"])
- }
- todayIncome = result1 + result2
- list = append(list, map[string]interface{}{
- "date": day,
- "income": todayIncome,
- })
- }
-
- e.OutSuc(c, map[string]interface{}{
- "data": list,
- }, nil)
- return
- }
-
- func ThisMonthData(c *gin.Context) {
- var list []map[string]interface{}
- admin := svc.GetUser(c)
- cacheKey := fmt.Sprintf(md.AdminHomePageDataKey, utils.GetIP(c.Request), utils.AnyToString(admin.AdmId))
- var adminHomePageDataString string
- adminHomePageDataString, _ = cache.GetString(cacheKey)
- if adminHomePageDataString != "" {
- if err := json.Unmarshal([]byte(adminHomePageDataString), &list); err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
- } else {
- now := time.Now()
- for i := -29; i <= 0; i++ {
- day := now.AddDate(0, 0, i).Format("2006-01-02") //7日前
- dayStart := now.AddDate(0, 0, i).Format("2006-01-02 15:04:05")
- dayEnd := now.AddDate(0, 0, i+1).Format("2006-01-02 15:04:05")
- sql1 := fmt.Sprintf("SELECT count(*) as total FROM self_support_for_school_ord where order_status = 2 and face_time >= '%s' and face_time < '%s'", dayStart, dayEnd) //统计今日"自营-学校"收益
- sql2 := fmt.Sprintf("SELECT count(*) as total FROM central_kitchen_for_school_package_ord where state = 1 and create_at >= '%s' and create_at < '%s'", dayStart, dayEnd) //统计今日"央厨-学校"收益
- mapArr1, err := db.QueryNativeString(db.Db, sql1)
- if err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
- mapArr2, err := db.QueryNativeString(db.Db, sql2)
- if err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
- var result1, result2 int
- if mapArr1 != nil {
- result1 = utils.StrToInt(mapArr1[0]["total"])
- }
- if mapArr2 != nil {
- result2 = utils.StrToInt(mapArr2[0]["total"])
- }
- list = append(list, map[string]interface{}{
- "date": day,
- "self_support_for_school": result1,
- "central_kitchen_for_school": result2,
- })
- }
- marshal, err := json.Marshal(list)
- if err != nil {
- e.OutErr(c, e.ERR, err.Error())
- return
- }
- adminHomePageDataString = string(marshal)
- _, err = cache.SetEx(cacheKey, adminHomePageDataString, md.AdminHomePageDataCacheTime)
- }
-
- e.OutSuc(c, map[string]interface{}{
- "data": list,
- }, nil)
- return
- }
|