package logic import ( "errors" "fmt" "git.rtzhtech.cn/iss/public-lib/dao" "git.rtzhtech.cn/iss/public-lib/dto" "git.rtzhtech.cn/iss/public-lib/model" "git.rtzhtech.cn/iss/public-lib/svc" "github.com/gogf/gf/v2/util/gconv" ) // NewLogOperateLogic // @函数名:NewLogOperateLogic // @函数功能描述: 初始化日志 // @返回值:LogOperate // func NewLogOperateLogic() LogOperate { return LogOperate{ SvcCtx: svc.SvcCtx, } } type LogOperate struct { SvcCtx *svc.ServiceContext } // SaveLogOperate // @函数名:SaveLogOperate // @函数功能描述: 保存日志 // @对象名:c // @参数定义:req // @返回值:error // func (c *LogOperate) SaveLogOperate(req *model.LogOperate) error { maps := gconv.Map(req) return c.SvcCtx.LogOperate.Base.Replace(maps) } // SaveLogOperateMap // @函数名:SaveLogOperateMap // @函数功能描述: map结构保存日志 // @对象名:c // @参数定义:maps // @返回值:error // func (c *LogOperate) SaveLogOperateMap(maps map[string]interface{}) error { if maps == nil || len(maps) == 0 { return errors.New("参数为空") } return c.SvcCtx.LogOperate.Base.Replace(maps) } // DelLogOperate // @函数名:DelLogOperate // @函数功能描述: 删除日志 // @对象名:c // @参数定义:id // @返回值:error // func (c *LogOperate) DelLogOperate(id int32) error { md := c.SvcCtx.LogOperate _, err := md.Where(md.ID.Eq(id)).Delete() return err } // GetLogOperate // @函数名:GetLogOperate // @函数功能描述: 获取日志 // @对象名:c // @参数定义:req // @返回值:*dto.GetLogOperateResponse // @返回值:error // func (c *LogOperate) GetLogOperate(req *dto.GetLogOperateRequest) (*dto.GetLogOperateResponse, error) { var ( resp = new(dto.GetLogOperateResponse) ) cond := new(dao.Condition) where := map[string]any{} if req.AppId > 0 { where["appid"] = req.AppId } if req.Usrname != "" { where["usrname like ?"] = "%" + req.Usrname + "%" } if req.StartAt != "" { startAt := fmt.Sprintf("%s >= ?", c.SvcCtx.LogOperate.CreateAt.String()) where[startAt] = req.StartAt } if req.EndAt != "" { endAt := fmt.Sprintf("%s <= ?", c.SvcCtx.LogOperate.CreateAt.String()) where[endAt] = req.EndAt } cond.Where = where var num int64 c.SvcCtx.LogOperate.Base.Count(cond, &num) if req.Page < 1 { req.Page = 1 } if req.Limit < 1 { req.Limit = 20 } cond.Limit = req.Limit cond.Offset = (req.Page - 1) * req.Limit cond.OrderBy = "id desc" err := c.SvcCtx.LogOperate.Base.Find(cond, &resp.List) if err != nil { return resp, err } resp.Total = num return resp, nil }