package client import ( "ulink-admin/frame" "ulink-admin/modules/system/models/model" "ulink-admin/modules/system/models/req" "ulink-admin/modules/system/models/response" "ulink-admin/modules/system/service" "ulink-admin/pkg/base" "ulink-admin/pkg/excels" "ulink-admin/pkg/file" "ulink-admin/pkg/page" "ulink-admin/utils" ) type AddressApi struct { AddressService *service.AddressService `inject:""` } // List 查询地址管理分页数据 // @Summary 分页查询地址管理数据接口 // @Description 分页查询地址管理数据接口 // @Tags 地址管理相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param object query req.AddressQuery false "查询参数" // @Security ApiKeyAuth // @Success 200 {object} resp.Response{data=page.Page{list=model.Address},msg=string} "分页获取地址管理列表,返回包括列表,总数,页码,每页数量" // @Router /address/page [get] func (this AddressApi) Page(c *frame.Context) { query := &req.AddressQuery{} c.ValidteError(c.ShouldBind(query), query) list := make([]response.AddressResponse, 0) i := this.AddressService.Page(query, &list) c.Ok(page.Page{List: list, Total: i, Size: query.PageSize}) } // List 查询地址管理所有数据 // @Summary 查询全部数据地址管理数据接口 // @Description 查询全部数据地址管理数据接口 // @Tags 地址管理相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param object query req.AddressQuery false "查询参数" // @Security ApiKeyAuth // @Success 200 {object} resp.Response{data=model.Address,msg=string} "分页获取地址管理列表,返回包括列表,总数,页码,每页数量" // @Router /address/list [get] func (this AddressApi) List(c *frame.Context) { query := &req.AddressQuery{} list := make([]response.AddressResponse, 0) c.ValidteError(c.ShouldBind(query), query) this.AddressService.List(query, &list) c.Ok(list) } // Get 根据地址管理Id获取详细信息 // @Summary 地址管理详情查询接口 // @Description 地址管理详情查询接口 // @Tags 地址管理相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param id query int true "id" id // @Security ApiKeyAuth // @Success 200 {object} resp.Response{data=model.Address,msg=string} "返回地址管理详情查询" // @Router /address [get] func (this AddressApi) Get(c *frame.Context) { var req struct { Id int64 `form:"id" binding:"required" msg:"id不存在" ` //id } c.ValidteError(c.ShouldBind(&req), &req) c.Ok(this.AddressService.Get(req.Id)) } // Add 新增地址管理 // @Summary 新增地址管理接口 // @Description 新增地址管理接口 // @Tags 地址管理相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param data body model.Address true "地址管理实体对象" // @Success 200 {object} resp.Response{msg=string} "操作状态" // @Router /address/add [post] func (this AddressApi) Add(c *frame.Context) { var addressReq struct { Id int64 `json:"id"` //主键Id MemberId int64 `json:"memberId"` //用户id Name string `json:"name" binding:"required"` //收货人姓名 Phone string `json:"phone" ` //收货人电话 Province string `json:"province" ` //收货人所在省 City string `json:"city" ` //收货人所在市 AreaCode string `json:"areaCode" ` //城市编码 District string `json:"district" ` //收货人所在区 Detail string `json:"detail" ` //收货人详细地址 /* PostCode string `json:"postCode" binding:"required"` //邮编*/ Longitude string `json:"longitude" ` //经度 Latitude string `json:"latitude" ` //纬度 IsDefault int `json:"isDefault" binding:"required,oneof=1 2 "` //是否默认(1是 2否) } address := &model.Address{} c.ValidteError(c.ShouldBind(&addressReq), addressReq) utils.CopyFields(address, addressReq) address.MemberId = base.GetCurUser().Id if address.Id > 0 { this.AddressService.Edit(address, append(c.Cols(), "member_id")) } else { this.AddressService.Insert(address) } } // Add 新增地址管理 // @Summary 新增地址管理接口 // @Description 新增地址管理接口 // @Tags 地址管理相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param data body model.Address true "地址管理实体对象" // @Success 200 {object} resp.Response{msg=string} "操作状态" // @Router /address/default [put] func (this AddressApi) SetDefault(c *frame.Context) { var addressReq struct { Id int64 `json:"id" binding:"required"` //主键Id } address := &model.Address{} c.ValidteError(c.ShouldBind(&addressReq), addressReq) utils.CopyFields(address, addressReq) address.IsDefault = 1 address.MemberId = base.GetCurUser().Id this.AddressService.Edit(address, append(c.Cols(), "member_id", "is_default")) } // Edit 修改地址管理数据接口 // @Summary 修改地址管理接口 // @Description 新增地址管理接口 // @Tags 地址管理相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param data body model.Address true "地址管理实体对象" // @Success 200 {object} resp.Response{msg=string} "操作状态" // @Router /address/edit [put] func (this AddressApi) Edit(c *frame.Context) { params, address := &req.AddressEdit{}, &model.Address{} c.ValidteError(c.ShouldBind(params), params) utils.CopyFields(address, params) this.AddressService.Edit(address, c.Cols()) } // Delete 删除地址管理数据 // @Summary 删除地址管理接口 // @Description 删除地址管理接口 // @Tags 地址管理相关接口 // @Accept application/json // @Produce application/json // @Param Authorization header string false "Bearer 令牌" // @Param id path int true "id" id // @Success 200 {object} resp.Response{msg=string} "操作状态" // @Router /address [delete] func (a AddressApi) Delete(c *frame.Context) { var req struct { Ids []int64 `form:"ids" binding:"required" msg:"ids不存在"` //ids } c.ValidteError(c.ShouldBind(&req), &req) a.AddressService.Delete(req.Ids) } // Export 导出excel func (this AddressApi) Export(c *frame.Context) { query := &req.AddressQuery{} list := make([]model.Address, 0) c.ValidteError(c.ShouldBind(query), query) this.AddressService.List(query, list) excelList := make([]interface{}, 0) for _, address := range list { excelList = append(excelList, address) } _, files := excels.ExportExcel(excelList, "地址管理数据表") file.DownloadExcel(c, files) }