package event import ( "strings" "time" "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" ) 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)] } 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 }