This commit is contained in:
苏尹岚
2021-01-28 14:44:16 +08:00
12 changed files with 79 additions and 22 deletions

View File

@@ -752,12 +752,12 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric
return skuNamesInfo, err
}
func CheckHasSensitiveWord(word string) (bool, error) {
func CheckHasSensitiveWord(word string) (bool, string) {
if hasSensitiveWord, sensitiveWord := IsSensitiveWordInList(word); hasSensitiveWord {
return true, errors.New(fmt.Sprintf("不能包含敏感词:[%s]", sensitiveWord))
return true, sensitiveWord
}
return false, nil
return false, ""
}
func IsSensitiveWordInList(str string) (bool, string) {
@@ -802,8 +802,8 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
}
skuNameExt.Name = utils.TrimBlankChar(skuNameExt.Name)
if hasSensitiveWord, err := CheckHasSensitiveWord(skuNameExt.Name); hasSensitiveWord {
return nil, err
if hasSensitiveWord, word := CheckHasSensitiveWord(skuNameExt.Name); hasSensitiveWord {
skuNameExt.Name = strings.ReplaceAll(skuNameExt.Name, word, "")
}
upc := utils.Pointer2String(skuNameExt.Upc)
if upc == "" {
@@ -946,10 +946,11 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
var beforSkuName = *skuName
if payload["name"] != nil {
newSkuName := utils.TrimBlankChar(utils.Interface2String(payload["name"]))
if hasSensitiveWord, err := CheckHasSensitiveWord(newSkuName); hasSensitiveWord {
return 0, err
if hasSensitiveWord, word := CheckHasSensitiveWord(newSkuName); hasSensitiveWord {
payload["name"] = strings.ReplaceAll(payload["name"].(string), word, "")
} else {
payload["name"] = newSkuName
}
payload["name"] = newSkuName
}
delete(payload, "isSpu")

View File

@@ -231,6 +231,6 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, maxRadius
return storeList, err
}
func GetVendorOrgCode(ctx *jxcontext.Context, vendorID int, vendorOrgCode string) (vendorOrgs []*model.VendorOrgCode, err error) {
return dao.GetVendorOrgCode(dao.GetDB(), vendorID, vendorOrgCode)
func GetVendorOrgCode(ctx *jxcontext.Context, vendorID int, vendorOrgCode, vendorType string) (vendorOrgs []*model.VendorOrgCode, err error) {
return dao.GetVendorOrgCode(dao.GetDB(), vendorID, vendorOrgCode, vendorType)
}

View File

@@ -32,9 +32,9 @@ func GetNeedUploadDataResource(db *DaoDB) (dataResList []*model.DataResource, er
return dataResList, err
}
func GetVendorOrgCode(db *DaoDB, vendorID int, vendorOrgCode string) (vendorOrgs []*model.VendorOrgCode, err error) {
func GetVendorOrgCode(db *DaoDB, vendorID int, vendorOrgCode, vendorType string) (vendorOrgs []*model.VendorOrgCode, err error) {
sql := `
SELECT vendor_id, vendor_org_code, comment, is_jx_cat
SELECT vendor_id, vendor_org_code, comment, is_jx_cat, is_open
FROM vendor_org_code
WHERE deleted_at = ?
`
@@ -47,6 +47,10 @@ func GetVendorOrgCode(db *DaoDB, vendorID int, vendorOrgCode string) (vendorOrgs
sql += " AND vendor_org_code = ?"
sqlParams = append(sqlParams, vendorOrgCode)
}
if vendorType != "" {
sql += " AND vendor_type = ?"
sqlParams = append(sqlParams, vendorType)
}
err = GetRows(db, &vendorOrgs, sql, sqlParams)
return vendorOrgs, err
}

View File

@@ -29,6 +29,7 @@ func GetMenu(db *DaoDB, name string, level int, userID string) (menus []*model.M
sql += " AND a.level = ?"
sqlParams = append(sqlParams, level)
}
sql += " ORDER BY a.id"
err = GetRows(db, &menus, sql, sqlParams)
return menus, err
}
@@ -42,6 +43,7 @@ func GetMenuWithUser(db *DaoDB, name string, level int, userID string) (menus []
JOIN role_menu c ON c.menu_id = a.id AND c.role_id = b.role_id AND c.deleted_at = ?
WHERE a.deleted_at = ?)a
JOIN menu b ON (b.id = a.id OR b.id = a.parent_id)
ORDER BY b.id
`
sqlParams := []interface{}{userID, utils.DefaultTimeValue, utils.DefaultTimeValue, utils.DefaultTimeValue}
err = GetRows(db, &menus, sql, sqlParams)

View File

@@ -108,12 +108,13 @@ func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int, eclpIDs []string
}
if len(catIDs) > 0 {
sql += `
JOIN sku_category t3 ON t3.id = t2.category_id
LEFT JOIN sku_category t3p ON t3p.id = t3.parent_id
JOIN sku_category t3 ON t3.id = t2.category_id AND t3.is_exd_spec = ?
LEFT JOIN sku_category t3p ON t3p.id = t3.parent_id AND t3p.is_exd_spec = ?
`
sqlWhere += " AND (t3.id IN (" + GenQuestionMarks(len(catIDs)) + ")"
sqlWhere += " OR t3p.id IN (" + GenQuestionMarks(len(catIDs)) + ") )"
sqlParams = append(sqlParams, catIDs, catIDs)
sqlWhere += " AND t1.exd_sku_id = ''"
sqlParams = append(sqlParams, model.NO, model.NO, catIDs, catIDs)
}
if len(eclpIDs) > 0 {
sqlWhere += " AND t1.eclp_id IN (" + GenQuestionMarks(len(eclpIDs)) + ")"

View File

@@ -1,5 +1,10 @@
package model
const (
VendorOrgTypePlatform = "platform" //外卖平台
VendorOrgTypeDelivery = "delivery" //配送平台
)
type VendorOrgCode struct {
ModelIDCULD
@@ -7,6 +12,8 @@ type VendorOrgCode struct {
VendorOrgCode string `orm:"size(32)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空
Comment string `json:"comment"` //备注
//appkeysecret token等
Type string `json:"type"` //platform 普通平台, delivery 三方配送平台
IsJxCat int `json:"isJxCat"` //是否使用京西分类0默认使用
VendorType string `json:"vendorType"` //platform 普通平台, delivery 三方配送平台
IsJxCat int `json:"isJxCat"` //是否使用京西分类0默认使用
IsOpen int `json:"isOpen"` //主要三方配送用是否配送默认0表示打开1表示关
}

View File

@@ -248,6 +248,15 @@ func (c *DeliveryHandler) getBillParams(db *dao.DaoDB, order *model.GoodsOrder)
// IDeliveryPlatformHandler
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
db := dao.GetDB()
if vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDDada, "", model.VendorOrgTypeDelivery); err == nil {
if len(vendorOrgCode) > 0 {
if vendorOrgCode[0].IsOpen == model.YES {
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
}
}
} else {
return nil, err
}
billParams, err := c.getBillParams(db, order)
if err == nil {
if globals.EnableStoreWrite {

View File

@@ -1,6 +1,7 @@
package fn
import (
"fmt"
"strings"
"time"
@@ -66,6 +67,15 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
var (
db = dao.GetDB()
)
if vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDFengNiao, "", model.VendorOrgTypeDelivery); err == nil {
if len(vendorOrgCode) > 0 {
if vendorOrgCode[0].IsOpen == model.YES {
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
}
}
} else {
return nil, err
}
storeDetail, err := dao.GetStoreDetail(db, order.StoreID, order.VendorID, order.VendorOrgCode)
deliveryFee, _, err := delivery.CalculateOrderDeliveryFee(order, time.Now(), db)
if err == nil {

View File

@@ -191,6 +191,15 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf
// IDeliveryPlatformHandler
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error) {
db := dao.GetDB()
if vendorOrgCode, err := dao.GetVendorOrgCode(db, model.VendorIDMTPS, "", model.VendorOrgTypeDelivery); err == nil {
if len(vendorOrgCode) > 0 {
if vendorOrgCode[0].IsOpen == model.YES {
return nil, fmt.Errorf("此平台配送已被系统关闭,暂不发配送 [%v]", vendorOrgCode[0].Comment)
}
}
} else {
return nil, err
}
deliveryFee, _, err := delivery.CalculateOrderDeliveryFee(order, time.Now(), db)
if err == nil {
if err = delivery.CallCreateWaybillPolicy(deliveryFee, maxDeliveryFee, order, model.VendorIDMTPS); err != nil {

View File

@@ -30,6 +30,7 @@ type tEbaiStoreInfo struct {
CityID int `orm:"column(city_id)"`
DistrictID int `orm:"column(district_id)"`
VendorStoreName string
BrandName string
}
func (p *PurchaseHandler) CreateStore(db *dao.DaoDB, storeID int, userName string) (vendorStoreID string, err error) {
@@ -151,9 +152,11 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
SELECT
t1.*,
t2.status ebai_store_status, t2.vendor_store_id, t2.vendor_org_code,
IF(t1.updated_at > t2.updated_at, t1.last_operator, t2.last_operator) real_last_operator, t2.sync_status, t2.vendor_store_name
IF(t1.updated_at > t2.updated_at, t1.last_operator, t2.last_operator) real_last_operator, t2.sync_status, t2.vendor_store_name,
t3.name brand_name
FROM store t1
JOIN store_map t2 ON t1.id = t2.store_id AND t2.vendor_id = ? AND (t2.deleted_at = ?)
LEFT JOIN brand t3 ON t3.id = t1.brand_id
WHERE t1.id = ?
ORDER BY t2.updated_at
`
@@ -398,7 +401,11 @@ func genStoreMapFromStore(store *tEbaiStoreInfo) map[string]interface{} {
if store.VendorStoreName != "" {
params["name"] = store.VendorStoreName
} else {
params["name"] = jxutils.ComposeStoreName(store.Name, model.VendorIDEBAI)
if store.BrandID != 1 {
params["name"] = store.Name
} else {
params["name"] = jxutils.ComposeStoreName(store.Name, model.VendorIDEBAI)
}
}
}
boxFee, _ := dao.GetSysConfigAsInt64(dao.GetDB(), model.ConfigSysEbaiBoxFee)

View File

@@ -33,6 +33,7 @@ type tJdStoreInfo struct {
RealLastOperator string
SyncStatus int
VendorStoreName string
BrandName string
}
var (
@@ -127,9 +128,11 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
t1.*, city.jd_code jd_city_code, district.jd_code jd_district_code,
t2.status jd_store_status, t2.vendor_store_id, IF(t1.updated_at > t2.updated_at, t1.last_operator,
t2.last_operator) real_last_operator,
t2.sync_status, t2.freight_deduction_pack, t2.vendor_org_code, t2.vendor_store_name
t2.sync_status, t2.freight_deduction_pack, t2.vendor_org_code, t2.vendor_store_name,
t3.name brand_name
FROM store t1
JOIN store_map t2 ON t1.id = t2.store_id AND t2.vendor_id = ? AND (t2.deleted_at = ?)
LEFT JOIN brand t3 ON t3.id = t1.brand_id
LEFT JOIN place city ON t1.city_code = city.code
LEFT JOIN place district ON t1.district_code = district.code
WHERE t1.id = ?
@@ -159,7 +162,11 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
if store.VendorStoreName != "" {
storeParams.StationName = store.VendorStoreName
} else {
storeParams.StationName = jxutils.ComposeStoreName(store.Name, model.VendorIDJD)
if store.BrandID != 1 {
storeParams.StationName = store.Name
} else {
storeParams.StationName = jxutils.ComposeStoreName(store.Name, model.VendorIDJD)
}
}
storeParams.StationName = utils.LimitUTF8StringLen(storeParams.StationName, jdapi.MaxStoreNameLen)
}

View File

@@ -137,7 +137,7 @@ func (c *SysController) GetEbaiRTFDetail() {
// @router /GetVendorOrgCode [get]
func (c *SysController) GetVendorOrgCode() {
c.callGetVendorOrgCode(func(params *tSysGetVendorOrgCodeParams) (retVal interface{}, errCode string, err error) {
retVal, err = common.GetVendorOrgCode(params.Ctx, params.VendorID, params.VendorOrgCode)
retVal, err = common.GetVendorOrgCode(params.Ctx, params.VendorID, params.VendorOrgCode, model.VendorOrgTypePlatform)
return retVal, "", err
})
}