1
This commit is contained in:
1689
delete_tt/makabaka_test.go
Normal file
1689
delete_tt/makabaka_test.go
Normal file
File diff suppressed because it is too large
Load Diff
1681
makabaka_test.go
1681
makabaka_test.go
File diff suppressed because it is too large
Load Diff
@@ -37,8 +37,8 @@ const (
|
|||||||
AlibabaUpdateAuthentication = "alipayRealName/modifyCommit" // 阿里修改实名认证
|
AlibabaUpdateAuthentication = "alipayRealName/modifyCommit" // 阿里修改实名认证
|
||||||
WeChatQueryAuthentication = "wechatRealNameQuery" // 微信实名认证结果查询
|
WeChatQueryAuthentication = "wechatRealNameQuery" // 微信实名认证结果查询
|
||||||
AlibabaQueryAuthentication = "alipayRealNameQuery" // 阿里修改实名认证
|
AlibabaQueryAuthentication = "alipayRealNameQuery" // 阿里修改实名认证
|
||||||
WeChatAccountStatusQuery = "alipayRealNameQuery" // 微信开户状态差取暖
|
WeChatAccountStatusQuery = "sme/mrchAuthStateQuery" // 微信开户状态差取暖
|
||||||
AlibabaAccountStatusQuery = "alipayRealNameQuery" // 阿里开户状态查询
|
AlibabaAccountStatusQuery = "sme/alipayRealNameQuery" // 阿里开户状态查询
|
||||||
SubMerchantQuery = "querySubMerInfo" // 报备查询
|
SubMerchantQuery = "querySubMerInfo" // 报备查询
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -77,3 +77,7 @@ func TestSaveAuthentication(t *testing.T) {
|
|||||||
}
|
}
|
||||||
api.SaveAuthentication(param, "WXPAY")
|
api.SaveAuthentication(param, "WXPAY")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAccountStatusQuery(t *testing.T) {
|
||||||
|
api.AccountStatusQuery("WECHAT", "793879932", "822651059990E2S")
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,6 +6,39 @@ type ProductListV2Response struct {
|
|||||||
doudian_sdk.BaseDoudianOpApiResponse
|
doudian_sdk.BaseDoudianOpApiResponse
|
||||||
Data *ProductListV2Data `json:"data"`
|
Data *ProductListV2Data `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ShopCategory struct {
|
||||||
|
// 店铺装修分类id
|
||||||
|
LeafCategoryIds []int64 `json:"leaf_category_ids"`
|
||||||
|
}
|
||||||
|
type PropertyKey struct {
|
||||||
|
// 属性id
|
||||||
|
PropertyId int64 `json:"property_id"`
|
||||||
|
// 属性名称
|
||||||
|
PropertyName string `json:"property_name"`
|
||||||
|
}
|
||||||
|
type ProductPropertyItem struct {
|
||||||
|
// 属性key
|
||||||
|
PropertyKey *PropertyKey `json:"property_key"`
|
||||||
|
// 属性值列表
|
||||||
|
PropertyValue []PropertyValueItem `json:"property_value"`
|
||||||
|
}
|
||||||
|
type SkuListItem struct {
|
||||||
|
// 规格图url
|
||||||
|
Url string `json:"url"`
|
||||||
|
// 规格名称
|
||||||
|
Title string `json:"title"`
|
||||||
|
// skuid
|
||||||
|
SkuId int64 `json:"sku_id"`
|
||||||
|
}
|
||||||
|
type RectifyInfoListItem struct {
|
||||||
|
// 自动整改信息
|
||||||
|
RectificationInfo *RectificationInfo `json:"rectification_info"`
|
||||||
|
// 整改动作
|
||||||
|
RectifyAction string `json:"rectify_action"`
|
||||||
|
// 驳回原因
|
||||||
|
RejectReason string `json:"reject_reason"`
|
||||||
|
}
|
||||||
type CategoryDetail struct {
|
type CategoryDetail struct {
|
||||||
// 一级类目
|
// 一级类目
|
||||||
FirstCid int64 `json:"first_cid"`
|
FirstCid int64 `json:"first_cid"`
|
||||||
@@ -24,7 +57,91 @@ type CategoryDetail struct {
|
|||||||
// 四级类目名称
|
// 四级类目名称
|
||||||
FourthCname string `json:"fourth_cname"`
|
FourthCname string `json:"fourth_cname"`
|
||||||
}
|
}
|
||||||
|
type NameSuggestion struct {
|
||||||
|
// 改后标题
|
||||||
|
AfterName string `json:"after_name"`
|
||||||
|
}
|
||||||
|
type AuditRejectSuggestion struct {
|
||||||
|
// 34主图建议
|
||||||
|
Pic34Suggestion *Pic34Suggestion `json:"pic34_suggestion"`
|
||||||
|
// 1:1主图建议
|
||||||
|
PicSuggestion *PicSuggestion `json:"pic_suggestion"`
|
||||||
|
// 标题建议
|
||||||
|
NameSuggestion *NameSuggestion `json:"name_suggestion"`
|
||||||
|
// 驳回原因
|
||||||
|
RejectReason string `json:"reject_reason"`
|
||||||
|
}
|
||||||
|
type TitleLimit struct {
|
||||||
|
// 商品标题最短长度
|
||||||
|
MinLength int64 `json:"min_length"`
|
||||||
|
// 商品标题最长长度
|
||||||
|
MaxLength int64 `json:"max_length"`
|
||||||
|
}
|
||||||
|
type PropertyValueItem struct {
|
||||||
|
// 属性值id
|
||||||
|
ValueId int64 `json:"value_id"`
|
||||||
|
// 属性值名称
|
||||||
|
ValueName string `json:"value_name"`
|
||||||
|
}
|
||||||
|
type PicListItem struct {
|
||||||
|
// 图片下标
|
||||||
|
Index int64 `json:"index"`
|
||||||
|
// 图片url
|
||||||
|
Url string `json:"url"`
|
||||||
|
// 图片类型
|
||||||
|
PicType int32 `json:"pic_type"`
|
||||||
|
}
|
||||||
|
type RectificationInfo struct {
|
||||||
|
// 整改图片明细
|
||||||
|
PicList []PicListItem `json:"pic_list"`
|
||||||
|
// 整改sku明细
|
||||||
|
SkuList []SkuListItem `json:"sku_list"`
|
||||||
|
}
|
||||||
|
type SpecPricesItem struct {
|
||||||
|
// skuId
|
||||||
|
Id int64 `json:"id"`
|
||||||
|
// skuCode
|
||||||
|
Code string `json:"code"`
|
||||||
|
// SKU Barcode
|
||||||
|
Barcodes []string `json:"barcodes"`
|
||||||
|
}
|
||||||
|
type ChannelMainProduct struct {
|
||||||
|
// 主品的商品id
|
||||||
|
ProductId int64 `json:"product_id"`
|
||||||
|
// 店铺id
|
||||||
|
ShopId int64 `json:"shop_id"`
|
||||||
|
}
|
||||||
type DataItem struct {
|
type DataItem struct {
|
||||||
|
// 商品类目属性信息
|
||||||
|
ProductProperty []ProductPropertyItem `json:"product_property"`
|
||||||
|
// 运费模版
|
||||||
|
FreightId int64 `json:"freight_id"`
|
||||||
|
// 是否二手数码(成色机)
|
||||||
|
IsSecondHandDigital bool `json:"is_second_hand_digital"`
|
||||||
|
// 是否需要核销
|
||||||
|
NeedCheckOut bool `json:"need_check_out"`
|
||||||
|
// 驳回修改建议
|
||||||
|
AuditRejectSuggestion *AuditRejectSuggestion `json:"audit_reject_suggestion"`
|
||||||
|
// 是否有驳回修改建议
|
||||||
|
HaveAuditRejectSuggest bool `json:"have_audit_reject_suggest"`
|
||||||
|
// 自动整改信息
|
||||||
|
RectifyInfoList []RectifyInfoListItem `json:"rectify_info_list"`
|
||||||
|
// sku信息
|
||||||
|
SpecPrices []SpecPricesItem `json:"spec_prices"`
|
||||||
|
// 标题后缀
|
||||||
|
NameSuffix string `json:"name_suffix"`
|
||||||
|
// 标题前缀
|
||||||
|
NamePrefix string `json:"name_prefix"`
|
||||||
|
// 标题长度限制,长度计算逻辑:汉字算两个字符,汉字以外的其他字符都算一个字符。
|
||||||
|
TitleLimit *TitleLimit `json:"title_limit"`
|
||||||
|
// 销量
|
||||||
|
SellNum int64 `json:"sell_num"`
|
||||||
|
// 不可搭配的原因,可搭配时为空
|
||||||
|
CanNotCombineReason string `json:"can_not_combine_reason"`
|
||||||
|
// 是否可搭配,只有入参传入can_combine为true才有值
|
||||||
|
CanCombine bool `json:"can_combine"`
|
||||||
|
// 店铺装修分类
|
||||||
|
ShopCategory *ShopCategory `json:"shop_category"`
|
||||||
// 商品ID,抖店系统生成,店铺下唯一
|
// 商品ID,抖店系统生成,店铺下唯一
|
||||||
ProductId int64 `json:"product_id"`
|
ProductId int64 `json:"product_id"`
|
||||||
// 商品在店铺中状态: 0-在线;1-下线;2-删除;详见商品状态机:https://op.jinritemai.com/docs/question-docs/92/2070
|
// 商品在店铺中状态: 0-在线;1-下线;2-删除;详见商品状态机:https://op.jinritemai.com/docs/question-docs/92/2070
|
||||||
@@ -37,7 +154,7 @@ type DataItem struct {
|
|||||||
DiscountPrice int64 `json:"discount_price"`
|
DiscountPrice int64 `json:"discount_price"`
|
||||||
// 商品图片url,返回商品主图的第一张图 (主要用来辅助页面展示)
|
// 商品图片url,返回商品主图的第一张图 (主要用来辅助页面展示)
|
||||||
Img string `json:"img"`
|
Img string `json:"img"`
|
||||||
// 商品标题,规则:至少输入8个字(16个字符)以上~输入30个字(60个字符)以内。;标题不规范会引起商品下架,影响您的正常销售,详见商品发布规范:https://school.jinritemai.com/doudian/web/article/101800?from=shop_article
|
// 商品标题。 标题不规范会引起商品下架,影响您的正常销售,详见商品发布规范:https://school.jinritemai.com/doudian/web/article/101800?from=shop_article
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
// 【已废弃】支持的支付方式:0货到付款 1在线支付 2两者都支持
|
// 【已废弃】支持的支付方式:0货到付款 1在线支付 2两者都支持
|
||||||
PayType int64 `json:"pay_type"`
|
PayType int64 `json:"pay_type"`
|
||||||
@@ -69,8 +186,10 @@ type DataItem struct {
|
|||||||
IsPackageProduct bool `json:"is_package_product"`
|
IsPackageProduct bool `json:"is_package_product"`
|
||||||
// 商品关联的组合主商品ID;当is_package_product=true,返回的是组套商品的product_id; 当is_package_product=false,返回当前商品的product_id;补充返回规则:参与的组套商品,下线会展示,目前组合商品支持下线的商品作为子品进行组套,删除会展示,但重新上架组套商品时,会被从列表中删除。
|
// 商品关联的组合主商品ID;当is_package_product=true,返回的是组套商品的product_id; 当is_package_product=false,返回当前商品的product_id;补充返回规则:参与的组套商品,下线会展示,目前组合商品支持下线的商品作为子品进行组套,删除会展示,但重新上架组套商品时,会被从列表中删除。
|
||||||
PackageProductList []int64 `json:"package_product_list"`
|
PackageProductList []int64 `json:"package_product_list"`
|
||||||
// 商品关联的组合商品sku_id;商品关联的组套主sku_id;当is_package_product=true,返回的是组套商品的sku_id; 当is_package_product=false,返回当前商品的sku_id;补充返回规则:参与的组套商品sku_id,下线会展示,目前组合商品支持下线的商品作为子品进行组套,删除会展示,但重新上架组套商品时,会被从列表中删除。
|
// 当is_package_product=true,返回的是组套商品的子品product_id; 当is_package_product=false,不返回;补充返回规则:参与的组套商品product_id,下线会展示,目前组合商品支持下线的商品作为子品进行组套,删除会展示,但重新上架组套商品时,会被从列表中删除。
|
||||||
SubProductList []int64 `json:"sub_product_list"`
|
SubProductList []int64 `json:"sub_product_list"`
|
||||||
|
// 小时达子品绑定的主品信息
|
||||||
|
ChannelMainProduct *ChannelMainProduct `json:"channel_main_product"`
|
||||||
}
|
}
|
||||||
type ProductListV2Data struct {
|
type ProductListV2Data struct {
|
||||||
// 商品数据
|
// 商品数据
|
||||||
@@ -81,4 +200,14 @@ type ProductListV2Data struct {
|
|||||||
Page int64 `json:"page"`
|
Page int64 `json:"page"`
|
||||||
// 页数(每页数量)
|
// 页数(每页数量)
|
||||||
Size int64 `json:"size"`
|
Size int64 `json:"size"`
|
||||||
|
// 使用游标时,每次查询会返回该值,作为下次查询的入参使用。
|
||||||
|
CursorId string `json:"cursor_id"`
|
||||||
|
}
|
||||||
|
type Pic34Suggestion struct {
|
||||||
|
// 修改后图片,需要重新走素材中心转图
|
||||||
|
AfterPics []string `json:"after_pics"`
|
||||||
|
}
|
||||||
|
type PicSuggestion struct {
|
||||||
|
// 修改后图片,需要重新走素材中心转图
|
||||||
|
AfterPics []string `json:"after_pics"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
|
||||||
"io"
|
"io"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -18,13 +17,12 @@ func Sign(appKey, appSecret, method string, timestamp int64, paramJson string) s
|
|||||||
// 按给定规则拼接参数
|
// 按给定规则拼接参数
|
||||||
paramPattern := "app_key" + appKey + "method" + method + "param_json" + paramJson + "timestamp" + strconv.FormatInt(timestamp, 10) + "v2"
|
paramPattern := "app_key" + appKey + "method" + method + "param_json" + paramJson + "timestamp" + strconv.FormatInt(timestamp, 10) + "v2"
|
||||||
signPattern := appSecret + paramPattern + appSecret
|
signPattern := appSecret + paramPattern + appSecret
|
||||||
fmt.Println("sign_pattern:" + signPattern)
|
|
||||||
return Hmac(signPattern, appSecret)
|
return Hmac(signPattern, appSecret)
|
||||||
}
|
}
|
||||||
|
|
||||||
func SpiSign(appKey, appSecret, timestamp string, paramJson interface{}, signMethod string) string {
|
func SpiSign(appKey, appSecret, timestamp string, paramJson interface{}, signMethod string) string {
|
||||||
sortedParamStr := Marshal(paramJson)
|
sortedParamStr := Marshal(paramJson)
|
||||||
paramPattern := "app_key" + appKey + "param_json" + sortedParamStr +"timestamp" + timestamp
|
paramPattern := "app_key" + appKey + "param_json" + sortedParamStr + "timestamp" + timestamp
|
||||||
signPattern := appSecret + paramPattern + appSecret
|
signPattern := appSecret + paramPattern + appSecret
|
||||||
if signMethod == "hmac-sha256" {
|
if signMethod == "hmac-sha256" {
|
||||||
return Hmac(signPattern, appSecret)
|
return Hmac(signPattern, appSecret)
|
||||||
@@ -67,5 +65,3 @@ func Marshal(o interface{}) string {
|
|||||||
marshal := strings.TrimSpace(buffer.String()) // Trim掉末尾的换行符
|
marshal := strings.TrimSpace(buffer.String()) // Trim掉末尾的换行符
|
||||||
return marshal
|
return marshal
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ func TestGetSkuDetail(t *testing.T) {
|
|||||||
|
|
||||||
// 查询商品详情本地商品id
|
// 查询商品详情本地商品id
|
||||||
func TestGetSkuDetailLocalId(t *testing.T) {
|
func TestGetSkuDetailLocalId(t *testing.T) {
|
||||||
data, err := a.GetSkuDetail("3749499171854483927", "")
|
data, err := a.GetSkuDetail("3644301338084557023", "")
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
globals.SugarLogger.Debugf("====%s", utils.Format4Output(data, false))
|
globals.SugarLogger.Debugf("====%s", utils.Format4Output(data, false))
|
||||||
}
|
}
|
||||||
@@ -175,7 +175,19 @@ func TestBatchDecrypt(t *testing.T) {
|
|||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var c = []int64{173965249}
|
var c = []int64{
|
||||||
|
63325222,
|
||||||
|
63462817,
|
||||||
|
63463014,
|
||||||
|
63463026,
|
||||||
|
63463365,
|
||||||
|
63467326,
|
||||||
|
63467462,
|
||||||
|
63503199,
|
||||||
|
63503537,
|
||||||
|
63504222,
|
||||||
|
63504497,
|
||||||
|
}
|
||||||
|
|
||||||
// 删除已经创建商品,重新同步
|
// 删除已经创建商品,重新同步
|
||||||
func TestDeleteSkuAndUploadSku(t *testing.T) {
|
func TestDeleteSkuAndUploadSku(t *testing.T) {
|
||||||
@@ -184,8 +196,8 @@ func TestDeleteSkuAndUploadSku(t *testing.T) {
|
|||||||
for _, v := range c {
|
for _, v := range c {
|
||||||
for i := 1; i < 100; i++ {
|
for i := 1; i < 100; i++ {
|
||||||
result, err := a.GetSkuDetailList(&product_listV2_request.ProductListV2Param{
|
result, err := a.GetSkuDetailList(&product_listV2_request.ProductListV2Param{
|
||||||
Status: 1,
|
Status: 0,
|
||||||
CheckStatus: 1, // 1-未提交;2-待审核;3-审核通过;4-审核未通过;5-封禁;7-审核通过待上架
|
CheckStatus: 3, // 1-未提交;2-待审核;3-审核通过;4-审核未通过;5-封禁;7-审核通过待上架
|
||||||
Page: int64(i),
|
Page: int64(i),
|
||||||
Size: 100,
|
Size: 100,
|
||||||
StoreId: v,
|
StoreId: v,
|
||||||
@@ -195,15 +207,21 @@ func TestDeleteSkuAndUploadSku(t *testing.T) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if len(result.Data) == 0 {
|
if len(result.Data) == 0 {
|
||||||
globals.SugarLogger.Debugf("====没有商品的门店 %d", v)
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
for _, v := range result.Data {
|
|
||||||
err := a.DeleteStoreCommodity(v.ProductId)
|
for i2, v2 := range result.Data {
|
||||||
if err != nil {
|
if v2.ProductId == 3592586515512991033 {
|
||||||
errList = append(errList, err)
|
fmt.Println("aa")
|
||||||
}
|
}
|
||||||
|
var sonSkuid int64 = 0
|
||||||
|
if len(v2.SpecPrices) != 0 {
|
||||||
|
sonSkuid = v2.SpecPrices[0].Id
|
||||||
|
}
|
||||||
|
sql := fmt.Sprintf(` UPDATE store_sku_bind SET vendor_son_sku_id = "%d" WHERE dd_id = "%d";`, sonSkuid, v2.ProductId)
|
||||||
|
fmt.Println(i2-i2, sql)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user