首页订单数量 es请求优化

This commit is contained in:
97694731 2026-07-02 10:41:56 +08:00
parent 0e7879a9c1
commit 5e638b826d
4 changed files with 18 additions and 9 deletions

View File

@ -72,6 +72,7 @@ type ExternalAPIConfig struct {
SyncTaskURL string `yaml:"sync_task_url"`
SyncTaskBodyURL string `yaml:"sync_task_body_url"`
ESUpdateBookURL string `yaml:"es_update_book_url"`
ESSearchBookURL string `yaml:"es_search_book_url"`
Timeout int `yaml:"timeout"`
}

View File

@ -119,7 +119,7 @@ func createTenantDB(dbName string) (*gorm.DB, error) {
sqlDB.SetConnMaxLifetime(10 * time.Minute) // 单个连接最大存活10分钟
sqlDB.SetConnMaxIdleTime(2 * time.Minute) // 空闲连接2分钟后关闭
migrateTenantTables(tenantDB)
//migrateTenantTables(tenantDB)
return tenantDB, nil
}

View File

@ -9,6 +9,7 @@ import (
"io"
"log"
"net/http"
"psi/config"
"psi/database"
"psi/models"
systemReq "psi/models/request"
@ -25,7 +26,8 @@ func (s *BookService) GetBookInfo(req systemReq.BookRequest) (*systemRes.ESBook,
// 调用ES接口
isbn := req.Isbn
log.Printf("[GetBookInfo] 请求 ISBN: %s", isbn)
apiURL := fmt.Sprintf("https://book.center.yushutx.com/api/es/searchByISBNtoPsi?isbn=%s", isbn)
apiURL := fmt.Sprintf("%s?isbn=%s", config.AppConfig.ExternalAPI.ESSearchBookURL, isbn)
log.Printf("[GetBookInfo] 请求 URL: %s", apiURL)
resp, err := http.Get(apiURL)
if err != nil {
return nil, fmt.Errorf("[ERROR] 请求 ES 接口失败:%v\n", err)

View File

@ -184,8 +184,10 @@ func (s *StatistService) getDashboardStatRealtime(databaseConn *gorm.DB, startDa
// 结果结构体
type salesTodayYesterday struct {
TodayCount int64 `gorm:"column:today_count"`
YesterdayCount int64 `gorm:"column:yesterday_count"`
TodayCount int64 `gorm:"column:today_count"` // 今日订单数
YesterdayCount int64 `gorm:"column:yesterday_count"` // 昨日订单数
TodayAmount int64 `gorm:"column:today_amount"` // 今日销售金额(分)
YesterdayAmount int64 `gorm:"column:yesterday_amount"` // 昨日销售金额(分)
}
type receivingTodayYesterday struct {
TodayCount int64 `gorm:"column:today_count"`
@ -223,9 +225,11 @@ func (s *StatistService) getDashboardStatRealtime(databaseConn *gorm.DB, startDa
defer wg.Done()
statErr = databaseConn.Model(&models.SalesOrder{}).
Select(`
COALESCE(SUM(CASE WHEN created_at >= ? AND created_at <= ? THEN total_amount ELSE 0 END), 0) as today_count,
COALESCE(SUM(CASE WHEN created_at >= ? AND created_at <= ? THEN total_amount ELSE 0 END), 0) as yesterday_count
`, todayStart, todayEnd, yesterdayStart, yesterdayEnd).
COALESCE(COUNT(CASE WHEN created_at >= ? AND created_at <= ? THEN 1 END), 0) as today_count,
COALESCE(COUNT(CASE WHEN created_at >= ? AND created_at <= ? THEN 1 END), 0) as yesterday_count,
COALESCE(SUM(CASE WHEN created_at >= ? AND created_at <= ? THEN total_amount ELSE 0 END), 0) as today_amount,
COALESCE(SUM(CASE WHEN created_at >= ? AND created_at <= ? THEN total_amount ELSE 0 END), 0) as yesterday_amount
`, todayStart, todayEnd, yesterdayStart, yesterdayEnd, todayStart, todayEnd, yesterdayStart, yesterdayEnd).
Where("is_del = ?", 0).
Scan(&salesStat).Error
}()
@ -338,11 +342,13 @@ func (s *StatistService) getDashboardStatRealtime(databaseConn *gorm.DB, startDa
TotalOrderCount: salesStat.TodayCount,
TotalReceivingCount: receivingStat.TodayCount,
TotalOutboundCount: outboundStat.TodayCount,
TodaySaleAmount: salesStat.TodayCount,
TotalSaleCount: salesStat.TodayCount,
TodaySaleAmount: salesStat.TodayAmount,
YesterdayOrderCount: salesStat.YesterdayCount,
YesterdayReceivingCount: receivingStat.YesterdayCount,
YesterdayOutboundCount: outboundStat.YesterdayCount,
YesterdaySaleAmount: salesStat.YesterdayCount,
YesterdaySaleCount: salesStat.YesterdayCount,
YesterdaySaleAmount: salesStat.YesterdayAmount,
UserStats: userStats,
ProductTotal: productTotal,
InventoryTotal: inventoryTotal,