- new jd order handle ok, access jd api synchronously.

This commit is contained in:
gazebo
2018-06-06 14:51:16 +08:00
parent 8d1c22229b
commit 773135af89
8 changed files with 191 additions and 0 deletions

View 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) {
}