Browse Source

feature:日志管理

ZZH-wl 3 years ago
parent
commit
56152e1497

+ 2 - 2
opms_admin/app/handler/auth.go

@@ -43,8 +43,9 @@ func (h *AuthHandler) Login(ctx context.Context, req *user_def.LoginReq, rsp *co
 	}
 	userInfo, err := userService.Login(req.UserName, req.Password)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
+	loginLogService, _ := service.NewLoginLogService(ctx)
+	loginLogService.Invoke(ctx, req.UserName, rsp.Msg)
 	if err != nil {
-		glog.Error(err)
 		return err
 	}
 
@@ -66,7 +67,6 @@ func (h *AuthHandler) LogOut(ctx context.Context, req interface{}, rsp *comm_def
 	tokenResp := gtoken.GFToken.RemoveToken(token)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		glog.Error(err)
 		return err
 	}
 	rsp.Msg = tokenResp.Msg

+ 0 - 9
opms_admin/app/handler/dict.go

@@ -7,7 +7,6 @@ import (
 	"dashoo.cn/micro/app/service"
 	"dashoo.cn/opms_libary/myerrors"
 	"github.com/gogf/gf/frame/g"
-	"github.com/gogf/gf/os/glog"
 	"github.com/gogf/gf/util/gvalid"
 )
 
@@ -24,7 +23,6 @@ func (h *DictHandler) GetDictTypeList(ctx context.Context, req *model.ListSysDic
 	total, list, err := dictService.GetList(req)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		g.Log().Error(err)
 		return err
 	}
 	rsp.Data = g.Map{"list": list, "total": total}
@@ -45,7 +43,6 @@ func (h *DictHandler) GetDictTypeEntity(ctx context.Context, req *comm_def.IdReq
 	data, err := dictService.GetDictById(req.Id)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		g.Log().Error(err)
 		return err
 	}
 	rsp.Data = data
@@ -111,7 +108,6 @@ func (h *DictHandler) GetDictDataList(ctx context.Context, req *model.SelectDict
 	total, list, err := dictService.GetDictDataList(req)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		glog.Error(err)
 		return err
 	}
 	rsp.Data = g.Map{"list": list, "total": total}
@@ -132,7 +128,6 @@ func (h *DictHandler) GetDictDataEntity(ctx context.Context, req *comm_def.IdReq
 	data, err := dictService.GetDictDataById(req.Id)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		glog.Error(err)
 		return err
 	}
 	rsp.Data = data
@@ -149,7 +144,6 @@ func (h *DictHandler) GetDictDataByType(ctx context.Context, req *model.GetDictR
 	list, err := dictService.GetDictWithDataByType(req)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		glog.Error(err)
 		return err
 	}
 	rsp.Data = list
@@ -171,7 +165,6 @@ func (h *DictHandler) CreateDictData(ctx context.Context, req *model.DictDataAdd
 	_, err = dictService.Create(req)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		glog.Error(err)
 		return err
 
 	}
@@ -193,7 +186,6 @@ func (h *DictHandler) UpdateDictData(ctx context.Context, req *model.EditDictDat
 	err = dictService.UpdateByDict(req)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		glog.Error(err)
 		return err
 	}
 	return nil
@@ -213,7 +205,6 @@ func (h *DictHandler) DeleteDictDataByIds(ctx context.Context, req *comm_def.Ids
 	err = dictService.DeleteDictDataByIds(req.Ids)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		glog.Error(err)
 		return err
 	}
 	return nil

+ 10 - 10
opms_admin/app/handler/group.go

@@ -15,12 +15,12 @@ type GroupHandler struct{}
 
 // GetList 获取列表
 func (h *GroupHandler) GetList(ctx context.Context, req *model.SysGroupSearchParams, rsp *comm_def.CommonMsg) error {
-	postService, err := service.NewGroupService(ctx)
+	groupService, err := service.NewGroupService(ctx)
 	if err != nil {
 		g.Log().Error(err)
 		return gerror.New("系统异常,请重新尝试")
 	}
-	total, list, err := postService.GetList(req)
+	total, list, err := groupService.GetList(req)
 	_, _, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	rsp.Data = g.Map{"list": list, "total": total}
 	return nil
@@ -32,12 +32,12 @@ func (h *GroupHandler) GetList(ctx context.Context, req *model.SysGroupSearchPar
 //	if req.Id == 0 {
 //		return NoParamsErr
 //	}
-//	postService, err := service.NewGroupService(ctx)
+//	groupService, err := service.NewGroupService(ctx)
 //	if err != nil {
 //		g.Log().Error(err)
 //		return gerror.New("系统异常,请重新尝试")
 //	}
-//	entity, err := postService.GetEntity(req.Id)
+//	entity, err := groupService.GetEntity(req.Id)
 //	_, _, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 //	rsp.Data = entity
 //	return nil
@@ -50,12 +50,12 @@ func (h *GroupHandler) Create(ctx context.Context, req *model.SysGroupReq, rsp *
 		g.Log().Error(v)
 		return v
 	}
-	postService, err := service.NewGroupService(ctx)
+	groupService, err := service.NewGroupService(ctx)
 	if err != nil {
 		g.Log().Error(err)
 		return gerror.New("系统异常,请重新尝试")
 	}
-	err = postService.Create(req)
+	err = groupService.Create(req)
 	_, _, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	return nil
 }
@@ -68,26 +68,26 @@ func (h *GroupHandler) UpdateById(ctx context.Context, req *model.UpdateSysGroup
 		return v
 	}
 
-	postService, err := service.NewGroupService(ctx)
+	groupService, err := service.NewGroupService(ctx)
 	if err != nil {
 		g.Log().Error(err)
 		return gerror.New("系统异常,请重新尝试")
 	}
 
-	err = postService.UpdateById(req)
+	err = groupService.UpdateById(req)
 	_, _, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	return nil
 }
 
 // DeleteByIds 删除菜单
 func (h *GroupHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
-	postService, err := service.NewGroupService(ctx)
+	groupService, err := service.NewGroupService(ctx)
 	if err != nil {
 		g.Log().Error(err)
 		return gerror.New("系统异常,请重新尝试")
 	}
 
-	err = postService.DeleteByIds(req.Ids)
+	err = groupService.DeleteByIds(req.Ids)
 	_, _, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	return nil
 }

+ 39 - 0
opms_admin/app/handler/loginLog.go

@@ -0,0 +1,39 @@
+package handler
+
+import (
+	"context"
+	"dashoo.cn/common_definition/comm_def"
+	"dashoo.cn/micro/app/model"
+	"dashoo.cn/micro/app/service"
+	"dashoo.cn/opms_libary/myerrors"
+	"github.com/gogf/gf/errors/gerror"
+	"github.com/gogf/gf/frame/g"
+)
+
+type LoginLogHandler struct{}
+
+// GetList 获取列表
+func (h *LoginLogHandler) GetList(ctx context.Context, req *model.SysLoginLogSearchReq, rsp *comm_def.CommonMsg) error {
+	postService, err := service.NewLoginLogService(ctx)
+	if err != nil {
+		g.Log().Error(err)
+		return gerror.New("系统异常,请重新尝试")
+	}
+	total, list, err := postService.GetList(req)
+	_, _, rsp.Code, rsp.Msg = myerrors.CheckError(err)
+	rsp.Data = g.Map{"list": list, "total": total}
+	return nil
+}
+
+// DeleteByIds 删除菜单
+func (h *LoginLogHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
+	postService, err := service.NewLoginLogService(ctx)
+	if err != nil {
+		g.Log().Error(err)
+		return gerror.New("系统异常,请重新尝试")
+	}
+
+	err = postService.DeleteByIds(req.Ids)
+	_, _, rsp.Code, rsp.Msg = myerrors.CheckError(err)
+	return nil
+}

+ 0 - 17
opms_admin/app/handler/user.go

@@ -26,7 +26,6 @@ func (h *UserHandler) GetList(ctx context.Context, req *model.SysUserSearchReq,
 	total, list, err := userService.GetUserList(req)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		g.Log().Error(err)
 		return err
 	}
 	rsp.Data = g.Map{"list": list, "total": total}
@@ -53,7 +52,6 @@ func (h *UserHandler) Create(ctx context.Context, req *model.AddUserReq, rsp *co
 	err = userService.CreateUser(req)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		g.Log().Error(err)
 		return err
 	}
 	return nil
@@ -83,7 +81,6 @@ func (h *UserHandler) UpdateById(ctx context.Context, req *model.EditUserReq, rs
 	err = userService.UpdateUser(req)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		g.Log().Error(err)
 		return err
 	}
 	return nil
@@ -111,19 +108,16 @@ func (e *UserHandler) GetUserInfo(ctx context.Context, req *comm_def.IdReq, rsp
 	userRoles, err := userService.GetUserRoleIds(userId)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		g.Log().Error(err)
 		return err
 	}
 	userPosts, err := userService.GetUserPostIds(userId)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		g.Log().Error(err)
 		return err
 	}
 	userGroups, err := userService.GetUserGroupIds(userId)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		g.Log().Error(err)
 		return err
 	}
 
@@ -156,7 +150,6 @@ func (e *UserHandler) GetUserInfo(ctx context.Context, req *comm_def.IdReq, rsp
 //	data, err := service.GetEntityByUuId(req.Uuid)
 //	_, err, code, msg := myerrors.CheckError(err)
 //	if err != nil {
-//		g.Log().Error(err)
 //		return err
 //	}
 //	rsp.Code = code
@@ -180,7 +173,6 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
 	err = userService.DeleteUserByIds(ctx, req.Ids)
 	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		g.Log().Error(err)
 		return err
 	}
 	return nil
@@ -213,7 +205,6 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
 //	err = service.ResetPassword(&userInfo, req.Id, req.Password)
 //	_, err, code, msg := myerrors.CheckError(err)
 //	if err != nil {
-//		g.Log().Error(err)
 //		return err
 //	}
 //	rsp.Code = code
@@ -245,7 +236,6 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
 //	err = service.SetStatus(&userInfo, req.Id, req.Enabled)
 //	_, err, code, msg := myerrors.CheckError(err)
 //	if err != nil {
-//		g.Log().Error(err)
 //		return err
 //	}
 //	rsp.Code = code
@@ -274,7 +264,6 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
 //	list, err := service.GetUserBelongDept(req.DeptId)
 //	_, err, code, msg := myerrors.CheckError(err)
 //	if err != nil {
-//		g.Log().Error(err)
 //		return err
 //	}
 //	rsp.Code = code
@@ -304,7 +293,6 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
 //	userId, err := service.GetIdByUuid(req.Uuid)
 //	_, err, code, msg := myerrors.CheckError(err)
 //	if err != nil {
-//		g.Log().Error(err)
 //		return err
 //	}
 //	rsp.Code = code
@@ -330,7 +318,6 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
 //	list, err := service.GetDict(req)
 //	_, err, code, msg := myerrors.CheckError(err)
 //	if err != nil {
-//		g.Log().Error(err)
 //		return err
 //	}
 //	rsp.Code = code
@@ -356,7 +343,6 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
 //	list, err := service.GetUsersDictByDepartment(req.DeptId)
 //	_, err, code, msg := myerrors.CheckError(err)
 //	if err != nil {
-//		g.Log().Error(err)
 //		return err
 //	}
 //	rsp.Code = code
@@ -385,7 +371,6 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
 //	profile, err := service.GetProfile(int64(userInfo.Id))
 //	_, err, code, msg := myerrors.CheckError(err)
 //	if err != nil {
-//		glog.Error(err)
 //		return err
 //	}
 //	rsp.Code = code
@@ -420,7 +405,6 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
 //	err = service.UpdateProfile(&userInfo, req)
 //	_, err, code, msg := myerrors.CheckError(err)
 //	if err != nil {
-//		glog.Error(err)
 //		return err
 //	}
 //	rsp.Code = code
@@ -451,7 +435,6 @@ func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp
 //	err = service.SetAvatar(&userInfo, req.FileUrl)
 //	_, err, code, msg := myerrors.CheckError(err)
 //	if err != nil {
-//		glog.Error(err)
 //		return err
 //	}
 //	rsp.Code = code

+ 1 - 1
opms_admin/app/service/sys_dept.go

@@ -25,7 +25,7 @@ func NewDeptService(ctx context.Context) (svc *deptService, err error) {
 func (s *deptService) GetList(searchParams *model.SysDeptSearchParams) ([]*model.SysDept, error) {
 	deptModel := s.Dao.M
 	if searchParams.DeptName != "" {
-		deptModel = deptModel.Where("dept_name like ?", "%"+searchParams.DeptName+"%")
+		deptModel = deptModel.WhereLike("dept_name", "%"+searchParams.DeptName+"%")
 	}
 	if searchParams.Status != "" {
 		deptModel = deptModel.Where("status", searchParams.Status)

+ 62 - 18
opms_admin/app/service/sys_login_log.go

@@ -1,51 +1,63 @@
 package service
 
 import (
+	"context"
 	"dashoo.cn/micro/app/dao"
 	"dashoo.cn/micro/app/model"
+	"dashoo.cn/opms_libary/micro_srv"
+	"dashoo.cn/opms_libary/utils"
 	"github.com/gogf/gf/errors/gerror"
 	"github.com/gogf/gf/frame/g"
 	"github.com/gogf/gf/os/grpool"
+	"github.com/gogf/gf/os/gtime"
 	"github.com/gogf/gf/util/gconv"
+	"github.com/mssola/user_agent"
 )
 
-type sysLoginLog struct {
+type loginLogService struct {
+	*contextService
+	Dao  *dao.SysLoginDao
 	Pool *grpool.Pool
 }
 
-var (
-	SysLoginLog = &sysLoginLog{
-		Pool: grpool.New(100),
+func NewLoginLogService(ctx context.Context) (svc *loginLogService, err error) {
+	svc = new(loginLogService)
+	if svc.contextService, err = svc.Init(ctx); err != nil {
+		return nil, err
 	}
-)
+	svc.Dao = dao.NewSysLoginDao(svc.Tenant)
+	svc.Table = svc.Dao.Table
+	svc.Pool = grpool.New(100)
+	return svc, nil
+}
 
-func (s *sysLoginLog) Invoke(data *model.LoginLogParams) {
+func (s *loginLogService) Invoke(ctx context.Context, userName, msg string) {
 	s.Pool.Add(func() {
 		//写入日志数据
-		//SysUser.LoginLog(data)
+		s.Create(ctx, userName, msg)
 	})
 }
 
-func (s *sysLoginLog) LoginLogListByPage(req *model.SysLoginLogSearchReq) (total, page int, list []*model.SysLogin, err error) {
-	db := dao.SysLogin.M
+func (s *loginLogService) GetList(req *model.SysLoginLogSearchReq) (total int, list []*model.SysLogin, err error) {
+	db := s.Dao.M
 	order := "info_id DESC"
 	if req.LoginName != "" {
-		db = db.Where("login_name like ?", "%"+req.LoginName+"%")
+		db = db.WhereLike("login_name", "%"+req.LoginName+"%")
 	}
 	if req.Status != "" {
 		db = db.Where("status", gconv.Int(req.Status))
 	}
 	if req.Ipaddr != "" {
-		db = db.Where("ipaddr like ?", "%"+req.Ipaddr+"%")
+		db = db.WhereLike("ipaddr", "%"+req.Ipaddr+"%")
 	}
 	if req.LoginLocation != "" {
-		db = db.Where("login_location like ?", "%"+req.LoginLocation+"%")
+		db = db.WhereLike("login_location", "%"+req.LoginLocation+"%")
 	}
 	if req.BeginTime != "" {
-		db = db.Where("login_time >=", req.BeginTime)
+		db = db.WhereGTE("login_time", req.BeginTime)
 	}
 	if req.EndTime != "" {
-		db = db.Where("login_time <=", req.EndTime)
+		db = db.WhereLTE("login_time", req.EndTime)
 	}
 	if req.SortName != "" {
 		if req.SortOrder != "" {
@@ -69,12 +81,44 @@ func (s *sysLoginLog) LoginLogListByPage(req *model.SysLoginLogSearchReq) (total
 	return
 }
 
-func (s *sysLoginLog) DeleteLoginLogByIds(ids []int) (err error) {
+// Create 记录登录日志
+func (s *loginLogService) Create(ctx context.Context, userName, msg string) {
+	clientIP, userAgent, err := micro_srv.GetBrowserInfo(ctx)
+	if err != nil {
+		// 非必要信息,只输出错误日志
+		g.Log().Error(err)
+	}
+	ua := user_agent.New(userAgent)
+	browser, _ := ua.Browser()
+	status := "10"
+	if msg != "操作成功" {
+		status = "20"
+	} else {
+		msg = "登录成功"
+	}
+	loginData := &model.SysLogin{
+		UserName:      userName,
+		Ipaddr:        clientIP,
+		LoginLocation: utils.GetCityByIp(clientIP),
+		Browser:       browser,
+		Os:            ua.OS(),
+		Status:        status,
+		Msg:           msg,
+		LoginTime:     gtime.Now(),
+	}
+	_, err = s.Dao.Insert(loginData)
+	if err != nil {
+		// 非必要信息,只输出错误日志
+		g.Log().Error(err)
+	}
+}
+
+func (s *loginLogService) DeleteByIds(ids []int64) (err error) {
 	if len(ids) == 0 {
 		err = gerror.New("参数错误")
 		return
 	}
-	_, err = dao.SysLogin.Delete("info_id in (?)", ids)
+	_, err = s.Dao.Delete("info_id in (?)", ids)
 	if err != nil {
 		g.Log().Error(err)
 		err = gerror.New("删除失败")
@@ -82,8 +126,8 @@ func (s *sysLoginLog) DeleteLoginLogByIds(ids []int) (err error) {
 	return
 }
 
-func (s *sysLoginLog) ClearLoginLog() (err error) {
-	_, err = g.DB().Exec("truncate " + dao.SysLogin.Table)
+func (s *loginLogService) ClearLoginLog() (err error) {
+	_, err = s.Dao.DB.Exec("truncate " + s.Table)
 	if err != nil {
 		g.Log().Error(err)
 		err = gerror.New("清除失败")

+ 6 - 36
opms_admin/app/service/sys_menu.go

@@ -32,7 +32,7 @@ func NewMenuService(ctx context.Context) (svc *menuService, err error) {
 
 // Create 添加菜单项
 func (s menuService) Create(param *model.SysMenuReq) (id int64, err error) {
-	// 菜单类型 D目录 M菜单 F按钮或功能 I接口
+	// 菜单类型 M目录C菜单 F按钮
 	if param.MenuType == "F" && param.Perms == "" {
 		return -1, errors.New("权限标识不能为空!")
 	}
@@ -45,7 +45,7 @@ func (s menuService) Create(param *model.SysMenuReq) (id int64, err error) {
 			return -1, errors.New("权限标识已存在。")
 		}
 	}
-	if param.MenuType == "D" {
+	if param.MenuType == "M" {
 		param.Component = "Layout"
 	}
 
@@ -53,11 +53,6 @@ func (s menuService) Create(param *model.SysMenuReq) (id int64, err error) {
 	if err := gconv.Struct(param, &entity); err != nil {
 		return -1, err
 	}
-	// 用户基础信息
-	//userInfo, err := micro_srv.GetUserInfo(ctx)
-	//if err != nil {
-	//	return 0, err
-	//}
 	SetCreatedInfo(entity, s.GetCxtUserId(), s.GetCxtUserName())
 	if result, err := s.Dao.Insert(entity); err != nil {
 		return -1, err
@@ -66,21 +61,17 @@ func (s menuService) Create(param *model.SysMenuReq) (id int64, err error) {
 		if err != nil {
 			return -1, err
 		}
-		//err = s.initPaths(int(id), param.ParentId)
-		//if err != nil {
-		//	return -1, err
-		//}
 		return id, nil
 	}
 }
 
 // UpdateById 根据ID更新菜单项
 func (s menuService) UpdateById(param *model.SysMenuReq) error {
-	// 菜单类型 D目录 M菜单 F按钮或功能 I接口
+	// 菜单类型 M目录C菜单 F按钮
 	if param.MenuType == "F" && param.Perms == "" {
 		return gerror.New("权限标识不能为空!")
 	}
-	if param.MenuType == "D" {
+	if param.MenuType == "M" {
 		param.Component = "Layout"
 	}
 	var entity *model.SysMenu
@@ -107,45 +98,24 @@ func (s menuService) UpdateById(param *model.SysMenuReq) error {
 			return gerror.New("权限标识已存在。")
 		}
 	}
-	// 用户基础信息
-	//userInfo, err := micro_srv.GetUserInfo(ctx)
-	//if err != nil {
-	//	return err
-	//}
 	SetUpdatedInfo(entity, s.GetCxtUserId(), s.GetCxtUserName())
 	_, err = db.FieldsEx(UpdateFieldEx).Where("Id", entity.Id).Update(entity)
 	if err != nil {
 		return err
 	}
-	//err = s.savePaths(ctx, entity.Id, entity.ParentId, menu["Paths"].String())
 	return err
 }
 
 func (s menuService) Delete(id int64) (err error) {
-	db := s.Dao.M
+	db := s.Dao
 	record, err := db.FindOne("Id", id)
 	if err != nil {
 		return err
 	}
-	if record.IsEmpty() {
+	if record == nil {
 		return gerror.New("菜单不存在")
 	}
 	_, err = db.Delete("Id", id)
-	//delParentId := record["ParentId"].String()
-	//if err != nil {
-	//	return err
-	//}
-	//res, _ := db.Data("parent_id", delParentId).Where("parent_id", id).Update()
-	//
-	//if res != nil {
-	//	if delParentId == "0" {
-	//		updatesql := "Paths = replace(Paths, '" + strconv.Itoa(id) + "/" + "', '')"
-	//		_, err = db.Update(updatesql, " Paths like '"+strconv.Itoa(id)+"/%'")
-	//	} else {
-	//		updatesql := "Paths = replace(Paths, '" + record["Paths"].String() + "', '" + delParentId + "')"
-	//		_, err = db.Update(updatesql, " Paths like '"+record["Paths"].String()+"/%'")
-	//	}
-	//}
 	return err
 }
 

+ 0 - 37
opms_admin/app/service/sys_user.go

@@ -146,43 +146,6 @@ func (s *userService) GetUserByUsername(ctx context.Context, userName string) (u
 	return dao.SysUser.FindByUsername(ctx, userName)
 }
 
-// UpdateLoginInfo 更新用户登录信息 保存登录日志
-func (s *userService) UpdateLoginInfo(id int, username, ip, userAgent, msg, module string) {
-	status := 0 //登录状态 0失败 1成功
-	if id != 0 {
-		//说明登录成功更新登录信息
-		status = 1
-		//dao.SysUser.UpLoginInfo(id, ip)
-	}
-	//保存登录日志(异步)
-	SysLoginLog.Invoke(&model.LoginLogParams{
-		Status:    status,
-		Username:  username,
-		Ip:        ip,
-		UserAgent: userAgent,
-		Msg:       msg,
-		Module:    module,
-	})
-}
-
-// LoginLog 记录登录日志
-func (s *userService) LoginLog(params *model.LoginLogParams) {
-	//ua := user_agent.New(params.UserAgent)
-	//browser, _ := ua.Browser()
-	//loginData := &model.SysLogin{
-	//	LoginName:     params.Username,
-	//	Ipaddr:        params.Ip,
-	//	LoginLocation: utils.GetCityByIp(params.Ip),
-	//	Browser:       browser,
-	//	Os:            ua.OS(),
-	//	Status:        params.Status,
-	//	Msg:           params.Msg,
-	//	LoginTime:     gtime.Now(),
-	//	Module:        params.Module,
-	//}
-	//dao.SysLoginLog.SaveLog(loginData)
-}
-
 // SaveOnline 保存用户登录在线状态信息
 //func (s *sysUser) SaveOnline(params *model.SysUserOnline) {
 //	dao.SysUserOnline.SaveOnline(params)

+ 1 - 1
opms_admin/go.mod

@@ -5,10 +5,10 @@ go 1.16
 require (
 	dashoo.cn/common_definition v0.0.0
 	dashoo.cn/opms_libary v0.0.0
-	github.com/casbin/casbin/v2 v2.57.0
 	github.com/go-redis/redis/v8 v8.11.5 // indirect
 	github.com/gogf/gcache-adapter v0.1.2
 	github.com/gogf/gf v1.16.4
+	github.com/mssola/user_agent v0.5.3 // indirect
 	github.com/smallnest/rpcx v1.6.10
 	github.com/stretchr/testify v1.7.1 // indirect
 	golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8 // indirect

+ 1 - 0
opms_admin/main.go

@@ -22,6 +22,7 @@ func main() {
 	s.RegisterName("Role", new(handler.RoleHandler), "")
 	s.RegisterName("Post", new(handler.PostHandler), "")
 	s.RegisterName("Group", new(handler.GroupHandler), "")
+	s.RegisterName("LoginLog", new(handler.LoginLogHandler), "")
 
 	// 注册文件处理Service对象
 	//dynamic.BeanFactory.BeanRegister(service.NewRoleService())