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; /** * @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); } @ApiOperation(value = "根据id获取下一级地址", notes = "根据id获取下一级地址") @PostMapping(value = "/getProvince/{id}") public FebsResponse getProvince(@PathVariable("id") Long id) { return mallAddressInfoService.getProvince(id); } }