| package cc.mrbird.febs.mall.controller; | 
|   | 
| import cc.mrbird.febs.common.entity.FebsResponse; | 
| import cc.mrbird.febs.mall.conversion.MallAddressInfoConversion; | 
| import cc.mrbird.febs.mall.dto.AddressInfoDto; | 
| import cc.mrbird.febs.mall.dto.ApiIdentifyAddressDto; | 
| import cc.mrbird.febs.mall.entity.MallAddressInfo; | 
| import cc.mrbird.febs.mall.service.IApiMallAddressInfoService; | 
| import cc.mrbird.febs.mall.vo.AddressInfoVo; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiOperation; | 
| import io.swagger.annotations.ApiResponse; | 
| import io.swagger.annotations.ApiResponses; | 
| import lombok.RequiredArgsConstructor; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.springframework.validation.annotation.Validated; | 
| import org.springframework.web.bind.annotation.*; | 
|   | 
| import javax.validation.Valid; | 
| import java.util.List; | 
|   | 
| /** | 
|  * @author wzy | 
|  * @date 2021-09-18 | 
|  **/ | 
| @Slf4j | 
| @Validated | 
| @RestController | 
| @RequiredArgsConstructor | 
| @RequestMapping(value = "/api/address") | 
| @Api(value = "ApiMallAddressInfoController", tags = "用户地址管理接口类") | 
| public class ApiMallAddressInfoController { | 
|   | 
|     private final IApiMallAddressInfoService mallAddressInfoService; | 
|   | 
|     @ApiOperation(value = "获取地址列表", notes = "获取地址列表") | 
|     @ApiResponses({ | 
|             @ApiResponse(code = 200, message = "success", response = AddressInfoVo.class) | 
|     }) | 
|     @GetMapping(value = "/findAddressList") | 
|     public FebsResponse findAddressList() { | 
|         return new FebsResponse().success().data(mallAddressInfoService.findAddressInfoList()); | 
|     } | 
|   | 
|     @ApiOperation(value = "获取地址信息", notes = "获取地址信息") | 
|     @ApiResponses({ | 
|             @ApiResponse(code = 200, message = "success", response = AddressInfoVo.class) | 
|     }) | 
|     @GetMapping(value = "/findAddressList/{id}") | 
|     public FebsResponse findAddressInfoById(@PathVariable("id") Long id) { | 
|         MallAddressInfo addressInfo = mallAddressInfoService.getById(id); | 
|         return new FebsResponse().success().data(MallAddressInfoConversion.INSTANCE.entityToVo(addressInfo)); | 
|     } | 
|   | 
|     @ApiOperation(value = "添加地址", notes = "添加地址") | 
|     @PostMapping(value = "/addAddress") | 
|     public FebsResponse addAddress(@RequestBody AddressInfoDto addressInfoDto) { | 
|         return mallAddressInfoService.addAddress(addressInfoDto); | 
|     } | 
|   | 
|     @ApiOperation(value = "修改地址", notes = "修改地址") | 
|     @PostMapping(value = "/modifyAddress") | 
|     public FebsResponse modifyAddress(@RequestBody AddressInfoDto addressInfoDto) { | 
|         mallAddressInfoService.modifyAddress(addressInfoDto); | 
|         return new FebsResponse().success().message("修改成功"); | 
|     } | 
|   | 
|     @ApiOperation(value = "删除地址", notes = "删除地址") | 
|     @PostMapping(value = "/delAddress/{id}") | 
|     public FebsResponse delAddress(@PathVariable("id") Long id) { | 
|         mallAddressInfoService.removeById(id); | 
|         return new FebsResponse().success().message("删除成功"); | 
|     } | 
|   | 
|     @ApiOperation(value = "设置地址为默认地址", notes = "设置地址为默认地址") | 
|     @PostMapping(value = "/setAddressDefault/{id}") | 
|     public FebsResponse setAddressDefault(@PathVariable("id") Long id) { | 
|         mallAddressInfoService.setDefaultAddress(id); | 
|         return new FebsResponse().success().message("设置成功"); | 
|     } | 
|   | 
|     @ApiOperation(value = "智能识别地址", notes = "智能识别地址") | 
|     @PostMapping(value = "/identifyAddress") | 
|     public FebsResponse identifyAddress(@RequestBody  @Valid ApiIdentifyAddressDto identifyAddressDto) { | 
|         return mallAddressInfoService.identifyAddress(identifyAddressDto); | 
|     } | 
|   | 
| } |