1
This commit is contained in:
@@ -2,13 +2,14 @@ package misc
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
|
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
|
||||||
"git.rosy.net.cn/jx-callback/business/bidding"
|
"git.rosy.net.cn/jx-callback/business/bidding"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxcallback/auto_delivery"
|
"git.rosy.net.cn/jx-callback/business/jxcallback/auto_delivery"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
|
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
||||||
"sync"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/jdshop"
|
"git.rosy.net.cn/jx-callback/business/partner/purchase/jdshop"
|
||||||
|
|
||||||
@@ -261,11 +262,11 @@ func Init() {
|
|||||||
}, 5*time.Second, 10*time.Minute)
|
}, 5*time.Second, 10*time.Minute)
|
||||||
|
|
||||||
// 抖音更新门店商品 ,接口收费暂不使用
|
// 抖音更新门店商品 ,接口收费暂不使用
|
||||||
if beego.BConfig.RunMode != "jxgy" {
|
//if beego.BConfig.RunMode != "jxgy" {
|
||||||
ScheduleTimerFunc("RefreshSyncSkuList", func() {
|
// ScheduleTimerFunc("RefreshSyncSkuList", func() {
|
||||||
syncStoreSkuTiktok()
|
// syncStoreSkuTiktok()
|
||||||
}, []string{"13:00:00"})
|
// }, []string{"13:00:00"})
|
||||||
}
|
//}
|
||||||
|
|
||||||
//刷新抖音门店token
|
//刷新抖音门店token
|
||||||
if beego.BConfig.RunMode != "jxgy" {
|
if beego.BConfig.RunMode != "jxgy" {
|
||||||
|
|||||||
@@ -1653,7 +1653,6 @@ func GetStoreBaseByVendorStoreID(vendorStoreID string, vendorID int) (storeDetai
|
|||||||
return nil, errors.New("vendorStoreID不能为空")
|
return nil, errors.New("vendorStoreID不能为空")
|
||||||
}
|
}
|
||||||
|
|
||||||
//DefaultTimeValue := utils.Str2Time("1970-01-01 00:00:00")
|
|
||||||
sql := `SELECT t.* FROM store t WHERE t.id = (SELECT s.store_id FROM store_map s WHERE s.vendor_store_id= ? AND s.vendor_id= ? AND s.deleted_at= '1970-01-01 00:00:00' )`
|
sql := `SELECT t.* FROM store t WHERE t.id = (SELECT s.store_id FROM store_map s WHERE s.vendor_store_id= ? AND s.vendor_id= ? AND s.deleted_at= '1970-01-01 00:00:00' )`
|
||||||
if err := GetRow(GetDB(), &storeDetail, sql, []interface{}{vendorStoreID, vendorID}); err != nil {
|
if err := GetRow(GetDB(), &storeDetail, sql, []interface{}{vendorStoreID, vendorID}); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ func SendToVendor(msg []byte) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
Send(temp, sendData.Data.(map[string]interface{})["app_id"])
|
Send(temp, sendData.Data.(map[string]interface{})["app_id"])
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if sendData.VendorID == VendorIDELM {
|
if sendData.VendorID == VendorIDELM {
|
||||||
param := sendData.Data.(ebaiapi.BusinessSendMsgReq)
|
param := sendData.Data.(ebaiapi.BusinessSendMsgReq)
|
||||||
@@ -53,18 +54,6 @@ func SendToVendor(msg []byte) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//if err != nil {
|
|
||||||
// ClientRender(Fail, FailMsg, map[string]string{
|
|
||||||
// "errMsg": fmt.Sprintf("%v", err),
|
|
||||||
// })
|
|
||||||
// return err
|
|
||||||
//} else {
|
|
||||||
// ClientRender(SuccessCode, SuccessMsg, map[string]interface{}{
|
|
||||||
// "vendorID": sendData.VendorID,
|
|
||||||
// "msg": "ok",
|
|
||||||
// })
|
|
||||||
// return nil
|
|
||||||
//}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,16 +81,16 @@ func Send(data []byte, appID interface{}) {
|
|||||||
for {
|
for {
|
||||||
_, msg, err := conn.ReadMessage()
|
_, msg, err := conn.ReadMessage()
|
||||||
temp := string(msg)
|
temp := string(msg)
|
||||||
|
res := JsonCommon(HeartSuccessWord)
|
||||||
|
fmt.Printf("Send %s receive: %s\n", conn.RemoteAddr(), string(msg))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
break
|
break
|
||||||
|
} else if temp == res {
|
||||||
|
continue
|
||||||
} else {
|
} else {
|
||||||
if temp != HeartSuccessWord {
|
ReadMsgFromVendor(VendorIDMT, "", msg)
|
||||||
ReadMsgFromVendor(VendorIDMT, "", msg)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
fmt.Printf("%s receive: %s\n", conn.RemoteAddr(), string(msg))
|
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MtInit 发送心跳
|
// MtInit 发送心跳
|
||||||
@@ -135,53 +124,57 @@ func MtInit() {
|
|||||||
for {
|
for {
|
||||||
_, msg, err := conn.ReadMessage()
|
_, msg, err := conn.ReadMessage()
|
||||||
temp := string(msg)
|
temp := string(msg)
|
||||||
if err != nil || temp != "HB" {
|
res := JsonCommon(HeartCheckSuccess)
|
||||||
|
fmt.Printf("MtInit %s receive: %s\n", conn.RemoteAddr(), string(msg))
|
||||||
|
if err != nil {
|
||||||
break
|
break
|
||||||
|
} else if temp == res {
|
||||||
|
continue
|
||||||
} else {
|
} else {
|
||||||
ReadMsgFromVendor(VendorIDMT, "", msg)
|
ReadMsgFromVendor(VendorIDMT, "", msg)
|
||||||
}
|
}
|
||||||
fmt.Printf("%s receive: %s\n", conn.RemoteAddr(), string(msg))
|
|
||||||
}
|
}
|
||||||
}, url.ClientIDMain)
|
}, url.ClientIDMain)
|
||||||
|
|
||||||
//副连接
|
//副连接
|
||||||
if url.UrlSub != "" {
|
//if url.UrlSub != "" {
|
||||||
jxutils.CallMsgHandlerAsync(func() {
|
// jxutils.CallMsgHandlerAsync(func() {
|
||||||
connSub, respSub, errSub := websocket.DefaultDialer.Dial(url.UrlSub, nil)
|
// connSub, respSub, errSub := websocket.DefaultDialer.Dial(url.UrlSub, nil)
|
||||||
if errSub != nil || respSub.StatusCode != 101 {
|
// if errSub != nil || respSub.StatusCode != 101 {
|
||||||
fmt.Printf("连接失败:%v http响应不成功", errSub)
|
// fmt.Printf("连接失败:%v http响应不成功", errSub)
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
//关闭
|
// //关闭
|
||||||
defer func(conn *websocket.Conn) {
|
// defer func(conn *websocket.Conn) {
|
||||||
err := conn.Close()
|
// err := conn.Close()
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
}(connSub)
|
// }(connSub)
|
||||||
|
//
|
||||||
//client连接事件
|
// //client连接事件
|
||||||
client := NewClient(url.ClientIDSub, connSub, ClientTypeMt)
|
// client := NewClient(url.ClientIDSub, connSub, ClientTypeMt)
|
||||||
Manager.Connect <- client
|
// Manager.Connect <- client
|
||||||
|
//
|
||||||
errSub = connSub.WriteMessage(websocket.TextMessage, data)
|
// errSub = connSub.WriteMessage(websocket.TextMessage, data)
|
||||||
if errSub != nil {
|
// if errSub != nil {
|
||||||
fmt.Println(errSub)
|
// fmt.Println(errSub)
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
for {
|
// for {
|
||||||
_, msg, err := connSub.ReadMessage()
|
// _, msg, err := connSub.ReadMessage()
|
||||||
temp := string(msg)
|
// temp := string(msg)
|
||||||
if err != nil || temp != HeartCheckSuccess {
|
// res := JsonCommon(HeartCheckSuccess)
|
||||||
break
|
// if err != nil || temp == res {
|
||||||
} else {
|
// break
|
||||||
ReadMsgFromVendor(VendorIDMT, "", msg)
|
// } else {
|
||||||
}
|
// ReadMsgFromVendor(VendorIDMT, "", msg)
|
||||||
fmt.Printf("%s connSub:receive: %s\n", connSub.RemoteAddr(), string(msg))
|
// }
|
||||||
}
|
// fmt.Printf("MtInit %s connSub:receive: %s\n", connSub.RemoteAddr(), string(msg))
|
||||||
|
// }
|
||||||
}, url.ClientIDSub)
|
//
|
||||||
}
|
// }, url.ClientIDSub)
|
||||||
|
//}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ var (
|
|||||||
CommonSetting = &commonConf{}
|
CommonSetting = &commonConf{}
|
||||||
GlobalSetting = &global{}
|
GlobalSetting = &global{}
|
||||||
//心跳相关
|
//心跳相关
|
||||||
heartbeatInterval = 60 * time.Second // 心跳间隔
|
heartbeatInterval = 20 * time.Second // 心跳间隔
|
||||||
HeartCheckMsg = "~#HHHBBB#~" //心跳检测消息
|
HeartCheckMsg = "~#HHHBBB#~" //心跳检测消息
|
||||||
HeartCheckSuccess = "HB" //成功发送返回心跳消息
|
HeartCheckSuccess = "HB" //成功发送返回心跳消息
|
||||||
HeartSuccessWord = "成功" //成功发送返回心跳消息
|
HeartSuccessWord = "成功" //成功发送返回心跳消息
|
||||||
@@ -345,3 +345,10 @@ func RandString() string {
|
|||||||
}
|
}
|
||||||
return string(bytes)
|
return string(bytes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// JsonCommon json格式化
|
||||||
|
func JsonCommon(str string) (retVal string) {
|
||||||
|
temp, _ := json.Marshal(str)
|
||||||
|
_ = json.Unmarshal(temp, &retVal)
|
||||||
|
return retVal
|
||||||
|
}
|
||||||
|
|||||||
@@ -90,18 +90,18 @@ func PingTimer() {
|
|||||||
if conn.ClientType == ClientTypeJx {
|
if conn.ClientType == ClientTypeJx {
|
||||||
if err := conn.Socket.WriteControl(websocket.PingMessage, []byte{}, time.Now().Add(time.Second)); err != nil {
|
if err := conn.Socket.WriteControl(websocket.PingMessage, []byte{}, time.Now().Add(time.Second)); err != nil {
|
||||||
Manager.DisConnect <- conn
|
Manager.DisConnect <- conn
|
||||||
globals.SugarLogger.Debugf("发送心跳失败: %s 总连接数:%d", clientId, Manager.Count())
|
fmt.Printf("发送心跳失败: %s 总连接数:%d", clientId, Manager.Count())
|
||||||
}
|
}
|
||||||
if err := ConnRender(conn.Socket, renderData{ClientId: clientId}); err != nil {
|
if err := ConnRender(conn.Socket, renderData{ClientId: clientId}); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if err := conn.Socket.WriteMessage(websocket.TextMessage, []byte(HeartCheckMsg)); err != nil {
|
if err := conn.Socket.WriteMessage(websocket.TextMessage, []byte(HeartCheckMsg)); err != nil {
|
||||||
|
fmt.Printf("PingTimer mtHeartBeat err:%v", err)
|
||||||
//对美团重新建立连接
|
//对美团重新建立连接
|
||||||
MtInit()
|
MtInit()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//globals.SugarLogger.Debugf("发送心跳 clientId=%s,i=%d", clientId, i)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
@@ -114,11 +114,11 @@ func WriteMessage() {
|
|||||||
clientInfo := <-ToClientChan
|
clientInfo := <-ToClientChan
|
||||||
//广播发送通知所有京西客户端
|
//广播发送通知所有京西客户端
|
||||||
i++
|
i++
|
||||||
fmt.Printf("WriteMessage clientInfo=%s i=%d", utils.Format4Output(clientInfo, false), i)
|
fmt.Printf("WriteMessage clientInfo=%s i=%d\n", utils.Format4Output(clientInfo, false), i)
|
||||||
if Manager.AllClient() != nil {
|
if Manager.AllClient() != nil {
|
||||||
for _, conn := range Manager.AllClient() {
|
for _, conn := range Manager.AllClient() {
|
||||||
if conn.ClientType == ClientTypeJx { //只发送给京西
|
if conn.ClientType == ClientTypeJx { //只发送给京西
|
||||||
globals.SugarLogger.Debugf("WriteMessage conn.ClientId=%s", conn.ClientId)
|
fmt.Printf("WriteMessage conn.ClientId=%s\n", conn.ClientId)
|
||||||
if err := Render(conn.Socket, clientInfo.MessageId, clientInfo.Code, clientInfo.Msg, clientInfo.Data); err != nil {
|
if err := Render(conn.Socket, clientInfo.MessageId, clientInfo.Code, clientInfo.Msg, clientInfo.Data); err != nil {
|
||||||
Manager.DisConnect <- conn
|
Manager.DisConnect <- conn
|
||||||
}
|
}
|
||||||
@@ -128,11 +128,6 @@ func WriteMessage() {
|
|||||||
globals.SugarLogger.Debugf("无客户端连接,请检查")
|
globals.SugarLogger.Debugf("无客户端连接,请检查")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//if conn, err := Manager.GetByClientId(clientInfo.ClientId); err == nil && conn != nil {
|
|
||||||
// if err := Render(conn.Socket, clientInfo.MessageId, clientInfo.Code, clientInfo.Msg, clientInfo.Data); err != nil {
|
|
||||||
// Manager.DisConnect <- conn
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,8 +150,8 @@ func (c *Client) Read() {
|
|||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
messageType, msg, err := c.Socket.ReadMessage()
|
messageType, msg, err := c.Socket.ReadMessage()
|
||||||
temp := string(msg)
|
//temp := string(msg)
|
||||||
fmt.Print(temp)
|
//fmt.Print(temp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if messageType == -1 && websocket.IsCloseError(err, websocket.CloseGoingAway, websocket.CloseNormalClosure, websocket.CloseNoStatusReceived) {
|
if messageType == -1 && websocket.IsCloseError(err, websocket.CloseGoingAway, websocket.CloseNormalClosure, websocket.CloseNoStatusReceived) {
|
||||||
Manager.DisConnect <- c
|
Manager.DisConnect <- c
|
||||||
@@ -165,6 +160,7 @@ func (c *Client) Read() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fmt.Printf("Client Read:receive: %s\n", string(msg))
|
||||||
SendToVendor(msg)
|
SendToVendor(msg)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|||||||
@@ -6,25 +6,24 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model/legacymodel"
|
"git.rosy.net.cn/jx-callback/business/model/legacymodel"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"github.com/astaxie/beego/client/orm"
|
"github.com/astaxie/beego/client/orm"
|
||||||
"github.com/astaxie/beego/server/web"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
// set default database
|
// set default database
|
||||||
// orm.RegisterDataBase(aliasName, driverName, dataSource, params)
|
// orm.RegisterDataBase(aliasName, driverName, dataSource, params)
|
||||||
//正式服务器
|
//正式服务器
|
||||||
orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
|
//orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
|
||||||
orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(111.231.218.230:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
//orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(111.231.218.230:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
//orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
// 本地测试服调试
|
// 本地测试服调试
|
||||||
// orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
|
// orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
|
||||||
//orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
//orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
//orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
//orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
|
|
||||||
//本地服务器测试用 -ysq
|
//本地服务器测试用 -ysq
|
||||||
//orm.RegisterDataBase("default", "mysql", "root:123456@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
orm.RegisterDataBase("default", "mysql", "root:123456@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
//orm.RegisterDataBase("c4beta", "mysql", "root:123456@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
orm.RegisterDataBase("c4beta", "mysql", "root:123456@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
//orm.RegisterDataBase("api", "mysql", "root:123456@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
orm.RegisterDataBase("api", "mysql", "root:123456@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
|
|
||||||
// 开启sql打印
|
// 开启sql打印
|
||||||
//orm.Debug = true
|
//orm.Debug = true
|
||||||
|
|||||||
Reference in New Issue
Block a user