- up.
This commit is contained in:
@@ -12,18 +12,9 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SkuNameExt struct {
|
|
||||||
model.SkuName
|
|
||||||
Skus []*model.Sku `orm:"-" json:"skus"`
|
|
||||||
SkusStr string `json:"-"`
|
|
||||||
|
|
||||||
Places []int `orm:"-" json:"places"`
|
|
||||||
PlacesStr string `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type SkuNamesInfo struct {
|
type SkuNamesInfo struct {
|
||||||
TotalCount int `json:"totalCount"`
|
TotalCount int `json:"totalCount"`
|
||||||
SkuNames []*SkuNameExt `json:"skuNames"`
|
SkuNames []*model.SkuNameExt `json:"skuNames"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -295,7 +286,7 @@ func GetSkuNames(keyword string, params map[string]interface{}, offset, pageSize
|
|||||||
return skuNamesInfo, err
|
return skuNamesInfo, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddSkuName(skuNameExt *SkuNameExt, userName string) (outSkuNameExt *SkuNameExt, err error) {
|
func AddSkuName(skuNameExt *model.SkuNameExt, userName string) (outSkuNameExt *model.SkuNameExt, err error) {
|
||||||
if skuNameExt.CategoryID == 0 {
|
if skuNameExt.CategoryID == 0 {
|
||||||
return nil, errors.New("CategoryID不能为空")
|
return nil, errors.New("CategoryID不能为空")
|
||||||
}
|
}
|
||||||
@@ -406,7 +397,7 @@ func DeleteSkuName(nameID int, userName string) (num int64, err error) {
|
|||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddSku(nameID int, sku *model.Sku, userName string) (outSkuNameExt *SkuNameExt, err error) {
|
func AddSku(nameID int, sku *model.Sku, userName string) (outSkuNameExt *model.SkuNameExt, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
dao.WrapAddIDCULDEntity(sku, userName)
|
dao.WrapAddIDCULDEntity(sku, userName)
|
||||||
sku.JdSyncStatus = model.SyncFlagNewMask
|
sku.JdSyncStatus = model.SyncFlagNewMask
|
||||||
@@ -484,3 +475,11 @@ func DeleteSkuNamePlace(nameID, placeCode int, userName string) (num int64, err
|
|||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetVendorSku(vendorID int, vendorSkuID string) (skuNameInfo *model.SkuNameExt, err error) {
|
||||||
|
handler := GetPurchaseHandler(vendorID)
|
||||||
|
if handler != nil {
|
||||||
|
return handler.ReadSku(vendorSkuID)
|
||||||
|
}
|
||||||
|
return nil, ErrCanNotVendor
|
||||||
|
}
|
||||||
|
|||||||
@@ -203,3 +203,12 @@ func (*SkuNamePlaceBind) TableUnique() [][]string {
|
|||||||
[]string{"NameID", "PlaceCode"},
|
[]string{"NameID", "PlaceCode"},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SkuNameExt struct {
|
||||||
|
SkuName
|
||||||
|
Skus []*Sku `orm:"-" json:"skus"`
|
||||||
|
SkusStr string `json:"-"`
|
||||||
|
|
||||||
|
Places []int `orm:"-" json:"places"`
|
||||||
|
PlacesStr string `json:"-"`
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package partner
|
package partner
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
@@ -19,6 +20,10 @@ var (
|
|||||||
CancelWaybillReasonStrActive = "操作由人员主动发起"
|
CancelWaybillReasonStrActive = "操作由人员主动发起"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
ErrCanNotFindItem = errors.New("没有找到指定的东西")
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
CurOrderManager IOrderManager
|
CurOrderManager IOrderManager
|
||||||
)
|
)
|
||||||
@@ -72,9 +77,15 @@ type IPurchasePlatformHandler interface {
|
|||||||
ReorderCategories(parentCat *model.SkuCategory, userName string) (err error)
|
ReorderCategories(parentCat *model.SkuCategory, userName string) (err error)
|
||||||
|
|
||||||
CreateSku(sku *model.Sku, userName string) (err error)
|
CreateSku(sku *model.Sku, userName string) (err error)
|
||||||
ReadSku(vendorSkuID string) (skuName *model.SkuName, sellPlaces []*model.Place, sku *model.Sku, err error)
|
ReadSku(vendorSkuID string) (skuNameExt *model.SkuNameExt, err error)
|
||||||
UpdateSku(sku *model.Sku, userName string) (err error)
|
UpdateSku(sku *model.Sku, userName string) (err error)
|
||||||
DeleteSku(sku *model.Sku, userName string) (err error)
|
DeleteSku(sku *model.Sku, userName string) (err error)
|
||||||
|
|
||||||
|
//store sku
|
||||||
|
// CreateStoreSku(storeID int, sku *model.Sku, userName string) (err error)
|
||||||
|
// ReadStoreSku(vendorSkuID string) (skuName *model.SkuName, sellPlaces []*model.Place, sku *model.Sku, err error)
|
||||||
|
// UpdateStoreSku(storeID int, sku *model.Sku, userName string) (err error)
|
||||||
|
// DeleteStoreSku(storeID int, sku *model.Sku, userName string) (err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type IDeliveryPlatformHandler interface {
|
type IDeliveryPlatformHandler interface {
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ func (p *PurchaseHandler) CreateSku(sku *model.Sku, userName string) (err error)
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuName *model.SkuName, sellPlaces []*model.Place, sku *model.Sku, err error) {
|
func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) {
|
||||||
return nil, nil, nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateSku(sku *model.Sku, userName string) (err error) {
|
func (p *PurchaseHandler) UpdateSku(sku *model.Sku, userName string) (err error) {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
)
|
)
|
||||||
@@ -19,9 +20,9 @@ const (
|
|||||||
type skuInfoExt struct {
|
type skuInfoExt struct {
|
||||||
model.SkuName
|
model.SkuName
|
||||||
Img string
|
Img string
|
||||||
JdID int64 // 商家类别
|
JdID int64 `orm:"column(jd_id)"` // 商家类别
|
||||||
JdCategoryID int // 到家类别
|
JdCategoryID int `orm:"column(jd_category_id)"` // 到家类别
|
||||||
SkuCatID int64 // 商家特殊类别
|
SkuCatID int64 `orm:"column(sku_cat_id)"` // 商家特殊类别
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) CreateCategory(cat *model.SkuCategory, userName string) (err error) {
|
func (p *PurchaseHandler) CreateCategory(cat *model.SkuCategory, userName string) (err error) {
|
||||||
@@ -158,10 +159,15 @@ func (p *PurchaseHandler) CreateSku(sku *model.Sku, userName string) (err error)
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuName *model.SkuName, sellPlaces []*model.Place, sku *model.Sku, err error) {
|
func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) {
|
||||||
result, _, err := api.JdAPI.QuerySkuInfos("", int(utils.Str2Int64(vendorSkuID)), 0, 0, false)
|
jdSkuID := utils.Str2Int64(vendorSkuID)
|
||||||
|
result, _, err := api.JdAPI.QuerySkuInfos("", jdSkuID, 0, 0, false)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if len(result) == 1 {
|
if len(result) == 1 {
|
||||||
|
skuNameExt = &model.SkuNameExt{}
|
||||||
|
if picInfo, err2 := api.JdAPI.QueryListBySkuIds([]int64{jdSkuID}, nil); err2 == nil && len(picInfo) > 0 {
|
||||||
|
skuNameExt.Img = utils.Interface2String(picInfo[0]["sourceImgUrl"])
|
||||||
|
}
|
||||||
mapData := result[0]
|
mapData := result[0]
|
||||||
skuNameStr := utils.Interface2String(mapData["skuName"])
|
skuNameStr := utils.Interface2String(mapData["skuName"])
|
||||||
prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(skuNameStr)
|
prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(skuNameStr)
|
||||||
@@ -170,42 +176,53 @@ func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuName *model.SkuName, s
|
|||||||
unit = "份"
|
unit = "份"
|
||||||
specUnit = "g"
|
specUnit = "g"
|
||||||
}
|
}
|
||||||
skuName = &model.SkuName{
|
skuNameExt.Prefix = prefix
|
||||||
Prefix: prefix,
|
skuNameExt.Name = name
|
||||||
Name: name,
|
skuNameExt.Comment = comment
|
||||||
Comment: comment,
|
skuNameExt.Unit = unit
|
||||||
Unit: unit,
|
skuNameExt.Price = int(utils.MustInterface2Int64(mapData["skuPrice"]))
|
||||||
Price: int(utils.MustInterface2Int64(mapData["skuPrice"])),
|
skuNameExt.Skus = []*model.Sku{
|
||||||
|
&model.Sku{
|
||||||
|
SpecQuality: specQuality,
|
||||||
|
SpecUnit: specUnit,
|
||||||
|
Weight: jxutils.FloatWeight2Int(float32(utils.MustInterface2Float64(mapData["weight"]))),
|
||||||
|
JdID: utils.MustInterface2Int64(mapData["skuId"]),
|
||||||
|
Status: jdStatus2jxStatus(int(utils.MustInterface2Int64(mapData["fixedStatus"]))),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
sku = &model.Sku{
|
skuNameExt.Skus[0].ID = int(utils.Str2Int64(utils.Interface2String(mapData["outSkuId"])))
|
||||||
SpecQuality: specQuality,
|
|
||||||
SpecUnit: specUnit,
|
|
||||||
Weight: jxutils.FloatWeight2Int(float32(utils.MustInterface2Float64(mapData["weight"]))),
|
|
||||||
JdID: utils.MustInterface2Int64(mapData["skuId"]),
|
|
||||||
Status: jdStatus2jxStatus(int(utils.MustInterface2Int64(mapData["fixedStatus"]))),
|
|
||||||
}
|
|
||||||
sku.ID = int(utils.Str2Int64(utils.Interface2String(mapData["outSkuId"])))
|
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
shopCategories := utils.Interface2Int64List(mapData["shopCategories"])
|
shopCategories := utils.Interface2Int64List(mapData["shopCategories"])
|
||||||
if len(shopCategories) > 0 {
|
if len(shopCategories) > 0 {
|
||||||
skuCat := &model.SkuCategory{}
|
skuCat := &model.SkuCategory{}
|
||||||
skuCat.JdID = shopCategories[0]
|
skuCat.JdID = shopCategories[0]
|
||||||
if dao.GetEntity(db, skuCat, "JdID") == nil {
|
if dao.GetEntity(db, skuCat, "JdID") == nil {
|
||||||
skuName.CategoryID = skuCat.ID
|
skuNameExt.CategoryID = skuCat.ID
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sellCities := utils.Interface2Int64List(mapData["sellCities"])
|
sellCities := utils.Interface2Int64List(mapData["sellCities"])
|
||||||
if len(sellCities) == 0 {
|
for _, v := range sellCities {
|
||||||
skuName.IsGlobal = 1
|
if v == 0 {
|
||||||
} else {
|
skuNameExt.IsGlobal = 1
|
||||||
sellPlaces = make([]*model.Place, 0)
|
}
|
||||||
err2 := dao.GetRows(db, &sellPlaces, "SELECT * FROM place WHERE jd_code IN (?) AND level = 2", sellCities)
|
|
||||||
globals.SugarLogger.Debug("err2:%v", err2)
|
|
||||||
}
|
}
|
||||||
return skuName, sellPlaces, sku, nil
|
if len(sellCities) == 0 || skuNameExt.IsGlobal == 1 {
|
||||||
|
skuNameExt.IsGlobal = 1
|
||||||
|
} else {
|
||||||
|
var places []*model.Place
|
||||||
|
if err = dao.GetRows(db, &places, "SELECT * FROM place WHERE jd_code IN ("+dao.GenQuestionMarks(len(sellCities))+") AND level = 2", sellCities); err == nil {
|
||||||
|
skuNameExt.Places = make([]int, len(places))
|
||||||
|
for k, v := range places {
|
||||||
|
skuNameExt.Places[k] = v.Code
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err = partner.ErrCanNotFindItem
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil, nil, nil, err
|
return skuNameExt, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) UpdateSku(sku *model.Sku, userName string) (err error) {
|
func (p *PurchaseHandler) UpdateSku(sku *model.Sku, userName string) (err error) {
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ func (c *SkuController) GetSkuNames() {
|
|||||||
// @router /AddSkuName [post]
|
// @router /AddSkuName [post]
|
||||||
func (c *SkuController) AddSkuName() {
|
func (c *SkuController) AddSkuName() {
|
||||||
c.callAddSkuName(func(params *tSkuAddSkuNameParams) (retVal interface{}, errCode string, err error) {
|
c.callAddSkuName(func(params *tSkuAddSkuNameParams) (retVal interface{}, errCode string, err error) {
|
||||||
skuName := &cms.SkuNameExt{}
|
skuName := &model.SkuNameExt{}
|
||||||
if err = utils.UnmarshalUseNumber([]byte(params.Payload), skuName); err == nil {
|
if err = utils.UnmarshalUseNumber([]byte(params.Payload), skuName); err == nil {
|
||||||
retVal, err = cms.AddSkuName(skuName, GetUserNameFromToken(params.Token))
|
retVal, err = cms.AddSkuName(skuName, GetUserNameFromToken(params.Token))
|
||||||
}
|
}
|
||||||
@@ -269,3 +269,18 @@ func (c *SkuController) DeleteSkuNamePlace() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 远程查询厂商SKU信息
|
||||||
|
// @Description 远程查询厂商SKU信息,这个是实时调用API远程查询
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param vendorSkuID query string true "sku ID"
|
||||||
|
// @Param vendorID query int true "门店所属的厂商ID"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /GetVendorSku [get]
|
||||||
|
func (c *SkuController) GetVendorSku() {
|
||||||
|
c.callGetVendorSku(func(params *tSkuGetVendorSkuParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
retVal, err = cms.GetVendorSku(params.VendorID, params.VendorSkuID)
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -231,6 +231,14 @@ func init() {
|
|||||||
MethodParams: param.Make(),
|
MethodParams: param.Make(),
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||||
|
beego.ControllerComments{
|
||||||
|
Method: "GetVendorSku",
|
||||||
|
Router: `/GetVendorSku`,
|
||||||
|
AllowHTTPMethods: []string{"get"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "ReorderCategories",
|
Method: "ReorderCategories",
|
||||||
|
|||||||
Reference in New Issue
Block a user