package app import ( "net/http" "strconv" "bindbox-game/internal/code" "bindbox-game/internal/pkg/core" ) type okDeleteResponse struct { Ok bool `json:"ok"` } // DeleteUserAddress 删除用户地址 // @Summary 删除用户地址 // @Description 删除当前登录用户的指定收货地址 // @Tags APP端.用户 // @Accept json // @Produce json // @Param user_id path integer true "用户ID" // @Param address_id path integer true "地址ID" // @Security LoginVerifyToken // @Success 200 {object} okDeleteResponse // @Failure 400 {object} code.Failure "参数错误" // @Failure 401 {object} code.Failure "未授权" // @Failure 500 {object} code.Failure "服务器内部错误" // @Router /api/app/users/{user_id}/addresses/{address_id} [delete] func (h *handler) DeleteUserAddress() core.HandlerFunc { return func(ctx core.Context) { userID := int64(ctx.SessionUserInfo().Id) idStr := ctx.Param("address_id") addrID, err := strconv.ParseInt(idStr, 10, 64) if err != nil || addrID <= 0 { ctx.AbortWithError(core.Error(http.StatusBadRequest, code.ParamBindError, "地址ID错误")) return } if err := h.user.DeleteAddress(ctx.RequestContext(), userID, addrID); err != nil { ctx.AbortWithError(core.Error(http.StatusBadRequest, 10014, err.Error())) return } ctx.Payload(okDeleteResponse{Ok: true}) } }