This commit is contained in:
六如
2024-10-23 10:39:08 +08:00
parent d06a13df4a
commit 054c86a450
21 changed files with 646 additions and 130 deletions

View File

@@ -4,6 +4,7 @@ import com.gitee.fastmybatis.core.PageInfo;
import com.gitee.fastmybatis.core.query.LambdaQuery;
import com.gitee.sop.adminbackend.common.req.IdParam;
import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupPageParam;
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupParam;
import com.gitee.sop.adminbackend.dao.entity.PermGroup;
import com.gitee.sop.adminbackend.service.isv.PermGroupService;
@@ -35,8 +36,8 @@ public class PermGroupController {
* @return 返回分页结果
*/
@GetMapping("/listAll")
public Result<List<PermGroup>> listAll() {
List<PermGroup> list = permGroupService.listAll();
public Result<List<PermGroup>> listAll(PermGroupParam param) {
List<PermGroup> list = permGroupService.list(param.toQuery());
return Result.ok(list);
}
@@ -47,7 +48,7 @@ public class PermGroupController {
* @return 返回分页结果
*/
@GetMapping("/page")
public Result<PageInfo<PermGroup>> page(PermGroupParam param) {
public Result<PageInfo<PermGroup>> page(PermGroupPageParam param) {
LambdaQuery<PermGroup> query = param.toLambdaQuery(PermGroup.class);
PageInfo<PermGroup> pageInfo = permGroupService.doPage(query);
return Result.ok(pageInfo);

View File

@@ -0,0 +1,56 @@
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;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* @author 六如
*/
@RestController
@RequestMapping("perm/group/permission")
public class PermGroupPermissionController {
@Resource
private PermGroupPermissionService permGroupPermissionService;
/**
* 查询分组接口
*
* @param param param
* @return 返回分页结果
*/
@GetMapping("/list")
public Result<List<ApiInfo>> page(@Validated PermGroupApiInfoParam param) {
LambdaQuery<ApiInfo> query = param.toLambdaQuery(ApiInfo.class);
List<ApiInfo> apiInfoList = permGroupPermissionService.listGroupApiId(param.getGroupId(), query);
return Result.ok(apiInfoList);
}
@PostMapping("setting")
public Result<Integer> setting(@RequestBody @Validated PermGroupPermissionParam param) {
PermGroupPermissionDTO permGroupPermissionDTO = CopyUtil.copyBean(param, PermGroupPermissionDTO::new);
int cnt = permGroupPermissionService.setting(permGroupPermissionDTO);
return Result.ok(cnt);
}
}

View File

@@ -0,0 +1,25 @@
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 lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author 六如
*/
@Data
public class PermGroupApiInfoParam implements IParam {
@NotNull
private Long groupId;
@Condition(operator = Operator.like)
private String apiName;
@Condition
private Integer status;
}

View File

@@ -0,0 +1,24 @@
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.PageParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 备注:分组表
*
* @author 六如
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class PermGroupPageParam extends PageParam {
/**
* 分组描述
*/
@Condition(operator = Operator.like)
private String groupName;
}

View File

@@ -2,18 +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.PageParam;
import com.gitee.fastmybatis.core.query.param.IParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 备注:分组表
*
* @author 六如
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class PermGroupParam extends PageParam {
public class PermGroupParam implements IParam {
/**
* 分组描述

View File

@@ -0,0 +1,19 @@
package com.gitee.sop.adminbackend.controller.isv.req;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author 六如
*/
@Data
public class PermGroupPermissionParam {
@NotNull
private Long groupId;
private List<Long> apiIdList;
}

View File

@@ -5,7 +5,7 @@ import com.gitee.fastmybatis.core.query.Query;
import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
import com.gitee.sop.adminbackend.common.req.StatusUpdateParam;
import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.controller.serve.req.ApiInfoParam;
import com.gitee.sop.adminbackend.controller.serve.req.ApiInfoPageParam;
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
import com.gitee.sop.adminbackend.service.serve.ApiInfoService;
import com.gitee.sop.adminbackend.util.CopyUtil;
@@ -17,6 +17,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 接口管理
@@ -37,13 +39,27 @@ public class ApiInfoController {
* @return
*/
@GetMapping("/page")
public Result<PageInfo<ApiInfo>> page(ApiInfoParam param) {
public Result<PageInfo<ApiInfo>> page(ApiInfoPageParam param) {
Query query = param.toQuery();
query.orderByDesc("id");
PageInfo<ApiInfo> pageInfo = apiInfoService.page(query);
return Result.ok(pageInfo);
}
/**
* 查询全部
*
* @param param
* @return
*/
@GetMapping("/listAll")
public Result<List<ApiInfo>> listAll(ApiInfoPageParam param) {
Query query = param.toQuery();
query.orderByDesc("id");
List<ApiInfo> list = apiInfoService.list(query);
return Result.ok(list);
}
/**
* 新增记录
*

View File

@@ -0,0 +1,22 @@
package com.gitee.sop.adminbackend.controller.serve.req;
import com.gitee.fastmybatis.core.query.Operator;
import com.gitee.fastmybatis.core.query.annotation.Condition;
import com.gitee.fastmybatis.core.query.param.PageParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author 六如
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class ApiInfoPageParam extends PageParam {
@Condition(operator = Operator.like)
private String apiName;
@Condition
private Integer status;
}

View File

@@ -2,16 +2,13 @@ package com.gitee.sop.adminbackend.controller.serve.req;
import com.gitee.fastmybatis.core.query.Operator;
import com.gitee.fastmybatis.core.query.annotation.Condition;
import com.gitee.fastmybatis.core.query.param.PageParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author 六如
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class ApiInfoParam extends PageParam {
public class ApiInfoParam {
@Condition(operator = Operator.like)
private String apiName;

View File

@@ -32,7 +32,7 @@ public class PermGroupPermission {
/**
* api_info.id
*/
private String apiId;
private Long apiId;
/**
* 添加时间

View File

@@ -3,9 +3,21 @@ package com.gitee.sop.adminbackend.service.isv;
import com.gitee.fastmybatis.core.PageInfo;
import com.gitee.fastmybatis.core.query.LambdaQuery;
import com.gitee.fastmybatis.core.support.LambdaService;
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
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;
/**
@@ -14,8 +26,11 @@ import org.springframework.stereotype.Service;
@Service
public class PermGroupPermissionService implements LambdaService<PermGroupPermission, PermGroupPermissionMapper> {
public PageInfo<PermGroupPermission> doPage(LambdaQuery<PermGroupPermission> query) {
query.orderByDesc(PermGroupPermission::getId);
@Resource
private ApiInfoMapper apiInfoMapper;
public PageInfo<PermGroupPermission> doPage(LambdaQuery<PermGroupPermission> query) {
query.orderByDesc(PermGroupPermission::getId);
PageInfo<PermGroupPermission> page = this.page(query);
// 格式转换
@@ -25,5 +40,36 @@ public class PermGroupPermissionService implements LambdaService<PermGroupPermis
});
}
public List<ApiInfo> listGroupApiId(Long groupId, LambdaQuery<ApiInfo> query) {
List<Long> apiIds = this.query()
.eq(PermGroupPermission::getGroupId, groupId)
.listUniqueValue(PermGroupPermission::getApiId);
if (apiIds.isEmpty()) {
return new ArrayList<>(0);
}
query.in(ApiInfo::getId, apiIds);
return apiInfoMapper.list(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<PermGroupPermission> saveList = apiIdList.stream()
.map(apiId -> {
PermGroupPermission permGroupPermission = new PermGroupPermission();
permGroupPermission.setGroupId(groupId);
permGroupPermission.setApiId(apiId);
return permGroupPermission;
})
.collect(Collectors.toList());
return this.saveBatch(saveList);
}
}

View File

@@ -0,0 +1,19 @@
package com.gitee.sop.adminbackend.service.isv.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author 六如
*/
@Data
public class PermGroupPermissionDTO {
@NotNull
private Long groupId;
private List<Long> apiIdList;
}