role.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. package front
  2. import (
  3. qu "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jybase/mongodb"
  5. "encoding/json"
  6. "go.mongodb.org/mongo-driver/bson"
  7. . "seplatform/util"
  8. )
  9. func (f *Front) RoleManager() {
  10. defer qu.Catch()
  11. if f.Method() == "POST" {
  12. data, _ := Mgo.Find("role", nil, nil, nil, false, -1, -1)
  13. f.ServeJson(map[string]interface{}{
  14. "data": data,
  15. })
  16. } else {
  17. f.Render("com/role.html")
  18. }
  19. }
  20. func (f *Front) RoleNew() {
  21. defer qu.Catch()
  22. if f.Method() == "POST" {
  23. name := f.GetString("role_name")
  24. level := f.GetString("role_level")
  25. _id := f.GetString("_id")
  26. if _id != "" {
  27. set := bson.M{
  28. "$set": bson.M{
  29. "name": name,
  30. "level": level,
  31. },
  32. }
  33. bol := Mgo.UpdateById("role", mongodb.StringTOBsonId(_id), set)
  34. if bol {
  35. f.ServeJson(map[string]interface{}{
  36. "rep": true,
  37. })
  38. }
  39. } else {
  40. _id := Mgo.Save("role", bson.M{"name": name, "level": level})
  41. if _id != "" {
  42. f.ServeJson(map[string]interface{}{
  43. "rep": true,
  44. })
  45. }
  46. }
  47. } else {
  48. f.Render("com/role.html")
  49. }
  50. }
  51. func (f *Front) RoleEdit(role string) {
  52. defer qu.Catch()
  53. if f.Method() == "POST" {
  54. maps := map[string]interface{}{
  55. "role." + role: true,
  56. }
  57. data, _ := Mgo.Find("menu_first", maps, nil, nil, false, -1, -1)
  58. f.ServeJson(map[string]interface{}{
  59. "data": data,
  60. })
  61. } else {
  62. f.T["role"] = role
  63. f.Render("com/role_edit.html", &f.T)
  64. }
  65. }
  66. func (f *Front) RoleFirst() {
  67. defer qu.Catch()
  68. data, _ := Mgo.Find("menu_first", `{"delete":false}`, nil, nil, false, -1, -1)
  69. f.ServeJson(map[string]interface{}{
  70. "data": data,
  71. })
  72. }
  73. func (f *Front) RoleSecond() {
  74. defer qu.Catch()
  75. pid := f.GetString("_pid")
  76. query := bson.M{
  77. "s_pid": pid,
  78. }
  79. data, _ := Mgo.Find("menu_second", query, nil, nil, false, -1, -1)
  80. f.ServeJson(map[string]interface{}{
  81. "data": data,
  82. })
  83. }
  84. func (f *Front) RoleSave() {
  85. defer qu.Catch()
  86. pid := f.GetString("_id")
  87. role := f.GetString("role")
  88. secondStr := f.GetString("secondStr") //右边 选中的
  89. secondStr1 := f.GetString("secondStr1") //左边 未选中的
  90. secondmenus := make([]string, 0)
  91. secondmenus1 := make([]string, 0)
  92. s_id := json.Unmarshal([]byte(secondStr), &secondmenus)
  93. s_id1 := json.Unmarshal([]byte(secondStr1), &secondmenus1)
  94. if s_id == nil && s_id1 == nil {
  95. for _, v := range secondmenus {
  96. maps := map[string]interface{}{
  97. "_id": mongodb.StringTOBsonId(v),
  98. }
  99. data := map[string]interface{}{
  100. "role." + role: true,
  101. }
  102. data1 := map[string]interface{}{
  103. "$set": data,
  104. }
  105. Mgo.Update("menu_second", maps, data1, true, false)
  106. }
  107. for _, v := range secondmenus1 {
  108. maps := map[string]interface{}{
  109. "_id": mongodb.StringTOBsonId(v),
  110. }
  111. data := map[string]interface{}{
  112. "role." + role: false,
  113. }
  114. data1 := map[string]interface{}{
  115. "$set": data,
  116. }
  117. Mgo.Update("menu_second", maps, data1, true, false)
  118. }
  119. }
  120. b := false
  121. if (len(secondmenus) == 0 && len(secondmenus1) == 0) || (len(secondmenus) > 0) {
  122. maps := map[string]interface{}{
  123. "_id": mongodb.StringTOBsonId(pid),
  124. }
  125. data := map[string]interface{}{
  126. "role." + role: true,
  127. }
  128. data1 := map[string]interface{}{
  129. "$set": data,
  130. }
  131. b = Mgo.Update("menu_first", maps, data1, true, false)
  132. }
  133. if len(secondmenus) == 0 && len(secondmenus1) > 0 {
  134. maps := map[string]interface{}{
  135. "_id": mongodb.StringTOBsonId(pid),
  136. }
  137. data := map[string]interface{}{
  138. "role." + role: false,
  139. }
  140. data1 := map[string]interface{}{
  141. "$set": data,
  142. }
  143. b = Mgo.Update("menu_first", maps, data1, true, false)
  144. }
  145. f.ServeJson(map[string]interface{}{
  146. "rep": b,
  147. })
  148. }
  149. func (f *Front) RoleDel() {
  150. defer qu.Catch()
  151. _id := f.GetString("_id")
  152. role := f.GetString("role")
  153. maps := map[string]interface{}{
  154. "_id": mongodb.StringTOBsonId(_id),
  155. }
  156. data := map[string]interface{}{
  157. "role." + role: false,
  158. }
  159. data1 := map[string]interface{}{
  160. "$set": data,
  161. }
  162. b := Mgo.Update("menu_first", maps, data1, true, false)
  163. maps = map[string]interface{}{
  164. "s_pid": _id,
  165. }
  166. count, _ := Mgo.Find("menu_second", maps, nil, nil, false, -1, -1)
  167. if len(*count) != 0 {
  168. for _, c := range *count {
  169. maps = map[string]interface{}{
  170. "_id": c["_id"],
  171. }
  172. Mgo.Update("menu_second", maps, data1, true, false)
  173. }
  174. }
  175. f.ServeJson(map[string]interface{}{
  176. "rep": b,
  177. })
  178. }
  179. func (f *Front) RoleSecondEdit() {
  180. defer qu.Catch()
  181. menuid := f.GetString("_id")
  182. mark := f.GetString("mark")
  183. role := f.GetString("role")
  184. if mark == "" {
  185. maps := map[string]interface{}{
  186. "s_pid": menuid,
  187. }
  188. datas, _ := Mgo.Find("menu_second", maps, nil, nil, false, -1, -1)
  189. f.ServeJson(map[string]interface{}{
  190. "data": datas,
  191. })
  192. } else {
  193. maps := map[string]interface{}{
  194. "s_pid": menuid,
  195. "role." + role: true,
  196. }
  197. data, _ := Mgo.Find("menu_second", maps, nil, nil, false, -1, -1)
  198. maps1 := map[string]interface{}{
  199. "s_pid": menuid,
  200. "role." + role: false,
  201. }
  202. name, _ := Mgo.FindById("menu_first", menuid, `{s_name:1}`)
  203. s_name := (*name)["s_name"]
  204. data1, _ := Mgo.Find("menu_second", maps1, nil, nil, false, -1, -1)
  205. f.ServeJson(map[string]interface{}{
  206. "name": s_name,
  207. "data": data,
  208. "data1": data1,
  209. })
  210. }
  211. }