- adjust package structure.

This commit is contained in:
gazebo
2018-06-20 15:53:08 +08:00
parent 9ca830c240
commit 157d36c47f
9 changed files with 139 additions and 124 deletions

View File

@@ -5,6 +5,7 @@ import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/elm/models"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/globals2"
"github.com/astaxie/beego/orm"
)
@@ -46,12 +47,12 @@ func (o *OrderController) NewOrder(msg *elmapi.ELMCallbackMsg, orderId string) *
return errResponseDBError
}
if created || rec.Type != msg.Type {
result, err := globals.ElmAPI.GetOrder(orderId)
result, err := globals2.ElmAPI.GetOrder(orderId)
if err != nil {
globals.SugarLogger.Warnf("call GetOrder error:%v", err)
return errResponseCallELMAPIError
}
err = globals.FreshFoodAPI.NewELMOrder(result)
err = globals2.FreshFoodAPI.NewELMOrder(result)
if err != nil {
globals.SugarLogger.Warnf("internal error:%v", err)
return errResponseInternal
@@ -74,7 +75,7 @@ func (o *OrderController) OrderStatusChanged(msg *elmapi.ELMCallbackMsg, orderId
return errResponseDBError
}
if rec.Type != msg.Type {
err = globals.FreshFoodAPI.ELMOrderStatus(orderId, msg.Type, utils.GetCurTimestamp())
err = globals2.FreshFoodAPI.ELMOrderStatus(orderId, msg.Type, utils.GetCurTimestamp())
if err != nil {
globals.SugarLogger.Warnf("internal error:%v", err)
return errResponseInternal
@@ -83,7 +84,7 @@ func (o *OrderController) OrderStatusChanged(msg *elmapi.ELMCallbackMsg, orderId
utils.CallFuncLogError(func() error {
_, err := db.Update(rec, "Type")
return err
}, globals.ErrStrAccessDB)
}, globals2.ErrStrAccessDB)
}
} else {
globals.SugarLogger.Infof("duplicate elm msg received:%v", msg)

View File

@@ -9,7 +9,7 @@ import (
"git.rosy.net.cn/baseapi/platform/mtpsapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jd/models"
"go.uber.org/zap"
"git.rosy.net.cn/jx-callback/globals"
)
const (
@@ -75,13 +75,12 @@ const (
)
type FreshFoodAPI struct {
baseURL string
sugarLogger *zap.SugaredLogger
client *http.Client
baseURL string
client *http.Client
}
func NewFreshFoodAPI(baseURL string, sugarredLogger *zap.SugaredLogger) *FreshFoodAPI {
return &FreshFoodAPI{baseURL, sugarredLogger, &http.Client{Timeout: time.Second * 5}}
func NewFreshFoodAPI(baseURL string) *FreshFoodAPI {
return &FreshFoodAPI{baseURL, &http.Client{Timeout: time.Second * 5}}
}
func (f *FreshFoodAPI) AccessFreshFood(apiStr string, params url.Values) error {
@@ -90,14 +89,14 @@ func (f *FreshFoodAPI) AccessFreshFood(apiStr string, params url.Values) error {
for i := 0; i < retryCount; i++ {
// _, err := f.client.PostForm(fullURL, params)
err = error(nil)
f.sugarLogger.Debug(fullURL)
f.sugarLogger.Debug(params)
globals.SugarLogger.Debug(fullURL)
globals.SugarLogger.Debug(params)
if err == nil {
break
}
}
if err != nil {
f.sugarLogger.Warnf("Call %s error:%v", fullURL, err)
globals.SugarLogger.Warnf("Call %s error:%v", fullURL, err)
}
return err
}

View File

@@ -8,6 +8,7 @@ import (
"git.rosy.net.cn/jx-callback/business/jd/models"
"git.rosy.net.cn/jx-callback/compat/corm"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/globals2"
"github.com/astaxie/beego/orm"
)
@@ -119,7 +120,7 @@ func (c *OrderController) OrderStatus(order *jdapi.JDOrderMsg) *jdapi.JDCallback
utils.CallFuncLogError(func() error {
_, err := db.Update(rec, "OrderStatus", "OrderStatusTime", "Code")
return err
}, globals.ErrStrAccessDB)
}, globals2.ErrStrAccessDB)
addOrderMsg(order)
}
} else {
@@ -135,7 +136,7 @@ func (c *OrderController) OrderStatus(order *jdapi.JDOrderMsg) *jdapi.JDCallback
}
func (c *OrderController) OrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.JDDeliveryStatusMsg) *jdapi.JDCallbackResponse {
err := globals.FreshFoodAPI.JDOrderDeliveryStatus(jdOrderDeliveryStatusMsg)
err := globals2.FreshFoodAPI.JDOrderDeliveryStatus(jdOrderDeliveryStatusMsg)
if err != nil {
globals.SugarLogger.Errorf("Error when calling JDOrderDeliveryStatus, error:%v", err)
@@ -147,11 +148,11 @@ func (c *OrderController) OrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.JD
//-----------
func acceptOrder(order *jdapi.JDOrderMsg) {
globals.Jdapi.OrderAcceptOperate(order.BillId, true)
globals2.Jdapi.OrderAcceptOperate(order.BillId, true)
}
func newOrder(order *jdapi.JDOrderMsg) error {
result, err := globals.Jdapi.LegacyQuerySingleOrder(order.BillId)
result, err := globals2.Jdapi.LegacyQuerySingleOrder(order.BillId)
acceptOrder(order)
if err != nil {
globals.SugarLogger.Errorf("error when query jd order:%s, error:%v", order.BillId, err)
@@ -183,13 +184,13 @@ func newOrder(order *jdapi.JDOrderMsg) error {
resultByteArr := utils.MustMarshal(data)
rec.Data = string(resultByteArr)
err = globals.FreshFoodAPI.NewJDOrder(rec)
err = globals2.FreshFoodAPI.NewJDOrder(rec)
if err == nil {
db := orm.NewOrm()
utils.CallFuncLogError(func() error {
_, err := db.Update(rec, "Data", "Code", "Msg", "Success", "CityName", "OrderStatus", "OrderStatusTime")
return err
}, globals.ErrStrAccessDB)
}, globals2.ErrStrAccessDB)
} else {
globals.SugarLogger.Errorf("Error when calling NewJDOrder error:%v", err)
}
@@ -223,7 +224,7 @@ func normalOrderStatus(order *jdapi.JDOrderMsg) error {
rec.OrderStatus = utils.Str2Int(order.StatusId)
rec.OrderStatusTime = order.Timestamp
err = globals.FreshFoodAPI.JDOrderStatus(rec)
err = globals2.FreshFoodAPI.JDOrderStatus(rec)
if err != nil {
globals.SugarLogger.Warnf("access freshfood failed, error:%v", err)
return err
@@ -233,6 +234,6 @@ func normalOrderStatus(order *jdapi.JDOrderMsg) error {
utils.CallFuncLogError(func() error {
_, err := db.Update(rec, "OrderStatus", "OrderStatusTime", "Code")
return err
}, globals.ErrStrAccessDB)
}, globals2.ErrStrAccessDB)
return err
}

View File

@@ -2,7 +2,7 @@ package controller
import (
"git.rosy.net.cn/baseapi/platform/mtpsapi"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/globals2"
)
type OrderController struct {
@@ -18,9 +18,9 @@ func Error2Response(err error) *mtpsapi.MtpsCallbackResponse {
}
func (c *OrderController) OrderStatusChanged(order *mtpsapi.MtpsCallbackOrderMsg) *mtpsapi.MtpsCallbackResponse {
return Error2Response(globals.FreshFoodAPI.MtpsOrderStatusChanged(order))
return Error2Response(globals2.FreshFoodAPI.MtpsOrderStatusChanged(order))
}
func (c *OrderController) OrderException(order *mtpsapi.MtpsCallbackOrderExceptionMsg) *mtpsapi.MtpsCallbackResponse {
return Error2Response(globals.FreshFoodAPI.MtpsOrderException(order))
return Error2Response(globals2.FreshFoodAPI.MtpsOrderException(order))
}

View File

@@ -3,7 +3,7 @@ package controllers
import (
"git.rosy.net.cn/baseapi/platform/elmapi"
"git.rosy.net.cn/jx-callback/business/elm/controller"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/globals2"
"github.com/astaxie/beego"
)
@@ -23,7 +23,7 @@ func (c *ELMOrderController) URLMapping() {
// @Failure 403 body is empty
// @router /msg [post]
func (c *ELMOrderController) MsgPost() {
obj, callbackResponse := globals.ElmAPI.GetMsgFromData(c.Ctx.Input.RequestBody)
obj, callbackResponse := globals2.ElmAPI.GetMsgFromData(c.Ctx.Input.RequestBody)
if callbackResponse == nil {
cc := &controller.OrderController{}
callbackResponse = cc.OrderMessage(obj)

View File

@@ -2,7 +2,7 @@ package controllers
import (
"git.rosy.net.cn/jx-callback/business/jd/controller"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/globals2"
"github.com/astaxie/beego"
)
@@ -24,7 +24,7 @@ func (c *JDOrderController) URLMapping() {
}
func (c *JDOrderController) orderStatus() {
obj, callbackResponse := globals.Jdapi.GetOrderMsg(c.Ctx.Request)
obj, callbackResponse := globals2.Jdapi.GetOrderMsg(c.Ctx.Request)
if callbackResponse == nil {
cc := controller.OrderController{}
callbackResponse = cc.OrderStatus(obj)
@@ -130,7 +130,7 @@ func (c *JDOrderController) ApplyCancelOrder() {
// @Failure 403 body is empty
// @router /pushDeliveryStatus [post]
func (c *JDOrderController) PushDeliveryStatus() {
obj, callbackResponse := globals.Jdapi.GetOrderDeliveryMsg(c.Ctx.Request)
obj, callbackResponse := globals2.Jdapi.GetOrderDeliveryMsg(c.Ctx.Request)
if callbackResponse == nil {
cc := controller.OrderController{}
callbackResponse = cc.OrderDeliveryStatus(obj)

View File

@@ -2,7 +2,7 @@ package controllers
import (
"git.rosy.net.cn/jx-callback/business/mtps/controller"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/globals2"
"github.com/astaxie/beego"
)
@@ -22,7 +22,7 @@ func (c *MTPSOrderController) URLMapping() {
// @Failure 403 body is empty
// @router /status [post]
func (c *MTPSOrderController) Status() {
obj, callbackResponse := globals.MtpsAPI.GetOrderCallbackMsg(c.Ctx.Request)
obj, callbackResponse := globals2.MtpsAPI.GetOrderCallbackMsg(c.Ctx.Request)
if callbackResponse == nil {
cc := &controller.OrderController{}
callbackResponse = cc.OrderStatusChanged(obj)
@@ -37,7 +37,7 @@ func (c *MTPSOrderController) Status() {
// @Failure 403 body is empty
// @router /except [Post]
func (c *MTPSOrderController) Except() {
obj, callbackResponse := globals.MtpsAPI.GetOrderExceptionCallbackMsg(c.Ctx.Request)
obj, callbackResponse := globals2.MtpsAPI.GetOrderExceptionCallbackMsg(c.Ctx.Request)
if callbackResponse == nil {
cc := &controller.OrderController{}
callbackResponse = cc.OrderException(obj)

View File

@@ -1,106 +1,15 @@
package globals
import (
"git.rosy.net.cn/baseapi/platform/elmapi"
"git.rosy.net.cn/baseapi/platform/jdapi"
"git.rosy.net.cn/baseapi/platform/mtpsapi"
"git.rosy.net.cn/baseapi/utils"
elmmodels "git.rosy.net.cn/jx-callback/business/elm/models"
"git.rosy.net.cn/jx-callback/business/freshfood"
"git.rosy.net.cn/jx-callback/business/jd/models"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql" // import your used driver
"go.uber.org/zap"
)
const (
freshFoodServerURL = "http://test.jxc4.com"
// freshFoodServerURL = "http://portal.jingxicaishi.com"
)
const (
// 京东西安账号
jdToken = "c8854ef2-f80a-45ee-aceb-dc8014d646f8"
jdAppKey = "06692746f7224695ad4788ce340bc854"
jdSecret = "d6b42a35a7414a5490d811654d745c84"
// 京东全国账号
// jdToken = "91633f2a-c5f5-4982-a925-a220d19095c3"
// jdAppKey = "1dba76d40cac446ca500c0391a0b6c9d"
// jdSecret = "a88d031a1e7b462cb1579f12e97fe7f4"
)
const (
// 饿了么生产
// elmIsProd = true
// elmToken = "" //"bab2a27f99562f394b411dbb9a6214da"
// elmAppKey = "KLRDcOZGrk"
// elmSecret = "1fc221f8265506531da36fb613d5f5ad673f2e9a"
elmIsProd = false
elmToken = "2d2b583447b04b6bba5a6f3faed3559b"
elmAppKey = "RwT214gAsS"
elmSecret = "56afff4b9ebd8a7eb532d18fa33f17be57f9b9db"
)
const (
// mtpsAppKey = "25e816550bc9484480642f19a95f13fd"
// mtpsSecret = "r4$HqrKx9~=7?2Jfo,$Z~a7%~k!Au&pEdI2)oPJvSbH2ao@2N0[8wSIvtuumh_J^"
mtpsAppKey = "3c0a05d464c247c19d7ec13accc78605"
mtpsSecret = "b1M}9?:sTbsB[OF2gNORnN(|(iy9rB8(`7]|[wGLnbmt`evfM>E:A90DjHAW:UPE"
)
const (
ErrStrAccessDB = "Error when access DB"
)
var (
SugarLogger *zap.SugaredLogger
FreshFoodAPI *freshfood.FreshFoodAPI
Jdapi *jdapi.JDAPI
ElmAPI *elmapi.ELMAPI
MtpsAPI *mtpsapi.MTPSAPI
SugarLogger *zap.SugaredLogger
)
func init() {
logger, _ := zap.NewDevelopment()
SugarLogger = logger.Sugar()
initDB()
FreshFoodAPI = freshfood.NewFreshFoodAPI(freshFoodServerURL, SugarLogger)
Jdapi = jdapi.NewJDAPI(jdToken, jdAppKey, jdSecret, SugarLogger)
initElm()
MtpsAPI = mtpsapi.NewMTPSAPI(mtpsAppKey, mtpsSecret, SugarLogger)
}
func initElm() {
token := elmToken
if token == "" {
db := orm.NewOrm()
var tokenInfo []orm.Params
num, err := db.Raw("SELECT * FROM thirdpartytoken WHERE thirdparty='eleme'").Values(&tokenInfo)
if err != nil || num != 1 {
panic(err.Error())
}
var tokenInfo2 map[string]interface{}
if err := utils.UnmarshalUseNumber([]byte(tokenInfo[0]["token"].(string)), &tokenInfo2); err != nil {
panic(err.Error())
}
token = tokenInfo2["accessToken"].(string)
}
ElmAPI = elmapi.NewELMAPI(token, elmAppKey, elmSecret, SugarLogger, elmIsProd)
}
func initDB() {
// set default database
orm.RegisterDataBase("default", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/jx-callback?charset=utf8&loc=Local", 30)
// register model
orm.RegisterModel(new(models.Jdorder))
orm.RegisterModel(new(elmmodels.ELMOrder))
// create table
orm.RunSyncdb("default", false, true)
}

View File

@@ -0,0 +1,105 @@
package globals2
import (
"git.rosy.net.cn/baseapi/platform/elmapi"
"git.rosy.net.cn/baseapi/platform/jdapi"
"git.rosy.net.cn/baseapi/platform/mtpsapi"
"git.rosy.net.cn/baseapi/utils"
elmmodels "git.rosy.net.cn/jx-callback/business/elm/models"
"git.rosy.net.cn/jx-callback/business/freshfood"
"git.rosy.net.cn/jx-callback/business/jd/models"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql" // import your used driver
)
const (
freshFoodServerURL = "http://test.jxc4.com"
// freshFoodServerURL = "http://portal.jingxicaishi.com"
)
const (
// 京东西安账号
jdToken = "c8854ef2-f80a-45ee-aceb-dc8014d646f8"
jdAppKey = "06692746f7224695ad4788ce340bc854"
jdSecret = "d6b42a35a7414a5490d811654d745c84"
// 京东全国账号
// jdToken = "91633f2a-c5f5-4982-a925-a220d19095c3"
// jdAppKey = "1dba76d40cac446ca500c0391a0b6c9d"
// jdSecret = "a88d031a1e7b462cb1579f12e97fe7f4"
)
const (
// 饿了么生产
// elmIsProd = true
// elmToken = "" //"bab2a27f99562f394b411dbb9a6214da"
// elmAppKey = "KLRDcOZGrk"
// elmSecret = "1fc221f8265506531da36fb613d5f5ad673f2e9a"
elmIsProd = false
elmToken = "2d2b583447b04b6bba5a6f3faed3559b"
elmAppKey = "RwT214gAsS"
elmSecret = "56afff4b9ebd8a7eb532d18fa33f17be57f9b9db"
)
const (
// mtpsAppKey = "25e816550bc9484480642f19a95f13fd"
// mtpsSecret = "r4$HqrKx9~=7?2Jfo,$Z~a7%~k!Au&pEdI2)oPJvSbH2ao@2N0[8wSIvtuumh_J^"
mtpsAppKey = "3c0a05d464c247c19d7ec13accc78605"
mtpsSecret = "b1M}9?:sTbsB[OF2gNORnN(|(iy9rB8(`7]|[wGLnbmt`evfM>E:A90DjHAW:UPE"
)
const (
dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jx-callback?charset=utf8&loc=Local"
)
const (
ErrStrAccessDB = "Error when access DB"
)
var (
FreshFoodAPI *freshfood.FreshFoodAPI
Jdapi *jdapi.JDAPI
ElmAPI *elmapi.ELMAPI
MtpsAPI *mtpsapi.MTPSAPI
)
func init() {
initDB()
FreshFoodAPI = freshfood.NewFreshFoodAPI(freshFoodServerURL)
Jdapi = jdapi.NewJDAPI(jdToken, jdAppKey, jdSecret)
initElm()
MtpsAPI = mtpsapi.NewMTPSAPI(mtpsAppKey, mtpsSecret)
}
func initElm() {
token := elmToken
if token == "" {
db := orm.NewOrm()
var tokenInfo []orm.Params
num, err := db.Raw("SELECT * FROM thirdpartytoken WHERE thirdparty='eleme'").Values(&tokenInfo)
if err != nil || num != 1 {
panic(err.Error())
}
var tokenInfo2 map[string]interface{}
if err := utils.UnmarshalUseNumber([]byte(tokenInfo[0]["token"].(string)), &tokenInfo2); err != nil {
panic(err.Error())
}
token = tokenInfo2["accessToken"].(string)
}
ElmAPI = elmapi.NewELMAPI(token, elmAppKey, elmSecret, elmIsProd)
}
func initDB() {
// set default database
orm.RegisterDataBase("default", "mysql", dbConnectStr, 30)
// register model
orm.RegisterModel(new(models.Jdorder))
orm.RegisterModel(new(elmmodels.ELMOrder))
// create table
orm.RunSyncdb("default", false, true)
}