Merge remote-tracking branch 'origin/mark' into yonghui
This commit is contained in:
@@ -28,6 +28,9 @@ const (
|
||||
ActCreateTypeAPI = 1
|
||||
ActCreateTypeCallback = 2
|
||||
ActCreateTypeSpider = 3
|
||||
|
||||
OverlapRuleNormal = 0 // 不允许重叠(重叠会报错)
|
||||
OverlapRuleReplace = 1 // 相同活动类型,或秒杀替换直降
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -63,6 +66,7 @@ type Act struct {
|
||||
LimitCount int `json:"limitCount"` // 每单限购数量
|
||||
Source string `orm:"size(255)" json:"source"`
|
||||
CreateType int `json:"createType"`
|
||||
OverlapRule int `json:"overlapRule"`
|
||||
PricePercentage int `json:"pricePercentage"` // 单品级活动才有效
|
||||
BeginAt time.Time `orm:"type(datetime);index" json:"beginAt"`
|
||||
EndAt time.Time `orm:"type(datetime);index" json:"endAt"`
|
||||
|
||||
@@ -54,7 +54,7 @@ func GetSysConfigAsInt64(db *DaoDB, key string) (value int64, err error) {
|
||||
configList, err := QueryConfigs(db, key, model.ConfigTypeSys, "")
|
||||
if err == nil && len(configList) > 0 {
|
||||
value = utils.Str2Int64WithDefault(configList[0].Value, 0)
|
||||
} else if IsNoRowsError(err) {
|
||||
} else if true { //IsNoRowsError(err) { // todo 暂时忽略所有错误
|
||||
err = nil
|
||||
}
|
||||
return value, err
|
||||
|
||||
@@ -13,6 +13,11 @@ import (
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
)
|
||||
|
||||
type StoreSkuAndAct struct {
|
||||
*model.StoreSkuBind
|
||||
ActMap map[int]*model.StoreSkuAct
|
||||
}
|
||||
|
||||
var (
|
||||
dataResFieldMap = map[int]string{
|
||||
model.VendorIDMTWM: "mtwm_url",
|
||||
@@ -798,6 +803,55 @@ func GetStoresSkusInfo(db *DaoDB, storeIDs, skuIDs []int) (storeSkuList []*model
|
||||
return storeSkuList, err
|
||||
}
|
||||
|
||||
func GetStoresSkusAndActInfo(db *DaoDB, storeIDs, skuIDs, vendorIDs []int) (storeSkuAndActList []*StoreSkuAndAct, err error) {
|
||||
storeSkuList, err := GetStoresSkusInfo(db, storeIDs, skuIDs)
|
||||
if err == nil && len(storeSkuList) > 0 {
|
||||
storeSkuActList, err2 := GetStoresSkusAct(db, storeIDs, skuIDs, vendorIDs)
|
||||
if err = err2; err == nil {
|
||||
actMap := make(map[int64][]*model.StoreSkuAct)
|
||||
for _, v := range storeSkuActList {
|
||||
actMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] = append(actMap[jxutils.Combine2Int(v.StoreID, v.SkuID)], v)
|
||||
}
|
||||
for _, v := range storeSkuList {
|
||||
storeSkuAct := &StoreSkuAndAct{
|
||||
StoreSkuBind: v,
|
||||
ActMap: make(map[int]*model.StoreSkuAct),
|
||||
}
|
||||
for _, vv := range actMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] {
|
||||
storeSkuAct.ActMap[vv.VendorID] = vv
|
||||
}
|
||||
storeSkuAndActList = append(storeSkuAndActList, storeSkuAct)
|
||||
}
|
||||
}
|
||||
}
|
||||
return storeSkuAndActList, err
|
||||
}
|
||||
|
||||
func GetStoresSkusAct(db *DaoDB, storeIDs, skuIDs, vendorIDs []int) (storeSkuActList []*model.StoreSkuAct, err error) {
|
||||
sql := `
|
||||
SELECT *
|
||||
FROM store_sku_act t1
|
||||
WHERE t1.deleted_at = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if len(storeIDs) > 0 {
|
||||
sql += " AND t1.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
||||
sqlParams = append(sqlParams, storeIDs)
|
||||
}
|
||||
if len(skuIDs) > 0 {
|
||||
sql += " AND t1.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
||||
sqlParams = append(sqlParams, skuIDs)
|
||||
}
|
||||
if len(vendorIDs) > 0 {
|
||||
sql += " AND t1.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")"
|
||||
sqlParams = append(sqlParams, vendorIDs)
|
||||
}
|
||||
err = GetRows(db, &storeSkuActList, sql, sqlParams...)
|
||||
return storeSkuActList, err
|
||||
}
|
||||
|
||||
// vendorID, vendorStoreIDs和vendorSkuIDs都是必须参数
|
||||
func GetStoresSkusInfoByVendorInfo(db *DaoDB, vendorID int, vendorStoreIDs, vendorSkuIDs []string) (storeSkuList []*StoreSkuBindWithVendorInfo, err error) {
|
||||
if len(vendorStoreIDs) == 0 || len(vendorSkuIDs) == 0 {
|
||||
|
||||
@@ -161,3 +161,32 @@ func (*StoreOpRequest) TableIndex() [][]string {
|
||||
[]string{"StoreID", "Status", "Type"},
|
||||
}
|
||||
}
|
||||
|
||||
type StoreSkuAct struct {
|
||||
ModelIDCULD // DeletedAt用于表示请求操作结束,而并不一定是删除
|
||||
|
||||
StoreID int `orm:"column(store_id)"`
|
||||
SkuID int `orm:"column(sku_id)"`
|
||||
VendorID int
|
||||
|
||||
ActID int `orm:"column(act_id);index" json:"actID"`
|
||||
VendorActID string `orm:"column(vendor_act_id);size(48);index" json:"vendorActID"`
|
||||
SyncStatus int8 `orm:"default(2)" json:"syncStatus"`
|
||||
VendorPrice int64 `json:"vendorPrice"` // 创建活动时的平台价格
|
||||
ActualActPrice int64 `json:"actualActPrice"` // 单品级活动用,创建活动时商品的活动价格
|
||||
|
||||
EarningActID int `orm:"column(earning_act_id);index" json:"earningActID"`
|
||||
EarningPrice int `json:"earningPrice"`
|
||||
}
|
||||
|
||||
func (*StoreSkuAct) TableUnique() [][]string {
|
||||
return [][]string{
|
||||
[]string{"StoreID", "SkuID", "VendorID", "DeletedAt"},
|
||||
}
|
||||
}
|
||||
|
||||
func (*StoreSkuAct) TableIndex() [][]string {
|
||||
return [][]string{
|
||||
[]string{"SkuID", "DeletedAt"},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user