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 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 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); } }