价格审核

This commit is contained in:
苏尹岚
2020-05-28 14:31:13 +08:00
parent 36b78d0f60
commit 3c78047f36
2 changed files with 72 additions and 16 deletions

View File

@@ -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
}

View File

@@ -25,6 +25,10 @@ const (
StoreAuditStatusAll = -9
)
const (
StoreSkuAuditTypePrice = 1 //改价
)
const (
MainSubStoreName = "本店"
MainSubStoreAddress = "本店"