@@ -96,6 +96,7 @@ type tStoreSkuBindAndSpec struct {
ExdSkuID string ` orm:"column(exd_sku_id)" `
StoreName string
ChangePriceType int8 ` json:"changePriceType" ` // 修改价格类型,即是否需要审核
NameID int ` orm:"column(name_id)" json:"nameID" `
}
type SkuSaleInfo struct {
@@ -1022,7 +1023,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
sql += " IF(t5.unit_price > 0, t5.unit_price, t3.price) sku_name_price,"
}
sql += `
t3.unit sku_name_unit, t3.name, t3.status sku_name_status,
t3.unit sku_name_unit, t3.name, t3.status sku_name_status, t3.id name_id,
ts.change_price_type, ts.name store_name
FROM sku t1
JOIN store ts ON ts.id = ? AND ts.deleted_at = ?
@@ -1143,6 +1144,15 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
dao . Rollback ( db )
return nil , err
}
//删除待审核商品信息
storeAudits , err := dao . GetStoreSkuAuditLight ( db , [ ] int { storeID } , [ ] int { v . NameID } , model . StoreAuditStatusOnline )
if len ( storeAudits ) > 0 {
storeAudits [ 0 ] . DeletedAt = time . Now ( )
if _ , err = dao . UpdateEntity ( db , storeAudits [ 0 ] , "DeletedAt" ) ; err != nil {
dao . Rollback ( db )
return nil , err
}
}
} else {
// 用了SELECT FOR UPDATE后, 只更新修改字段是没有必要的, 暂时保留
updateFieldMap := make ( map [ string ] interface { } )
@@ -4458,8 +4468,8 @@ func doStoreSkuAudit(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*Sto
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 {
//取消 关注,可售排除
if skuBindInfo . IsFocus = = - 1 || skuBindInfo . IsSale != 0 || skuBindInfo . UnitPrice == 0 {
globals . SugarLogger . Debugf ( "doStoreSkuAudit return1 storeID : %v nameID: %v" , storeID , skuBindInfo . NameID )
return false , err
}
@@ -4476,31 +4486,41 @@ func doStoreSkuAudit(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*Sto
// globals.SugarLogger.Debugf("doStoreSkuAudit return3 storeID : %v nameID: %v", storeID, skuBindInfo.NameID)
// return false, err
// }
//如果改的价比原价低排除
storeSkus , err := dao . GetStoreSkusByNameIDs ( db , [ ] int { storeID } , skuBindInfo . NameID )
if len ( storeSkus ) > 0 {
if skuBindInfo . UnitPrice <= int ( storeSkus [ 0 ] . UnitPrice ) {
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 {
storeAudits [ 0 ] . DeletedAt = time . Now ( )
dao . UpdateEntity ( db , storeAudits [ 0 ] , "DeletedAt" )
}
}
} 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 . StoreAuditStatusOnlin e,
UnitPrice : skuBindInfo . UnitPrice ,
OriginUnitPrice : int ( storeSkus [ 0 ] . UnitPrice ) ,
StoreID : storeID ,
NameID : skuBindInfo . NameID ,
Status : model . StoreAuditStatusOnline ,
UnitPrice : skuBindInfo . UnitPric e,
}
//如果是关注改价
if skuBindInfo . IsFocus == 1 {
if len ( storeAudits ) > 0 {
storeAudits [ 0 ] . DeletedAt = time . Now ( )
dao . UpdateEntity ( db , storeAudits [ 0 ] , "DeletedAt" )
}
storeSkuAudit . Type = model . StoreSkuAuditTypeFocus
} else {
storeSkus , err := dao . GetStoreSkusByNameIDs ( db , [ ] int { storeID } , skuBindInfo . NameID )
if len ( storeSkus ) > 0 {
//如果改的价比原价低排除
if skuBindInfo . UnitPrice <= int ( storeSkus [ 0 ] . UnitPrice ) {
if len ( storeAudits ) > 0 {
storeAudits [ 0 ] . DeletedAt = time . Now ( )
dao . UpdateEntity ( db , storeAudits [ 0 ] , "DeletedAt" )
}
globals . SugarLogger . Debugf ( "doStoreSkuAudit return4 storeID : %v nameID: %v" , storeID , skuBindInfo . NameID )
return false , err
} else {
if len ( storeAudits ) > 0 {
storeAudits [ 0 ] . DeletedAt = time . Now ( )
dao . UpdateEntity ( db , storeAudits [ 0 ] , "DeletedAt" )
}
}
} else {
return false , fmt . Errorf ( "未查询到该门店商品价, storeID: %v, nameID: %V" , storeID , skuBindInfo . NameID )
}
storeSkuAudit . Type = model . StoreSkuAuditTypePrice
storeSkuAudit . OriginUnitPrice = int ( storeSkus [ 0 ] . UnitPrice )
}
dao . WrapAddIDCULDEntity ( storeSkuAudit , ctx . GetUserName ( ) )
err = dao . CreateEntity ( db , storeSkuAudit )
@@ -4530,7 +4550,8 @@ func StoreSkuPriceAudit(ctx *jxcontext.Context, storeIDs, nameIDs []int, status
if status == model . StoreAuditStatusCreated {
storeAudits [ 0 ] . UserID = ctx . GetUserID ( )
storeAudits [ 0 ] . Status = model . StoreAuditStatusCreated
_ , err = dao . UpdateEntity ( db , storeAudits[ 0 ] , "UserID" , "Status" )
storeAudits [ 0 ] . Remark = remark
_ , err = dao . UpdateEntity ( db , storeAudits [ 0 ] , "UserID" , "Status" , "Remark" )
var skuBindInfos = [ ] * StoreSkuBindInfo {
& StoreSkuBindInfo {
NameID : v ,