Commit 1a64803c LN

增加组管理查询方法

1 个父辈 7ecd0925
package com.neotel.smfcore.security.rest; package com.neotel.smfcore.security.rest;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.PageUtil;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.security.rest.bean.dto.MenuDto;
import com.neotel.smfcore.security.rest.bean.mapstruct.GroupMapper;
import com.neotel.smfcore.security.rest.bean.query.MenuQueryCondition;
import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.security.service.manager.IMenuManager;
import com.neotel.smfcore.security.service.po.Group;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.java.Log;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
...@@ -12,4 +34,74 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -12,4 +34,74 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/api/groups") @RequestMapping("/api/groups")
@Slf4j @Slf4j
public class GroupController { public class GroupController {
@Autowired
IGroupManager groupManager;
@Autowired
GroupMapper groupMapper;
@GetMapping
@ApiOperation("查询组列表")
// @PreAuthorize("@el.check('groups:list')")
public ResponseEntity<Object> query(@RequestParam String groupname) throws Exception {
Criteria criteria = new Criteria().and("groupName").regex(".*?\\" + groupname.trim() + ".*");
Query query = new Query(criteria);
List<Group> groups = groupManager.findByQuery(query);
return new ResponseEntity<>(groupMapper.toDto(groups), HttpStatus.OK);
}
@ApiOperation("新增分组")
@PostMapping
@PreAuthorize("@el.check('group:add')")
public ResponseEntity<Object> create(@RequestBody Group resources){
if (resources.getGroupName() != null) {
// throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID");
log.info("新增分组: 组名称为空");
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
//验证名称是否重复
Group hasGroup=groupManager.findOneByGroupName(resources.getGroupName());
if(hasGroup!=null){
log.info("新增分组: 组名称["+resources.getGroupName()+"]已存在");
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
try {
groupManager.save(resources);
} catch (ValidateException e) {
log.error("新增分组["+resources.getGroupName()+"]出错:"+e);
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>(HttpStatus.CREATED);
}
@ApiOperation("修改分组")
@PutMapping
@PreAuthorize("@el.check('group:edit')")
public ResponseEntity<Object> update(@RequestBody Group resources){
//验证名称是否重复
Group hasGroup=groupManager.findOneByGroupName(resources.getGroupName());
if(hasGroup!=null&&(hasGroup.getId()!=resources.getId())){
log.info("新增分组: 组名称["+resources.getGroupName()+"]已存在");
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
try {
groupManager.save(resources);
} catch (ValidateException e) {
log.error("修改分组["+resources.getGroupName()+"]出错:"+e);
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@ApiOperation("删除分组")
@DeleteMapping
@PreAuthorize("@el.check('group:del')")
public ResponseEntity<Object> delete(@RequestBody Set<String> ids){
Set<Group> menuSet = new HashSet<>();
for (String id : ids) {
}
return new ResponseEntity<>(HttpStatus.OK);
}
} }
...@@ -19,10 +19,12 @@ import cn.hutool.core.collection.CollectionUtil; ...@@ -19,10 +19,12 @@ import cn.hutool.core.collection.CollectionUtil;
import com.neotel.smfcore.common.annotation.QueryCondition; import com.neotel.smfcore.common.annotation.QueryCondition;
import com.neotel.smfcore.common.exception.ValidateException; import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.PageUtil; import com.neotel.smfcore.common.utils.PageUtil;
import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.common.utils.SecurityUtils; import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.security.annotation.AnonymousAccess; import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.security.rest.bean.dto.MenuDto; import com.neotel.smfcore.security.rest.bean.dto.MenuDto;
import com.neotel.smfcore.security.rest.bean.mapstruct.MenuMapper; import com.neotel.smfcore.security.rest.bean.mapstruct.MenuMapper;
import com.neotel.smfcore.security.rest.bean.query.MenuQueryCondition;
import com.neotel.smfcore.security.rest.bean.vo.MenuVo; import com.neotel.smfcore.security.rest.bean.vo.MenuVo;
import com.neotel.smfcore.security.service.manager.IMenuManager; import com.neotel.smfcore.security.service.manager.IMenuManager;
import com.neotel.smfcore.security.service.po.Menu; import com.neotel.smfcore.security.service.po.Menu;
...@@ -81,8 +83,10 @@ public class MenuController { ...@@ -81,8 +83,10 @@ public class MenuController {
@ApiOperation("导出菜单数据") @ApiOperation("导出菜单数据")
@GetMapping(value = "/download") @GetMapping(value = "/download")
@PreAuthorize("@el.check('menu:list')") @PreAuthorize("@el.check('menu:list')")
public void download(HttpServletResponse response, QueryCondition criteria) throws Exception { public void download(HttpServletResponse response, MenuQueryCondition criteria) throws Exception {
Query query=new Query(Criteria.where("type").ne(2)); Query query= QueryHelp.getQuery(criteria);
query.addCriteria(Criteria.where("type").ne(2));
//Query query=new Query(Criteria.where("type").ne(2));
menuManager.download(menuManager.findByQuery(query), response); menuManager.download(menuManager.findByQuery(query), response);
} }
// //
...@@ -108,8 +112,9 @@ public class MenuController { ...@@ -108,8 +112,9 @@ public class MenuController {
@GetMapping @GetMapping
@ApiOperation("查询菜单") @ApiOperation("查询菜单")
@PreAuthorize("@el.check('menu:list')") @PreAuthorize("@el.check('menu:list')")
public ResponseEntity<Object> query(QueryCondition criteria) throws Exception { public ResponseEntity<Object> query(MenuQueryCondition criteria) throws Exception {
Query query=new Query(Criteria.where("type").ne(2)); Query query=QueryHelp.getQuery(criteria);
query.addCriteria(Criteria.where("type").ne(2));
List<MenuDto> menuDtoList =menuMapper.toDto( menuManager.findByQuery(query)); List<MenuDto> menuDtoList =menuMapper.toDto( menuManager.findByQuery(query));
return new ResponseEntity<>(PageUtil.toPage(menuDtoList, menuDtoList.size()), HttpStatus.OK); return new ResponseEntity<>(PageUtil.toPage(menuDtoList, menuDtoList.size()), HttpStatus.OK);
} }
......
package com.neotel.smfcore.security.rest.bean.dto;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
public class GroupDto implements Serializable
{
private String id;
private String groupName;
}
...@@ -9,6 +9,8 @@ import java.util.List; ...@@ -9,6 +9,8 @@ import java.util.List;
@Getter @Getter
@Setter @Setter
public class MenuDto implements Serializable { public class MenuDto implements Serializable {
private String id;
/** /**
* 子菜单 * 子菜单
*/ */
......
package com.neotel.smfcore.security.rest.bean.mapstruct;
import com.neotel.smfcore.common.base.BaseMapper;
import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.security.rest.bean.dto.GroupDto;
import com.neotel.smfcore.security.service.po.Group;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface GroupMapper extends BaseMapper<GroupDto, Group> {
}
...@@ -20,5 +20,5 @@ public class MenuQueryCondition { ...@@ -20,5 +20,5 @@ public class MenuQueryCondition {
private Boolean pidIsNull; private Boolean pidIsNull;
@QueryCondition @QueryCondition
private Long pid; private String pid;
} }
...@@ -4,4 +4,5 @@ import com.neotel.smfcore.common.base.IBaseManager; ...@@ -4,4 +4,5 @@ import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.security.service.po.Group; import com.neotel.smfcore.security.service.po.Group;
public interface IGroupManager extends IBaseManager<Group> { public interface IGroupManager extends IBaseManager<Group> {
Group findOneByGroupName(String groupName);
} }
...@@ -39,4 +39,9 @@ public class GroupManagerImpl implements IGroupManager { ...@@ -39,4 +39,9 @@ public class GroupManagerImpl implements IGroupManager {
public List<Group> findByQuery(Query query) { public List<Group> findByQuery(Query query) {
return groupDao.findByQuery(query); return groupDao.findByQuery(query);
} }
@Override
public Group findOneByGroupName(String groupName) {
return groupDao.findOneByCondition(new String[]{"groupName"},new String[]{groupName});
}
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!