This commit is contained in:
邹宗楠
2025-02-07 11:17:12 +08:00
parent eaaf58cb23
commit 5ba7ff7938
11 changed files with 205 additions and 65 deletions

File diff suppressed because one or more lines are too long

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/globals"
"strings"
"testing"
)
@@ -311,9 +312,31 @@ func TestShopAptitudeUpload(t *testing.T) {
}
func TestShopDeliveryinfoGet(t *testing.T) {
result, err := api.ShopDeliveryinfoGet("", 2233065959)
if err != nil {
t.Fatal(err)
vendorStoreID := "1128314567"
store, err := api.ShopGet2("", utils.Str2Int64(vendorStoreID))
globals.SugarLogger.Debugf("-:=%s", utils.Format4Output(store, false))
globals.SugarLogger.Debugf("-:=%v", err)
list, err := api.ShopDeliveryinfoGet("", utils.Str2Int64(vendorStoreID))
if err == nil && len(list) > 0 {
deliveryRange := EbaiDeliveryRegion2Jx2(list[0])
globals.SugarLogger.Debugf("-:=%s", deliveryRange)
}
t.Log(utils.Format4Output(result, false))
}
func EbaiDeliveryRegion2Jx2(deliveryRegion map[string]interface{}) string {
if len(deliveryRegion) > 0 {
if deliveryRegion["delivery_areas"] == nil {
return ""
}
region := deliveryRegion["delivery_areas"].([]interface{})[0].(map[string]interface{})["coordinates"].([]interface{})
coords := make([]string, len(region))
for k, v := range region {
mapV := v.(map[string]interface{})
coords[k] = fmt.Sprintf("%.6f,%.6f", utils.MustInterface2Float64(mapV["longitude"]), utils.MustInterface2Float64(mapV["latitude"]))
}
return strings.Join(coords, ";")
}
return ""
}

View File

@@ -140,63 +140,80 @@ const (
)
// HttpToGuoYuanFN 订单消息推送果园
func HttpToGuoYuanFN(param map[string]interface{}, requestType string) (*http.Response, error) {
var paramData []byte
var err error
paramData, err = json.Marshal(param)
if err != nil {
return nil, err
}
body := strings.NewReader(string(paramData))
func HttpToGuoYuanFN(param map[string]interface{}, requestType string, serverType string) (*http.Response, error) {
//var paramData []byte
//var err error
//paramData, err = json.Marshal(param)
//if err != nil {
// return nil, err
//}
//body := strings.NewReader(string(paramData))
url := ""
switch requestType {
case FengNiaoCallbackTypeStore:
url = "http://callback-jxgy.jxc4.com/fn/fnStore"
case FengNiaoCallbackTypeOrder:
url = "http://callback-jxgy.jxc4.com/fn/fnOrder"
case FengNiaoCallbackTypeAbnormal:
url = "http://callback-jxgy.jxc4.com/fn/fnAbnormal"
case FengNiaoCallbackTypeToken:
url = "http://callback-jxgy.jxc4.com/fn/fnToken"
if serverType == "prod" {
switch requestType {
case FengNiaoCallbackTypeStore:
url = "http://callback-jxgy.jxc4.com/fn/fnStore"
case FengNiaoCallbackTypeOrder:
url = "http://callback-jxgy.jxc4.com/fn/fnOrder"
case FengNiaoCallbackTypeAbnormal:
url = "http://callback-jxgy.jxc4.com/fn/fnAbnormal"
case FengNiaoCallbackTypeToken:
url = "http://callback-jxgy.jxc4.com/fn/fnToken"
}
} else if serverType == "jxgy" {
switch requestType {
case FengNiaoCallbackTypeStore:
url = "http://callback-gblm.jxc4.com/fn/fnStore"
case FengNiaoCallbackTypeOrder:
url = "http://callback-gblm.jxc4.com/fn/fnOrder"
case FengNiaoCallbackTypeAbnormal:
url = "http://callback-gblm.jxc4.com/fn/fnAbnormal"
case FengNiaoCallbackTypeToken:
url = "http://callback-gblm.jxc4.com/fn/fnToken"
}
} else {
return nil, nil
}
httpReq, err := http.NewRequest(http.MethodPost, url, body)
httpReq, err := http.NewRequest(http.MethodPost, url, strings.NewReader(utils.Map2URLValues(param).Encode()))
if err != nil {
return nil, err
}
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("accept", "application/json, text/plain, */*")
httpRes, err := http.DefaultClient.Do(httpReq)
return httpRes, err
}
// HttpToPetFN 订单消息推送宠物
func HttpToPetFN(param map[string]interface{}, requestType string) (*http.Response, error) {
var paramData []byte
var err error
paramData, err = json.Marshal(param)
if err != nil {
return nil, err
}
body := strings.NewReader(string(paramData))
url := ""
switch requestType {
case FengNiaoCallbackTypeStore:
url = "http://callback-gblm.jxc4.com/fn/fnStore"
case FengNiaoCallbackTypeOrder:
url = "http://callback-gblm.jxc4.com/fn/fnOrder"
case FengNiaoCallbackTypeAbnormal:
url = "http://callback-gblm.jxc4.com/fn/fnAbnormal"
case FengNiaoCallbackTypeToken:
url = "http://callback-gblm.jxc4.com/fn/fnToken"
}
httpReq, err := http.NewRequest(http.MethodPost, url, body)
if err != nil {
return nil, err
}
httpReq.Header.Set("Content-Type", "application/json")
httpRes, err := http.DefaultClient.Do(httpReq)
return httpRes, err
}
//func HttpToPetFN(param map[string]interface{}, requestType string) (*http.Response, error) {
// var paramData []byte
// var err error
// paramData, err = json.Marshal(param)
// if err != nil {
// return nil, err
// }
// body := strings.NewReader(string(paramData))
// url := ""
// switch requestType {
// case FengNiaoCallbackTypeStore:
// url = "http://callback-gblm.jxc4.com/fn/fnStore"
// case FengNiaoCallbackTypeOrder:
// url = "http://callback-gblm.jxc4.com/fn/fnOrder"
// case FengNiaoCallbackTypeAbnormal:
// url = "http://callback-gblm.jxc4.com/fn/fnAbnormal"
// case FengNiaoCallbackTypeToken:
// url = "http://callback-gblm.jxc4.com/fn/fnToken"
// }
// httpReq, err := http.NewRequest(http.MethodPost, url, body)
// if err != nil {
// return nil, err
// }
//
// httpReq.Header.Set("Content-Type", "application/json")
//
// httpRes, err := http.DefaultClient.Do(httpReq)
// return httpRes, err
//}

View File

@@ -32,11 +32,11 @@ func init() {
// 京东果园 320406
//api = New("1e87595b-e850-4ba4-9ee0-53bcfe383a4f", "1dba76d40cac446ca500c0391a0b6c9d", "a88d031a1e7b462cb1579f12e97fe7f4")
// 京东白货
api = New("9053e4fd-4e0e-4e9e-8ab1-f348e5cbf3e7", "4602bd4b84984186815dbc03299c7094", "386ab19719d9470487011217d0c57349")
//api = New("9053e4fd-4e0e-4e9e-8ab1-f348e5cbf3e7", "4602bd4b84984186815dbc03299c7094", "386ab19719d9470487011217d0c57349")
// 果切 379599
//api = New("ad4061a1-6a5c-43f9-bf51-b1232fd9499d", "f2ed33075faf4773a47e065acd79532b", "aed14cbbecac4456843570e90c5f46ec")
// 381564
//api = New("8d9e4443-3536-41ae-b6c7-677f90f1978b", "d2d1e2e3213d4320bc2712a684307831", "1750f5b9848d4a6492c1c20b487074da")
api = New("4d0c707a-54eb-4f05-8187-6cedf95827c7", "d2d1e2e3213d4320bc2712a684307831", "1750f5b9848d4a6492c1c20b487074da")
// 384633
///api = New("02a3f772-89f3-46f1-bbd5-74be346cba54", "e496a0f9b88a407297fea283b8dc9e29", "9bb82ffbec144c4b8fc8d627e5ca6a35")

View File

@@ -41,7 +41,7 @@ func TestGetStationsByVenderId(t *testing.T) {
}
func TestGetStoreInfoByStationNo(t *testing.T) {
result, err := api.GetStoreInfoByStationNo2("11918839")
result, err := api.GetStoreInfoByStationNo2("12691999")
if err != nil {
t.Fatal(err)
}

View File

@@ -127,7 +127,7 @@ func TestAPI_GetPoiIMStatus(t *testing.T) {
// ans += v + ":" + utils.Int2Str(retrieval.ImStatus) + ","
//}
//fmt.Println(ans)
retrieval, _ := api.GetPoiIMStatus("18003191")
retrieval, _ := api.GetPoiIMStatus("18008153")
fmt.Println(retrieval)
}

View File

@@ -20,13 +20,13 @@ func init() {
baseapi.Init(sugarLogger)
// 菜市
api = New("589", "a81eb3df418d83d6a1a4b7c572156d2f", "", "")
//api = New("589", "a81eb3df418d83d6a1a4b7c572156d2f", "", "")
// 果园
//api = New("4123", "df2c88338b85f830cebce2a9eab56628", "", "")
//商超
//api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_qR5Et61N9S000vcr7q1PZQ")
api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_sinaAnZgfFZJkRIrdbJKBA")
//cookieStr := `
// acctId=57396785; token=0bWbK5VbK50E2BmIhIH2zHB-am_y7mB37yXHm6RLZWx4*; wmPoiId=-1;
//`

View File

@@ -1,8 +1,10 @@
package pddapi
import (
"fmt"
"git.rosy.net.cn/baseapi/utils"
"testing"
"time"
)
func TestGoodsCatsGet(t *testing.T) {
@@ -39,3 +41,11 @@ func TestGoodsRecommendGet(t *testing.T) {
}
t.Log(utils.Format4Output(result, false))
}
func TestName(t *testing.T) {
cc := time.Now().Add(-2 * time.Minute)
aa := cc.Sub(time.Now()).Seconds()
bb := time.Now().Sub(cc).Seconds()
fmt.Println(aa)
fmt.Println(bb)
}

View File

@@ -0,0 +1,89 @@
package pddapi
import (
"bufio"
"fmt"
"net"
"time"
)
// 定义一个客户端结构体,保存每个客户端的信息
type Client struct {
conn net.Conn
lastActive time.Time // 记录最后活跃时间,用于心跳检测
}
// 处理客户端消息的函数
func (c *Client) handleConnection() {
defer c.conn.Close()
reader := bufio.NewReader(c.conn)
for {
// 检查是否超时
if time.Since(c.lastActive) > 30*time.Second {
fmt.Printf("Client %s timed out\n", c.conn.RemoteAddr())
return
}
message, err := reader.ReadString('\n')
if err != nil {
fmt.Printf("Error reading from %s: %v\n", c.conn.RemoteAddr(), err)
return
}
fmt.Printf("Received from %s: %s", c.conn.RemoteAddr(), message)
// 更新最后活跃时间
c.lastActive = time.Now()
// 发送响应给客户端
c.conn.Write([]byte("Message received\n"))
}
}
// 心跳检测函数
func (c *Client) heartbeat() {
ticker := time.NewTicker(10 * time.Second)
defer ticker.Stop()
for {
select {
case <-ticker.C:
// 发送心跳包
_, err := c.conn.Write([]byte("heartbeat\n"))
if err != nil {
fmt.Printf("Error sending heartbeat to %s: %v\n", c.conn.RemoteAddr(), err)
return
}
// 更新最后活跃时间
c.lastActive = time.Now()
}
}
}
func main() {
listener, err := net.Listen("tcp", ":8080")
if err != nil {
fmt.Println("Error starting server:", err)
return
}
defer listener.Close()
fmt.Println("Server listening on :8080")
for {
conn, err := listener.Accept()
if err != nil {
fmt.Println("Error accepting connection:", err)
continue
}
client := &Client{
conn: conn,
lastActive: time.Now(),
}
// 启动一个新的goroutine处理每个连接
go client.handleConnection()
// 启动心跳检测goroutine
go client.heartbeat()
}
}

View File

@@ -8,13 +8,14 @@ import (
)
// 京西速食(蔬菜)
var token1 = `{"access_token":"97a511yhugi-1j7t4nq1hehos0000sn6spy","expires_in":1732606054,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市","refresh_token":"zuxb12yhugi-1j7t4nq1hehos0000sn6spy","authority_id":""}`
//var token1 = `{"access_token":"97a511yhugi-1j7t4nq1hehos0000sn6spy","expires_in":1732606054,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市","refresh_token":"zuxb12yhugi-1j7t4nq1hehos0000sn6spy","authority_id":""}`
// 美好菜市
//var token1 = `{"access_token":"9a315a03-c737-4a82-ae52-c9a6ce827007","expires_in":1699490747,"scope":"SCOPE","shop_id":68032645,"shop_name":"美好菜市","refresh_token":"8334c006-5301-4d25-911b-4d8cc7b70ebb","authority_id":""}`
// 京西到家(商超)
//var token2 = `{"access_token":"7e3853fa-24d4-4649-938b-46947da04c92","expires_in":1698887957,"scope":"SCOPE","shop_id":68023619,"shop_name":"京西到家","refresh_token":"1dd634e9-9f9e-459b-a770-341fb64e4f88","authority_id":""}`
// 京西到家
var token1 = `{"access_token":"3d290106-d462-4201-80cc-b7b7aa823ae5","expires_in":1723882281,"scope":"SCOPE","shop_id":68023619,"shop_name":"京西到家","refresh_token":"d5ae3365-18f6-4c5f-883f-968830ec7bed","authority_id":""}`
var a = New("7267745202649957900", "51998fcf-d521-4553-8c0c-fa662c8dbd6e", token1)
// 查询售后单详情

View File

@@ -95,7 +95,7 @@ func TestGetStoreList2(t *testing.T) {
//获取门店详细信息
func TestGetStoreDetail(t *testing.T) {
data, err := a.GetStoreDetail(&shop_getStoreDetail_request.ShopGetStoreDetailParam{
StoreId: "64250739",
StoreId: "199514645",
})
fmt.Println(utils.Format4Output(data, false))
fmt.Println(err)