package com.ks.app.service.impl.admin; import com.ks.app.dao.admin.AdminUserRolesDao; import com.ks.app.entity.admin.AdminRole; import com.ks.app.entity.admin.AdminUserRoles; import com.ks.app.service.inter.admin.AdminUserRolesService; import com.ks.app.service.query.admin.AdminUserRolesQuery; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import org.yeshi.utils.bean.BeanUtil; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Service public class AdminUserRolesServiceImpl implements AdminUserRolesService { @Resource private AdminUserRolesDao adminUserRolesDao; @Override public List list(AdminUserRolesQuery adminUserRolesQuery, int page, int pageSize) { AdminUserRolesDao.DaoQuery daoQuery = new AdminUserRolesDao.DaoQuery(); try { BeanUtil.copyProperties(adminUserRolesQuery, daoQuery); } catch (IllegalAccessException e) { e.printStackTrace(); } daoQuery.start = (page - 1) * pageSize; daoQuery.count = pageSize; return adminUserRolesDao.list(daoQuery); } @Override public long count(AdminUserRolesQuery adminUserRolesQuery) { AdminUserRolesDao.DaoQuery daoQuery = new AdminUserRolesDao.DaoQuery(); try { BeanUtil.copyProperties(adminUserRolesQuery, daoQuery); } catch (IllegalAccessException e) { e.printStackTrace(); } return adminUserRolesDao.count(daoQuery); } @Override public AdminUserRoles get(String id) { Query query = new Query(); query.addCriteria(Criteria.where("_id").is(id)); return adminUserRolesDao.findOne(query); } @Override public void add(AdminUserRoles adminUserRoles) throws Exception { //查询主键ID是否存在 if (adminUserRolesDao.get(adminUserRoles.getId()) != null) { throw new Exception("已存在"); } if (adminUserRoles.getCreateTime() == null) { adminUserRoles.setCreateTime(new Date()); } //保存 adminUserRolesDao.save(adminUserRoles); } @Override public void update(AdminUserRoles adminUserRoles) { if (adminUserRoles.getUpdateTime() == null) { adminUserRoles.setUpdateTime(new Date()); } //更新 adminUserRolesDao.updateSelective(adminUserRoles); } @Override public void delete(List idList) { for (String id : idList) { adminUserRolesDao.delete(id); } } @Override public List listRoleByAdminId(String adminId) { AdminUserRolesDao.DaoQuery daoQuery = new AdminUserRolesDao.DaoQuery(); daoQuery.adminId = adminId; daoQuery.count = Integer.MAX_VALUE; List adminUserRoles = adminUserRolesDao.list(daoQuery); if (adminUserRoles == null) { adminUserRoles = new ArrayList<>(); } return adminUserRoles.stream().map(e -> e.getRole() ).collect(Collectors.toList()); } @Override public void setRoles(String adminId, List roles) { if(roles==null){ return; } //删除之前的权限 Query query = new Query(); query.addCriteria(Criteria.where("adminId").is(adminId)); adminUserRolesDao.delete(query); //添加新的权限 for (AdminRole role : roles) { AdminUserRoles adminUserRoles = new AdminUserRoles(); adminUserRoles.setAdminId(adminId); adminUserRoles.setCreateTime(new Date()); adminUserRoles.setRole(role); adminUserRoles.setId(adminUserRoles.toId()); adminUserRolesDao.save(adminUserRoles); } } }