api_w_page_view_post.go 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package route
  2. import (
  3. "opennamu/route/tool"
  4. )
  5. func Api_w_page_view_post(config tool.Config, doc_name string) map[string]any {
  6. db := tool.DB_connect()
  7. defer tool.DB_close(db)
  8. pv_continue := tool.Get_setting(db, "not_use_view_count", "")
  9. if len(pv_continue) == 0 || pv_continue[0][0] == "" {
  10. // 전체 조회수
  11. view_count := "0"
  12. tool.QueryRow_DB(
  13. db,
  14. "select set_data from data_set where doc_name = ? and set_name = 'view_count' and doc_rev = ''",
  15. []any{ &view_count },
  16. doc_name,
  17. )
  18. if view_count == "0" {
  19. tool.Exec_DB(
  20. db,
  21. "insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'view_count', '1')",
  22. doc_name,
  23. )
  24. } else {
  25. view_count_int := tool.Str_to_int(view_count)
  26. tool.Exec_DB(
  27. db,
  28. "update data_set set set_data = ? where doc_name = ? and set_name = 'view_count' and doc_rev = ''",
  29. view_count_int + 1, doc_name,
  30. )
  31. }
  32. // 월간 조회수
  33. now_date := tool.Get_month()
  34. view_count = "0"
  35. tool.QueryRow_DB(
  36. db,
  37. "select set_data from data_set where doc_name = ? and set_name = 'view_count' and doc_rev = ?",
  38. []any{ &view_count },
  39. doc_name, now_date,
  40. )
  41. if view_count == "0" {
  42. tool.Exec_DB(
  43. db,
  44. "insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, ?, 'view_count', '1')",
  45. doc_name, now_date,
  46. )
  47. } else {
  48. view_count_int := tool.Str_to_int(view_count)
  49. tool.Exec_DB(
  50. db,
  51. "update data_set set set_data = ? where doc_name = ? and set_name = 'view_count' and doc_rev = ?",
  52. view_count_int + 1, doc_name, now_date,
  53. )
  54. }
  55. // 하루 조회수
  56. now_date = tool.Get_date()
  57. view_count = "0"
  58. tool.QueryRow_DB(
  59. db,
  60. "select set_data from data_set where doc_name = ? and set_name = 'view_count' and doc_rev = ?",
  61. []any{ &view_count },
  62. doc_name, now_date,
  63. )
  64. if view_count == "0" {
  65. tool.Exec_DB(
  66. db,
  67. "insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, ?, 'view_count', '1')",
  68. doc_name, now_date,
  69. )
  70. } else {
  71. view_count_int := tool.Str_to_int(view_count)
  72. tool.Exec_DB(
  73. db,
  74. "update data_set set set_data = ? where doc_name = ? and set_name = 'view_count' and doc_rev = ?",
  75. view_count_int + 1, doc_name, now_date,
  76. )
  77. }
  78. }
  79. return_data := make(map[string]any)
  80. return_data["response"] = "ok"
  81. return return_data
  82. }