logsLogic.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package logic
  2. import (
  3. "errors"
  4. "fmt"
  5. "git.rtzhtech.cn/iss/public-lib/dao"
  6. "git.rtzhtech.cn/iss/public-lib/dto"
  7. "git.rtzhtech.cn/iss/public-lib/model"
  8. "git.rtzhtech.cn/iss/public-lib/svc"
  9. "github.com/gogf/gf/v2/util/gconv"
  10. )
  11. // NewLogOperateLogic
  12. // @函数名:NewLogOperateLogic
  13. // @函数功能描述: 初始化日志
  14. // @返回值:LogOperate
  15. //
  16. func NewLogOperateLogic() LogOperate {
  17. return LogOperate{
  18. SvcCtx: svc.SvcCtx,
  19. }
  20. }
  21. type LogOperate struct {
  22. SvcCtx *svc.ServiceContext
  23. }
  24. // SaveLogOperate
  25. // @函数名:SaveLogOperate
  26. // @函数功能描述: 保存日志
  27. // @对象名:c
  28. // @参数定义:req
  29. // @返回值:error
  30. //
  31. func (c *LogOperate) SaveLogOperate(req *model.LogOperate) error {
  32. maps := gconv.Map(req)
  33. return c.SvcCtx.LogOperate.Base.Replace(maps)
  34. }
  35. // SaveLogOperateMap
  36. // @函数名:SaveLogOperateMap
  37. // @函数功能描述: map结构保存日志
  38. // @对象名:c
  39. // @参数定义:maps
  40. // @返回值:error
  41. //
  42. func (c *LogOperate) SaveLogOperateMap(maps map[string]interface{}) error {
  43. if maps == nil || len(maps) == 0 {
  44. return errors.New("参数为空")
  45. }
  46. return c.SvcCtx.LogOperate.Base.Replace(maps)
  47. }
  48. // DelLogOperate
  49. // @函数名:DelLogOperate
  50. // @函数功能描述: 删除日志
  51. // @对象名:c
  52. // @参数定义:id
  53. // @返回值:error
  54. //
  55. func (c *LogOperate) DelLogOperate(id int32) error {
  56. md := c.SvcCtx.LogOperate
  57. _, err := md.Where(md.ID.Eq(id)).Delete()
  58. return err
  59. }
  60. // GetLogOperate
  61. // @函数名:GetLogOperate
  62. // @函数功能描述: 获取日志
  63. // @对象名:c
  64. // @参数定义:req
  65. // @返回值:*dto.GetLogOperateResponse
  66. // @返回值:error
  67. //
  68. func (c *LogOperate) GetLogOperate(req *dto.GetLogOperateRequest) (*dto.GetLogOperateResponse, error) {
  69. var (
  70. resp = new(dto.GetLogOperateResponse)
  71. )
  72. cond := new(dao.Condition)
  73. where := map[string]any{}
  74. if req.AppId > 0 {
  75. where["appid"] = req.AppId
  76. }
  77. if req.Usrname != "" {
  78. where["usrname like ?"] = "%" + req.Usrname + "%"
  79. }
  80. if req.StartAt != "" {
  81. startAt := fmt.Sprintf("%s >= ?", c.SvcCtx.LogOperate.CreateAt.String())
  82. where[startAt] = req.StartAt
  83. }
  84. if req.EndAt != "" {
  85. endAt := fmt.Sprintf("%s <= ?", c.SvcCtx.LogOperate.CreateAt.String())
  86. where[endAt] = req.EndAt
  87. }
  88. cond.Where = where
  89. var num int64
  90. c.SvcCtx.LogOperate.Base.Count(cond, &num)
  91. if req.Page < 1 {
  92. req.Page = 1
  93. }
  94. if req.Limit < 1 {
  95. req.Limit = 20
  96. }
  97. cond.Limit = req.Limit
  98. cond.Offset = (req.Page - 1) * req.Limit
  99. cond.OrderBy = "id desc"
  100. err := c.SvcCtx.LogOperate.Base.Find(cond, &resp.List)
  101. if err != nil {
  102. return resp, err
  103. }
  104. resp.Total = num
  105. return resp, nil
  106. }