1、优化"获取每日经营数据列表",入参增加排序字段;
This commit is contained in:
parent
c07d7d6722
commit
dc66375898
|
@ -43,7 +43,7 @@ func CreateOrUpdateBusinessSummary(c *gin.Context) {
|
|||
|
||||
var existing models.DailyBusinessSummary
|
||||
err = orm.Eloquent.
|
||||
Where("date = ? AND store_id = ?", summaryDate, req.StoreID).
|
||||
Where("date = ? AND store_id = ?", req.Date, req.StoreID).
|
||||
First(&existing).Error
|
||||
|
||||
if err != nil {
|
||||
|
|
|
@ -10,7 +10,9 @@ import (
|
|||
"go-admin/tools"
|
||||
"go-admin/tools/config"
|
||||
"math"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
@ -43,6 +45,7 @@ type BusinessSummaryListRequest struct {
|
|||
EndTime string `json:"end_time"` // 结束时间
|
||||
PageIndex int `json:"page_index"` // 当前页码
|
||||
PageSize int `json:"page_size"` // 每页条数
|
||||
SortType string `json:"sort_type"` // 排序类型:desc 降序、asc 升序
|
||||
}
|
||||
|
||||
type BusinessSummaryItem struct {
|
||||
|
@ -102,8 +105,8 @@ type MarketStoreSalesData struct {
|
|||
Count int64 `json:"count"` // 销售数量
|
||||
}
|
||||
|
||||
// parseToDate 解析多种格式的时间字符串,仅保留日期部分(年月日)
|
||||
func parseToDate(s string) (time.Time, error) {
|
||||
// ParseToDate 解析多种格式的时间字符串,仅保留日期部分(年月日)
|
||||
func ParseToDate(s string) (time.Time, error) {
|
||||
formats := []string{
|
||||
"2006-01-02", // 标准日期格式
|
||||
time.RFC3339, // 带时区时间戳 2025-05-20T00:00:00+08:00
|
||||
|
@ -134,8 +137,8 @@ func QueryListBusinessSummary(req *BusinessSummaryListRequest, c *gin.Context) (
|
|||
PageSize: req.PageSize,
|
||||
}
|
||||
|
||||
startDate, err1 := parseToDate(req.StartTime)
|
||||
endDate, err2 := parseToDate(req.EndTime)
|
||||
startDate, err1 := ParseToDate(req.StartTime)
|
||||
endDate, err2 := ParseToDate(req.EndTime)
|
||||
if err1 != nil || err2 != nil {
|
||||
return nil, errors.New("日期格式错误")
|
||||
}
|
||||
|
@ -148,6 +151,14 @@ func QueryListBusinessSummary(req *BusinessSummaryListRequest, c *gin.Context) (
|
|||
for d := startDate; !d.After(endDate); d = d.AddDate(0, 0, 1) {
|
||||
allDates = append(allDates, d.Format("2006-01-02"))
|
||||
}
|
||||
|
||||
// 根据排序方式进行调整
|
||||
if strings.ToLower(req.SortType) == "desc" {
|
||||
// 倒序排列
|
||||
for i, j := 0, len(allDates)-1; i < j; i, j = i+1, j-1 {
|
||||
allDates[i], allDates[j] = allDates[j], allDates[i]
|
||||
}
|
||||
}
|
||||
totalDays := len(allDates)
|
||||
|
||||
// 日期分页
|
||||
|
@ -217,7 +228,9 @@ func QueryListBusinessSummary(req *BusinessSummaryListRequest, c *gin.Context) (
|
|||
es = es.Where("store_id IN ?", req.StoreId)
|
||||
}
|
||||
|
||||
err := qs.Select("DATE_FORMAT(date, '%Y-%m-%d') AS date, " +
|
||||
var err error
|
||||
if req.SortType == "asc" {
|
||||
err = qs.Select("DATE_FORMAT(date, '%Y-%m-%d') AS date, " +
|
||||
"SUM(promotion_fee) AS promotion_fee, " +
|
||||
"SUM(sales_amount) AS sales_amount, " +
|
||||
"SUM(sales_profit) AS sales_profit, " +
|
||||
|
@ -226,6 +239,17 @@ func QueryListBusinessSummary(req *BusinessSummaryListRequest, c *gin.Context) (
|
|||
Group("date").
|
||||
Order("date ASC").
|
||||
Find(&dataList).Error
|
||||
} else {
|
||||
err = qs.Select("DATE_FORMAT(date, '%Y-%m-%d') AS date, " +
|
||||
"SUM(promotion_fee) AS promotion_fee, " +
|
||||
"SUM(sales_amount) AS sales_amount, " +
|
||||
"SUM(sales_profit) AS sales_profit, " +
|
||||
"SUM(staff_profit) AS staff_profit, " +
|
||||
"SUM(count) AS count").
|
||||
Group("date").
|
||||
Order("date DESC").
|
||||
Find(&dataList).Error
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -280,6 +304,17 @@ func QueryListBusinessSummary(req *BusinessSummaryListRequest, c *gin.Context) (
|
|||
}
|
||||
}
|
||||
|
||||
switch req.SortType {
|
||||
case "asc":
|
||||
sort.Slice(result, func(i, j int) bool {
|
||||
return result[i].Date < result[j].Date
|
||||
})
|
||||
case "desc":
|
||||
sort.Slice(result, func(i, j int) bool {
|
||||
return result[i].Date > result[j].Date
|
||||
})
|
||||
}
|
||||
|
||||
resp.List = result
|
||||
resp.Total = totalDays
|
||||
resp.PageIndex = req.PageIndex
|
||||
|
@ -392,7 +427,7 @@ func QueryDailyBusinessSummaryData(req *MarketStoreSalesDataReq, c *gin.Context)
|
|||
}
|
||||
err = qs.Select("store_id, " +
|
||||
"SUM(promotion_fee) AS promotion_fee, " +
|
||||
"SUM(sales_amount) AS total_sales_amount, " +
|
||||
"SUM(sales_amount) AS sales_amount, " +
|
||||
"SUM(sales_profit) AS sales_profit, " +
|
||||
"SUM(staff_profit) AS staff_profit, " +
|
||||
"SUM(count) AS count").
|
||||
|
|
Loading…
Reference in New Issue
Block a user