- 删除GetActVendorInfo,在QueryActs返回结果中包含平台相关信息`

This commit is contained in:
gazebo
2019-07-10 10:03:26 +08:00
parent 73e04c229c
commit 88d965962a
4 changed files with 61 additions and 68 deletions

View File

@@ -10,9 +10,27 @@ import (
"git.rosy.net.cn/jx-callback/business/model"
)
type ActMapPureInfo struct {
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
VendorActID string `orm:"column(vendor_act_id);size(48)" json:"vendorActID"`
SyncStatus int `orm:"default(2)" json:"syncStatus"`
Remark string `orm:"column(map_remark)" json:"remark"`
}
type ActVendorInfo struct {
model.Act
VendorList []*ActMapPureInfo `json:"vendorList"`
}
type tActAndMap struct {
model.Act
MapID int `orm:"column(map_id)" json:"-"` // 内部使用,不暴露
ActMapPureInfo
}
type PagedActListInfo struct {
TotalCount int `json:"totalCount"`
Data []*model.Act `json:"data"`
TotalCount int `json:"totalCount"`
Data []*ActVendorInfo `json:"data"`
}
func GetActVendorInfo(db *DaoDB, actID int, vendorIDs []int) (actMap map[int]*model.Act2, err error) {
@@ -122,7 +140,7 @@ func GetActStoreSkuVendorInfo(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs
func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendorID int, statusList []int, actTypeList []int, storeID, skuID, cityCode int, beginAt, endAt, createdAtFrom, createdAtTo time.Time) (pagedInfo *PagedActListInfo, err error) {
sql := `
SELECT SQL_CALC_FOUND_ROWS
t1.*
t1.id
FROM act t1
WHERE 1 = 1
`
@@ -192,9 +210,11 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendo
sqlParams = append(sqlParams, createdAtTo)
}
sql += `
ORDER by t1.id
LIMIT ? OFFSET ?`
ORDER BY 1
LIMIT ? OFFSET ?
`
sqlParams = append(sqlParams, FormalizePageSize(pageSize), FormalizePageOffset(offset))
var idList []int
pagedInfo = &PagedActListInfo{}
Begin(db)
@@ -204,13 +224,43 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, keyword string, vendo
panic(r)
}
}()
err = GetRows(db, &pagedInfo.Data, sql, sqlParams...)
if err == nil {
pagedInfo.TotalCount = GetLastTotalRowCount(db)
Commit(db)
} else {
if err = GetRows(db, &idList, sql, sqlParams...); err != nil || len(idList) == 0 {
Rollback(db)
pagedInfo = nil
return nil, err
}
pagedInfo.TotalCount = GetLastTotalRowCount(db)
Commit(db)
sql = `
SELECT
t1.*,
t2.id map_id, t2.vendor_id, t2.vendor_act_id, t2.sync_status, t2.remark map_remark
FROM act t1
LEFT JOIN act_map t2 ON t2.act_id = t1.id AND t2.deleted_at = ?
WHERE t1.id IN (` + GenQuestionMarks(len(idList)) + `)
ORDER BY t1.id, t2.vendor_id
`
sqlParams = []interface{}{
utils.DefaultTimeValue,
idList,
}
var actList []*tActAndMap
if err = GetRows(db, &actList, sql, sqlParams...); err != nil || len(idList) == 0 {
return nil, err
}
actMap := make(map[int]*ActVendorInfo)
for _, v := range actList {
tmpAct := actMap[v.ID]
if tmpAct == nil {
tmpAct = &ActVendorInfo{
Act: v.Act,
}
actMap[v.ID] = tmpAct
pagedInfo.Data = append(pagedInfo.Data, tmpAct)
}
if v.MapID > 0 {
tmpAct.VendorList = append(tmpAct.VendorList, &v.ActMapPureInfo)
}
}
return pagedInfo, err
}