package com.doumee.api.web; import com.doumee.core.annotation.LoginRequired; import com.doumee.core.model.ApiResponse; import com.doumee.dao.business.model.Addr; import com.doumee.service.business.AddrService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 地址簿(小程序端) * @author rk * @date 2026/04/15 */ @Api(tags = "地址簿") @RestController @RequestMapping("/web/addr") public class AddrApi extends ApiController { @Autowired private AddrService addrService; @LoginRequired @ApiOperation(value = "查询我的地址列表", notes = "小程序端") @GetMapping("/list") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse> list() { return ApiResponse.success("查询成功", addrService.findListWithArea(getMemberId())); } @LoginRequired @ApiOperation(value = "根据ID查询地址", notes = "小程序端") @GetMapping("/{id}") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success("查询成功", addrService.findByIdWithArea(id)); } @LoginRequired @ApiOperation(value = "新增地址", notes = "小程序端") @PostMapping("/create") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse create(@RequestBody Addr addr) { addrService.createByMember(addr, getMemberId()); return ApiResponse.success("操作成功", addrService.findByIdWithArea(addr.getId())); } @LoginRequired @ApiOperation(value = "修改地址", notes = "小程序端") @PostMapping("/updateById") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse updateById(@RequestBody Addr addr) { addrService.updateByMember(addr, getMemberId()); return ApiResponse.success("操作成功", addrService.findByIdWithArea(addr.getId())); } @LoginRequired @ApiOperation(value = "删除地址", notes = "小程序端") @GetMapping("/delete/{id}") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse deleteById(@PathVariable Integer id) { addrService.deleteById(id); return ApiResponse.success("操作成功"); } @LoginRequired @ApiOperation(value = "设为默认地址", notes = "小程序端") @PostMapping("/setDefault/{id}") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse setDefault(@PathVariable Integer id) { Addr addr = new Addr(); addr.setId(id); addr.setIsDefault(1); addrService.updateByMember(addr, getMemberId()); return ApiResponse.success("操作成功"); } }