package com.jilongda.manage.authority.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.jilongda.manage.authority.dto.SecResDTO;
import com.jilongda.common.basic.ApiResult;
import com.jilongda.manage.authority.dto.SysSourcesListDTO;
import com.jilongda.manage.authority.model.SecResources;
import com.jilongda.manage.authority.service.SecResourcesService;
import com.jilongda.manage.authority.vo.SecResourceVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
*
* 资源表 前端控制器
*
*
* @author xiaochen
* @since 2022-06-08
*/
@Api(tags = "资源菜单")
@RestController
@RequestMapping("/sec-resources/")
public class SecResourcesController {
private final SecResourcesService secResourcesService;
@Autowired
public SecResourcesController(SecResourcesService secResourcesService) {
this.secResourcesService = secResourcesService;
}
@Transactional(rollbackFor = Exception.class)
@ApiOperation(value = "批量导入资源菜单(对象)", notes = "批量导入资源菜单(对象)")
@PostMapping("import")
public ApiResult importAllSources1(@RequestBody SysSourcesListDTO dto) {
return secResourcesService.importAllSources(dto);
}
@ApiOperation(value = "获取所有资源(菜单及功能)", notes = "获取所有资源(菜单及功能)")
@GetMapping(value = "dist")
public ApiResult> listAll() {
List sysResourceVos = secResourcesService.selectResources();
return ApiResult.success(sysResourceVos);
}
@ApiOperation(value = "获取菜单集合(不包含结构)", notes = "获取菜单集合(不包含结构)")
@GetMapping(value = "list")
public ApiResult> menus() {
List sysResources = secResourcesService.list(Wrappers.lambdaQuery(SecResources.class));
return ApiResult.success(sysResources);
}
@ApiOperation(value = "新增或修改资源", notes = "新增或修改资源")
@PostMapping(value = "addOrUpdate")
public ApiResult addOrUpdate(@Validated @RequestBody SecResDTO dto) {
SecResources secResources = secResourcesService.getOne(Wrappers.lambdaQuery(SecResources.class).eq(SecResources::getTitle, dto.getTitle()));
if (Objects.nonNull(dto.getId())) {
if (Objects.isNull(secResources) || (Objects.nonNull(secResources) && dto.getId().equals(secResources.getId()))) {
secResourcesService.updateById(dto);
} else {
return ApiResult.failed("资源名已存在");
}
} else {
// 判断商品名称是否存在
if (Objects.nonNull(secResources)) {
return ApiResult.failed("资源名已存在");
}
secResourcesService.save(dto);
}
return ApiResult.success();
}
@ApiOperation(value = "删除资源", notes = "删除资源")
@GetMapping(value = "delete/{id}")
public ApiResult delete(@PathVariable Long id) {
secResourcesService.removeById(id);
return ApiResult.success();
}
}