Files
baseapi/platformapi/jdshopapi/store_page_test.go
2021-04-25 17:22:10 +08:00

732 lines
17 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package jdshopapi
import (
"crypto/aes"
"crypto/cipher"
"encoding/base64"
"fmt"
"git.rosy.net.cn/baseapi/utils"
"math"
"sort"
"strings"
"testing"
)
func TestCreateShopCategory(t *testing.T) {
var CreateShopCategoryParams = []*CreateShopCategoryParam{
&CreateShopCategoryParam{
HomeShow: "0",
ID: "1",
Open: "",
OrderNo: "0",
ParentID: "",
Title: "测试1",
Type: "3",
},
}
result, _ := api.CreateShopCategory(CreateShopCategoryParams)
fmt.Println(result)
}
func TestUpdateStoreStatus(t *testing.T) {
err := api.UpdateStoreStatus(24332466, 1)
if err != nil {
t.Fatal(err)
}
}
func TestNewInfoList(t *testing.T) {
result, err := api.NewInfoList(1)
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func Test11(t *testing.T) {
change := func(s ...string) {
s[0] = "Go"
s = append(s, "playground")
fmt.Println(s)
}
welcome := []string{"hello", "world"}
change(welcome...)
fmt.Println(welcome)
}
func TestAllOrders(t *testing.T) {
result, err := api.AllOrders(&AllOrdersParam{
Current: 1,
PageSize: 10,
OrderCreateDateRange: []string{"2021-04-05 00:00:00", "2021-04-06 23:59:59"},
// OrderID: "118793082128",
})
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestOrderDetail(t *testing.T) {
result, err := api.OrderDetail("125138699851")
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestPhoneSensltiveInfo(t *testing.T) {
result, err := api.PhoneSensltiveInfo("124396047880", "10b1707dc87755373d488a7a4f422f7d")
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestUpdateWaybill(t *testing.T) {
err := api.UpdateWaybill("123076499052", "1274", "88328977356545 ")
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestTryGetCookie(t *testing.T) {
result, err := api.TryGetCookie()
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestAAADS(t *testing.T) {
key, _ := base64.StdEncoding.DecodeString("DW+rL8hlSFt65gUnDXW13A==")
data, _ := base64.StdEncoding.DecodeString("Zh1/Gnb3GWkt7slPocCh5EjgfCrivUMrEjQZT+ND2fsDZYGXIny8NazZJ7UA8DgMpuJf9vBPlf3C8l8oT7aYebJMhAEx8kRFdQip8yEFqbzTfHfnNnMsI4Wkh1Ij06iLiZITnPUdWsuHjwI7BKKmZFDloiOkn3p+gtACFThm7B03SfPmvOdokdIQvDa1nEzPL/2DkfhAwDPxzgGHI0HaAQ==")
iv, _ := base64.StdEncoding.DecodeString("BBYl0UZhgnV59eP6MkxeeQ==")
result, _ := Decrypt(data, key, iv)
fmt.Println(string(result))
}
func Decrypt(decryptBytes, key, iv []byte) ([]byte, error) {
block, err := aes.NewCipher(key)
if err != nil {
return nil, err
}
blockMode := cipher.NewCBCDecrypter(block, iv)
blockMode.CryptBlocks(decryptBytes, decryptBytes)
return PKCS5UnPadding(decryptBytes), nil
}
func PKCS5UnPadding(decrypted []byte) []byte {
length := len(decrypted)
unPadding := int(decrypted[length-1])
return decrypted[:(length - unPadding)]
}
func TestShopDetail(t *testing.T) {
result, err := api.ShopDetail(1000070140)
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestSubmitBasic(t *testing.T) {
result, err := api.SubmitBasic(&UpdateBasicParam{
StoreName: "京西菜市石犀市场生鲜店",
CategoryID2: 62,
Coordinate: "30.692941,103.858781",
BussinessBeginTime: "08:30",
BussinessEndTime: "20:00",
ImgURL: "jfs/t1/141918/10/14803/148865/5fb4e8cbE95a606cb/08a8dc277eb97a16.png",
StorePhone: "13706546496",
AddName: "四川成都市温江区@!温江区锦泉街116号优取舍",
// AddCode1: 22,
// AddCode2: 1930,
AddCode3: 49315,
CategoryID1: 34,
QualificationRequests: []*QualificationRequests{
&QualificationRequests{
QualificationID: 41,
QualificationName: "营业执照",
QualificationNo: "11111",
QualificationURL: "jfs/t1/148622/37/14846/10266/5fb4e3e2Ef2f61870/a7cfba9c1513d95e.png",
StartTime: "2020-11-04 00:00:00",
EndingTime: "2020-11-06 23:59:59",
Time: []string{"2020-11-04 00:00:00", "2020-11-06 23:59:59"},
},
},
})
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestUpdateBasic(t *testing.T) {
shop, _ := api.ShopList(1)
for _, v := range shop.List {
detail, _ := api.ShopDetail(v.StoreID)
api.UpdateBasic(&UpdateBasicParam{
StoreID: detail.StoreID,
StoreName: detail.StoreName,
CategoryID2: 62,
Coordinate: detail.Coordinate,
BussinessBeginTime: detail.BussinessBeginTime,
BussinessEndTime: detail.BussinessEndTime,
ImgURL: detail.ImgURL,
StorePhone: detail.StorePhone,
AddName: utils.LimitUTF8StringLen(detail.AddName, 100),
AddCode1: detail.AddCode1,
AddCode2: detail.AddCode2,
AddCode3: detail.AddCode3,
CategoryID1: 34,
QualificationRequests: []*QualificationRequests{
&QualificationRequests{
QualificationID: 41,
QualificationName: "营业执照",
QualificationNo: "91510106MA62QYUK9X",
QualificationURL: "jfs/t1/140863/13/17145/275844/5fc9ac7aE9a5f8d68/f9d459176d463cb5.jpg",
StartTime: "2017-03-01 00:00:00",
EndingTime: "2027-03-01 00:00:00",
Time: []string{"2017-03-01 00:00:00", "2027-03-01 00:00:00"},
},
},
})
}
// t.Log(utils.Format4Output(result, false))
}
func TestUpdateExpand(t *testing.T) {
str := "https://wx.jxc4.com/jxcsRegist?mobile=15520595380"
fmt.Println(str[:strings.LastIndex(str, "?")])
}
func TestCreateGisFence(t *testing.T) {
err := api.CreateGisFence(1000069001, "3")
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestUpdateDeliveryPromise(t *testing.T) {
err := api.UpdateDeliveryPromise("09:00", "20:00", 1000070127)
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestUploadImageNew(t *testing.T) {
fmt.Println(int(utils.Str2Time("2021-03-09 23:59:59").Sub(utils.Str2Time("2021-03-07 00:00:00")).Hours()) / 24)
}
//给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。
//表达式仅包含非负整数,+ - */ 四种运算符和空格  。 整数除法仅保留整数部分。
func calculate(s string) int {
return 1
}
//输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
func spiralOrder(matrix [][]int) []int {
var result []int
if len(matrix) == 0 {
return result
} else {
if len(matrix[0]) == 0 {
return result
}
}
l, h := len(matrix[0]), len(matrix)
left, right, top, bottom := 0, l-1, 0, h-1
lmax, tmax := 0, 0
if l%2 == 0 {
lmax = l / 2
} else {
lmax = l/2 + 1
}
if h%2 == 0 {
tmax = l / 2
} else {
tmax = l/2 + 1
}
for left <= lmax && top+1 <= tmax {
for left1 := left; left1 <= right; left1++ {
if len(result) >= l*h {
break
}
result = append(result, matrix[top][left1])
}
if h > 1 {
for top1 := top + 1; top1 <= bottom; top1++ {
if len(result) >= l*h {
break
}
result = append(result, matrix[top1][right])
}
if right > 0 {
for right1 := right - 1; right1 >= left; right1-- {
if len(result) >= l*h {
break
}
result = append(result, matrix[bottom][right1])
}
}
if bottom > 0 {
for bottom1 := bottom - 1; bottom1 >= top+1; bottom1-- {
if len(result) >= l*h {
break
}
result = append(result, matrix[bottom1][left])
}
}
}
left++
top++
right--
bottom--
}
return result
}
func addToArrayForm(A []int, K int) (a []int) {
B := []int{}
lengthK := 0
for i := 10; ; i = i * 10 {
if K/i == 0 {
lengthK++
break
}
lengthK++
}
for i := lengthK; i > 0; i-- {
if i == lengthK {
B = append(B, K/int(math.Pow10(i-1)))
} else if i == 1 {
gw := K
for j := lengthK; j > 1; j-- {
gw = gw % int(math.Pow10(j-1))
}
B = append(B, gw)
} else {
qtw := K
for j := lengthK; j > 1; j-- {
if j == i {
qtw = qtw / int(math.Pow10(j-1))
break
} else {
qtw = qtw % int(math.Pow10(j-1))
}
}
B = append(B, qtw)
}
}
flag := false
in := 0
for k := len(A) - 1; k >= 0; {
if flag {
break
}
for k1 := len(B) - 1; k1 >= 0; {
if A[k]+B[k1]+in < 10 {
if in == 0 {
a = append(a, A[k]+B[k1])
} else {
a = append(a, A[k]+B[k1]+in)
}
in = 0
} else {
if in == 0 {
a = append(a, (A[k]+B[k1])%10)
} else {
a = append(a, (A[k]+B[k1]+in)%10)
}
in = 0
in++
}
k--
k1--
if k == -1 && k1 == -1 && in != 0 {
a = append(a, 1)
}
if k < 0 {
in2 := 0
for i := k1; i >= 0; i-- {
if B[i]+in+in2 < 10 {
if in2 == 0 {
a = append(a, B[i]+in)
} else {
a = append(a, B[i]+in2+in)
}
in = 0
in2 = 0
} else {
if in2 == 0 {
a = append(a, (B[i]+in)%10)
} else {
a = append(a, (B[i]+in+in2)%10)
}
in = 0
in2 = 0
in2++
}
if i == 0 && in2 != 0 {
a = append(a, 1)
}
}
flag = true
break
}
if k1 < 0 {
in2 := 0
for i := k; i >= 0; i-- {
if A[i]+in+in2 < 10 {
if in2 == 0 {
a = append(a, A[i]+in)
} else {
a = append(a, A[i]+in2+in)
}
in = 0
in2 = 0
} else {
if in2 == 0 {
a = append(a, (A[i]+in)%10)
} else {
a = append(a, (A[i]+in+in2)%10)
}
in = 0
in2 = 0
in2++
}
if i == 0 && in2 != 0 {
a = append(a, 1)
}
}
flag = true
break
}
}
}
for i := 0; i < len(a)/2; i++ {
temp := a[i]
a[i] = a[len(a)-i-1]
a[len(a)-i-1] = temp
}
return a
}
func maximumProduct(nums []int) int {
sort.Ints(nums)
n := len(nums)
fmt.Println(nums)
return max(nums[0]*nums[1]*nums[n-1], nums[n-3]*nums[n-2]*nums[n-1])
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
func accountsMerge(accounts [][]string) (ans [][]string) {
emailToIndex := map[string]int{}
emailToName := map[string]string{}
for _, account := range accounts {
name := account[0]
for _, email := range account[1:] {
if _, has := emailToIndex[email]; !has {
emailToIndex[email] = len(emailToIndex)
emailToName[email] = name
}
}
}
fmt.Println(emailToIndex)
fmt.Println()
fmt.Println(emailToName)
parent := make([]int, len(emailToIndex))
for i := range parent {
parent[i] = i
}
var find func(int) int
find = func(x int) int {
if parent[x] != x {
parent[x] = find(parent[x])
}
return parent[x]
}
union := func(from, to int) {
parent[find(from)] = find(to)
}
for _, account := range accounts {
firstIndex := emailToIndex[account[1]]
for _, email := range account[2:] {
union(emailToIndex[email], firstIndex)
}
}
fmt.Println(parent)
fmt.Println()
fmt.Println(accounts)
indexToEmails := map[int][]string{}
for email, index := range emailToIndex {
index = find(index)
indexToEmails[index] = append(indexToEmails[index], email)
}
fmt.Println(indexToEmails)
for _, emails := range indexToEmails {
sort.Strings(emails)
account := append([]string{emailToName[emails[0]]}, emails...)
ans = append(ans, account)
}
return
}
func findRedundantConnection(edges [][]int) []int {
parent := make([]int, len(edges)+1)
for i := range parent {
parent[i] = i
}
fmt.Println("edges ", edges)
fmt.Println("parent ", parent)
var find func(int) int
find = func(x int) int {
if parent[x] != x {
parent[x] = find(parent[x])
}
return parent[x]
}
union := func(from, to int) bool {
fmt.Println(from, to)
x, y := find(from), find(to)
fmt.Println(x, y)
if x == y {
return false
}
parent[x] = y
fmt.Println(parent)
fmt.Println("-------------------------------")
return true
}
for _, e := range edges {
if !union(e[0], e[1]) {
return e
}
}
return nil
}
func removeStones(stones [][]int) int {
fa := map[int]int{}
var find func(int) int
find = func(x int) int {
if _, has := fa[x]; !has {
fa[x] = x
}
if fa[x] != x {
fa[x] = find(fa[x])
}
fmt.Println(fa[x])
return fa[x]
}
union := func(x, y int) {
fmt.Println(x, y)
fx, fy := find(x), find(y)
if fx == fy {
return
}
fa[fy] = fx
fmt.Println(fa)
}
for _, p := range stones {
union(p[0], p[1]+10000)
}
ans := len(stones)
for x, fx := range fa {
if x == fx {
ans--
}
}
return ans
}
//动态规划
func maxUncrossedLines(A []int, B []int) (s int) {
var dynamic = make([][]int, len(A)+1, len(A)+1)
for index := range dynamic {
dynamic[index] = make([]int, len(B)+1, len(B)+1) //多创建一列,因为 index = 0 的时候,没有前置匹配
}
for _, v := range dynamic {
fmt.Println(v)
}
fmt.Println("---------------------")
for index, a := range A {
for i, b := range B {
if a == b {
dynamic[index+1][i+1] = dynamic[index][i] + 1
for _, v := range dynamic {
fmt.Println(v)
}
fmt.Println("---------------------")
} else {
dynamic[index+1][i+1] = dynamic[index][i+1]
if dynamic[index+1][i+1] < dynamic[index+1][i] {
dynamic[index+1][i+1] = dynamic[index+1][i] //判断大小,取大值
}
for _, v := range dynamic {
fmt.Println(v)
}
fmt.Println("---------------------")
}
}
}
return dynamic[len(A)][len(B)]
}
func TestShopList(t *testing.T) {
result, err := api.ShopList(25)
if err != nil {
t.Fatal(err)
}
fmt.Println("aaaaaaa", len(result.List))
t.Log(utils.Format4Output(result, false))
}
func TestWareSave(t *testing.T) {
// desc := `<p>因生鲜比较脆弱,发货途中如果有磕碰损坏,请收到联系客服,闪电赔付。请核对好地址,发货后不可修改地址,因改地址导致损坏不能赔付,谢谢理解</p><p><img style="width:auto;height:auto;max-width:100%;" src="//img10.360buyimg.com/imgzone/jfs/t1/126814/22/1326/472568/5ebb888dEa2cfb5f6/c0c81db660994246.jpg"><br></p><p><br></p>`
params := &WareSaveParam{
WareID: 0,
Height: 100,
CategoryID: 13574,
LastCategoryID: 13574,
VenderID: 10569615,
BrandID: 44259,
Length: 200,
Wide: 100,
WareStatus: 8,
Title: "散养土鸡蛋新鲜鸡蛋草鸡蛋柴鸡蛋顺丰包邮测试",
Weight: "1",
ShopCategorys: []int{15602325},
Notes: `
<p><img src="//img10.360buyimg.com/imgzone/jfs/t1/152741/14/7416/273609/5fbf645aEa1f7d6b7/dc1d9d997fe346b7.jpg" style="width: auto; height: auto; max-width: 100%;"><br></p><p><br></p>
`,
Skus: []*WareSaveSkus{
&WareSaveSkus{
// SkuID: 10024685331653,
JdPrice: "25",
StockNum: 9999,
Props: []*WareSaveSkusProp{
&WareSaveSkusProp{
AttrID: 1001027603,
AttrValues: 2517633718,
AttrValueAlias: "20个",
},
},
OuterID: "6045735",
},
// &WareSaveSkus{
// JdPrice: "31",
// StockNum: 5,
// Props: []*WareSaveSkusProp{
// &WareSaveSkusProp{
// AttrID: 1000022043,
// AttrValues: 2515430634,
// AttrValueAlias: "500g",
// },
// },
// },
},
PromiseID: 0,
MultiCateProps: []interface{}{},
PropsSet: []interface{}{},
SaleAttrs: []interface{}{},
TransparentImageAudit: []interface{}{},
OptionType: 1,
AvailableFeatures: []interface{}{},
CharacteristicService: []interface{}{},
ExtendFeatures: []interface{}{},
TempID: "10569615110055200", //必须要这个东西,不知道是啥
}
params.ImageMap.Num0000000000 = append(params.ImageMap.Num0000000000, &CreateSkuParamImages{
ColorID: "0000000000",
ImgIndex: 1,
ImgURL: "jfs/t1/149724/17/15786/39416/5fbf645aE948e4d7a/b13bcaee129676b2.jpg",
// ImgZoneID: "0000000000",
})
// , &CreateSkuParamImages{
// ColorID: "0000000000",
// ImgIndex: 2,
// ImgURL: "jfs/t1/142006/30/15024/504060/5fb636d4Ef12079f7/2adad323cbcf7c52.jpg",
// // ImgZoneID: "0000000000",
// })
result, err := api.WareSave(params)
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestWareDoUpdate(t *testing.T) {
err := api.WareDoUpdate("up", "10020536451427")
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestStoreWareDoUpdate(t *testing.T) {
err := api.StoreWareDoUpdate(1, 10024685331653, "1000063128")
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestStoreUpdatePrice(t *testing.T) {
err := api.StoreUpdatePrice("11.4", 10027605679156, "1000069001")
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestStoreUpdateStock(t *testing.T) {
err := api.StoreUpdateStock(80, 10024685331653, "1000063128")
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestStoreSkuBindStore(t *testing.T) {
err := api.StoreSkuBindStore(false, []string{"10024685331653"}, []string{"1000063128"})
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestSetOrderStateToWait(t *testing.T) {
err := api.SetOrderStateToWait(1)
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestStoreProductSearch(t *testing.T) {
result, _, err := api.StoreProductSearch(1, 20, []string{"1000069025"})
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}