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);
|
}
|
|
}
|