From d7de24715b64bf59f68d59677a156b9c539c5010 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 16 Oct 2018 10:47:44 +0800 Subject: [PATCH] - remove useless legacy codes. - refactor models --- .../jxcallback/auth/localpass/localpass.go | 4 +- business/jxcallback/auth/weixin/weixin.go | 6 +- business/jxcallback/orderman/order.go | 6 - business/jxcallback/orderman/order_legacy.go | 315 ------------------ business/jxcallback/orderman/waybill.go | 3 - .../scheduler/basesch/basesch_ext.go | 2 +- .../jxcallback/scheduler/defsch/defsch.go | 2 +- business/jxstore/cms/store.go | 3 +- business/jxstore/cms/user.go | 22 +- business/jxstore/financial/financial.go | 4 +- business/jxutils/weixinmsg/weixinmsg.go | 5 +- .../{ => model}/legacymodel/blackclient.go | 0 business/{ => model}/legacymodel/config.go | 0 business/model/legacymodel/jxbackenduser.go | 20 ++ .../jxbadcomments.go} | 54 +-- .../{ => model}/legacymodel/jxstorefeature.go | 0 business/model/legacymodel/storebill.go | 21 ++ business/{ => model}/legacymodel/tmplog.go | 0 business/model/legacymodel/weixins.go | 14 + .../legacymodel2}/elemeorder.go | 0 .../legacymodel2}/jdorder.go | 0 .../legacymodel2}/jxorder.go | 0 .../legacymodel2}/jxordersku.go | 0 business/partner/delivery/mtps/waybill.go | 2 +- business/partner/purchase/elm/order_legacy.go | 44 --- business/partner/purchase/jd/order_legacy.go | 49 --- .../purchase/jd/order_legacy_comment.go | 3 +- globals/beegodb/beegodb.go | 20 +- legacy/controllers/business.go | 46 --- legacy/dada/controller/order.go | 20 -- legacy/elm/controller/order.go | 151 --------- legacy/elm/models/order.go | 18 - legacy/freshfood/freshfood.go | 207 +----------- legacy/jd/controller/order.go | 232 ------------- legacy/jd/models/order.go | 14 - legacy/models/models.go | 13 - legacy/mtps/controller/order.go | 26 -- legacy/mtps/models/order.go | 13 - legacy/tasks/configrefresh.go | 2 +- 39 files changed, 93 insertions(+), 1248 deletions(-) delete mode 100644 business/jxcallback/orderman/order_legacy.go rename business/{ => model}/legacymodel/blackclient.go (100%) rename business/{ => model}/legacymodel/config.go (100%) create mode 100644 business/model/legacymodel/jxbackenduser.go rename business/model/{legacy.go => legacymodel/jxbadcomments.go} (58%) rename business/{ => model}/legacymodel/jxstorefeature.go (100%) create mode 100644 business/model/legacymodel/storebill.go rename business/{ => model}/legacymodel/tmplog.go (100%) create mode 100644 business/model/legacymodel/weixins.go rename business/{legacymodel => model/legacymodel2}/elemeorder.go (100%) rename business/{legacymodel => model/legacymodel2}/jdorder.go (100%) rename business/{legacymodel => model/legacymodel2}/jxorder.go (100%) rename business/{legacymodel => model/legacymodel2}/jxordersku.go (100%) delete mode 100644 business/partner/purchase/elm/order_legacy.go delete mode 100644 business/partner/purchase/jd/order_legacy.go delete mode 100644 legacy/controllers/business.go delete mode 100644 legacy/dada/controller/order.go delete mode 100644 legacy/elm/controller/order.go delete mode 100644 legacy/elm/models/order.go delete mode 100644 legacy/jd/controller/order.go delete mode 100644 legacy/jd/models/order.go delete mode 100644 legacy/models/models.go delete mode 100644 legacy/mtps/controller/order.go delete mode 100644 legacy/mtps/models/order.go diff --git a/business/jxcallback/auth/localpass/localpass.go b/business/jxcallback/auth/localpass/localpass.go index 25dbe8343..bb54bd908 100644 --- a/business/jxcallback/auth/localpass/localpass.go +++ b/business/jxcallback/auth/localpass/localpass.go @@ -5,8 +5,8 @@ import ( "fmt" "git.rosy.net.cn/jx-callback/business/jxcallback/auth" - "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" ) const ( @@ -21,7 +21,7 @@ func init() { } func (a *Auther) Login(uname, password string) (err error) { - user := &model.JxBackendUser{ + user := &legacymodel.JxBackendUser{ UName: uname, } if err = dao.GetEntity(nil, user, "UName"); err == nil { diff --git a/business/jxcallback/auth/weixin/weixin.go b/business/jxcallback/auth/weixin/weixin.go index f66dc999e..02c11c33d 100644 --- a/business/jxcallback/auth/weixin/weixin.go +++ b/business/jxcallback/auth/weixin/weixin.go @@ -9,8 +9,8 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxcallback/auth" "git.rosy.net.cn/jx-callback/business/jxcallback/auth/mobile" - "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego/orm" @@ -67,7 +67,7 @@ func GetUserInfo(code string, state string) (token *UserInfoExt, err error) { func (a *Auther) Login(openid, password string) (err error) { if value := globals.Cacher.Get(openid); value != nil { if password == value.(string) { - // wxUser := &model.WeiXins{ + // wxUser := &legacymodel.WeiXins{ // OpenID: openid, // } // if err = dao.GetEntity(nil, wxUser, "OpenID"); err == nil { @@ -89,7 +89,7 @@ func BindMobile(token, mobileNum, code, nickname string) (err error) { loginInfo := new(auth.LoginInfo) if err = globals.Cacher.GetAs(token, loginInfo); err == nil { if mobile.VerifyCode(mobileNum, code) { - user := &model.WeiXins{ + user := &legacymodel.WeiXins{ OpenID: loginInfo.ID, Tel: mobileNum, NickName: nickname, diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 00315b819..9c7b9adfc 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -110,9 +110,6 @@ func (c *OrderManager) OnOrderStatusChanged(orderStatus *model.OrderStatus) (err isDuplicated, err := c.addOrderStatus(orderStatus, nil) if err == nil && !isDuplicated { err = scheduler.CurrentScheduler.OnOrderStatusChanged(orderStatus, false) - if globals.GenerateLegacyJxOrder { - c.legacyJxOrderStatusChanged(orderStatus, nil) - } } return err } @@ -159,9 +156,6 @@ func (c *OrderManager) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm. baseapi.SugarLogger.Infof("saveOrder insert order:%v, order_sku error:%v", order, err) } else { db.Commit() - if globals.GenerateLegacyJxOrder { - c.legacyWriteJxOrder(order, db, isAdjust) - } } } else { isDuplicated = true diff --git a/business/jxcallback/orderman/order_legacy.go b/business/jxcallback/orderman/order_legacy.go deleted file mode 100644 index 84555f237..000000000 --- a/business/jxcallback/orderman/order_legacy.go +++ /dev/null @@ -1,315 +0,0 @@ -package orderman - -import ( - "strings" - - "git.rosy.net.cn/baseapi" - "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/business/jxutils" - "git.rosy.net.cn/jx-callback/business/legacymodel" - "git.rosy.net.cn/jx-callback/business/model" - "git.rosy.net.cn/jx-callback/globals" - "github.com/astaxie/beego/orm" -) - -// legacy -const ( - JX_ORDER_STATUS_WAIT_TO_ACCEPT = -1 //未接单(41000) - JX_ORDER_STATUS_PICKING = 0 //拣货(32000->或定时召唤达达) - JX_ORDER_STATUS_WAIT_FOR_DELIVERY = 1 //待配送(2->或转商家自送) - JX_ORDER_STATUS_DELIVERING = 2 //配送中(33040) - JX_ORDER_STATUS_DELIVERY_DONE = 3 //已完成(33060->90000) - JX_ORDER_STATUS_EXCEPTION_APPLY = 4 //异常申请 - JX_ORDER_STATUS_NOT_DELIVER = 5 //不配送 - JX_ORDER_STATUS_AFTER_SALE = 6 //售后单 - JX_ORDER_STATUS_CANCEL = 7 //已取消 - JX_ORDER_STATUS_ADJUST = 8 //调整单 - - JX_DELIVERY_STATUS_NOT_DELIVERY = -1 //尚未申请配送 - JX_DELIVERY_STATUS_WAIT_TO_GRAB = 0 //等待抢单 - JX_DELIVERY_STATUS_GRAB_DONE = 1 //已抢单 - JX_DELIVERY_STATUS_FAIL_TO_GET_GOODS = 2 //取货失败 - JX_DELIVERY_STATUS_FAIL_TO_GET_GOODS_WAIT_TO_CONFIRM = 3 //取货失败待审核 - JX_DELIVERY_STATUS_GET_GOODS_DONE = 4 //取货完成 - JX_DELIVERY_STATUS_DELIVERY_FAIL = 5 //投递失败 - JX_DELIVERY_STATUS_DELIVERY_DONE = 6 //已完成 - JX_DELIVERY_STATUS_DELIVERY_CANCEL = 7 //已取消 - - JX_STATUS_UNKNOWN = -100 -) - -const ( - DD_CARRIER_NO = "9966" - SELLER_CARRIER_NO = "2938" - MTPS_CARRIER_NO = "1123" - DDDELIVERY_CARRIER_NO = "3465" - EME_SELF_CARRIER_NO = "9999" -) - -var ( - VENDOR_ID2CARRIER_NO = map[int]string{ - model.VendorIDJD: DD_CARRIER_NO, - model.VendorIDELM: EME_SELF_CARRIER_NO, - model.VendorIDDada: DDDELIVERY_CARRIER_NO, - model.VendorIDMTPS: MTPS_CARRIER_NO, - } - - CARRIERS_NAMES = map[string]string{ - DD_CARRIER_NO: "达达专送", - SELLER_CARRIER_NO: "门店自送", - MTPS_CARRIER_NO: "美团配送", - DDDELIVERY_CARRIER_NO: "达达众包", - EME_SELF_CARRIER_NO: "饿了么蜂鸟", - } - - BUSINESS_TAGS_MAP = map[string]string{ - "one_dingshida": "0", - "dj_aging_nextday": "1", - "dj_aging_immediately": "2", - "lengcang": "3", - "lengdong": "3", - } -) - -func legacyMapCoordinateType(coordType int) (jxorderCoordType int) { - if coordType == model.CoordinateTypeMars { - return 2 - } - return 0 -} - -func legacyMapOrderStatus(orderStatus int) (retVal int8) { - switch orderStatus { - case model.OrderStatusNew: - retVal = JX_ORDER_STATUS_WAIT_TO_ACCEPT - case model.OrderStatusAccepted: - retVal = JX_ORDER_STATUS_PICKING - case model.OrderStatusDelivering: - retVal = JX_ORDER_STATUS_DELIVERING - case model.OrderStatusDelivered, model.OrderStatusFinished: - retVal = JX_ORDER_STATUS_DELIVERY_DONE - case model.OrderStatusAdjust: - retVal = JX_ORDER_STATUS_ADJUST - case model.OrderStatusApplyCancel: - retVal = JX_ORDER_STATUS_EXCEPTION_APPLY - case model.OrderStatusCanceled: - retVal = JX_ORDER_STATUS_CANCEL - case model.OrderStatusFinishedPickup: - retVal = JX_ORDER_STATUS_WAIT_FOR_DELIVERY - default: - retVal = JX_STATUS_UNKNOWN - } - return retVal -} - -func legacyMapWaybillStatus(status int) (retVal int8) { - switch status { - case model.WaybillStatusNew: - retVal = JX_DELIVERY_STATUS_WAIT_TO_GRAB - case model.WaybillStatusAccepted: - retVal = JX_DELIVERY_STATUS_GRAB_DONE - case model.WaybillStatusCourierArrived: - retVal = JX_DELIVERY_STATUS_GET_GOODS_DONE - case model.WaybillStatusDelivering: - retVal = JX_DELIVERY_STATUS_GET_GOODS_DONE - case model.WaybillStatusDelivered: - retVal = JX_DELIVERY_STATUS_DELIVERY_DONE - case model.WaybillStatusCanceled: - retVal = JX_DELIVERY_STATUS_DELIVERY_CANCEL - case model.WaybillStatusFailed: - retVal = JX_DELIVERY_STATUS_DELIVERY_FAIL - default: - retVal = JX_STATUS_UNKNOWN - } - return retVal -} - -func (c *OrderManager) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Ormer, isDelFirst bool) (err error) { - var result map[string]interface{} - businessTags := "" - if order.VendorID == model.VendorIDJD && utils.UnmarshalUseNumber([]byte(order.OriginalData), &result) == nil { - tagList := strings.Split(result["businessTag"].(string), ";") - list := []string{} - for _, v := range tagList { - if tag, ok := BUSINESS_TAGS_MAP[v]; ok { - list = append(list, tag) - } - } - businessTags = strings.Join(list, "|") + "|" - } - - db.Begin() - if isDelFirst { - db.Raw("DELETE FROM "+globals.JxorderTableName+" WHERE order_id = ?", utils.Str2Int64(order.VendorOrderID)).Exec() - db.Raw("DELETE FROM "+globals.JxorderskuTableName+" WHERE order_id = ?", utils.Str2Int64(order.VendorOrderID)).Exec() - } - orderStatus := legacyMapOrderStatus(order.Status) - if orderStatus < JX_ORDER_STATUS_PICKING { - orderStatus = JX_ORDER_STATUS_PICKING - } - jxorder := &legacymodel.Jxorder2{ - VenderId: int8(order.VendorID), - OrderId: utils.Str2Int64(order.VendorOrderID), - JxStoreId: utils.Int2Str(jxutils.GetJxStoreIDFromOrder(order)), - JxStoreName: order.StoreName, - OrderNum: order.OrderSeq, - OrderStatus: orderStatus, - OrderStatusTime: utils.Time2Str(order.StatusTime), - BusinessTag: businessTags, - SkuCount: order.SkuCount, - OrderBuyerRemark: order.BuyerComment, - BuyerFullName: order.ConsigneeName, - BuyerFullAddress: order.ConsigneeAddress, - BuyerMobile: order.ConsigneeMobile, - BuyerCoordType: legacyMapCoordinateType(order.CoordinateType), - BuyerLng: jxutils.IntCoordinate2Standard(order.ConsigneeLng), - BuyerLat: jxutils.IntCoordinate2Standard(order.ConsigneeLat), - CityName: "all", - OrderStartTime: utils.Time2Str(order.StatusTime), - JdStoreId: order.VendorStoreID, - OrderTotalMoney: int(order.SalePrice), - OrderDiscountMoney: int(order.SalePrice - order.ActualPayPrice), - OrderBuyerPayableMoney: int(order.ActualPayPrice), - // DeliveryPackageWeight: float64(jxutils.IntWeight2Float(order.Weight)), - } - if order.VendorID == model.VendorIDELM { - jxorder.OrderStatus = JX_ORDER_STATUS_WAIT_FOR_DELIVERY - } - if order.ExpectedDeliveredTime.Sub(utils.DefaultTimeValue) > 0 { - jxorder.OrderPreEndDelivTime = utils.Time2Str(order.ExpectedDeliveredTime) - } - - _, err = db.Insert(jxorder) - if err != nil { - db.Rollback() - globals.SugarLogger.Infof("insert jxorder:%v error:%v", jxorder, err) - return err - } - sql := "INSERT INTO " + globals.JxorderskuTableName + "(vender_id, order_id, jx_sku_id, sku_name, jx_store_id, sku_price, sku_count, is_gift, promotion_type, sku_plat_discount, sku_vender_discount, sku_img) VALUES" - params := []interface{}{} - for _, sku := range order.Skus { - sql += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)," - params = append(params, sku.VendorID, sku.VendorOrderID, sku.JxSkuID, sku.SkuName, jxutils.GetJxStoreIDFromOrder(order), sku.SalePrice, sku.Count, sku.SkuType, sku.PromotionType, 0, 0, "") - } - sql = sql[:len(sql)-1] + ";" - if _, err = db.Raw(sql, params...).Exec(); err != nil { - db.Rollback() - baseapi.SugarLogger.Infof("insert jxordersku jxorder:%v error:%v", jxorder, err) - } else { - db.Commit() - vendorOrderID := utils.Str2Int64(order.VendorOrderID) - utils.CallFuncLogError(func() error { - _, err = db.Raw(` - UPDATE `+globals.JxorderTableName+` t1 - JOIN jxstore t2 ON t2.storeid = t1.jx_store_id - SET t1.store_lng = t2.lng, - t1.store_lat = t2.lat - WHERE t1.order_id = ?; - `, vendorOrderID /*, vendorOrderID*/).Exec() - return err - }, "update jxorder") - - utils.CallFuncLogError(func() error { - _, err = db.Raw(` - UPDATE `+globals.JxorderskuTableName+` t1 - JOIN jx_sku t2 ON t2.id = t1.jx_sku_id - JOIN jx_sku_name t3 ON t3.id = t2.nameid - SET t1.sku_img = t3.img - WHERE t1.order_id = ?; - `, vendorOrderID /*, vendorOrderID*/).Exec() - return err - }, "update jxordersku") - } - return err -} - -func (c *OrderManager) legacyJxOrderStatusChanged(status *model.OrderStatus, db orm.Ormer) (err error) { - orderStatus := legacyMapOrderStatus(status.Status) - if orderStatus != JX_STATUS_UNKNOWN { - if status.VendorID == model.VendorIDELM { - if orderStatus < JX_ORDER_STATUS_WAIT_FOR_DELIVERY { - orderStatus = JX_ORDER_STATUS_WAIT_FOR_DELIVERY - } - } - if db == nil { - db = orm.NewOrm() - } - jxorder := &legacymodel.Jxorder2{ - OrderId: utils.Str2Int64(status.VendorOrderID), - } - if err = db.Read(jxorder, "OrderId"); err == nil { - utils.CallFuncLogError(func() error { - jxorder.OrderStatus = orderStatus - jxorder.OrderStatusTime = utils.Time2Str(status.StatusTime) - updateFields := []string{ - "OrderStatus", - "OrderStatusTime", - } - if status.Status >= model.OrderStatusEndBegin { - jxorder.DeliveryFinishTime = utils.Time2Str(status.StatusTime) - updateFields = append(updateFields, "DeliveryFinishTime") - } - _, err = db.Update(jxorder, updateFields...) - if orderStatus == JX_ORDER_STATUS_DELIVERY_DONE || orderStatus == JX_ORDER_STATUS_DELIVERING { - db.Raw(` - UPDATE `+globals.JxorderTableName+` t1 - JOIN waybill t2 ON t2.vendor_order_id = t1.order_id AND t2.status = 105 - SET t1.delivery_price = IF(t2.waybill_vendor_id = 102, t2.desired_fee/100, t1.delivery_price), - t1.delivery_price1 = IF(t2.waybill_vendor_id = 101, t2.desired_fee/100, t1.delivery_price1) - WHERE t1.order_id = ? - `, jxorder.OrderId).Exec() - } - return err - }, "legacyJxOrderStatusChanged") - } else { - globals.SugarLogger.Infof("read legacyJxOrder orderID:%d error:%v, ", jxorder.OrderId, err) - } - } - return err -} - -func (c *OrderManager) legacyWaybillStatusChanged(bill *model.Waybill, db orm.Ormer) (err error) { - deliveryStatus := legacyMapWaybillStatus(bill.Status) - if deliveryStatus != JX_STATUS_UNKNOWN { - if db == nil { - db = orm.NewOrm() - } - jxorder := &legacymodel.Jxorder2{ - OrderId: utils.Str2Int64(bill.VendorOrderID), - } - if err = db.Read(jxorder, "OrderId"); err == nil { - utils.CallFuncLogError(func() error { - updateFields := []string{ - "DeliveryCarrierNo", - "DeliveryCarrierName", - "DeliveryManNo", - "DeliveryManName", - "DeliveryManPhone", - "DeliveryBillNo", - "DeliveryStatus", - } - // jxorder.DeliveryPackageWeight - jxorder.DeliveryCarrierNo = VENDOR_ID2CARRIER_NO[bill.WaybillVendorID] - jxorder.DeliveryCarrierName = CARRIERS_NAMES[jxorder.DeliveryCarrierNo] - jxorder.DeliveryManNo = bill.CourierMobile - jxorder.DeliveryManName = bill.CourierName - jxorder.DeliveryManPhone = bill.CourierMobile - jxorder.DeliveryBillNo = bill.VendorWaybillID - jxorder.DeliveryStatus = deliveryStatus - // jxorder.DeliveryConfirmTime - if bill.Status == model.WaybillStatusNew { - updateFields = append(updateFields, "DeliveryStartTime") - jxorder.DeliveryStartTime = utils.Time2Str(bill.StatusTime) - } else if bill.Status >= model.WaybillStatusEndBegin { - jxorder.DeliveryFinishTime = utils.Time2Str(bill.StatusTime) - updateFields = append(updateFields, "DeliveryFinishTime") - } - _, err = db.Update(jxorder, updateFields...) - return err - }, "legacyJxOrderStatusChanged") - } else { - globals.SugarLogger.Infof("read legacyJxOrder, orderID:%d error:%v", jxorder.OrderId, err) - } - } - return err -} diff --git a/business/jxcallback/orderman/waybill.go b/business/jxcallback/orderman/waybill.go index 4f10b1244..92be788e0 100644 --- a/business/jxcallback/orderman/waybill.go +++ b/business/jxcallback/orderman/waybill.go @@ -83,9 +83,6 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) { } if err == nil && !isDuplicated { scheduler.CurrentScheduler.OnWaybillStatusChanged(bill, false) - if globals.GenerateLegacyJxOrder { - w.legacyWaybillStatusChanged(bill, db) - } } return err } diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index 47743ec73..dfa579b24 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -3,8 +3,8 @@ package basesch import ( "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler" "git.rosy.net.cn/jx-callback/business/jxutils" - "git.rosy.net.cn/jx-callback/business/legacymodel" "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego/orm" diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index fd7742021..34d394afb 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -11,8 +11,8 @@ import ( "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" - "git.rosy.net.cn/jx-callback/business/legacymodel" "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego/orm" diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 375aef669..0f4e3f301 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -9,6 +9,7 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/globals" ) @@ -349,7 +350,7 @@ func TmpGetJxBadCommentsByStoreId(storeID, page, size, commentType int) (retVal sql += " AND status = 0" } sql += " ORDER BY createtime DESC LIMIT ? OFFSET ?" - var commentList []*model.JxBadComments + var commentList []*legacymodel.JxBadComments dao.Begin(db) defer func() { dao.Rollback(db) diff --git a/business/jxstore/cms/user.go b/business/jxstore/cms/user.go index 85c4d707c..5597ec8c3 100644 --- a/business/jxstore/cms/user.go +++ b/business/jxstore/cms/user.go @@ -4,17 +4,17 @@ import ( "fmt" "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego/orm" ) type StoreUserInfo struct { - model.WeiXins - ParentMobile string `json:"parentMobile"` - Members []*model.WeiXins `orm:"-" json:"members"` - MembersStr string `json:"-"` + legacymodel.WeiXins + ParentMobile string `json:"parentMobile"` + Members []*legacymodel.WeiXins `orm:"-" json:"members"` + MembersStr string `json:"-"` } func GetStoreUsers(storeID int) (storeUserInfos []*StoreUserInfo, err error) { @@ -77,7 +77,7 @@ func GetSelfInfo(openID string) (storeUserInfo *StoreUserInfo, err error) { } func UnbindMobile(mobile string) (num int64, err error) { - return dao.UpdateEntityByKV(nil, &model.WeiXins{}, map[string]interface{}{ + return dao.UpdateEntityByKV(nil, &legacymodel.WeiXins{}, map[string]interface{}{ "JxStoreID": nil, "ParentID": -1, }, map[string]interface{}{ @@ -104,7 +104,7 @@ func BindMobile2Store(mobile string, storeID int) (num int64, err error) { func AddMobile2Mobile(parentMobile, mobile string) (num int64, err error) { db := dao.GetDB() - parentUser := &model.WeiXins{} + parentUser := &legacymodel.WeiXins{} parentUser.Tel = parentMobile if err = dao.GetEntity(db, parentUser, "Tel"); err == nil { if parentUser.ParentID == -1 { @@ -130,15 +130,15 @@ func AddMobile2Mobile(parentMobile, mobile string) (num int64, err error) { } func ChangeMobile(curMobile, expectedMobile string) (num int64, err error) { - return dao.UpdateEntityByKV(nil, &model.WeiXins{}, map[string]interface{}{ + return dao.UpdateEntityByKV(nil, &legacymodel.WeiXins{}, map[string]interface{}{ "Tel": expectedMobile, }, map[string]interface{}{ "Tel": curMobile, }) } -func verifyMobileIsBlank(db *dao.DaoDB, mobile string) (user *model.WeiXins, err error) { - user = &model.WeiXins{ +func verifyMobileIsBlank(db *dao.DaoDB, mobile string) (user *legacymodel.WeiXins, err error) { + user = &legacymodel.WeiXins{ Tel: mobile, } if err = dao.GetEntity(db, user, "Tel"); err == nil { @@ -165,7 +165,7 @@ func verifyMobileHasNoMembers(db *dao.DaoDB, mobile string) (err error) { return err } -func createUserAndSetOpenIDNull(db *dao.DaoDB, user *model.WeiXins) (err error) { +func createUserAndSetOpenIDNull(db *dao.DaoDB, user *legacymodel.WeiXins) (err error) { dao.Begin(db) if err = dao.CreateEntity(db, user); err != nil { dao.Rollback(db) diff --git a/business/jxstore/financial/financial.go b/business/jxstore/financial/financial.go index 11f5197d2..e42bf401b 100644 --- a/business/jxstore/financial/financial.go +++ b/business/jxstore/financial/financial.go @@ -13,8 +13,8 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" - "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" "github.com/qiniu/api.v7/storage" @@ -66,7 +66,7 @@ func SendFilesToStores(files []*multipart.FileHeader, isAsync bool, userName str globals.SugarLogger.Debugf("SendFilesToStores upload file:%s error:%v", fileHeader.Filename, err) if err == nil { db := dao.GetDB() - billRec := &model.StoreBill{ + billRec := &legacymodel.StoreBill{ Date: time.Now(), Url: jxutils.ComposeQiniuResURL(ret.Key), StoreId: storeID, diff --git a/business/jxutils/weixinmsg/weixinmsg.go b/business/jxutils/weixinmsg/weixinmsg.go index 2d0c19a00..81c91faf6 100644 --- a/business/jxutils/weixinmsg/weixinmsg.go +++ b/business/jxutils/weixinmsg/weixinmsg.go @@ -8,6 +8,7 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego/orm" @@ -211,7 +212,7 @@ func NotifyWaybillStatus(bill *model.Waybill, order *model.GoodsOrder) error { return nil } -func PushJDBadCommentToWeiXin(comment *model.JxBadComments) (err error) { +func PushJDBadCommentToWeiXin(comment *legacymodel.JxBadComments) (err error) { globals.SugarLogger.Debugf("PushJDBadCommentToWeiXin orderID:%s", comment.OrderId) sb := new(strings.Builder) @@ -283,7 +284,7 @@ func FormatDeliveryTime(order *model.GoodsOrder) string { return fmt.Sprintf("请于%s前送达(剩余时间%d小时%d分钟)", utils.Time2Str(tmpTime), leftHours, leftMinutes) } -func genJdCommentRemark(comment *model.JxBadComments) string { +func genJdCommentRemark(comment *legacymodel.JxBadComments) string { sb := new(strings.Builder) sb.WriteString("差评标签:") sb.WriteString(comment.Vendertags) diff --git a/business/legacymodel/blackclient.go b/business/model/legacymodel/blackclient.go similarity index 100% rename from business/legacymodel/blackclient.go rename to business/model/legacymodel/blackclient.go diff --git a/business/legacymodel/config.go b/business/model/legacymodel/config.go similarity index 100% rename from business/legacymodel/config.go rename to business/model/legacymodel/config.go diff --git a/business/model/legacymodel/jxbackenduser.go b/business/model/legacymodel/jxbackenduser.go new file mode 100644 index 000000000..1989409b0 --- /dev/null +++ b/business/model/legacymodel/jxbackenduser.go @@ -0,0 +1,20 @@ +package legacymodel + +type JxBackendUser struct { + UID int `orm:"pk;column(uid)"` + UName string `orm:"column(uname);size(64);index"` + UPass string `orm:"column(upass);size(64)"` + Tel string `orm:"size(32);index"` + Position string `orm:"size(255)"` + Enabled int8 `orm:"default(1)"` + SkuWidget int `orm:"default(0)"` + StoreWidget int `orm:"default(0)"` + UserWidget int `orm:"default(0)"` + BillinfoWidget int `orm:"default(0)"` + GroupWidget int `orm:"default(0)"` + CategoryWidget int `orm:"default(0)"` +} + +func (*JxBackendUser) TableName() string { + return "jxbackenduser" +} diff --git a/business/model/legacy.go b/business/model/legacymodel/jxbadcomments.go similarity index 58% rename from business/model/legacy.go rename to business/model/legacymodel/jxbadcomments.go index da26dc360..aedeccf3d 100644 --- a/business/model/legacy.go +++ b/business/model/legacymodel/jxbadcomments.go @@ -1,38 +1,4 @@ -package model - -import "time" - -type WeiXins struct { - ID int `orm:"column(id)" json:"id"` - JxStoreID int `orm:"column(jxstoreid)" json:"storeID"` - OpenID string `orm:"column(openid);size(70);unique;null" json:"openID"` - Tel string `orm:"size(15);unique" json:"tel"` - ParentID int `orm:"column(parentid);default(-1)" json:"parentID"` - NickName string `orm:"column(nickname);size(30)" json:"nickname"` -} - -func (*WeiXins) TableName() string { - return "weixins" -} - -type JxBackendUser struct { - UID int `orm:"pk;column(uid)"` - UName string `orm:"column(uname);size(64);index"` - UPass string `orm:"column(upass);size(64)"` - Tel string `orm:"size(32);index"` - Position string `orm:"size(255)"` - Enabled int8 `orm:"default(1)"` - SkuWidget int `orm:"default(0)"` - StoreWidget int `orm:"default(0)"` - UserWidget int `orm:"default(0)"` - BillinfoWidget int `orm:"default(0)"` - GroupWidget int `orm:"default(0)"` - CategoryWidget int `orm:"default(0)"` -} - -func (*JxBackendUser) TableName() string { - return "jxbackenduser" -} +package legacymodel type JxBadComments struct { Id int `json:"id" orm:"column(id)"` @@ -58,21 +24,3 @@ type JxBadComments struct { func (*JxBadComments) TableName() string { return "jx_bad_comments" } - -type StoreBill struct { - Id int `orm:"column(id);auto"` - Date time.Time `orm:"column(date);type(datetime)"` - Url string `orm:"column(url);size(255)"` - StoreId int `orm:"column(store_id)"` - BillName string `orm:"column(bill_name);size(30)"` -} - -func (t *StoreBill) TableName() string { - return "store_bill" -} - -func (*StoreBill) TableIndex() [][]string { - return [][]string{ - []string{"StoreId", "Date"}, - } -} diff --git a/business/legacymodel/jxstorefeature.go b/business/model/legacymodel/jxstorefeature.go similarity index 100% rename from business/legacymodel/jxstorefeature.go rename to business/model/legacymodel/jxstorefeature.go diff --git a/business/model/legacymodel/storebill.go b/business/model/legacymodel/storebill.go new file mode 100644 index 000000000..a159e5a9c --- /dev/null +++ b/business/model/legacymodel/storebill.go @@ -0,0 +1,21 @@ +package legacymodel + +import "time" + +type StoreBill struct { + Id int `orm:"column(id);auto"` + Date time.Time `orm:"column(date);type(datetime)"` + Url string `orm:"column(url);size(255)"` + StoreId int `orm:"column(store_id)"` + BillName string `orm:"column(bill_name);size(30)"` +} + +func (t *StoreBill) TableName() string { + return "store_bill" +} + +func (*StoreBill) TableIndex() [][]string { + return [][]string{ + []string{"StoreId", "Date"}, + } +} diff --git a/business/legacymodel/tmplog.go b/business/model/legacymodel/tmplog.go similarity index 100% rename from business/legacymodel/tmplog.go rename to business/model/legacymodel/tmplog.go diff --git a/business/model/legacymodel/weixins.go b/business/model/legacymodel/weixins.go new file mode 100644 index 000000000..e48f7cb31 --- /dev/null +++ b/business/model/legacymodel/weixins.go @@ -0,0 +1,14 @@ +package legacymodel + +type WeiXins struct { + ID int `orm:"column(id)" json:"id"` + JxStoreID int `orm:"column(jxstoreid)" json:"storeID"` + OpenID string `orm:"column(openid);size(70);unique;null" json:"openID"` + Tel string `orm:"size(15);unique" json:"tel"` + ParentID int `orm:"column(parentid);default(-1)" json:"parentID"` + NickName string `orm:"column(nickname);size(30)" json:"nickname"` +} + +func (*WeiXins) TableName() string { + return "weixins" +} diff --git a/business/legacymodel/elemeorder.go b/business/model/legacymodel2/elemeorder.go similarity index 100% rename from business/legacymodel/elemeorder.go rename to business/model/legacymodel2/elemeorder.go diff --git a/business/legacymodel/jdorder.go b/business/model/legacymodel2/jdorder.go similarity index 100% rename from business/legacymodel/jdorder.go rename to business/model/legacymodel2/jdorder.go diff --git a/business/legacymodel/jxorder.go b/business/model/legacymodel2/jxorder.go similarity index 100% rename from business/legacymodel/jxorder.go rename to business/model/legacymodel2/jxorder.go diff --git a/business/legacymodel/jxordersku.go b/business/model/legacymodel2/jxordersku.go similarity index 100% rename from business/legacymodel/jxordersku.go rename to business/model/legacymodel2/jxordersku.go diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index cb05e85a8..8d145ba2b 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -10,8 +10,8 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler" "git.rosy.net.cn/jx-callback/business/jxutils" - "git.rosy.net.cn/jx-callback/business/legacymodel" "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" diff --git a/business/partner/purchase/elm/order_legacy.go b/business/partner/purchase/elm/order_legacy.go deleted file mode 100644 index 91976d239..000000000 --- a/business/partner/purchase/elm/order_legacy.go +++ /dev/null @@ -1,44 +0,0 @@ -package elm - -import ( - "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/business/legacymodel" - "git.rosy.net.cn/jx-callback/business/model" - "git.rosy.net.cn/jx-callback/globals" - "github.com/astaxie/beego/orm" -) - -// 为了兼容之前的表,造出原来需要的数据 -func (c *PurchaseHandler) legacyWriteElmOrder(order *model.GoodsOrder) (err error) { - db := orm.NewOrm() - _, msgType := c.spliltCompositeState(order.VendorStatus) - legacyOrder := &legacymodel.Elemeorder2{ - Orderid: order.VendorOrderID, - Type: msgType, - Consignee: order.ConsigneeName, - Mobile: order.ConsigneeMobile, - OrderCreatedAt: utils.Time2Str(order.StatusTime), - } - _, err = db.Insert(legacyOrder) - if err != nil { - globals.SugarLogger.Infof("legacyWriteElmOrder orderID:%s insert error:%v", order.VendorOrderID, err) - } - return err -} - -func (c *PurchaseHandler) legacyElmOrderStatusChanged(status *model.OrderStatus) (err error) { - db := orm.NewOrm() - legacyOrder := &legacymodel.Elemeorder2{ - Orderid: status.VendorOrderID, - } - if err = db.Read(legacyOrder, "Orderid"); err == nil { - _, legacyOrder.Type = c.spliltCompositeState(status.VendorStatus) - utils.CallFuncLogError(func() error { - _, err = db.Update(legacyOrder, "Type") - return err - }, "legacyWriteElmOrder status:%v", status) - } else { - globals.SugarLogger.Infof("legacyElmOrderStatusChanged db.Read status:%v, error:%v", status, err) - } - return err -} diff --git a/business/partner/purchase/jd/order_legacy.go b/business/partner/purchase/jd/order_legacy.go deleted file mode 100644 index d3a20cf28..000000000 --- a/business/partner/purchase/jd/order_legacy.go +++ /dev/null @@ -1,49 +0,0 @@ -package jd - -import ( - "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/business/legacymodel" - "git.rosy.net.cn/jx-callback/business/model" - "git.rosy.net.cn/jx-callback/globals" - "github.com/astaxie/beego/orm" -) - -// 为了兼容之前的表,造出原来需要的数据 -func (c *PurchaseHandler) legacyWriteJdOrder(order *model.GoodsOrder, delOldFirst bool) (err error) { - db := orm.NewOrm() - if delOldFirst { - db.Raw("DELETE FROM jdorder2 WHERE jdorderid = ?", utils.Str2Int64(order.VendorOrderID)).Exec() - } - legacyOrder := &legacymodel.Jdorder2{ - Code: "0", - Jdorderid: utils.Str2Int64(order.VendorOrderID), - Orderstatus: int(utils.Str2Int64(order.VendorStatus)), - Orderstatustime: utils.Time2Str(order.StatusTime), - Success: 1, - Cityname: "all", - } - _, err = db.Insert(legacyOrder) - if err != nil { - globals.SugarLogger.Infof("legacyWriteJdOrder orderID:%s insert error:%v", order.VendorOrderID, err) - } - return err -} - -func (c *PurchaseHandler) legacyJdOrderStatusChanged(status *model.OrderStatus) (err error) { - db := orm.NewOrm() - legacyOrder := &legacymodel.Jdorder2{ - Jdorderid: utils.Str2Int64(status.VendorOrderID), - } - - if err = db.Read(legacyOrder, "Jdorderid"); err == nil { - utils.CallFuncLogError(func() error { - legacyOrder.Orderstatus = int(utils.Str2Int64(status.VendorStatus)) - legacyOrder.Orderstatustime = utils.Time2Str(status.StatusTime) - _, err = db.Update(legacyOrder, "Orderstatus", "Orderstatustime") - return err - }, "legacyJdOrderStatusChanged, status:%v", status) - } else { - globals.SugarLogger.Infof("legacyJdOrderStatusChanged db.Read status:%v, error:%v", status, err) - } - return err -} diff --git a/business/partner/purchase/jd/order_legacy_comment.go b/business/partner/purchase/jd/order_legacy_comment.go index 790b1ca1a..628aa02cf 100644 --- a/business/partner/purchase/jd/order_legacy_comment.go +++ b/business/partner/purchase/jd/order_legacy_comment.go @@ -10,6 +10,7 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" @@ -75,7 +76,7 @@ func (c *PurchaseHandler) onOrderComment(msg *jdapi.CallbackOrderMsg) (err error result, err := api.JdAPI.GetCommentByOrderId(intOrderID) if err == nil { globals.SugarLogger.Debugf("onOrderComment comment:%s", utils.Format4Output(result, true)) - comment := &model.JxBadComments{ + comment := &legacymodel.JxBadComments{ OrderId: msg.BillID, } db := dao.GetDB() diff --git a/globals/beegodb/beegodb.go b/globals/beegodb/beegodb.go index 8c1b4e70e..c7377eba6 100644 --- a/globals/beegodb/beegodb.go +++ b/globals/beegodb/beegodb.go @@ -1,8 +1,8 @@ package beegodb import ( - "git.rosy.net.cn/jx-callback/business/legacymodel" "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego" "github.com/astaxie/beego/orm" @@ -13,30 +13,22 @@ func Init() { orm.RegisterDataBase("default", "mysql", beego.AppConfig.String("dbConnectStr"), 30) orm.RegisterModel(new(legacymodel.Config)) orm.RegisterModel(new(legacymodel.BlackClient)) - orm.RegisterModel(new(model.JxBadComments)) - orm.RegisterModel(new(model.StoreBill)) + orm.RegisterModel(new(legacymodel.JxBadComments)) + orm.RegisterModel(new(legacymodel.StoreBill)) + orm.RegisterModel(new(legacymodel.Jxstorefeature)) + orm.RegisterModel(new(legacymodel.TempLog)) + orm.RegisterModel(new(legacymodel.WeiXins), new(legacymodel.JxBackendUser)) orm.RegisterModel(new(model.GoodsOrder)) orm.RegisterModel(new(model.OrderSku)) orm.RegisterModel(new(model.Waybill)) orm.RegisterModel(new(model.OrderStatus)) - orm.RegisterModel(new(legacymodel.Jxstorefeature)) - - orm.RegisterModel(new(legacymodel.TempLog)) - - if globals.GenerateLegacyJxOrder { - orm.RegisterModel(new(legacymodel.Jxorder2)) - orm.RegisterModel(new(legacymodel.Jxordersku2)) - } - if globals.EnableStore { orm.RegisterModel(&model.Place{}) orm.RegisterModel(&model.Store{}, &model.StoreSub{}, &model.StoreMap{}, &model.StoreCourierMap{}) orm.RegisterModel(&model.SkuVendorCategory{}, &model.StoreSkuCategoryMap{}, &model.SkuName{}, &model.Sku{}, &model.SkuNamePlaceBind{}, &model.StoreSkuBind{}) - // db.Set("gorm:table_options", "CHARSET=utf8mb4").AutoMigrate(&model.SkuCategory{}) orm.RegisterModel(&model.SkuCategory{}) - orm.RegisterModel(&model.WeiXins{}, &model.JxBackendUser{}) // orm.RegisterModel(&model.DurableTask{}, &model.DurableTaskItem{}) orm.RegisterModel(&model.Promotion{}) diff --git a/legacy/controllers/business.go b/legacy/controllers/business.go deleted file mode 100644 index 8130c4505..000000000 --- a/legacy/controllers/business.go +++ /dev/null @@ -1,46 +0,0 @@ -package controllers - -import ( - "git.rosy.net.cn/jx-callback/business/legacymodel" - "git.rosy.net.cn/jx-callback/globals" - "github.com/astaxie/beego/orm" -) - -const ( - JD_VENDORID = 0 - ELM_VENDORID = 2 -) - -func OnNewOrder(orderID string, vendorID int, userMobile string, jxStoreID int, db orm.Ormer, handler func(accepted bool)) int { - handleType := 0 - if userMobile != "" { - if db == nil { - db = orm.NewOrm() - } - user := &legacymodel.BlackClient{ - Mobile: userMobile, - } - if err := db.Read(user, "Mobile"); err != nil { - if err != orm.ErrNoRows { - globals.SugarLogger.Errorf("read data error:%v, data:%v, vendorID:%d", err, user, vendorID) - } - // 在访问数据库出错的情况下,也需要自动接单 - handleType = 1 - } else { - // 强制拒单 - globals.SugarLogger.Infof("force reject order:%s, vendorID:%d", orderID, vendorID) - handleType = -1 - } - } else { - globals.SugarLogger.Infof("order:%s, vendorID:%d, mobile is empty, should accept it", orderID, vendorID) - handleType = 1 - } - - if handleType == 1 { - handler(true) - } else if handleType == -1 { - handler(false) - } - - return handleType -} diff --git a/legacy/dada/controller/order.go b/legacy/dada/controller/order.go deleted file mode 100644 index fbfead554..000000000 --- a/legacy/dada/controller/order.go +++ /dev/null @@ -1,20 +0,0 @@ -package controller - -import ( - "git.rosy.net.cn/baseapi/platformapi/dadaapi" - "git.rosy.net.cn/jx-callback/legacy/freshfood" -) - -type OrderController struct { -} - -func Error2Response(err error) *dadaapi.CallbackResponse { - if err != nil { - return dadaapi.FailedResponse - } - return dadaapi.SuccessResponse -} - -func (o *OrderController) OrderStatusChanged(msg *dadaapi.CallbackMsg) *dadaapi.CallbackResponse { - return Error2Response(freshfood.FreshFoodAPI.DadaOrderStatusChanged(msg)) -} diff --git a/legacy/elm/controller/order.go b/legacy/elm/controller/order.go deleted file mode 100644 index b6f4b0737..000000000 --- a/legacy/elm/controller/order.go +++ /dev/null @@ -1,151 +0,0 @@ -package controller - -import ( - "strings" - "time" - - "git.rosy.net.cn/baseapi" - "git.rosy.net.cn/baseapi/platformapi/elmapi" - "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/globals" - "git.rosy.net.cn/jx-callback/globals/api" - "git.rosy.net.cn/jx-callback/legacy" - "git.rosy.net.cn/jx-callback/legacy/controllers" - "git.rosy.net.cn/jx-callback/legacy/elm/models" - "git.rosy.net.cn/jx-callback/legacy/freshfood" - "github.com/astaxie/beego/orm" -) - -var ( - errResponseInternal = &elmapi.CallbackResponse{Message: "internal error"} - errResponseDataError = &elmapi.CallbackResponse{Message: "elm data error"} - errResponseDBError = &elmapi.CallbackResponse{Message: "DB error"} - errResponseCallELMAPIError = &elmapi.CallbackResponse{Message: "call ELM API error"} -) - -type OrderController struct { -} - -func (o *OrderController) OrderMessage(msg *elmapi.CallbackMsg) (retVal *elmapi.CallbackResponse) { - var innerMsg map[string]interface{} - err := utils.UnmarshalUseNumber([]byte(msg.Message), &innerMsg) - if err != nil { - return errResponseDataError - } - - retVal = elmapi.SuccessResponse - orderID := innerMsg["orderId"].(string) - legacy.RoutinePool.CallFun(func() { - if msg.Type == elmapi.MsgTypeOrderValid { - userMobile := "" - if phoneList, ok := innerMsg["phoneList"].([]interface{}); ok && len(phoneList) >= 1 { - userMobile = phoneList[0].(string) - } else { - baseapi.SugarLogger.Warnf("elm can not get mobile info from %v, error:%v", msg, err) - } - retVal = o.NewOrder(msg, orderID, userMobile) - } else if msg.Type >= elmapi.MsgTypeOrderAccepted && msg.Type <= elmapi.MsgTypeOrderFinished { - retVal = o.OrderStatusChanged(msg, orderID, innerMsg) - } else { - retVal = o.OrderOtherMsg(msg, orderID, innerMsg) - } - }, orderID) - - return retVal -} - -func OnNewOrder(orderID string, userMobile string) { - controllers.OnNewOrder(orderID, controllers.ELM_VENDORID, userMobile, 0, nil, func(acceptIt bool) { - if acceptIt { - time.AfterFunc(4*time.Minute, func() { - api.ElmAPI.ConfirmOrder(orderID) - }) - } else { - api.ElmAPI.CancelOrder(orderID, elmapi.CancelOrderTypeOthers, "") - } - }) -} - -func (o *OrderController) NewOrder(msg *elmapi.CallbackMsg, orderId string, userMobile string) *elmapi.CallbackResponse { - db := orm.NewOrm() - rec := &models.ELMOrder{ - OrderId: orderId, - Type: msg.Type, - } - - retVal := elmapi.SuccessResponse - created, _, err := db.ReadOrCreate(rec, "OrderId") - if err != nil { - globals.SugarLogger.Warnf("error when calling ReadOrCreate, error:%v, rec:%v", err, rec) - retVal = errResponseDBError - } else { - if created || rec.Type < msg.Type { - result, err := api.ElmAPI.GetOrder(orderId) - if err != nil { - retVal = errResponseCallELMAPIError - } else { - rec.Data = utils.FilterMb4(string(utils.MustMarshal(result))) - rec.Consignee = result["consignee"].(string) - rec.Mobile = userMobile - if createdAt, ok := result["createdAt"].(string); ok { - rec.OrderCreatedAt = strings.Replace(createdAt, "T", " ", 1) - } - num, err := db.Update(rec, "Data", "Consignee", "Mobile", "OrderCreatedAt") - if err != nil || num != 1 { - globals.SugarLogger.Warnf("error in updating order data:%v, error:%v, num:%d", msg, err, num) - retVal = errResponseDataError - } else { - err = freshfood.FreshFoodAPI.NewELMOrder(result) - if err != nil { - retVal = errResponseInternal - } - } - } - OnNewOrder(orderId, userMobile) - } else { - globals.SugarLogger.Infof("duplicate elm msg received:%v", msg) - } - } - return retVal -} - -func (o *OrderController) OrderStatusChanged(msg *elmapi.CallbackMsg, orderId string, innerMsg map[string]interface{}) *elmapi.CallbackResponse { - db := orm.NewOrm() - rec := &models.ELMOrder{ - OrderId: orderId, - } - - err := db.Read(rec, "OrderId") - if err != nil { - globals.SugarLogger.Warnf("error when calling ReadOrCreate, error:%v, rec:%v", err, rec) - } else { - if rec.Type < msg.Type { - err = freshfood.FreshFoodAPI.ELMOrderStatus(orderId, msg.Type, utils.GetCurTimeStr()) - if err == nil { - rec.Type = msg.Type - err = utils.CallFuncLogError(func() error { - _, err := db.Update(rec, "Type") - return err - }, globals.ErrStrAccessDB) - } - } else { - globals.SugarLogger.Infof("duplicate elm msg received:%v", msg) - } - } - if err != nil { - return errResponseInternal - } - return elmapi.SuccessResponse -} - -func (o *OrderController) OrderOtherMsg(msg *elmapi.CallbackMsg, orderId string, innerMsg map[string]interface{}) *elmapi.CallbackResponse { - var err error - if msg.Type == elmapi.MsgTypeUserUrgeOrder { - err = freshfood.FreshFoodAPI.ELMClientUrgeOrder(orderId) - } - - if err != nil { - return errResponseInternal - } - return elmapi.SuccessResponse -} diff --git a/legacy/elm/models/order.go b/legacy/elm/models/order.go deleted file mode 100644 index 51a97ec71..000000000 --- a/legacy/elm/models/order.go +++ /dev/null @@ -1,18 +0,0 @@ -package models - -type ELMOrder struct { - Id int - OrderId string `orm:"size(50);unique;null;column(orderid)"` - Consignee string `orm:"size(32)"` - Mobile string `orm:"size(32)"` - Data string `orm:"type(text);null"` - Type int `orm:"null"` - OrderCreatedAt string `orm:"size(50);index"` - // CreatedAt time.Time `orm:"auto_now_add;type(datetime);null"` - // UpdatedAt time.Time `orm:"auto_now;type(datetime);null"` - // StatusTime string `orm:"size(50)"` -} - -func (e *ELMOrder) TableName() string { - return "elemeorder" -} diff --git a/legacy/freshfood/freshfood.go b/legacy/freshfood/freshfood.go index 31706931c..672765d63 100644 --- a/legacy/freshfood/freshfood.go +++ b/legacy/freshfood/freshfood.go @@ -6,89 +6,14 @@ import ( "net/url" "time" - "git.rosy.net.cn/baseapi/platformapi/dadaapi" "github.com/astaxie/beego" - "git.rosy.net.cn/baseapi/platformapi/jdapi" - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" - "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/globals" - "git.rosy.net.cn/jx-callback/legacy/controllers" - "git.rosy.net.cn/jx-callback/legacy/jd/models" ) const ( - URL_FRESHFOOD_ORDER_CREATE_JDDJ = "order" - URL_FRESHFOOD_ORDER_STATUS = "order/status" - URL_FRESHFOOD_ORDER_COMMENT = "comments/pushJdBadComments" - - URL_FRESHFOOD_DELIVERY_STATUS = "delivery/status" - URL_FRESHFOOD_ORDER_MODIFY = "order/modify" - - URL_FRESHFOOD_ELEME_TOKENUPDATE = "eleme/token/update" - URL_FRESHFOOD_ORDER_CREATE_ELEME = "order/eleme" - URL_FRESHFOOD_ELEME_USER_URGE_ORDER = "reminders/pushElmSmsReminders" - - URL_FRESHFOOD_MTPS_DELIVERYSTATUS = "mtps/status" - URL_FRESHFOOD_MTPS_EXCEPTION = "mtps/except" -) - -const ( - URL_FRESHFOOD_PARA_JDORDER = "jdOrder" - - URL_FRESHFOOD_PARA_VENDORID = "venderId" - URL_FRESHFOOD_PARA_ORDERID = "orderId" - URL_FRESHFOOD_PARA_ORDERSTATUS = "orderStatus" - URL_FRESHFOOD_PARA_ORDERSTATUSTIME = "orderStatusTime" - URL_FRESHFOOD_PARA_CITYNAME = "cityName" - - URL_FRESHFOOD_PARA_BILLID = "billId" - URL_FRESHFOOD_PARA_STATUSID = "statusId" - - URL_FRESHFOOD_PARA_DELIVERYSTATUS = "deliveryStatus" - URL_FRESHFOOD_PARA_DLIVERYSTATUSTIME = "deliveryStatusTime" - URL_FRESHFOOD_PARA_DELIVERYCARRIERNO = "deliveryCarrierNo" - URL_FRESHFOOD_PARA_DELIVERYCARRIERNAME = "deliveryCarrierName" - URL_FRESHFOOD_PARA_DELIVERYMANNO = "deliveryManNo" - URL_FRESHFOOD_PARA_DELIVERYMANNAME = "deliveryManName" - URL_FRESHFOOD_PARA_DELIVERYMANPHONE = "deliveryManPhone" - - URL_FRESHFOOD_PARA_ELEMEORDER = "elemeOrder" -) - -const ( - URL_FRESHFOOD_PARA_DELIVERYID = "deliveryId" - URL_FRESHFOOD_PARA_MTPEISONID = "mtPeisongId" - // URL_FRESHFOOD_PARA_ORDERID = "orderId" - URL_FRESHFOOD_PARA_STATUS = "status" - URL_FRESHFOOD_PARA_COURIERNAME = "courierName" - URL_FRESHFOOD_PARA_COURIERPHONE = "courierPhone" - URL_FRESHFOOD_PARA_CANCELREASONID = "cancelReasonId" - URL_FRESHFOOD_PARA_CANCELREASON = "cancelReason" - URL_FRESHFOOD_PARA_APPKEY = "appkey" - URL_FRESHFOOD_PARA_TIMESTAMP = "timestamp" - URL_FRESHFOOD_PARA_SIGN = "sign" - - //转发美团配送异常消息 - URL_FRESHFOOD_PARA_EXCEPTIONID = "exceptionId" - URL_FRESHFOOD_PARA_EXCEPTIONCODE = "exceptionCode" - URL_FRESHFOOD_PARA_EXCEPTIONDESC = "exceptionDesc" - URL_FRESHFOOD_PARA_EXCEPTIONTIME = "exceptionTime" -) - -const ( - //转发美团配送配送状态 - URL_FRESHFOOD_DADADELIVERY_STATUS = "dadadelivery/status" - URL_FRESHFOOD_PARA_CLIENTID = "clientId" - URL_FRESHFOOD_PARA_CANCELFROM = "cancelFrom" - URL_FRESHFOOD_PARA_UPDATETIME = "updateTime" - URL_FRESHFOOD_PARA_DMID = "dmId" - URL_FRESHFOOD_PARA_DMNAME = "dmName" - URL_FRESHFOOD_PARA_DMMOBILE = "dmMobile" -) - -const ( - URL_WX_UPDATE_ACCESSTOKEN = "weixin/accesstoken/update" + URL_WX_UPDATE_ACCESSTOKEN = "weixin/accesstoken/update" + URL_FRESHFOOD_ELEME_TOKENUPDATE = "eleme/token/update" ) const ( @@ -146,134 +71,6 @@ func (f *API) AccessFreshFood(apiStr string, params url.Values) error { return nil } -// jd api -func (f *API) NewJDOrder(jdorder *models.Jdorder, isNew bool) error { - params := make(url.Values) - params.Set(URL_FRESHFOOD_PARA_JDORDER, string(utils.MustMarshal(jdorder))) - - if isNew { - return f.AccessFreshFood(URL_FRESHFOOD_ORDER_CREATE_JDDJ, params) - } - return f.AccessFreshFood(URL_FRESHFOOD_ORDER_MODIFY, params) -} - -func (f *API) JDOrderStatus(msg *jdapi.CallbackOrderMsg) error { - params := make(url.Values) - params.Set(URL_FRESHFOOD_PARA_VENDORID, utils.Int2Str(controllers.JD_VENDORID)) - params.Set(URL_FRESHFOOD_PARA_ORDERID, msg.BillID) - params.Set(URL_FRESHFOOD_PARA_ORDERSTATUS, msg.StatusID) - params.Set(URL_FRESHFOOD_PARA_ORDERSTATUSTIME, msg.Timestamp) - params.Set(URL_FRESHFOOD_PARA_CITYNAME, "all") - - return f.AccessFreshFood(URL_FRESHFOOD_ORDER_STATUS, params) -} - -func (f *API) JDOrderComment(msg *jdapi.CallbackOrderMsg) error { - params := make(url.Values) - params.Set(URL_FRESHFOOD_PARA_BILLID, msg.BillID) - params.Set(URL_FRESHFOOD_PARA_STATUSID, msg.StatusID) - - return f.AccessFreshFood(URL_FRESHFOOD_ORDER_COMMENT, params) -} - -func (f *API) JDOrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.CallbackDeliveryStatusMsg) error { - params := make(url.Values) - cityName := "all" - - params.Set(URL_FRESHFOOD_PARA_VENDORID, utils.Int2Str(controllers.JD_VENDORID)) - params.Set(URL_FRESHFOOD_PARA_ORDERID, jdOrderDeliveryStatusMsg.OrderID) - params.Set(URL_FRESHFOOD_PARA_DELIVERYSTATUS, jdOrderDeliveryStatusMsg.DeliveryStatus) - params.Set(URL_FRESHFOOD_PARA_DLIVERYSTATUSTIME, jdOrderDeliveryStatusMsg.DeliveryStatusTime) - params.Set(URL_FRESHFOOD_PARA_DELIVERYCARRIERNO, jdOrderDeliveryStatusMsg.DeliveryCarrierNo) - params.Set(URL_FRESHFOOD_PARA_DELIVERYCARRIERNAME, jdOrderDeliveryStatusMsg.DeliveryCarrierName) - params.Set(URL_FRESHFOOD_PARA_DELIVERYMANNO, jdOrderDeliveryStatusMsg.DeliveryManNo) - params.Set(URL_FRESHFOOD_PARA_DELIVERYMANNAME, jdOrderDeliveryStatusMsg.DeliveryManName) - params.Set(URL_FRESHFOOD_PARA_DELIVERYMANPHONE, jdOrderDeliveryStatusMsg.DeliveryManPhone) - - params.Set(URL_FRESHFOOD_PARA_CITYNAME, cityName) - - return f.AccessFreshFood(URL_FRESHFOOD_DELIVERY_STATUS, params) -} - -// elm api -func (f *API) NewELMOrder(order map[string]interface{}) error { - params := make(url.Values) - params.Set(URL_FRESHFOOD_PARA_ELEMEORDER, string(utils.MustMarshal(order))) - - return f.AccessFreshFood(URL_FRESHFOOD_ORDER_CREATE_ELEME, params) -} - -func (f *API) ELMOrderStatus(orderId string, status int, statusTime string) error { - params := make(url.Values) - params.Set(URL_FRESHFOOD_PARA_VENDORID, utils.Int2Str(controllers.ELM_VENDORID)) - params.Set(URL_FRESHFOOD_PARA_ORDERID, orderId) - params.Set(URL_FRESHFOOD_PARA_ORDERSTATUS, utils.Int2Str(status)) - params.Set(URL_FRESHFOOD_PARA_ORDERSTATUSTIME, statusTime) - - return f.AccessFreshFood(URL_FRESHFOOD_ORDER_STATUS, params) -} - -func (f *API) ELMClientUrgeOrder(orderId string) error { - params := make(url.Values) - params.Set(URL_FRESHFOOD_PARA_VENDORID, utils.Int2Str(controllers.ELM_VENDORID)) - params.Set(URL_FRESHFOOD_PARA_ORDERID, orderId) - - return f.AccessFreshFood(URL_FRESHFOOD_ELEME_USER_URGE_ORDER, params) -} - -// mtps api -func (f *API) MtpsOrderStatusChanged(order *mtpsapi.CallbackOrderMsg) error { - params := make(url.Values) - params.Set(URL_FRESHFOOD_PARA_DELIVERYID, utils.Int64ToStr(order.DeliveryID)) - params.Set(URL_FRESHFOOD_PARA_MTPEISONID, order.MtPeisongID) - params.Set(URL_FRESHFOOD_PARA_ORDERID, order.OrderID) - params.Set(URL_FRESHFOOD_PARA_STATUS, utils.Int2Str(order.Status)) - params.Set(URL_FRESHFOOD_PARA_COURIERNAME, order.CourierName) - params.Set(URL_FRESHFOOD_PARA_COURIERPHONE, order.CourierPhone) - params.Set(URL_FRESHFOOD_PARA_CANCELREASONID, utils.Int2Str(order.CancelReasonId)) - params.Set(URL_FRESHFOOD_PARA_CANCELREASON, order.CancelReason) - params.Set(URL_FRESHFOOD_PARA_APPKEY, order.AppKey) - params.Set(URL_FRESHFOOD_PARA_TIMESTAMP, utils.Int64ToStr(order.Timestamp)) - params.Set(URL_FRESHFOOD_PARA_SIGN, order.Sign) - - return f.AccessFreshFood(URL_FRESHFOOD_MTPS_DELIVERYSTATUS, params) -} - -func (f *API) MtpsOrderException(order *mtpsapi.CallbackOrderExceptionMsg) error { - params := make(url.Values) - params.Set(URL_FRESHFOOD_PARA_DELIVERYID, utils.Int64ToStr(order.DeliveryID)) - params.Set(URL_FRESHFOOD_PARA_MTPEISONID, order.MtPeisongID) - params.Set(URL_FRESHFOOD_PARA_ORDERID, order.OrderID) - params.Set(URL_FRESHFOOD_PARA_EXCEPTIONID, utils.Int64ToStr(order.ExceptionID)) - params.Set(URL_FRESHFOOD_PARA_EXCEPTIONCODE, utils.Int2Str(order.ExceptionCode)) - params.Set(URL_FRESHFOOD_PARA_EXCEPTIONDESC, order.ExceptionDescr) - params.Set(URL_FRESHFOOD_PARA_EXCEPTIONTIME, utils.Int64ToStr(order.ExceptionTime)) - params.Set(URL_FRESHFOOD_PARA_COURIERNAME, order.CourierName) - params.Set(URL_FRESHFOOD_PARA_COURIERPHONE, order.CourierPhone) - params.Set(URL_FRESHFOOD_PARA_APPKEY, order.AppKey) - params.Set(URL_FRESHFOOD_PARA_TIMESTAMP, utils.Int64ToStr(order.Timestamp)) - params.Set(URL_FRESHFOOD_PARA_SIGN, order.Sign) - - return f.AccessFreshFood(URL_FRESHFOOD_MTPS_EXCEPTION, params) -} - -// dada - -func (f *API) DadaOrderStatusChanged(msg *dadaapi.CallbackMsg) error { - params := make(url.Values) - params.Set(URL_FRESHFOOD_PARA_CLIENTID, msg.ClientID) - params.Set(URL_FRESHFOOD_PARA_ORDERID, msg.OrderID) - params.Set(URL_FRESHFOOD_PARA_ORDERSTATUS, utils.Int2Str(msg.OrderStatus)) - params.Set(URL_FRESHFOOD_PARA_CANCELREASON, msg.CancelReason) - params.Set(URL_FRESHFOOD_PARA_CANCELFROM, utils.Int2Str(msg.CancelFrom)) - params.Set(URL_FRESHFOOD_PARA_UPDATETIME, utils.Int2Str(msg.UpdateTime)) - params.Set(URL_FRESHFOOD_PARA_DMID, utils.Int2Str(msg.DmID)) - params.Set(URL_FRESHFOOD_PARA_DMNAME, msg.DmName) - params.Set(URL_FRESHFOOD_PARA_DMMOBILE, msg.DmMobile) - - return f.AccessFreshFood(URL_FRESHFOOD_DADADELIVERY_STATUS, params) -} - func (f *API) RefreshWeixinToken() error { return f.AccessFreshFood(URL_WX_UPDATE_ACCESSTOKEN, nil) } diff --git a/legacy/jd/controller/order.go b/legacy/jd/controller/order.go deleted file mode 100644 index de61c2088..000000000 --- a/legacy/jd/controller/order.go +++ /dev/null @@ -1,232 +0,0 @@ -package controller - -import ( - "encoding/json" - - "git.rosy.net.cn/baseapi/platformapi/jdapi" - "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/globals" - "git.rosy.net.cn/jx-callback/globals/api" - "git.rosy.net.cn/jx-callback/legacy/controllers" - "git.rosy.net.cn/jx-callback/legacy/freshfood" - "git.rosy.net.cn/jx-callback/legacy/jd/models" - "github.com/astaxie/beego/orm" -) - -const ( - MsgNotHandledCode = "NH" -) - -var ( - orderMsgChan chan jdapi.CallbackOrderMsg -) - -type OrderController struct { -} - -func InitOrder() { - orderMsgChan = make(chan jdapi.CallbackOrderMsg, 128) - go orderMsgHandlerRoutine() - - // 另外当前这个模式可能会出现同一个订单的消息,虽然远程推送过来顺序是对的,但经过处理后推送到freshfood时乱序(因为每个消息的处理时间是不确定的) - handlePendingOrderMsg() -} - -func handlePendingOrderMsg() { - var ordersInfo []models.Jdorder - db := orm.NewOrm() - _, err := db.Raw("SELECT * FROM jdorder WHERE orderstatustime >= DATE_FORMAT(DATE_ADD(NOW(), interval -1 day), '%Y-%m-%d %H:%i:%s') AND code = ?", MsgNotHandledCode).QueryRows(&ordersInfo) - if err != nil { - globals.SugarLogger.Errorf("can not get jdorder from db, error:%v", err) - } else { - for _, jdOrderInfo := range ordersInfo { - orderMsg := &jdapi.CallbackOrderMsg{ - ID: jdOrderInfo.ID, - BillID: utils.Int64ToStr(jdOrderInfo.JdOrderID), - StatusID: utils.Int2Str(jdOrderInfo.OrderStatus), - Timestamp: jdOrderInfo.OrderStatusTime, - } - - addOrderMsg(orderMsg) - } - } -} - -func orderMsgHandlerRoutine() { - for { - msg := <-orderMsgChan - globals.SugarLogger.Debugf("orderMsgHandlerRoutine:%v", msg) - go handleOrderMsg(&msg) - } -} - -func addOrderMsg(msg *jdapi.CallbackOrderMsg) { - globals.SugarLogger.Debugf("addOrderMsg:%v", msg) - orderMsgChan <- *msg -} - -func handleOrderMsg(msg *jdapi.CallbackOrderMsg) { - globals.SugarLogger.Debugf("handleOrderMsg:%v", msg) - switch msg.StatusID { - case jdapi.OrderStatusNew: - newOrder(msg) - case jdapi.OrderStatusAdjust: - adjustOrder(msg) - default: - normalOrderStatus(msg) - } -} - -// -------------- -func (c *OrderController) OrderStatus(msg *jdapi.CallbackOrderMsg) *jdapi.CallbackResponse { - if msg.StatusID != jdapi.OrderStatusNew && msg.StatusID != jdapi.OrderStatusAdjust { - err := normalOrderStatus(msg) - if err != nil { - return jdapi.Err2CallbackResponse(err, "") - } - } else { - db := orm.NewOrm() - jdorderid := utils.Str2Int64(msg.BillID) - status := int(utils.Str2Int64(msg.StatusID)) - rec := &models.Jdorder{ - Code: MsgNotHandledCode, - JdOrderID: jdorderid, - OrderStatus: status, - OrderStatusTime: msg.Timestamp, - } - - if created, _, err := db.ReadOrCreate(rec, "JdOrderID"); err == nil { - msg.ID = rec.ID - if created { - if msg.StatusID != jdapi.OrderStatusNew && msg.StatusID != jdapi.OrderStatusAdjust { - globals.SugarLogger.Warnf("order:%v get before create", msg) - oldStatusID := msg.StatusID - msg.StatusID = jdapi.OrderStatusNew - addOrderMsg(msg) - msg.StatusID = oldStatusID - } - addOrderMsg(msg) - } else { - if rec.OrderStatus != status { - if msg.StatusID == jdapi.OrderStatusNew { - globals.SugarLogger.Warnf("order:%v get after some other message:%d", msg, rec.OrderStatus) - } else { - rec.OrderStatus = status - rec.OrderStatusTime = msg.Timestamp - rec.Code = MsgNotHandledCode - utils.CallFuncLogError(func() error { - _, err := db.Update(rec, "OrderStatus", "OrderStatusTime", "Code") - return err - }, globals.ErrStrAccessDB) - addOrderMsg(msg) - } - } else { - globals.SugarLogger.Warnf("duplicated jd order msg:%v", msg) - } - } - } else { - globals.SugarLogger.Errorf("error when calling ReadOrCreate:%v", err) - return jdapi.Err2CallbackResponse(err, "") - } - } - return jdapi.SuccessResponse -} - -func (c *OrderController) OrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.CallbackDeliveryStatusMsg) *jdapi.CallbackResponse { - if err := freshfood.FreshFoodAPI.JDOrderDeliveryStatus(jdOrderDeliveryStatusMsg); err != nil { - return jdapi.Err2CallbackResponse(err, "") - } - return jdapi.SuccessResponse -} - -//----------- -func OnNewOrder(msg *jdapi.CallbackOrderMsg, userMobile string, db orm.Ormer) { - controllers.OnNewOrder(msg.BillID, controllers.JD_VENDORID, userMobile, 0, db, func(acceptIt bool) { - globals.SugarLogger.Infof("OrderAcceptOperate billid:%v, acceptIt:%v", msg.BillID, acceptIt) - api.JdAPI.OrderAcceptOperate(msg.BillID, acceptIt, "") - }) -} - -func newOrder(msg *jdapi.CallbackOrderMsg) error { - result, err := api.JdAPI.LegacyQuerySingleOrder(msg.BillID) - userMobile := "" - var db orm.Ormer - if err == nil { - rec := &models.Jdorder{ - ID: msg.ID, - } - - rec.Code, _ = result["code"].(string) - rec.Msg, _ = result["msg"].(string) - rec.Success, _ = result["success"].(bool) - - rec.CityName = "all" - - data := result["data"].(map[string]interface{}) - dataResult := data["result"].(map[string]interface{}) - resultList, ok := dataResult["resultList"].([]interface{}) - if ok && len(resultList) == 1 { - resultList0 := resultList[0].(map[string]interface{}) - orderStatus, _ := resultList0["orderStatus"].(json.Number).Int64() - rec.JdOrderID = utils.Str2Int64(msg.BillID) - rec.OrderStatus = int(orderStatus) - rec.OrderStatusTime = resultList0["orderStatusTime"].(string) - - resultByteArr := utils.MustMarshal(data) - rec.Data = utils.FilterMb4(string(resultByteArr)) - rec.Data4Json = data - userMobile = resultList0["buyerMobile"].(string) - err = utils.CallFuncLogError(func() error { - db = orm.NewOrm() - _, err := db.Update(rec, "Data", "Code", "Msg", "Success", "CityName", "OrderStatus", "OrderStatusTime") - return err - }, globals.ErrStrAccessDB) - freshfood.FreshFoodAPI.NewJDOrder(rec, msg.StatusID == jdapi.OrderStatusNew) - } else { - globals.SugarLogger.Errorf("can not get jdorder info:%v", msg.BillID) - } - } - OnNewOrder(msg, userMobile, db) - return err -} - -func adjustOrder(msg *jdapi.CallbackOrderMsg) error { - return newOrder(msg) -} - -func normalOrderStatus(msg *jdapi.CallbackOrderMsg) (err error) { - if msg.StatusID == jdapi.OrderStatusAddComment || msg.StatusID == jdapi.OrderStatusModifyComment { - err = freshfood.FreshFoodAPI.JDOrderComment(msg) - } else { - db := orm.NewOrm() - rec := &models.Jdorder{ - JdOrderID: utils.Str2Int64(msg.BillID), - } - - err = db.Read(rec, "JdOrderId") - if err != nil { - if err == orm.ErrNoRows { - err = nil // 如果没有查到,不当成错误 - } else { - globals.SugarLogger.Warnf("error when accessing db err:%v, rec:%v", err, rec) - } - } else { - if rec.OrderStatus == int(utils.Str2Int64(msg.StatusID)) { - globals.SugarLogger.Infof("Duplicate message msg:%v", msg) - } else { - if msg.StatusID != jdapi.OrderStatusWaitOutStore { // 老系统没有处理OrderStatusWaitOutStore,不转发 - if err = freshfood.FreshFoodAPI.JDOrderStatus(msg); err == nil { - rec.OrderStatus = int(utils.Str2Int64(msg.StatusID)) - rec.OrderStatusTime = msg.Timestamp - rec.Code = "0" - err = utils.CallFuncLogError(func() error { - _, err := db.Update(rec, "OrderStatus", "OrderStatusTime", "Code") - return err - }, globals.ErrStrAccessDB) - } - } - } - } - } - return err -} diff --git a/legacy/jd/models/order.go b/legacy/jd/models/order.go deleted file mode 100644 index 30cb8bcdf..000000000 --- a/legacy/jd/models/order.go +++ /dev/null @@ -1,14 +0,0 @@ -package models - -type Jdorder struct { - ID int `orm:"column(id)" json:"-"` - Code string `orm:"size(2);null" json:"code"` - Msg string `orm:"size(100);null" json:"msg"` - Data string `orm:"type(text)" json:"-"` - Data4Json map[string]interface{} `orm:"-" json:"data"` - Success bool `orm:"null" json:"success"` - JdOrderID int64 `orm:"unique;size(19);column(jdorderid);null" json:"jdOrderId"` - CityName string `orm:"size(20);column(cityname)" json:"cityName"` - OrderStatus int `orm:"column(orderstatus);null" json:"orderStatus"` - OrderStatusTime string `orm:"size(50);column(orderstatustime);null" json:"orderStatusTime"` -} diff --git a/legacy/models/models.go b/legacy/models/models.go deleted file mode 100644 index 245973bc2..000000000 --- a/legacy/models/models.go +++ /dev/null @@ -1,13 +0,0 @@ -package models - -import ( - elmmodels "git.rosy.net.cn/jx-callback/legacy/elm/models" - jdmodels "git.rosy.net.cn/jx-callback/legacy/jd/models" - "github.com/astaxie/beego/orm" -) - -func RegisterModels() { - // register model - orm.RegisterModel(new(jdmodels.Jdorder)) - orm.RegisterModel(new(elmmodels.ELMOrder)) -} diff --git a/legacy/mtps/controller/order.go b/legacy/mtps/controller/order.go deleted file mode 100644 index 65a26fc44..000000000 --- a/legacy/mtps/controller/order.go +++ /dev/null @@ -1,26 +0,0 @@ -package controller - -import ( - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" - "git.rosy.net.cn/jx-callback/legacy/freshfood" -) - -type OrderController struct { -} - -func Error2Response(err error) *mtpsapi.CallbackResponse { - if err != nil { - return &mtpsapi.CallbackResponse{ - Code: -1, - } - } - return mtpsapi.SuccessResponse -} - -func (c *OrderController) OrderStatusChanged(order *mtpsapi.CallbackOrderMsg) *mtpsapi.CallbackResponse { - return Error2Response(freshfood.FreshFoodAPI.MtpsOrderStatusChanged(order)) -} - -func (c *OrderController) OrderException(order *mtpsapi.CallbackOrderExceptionMsg) *mtpsapi.CallbackResponse { - return Error2Response(freshfood.FreshFoodAPI.MtpsOrderException(order)) -} diff --git a/legacy/mtps/models/order.go b/legacy/mtps/models/order.go deleted file mode 100644 index 2d32f78c5..000000000 --- a/legacy/mtps/models/order.go +++ /dev/null @@ -1,13 +0,0 @@ -package models - -type MtpsOrder struct { - DeliveryId int64 - MtPeisongId string `orm:"size(64);unique"` - OrderId string `orm:"size(64);unique"` - Status int - OperateTime int - CourierName string `orm:"size(16)"` - CourierPhone string `orm:"size(16)"` - CancelReasonId int - CancelReason string `orm:"size(256)"` -} diff --git a/legacy/tasks/configrefresh.go b/legacy/tasks/configrefresh.go index 608907b7a..e335f929d 100644 --- a/legacy/tasks/configrefresh.go +++ b/legacy/tasks/configrefresh.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "git.rosy.net.cn/jx-callback/business/legacymodel" + "git.rosy.net.cn/jx-callback/business/model/legacymodel" "git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/baseapi/utils"