address_api.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package client
  2. import (
  3. "ulink-admin/frame"
  4. "ulink-admin/modules/system/models/model"
  5. "ulink-admin/modules/system/models/req"
  6. "ulink-admin/modules/system/models/response"
  7. "ulink-admin/modules/system/service"
  8. "ulink-admin/pkg/base"
  9. "ulink-admin/pkg/excels"
  10. "ulink-admin/pkg/file"
  11. "ulink-admin/pkg/page"
  12. "ulink-admin/utils"
  13. )
  14. type AddressApi struct {
  15. AddressService *service.AddressService `inject:""`
  16. }
  17. // List 查询地址管理分页数据
  18. // @Summary 分页查询地址管理数据接口
  19. // @Description 分页查询地址管理数据接口
  20. // @Tags 地址管理相关接口
  21. // @Accept application/json
  22. // @Produce application/json
  23. // @Param Authorization header string false "Bearer 令牌"
  24. // @Param object query req.AddressQuery false "查询参数"
  25. // @Security ApiKeyAuth
  26. // @Success 200 {object} resp.Response{data=page.Page{list=model.Address},msg=string} "分页获取地址管理列表,返回包括列表,总数,页码,每页数量"
  27. // @Router /address/page [get]
  28. func (this AddressApi) Page(c *frame.Context) {
  29. query := &req.AddressQuery{}
  30. c.ValidteError(c.ShouldBind(query), query)
  31. list := make([]response.AddressResponse, 0)
  32. i := this.AddressService.Page(query, &list)
  33. c.Ok(page.Page{List: list, Total: i, Size: query.PageSize})
  34. }
  35. // List 查询地址管理所有数据
  36. // @Summary 查询全部数据地址管理数据接口
  37. // @Description 查询全部数据地址管理数据接口
  38. // @Tags 地址管理相关接口
  39. // @Accept application/json
  40. // @Produce application/json
  41. // @Param Authorization header string false "Bearer 令牌"
  42. // @Param object query req.AddressQuery false "查询参数"
  43. // @Security ApiKeyAuth
  44. // @Success 200 {object} resp.Response{data=model.Address,msg=string} "分页获取地址管理列表,返回包括列表,总数,页码,每页数量"
  45. // @Router /address/list [get]
  46. func (this AddressApi) List(c *frame.Context) {
  47. query := &req.AddressQuery{}
  48. list := make([]response.AddressResponse, 0)
  49. c.ValidteError(c.ShouldBind(query), query)
  50. this.AddressService.List(query, &list)
  51. c.Ok(list)
  52. }
  53. // Get 根据地址管理Id获取详细信息
  54. // @Summary 地址管理详情查询接口
  55. // @Description 地址管理详情查询接口
  56. // @Tags 地址管理相关接口
  57. // @Accept application/json
  58. // @Produce application/json
  59. // @Param Authorization header string false "Bearer 令牌"
  60. // @Param id query int true "id" id
  61. // @Security ApiKeyAuth
  62. // @Success 200 {object} resp.Response{data=model.Address,msg=string} "返回地址管理详情查询"
  63. // @Router /address [get]
  64. func (this AddressApi) Get(c *frame.Context) {
  65. var req struct {
  66. Id int64 `form:"id" binding:"required" msg:"id不存在" ` //id
  67. }
  68. c.ValidteError(c.ShouldBind(&req), &req)
  69. c.Ok(this.AddressService.Get(req.Id))
  70. }
  71. // Add 新增地址管理
  72. // @Summary 新增地址管理接口
  73. // @Description 新增地址管理接口
  74. // @Tags 地址管理相关接口
  75. // @Accept application/json
  76. // @Produce application/json
  77. // @Param Authorization header string false "Bearer 令牌"
  78. // @Param data body model.Address true "地址管理实体对象"
  79. // @Success 200 {object} resp.Response{msg=string} "操作状态"
  80. // @Router /address/add [post]
  81. func (this AddressApi) Add(c *frame.Context) {
  82. var addressReq struct {
  83. Id int64 `json:"id"` //主键Id
  84. MemberId int64 `json:"memberId"` //用户id
  85. Name string `json:"name" binding:"required"` //收货人姓名
  86. Phone string `json:"phone" ` //收货人电话
  87. Province string `json:"province" ` //收货人所在省
  88. City string `json:"city" ` //收货人所在市
  89. AreaCode string `json:"areaCode" ` //城市编码
  90. District string `json:"district" ` //收货人所在区
  91. Detail string `json:"detail" ` //收货人详细地址
  92. /* PostCode string `json:"postCode" binding:"required"` //邮编*/
  93. Longitude string `json:"longitude" ` //经度
  94. Latitude string `json:"latitude" ` //纬度
  95. IsDefault int `json:"isDefault" binding:"required,oneof=1 2 "` //是否默认(1是 2否)
  96. }
  97. address := &model.Address{}
  98. c.ValidteError(c.ShouldBind(&addressReq), addressReq)
  99. utils.CopyFields(address, addressReq)
  100. address.MemberId = base.GetCurUser().Id
  101. if address.Id > 0 {
  102. this.AddressService.Edit(address, append(c.Cols(), "member_id"))
  103. } else {
  104. this.AddressService.Insert(address)
  105. }
  106. }
  107. // Add 新增地址管理
  108. // @Summary 新增地址管理接口
  109. // @Description 新增地址管理接口
  110. // @Tags 地址管理相关接口
  111. // @Accept application/json
  112. // @Produce application/json
  113. // @Param Authorization header string false "Bearer 令牌"
  114. // @Param data body model.Address true "地址管理实体对象"
  115. // @Success 200 {object} resp.Response{msg=string} "操作状态"
  116. // @Router /address/default [put]
  117. func (this AddressApi) SetDefault(c *frame.Context) {
  118. var addressReq struct {
  119. Id int64 `json:"id" binding:"required"` //主键Id
  120. }
  121. address := &model.Address{}
  122. c.ValidteError(c.ShouldBind(&addressReq), addressReq)
  123. utils.CopyFields(address, addressReq)
  124. address.IsDefault = 1
  125. address.MemberId = base.GetCurUser().Id
  126. this.AddressService.Edit(address, append(c.Cols(), "member_id", "is_default"))
  127. }
  128. // Edit 修改地址管理数据接口
  129. // @Summary 修改地址管理接口
  130. // @Description 新增地址管理接口
  131. // @Tags 地址管理相关接口
  132. // @Accept application/json
  133. // @Produce application/json
  134. // @Param Authorization header string false "Bearer 令牌"
  135. // @Param data body model.Address true "地址管理实体对象"
  136. // @Success 200 {object} resp.Response{msg=string} "操作状态"
  137. // @Router /address/edit [put]
  138. func (this AddressApi) Edit(c *frame.Context) {
  139. params, address := &req.AddressEdit{}, &model.Address{}
  140. c.ValidteError(c.ShouldBind(params), params)
  141. utils.CopyFields(address, params)
  142. this.AddressService.Edit(address, c.Cols())
  143. }
  144. // Delete 删除地址管理数据
  145. // @Summary 删除地址管理接口
  146. // @Description 删除地址管理接口
  147. // @Tags 地址管理相关接口
  148. // @Accept application/json
  149. // @Produce application/json
  150. // @Param Authorization header string false "Bearer 令牌"
  151. // @Param id path int true "id" id
  152. // @Success 200 {object} resp.Response{msg=string} "操作状态"
  153. // @Router /address [delete]
  154. func (a AddressApi) Delete(c *frame.Context) {
  155. var req struct {
  156. Ids []int64 `form:"ids" binding:"required" msg:"ids不存在"` //ids
  157. }
  158. c.ValidteError(c.ShouldBind(&req), &req)
  159. a.AddressService.Delete(req.Ids)
  160. }
  161. // Export 导出excel
  162. func (this AddressApi) Export(c *frame.Context) {
  163. query := &req.AddressQuery{}
  164. list := make([]model.Address, 0)
  165. c.ValidteError(c.ShouldBind(query), query)
  166. this.AddressService.List(query, list)
  167. excelList := make([]interface{}, 0)
  168. for _, address := range list {
  169. excelList = append(excelList, address)
  170. }
  171. _, files := excels.ExportExcel(excelList, "地址管理数据表")
  172. file.DownloadExcel(c, files)
  173. }