package com.ruoyi.user.controller;
|
|
import java.util.List;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
import com.ruoyi.common.core.utils.StringUtils;
|
import com.ruoyi.common.core.web.controller.BaseController;
|
import com.ruoyi.common.core.web.domain.AjaxResult;
|
import com.ruoyi.common.core.web.page.TableDataInfo;
|
import com.ruoyi.common.log.annotation.Log;
|
import com.ruoyi.common.log.enums.BusinessType;
|
import com.ruoyi.common.security.annotation.Logical;
|
import com.ruoyi.common.security.annotation.RequiresPermissions;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.user.domain.AccountCity;
|
import com.ruoyi.user.service.IAccountCityService;
|
|
/**
|
* 城市主数据 信息操作处理
|
*
|
* 网关前缀 /account 由 StripPrefix=1 剥掉,故此处映射为 /user/city,
|
* 外部实际路径是 /account/user/city/**。
|
*
|
* 城市是「会员列表筛选」「城市公司档案」与「服务商注册地区」共用的主数据,
|
* 三个模块都不是它的拥有者,因此这里只提供增删改查,不带任何一方的业务逻辑。
|
*
|
* @author ruoyi
|
*/
|
@RestController
|
@RequestMapping("/user/city")
|
public class AccountCityController extends BaseController
|
{
|
@Autowired
|
private IAccountCityService cityService;
|
|
/**
|
* 查询城市列表
|
*/
|
@RequiresPermissions("member:city:list")
|
@GetMapping("/list")
|
public TableDataInfo list(AccountCity city)
|
{
|
startPage();
|
List<AccountCity> list = cityService.selectCityList(city);
|
return getDataTable(list);
|
}
|
|
/**
|
* 查询启用中的城市(下拉数据源)
|
*
|
* 权限必须走 OR:本接口是四个模块共用的——会员列表的城市筛选、城市公司档案的列表筛选与
|
* 表单所属城市、服务商表单的注册地区。后几处的调用者只可能有各自的 member:* 权限,
|
* 钉死成 member:city:list 会让他们打开页面就 403。
|
* 不带 list 权限的纯按钮角色(如只有 member:user:edit)同样要能取到选项。
|
*/
|
@RequiresPermissions(value = { "member:city:list", "member:user:list", "member:company:list", "member:provider:list" }, logical = Logical.OR)
|
@GetMapping("/options")
|
public AjaxResult options()
|
{
|
return success(cityService.selectEnabledCityList());
|
}
|
|
/**
|
* 新增城市
|
*/
|
@RequiresPermissions("member:city:add")
|
@Log(title = "城市管理", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody AccountCity city)
|
{
|
city.setCreateBy(SecurityUtils.getUsername());
|
return toAjax(cityService.insertCity(city));
|
}
|
|
/**
|
* 修改城市
|
*/
|
@RequiresPermissions("member:city:edit")
|
@Log(title = "城市管理", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@RequestBody AccountCity city)
|
{
|
if (StringUtils.isNull(city.getId()))
|
{
|
return error("城市编号不能为空");
|
}
|
city.setUpdateBy(SecurityUtils.getUsername());
|
return toAjax(cityService.updateCity(city));
|
}
|
|
/**
|
* 修改城市状态(禁用/启用)
|
*/
|
@RequiresPermissions("member:city:edit")
|
@Log(title = "城市管理", businessType = BusinessType.UPDATE)
|
@PutMapping("/changeStatus")
|
public AjaxResult changeStatus(@RequestBody AccountCity city)
|
{
|
if (StringUtils.isNull(city.getId()))
|
{
|
return error("城市编号不能为空");
|
}
|
if (StringUtils.isEmpty(city.getStatus()))
|
{
|
return error("城市状态不能为空");
|
}
|
city.setUpdateBy(SecurityUtils.getUsername());
|
return toAjax(cityService.changeStatus(city));
|
}
|
|
/**
|
* 删除城市(逻辑删除;已被公司档案引用的城市会被服务层拦下)
|
*/
|
@RequiresPermissions("member:city:remove")
|
@Log(title = "城市管理", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable Long[] ids)
|
{
|
return toAjax(cityService.deleteCityByIds(ids));
|
}
|
}
|