- elm callback basic.

This commit is contained in:
gazebo
2018-06-14 17:50:58 +08:00
parent 4854395ef3
commit ad1a6ab5c4
12 changed files with 273 additions and 48 deletions

View File

@@ -5,11 +5,10 @@ import (
"git.rosy.net.cn/baseapi/platform/jdapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/freshfood"
"git.rosy.net.cn/jx-callback/business/jd/models"
"git.rosy.net.cn/jx-callback/compat/corm"
"git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql" // import your used driver
)
const (
@@ -19,18 +18,13 @@ const (
var (
errChecker corm.DBErrorChecker
orderMsgChan chan *jdapi.JDOrderMsg
// freshFoodServerURL = "http://portal.jingxicaishi.com"
freshFoodServerURL = "http://test.jxc4.com"
freshFoodAPI *freshfood.FreshFoodAPI
)
type OrderControler struct {
type OrderController struct {
}
func initOrder() {
errChecker = new(corm.MysqlErrorChecker)
freshFoodAPI = freshfood.NewFreshFoodAPI(freshFoodServerURL, sugarLogger.Desugar())
orderMsgChan = make(chan *jdapi.JDOrderMsg, 128)
go orderMsgHandlerRoutinue()
@@ -86,7 +80,7 @@ func handleOrderMsg(orderMsg *jdapi.JDOrderMsg) {
}
// --------------
func (c *OrderControler) OrderStatus(order *jdapi.JDOrderMsg) *jdapi.JDOrderMsgResponse {
func (c *OrderController) OrderStatus(order *jdapi.JDOrderMsg) *jdapi.JDOrderMsgResponse {
if order.StatusId != jdapi.JdOrderStatusNew && order.StatusId != jdapi.JdOrderStatusAdjust {
err := normalOrderStatus(order)
if err != nil {
@@ -137,8 +131,8 @@ func (c *OrderControler) OrderStatus(order *jdapi.JDOrderMsg) *jdapi.JDOrderMsgR
return jdSuccessResponse
}
func (c *OrderControler) OrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.JDDeliveryStatusMsg) *jdapi.JDOrderMsgResponse {
err := freshFoodAPI.JDOrderDeliveryStatus(jdOrderDeliveryStatusMsg, "0")
func (c *OrderController) OrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.JDDeliveryStatusMsg) *jdapi.JDOrderMsgResponse {
err := globals.FreshFoodAPI.JDOrderDeliveryStatus(jdOrderDeliveryStatusMsg)
if err != nil {
sugarLogger.Errorf("Error when calling JDOrderDeliveryStatus, error:%v", err)
@@ -159,7 +153,7 @@ func newOrder(order *jdapi.JDOrderMsg) error {
result, err := gJdapi.LegacyQuerySingleOrder(order.BillId)
acceptOrder(order)
if err != nil {
sugarLogger.Warnf("error when query jd order:%s, error:%v", order.BillId, err)
sugarLogger.Errorf("error when query jd order:%s, error:%v", order.BillId, err)
} else {
rec := &models.Jdorder{
Id: order.Id,
@@ -186,9 +180,9 @@ func newOrder(order *jdapi.JDOrderMsg) error {
rec.OrderStatus = int(orderStatus)
rec.OrderStatusTime = resultList0["orderStatusTime"].(string)
resultByteArr, _ := json.Marshal(data)
resultByteArr := utils.MustMarshal(data)
rec.Data = string(resultByteArr)
err = freshFoodAPI.NewJDOrder(rec)
err = globals.FreshFoodAPI.NewJDOrder(rec)
if err == nil {
db := orm.NewOrm()
_, err = db.Update(rec, "Data", "Code", "Msg", "Success", "CityName", "OrderStatus", "OrderStatusTime")
@@ -228,9 +222,8 @@ func normalOrderStatus(order *jdapi.JDOrderMsg) error {
rec.OrderStatus = utils.Str2Int(order.StatusId)
rec.OrderStatusTime = order.Timestamp
err = freshFoodAPI.JDOrderStatus(rec, "0")
err = globals.FreshFoodAPI.JDOrderStatus(rec)
if err != nil {
// todo 这里应该要加一个重试机制
sugarLogger.Warnf("access freshfood failed, error:%v", err)
return err
}