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<AdminUserRoles> 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<String> idList) {
|
for (String id : idList) {
|
adminUserRolesDao.delete(id);
|
}
|
}
|
|
@Override
|
public List<AdminRole> listRoleByAdminId(String adminId) {
|
AdminUserRolesDao.DaoQuery daoQuery = new AdminUserRolesDao.DaoQuery();
|
daoQuery.adminId = adminId;
|
daoQuery.count = Integer.MAX_VALUE;
|
List<AdminUserRoles> 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<AdminRole> 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);
|
}
|
}
|
|
|
}
|