package event import ( "strings" "time" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/business/partner/purchase/jd" "git.rosy.net.cn/jx-callback/globals/api/apimanager" "git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" ) type CheckCookie struct { VendorID int `json:"vendorID"` Status string `json:"status"` } func AddOperateEvent(ctx *jxcontext.Context, accessUUID string) (err error) { var ( apiFunction string db = dao.GetDB() ) url := ctx.GetRequest().URL.Path if url != "" { apiFunction = url[strings.LastIndex(url, "/")+1 : len(url)] } if apiFunction != "" { if apiFunction[0:3] == "Get" { return err } } event := &model.OperateEvent{ CreatedAt: time.Now(), LastOperator: ctx.GetUserName(), APIFunction: apiFunction, UserID: ctx.GetUserID(), AccessUUID: accessUUID, } dao.Begin(db) defer func() { if r := recover(); r != nil { dao.Rollback(db) panic(r) } }() err = dao.CreateEntity(db, event) dao.Commit(db) return err } func AddOperateEventDetail(db *dao.DaoDB, operateEventDetail *model.OperateEventDetail) (err error) { dao.Begin(db) defer func() { if r := recover(); r != nil { dao.Rollback(db) panic(r) } }() err = dao.CreateEntity(db, operateEventDetail) dao.Commit(db) return err } func DeleteOperateEventAndDetail(ctx *jxcontext.Context, deleteTime time.Time) (err error) { db := dao.GetDB() dao.Begin(db) defer func() { if r := recover(); r != nil { dao.Rollback(db) panic(r) } }() dao.DeleteOperateEventDetail(db, deleteTime) dao.DeleteOperateEvent(db, deleteTime) dao.Commit(db) return err } func GetOperateEvents(ctx *jxcontext.Context, apiFunction, name string, operateType int, skuIDs, storeIDs []int, fromTime, toTime string, offset, pageSize int) (pageInfo *model.PagedInfo, err error) { var ( fromTimeP time.Time toTimeP time.Time ) db := dao.GetDB() if fromTime != "" { fromTimeP = utils.Str2Time(fromTime) } if toTime != "" { toTimeP = utils.Str2Time(toTime) } pageSize = jxutils.FormalizePageSize(pageSize) offset = jxutils.FormalizePageOffset(offset) operateEventExt, totalCount, err := dao.GetOperateEvents(db, apiFunction, name, operateType, skuIDs, storeIDs, fromTimeP, toTimeP, offset, pageSize) if err != nil { return pageInfo, err } pageInfo = &model.PagedInfo{ Data: operateEventExt, TotalCount: totalCount, } return pageInfo, err } func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) (ccList []*CheckCookie, err error) { var ( ebaiOrderID = "1577329467196263592" ebaiErr = "return not json" mtOrderID = "69761763472881638" mtStoreID = "6976176" mtErr = "返回结果格式不正常" jdUpcCode = "6952395700895" jdErr = "请输入用户名" errMsg = "" ) for _, v := range vendorIDs { cc := &CheckCookie{} switch v { case 3: resultMap, err := api.EbaiAPI.GetStoreOrderInfo(ebaiOrderID) if len(resultMap) < 1 && err != nil { if strings.Contains(err.Error(), ebaiErr) { //Cookie无效了 errMsg += " 饿百Cookie无效了!" cc.VendorID = v cc.Status = "无效" } } else { //Cookie有效 cc.VendorID = v cc.Status = "有效" } case 1: err := api.MtwmAPI.OrderModityTips(mtOrderID, mtStoreID, 0.2) if err != nil { if strings.Contains(err.Error(), mtErr) { errMsg += " 美团Cookie无效了!" cc.VendorID = v cc.Status = "无效" } } else { //Cookie有效 cc.VendorID = v cc.Status = "有效" } case 0: for _, vv := range apimanager.CurAPIManager.GetAppOrgCodeList(v) { result, err := jd.GetAPI(vv).GetJdUpcCodeByName("", jdUpcCode, 1, 5) if len(result) < 1 && err != nil { if strings.Contains(err.Error(), jdErr) { //Cookie无效 errMsg += " 京东Cookie无效了!" cc.VendorID = v cc.Status = "无效" } } else { //Cookie有效 cc.VendorID = v cc.Status = "有效" } } } ccList = append(ccList, cc) } if isAuto && len(ccList) > 0 { globals.SugarLogger.Warnf("GetCheckVendorCookie", errMsg) } return ccList, err }