This commit is contained in:
六如
2024-10-23 15:02:49 +08:00
parent 054c86a450
commit b01f16d6df
11 changed files with 184 additions and 87 deletions

View File

@@ -2,12 +2,10 @@ package com.gitee.sop.adminbackend.controller.isv;
import com.gitee.fastmybatis.core.PageInfo;
import com.gitee.fastmybatis.core.query.LambdaQuery;
import com.gitee.fastmybatis.core.query.param.PageParam;
import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupApiInfoParam;
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupPermissionParam;
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
import com.gitee.sop.adminbackend.dao.entity.PermGroupPermission;
import com.gitee.sop.adminbackend.service.isv.PermGroupPermissionService;
import com.gitee.sop.adminbackend.service.isv.dto.PermGroupPermissionDTO;
import com.gitee.sop.adminbackend.util.CopyUtil;
@@ -19,7 +17,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* @author 六如
@@ -37,10 +34,10 @@ public class PermGroupPermissionController {
* @param param param
* @return 返回分页结果
*/
@GetMapping("/list")
public Result<List<ApiInfo>> page(@Validated PermGroupApiInfoParam param) {
@GetMapping("/page")
public Result<PageInfo<ApiInfo>> page(Long groupId, @Validated PermGroupApiInfoParam param) {
LambdaQuery<ApiInfo> query = param.toLambdaQuery(ApiInfo.class);
List<ApiInfo> apiInfoList = permGroupPermissionService.listGroupApiId(param.getGroupId(), query);
PageInfo<ApiInfo> apiInfoList = permGroupPermissionService.pageGroupApiId(groupId, query);
return Result.ok(apiInfoList);
}
@@ -51,6 +48,11 @@ public class PermGroupPermissionController {
return Result.ok(cnt);
}
@PostMapping("delete")
public Result<Integer> delete(@RequestBody @Validated PermGroupPermissionParam param) {
int cnt = permGroupPermissionService.delete(param.getGroupId(), param.getApiIdList());
return Result.ok(cnt);
}
}

View File

@@ -2,19 +2,14 @@ package com.gitee.sop.adminbackend.controller.isv.req;
import com.gitee.fastmybatis.core.query.Operator;
import com.gitee.fastmybatis.core.query.annotation.Condition;
import com.gitee.fastmybatis.core.query.param.IParam;
import com.gitee.fastmybatis.core.query.param.PageParam;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author 六如
*/
@Data
public class PermGroupApiInfoParam implements IParam {
@NotNull
private Long groupId;
public class PermGroupApiInfoParam extends PageParam {
@Condition(operator = Operator.like)
private String apiName;
@@ -22,4 +17,6 @@ public class PermGroupApiInfoParam implements IParam {
@Condition
private Integer status;
@Condition
private Integer isPermission;
}

View File

@@ -19,4 +19,7 @@ public class ApiInfoPageParam extends PageParam {
@Condition
private Integer status;
@Condition
private Integer isPermission;
}

View File

@@ -8,16 +8,13 @@ import com.gitee.sop.adminbackend.dao.entity.PermGroupPermission;
import com.gitee.sop.adminbackend.dao.mapper.ApiInfoMapper;
import com.gitee.sop.adminbackend.dao.mapper.PermGroupPermissionMapper;
import com.gitee.sop.adminbackend.service.isv.dto.PermGroupPermissionDTO;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
/**
@@ -40,29 +37,34 @@ public class PermGroupPermissionService implements LambdaService<PermGroupPermis
});
}
public List<ApiInfo> listGroupApiId(Long groupId, LambdaQuery<ApiInfo> query) {
public PageInfo<ApiInfo> pageGroupApiId(Long groupId, LambdaQuery<ApiInfo> query) {
List<Long> apiIds = this.query()
.eq(PermGroupPermission::getGroupId, groupId)
.listUniqueValue(PermGroupPermission::getApiId);
if (apiIds.isEmpty()) {
return new ArrayList<>(0);
return new PageInfo<>();
}
query.in(ApiInfo::getId, apiIds);
return apiInfoMapper.list(query);
return apiInfoMapper.page(query);
}
public int setting(PermGroupPermissionDTO param) {
Long groupId = param.getGroupId();
this.deleteByColumn(PermGroupPermission::getGroupId, groupId);
List<Long> apiIdList = param.getApiIdList();
if (CollectionUtils.isEmpty(apiIdList)) {
return 0;
}
List<Long> existApiIdList = this.query()
.eq(PermGroupPermission::getGroupId, groupId)
.listUniqueValue(PermGroupPermission::getApiId);
List<PermGroupPermission> saveList = apiIdList.stream()
// 已存在的不添加
.filter(apiId -> !existApiIdList.contains(apiId))
.map(apiId -> {
PermGroupPermission permGroupPermission = new PermGroupPermission();
permGroupPermission.setGroupId(groupId);
@@ -72,4 +74,11 @@ public class PermGroupPermissionService implements LambdaService<PermGroupPermis
.collect(Collectors.toList());
return this.saveBatch(saveList);
}
public int delete(Long groupId, Collection<Long> apiIds) {
return this.query()
.eq(PermGroupPermission::getGroupId, groupId)
.in(PermGroupPermission::getApiId, apiIds)
.delete();
}
}