mirror of https://gitee.com/stylefeng/roses
新增资源树拖拽排序
parent
8697d2d064
commit
00dd42bdc6
|
@ -0,0 +1,48 @@
|
|||
package cn.stylefeng.roses.kernel.system.api.pojo.resource;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 树排序请求封装
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/5/28 下午5:18
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class TreeSortRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 节点主键
|
||||
*/
|
||||
@ChineseDescription("节点主键")
|
||||
@NotNull(message = "节点主键不能为空", groups = {edit.class})
|
||||
private Long nodeId;
|
||||
|
||||
/**
|
||||
* 节点类型:1-叶子节点,2-数据节点
|
||||
*/
|
||||
@ChineseDescription("节点类型:1-叶子节点,2-数据节点")
|
||||
@NotNull(message = "节点类型不能为空", groups = {edit.class})
|
||||
private String nodeType;
|
||||
|
||||
/**
|
||||
* 节点父ID
|
||||
*/
|
||||
@ChineseDescription("节点父ID")
|
||||
@NotNull(message = "节点父ID不能为空", groups = {edit.class})
|
||||
private Long nodePid;
|
||||
|
||||
/**
|
||||
* 节点排序
|
||||
*/
|
||||
@ChineseDescription("节点排序")
|
||||
@NotNull(message = "节点排序不能为空", groups = {edit.class})
|
||||
private BigDecimal nodeSort;
|
||||
}
|
|
@ -7,6 +7,7 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.ApiGroupRequest;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.ApiGroupTreeWrapper;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.TreeSortRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.service.ApiGroupService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -63,6 +64,18 @@ public class ApiGroupController {
|
|||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑树节点排序
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/05/21 15:03
|
||||
*/
|
||||
@PostResource(name = "编辑树节点排序", path = "/apiGroup/editTreeSort")
|
||||
public ResponseData editTreeSort(@RequestBody @Validated(TreeSortRequest.edit.class) List<TreeSortRequest> treeSortRequestList) {
|
||||
apiGroupService.editTreeSort(treeSortRequestList);
|
||||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看详情
|
||||
*
|
||||
|
|
|
@ -14,7 +14,7 @@ public enum NodeTypeEnums {
|
|||
/**
|
||||
* 叶子节点
|
||||
*/
|
||||
LEAF_NODE("1", "根节点"),
|
||||
LEAF_NODE("1", "叶子节点"),
|
||||
|
||||
/**
|
||||
* 数据节点
|
||||
|
|
|
@ -3,6 +3,7 @@ package cn.stylefeng.roses.kernel.system.modular.resource.service;
|
|||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.ApiGroupRequest;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.ApiGroupTreeWrapper;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.TreeSortRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiGroup;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
|
@ -98,4 +99,12 @@ public interface ApiGroupService extends IService<ApiGroup> {
|
|||
* @date 2021/5/27 下午2:49
|
||||
**/
|
||||
List<ApiGroupTreeWrapper> groupTree(ApiGroupRequest apiGroupRequest);
|
||||
|
||||
/**
|
||||
* 编辑树节点排序
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/5/28 下午5:27
|
||||
**/
|
||||
void editTreeSort(List<TreeSortRequest> treeSortRequestList);
|
||||
}
|
|
@ -13,6 +13,7 @@ import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
|
|||
import cn.stylefeng.roses.kernel.system.api.exception.enums.resource.ApiGroupExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.ApiGroupRequest;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.ApiGroupTreeWrapper;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.resource.TreeSortRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiGroup;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.system.modular.resource.entity.ApiResourceField;
|
||||
|
@ -235,6 +236,49 @@ public class ApiGroupServiceImpl extends ServiceImpl<ApiGroupMapper, ApiGroup> i
|
|||
return this.createTree(apiGroupTreeWrapperList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void editTreeSort(List<TreeSortRequest> treeSortRequestList) {
|
||||
|
||||
// 所有叶子节点
|
||||
List<ApiGroup> apiGroupList = new ArrayList<>();
|
||||
|
||||
// 所有数据节点
|
||||
List<ApiResource> apiResourceList = new ArrayList<>();
|
||||
|
||||
// 处理数据
|
||||
for (TreeSortRequest treeSortRequest : treeSortRequestList) {
|
||||
if (NodeTypeEnums.LEAF_NODE.getType().equals(treeSortRequest.getNodeType())) {
|
||||
ApiGroup item = new ApiGroup();
|
||||
item.setGroupId(treeSortRequest.getNodeId());
|
||||
item.setGroupPid(treeSortRequest.getNodePid());
|
||||
item.setGroupSort(treeSortRequest.getNodeSort());
|
||||
apiGroupList.add(item);
|
||||
} else {
|
||||
ApiResource item = new ApiResource();
|
||||
item.setApiResourceId(treeSortRequest.getNodeId());
|
||||
item.setGroupId(treeSortRequest.getNodePid());
|
||||
item.setResourceSort(treeSortRequest.getNodeSort());
|
||||
apiResourceList.add(item);
|
||||
}
|
||||
}
|
||||
|
||||
// 处理所有叶子节点
|
||||
if (ObjectUtil.isNotEmpty(apiGroupList)) {
|
||||
for (ApiGroup apiGroup : apiGroupList) {
|
||||
ApiGroup oldApiGroup = this.getById(apiGroup.getGroupId());
|
||||
this.setPids(apiGroup);
|
||||
this.updatePids(apiGroup, oldApiGroup);
|
||||
}
|
||||
this.updateBatchById(apiGroupList);
|
||||
}
|
||||
|
||||
// 处理所有数据节点
|
||||
if (ObjectUtil.isNotEmpty(apiResourceList)) {
|
||||
this.apiResourceService.updateBatchById(apiResourceList);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ApiGroup> findList(ApiGroupRequest apiGroupRequest) {
|
||||
LambdaQueryWrapper<ApiGroup> wrapper = this.createWrapper(apiGroupRequest);
|
||||
|
|
Loading…
Reference in New Issue