冲突处理
This commit is contained in:
@@ -630,7 +630,7 @@ func (c *OrderManager) RefreshHistoryOrdersEarningPrice(ctx *jxcontext.Context,
|
|||||||
if fromDate != "" && toDate != "" {
|
if fromDate != "" && toDate != "" {
|
||||||
fromDateParam = utils.Str2Time(fromDate)
|
fromDateParam = utils.Str2Time(fromDate)
|
||||||
toDateParam = utils.Str2Time(toDate)
|
toDateParam = utils.Str2Time(toDate)
|
||||||
actList, _ := dao.QueryActs(db, actID, 0, math.MaxInt32, 0, "", -1, nil, nil, nil, 0, 0, 0, utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue)
|
actList, _ := dao.QueryActs(db, actID, 0, math.MaxInt32, 0, "", -1, nil, nil, nil, 0, nil, 0, utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue)
|
||||||
if len(actList.Data) > 0 {
|
if len(actList.Data) > 0 {
|
||||||
actBeginAt := actList.Data[0].BeginAt
|
actBeginAt := actList.Data[0].BeginAt
|
||||||
actEndAt := actList.Data[0].EndAt
|
actEndAt := actList.Data[0].EndAt
|
||||||
@@ -660,7 +660,7 @@ func (c *OrderManager) RefreshHistoryOrdersEarningPrice(ctx *jxcontext.Context,
|
|||||||
return "", model.ErrCodeGeneralFailed, errors.New(fmt.Sprintf("未查询到相关结算活动,活动ID:[%d]", actID))
|
return "", model.ErrCodeGeneralFailed, errors.New(fmt.Sprintf("未查询到相关结算活动,活动ID:[%d]", actID))
|
||||||
}
|
}
|
||||||
} else if fromDate == "" && toDate == "" {
|
} else if fromDate == "" && toDate == "" {
|
||||||
actList, _ := dao.QueryActs(db, actID, 0, math.MaxInt32, 0, "", -1, nil, nil, nil, 0, 0, 0, utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue)
|
actList, _ := dao.QueryActs(db, actID, 0, math.MaxInt32, 0, "", -1, nil, nil, nil, 0, nil, 0, utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue)
|
||||||
if len(actList.Data) > 0 {
|
if len(actList.Data) > 0 {
|
||||||
orderList, _ = dao.QueryOrders(db, vendorOrderID, actID, vendorIDs, storeID, actList.Data[0].BeginAt, actList.Data[0].EndAt)
|
orderList, _ = dao.QueryOrders(db, vendorOrderID, actID, vendorIDs, storeID, actList.Data[0].BeginAt, actList.Data[0].EndAt)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -685,7 +685,11 @@ func (a *ActManager) IsVendorActExist(ctx *jxcontext.Context, vendorActID string
|
|||||||
}
|
}
|
||||||
|
|
||||||
func QueryActs(ctx *jxcontext.Context, actID int, offset, pageSize int, syncStatus int, keyword string, vendorID int, statusList, actTypeList, createTypeList []int, storeID, skuID, cityCode int, beginAt, endAt, createdAtFrom, createdAtTo time.Time) (pagedInfo *dao.PagedActListInfo, err error) {
|
func QueryActs(ctx *jxcontext.Context, actID int, offset, pageSize int, syncStatus int, keyword string, vendorID int, statusList, actTypeList, createTypeList []int, storeID, skuID, cityCode int, beginAt, endAt, createdAtFrom, createdAtTo time.Time) (pagedInfo *dao.PagedActListInfo, err error) {
|
||||||
return dao.QueryActs(dao.GetDB(), actID, offset, pageSize, syncStatus, keyword, vendorID, statusList, actTypeList, createTypeList, storeID, skuID, cityCode, beginAt, endAt, createdAtFrom, createdAtTo)
|
var skuIDs []int
|
||||||
|
if skuID > 0 {
|
||||||
|
skuIDs = []int{skuID}
|
||||||
|
}
|
||||||
|
return dao.QueryActs(dao.GetDB(), actID, offset, pageSize, syncStatus, keyword, vendorID, statusList, actTypeList, createTypeList, storeID, skuIDs, cityCode, beginAt, endAt, createdAtFrom, createdAtTo)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetActStoreSkuInfo(ctx *jxcontext.Context, actID int, vendorIDs []int, keyword string, offset, pageSize int) (retVal interface{}, err error) {
|
func GetActStoreSkuInfo(ctx *jxcontext.Context, actID int, vendorIDs []int, keyword string, offset, pageSize int) (retVal interface{}, err error) {
|
||||||
@@ -889,7 +893,7 @@ func RefreshPageActs(ctx *jxcontext.Context, vendorIDs []int, createdFrom time.T
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
// actInfo, err2 := dao.QueryActs(db, 0, 0, -1, -1, "", vendorID, nil, []int{model.ActCreateTypeSpider},
|
// actInfo, err2 := dao.QueryActs(db, 0, 0, -1, -1, "", vendorID, nil, []int{model.ActCreateTypeSpider},
|
||||||
// nil, 0, 0, 0, utils.DefaultTimeValue, utils.DefaultTimeValue, createdFrom, utils.DefaultTimeValue)
|
// nil, 0, nil, 0, utils.DefaultTimeValue, utils.DefaultTimeValue, createdFrom, utils.DefaultTimeValue)
|
||||||
vendorActIDs, err2 := dao.GetExistVendorActIDs(db, vendorID)
|
vendorActIDs, err2 := dao.GetExistVendorActIDs(db, vendorID)
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -975,16 +979,15 @@ func RefreshPageActs(ctx *jxcontext.Context, vendorIDs []int, createdFrom time.T
|
|||||||
func DeleteSkusFromAct(ctx *jxcontext.Context, vendorID int, actTypes, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
func DeleteSkusFromAct(ctx *jxcontext.Context, vendorID int, actTypes, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
actMap := make(map[int]*model.Act)
|
actMap := make(map[int]*model.Act)
|
||||||
for _, skuID := range skuIDs {
|
pagedInfo, err2 := dao.QueryActs(db, 0, 0, -1, -1, "", vendorID, []int{model.ActStatusCreated}, actTypes, nil, 0, skuIDs, 0,
|
||||||
pagedInfo, err2 := dao.QueryActs(db, 0, 0, -1, -1, "", vendorID, []int{model.ActStatusCreated}, actTypes, nil, 0, skuID, 0,
|
utils.DefaultTimeValue, utils.DefaultTimeValue, time.Now().Add(-24*30*3*time.Hour), utils.DefaultTimeValue)
|
||||||
utils.DefaultTimeValue, utils.DefaultTimeValue, time.Now().Add(-24*30*3*time.Hour), utils.DefaultTimeValue)
|
if err = err2; err != nil {
|
||||||
if err = err2; err != nil {
|
return "", err
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
for _, v := range pagedInfo.Data {
|
|
||||||
actMap[v.Act.ID] = &v.Act
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
for _, v := range pagedInfo.Data {
|
||||||
|
actMap[v.Act.ID] = &v.Act
|
||||||
|
}
|
||||||
|
|
||||||
if len(actMap) == 0 {
|
if len(actMap) == 0 {
|
||||||
return "", nil
|
return "", nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
"unicode"
|
"unicode"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/globals/refutil"
|
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/event"
|
"git.rosy.net.cn/jx-callback/business/jxstore/event"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi"
|
"git.rosy.net.cn/baseapi"
|
||||||
@@ -1039,7 +1037,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
|||||||
if tmpStatus := getSkuSaleStatus(inSkuBind, skuBindInfo); tmpStatus != model.StoreSkuBindStatusNA {
|
if tmpStatus := getSkuSaleStatus(inSkuBind, skuBindInfo); tmpStatus != model.StoreSkuBindStatusNA {
|
||||||
skuBind.Status = tmpStatus
|
skuBind.Status = tmpStatus
|
||||||
}
|
}
|
||||||
err = AddEventDetail(model.OperateAdd, v.RealSkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), "", "")
|
// err = AddEventDetail(model.OperateAdd, v.RealSkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), "", "")
|
||||||
setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask)
|
setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask)
|
||||||
dao.WrapAddIDCULDEntity(skuBind, userName)
|
dao.WrapAddIDCULDEntity(skuBind, userName)
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(skuBind, false))
|
// globals.SugarLogger.Debug(utils.Format4Output(skuBind, false))
|
||||||
@@ -1065,7 +1063,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
|||||||
} else {
|
} else {
|
||||||
skuBind = &v.StoreSkuBind
|
skuBind = &v.StoreSkuBind
|
||||||
if skuBindInfo.IsFocus == -1 && isCanChangePrice {
|
if skuBindInfo.IsFocus == -1 && isCanChangePrice {
|
||||||
err = AddEventDetail(model.OperateDelete, skuBind.SkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), "", "")
|
// err = AddEventDetail(model.OperateDelete, skuBind.SkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), "", "")
|
||||||
if num, err = dao.DeleteEntityLogically(db, skuBind, map[string]interface{}{
|
if num, err = dao.DeleteEntityLogically(db, skuBind, map[string]interface{}{
|
||||||
model.FieldStatus: model.StoreSkuBindStatusDeleted,
|
model.FieldStatus: model.StoreSkuBindStatusDeleted,
|
||||||
model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
|
model.FieldJdSyncStatus: model.SyncFlagDeletedMask,
|
||||||
@@ -1094,40 +1092,37 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
|||||||
setStoreSkuBindStatus(skuBind, model.SyncFlagSaleMask)
|
setStoreSkuBindStatus(skuBind, model.SyncFlagSaleMask)
|
||||||
updateFieldMap[model.FieldStatus] = 1
|
updateFieldMap[model.FieldStatus] = 1
|
||||||
}
|
}
|
||||||
if skuBindInfo.UnitPrice != 0 && skuBind.UnitPrice != unitPrice && isCanChangePrice { // 这里是否需要加此条件限制
|
if skuBindInfo.UnitPrice != 0 && isCanChangePrice { // 这里是否需要加此条件限制
|
||||||
skuBind.UnitPrice = unitPrice
|
price := jxutils.CaculateSkuPrice(unitPrice, v.SpecQuality, v.SpecUnit, v.SkuNameUnit)
|
||||||
skuBind.Price = jxutils.CaculateSkuPrice(unitPrice, v.SpecQuality, v.SpecUnit, v.SkuNameUnit)
|
jxPrice := jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), price)
|
||||||
skuBind.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), skuBind.Price)
|
if unitPrice != skuBind.UnitPrice || price != skuBind.Price || jxPrice != skuBind.JxPrice {
|
||||||
setStoreSkuBindStatus(skuBind, model.SyncFlagPriceMask)
|
if price != skuBind.Price {
|
||||||
updateFieldMap["UnitPrice"] = 1
|
setStoreSkuBindStatus(skuBind, model.SyncFlagPriceMask)
|
||||||
updateFieldMap["Price"] = 1
|
updateFieldMap["Price"] = 1
|
||||||
updateFieldMap["JxPrice"] = 1
|
}
|
||||||
|
skuBind.UnitPrice = unitPrice
|
||||||
|
skuBind.Price = price
|
||||||
|
skuBind.JxPrice = jxPrice
|
||||||
|
updateFieldMap["UnitPrice"] = 1
|
||||||
|
updateFieldMap["JxPrice"] = 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if skuBindInfo.StatusSaleBegin != 0 && skuBindInfo.StatusSaleEnd != 0 {
|
if skuBindInfo.StatusSaleBegin != 0 && skuBindInfo.StatusSaleEnd != 0 {
|
||||||
if err := ValidateStruct(skuBindInfo); err != nil {
|
if err := ValidateStruct(skuBindInfo); err != nil {
|
||||||
dao.Rollback(db)
|
globals.SugarLogger.Infof("更改商品:%s, 可售时间不合法!时间范围:[%v] 至 [%v]", allBinds[0].Name, skuBindInfo.StatusSaleBegin, skuBindInfo.StatusSaleEnd)
|
||||||
return nil, fmt.Errorf("更改商品:%s, 可售时间不合法!时间范围:[%v] 至 [%v]", allBinds[0].Name, skuBindInfo.StatusSaleBegin, skuBindInfo.StatusSaleEnd)
|
} else {
|
||||||
|
updateFieldMap["StatusSaleBegin"] = int(skuBindInfo.StatusSaleBegin)
|
||||||
|
updateFieldMap["StatusSaleEnd"] = int(skuBindInfo.StatusSaleEnd)
|
||||||
|
skuBind.StatusSaleBegin = skuBindInfo.StatusSaleBegin
|
||||||
|
skuBind.StatusSaleEnd = skuBindInfo.StatusSaleEnd
|
||||||
}
|
}
|
||||||
updateFieldMap["StatusSaleBegin"] = int(skuBindInfo.StatusSaleBegin)
|
|
||||||
updateFieldMap["StatusSaleEnd"] = int(skuBindInfo.StatusSaleEnd)
|
|
||||||
skuBind.StatusSaleBegin = skuBindInfo.StatusSaleBegin
|
|
||||||
skuBind.StatusSaleEnd = skuBindInfo.StatusSaleEnd
|
|
||||||
}
|
}
|
||||||
// todo 这里应该是不需处理这个信息的吧?
|
// if updateFieldMap != nil {
|
||||||
// if inSkuBind != nil && inSkuBind.EbaiID != 0 {
|
// afterData := utils.MustMarshal(updateFieldMap)
|
||||||
// skuBind.EbaiID = inSkuBind.EbaiID
|
// mapresult := refutil.FindMapAndStructMixed(updateFieldMap, skuBind)
|
||||||
// updateFieldMap["EbaiID"] = 1
|
// beforeData := utils.MustMarshal(mapresult)
|
||||||
|
// AddEventDetail(model.OperateUpdate, v.RealSkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), string(beforeData), string(afterData))
|
||||||
// }
|
// }
|
||||||
// if inSkuBind != nil && inSkuBind.ElmID != 0 {
|
|
||||||
// skuBind.ElmID = inSkuBind.ElmID
|
|
||||||
// updateFieldMap["ElmID"] = 1
|
|
||||||
// }
|
|
||||||
if updateFieldMap != nil {
|
|
||||||
afterData := utils.MustMarshal(updateFieldMap)
|
|
||||||
mapresult := refutil.FindMapAndStructMixed(updateFieldMap, skuBind)
|
|
||||||
beforeData := utils.MustMarshal(mapresult)
|
|
||||||
AddEventDetail(model.OperateUpdate, v.RealSkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), string(beforeData), string(afterData))
|
|
||||||
}
|
|
||||||
if len(updateFieldMap) > 0 {
|
if len(updateFieldMap) > 0 {
|
||||||
updateFieldMap[model.FieldJdSyncStatus] = 1
|
updateFieldMap[model.FieldJdSyncStatus] = 1
|
||||||
updateFieldMap[model.FieldEbaiSyncStatus] = 1
|
updateFieldMap[model.FieldEbaiSyncStatus] = 1
|
||||||
@@ -1135,9 +1130,11 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
|||||||
updateFieldMap[model.FieldUpdatedAt] = 1
|
updateFieldMap[model.FieldUpdatedAt] = 1
|
||||||
updateFieldMap[model.FieldLastOperator] = 1
|
updateFieldMap[model.FieldLastOperator] = 1
|
||||||
|
|
||||||
// setStoreSkuBindStatus(skuBind, model.SyncFlagModifiedMask)
|
|
||||||
dao.WrapUpdateULEntity(skuBind, userName)
|
dao.WrapUpdateULEntity(skuBind, userName)
|
||||||
skuBind.AutoSaleAt = utils.DefaultTimeValue
|
if skuBind.Status == model.SkuStatusNormal {
|
||||||
|
updateFieldMap["AutoSaleAt"] = 1
|
||||||
|
skuBind.AutoSaleAt = utils.DefaultTimeValue
|
||||||
|
}
|
||||||
if num, err = dao.UpdateEntity(db, skuBind /*, utils.Map2KeySlice(updateFieldMap)...*/); err != nil {
|
if num, err = dao.UpdateEntity(db, skuBind /*, utils.Map2KeySlice(updateFieldMap)...*/); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -3152,6 +3149,6 @@ func UpdateStoreSkuNamePrice(ctx *jxcontext.Context, storeID, nameID, unitPrice
|
|||||||
// for _, v := range skuList {
|
// for _, v := range skuList {
|
||||||
// skuIDs = append(skuIDs, v.ID)
|
// skuIDs = append(skuIDs, v.ID)
|
||||||
// }
|
// }
|
||||||
// actStoreSkuList, err :=dao.GetEffectiveActStoreSkuInfo(db, 0, nil, model.ActSkuDirectDown, []int{storeID}, skuIDs, time.Now(),time.Now())
|
// actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, nil, model.ActSkuDirectDown, []int{storeID}, skuIDs, time.Now(), time.Now())
|
||||||
return hint, err
|
return hint, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ func GetActStoreSkuVendorInfo(db *DaoDB, actID int, vendorIDs, storeIDs, skuIDs
|
|||||||
}
|
}
|
||||||
|
|
||||||
func QueryActs(db *DaoDB, actID int, offset, pageSize int, syncStatus int, keyword string, vendorID int, statusList, actTypeList, createTypeList []int,
|
func QueryActs(db *DaoDB, actID int, offset, pageSize int, syncStatus int, keyword string, vendorID int, statusList, actTypeList, createTypeList []int,
|
||||||
storeID, skuID, cityCode int, beginAt, endAt, createdAtFrom, createdAtTo time.Time) (pagedInfo *PagedActListInfo, err error) {
|
storeID int, skuIDs []int, cityCode int, beginAt, endAt, createdAtFrom, createdAtTo time.Time) (pagedInfo *PagedActListInfo, err error) {
|
||||||
if actID == 0 && utils.IsTimeZero(createdAtFrom) && utils.IsTimeZero(beginAt) {
|
if actID == 0 && utils.IsTimeZero(createdAtFrom) && utils.IsTimeZero(beginAt) {
|
||||||
return nil, fmt.Errorf("actID,createdAtFrom和beginAt中,至少要指定一个条件")
|
return nil, fmt.Errorf("actID,createdAtFrom和beginAt中,至少要指定一个条件")
|
||||||
}
|
}
|
||||||
@@ -231,7 +231,7 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, syncStatus int, keywo
|
|||||||
}
|
}
|
||||||
sql += ")"
|
sql += ")"
|
||||||
}
|
}
|
||||||
if storeID > 0 || skuID > 0 || cityCode > 0 {
|
if storeID > 0 || len(skuIDs) > 0 || cityCode > 0 {
|
||||||
sql += ` AND (SELECT COUNT(*)
|
sql += ` AND (SELECT COUNT(*)
|
||||||
FROM act_store_sku t2`
|
FROM act_store_sku t2`
|
||||||
if cityCode > 0 {
|
if cityCode > 0 {
|
||||||
@@ -245,9 +245,9 @@ func QueryActs(db *DaoDB, actID int, offset, pageSize int, syncStatus int, keywo
|
|||||||
sql += " AND t2.store_id = ?"
|
sql += " AND t2.store_id = ?"
|
||||||
sqlParams = append(sqlParams, storeID)
|
sqlParams = append(sqlParams, storeID)
|
||||||
}
|
}
|
||||||
if skuID > 0 {
|
if len(skuIDs) > 0 {
|
||||||
sql += " AND t2.sku_id = ?"
|
sql += " AND t2.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
||||||
sqlParams = append(sqlParams, skuID)
|
sqlParams = append(sqlParams, skuIDs)
|
||||||
}
|
}
|
||||||
sql += ") > 0"
|
sql += ") > 0"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user