You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.3 KiB

package team
import (
"github.com/gin-gonic/gin"
"recook/internal/back"
"recook/internal/dbc"
"recook/internal/model/manage"
"recook/internal/model/user"
"recook/tools"
"time"
)
type statParams struct {
UserID uint `json:"userId" validate:"required"`
Month string `json:"month" validate:"required"`
Page uint `json:"page"`
Limit uint `json:"limit"`
}
func QueryPartnerSalesMonthStat(c *gin.Context) {
var p statParams
if err := tools.Params(&p, c); err != nil {
back.Fail(c, err.Error())
return
}
var sys manage.UserInfo
if err := dbc.DB.First(&sys, p.UserID).Error; err != nil {
back.Err(c, err.Error())
return
}
if sys.Role != 1 {
back.Fail(c, "仅超级管理员才可设置")
return
}
limit := 5
if p.Limit > 5 {
limit = int(p.Limit)
}
month, err := time.Parse("2006-01", p.Month)
if err != nil {
back.Fail(c, "时间无法解析")
return
}
var total uint
dbc.DB.Table((&user.PartnerSalesMonthStat{}).TableName()).
Where("month = ?", month.Format("2006-01")).Count(&total)
list := make([]user.PartnerSalesMonthStat, 0, 0)
dbc.DB.Limit(limit).Offset(limit*int(p.Page)).
Order("sales_amount desc").
Find(&list, "month = ?", month.Format("2006-01"))
back.Suc(c, "", gin.H{
"total": total,
"list": list,
})
}