| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /*
- * @desc:操作日志管理
- * @company:云南省奇讯科技有限公司
- * @Author: yixiaohu
- * @Date: 2021/7/19 14:50
- */
- package api
- import (
- "gfast/app/system/dao"
- "gfast/app/system/model"
- "gfast/app/system/service"
- "gfast/library"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/net/ghttp"
- "github.com/gogf/gf/text/gstr"
- "github.com/gogf/gf/util/gvalid"
- )
- type sysOperLog struct {
- SystemBase
- }
- var SysOperLog = new(sysOperLog)
- // List 操作日志列表
- func (c *sysOperLog) List(r *ghttp.Request) {
- var req *dao.SysOperLogSearchReq
- //获取参数
- if err := r.Parse(&req); err != nil {
- c.FailJsonExit(r, err.(gvalid.Error).FirstString())
- }
- total, page, list, err := service.SysOperLog.OperationLogListByPage(req)
- if err != nil {
- c.FailJsonExit(r, err.Error())
- }
- result := g.Map{
- "currentPage": page,
- "total": total,
- "list": list,
- }
- c.SusJsonExit(r, result)
- }
- // Detail 日志详细
- func (c *sysOperLog) Detail(r *ghttp.Request) {
- id := r.GetInt64("id")
- log, err := service.SysOperLog.GetOperationLogById(id)
- if err != nil {
- c.FailJsonExit(r, err.Error())
- }
- c.SusJsonExit(r, g.Map{
- "info": log,
- })
- }
- // Delete 删除
- func (c *sysOperLog) Delete(r *ghttp.Request) {
- ids := r.GetInts("ids")
- err := service.SysOperLog.DeleteOperationLogByIds(ids)
- if err != nil {
- c.FailJsonExit(r, err.Error())
- }
- c.SusJsonExit(r, "删除成功")
- }
- // Clear 清空
- func (c *sysOperLog) Clear(r *ghttp.Request) {
- err := service.SysOperLog.ClearOperationLog()
- if err != nil {
- c.FailJsonExit(r, err.Error())
- }
- c.SusJsonExit(r, "清除成功")
- }
- // OperationLog 操作日志记录
- func (c *sysOperLog) OperationLog(r *ghttp.Request) {
- userInfo := c.GetCurrentUser(r.GetCtx())
- if userInfo == nil {
- return
- }
- url := r.Request.URL //请求地址
- //获取菜单
- //获取地址对应的菜单id
- menuList, err := service.Rule.GetMenuList()
- if err != nil {
- g.Log().Error(err)
- return
- }
- var menu *model.SysAuthRuleInfoRes
- path := gstr.TrimLeft(url.Path, "/")
- for _, m := range menuList {
- if gstr.Equal(m.Name, path) {
- menu = m
- break
- }
- }
- data := &dao.SysOperLogAdd{
- User: userInfo,
- Menu: menu,
- Url: url,
- Params: r.GetMap(),
- Method: r.Method,
- ClientIp: library.GetClientIp(r),
- OperatorType: 1,
- }
- service.SysOperLog.Invoke(data)
- }
|