删除分类调价比例
This commit is contained in:
@@ -131,7 +131,7 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac
|
|||||||
VendorID: vendorID,
|
VendorID: vendorID,
|
||||||
|
|
||||||
SyncStatus: model.SyncFlagNewMask,
|
SyncStatus: model.SyncFlagNewMask,
|
||||||
VendorPrice: int64(jxutils.CaculateSkuVendorPrice(storeSkuInfo.Price, pricePercentage, 0)),
|
VendorPrice: int64(jxutils.CaculateSkuVendorPrice(storeSkuInfo.Price, pricePercentage)),
|
||||||
}
|
}
|
||||||
v.OriginalPrice = actSkuMap.VendorPrice
|
v.OriginalPrice = actSkuMap.VendorPrice
|
||||||
if act.Type == model.ActSkuFake {
|
if act.Type == model.ActSkuFake {
|
||||||
@@ -144,7 +144,7 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac
|
|||||||
if v.PricePercentage != 0 {
|
if v.PricePercentage != 0 {
|
||||||
percentage = v.PricePercentage
|
percentage = v.PricePercentage
|
||||||
}
|
}
|
||||||
actSkuMap.ActualActPrice = int64(jxutils.CaculateSkuVendorPrice(int(actSkuMap.VendorPrice), percentage, 0))
|
actSkuMap.ActualActPrice = int64(jxutils.CaculateSkuVendorPrice(int(actSkuMap.VendorPrice), percentage))
|
||||||
if actSkuMap.ActualActPrice > 10 {
|
if actSkuMap.ActualActPrice > 10 {
|
||||||
actSkuMap.ActualActPrice = int64(math.Round(float64(actSkuMap.ActualActPrice)/10) * 10)
|
actSkuMap.ActualActPrice = int64(math.Round(float64(actSkuMap.ActualActPrice)/10) * 10)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1847,8 +1847,8 @@ func RefreshStoresSkuByVendor(ctx *jxcontext.Context, storeIDs []int, vendorID i
|
|||||||
for _, v := range storeSkuList {
|
for _, v := range storeSkuList {
|
||||||
pricePercentage := jxutils.GetPricePercentageByVendorPrice(storeMap[v.StoreID].PricePercentagePackObj, v.Price, int(storeMap[v.StoreID].PricePercentage))
|
pricePercentage := jxutils.GetPricePercentageByVendorPrice(storeMap[v.StoreID].PricePercentagePackObj, v.Price, int(storeMap[v.StoreID].PricePercentage))
|
||||||
skuName := skuNameMap[skuMap[v.SkuID].NameID]
|
skuName := skuNameMap[skuMap[v.SkuID].NameID]
|
||||||
v.Price = jxutils.CaculateSkuPriceFromVendor(v.Price, pricePercentage, 0)
|
v.Price = jxutils.CaculateSkuPriceFromVendor(v.Price, pricePercentage)
|
||||||
v.UnitPrice = jxutils.CaculateSkuPriceFromVendor(skuName.Price, pricePercentage, 0)
|
v.UnitPrice = jxutils.CaculateSkuPriceFromVendor(skuName.Price, pricePercentage)
|
||||||
dao.WrapAddIDCULDEntity(v, ctx.GetUserName())
|
dao.WrapAddIDCULDEntity(v, ctx.GetUserName())
|
||||||
setStoreSkuBindStatus(v, model.SyncFlagNewMask)
|
setStoreSkuBindStatus(v, model.SyncFlagNewMask)
|
||||||
v.JdSyncStatus = 0
|
v.JdSyncStatus = 0
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ func storeSkuSyncInfo2Bare(inSku *dao.StoreSkuSyncInfo) (outSku *partner.StoreSk
|
|||||||
func calVendorPrice4StoreSku(inSku *dao.StoreSkuSyncInfo, pricePercentagePack model.PricePercentagePack, pricePercentage int) (outSku *dao.StoreSkuSyncInfo) {
|
func calVendorPrice4StoreSku(inSku *dao.StoreSkuSyncInfo, pricePercentagePack model.PricePercentagePack, pricePercentage int) (outSku *dao.StoreSkuSyncInfo) {
|
||||||
if inSku.VendorPrice <= 0 { // 避免重新计算
|
if inSku.VendorPrice <= 0 { // 避免重新计算
|
||||||
pricePercentage = jxutils.GetPricePercentage(pricePercentagePack, int(inSku.Price), pricePercentage)
|
pricePercentage = jxutils.GetPricePercentage(pricePercentagePack, int(inSku.Price), pricePercentage)
|
||||||
inSku.VendorPrice = int64(jxutils.CaculateSkuVendorPrice(int(inSku.Price), pricePercentage, 0))
|
inSku.VendorPrice = int64(jxutils.CaculateSkuVendorPrice(int(inSku.Price), pricePercentage))
|
||||||
if inSku.VendorPrice <= 0 {
|
if inSku.VendorPrice <= 0 {
|
||||||
inSku.VendorPrice = 1 // 最少1分钱
|
inSku.VendorPrice = 1 // 最少1分钱
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -197,6 +197,10 @@ func StringList2Map(strList []string) map[string]int {
|
|||||||
return retVal
|
return retVal
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetSliceLen(list interface{}) int {
|
||||||
|
return reflect.ValueOf(list).Len()
|
||||||
|
}
|
||||||
|
|
||||||
func RegularizeSkuQuality(specQuality float32, specUnit string) (g int) {
|
func RegularizeSkuQuality(specQuality float32, specUnit string) (g int) {
|
||||||
lowerSpecUnit := strings.ToLower(specUnit)
|
lowerSpecUnit := strings.ToLower(specUnit)
|
||||||
if lowerSpecUnit == "kg" || lowerSpecUnit == "l" {
|
if lowerSpecUnit == "kg" || lowerSpecUnit == "l" {
|
||||||
@@ -235,40 +239,28 @@ func CaculateUnitPrice(skuPrice int, specQuality float32, specUnit string, skuNa
|
|||||||
// } else if specQuality2 < 500 {
|
// } else if specQuality2 < 500 {
|
||||||
// unitPrice = unitPrice * 100 / 105
|
// unitPrice = unitPrice * 100 / 105
|
||||||
// }
|
// }
|
||||||
if unitPrice <= 0 {
|
if unitPrice <= 1 {
|
||||||
unitPrice = 1
|
unitPrice = 1
|
||||||
}
|
}
|
||||||
return unitPrice
|
return unitPrice
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetSliceLen(list interface{}) int {
|
func CaculateSkuVendorPrice(price, percentage int) (vendorPrice int) {
|
||||||
return reflect.ValueOf(list).Len()
|
|
||||||
}
|
|
||||||
|
|
||||||
func CaculateSkuVendorPrice(price, percentage, catPercentage int) int {
|
|
||||||
if percentage <= 10 || percentage >= 400 {
|
if percentage <= 10 || percentage >= 400 {
|
||||||
percentage = 100
|
percentage = 100
|
||||||
}
|
}
|
||||||
if catPercentage <= 10 || catPercentage >= 400 {
|
vendorPrice = int(math.Round(float64(price*percentage) / 100))
|
||||||
catPercentage = 100
|
|
||||||
}
|
|
||||||
percentage = percentage * catPercentage / 100
|
|
||||||
vendorPrice := int(math.Round(float64(price*percentage) / 100))
|
|
||||||
if vendorPrice < 0 {
|
if vendorPrice < 0 {
|
||||||
vendorPrice = 0
|
vendorPrice = 0
|
||||||
}
|
}
|
||||||
return vendorPrice
|
return vendorPrice
|
||||||
}
|
}
|
||||||
|
|
||||||
func CaculateSkuPriceFromVendor(vendorPrice, percentage, catPercentage int) int {
|
func CaculateSkuPriceFromVendor(vendorPrice, percentage int) (price int) {
|
||||||
if percentage <= 10 || percentage >= 400 {
|
if percentage <= 10 || percentage >= 400 {
|
||||||
percentage = 100
|
percentage = 100
|
||||||
}
|
}
|
||||||
if catPercentage <= 10 || catPercentage >= 400 {
|
price = int(math.Round(float64(vendorPrice) * 100 / float64(percentage)))
|
||||||
catPercentage = 100
|
|
||||||
}
|
|
||||||
percentage = percentage * catPercentage / 100
|
|
||||||
price := int(math.Round(float64(vendorPrice) * 100 / float64(percentage)))
|
|
||||||
if price < 0 {
|
if price < 0 {
|
||||||
price = 0
|
price = 0
|
||||||
}
|
}
|
||||||
@@ -297,7 +289,7 @@ func GetPricePercentageByVendorPrice(l model.PricePercentagePack, vendorPrice in
|
|||||||
if len(l) > 0 {
|
if len(l) > 0 {
|
||||||
var lastItem *model.PricePercentageItem
|
var lastItem *model.PricePercentageItem
|
||||||
for _, v := range l {
|
for _, v := range l {
|
||||||
if CaculateSkuVendorPrice(v.BeginPrice, v.PricePercentage, 0) > vendorPrice {
|
if CaculateSkuVendorPrice(v.BeginPrice, v.PricePercentage) > vendorPrice {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
lastItem = v
|
lastItem = v
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ type StoreSkuSyncInfo struct {
|
|||||||
|
|
||||||
// 平台相关的图片信息
|
// 平台相关的图片信息
|
||||||
Img string
|
Img string
|
||||||
DescImg string
|
DescImg string // 饿百是SkuName中的DescImgEbai
|
||||||
|
|
||||||
VendorVendorCatID int64 `orm:"column(vendor_vendor_cat_id)"` // 平台商品分类(叶子结点)
|
VendorVendorCatID int64 `orm:"column(vendor_vendor_cat_id)"` // 平台商品分类(叶子结点)
|
||||||
|
|
||||||
@@ -75,8 +75,6 @@ type StoreSkuSyncInfo struct {
|
|||||||
StoreCatSyncStatus int8
|
StoreCatSyncStatus int8
|
||||||
VendorCatID string `orm:"column(vendor_cat_id)"`
|
VendorCatID string `orm:"column(vendor_cat_id)"`
|
||||||
|
|
||||||
CatPricePercentage int
|
|
||||||
|
|
||||||
VendorPrice int64
|
VendorPrice int64
|
||||||
MergedStatus int
|
MergedStatus int
|
||||||
SkuName string
|
SkuName string
|
||||||
@@ -221,11 +219,11 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, isDirty bool)
|
|||||||
t1.%s_sync_status store_sku_sync_status, %s vendor_name_id, t1.store_id, t1.deleted_at bind_deleted_at,
|
t1.%s_sync_status store_sku_sync_status, %s vendor_name_id, t1.store_id, t1.deleted_at bind_deleted_at,
|
||||||
t2.*,
|
t2.*,
|
||||||
t3.id name_id, t3.prefix, t3.name, t3.unit, IF(t3.%s <> '', t3.%s, t3.img) img, t3.upc, t3.%s desc_img,
|
t3.id name_id, t3.prefix, t3.name, t3.unit, IF(t3.%s <> '', t3.%s, t3.img) img, t3.upc, t3.%s desc_img,
|
||||||
t4.%s_category_id vendor_vendor_cat_id, t4.%s_price_percentage cat_price_percentage
|
t4.%s_category_id vendor_vendor_cat_id
|
||||||
`
|
`
|
||||||
fmtParams := []interface{}{
|
fmtParams := []interface{}{
|
||||||
tableName, fieldPrefix, fieldPrefix, vendorSkuNameField, GetImgFieldName(vendorID), GetImgFieldName(vendorID), GetDescImgFieldName(vendorID),
|
tableName, fieldPrefix, fieldPrefix, vendorSkuNameField, GetImgFieldName(vendorID),
|
||||||
fieldPrefix, fieldPrefix,
|
GetImgFieldName(vendorID), GetDescImgFieldName(vendorID), fieldPrefix,
|
||||||
}
|
}
|
||||||
// if vendorID == model.VendorIDEBAI {
|
// if vendorID == model.VendorIDEBAI {
|
||||||
// sql += `,
|
// sql += `,
|
||||||
@@ -312,7 +310,7 @@ func GetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSyncInf
|
|||||||
SELECT t1.id bind_id, t1.price, t1.unit_price, t1.status store_sku_status, t2.%s_id vendor_sku_id,
|
SELECT t1.id bind_id, t1.price, t1.unit_price, t1.status store_sku_status, t2.%s_id vendor_sku_id,
|
||||||
t1.%s_sync_status store_sku_sync_status, t1.store_id, t1.deleted_at bind_deleted_at,
|
t1.%s_sync_status store_sku_sync_status, t1.store_id, t1.deleted_at bind_deleted_at,
|
||||||
t2.*, t2.id sku_id,
|
t2.*, t2.id sku_id,
|
||||||
t3.id name_id, t3.prefix, t3.name, t3.unit, IF(t3.%s <> '', t3.%s, t3.img) img,
|
t3.id name_id, t3.prefix, t3.name, t3.unit, IF(t3.%s <> '', t3.%s, t3.img) img, t3.upc, t3.desc_img,
|
||||||
t4.%s_category_id vendor_vendor_cat_id,
|
t4.%s_category_id vendor_vendor_cat_id,
|
||||||
t4.%s_sync_status store_cat_sync_status, t4.%s_id vendor_cat_id,
|
t4.%s_sync_status store_cat_sync_status, t4.%s_id vendor_cat_id,
|
||||||
t5sku.%s_sync_status sku_store_cat_sync_status, t5sku.%s_id sku_vendor_cat_id
|
t5sku.%s_sync_status sku_store_cat_sync_status, t5sku.%s_id sku_vendor_cat_id
|
||||||
|
|||||||
@@ -135,15 +135,11 @@ type SkuCategory struct {
|
|||||||
Type int8 `json:"type"` // 类别类型,即是普通类别还是特殊用于做活动的类别
|
Type int8 `json:"type"` // 类别类型,即是普通类别还是特殊用于做活动的类别
|
||||||
Seq int `json:"seq"`
|
Seq int `json:"seq"`
|
||||||
|
|
||||||
JdPricePercentage int16 `orm:"default(100)" json:"jdPricePercentage"`
|
|
||||||
EbaiPricePercentage int16 `orm:"default(100)" json:"ebaiPricePercentage"`
|
|
||||||
MtwmPricePercentage int16 `orm:"default(100)" json:"mtwmPricePercentage"`
|
|
||||||
WscPricePercentage int16 `orm:"default(100)" json:"wscPricePercentage"`
|
|
||||||
|
|
||||||
JdCategoryID int64 `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别
|
JdCategoryID int64 `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别
|
||||||
ElmCategoryID int64 `orm:"column(elm_category_id)" json:"elmCategoryID"` // 这个是指对应的饿了么商品类别
|
|
||||||
EbaiCategoryID int64 `orm:"column(ebai_category_id)" json:"ebaiCategoryID"` // 这个是指对应的饿百商品类别
|
EbaiCategoryID int64 `orm:"column(ebai_category_id)" json:"ebaiCategoryID"` // 这个是指对应的饿百商品类别
|
||||||
MtwmCategoryID int64 `orm:"column(mtwm_category_id)" json:"mtwmCategoryID"` // 这个是指对应的美团外卖商品类别
|
MtwmCategoryID int64 `orm:"column(mtwm_category_id)" json:"mtwmCategoryID"` // 这个是指对应的美团外卖商品类别
|
||||||
|
|
||||||
|
ElmCategoryID int64 `orm:"column(elm_category_id)" json:"elmCategoryID"` // 这个是指对应的饿了么商品类别
|
||||||
WscCategoryID int64 `orm:"column(wsc_category_id)" json:"wscCategoryID"` // 这个是指对应的美团外卖商品类别
|
WscCategoryID int64 `orm:"column(wsc_category_id)" json:"wscCategoryID"` // 这个是指对应的美团外卖商品类别
|
||||||
|
|
||||||
JdID int64 `orm:"column(jd_id);null" json:"jdID"` // 这个是指商家自己的商品类别在京东平台上的ID
|
JdID int64 `orm:"column(jd_id);null" json:"jdID"` // 这个是指商家自己的商品类别在京东平台上的ID
|
||||||
@@ -201,13 +197,13 @@ type SkuName struct {
|
|||||||
ImgEbai string `orm:"size(255)" json:"imgEbai"` // 饿百图片地址
|
ImgEbai string `orm:"size(255)" json:"imgEbai"` // 饿百图片地址
|
||||||
ImgHashCode string `orm:"size(255);index" json:"img_hash_code"`
|
ImgHashCode string `orm:"size(255);index" json:"img_hash_code"`
|
||||||
|
|
||||||
|
DescImg string `orm:"size(255)" json:"descImg"` // 商品详情图片描述
|
||||||
|
DescImgEbai string `orm:"size(255)" json:"descImgEbai"` // 饿百的商品详情图片描述RTF
|
||||||
|
|
||||||
Upc string `orm:"size(20);index"`
|
Upc string `orm:"size(20);index"`
|
||||||
Status int `orm:"default(1)" json:"status"` // skuname状态,取值同sku.Status
|
Status int `orm:"default(1)" json:"status"` // skuname状态,取值同sku.Status
|
||||||
IsSpu int8 `orm:"column(is_spu)" json:"isSpu"` // 用于指明是否SKUNAME当成SPU
|
IsSpu int8 `orm:"column(is_spu)" json:"isSpu"` // 用于指明是否SKUNAME当成SPU
|
||||||
|
|
||||||
DescImg string `orm:"size(255)" json:"descImg"` // 商品详情图片描述
|
|
||||||
DescImgEbai string `orm:"size(255)" json:"descImgEbai"` // 饿百的商品详情图片描述RTF
|
|
||||||
|
|
||||||
JdID int64 `orm:"column(jd_id);null;index" json:"jdID"`
|
JdID int64 `orm:"column(jd_id);null;index" json:"jdID"`
|
||||||
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
|
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user