electripper-v2/ruoyi-web/src/main/java/com/ruoyi/web/bst/AreaController.java
2025-03-25 18:03:57 +08:00

148 lines
4.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.ruoyi.web.bst;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
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.bst.area.domain.Area;
import com.ruoyi.bst.area.domain.AreaQuery;
import com.ruoyi.bst.area.domain.AreaVO;
import com.ruoyi.bst.area.service.AreaAssembler;
import com.ruoyi.bst.area.service.AreaConverter;
import com.ruoyi.bst.area.service.AreaService;
import com.ruoyi.bst.area.service.AreaValidator;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.ValidGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.user.service.UserValidator;
/**
* 运营区Controller
*
* @author ruoyi
* @date 2025-03-14
*/
@RestController
@RequestMapping("/bst/area")
public class AreaController extends BaseController
{
@Autowired
private AreaService areaService;
@Autowired
private AreaAssembler areaAssembler;
@Autowired
private AreaValidator areaValidator;
@Autowired
private AreaConverter areaConverter;
@Autowired
private UserValidator userValidator;
/**
* 查询运营区列表
*/
@PreAuthorize("@ss.hasPermi('bst:area:list')")
@GetMapping("/list")
public TableDataInfo list(AreaQuery query)
{
startPage();
startOrderBy();
query.setScope(true);
List<AreaVO> list = areaService.selectAreaList(query);
areaAssembler.assembleSubAreaCount(list);
return getDataTable(list);
}
/**
* 导出运营区列表
*/
@PreAuthorize("@ss.hasPermi('bst:area:export')")
@Log(title = "运营区", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, AreaQuery query)
{
query.setScope(true);
List<AreaVO> list = areaService.selectAreaList(query);
ExcelUtil<AreaVO> util = new ExcelUtil<AreaVO>(AreaVO.class);
util.exportExcel(response, list, "运营区数据");
}
/**
* 获取运营区详细信息
*/
@PreAuthorize("@ss.hasPermi('bst:area:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(areaService.selectAreaById(id, true));
}
/**
* 新增运营区
*/
@PreAuthorize("@ss.hasPermi('bst:area:add')")
@Log(title = "运营区", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody @Validated(ValidGroup.Create.class) Area area){
// 若不能操作他人,则设置为当前用户
if (!userValidator.canView(area.getUserId())) {
area.setUserId(getUserId());
}
area.setCreateId(getUserId());
area = areaConverter.toPoByCreate(area);
return toAjax(areaService.insertArea(area));
}
/**
* 修改运营区
*/
@PreAuthorize("@ss.hasPermi('bst:area:edit')")
@Log(title = "运营区", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody @Validated(ValidGroup.Update.class) Area area)
{
if (!areaValidator.canEdit(area.getId())) {
return AjaxResult.error("您没有权限修改ID为" + area.getId() + "的运营区");
}
// 若不能操作他人则不修改用户ID
if (!userValidator.canView(area.getUserId())) {
area.setUserId(null);
}
area = areaConverter.toPoByUpdate(area);
return toAjax(areaService.updateArea(area));
}
/**
* 删除运营区
*/
@PreAuthorize("@ss.hasPermi('bst:area:remove')")
@Log(title = "运营区", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable List<Long> ids)
{
if (!areaValidator.canDeleteAll(ids)) {
return AjaxResult.error("您没有权限删除ID为" + ids + "的运营区");
}
return toAjax(areaService.logicDel(ids));
}
}