Files
jx-callback/business/model/dao/mt_avtivity_station.go
邹宗楠 fa8c15a38f 1
2026-03-31 17:30:25 +08:00

65 lines
1.8 KiB
Go

package dao
import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-print/dao"
"time"
)
// StoreInformationStatistics 门店信息统计
func StoreInformationStatistics(db *DaoDB) (result []*model.EffectiveStores, err error) {
sql := `
SELECT
gs.jx_store_id,
MAX(sm.vendor_org_code) AS vendor_org_code,
MAX(sm.vendor_store_id) AS vendor_store_id,
MAX(sm.mtwm_token) AS mtwm_token
FROM goods_order gs
LEFT JOIN store_map sm ON gs.jx_store_id = sm.store_id AND gs.vendor_id = sm.vendor_id
WHERE gs.order_created_at >= ?
AND gs.vendor_id = ?
GROUP BY gs.jx_store_id;
`
parma := []interface{}{time.Now().AddDate(0, 0, -10), model.VendorIDMTWM}
if err = GetRows(db, &result, sql, parma...); err != nil {
return nil, err
}
return
}
func GetStatistics(db *DaoDB, startTime, endTime time.Time, storeId []int, offset, pageSize int) (pageInfo *model.PagedInfo, err error) {
sql := ` SELECT SQL_CALC_FOUND_ROWS * FROM activity_station WHERE 1=1 `
param := []interface{}{}
if !utils.IsTimeZero(startTime) {
sql += ` AND created_at >= ?`
param = append(param, startTime)
}
if !utils.IsTimeZero(endTime) {
sql += ` AND created_at <= ?`
param = append(param, endTime)
}
if len(storeId) > 0 {
sql += " AND store_id (" + dao.GenQuestionMarks(len(storeId)) + ")"
param = append(param, storeId)
}
sql += ` ORDER BY created_at desc LIMIT ? OFFSET ?`
param = append(param, jxutils.FormalizePageSize(pageSize), offset)
txDB, _ := Begin(db)
defer Commit(db, txDB)
var data []*model.ActivityStation
if err := GetRowsTx(txDB, &data, sql, param...); err == nil {
pageInfo = &model.PagedInfo{
TotalCount: GetLastTotalRowCount2(db, txDB),
Data: data,
}
}
return pageInfo, err
}