package com.xiaopeng.operation.controller;
|
|
import com.xiaopeng.api.model.operation.XpOpenCity;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.web.controller.BaseController;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.operation.dto.OpenCityAddDTO;
|
import com.xiaopeng.operation.dto.OpenCityEditDTO;
|
import com.xiaopeng.operation.query.OpenCityPageQuery;
|
import com.xiaopeng.operation.service.XpOpenCityService;
|
import com.xiaopeng.operation.vo.OpenCityListVO;
|
import com.xiaopeng.operation.vo.XpOpenCityVo;
|
import com.xiaopeng.unifiedverification.interceptor.XpClientCheck;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.Valid;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
@Slf4j
|
@RestController
|
@RequestMapping("")
|
@Api(tags = "开通城市模块")
|
public class XpOpenCityController extends BaseController {
|
|
private final XpOpenCityService xpOpenCityService;
|
|
public XpOpenCityController(XpOpenCityService xpOpenCityService) {
|
this.xpOpenCityService = xpOpenCityService;
|
}
|
|
|
|
/**
|
* 获取开通城市列表
|
* @return
|
*/
|
@ApiOperation(value = "获取开通城市列表",tags = {"小程序-开通城市列表"},response = XpOpenCityVo.class)
|
@GetMapping("/base/v1/mini-program/cities/list")
|
public R<XpOpenCityVo> citiesList() {
|
return R.ok(xpOpenCityService.citiesList());
|
}
|
|
/**
|
* 获取开通城市列表(管理后台使用)
|
* 用于路线规划配置的新增和编辑
|
*/
|
@ApiOperation(value = "获取开通城市列表(管理后台)", tags = {"管理后台-交易管理"}, response = OpenCityListVO.class)
|
@GetMapping("/api/v1/openCity/list")
|
@ApiImplicitParam(name = "type", value = "类型:1-路线规划配置使用 2-定价管理配置使用", required = true, dataTypeClass = Integer.class)
|
public R<List<OpenCityListVO>> getOpenCityList(@RequestParam("type") Integer type) {
|
List<OpenCityListVO> list = xpOpenCityService.getOpenCityListForAdmin(type);
|
return R.ok(list);
|
}
|
|
|
/**
|
* 获取开通城市名称列表
|
*/
|
@GetMapping("/base/v1/openCity/nameList")
|
public R<List<String>> getOpenCityNameList(String openCityIds) {
|
List<XpOpenCity> list = xpOpenCityService.listByIds(Arrays.asList(openCityIds.split(",")));
|
ArrayList<String> nameLists = new ArrayList<>(list.size());
|
for (XpOpenCity xpOpenCity : list) {
|
if(xpOpenCity.getDistrictCode()!=null){
|
nameLists.add(xpOpenCity.getCityName() + "-" +xpOpenCity.getDistrictName());
|
}else {
|
nameLists.add(xpOpenCity.getCityName());
|
}
|
}
|
return R.ok(nameLists);
|
}
|
|
/**
|
* 管理后台-开通城市管理-开通城市分页列表
|
* @param query
|
* @return
|
*/
|
@ApiOperation(value = "开通城市分页列表", tags = {"管理后台-开通城市管理"})
|
@PostMapping("/api/v1/openCity/pageList")
|
public R<PageInfo<XpOpenCity>> getPageList(@RequestBody OpenCityPageQuery query) {
|
return R.ok(xpOpenCityService.getPageList(query));
|
}
|
|
/**
|
* 管理后台-开通城市管理-新增开通城市
|
* @param dto
|
* @return
|
*/
|
@ApiOperation(value = "新增开通城市", tags = {"管理后台-开通城市管理"})
|
@PostMapping("/api/v1/openCity/add")
|
public R<?> add(@Valid @RequestBody OpenCityAddDTO dto) {
|
xpOpenCityService.add(dto);
|
return R.ok();
|
}
|
|
/**
|
* 管理后台-开通城市管理-编辑开通城市
|
* @param dto
|
* @return
|
*/
|
@ApiOperation(value = "编辑开通城市", tags = {"管理后台-开通城市管理"})
|
@PostMapping("/api/v1/openCity/edit")
|
public R<?> add(@Valid @RequestBody OpenCityEditDTO dto) {
|
xpOpenCityService.edit(dto);
|
return R.ok();
|
}
|
|
/**
|
* 管理后台-开通城市管理-删除开通城市
|
* @param id
|
* @return
|
*/
|
@ApiOperation(value = "删除开通城市", tags = {"管理后台-开通城市管理"})
|
@DeleteMapping("/api/v1/openCity/delete/{id}")
|
public R<?> deleteById(@ApiParam(name = "id", value = "开通城市ID") @PathVariable Long id) {
|
xpOpenCityService.deleteById(id);
|
return R.ok();
|
}
|
|
/**
|
* 管理后台-开通城市管理-启用/禁用
|
* @param id
|
* @param status
|
* @return
|
*/
|
@ApiOperation(value = "启用/禁用", tags = {"管理后台-开通城市管理"})
|
@PostMapping("/api/v1/openCity/upDown")
|
public R<?> upDown(Long id, Integer status) {
|
xpOpenCityService.upDown(id, status);
|
return R.ok();
|
}
|
|
|
|
/**
|
* 根据省市区获取开通城市数据
|
* @param provinceCode
|
* @param cityCode
|
* @param districtCode
|
* @return
|
*/
|
@PostMapping("/logan/inner/v1/openCity/getXpOpenCity")
|
public R<XpOpenCity> getXpOpenCity(@RequestParam("provinceCode") String provinceCode,
|
@RequestParam("cityCode") String cityCode,
|
@RequestParam("districtCode") String districtCode){
|
XpOpenCity xpOpenCity = xpOpenCityService.getXpOpenCity(provinceCode, cityCode, districtCode);
|
return R.ok(xpOpenCity);
|
}
|
}
|