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