75 lines
2.3 KiB
Java
75 lines
2.3 KiB
Java
package com.example.survey.dao.impl;
|
|
|
|
import com.example.survey.dao.RoleDao;
|
|
import com.example.survey.entity.Role;
|
|
import com.example.survey.entity.User;
|
|
import com.example.survey.enumeration.AuthEnum;
|
|
import com.example.survey.exception.RoleException;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
import org.springframework.data.mongodb.core.query.Criteria;
|
|
import org.springframework.data.mongodb.core.query.Query;
|
|
import org.springframework.data.mongodb.core.query.Update;
|
|
import org.springframework.stereotype.Repository;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
/**
|
|
* @author Pope
|
|
*/
|
|
@Log4j2
|
|
@Repository
|
|
public class RoleDaoImpl implements RoleDao {
|
|
@Autowired
|
|
private MongoTemplate mongoTemplate;
|
|
|
|
@Override
|
|
public boolean insertRole(Role role) {
|
|
try {
|
|
mongoTemplate.save(role);
|
|
} catch (Exception e) {
|
|
log.error("权限插入失败");
|
|
log.error(e.getMessage());
|
|
throw new RoleException("已存在权限");
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public Role selectRole(String name) {
|
|
Query query = new Query(Criteria.where("name").is(name));
|
|
return mongoTemplate.findOne(query, Role.class);
|
|
}
|
|
|
|
@Override
|
|
public void deleteRole(String name) {
|
|
Query query = new Query(Criteria.where("name").is(name));
|
|
mongoTemplate.remove(query, Role.class);
|
|
}
|
|
|
|
|
|
@Override
|
|
public List<Role> listLimitRole(String name, int offset, int limit) {
|
|
Criteria criteria = new Criteria();
|
|
if (name != null) {
|
|
criteria.and("name").regex(name);
|
|
}
|
|
Query query = new Query(criteria).skip(offset).limit(limit);
|
|
return mongoTemplate.find(query, Role.class);
|
|
}
|
|
|
|
@Override
|
|
public void updateRole(String roleName, Set<AuthEnum> authEnumSet) {
|
|
Query query = new Query(Criteria.where("name").is(roleName));
|
|
Role role = mongoTemplate.findOne(query, Role.class);
|
|
if(role == null){
|
|
throw new RoleException("角色不存在");
|
|
}
|
|
role.setAuthoritySet(authEnumSet);
|
|
mongoTemplate.save(role);
|
|
}
|
|
}
|