api_bbs_list.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package route
  2. import (
  3. "database/sql"
  4. "encoding/json"
  5. "fmt"
  6. "log"
  7. "opennamu/route/tool"
  8. )
  9. func bbs_list(db *sql.DB, db_set map[string]string) map[string]string {
  10. rows, err := db.Query(tool.DB_change(db_set, "select set_data, set_id from bbs_set where set_name = 'bbs_name'"))
  11. if err != nil {
  12. log.Fatal(err)
  13. }
  14. defer rows.Close()
  15. data_list := map[string]string{}
  16. for rows.Next() {
  17. var name string
  18. var id string
  19. err := rows.Scan(&name, &id)
  20. if err != nil {
  21. log.Fatal(err)
  22. }
  23. data_list[name] = id
  24. }
  25. return data_list
  26. }
  27. func Api_bbs_list(call_arg []string) {
  28. db_set := map[string]string{}
  29. json.Unmarshal([]byte(call_arg[0]), &db_set)
  30. db := tool.DB_connect(db_set)
  31. if db == nil {
  32. return
  33. }
  34. defer db.Close()
  35. data_list := bbs_list(db, db_set)
  36. data_list_sub := map[string][]string{}
  37. for k, v := range data_list {
  38. stmt, err := db.Prepare(tool.DB_change(db_set, "select set_data from bbs_set where set_name = 'bbs_type' and set_id = ?"))
  39. if err != nil {
  40. log.Fatal(err)
  41. }
  42. defer stmt.Close()
  43. var bbs_type string
  44. err = stmt.QueryRow(v).Scan(&bbs_type)
  45. if err != nil {
  46. if err == sql.ErrNoRows {
  47. bbs_type = ""
  48. } else {
  49. log.Fatal(err)
  50. }
  51. }
  52. stmt, err = db.Prepare(tool.DB_change(db_set, "select set_data from bbs_data where set_id = ? and set_name = 'date' order by set_code + 0 desc limit 1"))
  53. if err != nil {
  54. log.Fatal(err)
  55. }
  56. defer stmt.Close()
  57. var bbs_date string
  58. err = stmt.QueryRow(v).Scan(&bbs_date)
  59. if err != nil {
  60. if err == sql.ErrNoRows {
  61. bbs_date = ""
  62. } else {
  63. log.Fatal(err)
  64. }
  65. }
  66. data_list_sub[k] = []string{v, bbs_type, bbs_date}
  67. }
  68. if len(data_list_sub) == 0 {
  69. fmt.Print("{}")
  70. } else {
  71. json_data, _ := json.Marshal(data_list_sub)
  72. fmt.Print(string(json_data))
  73. }
  74. }