价格审核测试
This commit is contained in:
@@ -839,10 +839,7 @@ 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 flag = false
|
||||
if ctx.GetLoginType() == weixin.AuthTypeMP || ctx.GetLoginType() == weixin.AuthTypeMini {
|
||||
flag, err = doStoreSkuAudit(ctx, storeIDs, skuBindInfos)
|
||||
}
|
||||
flag, err := doStoreSkuAudit(ctx, storeIDs, skuBindInfos)
|
||||
if !flag {
|
||||
var num int64
|
||||
db := dao.GetDB()
|
||||
@@ -983,7 +980,6 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
|
||||
// if err = checkStoresSkusSaleCity(ctx, db, 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 {
|
||||
@@ -4458,46 +4454,97 @@ func doStoreSkuAudit(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*Sto
|
||||
db := dao.GetDB()
|
||||
for _, storeID := range storeIDs {
|
||||
for _, skuBindInfo := range skuBindInfos {
|
||||
storeAudits, err := dao.GetStoreSkuAuditLight(db, []int{storeID}, []int{skuBindInfo.NameID}, model.StoreAuditStatusOnline)
|
||||
//关注,可售排除
|
||||
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 {
|
||||
if len(storeAudits) > 0 {
|
||||
dao.DeleteEntityLogically(db, storeAudits[0], nil, ctx.GetUserName(), nil)
|
||||
}
|
||||
globals.SugarLogger.Debugf("doStoreSkuAudit return2 storeID : %v nameID: %v", storeID, skuBindInfo.NameID)
|
||||
return false, err
|
||||
}
|
||||
if ctx.GetLoginType() != weixin.AuthTypeMP && ctx.GetLoginType() != weixin.AuthTypeMini {
|
||||
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
|
||||
//如果改的价比原价低排除
|
||||
storeSkus, err := dao.GetStoreSkusByNameIDs(db, []int{storeID}, skuBindInfo.NameID)
|
||||
if len(storeSkus) > 0 {
|
||||
if skuBindInfo.UnitPrice <= int(storeSkus[0].UnitPrice) {
|
||||
globals.SugarLogger.Debugf("doStoreSkuAudit return2 storeID : %v nameID: %v", storeID, skuBindInfo.NameID)
|
||||
if len(storeAudits) > 0 {
|
||||
dao.DeleteEntityLogically(db, storeAudits[0], nil, ctx.GetUserName(), nil)
|
||||
}
|
||||
globals.SugarLogger.Debugf("doStoreSkuAudit return4 storeID : %v nameID: %v", storeID, skuBindInfo.NameID)
|
||||
return false, err
|
||||
} else {
|
||||
if len(storeAudits) > 0 {
|
||||
dao.DeleteEntityLogically(db, storeAudits[0], nil, ctx.GetUserName(), nil)
|
||||
}
|
||||
}
|
||||
storeSkuAudit.OriginUnitPrice = int(storeSkus[0].UnitPrice)
|
||||
} else {
|
||||
return false, fmt.Errorf("未查询到该门店商品价,storeID: %v, nameID: %V", storeID, skuBindInfo.NameID)
|
||||
}
|
||||
storeSkuAudit := model.StoreSkuAudit{
|
||||
StoreID: storeID,
|
||||
Type: model.StoreSkuAuditTypePrice,
|
||||
NameID: skuBindInfo.NameID,
|
||||
Status: model.StoreAuditStatusOnline,
|
||||
UnitPrice: skuBindInfo.UnitPrice,
|
||||
OriginUnitPrice: int(storeSkus[0].UnitPrice),
|
||||
}
|
||||
dao.WrapAddIDCULEntity(storeSkuAudit, ctx.GetUserName())
|
||||
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
|
||||
func StoreSkuPriceAudit(ctx *jxcontext.Context, storeIDs, nameIDs []int, status int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
db := dao.GetDB()
|
||||
if status == model.StoreAuditStatusOnline {
|
||||
return "", fmt.Errorf("审核标志不正确!")
|
||||
}
|
||||
task := tasksch.NewParallelTask("StoreSkuPriceAudit", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
storeID := batchItemList[0].(int)
|
||||
for _, v := range nameIDs {
|
||||
storeAudits, err := dao.GetStoreSkuAuditLight(db, []int{storeID}, []int{v}, model.StoreAuditStatusOnline)
|
||||
if len(storeAudits) == 0 || err != nil {
|
||||
return retVal, fmt.Errorf("未查询到该门店该商品的待审核信息!storeID: %v, nameID: %v", storeID, v)
|
||||
}
|
||||
//审核通过
|
||||
if status == model.StoreAuditStatusCreated {
|
||||
storeAudits[0].UserID = ctx.GetUserID()
|
||||
storeAudits[0].Status = model.StoreAuditStatusCreated
|
||||
_, err = dao.UpdateEntity(db, storeAudits[0], "UserID", "Status")
|
||||
var skuBindInfos = []*StoreSkuBindInfo{
|
||||
&StoreSkuBindInfo{
|
||||
NameID: v,
|
||||
UnitPrice: storeAudits[0].UnitPrice,
|
||||
},
|
||||
}
|
||||
_, err = UpdateStoresSkus(ctx, 0, []int{storeID}, skuBindInfos, false, false, true)
|
||||
} else if status == model.StoreAuditStatusRejected {
|
||||
storeAudits[0].UserID = ctx.GetUserID()
|
||||
storeAudits[0].Status = model.StoreAuditStatusRejected
|
||||
_, err = dao.UpdateEntity(db, storeAudits[0], "UserID", "Status")
|
||||
} else {
|
||||
return retVal, fmt.Errorf("审核标志不正确!")
|
||||
}
|
||||
}
|
||||
return retVal, err
|
||||
}, storeIDs)
|
||||
tasksch.HandleTask(task, nil, true).Run()
|
||||
if isAsync {
|
||||
hint = task.GetID()
|
||||
} else {
|
||||
_, err = task.GetResult(0)
|
||||
hint = "1"
|
||||
}
|
||||
return hint, err
|
||||
}
|
||||
|
||||
@@ -1585,3 +1585,26 @@ func GetStoreSkuAudit(db *DaoDB, storeIDs, nameIDs, skuIDs []int, status int, na
|
||||
}
|
||||
return pagedInfo, err
|
||||
}
|
||||
|
||||
func GetStoreSkuAuditLight(db *DaoDB, storeIDs, nameIDs []int, status int) (storeSkuAudit []*model.StoreSkuAudit, err error) {
|
||||
sql := `
|
||||
SELECT a.*
|
||||
FROM store_sku_audit a
|
||||
WHERE a.deleted_at = ?
|
||||
`
|
||||
sqlParams := []interface{}{utils.DefaultTimeValue}
|
||||
if len(storeIDs) > 0 {
|
||||
sql += " AND a.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
||||
sqlParams = append(sqlParams, storeIDs)
|
||||
}
|
||||
if len(nameIDs) > 0 {
|
||||
sql += " AND a.name_id IN (" + GenQuestionMarks(len(nameIDs)) + ")"
|
||||
sqlParams = append(sqlParams, nameIDs)
|
||||
}
|
||||
if status != model.StoreAuditStatusAll {
|
||||
sql += " AND a.status = ? "
|
||||
sqlParams = append(sqlParams, status)
|
||||
}
|
||||
err = GetRows(db, &storeSkuAudit, sql, sqlParams...)
|
||||
return storeSkuAudit, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user