Files
baseapi/platformapi/jdshopapi/store_page_test.go
苏尹岚 48f4a7179c aa
2021-02-04 15:49:13 +08:00

676 lines
16 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 (
"bytes"
"crypto/aes"
"crypto/cipher"
"crypto/sha1"
"encoding/base64"
"fmt"
"math"
"sort"
"testing"
"git.rosy.net.cn/baseapi/utils"
)
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: 1,
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) {
str := "AASWvkdk5a60bjm3lFqaoCyzBFIjrHQjoKSY+LN5VcswOzDkqjbjxVyK1Psdqcj3ci0+4I9v3evrtrJHLuUSo3eEfT3+psX6DF45CILeq0VbKxwxkE+AS1WTxr9RTHqaM3g="
data, _ := base64.StdEncoding.DecodeString(str)
data2, _ := base64.StdEncoding.DecodeString("XsGNdyDyDHnR79iKU6d5LTSJYaQyWAEssDoD7VM5Kks=")
b := bytes.NewBuffer(data)
b.Next(18)
iv := make([]byte, 16)
b.Read(iv)
main := make([]byte, len(data)-18-16)
b.Read(main)
decryptedData, err := utils.AESCBCDecpryt(main, data2[:16], iv)
// decryptedData, err := Decrypt(main, data2[:16], iv)
if err != nil {
t.Fatal(err)
}
fmt.Println("data", string(decryptedData))
}
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(24562992)
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) {
err := api.UpdateExpand(24563694)
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestUploadImageNew(t *testing.T) {
// accountsMerge([][]string{[]string{
// "John", "johnsmith@mail.com", "john00@mail.com",
// }, []string{
// "John", "johnnybravo@mail.com",
// }, []string{
// "John", "johnsmith@mail.com", "john_newyork@mail.com",
// }, []string{
// "Mary", "mary@mail.com",
// }})
//bfde9c3c5df188541d1d47f17e03f8a75a872fe4
fmt.Println(qwe())
}
func qwe() int {
defer fmt.Println("1")
a := 2
if a == 1 {
return 1
}
return 0
}
func encryptPassword(password, salt string) string {
return fmt.Sprintf("%x", sha1.Sum([]byte(password+salt)))
}
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(1)
if err != nil {
t.Fatal(err)
}
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(80, 10024685331653, "1000063128")
// 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))
}