feedback_service.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package service
  2. import (
  3. qu "qfw/util"
  4. "strings"
  5. . "util"
  6. mgoutil "qfw/mongodb"
  7. "github.com/go-xweb/xweb"
  8. "gopkg.in/mgo.v2/bson"
  9. )
  10. type Feedback struct {
  11. *xweb.Action
  12. feedbackList xweb.Mapper `xweb:"/service/feedback/list"` //反馈列表
  13. feedbackDetail xweb.Mapper `xweb:"/service/feedback/detail"` //反馈信息详情
  14. }
  15. //反馈列表
  16. func (f *Feedback) FeedbackList() {
  17. defer qu.Catch()
  18. if f.Method() == "POST" {
  19. start, _ := f.GetInteger("start")
  20. limit, _ := f.GetInteger("length")
  21. draw, _ := f.GetInteger("draw")
  22. searchStr := f.GetString("search[value]")
  23. search := strings.TrimSpace(searchStr)
  24. //qu.Debug(start, limit, draw, search)
  25. query := bson.M{}
  26. if search != "" {
  27. query["$or"] = []interface{}{
  28. bson.M{"s_customer": bson.M{"$regex": search}},
  29. bson.M{"s_tagname": bson.M{"$regex": search}},
  30. }
  31. }
  32. data, _ := Mgo.Find("feedback", query, `{"_id":-1}`, nil, false, start, limit)
  33. count := Mgo.Count("feedback", query)
  34. f.ServeJson(map[string]interface{}{
  35. "draw": draw,
  36. "data": data,
  37. "recordsFiltered": count,
  38. "recordsTotal": count,
  39. })
  40. } else {
  41. f.Render("private/feedback_list.html")
  42. }
  43. }
  44. //反馈信息详情
  45. func (f *Feedback) FeedbackDetail() {
  46. defer qu.Catch()
  47. if f.Method() == "POST" {
  48. start, _ := f.GetInteger("start")
  49. limit, _ := f.GetInteger("length")
  50. draw, _ := f.GetInteger("draw")
  51. searchStr := f.GetString("search[value]")
  52. search := strings.TrimSpace(searchStr)
  53. matchkey := f.GetString("matchkey")
  54. id := f.GetString("id")
  55. query := bson.M{
  56. "s_pid": id,
  57. }
  58. if matchkey != "-1" {
  59. query["s_matchkey"] = bson.M{
  60. "$regex": matchkey,
  61. }
  62. } else if search != "" {
  63. query["s_matchkey"] = bson.M{
  64. "$regex": search,
  65. }
  66. }
  67. data, _ := Mgo.Find("feedback_info", query, nil, nil, false, start, limit)
  68. count := Mgo.Count("feedback_info", query)
  69. f.ServeJson(map[string]interface{}{
  70. "draw": draw,
  71. "data": data,
  72. "recordsFiltered": count,
  73. "recordsTotal": count,
  74. })
  75. } else {
  76. id := f.GetString("_id")
  77. query := bson.M{
  78. "_id": mgoutil.StringTOBsonId(id),
  79. }
  80. data, _ := Mgo.FindOne("feedback", query)
  81. f.T["id"] = id
  82. f.T["data"] = data
  83. f.Render("private/feedback_detail.html", &f.T)
  84. }
  85. }