价格审核
This commit is contained in:
@@ -839,20 +839,25 @@ func UpdateStoreSkus(ctx *jxcontext.Context, causeFlag, storeID int, skuBindInfo
|
||||
|
||||
func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, skuBindInfos []*StoreSkuBindInfo, isScale, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
globals.SugarLogger.Debugf("UpdateStoresSkus:%s, storeIDs:%v, skuBindInfos:%s", ctx.GetTrackInfo(), storeIDs, utils.Format4Output(skuBindInfos, true))
|
||||
|
||||
var num int64
|
||||
db := dao.GetDB()
|
||||
skuIDs, err := updateStoresSkusWithoutSync(ctx, db, storeIDs, skuBindInfos, isScale)
|
||||
if err != nil {
|
||||
return "", err
|
||||
var flag = false
|
||||
if ctx.GetLoginType() == weixin.AuthTypeMP || ctx.GetLoginType() == weixin.AuthTypeMini {
|
||||
flag, err = doStoreSkuAudit(ctx, storeIDs, skuBindInfos)
|
||||
}
|
||||
isAsync = asyncStoreSkuOpFilter(ctx, isAsync)
|
||||
num = int64(len(skuIDs))
|
||||
if num > 0 {
|
||||
hint, err = CurVendorSync.SyncStoresSkus(ctx, nil, causeFlag, db, nil, storeIDs, skuIDs, false, isAsync, isContinueWhenError)
|
||||
}
|
||||
if num == 0 || !isAsync || hint == "" {
|
||||
hint = utils.Int64ToStr(num)
|
||||
if !flag {
|
||||
var num int64
|
||||
db := dao.GetDB()
|
||||
skuIDs, err := updateStoresSkusWithoutSync(ctx, db, storeIDs, skuBindInfos, isScale)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
isAsync = asyncStoreSkuOpFilter(ctx, isAsync)
|
||||
num = int64(len(skuIDs))
|
||||
if num > 0 {
|
||||
hint, err = CurVendorSync.SyncStoresSkus(ctx, nil, causeFlag, db, nil, storeIDs, skuIDs, false, isAsync, isContinueWhenError)
|
||||
}
|
||||
if num == 0 || !isAsync || hint == "" {
|
||||
hint = utils.Int64ToStr(num)
|
||||
}
|
||||
}
|
||||
return hint, err
|
||||
}
|
||||
@@ -978,9 +983,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
||||
// if err = checkStoresSkusSaleCity(ctx, db, storeIDs, skuBindInfos); err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// if storeIDs, skuBindInfos, err = filterStorePriceChange(ctx, storeIDs, skuBindInfos); err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
filterStoreSkuAudit(ctx, storeIDs, skuBindInfos)
|
||||
// globals.SugarLogger.Debugf("updateStoresSkusWithoutSync2, storeIDs:%v, skuBindInfos:%s", storeIDs, utils.Format4Output(skuBindInfos, false))
|
||||
isUserCanDirectChangePrice := true
|
||||
if user := ctx.GetFullUser(); user != nil {
|
||||
@@ -4449,3 +4452,52 @@ func GetStoreSkuAudit(ctx *jxcontext.Context, storeIDs, nameIDs, skuIDs []int, s
|
||||
pagedInfo, err = dao.GetStoreSkuAudit(dao.GetDB(), storeIDs, nameIDs, skuIDs, status, name, remark, applyTimeStart, applyTimeEnd, auditTimeStart, auditTimeEnd, pageSize, offset)
|
||||
return pagedInfo, err
|
||||
}
|
||||
|
||||
func doStoreSkuAudit(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*StoreSkuBindInfo) (isAudit bool, err error) {
|
||||
globals.SugarLogger.Debugf("doStoreSkuAudit storeIDs: %v", storeIDs)
|
||||
db := dao.GetDB()
|
||||
for _, storeID := range storeIDs {
|
||||
for _, skuBindInfo := range skuBindInfos {
|
||||
if skuBindInfo.IsFocus != 0 || skuBindInfo.IsSale != 0 || skuBindInfo.UnitPrice == 0 {
|
||||
globals.SugarLogger.Debugf("doStoreSkuAudit return1 storeID : %v nameID: %v", storeID, skuBindInfo.NameID)
|
||||
return false, err
|
||||
}
|
||||
if (ctx.GetFullUser().Type & model.UserTypeOperator) != 0 {
|
||||
globals.SugarLogger.Debugf("doStoreSkuAudit return3 storeID : %v nameID: %v", storeID, skuBindInfo.NameID)
|
||||
return false, err
|
||||
}
|
||||
dao.Begin(db)
|
||||
defer dao.Rollback(db)
|
||||
storeSkuAudit := model.StoreSkuAudit{
|
||||
StoreID: storeID,
|
||||
Type: model.StoreSkuAuditTypePrice,
|
||||
NameID: skuBindInfo.NameID,
|
||||
Status: model.StoreAuditStatusOnline,
|
||||
UserID: ctx.GetUserID(),
|
||||
UnitPrice: skuBindInfo.UnitPrice,
|
||||
}
|
||||
dao.WrapAddIDCULEntity(storeSkuAudit, ctx.GetUserName())
|
||||
storeSkus, err2 := dao.GetStoreSkusByNameIDs(db, []int{storeID}, skuBindInfo.NameID)
|
||||
err = err2
|
||||
if len(storeSkus) > 0 {
|
||||
if skuBindInfo.UnitPrice <= int(storeSkus[0].UnitPrice) {
|
||||
globals.SugarLogger.Debugf("doStoreSkuAudit return2 storeID : %v nameID: %v", storeID, skuBindInfo.NameID)
|
||||
return false, err
|
||||
}
|
||||
storeSkuAudit.OriginUnitPrice = int(storeSkus[0].UnitPrice)
|
||||
}
|
||||
err = dao.CreateEntity(db, storeSkuAudit)
|
||||
}
|
||||
dao.Commit(db)
|
||||
}
|
||||
return isAudit, err
|
||||
}
|
||||
|
||||
func filterStoreSkuAudit(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*StoreSkuBindInfo) (err error) {
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func StoreSkuPriceAudit(ctx *jxcontext.Context) (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -25,6 +25,10 @@ const (
|
||||
StoreAuditStatusAll = -9
|
||||
)
|
||||
|
||||
const (
|
||||
StoreSkuAuditTypePrice = 1 //改价
|
||||
)
|
||||
|
||||
const (
|
||||
MainSubStoreName = "本店"
|
||||
MainSubStoreAddress = "本店"
|
||||
|
||||
Reference in New Issue
Block a user