100 lines
2.3 KiB
Go
100 lines
2.3 KiB
Go
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)]
|
|
}
|
|
if apiFunction[0:2] == "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
|
|
}
|