资源管理

This commit is contained in:
root
2021-06-30 17:28:39 +08:00
parent bad0f16f90
commit b543a9502d
17 changed files with 454 additions and 3 deletions
@@ -0,0 +1,57 @@
package com.adc.da.slrs.sarResource.controller;
import com.adc.da.base.web.BaseController;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarResource.service.ITsResourceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zyl
* @since 2021-06-30
*/
@RestController
@Api(tags = "资源管理")
@RequestMapping("/sarResource/ts-resource")
public class TsResourceController extends BaseController<TsResource> {
@Autowired
private ITsResourceService tsResourceService;
@ApiOperation("查询所有资源")
@GetMapping
public ResponseMessage<List<TsResource>> getAll(){
List<TsResource> tsResources=tsResourceService.getAll();
return Result.success(tsResources);
}
@ApiOperation("添加资源")
@PostMapping("/add")
public ResponseMessage<Object> addResource(@RequestBody TsResource tsResource){
return tsResourceService.addResource(tsResource);
}
@ApiOperation("编辑资源")
@PutMapping
public ResponseMessage<Object> updateResource(@Validated(TsResource.update.class) @RequestBody TsResource tsResource){
return tsResourceService.updateResource(tsResource);
}
@ApiOperation("删除资源")
@DeleteMapping
public ResponseMessage<Object> delResource(@RequestParam Integer resourceId){
return tsResourceService.delResource(resourceId);
}
}
@@ -0,0 +1,16 @@
package com.adc.da.slrs.sarResource.dao;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zyl
* @since 2021-06-30
*/
public interface TsResourceDao extends BaseMapper<TsResource> {
}
@@ -0,0 +1,53 @@
package com.adc.da.slrs.sarResource.entity;
import com.adc.da.base.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author zyl
* @since 2021-06-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="TsResource对象", description="")
public class TsResource extends BaseEntity {
public interface update{
}
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "路径")
private String href;
@ApiModelProperty(value = "父节点ID")
private String parentId;
@ApiModelProperty(value = "资源名称")
private String name;
@TableId(type = IdType.UUID)
@NotNull(message = "id不能为空",groups = {update.class})
@ApiModelProperty(value = "ID")
private String id;
@TableField(exist = false)
@ApiModelProperty("子节点")
private List<TsResource> children;
}
@@ -0,0 +1,33 @@
package com.adc.da.slrs.sarResource.service;
import com.adc.da.http.ResponseMessage;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author zyl
* @since 2021-06-30
*/
public interface ITsResourceService extends IService<TsResource> {
List<TsResource> getAll();
ResponseMessage<Object> addResource(TsResource tsResource);
ResponseMessage<Object> updateResource(TsResource tsResource);
ResponseMessage<Object> delResource(Integer resourceId);
/**
* 通过Ids查询menu
* @param resourceIds :菜单Ids
* @return List<Menu>
*/
List<TsResource> getResourceByIds(List<String> resourceIds);
}
@@ -0,0 +1,127 @@
package com.adc.da.slrs.sarResource.service.impl;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarResource.dao.TsResourceDao;
import com.adc.da.slrs.sarResource.entity.TsResource;
import com.adc.da.slrs.sarResource.service.ITsResourceService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author zyl
* @since 2021-06-30
*/
@Service
public class TsResourceServiceImpl extends ServiceImpl<TsResourceDao, TsResource> implements ITsResourceService {
@Autowired
private TsResourceDao dao;
/**
* 查询所有菜单
*/
@Override
public List<TsResource> getAll() {
QueryWrapper<TsResource> TsResourceQueryWrapper=new QueryWrapper<>();
TsResourceQueryWrapper.isNull("PARENT_ID");
List<TsResource> TsResources=dao.selectList(TsResourceQueryWrapper);
for(TsResource TsResource:TsResources){
TsResource.setChildren(recursionGetChildren((TsResource)));
}
return TsResources;
}
/**
* 添加菜单
* @param TsResource:菜单信息
* @return ResponseMessage<Object>
*/
@Override
public ResponseMessage<Object> addResource(TsResource TsResource) {
if(TsResource.getParentId()!=null){
TsResource parent=dao.selectById(TsResource.getParentId());
if(parent==null){
return Result.error("该父菜单不存在");
}
}
dao.insert(TsResource);
return Result.success();
}
/**
* 编辑菜单
* @param TsResource:菜单信息
* @return ResponseMessage<Object>
*/
@Override
public ResponseMessage<Object> updateResource(TsResource TsResource) {
TsResource oldResource=dao.selectById(TsResource.getId());
if(oldResource==null){
return Result.error("该菜单不存在");
}
if(TsResource.getParentId()!=null){
TsResource parent=dao.selectById(TsResource.getParentId());
if(parent==null){
return Result.error("父节点不存在");
}
}
dao.updateById(TsResource);
return Result.success();
}
/**
* 删除菜单
* @param ResourceId:菜单ID
* @return ResponseMessage<Object>
*/
@Override
public ResponseMessage<Object> delResource(Integer ResourceId) {
QueryWrapper<TsResource> TsResourceQueryWrapper=new QueryWrapper<>();
TsResourceQueryWrapper.eq("parent_id",ResourceId);
List<TsResource> children=dao.selectList(TsResourceQueryWrapper);
if(children!=null&&children.size()>0){
return Result.error("该菜单有子节点,无法删除");
}
dao.deleteById(ResourceId);
return Result.success();
}
/**
* 通过Ids查询Resource
* @param resourceIds :菜单Ids
* @return List<Resource>
*/
@Override
public List<TsResource> getResourceByIds(List<String> resourceIds) {
if(resourceIds!=null&&resourceIds.size()>0){
QueryWrapper<TsResource> TsResourceQueryWrapper=new QueryWrapper<>();
TsResourceQueryWrapper.in("id",resourceIds);
return dao.selectList(TsResourceQueryWrapper);
}
return new ArrayList<>();
}
/**
* 递归调用获取子节点
* @param parent:父节点
* @return List<TsResource>
*/
private List<TsResource> recursionGetChildren(TsResource parent){
QueryWrapper<TsResource> TsResourceQueryWrapper=new QueryWrapper<>();
TsResourceQueryWrapper.eq("PARENT_ID",parent.getId());
List<TsResource> children=dao.selectList(TsResourceQueryWrapper);
for(TsResource TsResource:children){
TsResource.setChildren(recursionGetChildren((TsResource)));
}
return children;
}
}