package com.example.survey.dao.impl; import com.example.survey.dao.RoleDao; import com.example.survey.entity.Role; import com.example.survey.enumeration.AuthEnum; import com.example.survey.enumeration.ResultEnum; 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.stereotype.Repository; import java.util.List; import java.util.Set; /** * @author Pope */ @Log4j2 @Repository public class RoleDaoImpl implements RoleDao { @Autowired private MongoTemplate mongoTemplate; @Override public void saveRole(Role role) { try { mongoTemplate.save(role); } catch (Exception e) { throw new RoleException(ResultEnum.ALREADY_EXIST_ROLE); } } @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 listRoleLimit(String name, int offset, int pageSize) { Criteria criteria = new Criteria(); if (name != null) { criteria.and("name").regex(name); } Query query = new Query(criteria).skip(offset).limit(pageSize); return mongoTemplate.find(query, Role.class); } @Override public long countRole(String name) { Criteria criteria = new Criteria(); if (name != null) { criteria.and("name").regex(name); } Query query = new Query(criteria); return mongoTemplate.count(query, Role.class); } @Override public boolean existRole(String name) { Query query = new Query(Criteria.where("name").is(name)); return mongoTemplate.exists(query,Role.class); } }