- new jd order handle ok, access jd api synchronously.
This commit is contained in:
71
business/jd/controller/order.go
Normal file
71
business/jd/controller/order.go
Normal file
@@ -0,0 +1,71 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"strconv"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jd/models"
|
||||
"git.rosy.net.cn/jx-callback/compat/corm"
|
||||
"github.com/astaxie/beego/orm"
|
||||
_ "github.com/go-sql-driver/mysql" // import your used driver
|
||||
)
|
||||
|
||||
var errChecker corm.DBErrorChecker
|
||||
|
||||
func init() {
|
||||
errChecker = new(corm.MysqlErrorChecker)
|
||||
|
||||
// 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))
|
||||
|
||||
// create table
|
||||
orm.RunSyncdb("default", false, true)
|
||||
}
|
||||
|
||||
type OrderControler struct {
|
||||
}
|
||||
|
||||
func (c *OrderControler) NewOrder(order *models.NewOrderMsg) *models.OrderMsgResponse {
|
||||
db := orm.NewOrm()
|
||||
jdorderid, _ := strconv.ParseInt(order.BillId, 10, 64)
|
||||
status, _ := strconv.Atoi(order.StatusId)
|
||||
rec := &models.Jdorder{
|
||||
JdOrderId: jdorderid,
|
||||
OrderStatus: status,
|
||||
}
|
||||
|
||||
if created, _, err := db.ReadOrCreate(rec, "Jdorderid"); err == nil {
|
||||
if created {
|
||||
c.AcceptOrder(order)
|
||||
result, err := gJdapi.LegacyQuerySingleOrder(order.BillId)
|
||||
if err != nil {
|
||||
sugarLogger.Warnf("error when query jd order:%s, error:%v", order.BillId, err)
|
||||
} else {
|
||||
rec.Code = result.Code
|
||||
rec.Msg = result.Msg
|
||||
rec.Success = 1
|
||||
rec.CityName = "all"
|
||||
rec.OrderStatus = result.OrderStatus
|
||||
rec.OrderStatusTime = result.OrderStatusTime
|
||||
result.Msg = "成功"
|
||||
resultByteArr, _ := json.Marshal(result)
|
||||
rec.Data = string(resultByteArr)
|
||||
db.Update(rec, "Data", "Code", "Msg", "Success", "CityName", "OrderStatus", "OrderStatusTime")
|
||||
}
|
||||
|
||||
} else {
|
||||
sugarLogger.Warnf("duplicated jd orderid:%s", order.BillId)
|
||||
sugarLogger.Debug(rec)
|
||||
}
|
||||
} else {
|
||||
sugarLogger.Errorf("error when calling ReadOrCreate:%v", err)
|
||||
}
|
||||
|
||||
return &models.OrderMsgResponse{"0", "success", ""}
|
||||
}
|
||||
|
||||
func (c *OrderControler) AcceptOrder(order *models.NewOrderMsg) {
|
||||
}
|
||||
Reference in New Issue
Block a user