log_service.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package service
  2. import (
  3. "errors"
  4. "fmt"
  5. "rtzh_elec_temperature/logger"
  6. "rtzh_elec_temperature/rtelec_app_public_lib/models"
  7. "rtzh_elec_temperature/tools"
  8. "strconv"
  9. "strings"
  10. "github.com/astaxie/beego/orm"
  11. )
  12. //日志操作管理
  13. type LogService struct {
  14. BaseService
  15. }
  16. //保存日志
  17. func (c *LogService) SaveLog(logdesc string) {
  18. logobj := models.Log_operate{}
  19. logobj.Appid, _ = strconv.Atoi(RtelecManageApp().RegAppID)
  20. logobj.Context = logdesc
  21. logobj.Usrname = c.UserInfo.Usrname
  22. logobj.CreateAt = tools.NowTime()
  23. db := orm.NewOrm()
  24. db.Using("iss")
  25. _, err := db.Insert(&logobj)
  26. if err != nil {
  27. logger.Logger.Error(err)
  28. logger.Logger.Println(fmt.Sprintf("%+v", logobj))
  29. }
  30. }
  31. //查询日志记录信息
  32. func (c *LogService) GetLog(startdate, enddate, username, content string, pageIndex, pageSize int) (interface{}, error) {
  33. db := orm.NewOrm()
  34. db.Using("iss")
  35. sqlParameters := []interface{}{}
  36. sqlCommandText := "select * from log_operate "
  37. totalSql := "select count(1) recordcount from log_operate "
  38. var sqlCondition []string
  39. if content != "" {
  40. sqlCondition = append(sqlCondition, "context like ?")
  41. sqlParameters = append(sqlParameters, "%"+content+"%")
  42. }
  43. if username != "" {
  44. sqlCondition = append(sqlCondition, "usrname like ?")
  45. sqlParameters = append(sqlParameters, "%"+username+"%")
  46. }
  47. if startdate != "" && enddate != "" {
  48. sqlCondition = append(sqlCondition, "create_at between ? and ?")
  49. sqlParameters = append(sqlParameters, startdate)
  50. sqlParameters = append(sqlParameters, enddate)
  51. } else if startdate != "" {
  52. sqlCondition = append(sqlCondition, "create_at>=?")
  53. sqlParameters = append(sqlParameters, startdate)
  54. } else if enddate != "" {
  55. sqlCondition = append(sqlCondition, "create_at<=?")
  56. sqlParameters = append(sqlParameters, enddate)
  57. }
  58. sqlCondition = append(sqlCondition, "appid=?")
  59. sqlParameters = append(sqlParameters, RtelecManageApp().RegAppID)
  60. if len(sqlCondition) > 0 {
  61. sqlCommandText += " where " + strings.Join(sqlCondition, " and ")
  62. totalSql += " where " + strings.Join(sqlCondition, " and ")
  63. }
  64. sqlCommandText += fmt.Sprintf(" order by id desc limit %d,%d", (pageIndex-1)*pageSize, pageSize)
  65. list := []orm.Params{}
  66. _, err := db.Raw(sqlCommandText, sqlParameters).Values(&list)
  67. var total = 0
  68. if err == nil {
  69. totalrowset := []orm.Params{}
  70. _, err = db.Raw(totalSql, sqlParameters).Values(&totalrowset)
  71. if err != nil {
  72. logger.Logger.Error(err)
  73. logger.Logger.Println(fmt.Sprintf("Error SQL:%s 参数:%+v", totalSql, sqlParameters))
  74. } else if len(totalrowset) > 0 {
  75. total, _ = strconv.Atoi(tools.IsEmpty(totalrowset[0]["recordcount"]))
  76. }
  77. } else {
  78. logger.Logger.Error(err)
  79. logger.Logger.Println(fmt.Sprintf("Error SQL:%s 参数:%+v", sqlCommandText, sqlParameters))
  80. }
  81. if len(list) == 0 {
  82. return map[string]interface{}{"list": []interface{}{}, "total": total}, err
  83. } else {
  84. return map[string]interface{}{"list": list, "total": total}, err
  85. }
  86. }
  87. //删除日志
  88. func (c *LogService) Delete(id string) error {
  89. if id == "" {
  90. return errors.New("删除日志时ID不允许为空")
  91. }
  92. db := orm.NewOrm()
  93. db.Using("iss")
  94. idint, _ := strconv.ParseInt(id, 10, 64)
  95. logObject := models.Log_operate{Id: idint}
  96. _, err := db.Delete(&logObject)
  97. return err
  98. }