新增小程序扫码建商品
This commit is contained in:
@@ -30,6 +30,7 @@ import (
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
|
||||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/baseapi/utils/errlist"
|
||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
|
||||
@@ -4131,7 +4132,7 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr
|
||||
Upc: &productInfo.UpcCode,
|
||||
Status: model.SkuStatusNormal,
|
||||
CategoryID: 175,
|
||||
IsGlobal: model.NO,
|
||||
IsGlobal: model.YES,
|
||||
Unit: productInfo.Unit,
|
||||
},
|
||||
Skus: []*model.SkuWithVendor{
|
||||
@@ -4139,7 +4140,7 @@ func CreateSkusAndFocusFromYb(ctx *jxcontext.Context, isAsync, isContinueWhenErr
|
||||
Sku: &model.Sku{},
|
||||
},
|
||||
},
|
||||
Places: []int{510100}, //默认成都
|
||||
// Places: []int{510100}, //默认成都
|
||||
}
|
||||
if len(v.SkuList) > 0 {
|
||||
skuNameExt.Price = int(v.SkuList[0].VendorPrice)
|
||||
@@ -4196,3 +4197,77 @@ func buildStoreSkuBindInfosAndFocus(ctx *jxcontext.Context, db *dao.DaoDB, store
|
||||
err = dao.CreateEntity(db, skuBind)
|
||||
return err
|
||||
}
|
||||
|
||||
func CreateSkusAndFocusFromWx(ctx *jxcontext.Context, productInfo *jdapi.ProductInfo, price, storeID int) (err error) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
skuBindInfos []*StoreSkuBindInfo
|
||||
)
|
||||
if productInfo == nil {
|
||||
return fmt.Errorf("未查询到相关商品!")
|
||||
}
|
||||
if price == 0 {
|
||||
return fmt.Errorf("请输入商品价格!")
|
||||
}
|
||||
skuNames, err := dao.GetSkuNames(db, nil, nil, productInfo.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(skuNames) > 1 {
|
||||
return fmt.Errorf("此商品名在京西库中查询出了大于1个商品,[%v]", productInfo.Name)
|
||||
}
|
||||
//表示查到了,需要把upc更新上去,没查到就要新建
|
||||
if len(skuNames) == 1 && (productInfo.SpecQuality == skuNames[0].SpecQuality && productInfo.SpecUnit == skuNames[0].SpecUnit) {
|
||||
skuNames[0].Upc = &productInfo.UpcCode
|
||||
dao.UpdateEntity(db, skuNames[0], "Upc")
|
||||
skuBindInfo := &StoreSkuBindInfo{
|
||||
StoreID: storeID,
|
||||
NameID: skuNames[0].ID,
|
||||
UnitPrice: price,
|
||||
IsFocus: 1,
|
||||
IsSale: 1,
|
||||
}
|
||||
skuBindInfos = append(skuBindInfos, skuBindInfo)
|
||||
UpdateStoresSkusByBind(ctx, nil, skuBindInfos, false, true)
|
||||
} else {
|
||||
skuNameExt := &model.SkuNameExt{
|
||||
SkuName: model.SkuName{
|
||||
Name: productInfo.Name,
|
||||
Upc: &productInfo.UpcCode,
|
||||
Status: model.SkuStatusNormal,
|
||||
CategoryID: 175,
|
||||
IsGlobal: model.YES,
|
||||
Unit: productInfo.Unit,
|
||||
},
|
||||
Skus: []*model.SkuWithVendor{
|
||||
&model.SkuWithVendor{
|
||||
Sku: &model.Sku{},
|
||||
},
|
||||
},
|
||||
// Places: []int{510100}, //默认成都
|
||||
}
|
||||
skuNameExt.Price = price
|
||||
skuNameExt.Skus[0].SpecQuality = productInfo.SpecQuality
|
||||
skuNameExt.Skus[0].SpecUnit = productInfo.SpecUnit
|
||||
skuNameExt.Skus[0].Weight = int(utils.Str2Int64(utils.Float64ToStr(float64(productInfo.Weight))))
|
||||
skuNameExt.Skus[0].Status = model.SkuStatusNormal
|
||||
|
||||
if len(productInfo.ImgList) > 0 {
|
||||
skuNameExt.Img = productInfo.ImgList[0]
|
||||
}
|
||||
outSkuNameExt, err := AddSkuName(ctx, skuNameExt, ctx.GetUserName())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
skuBindInfo := &StoreSkuBindInfo{
|
||||
StoreID: storeID,
|
||||
NameID: outSkuNameExt.ID,
|
||||
UnitPrice: price,
|
||||
IsFocus: 1,
|
||||
IsSale: 1,
|
||||
}
|
||||
skuBindInfos = append(skuBindInfos, skuBindInfo)
|
||||
UpdateStoresSkusByBind(ctx, nil, skuBindInfos, false, true)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -36,8 +36,9 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDYB], "创建商品")
|
||||
} else {
|
||||
storeSku.VendorSkuID = utils.Int64ToStr(result.UID)
|
||||
// uploadYbImage(vendorStoreID, storeSku.YbBarCode, storeSku.Img)
|
||||
if !flag {
|
||||
updateYbSkuPluCode(vendorStoreID, storeSku.YbBarCode)
|
||||
updateYbSku(vendorStoreID, storeSku.YbBarCode)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -447,7 +448,7 @@ func convertVendorCatList(remoteCats []*yinbaoapi.LoadCategorysWithOptionResult)
|
||||
return cats
|
||||
}
|
||||
|
||||
func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) {
|
||||
func updateYbSku(vendorStoreID, ybBarCode string) (err error) {
|
||||
for {
|
||||
err = api.YinBaoAPI.SaveProduct(vendorStoreID, ybBarCode)
|
||||
if err == nil {
|
||||
@@ -458,7 +459,7 @@ func updateYbSkuPluCode(vendorStoreID, ybBarCode string) (err error) {
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
err = updateYbSkuPluCode(vendorStoreID, ybBarCode)
|
||||
err = updateYbSku(vendorStoreID, ybBarCode)
|
||||
} else {
|
||||
break
|
||||
}
|
||||
@@ -482,3 +483,11 @@ func checkYbSku(storeSku *dao.StoreSkuSyncInfo) (flag bool, err error) {
|
||||
}
|
||||
return flag, err
|
||||
}
|
||||
|
||||
// func uploadYbImage(vendorStoreID, ybBarCode, img string) (err error) {
|
||||
// ybSkuID, err := api.YinBaoAPI.LoadProductsByPage(vendorStoreID, ybBarCode)
|
||||
// resBinary, _, err := jxutils.DownloadFileByURL(img)
|
||||
|
||||
// api.YinBaoAPI.UploadProductImage(vendorStoreID, ybSkuID, file)
|
||||
// return err
|
||||
// }
|
||||
|
||||
@@ -4,6 +4,8 @@ import (
|
||||
"math"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
@@ -775,3 +777,23 @@ func (c *StoreSkuController) CreateSkusAndFocusFromYb() {
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 从微信上扫码标品到京西创建或关注
|
||||
// @Description 从微信上扫码标品到京西创建或关注
|
||||
// @Param token header string true "认证token"
|
||||
// @Param payload formData string true "json数据,ProductInfo对象"
|
||||
// @Param storeID formData int true "门店ID"
|
||||
// @Param price formData int true "商品价格"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /CreateSkusAndFocusFromWx [post]
|
||||
func (c *StoreSkuController) CreateSkusAndFocusFromWx() {
|
||||
var productInfo *jdapi.ProductInfo
|
||||
c.callCreateSkusAndFocusFromWx(func(params *tStoreSkuCreateSkusAndFocusFromWxParams) (retVal interface{}, errCode string, err error) {
|
||||
if err = jxutils.Strings2Objs(params.Payload, &productInfo); err != nil {
|
||||
return retVal, "", err
|
||||
}
|
||||
err = cms.CreateSkusAndFocusFromWx(params.Ctx, productInfo, params.Price, params.StoreID)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user