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
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,
|
|
})
|
|
}
|