api_set_audit.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package admin
  2. import (
  3. "net/http"
  4. "strconv"
  5. "github.com/bjdgyc/anylink/dbdata"
  6. "github.com/gocarina/gocsv"
  7. )
  8. func SetAuditList(w http.ResponseWriter, r *http.Request) {
  9. _ = r.ParseForm()
  10. pageS := r.FormValue("page")
  11. page, _ := strconv.Atoi(pageS)
  12. if page < 1 {
  13. page = 1
  14. }
  15. var datas []dbdata.AccessAudit
  16. session := dbdata.GetAuditSession(r.FormValue("search"))
  17. count, err := dbdata.FindAndCount(session, &datas, dbdata.PageSize, page)
  18. if err != nil && !dbdata.CheckErrNotFound(err) {
  19. RespError(w, RespInternalErr, err)
  20. return
  21. }
  22. data := map[string]interface{}{
  23. "count": count,
  24. "page_size": dbdata.PageSize,
  25. "datas": datas,
  26. }
  27. RespSucess(w, data)
  28. }
  29. func SetAuditExport(w http.ResponseWriter, r *http.Request) {
  30. var datas []dbdata.AccessAudit
  31. maxNum := 1000000
  32. session := dbdata.GetAuditSession(r.FormValue("search"))
  33. count, err := dbdata.FindAndCount(session, &datas, maxNum, 0)
  34. if err != nil && !dbdata.CheckErrNotFound(err) {
  35. RespError(w, RespInternalErr, err)
  36. return
  37. }
  38. if count == 0 {
  39. RespError(w, RespParamErr, "你导出的总数量为0条,请调整搜索条件,再导出")
  40. return
  41. }
  42. if count > int64(maxNum) {
  43. RespError(w, RespParamErr, "你导出的数据量超过100万条,请调整搜索条件,再导出")
  44. return
  45. }
  46. gocsv.Marshal(datas, w)
  47. }
  48. func UserActLogList(w http.ResponseWriter, r *http.Request) {
  49. _ = r.ParseForm()
  50. pageS := r.FormValue("page")
  51. page, _ := strconv.Atoi(pageS)
  52. if page < 1 {
  53. page = 1
  54. }
  55. var datas []dbdata.UserActLog
  56. session := dbdata.UserActLogIns.GetSession(r.Form)
  57. count, err := dbdata.FindAndCount(session, &datas, dbdata.PageSize, page)
  58. if err != nil && !dbdata.CheckErrNotFound(err) {
  59. RespError(w, RespInternalErr, err)
  60. return
  61. }
  62. data := map[string]interface{}{
  63. "count": count,
  64. "page_size": dbdata.PageSize,
  65. "datas": datas,
  66. "statusOps": dbdata.UserActLogIns.GetStatusOpsWithTag(),
  67. "osOps": dbdata.UserActLogIns.OsOps,
  68. "clientOps": dbdata.UserActLogIns.ClientOps,
  69. }
  70. RespSucess(w, data)
  71. }