addressBook.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. package admin
  2. import (
  3. "Gwen/global"
  4. "Gwen/http/request/admin"
  5. "Gwen/http/response"
  6. "Gwen/service"
  7. _ "encoding/json"
  8. "github.com/gin-gonic/gin"
  9. "gorm.io/gorm"
  10. "strconv"
  11. )
  12. type AddressBook struct {
  13. }
  14. // Detail 地址簿
  15. // @Tags 地址簿
  16. // @Summary 地址簿详情
  17. // @Description 地址簿详情
  18. // @Accept json
  19. // @Produce json
  20. // @Param id path int true "ID"
  21. // @Success 200 {object} response.Response{data=model.AddressBook}
  22. // @Failure 500 {object} response.Response
  23. // @Router /admin/address_book/detail/{id} [get]
  24. // @Security token
  25. func (ct *AddressBook) Detail(c *gin.Context) {
  26. id := c.Param("id")
  27. iid, _ := strconv.Atoi(id)
  28. t := service.AllService.AddressBookService.InfoByRowId(uint(iid))
  29. u := service.AllService.UserService.CurUser(c)
  30. if !service.AllService.UserService.IsAdmin(u) && t.UserId != u.Id {
  31. response.Fail(c, 101, "无权限")
  32. return
  33. }
  34. if t.RowId > 0 {
  35. response.Success(c, t)
  36. return
  37. }
  38. response.Fail(c, 101, "信息不存在")
  39. return
  40. }
  41. // Create 创建地址簿
  42. // @Tags 地址簿
  43. // @Summary 创建地址簿
  44. // @Description 创建地址簿
  45. // @Accept json
  46. // @Produce json
  47. // @Param body body admin.AddressBookForm true "地址簿信息"
  48. // @Success 200 {object} response.Response{data=model.AddressBook}
  49. // @Failure 500 {object} response.Response
  50. // @Router /admin/address_book/create [post]
  51. // @Security token
  52. func (ct *AddressBook) Create(c *gin.Context) {
  53. f := &admin.AddressBookForm{}
  54. if err := c.ShouldBindJSON(f); err != nil {
  55. response.Fail(c, 101, "参数错误")
  56. return
  57. }
  58. errList := global.Validator.ValidStruct(f)
  59. if len(errList) > 0 {
  60. response.Fail(c, 101, errList[0])
  61. return
  62. }
  63. t := f.ToAddressBook()
  64. u := service.AllService.UserService.CurUser(c)
  65. if !service.AllService.UserService.IsAdmin(u) || t.UserId == 0 {
  66. t.UserId = u.Id
  67. }
  68. err := service.AllService.AddressBookService.Create(t)
  69. if err != nil {
  70. response.Fail(c, 101, "创建失败")
  71. return
  72. }
  73. response.Success(c, u)
  74. }
  75. // List 列表
  76. // @Tags 地址簿
  77. // @Summary 地址簿列表
  78. // @Description 地址簿列表
  79. // @Accept json
  80. // @Produce json
  81. // @Param page query int false "页码"
  82. // @Param page_size query int false "页大小"
  83. // @Param user_id query int false "用户id"
  84. // @Param is_my query int false "是否是我的"
  85. // @Success 200 {object} response.Response{data=model.AddressBookList}
  86. // @Failure 500 {object} response.Response
  87. // @Router /admin/address_book/list [get]
  88. // @Security token
  89. func (ct *AddressBook) List(c *gin.Context) {
  90. query := &admin.AddressBookQuery{}
  91. if err := c.ShouldBindQuery(query); err != nil {
  92. response.Fail(c, 101, "参数错误")
  93. return
  94. }
  95. u := service.AllService.UserService.CurUser(c)
  96. if !service.AllService.UserService.IsAdmin(u) || query.IsMy == 1 {
  97. query.UserId = int(u.Id)
  98. }
  99. res := service.AllService.AddressBookService.List(query.Page, query.PageSize, func(tx *gorm.DB) {
  100. if query.UserId > 0 {
  101. tx.Where("user_id = ?", query.UserId)
  102. }
  103. })
  104. response.Success(c, res)
  105. }
  106. // Update 编辑
  107. // @Tags 地址簿
  108. // @Summary 地址簿编辑
  109. // @Description 地址簿编辑
  110. // @Accept json
  111. // @Produce json
  112. // @Param body body admin.AddressBookForm true "地址簿信息"
  113. // @Success 200 {object} response.Response{data=model.AddressBook}
  114. // @Failure 500 {object} response.Response
  115. // @Router /admin/address_book/update [post]
  116. // @Security token
  117. func (ct *AddressBook) Update(c *gin.Context) {
  118. f := &admin.AddressBookForm{}
  119. if err := c.ShouldBindJSON(f); err != nil {
  120. response.Fail(c, 101, "参数错误")
  121. return
  122. }
  123. errList := global.Validator.ValidStruct(f)
  124. if len(errList) > 0 {
  125. response.Fail(c, 101, errList[0])
  126. return
  127. }
  128. if f.RowId == 0 {
  129. response.Fail(c, 101, "参数错误")
  130. return
  131. }
  132. t := f.ToAddressBook()
  133. u := service.AllService.UserService.CurUser(c)
  134. if !service.AllService.UserService.IsAdmin(u) && t.UserId != u.Id {
  135. response.Fail(c, 101, "无权限")
  136. return
  137. }
  138. err := service.AllService.AddressBookService.Update(t)
  139. if err != nil {
  140. response.Fail(c, 101, "更新失败")
  141. return
  142. }
  143. response.Success(c, nil)
  144. }
  145. // Delete 删除
  146. // @Tags 地址簿
  147. // @Summary 地址簿删除
  148. // @Description 地址簿删除
  149. // @Accept json
  150. // @Produce json
  151. // @Param body body admin.AddressBookForm true "地址簿信息"
  152. // @Success 200 {object} response.Response
  153. // @Failure 500 {object} response.Response
  154. // @Router /admin/address_book/delete [post]
  155. // @Security token
  156. func (ct *AddressBook) Delete(c *gin.Context) {
  157. f := &admin.AddressBookForm{}
  158. if err := c.ShouldBindJSON(f); err != nil {
  159. response.Fail(c, 101, "系统错误")
  160. return
  161. }
  162. id := f.RowId
  163. errList := global.Validator.ValidVar(id, "required,gt=0")
  164. if len(errList) > 0 {
  165. response.Fail(c, 101, errList[0])
  166. return
  167. }
  168. t := service.AllService.AddressBookService.InfoByRowId(f.RowId)
  169. u := service.AllService.UserService.CurUser(c)
  170. if !service.AllService.UserService.IsAdmin(u) && t.UserId != u.Id {
  171. response.Fail(c, 101, "无权限")
  172. return
  173. }
  174. if u.Id > 0 {
  175. err := service.AllService.AddressBookService.Delete(t)
  176. if err == nil {
  177. response.Success(c, nil)
  178. return
  179. }
  180. response.Fail(c, 101, err.Error())
  181. return
  182. }
  183. response.Fail(c, 101, "信息不存在")
  184. }