package com.ks.app.service.impl.admin;
|
|
import com.ks.app.dao.admin.AdminRoleRuleDao;
|
import com.ks.app.entity.admin.AdminRole;
|
import com.ks.app.entity.admin.AdminRoleRule;
|
import com.ks.app.service.inter.admin.AdminRoleRuleService;
|
import com.ks.app.service.inter.admin.AdminUserRolesService;
|
import com.ks.app.service.query.admin.AdminRoleRuleQuery;
|
import org.springframework.data.domain.Sort;
|
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Query;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class AdminRoleRuleServiceImpl implements AdminRoleRuleService {
|
|
@Resource
|
private AdminRoleRuleDao adminRoleRuleDao;
|
|
@Resource
|
private AdminUserRolesService adminUserRolesService;
|
|
@Override
|
public List<AdminRoleRule> list(AdminRoleRuleQuery adminRoleRuleQuery, int page, int pageSize) {
|
AdminRoleRuleDao.DaoQuery daoQuery = new AdminRoleRuleDao.DaoQuery();
|
daoQuery.role = adminRoleRuleQuery.getRole();
|
daoQuery.path = adminRoleRuleQuery.getPath();
|
daoQuery.navPage = adminRoleRuleQuery.getNavPage();
|
daoQuery.roles = adminRoleRuleQuery.getRoles();
|
daoQuery.sortList = Arrays.asList(new Sort.Order[]{Sort.Order.desc("createTime")});
|
|
|
daoQuery.start = (page - 1) * pageSize;
|
daoQuery.count = pageSize;
|
return adminRoleRuleDao.list(daoQuery);
|
}
|
|
@Override
|
public long count(AdminRoleRuleQuery adminRoleRuleQuery) {
|
AdminRoleRuleDao.DaoQuery daoQuery = new AdminRoleRuleDao.DaoQuery();
|
daoQuery.role = adminRoleRuleQuery.getRole();
|
daoQuery.path = adminRoleRuleQuery.getPath();
|
daoQuery.navPage = adminRoleRuleQuery.getNavPage();
|
daoQuery.roles = adminRoleRuleQuery.getRoles();
|
|
return adminRoleRuleDao.count(daoQuery);
|
}
|
|
@Override
|
public AdminRoleRule get(String id) {
|
Query query = new Query();
|
query.addCriteria(Criteria.where("_id").is(id));
|
return adminRoleRuleDao.findOne(query);
|
}
|
|
@Override
|
public void add(AdminRoleRule adminRoleRule) throws Exception {
|
|
if (adminRoleRule.getId() == null) {
|
adminRoleRule.setId(adminRoleRule.toId());
|
}
|
|
if (adminRoleRule.getNavPage() == null) {
|
adminRoleRule.setNavPage(false);
|
}
|
|
//查询主键ID是否存在
|
if (adminRoleRuleDao.get(adminRoleRule.getId()) != null) {
|
throw new Exception("已存在");
|
}
|
|
if (adminRoleRule.getCreateTime() == null) {
|
adminRoleRule.setCreateTime(new Date());
|
}
|
//保存
|
adminRoleRuleDao.save(adminRoleRule);
|
}
|
|
@Override
|
public void update(AdminRoleRule adminRoleRule) {
|
if (adminRoleRule.getUpdateTime() == null) {
|
adminRoleRule.setUpdateTime(new Date());
|
}
|
//更新
|
adminRoleRuleDao.updateSelective(adminRoleRule);
|
}
|
|
@Override
|
public void delete(List<String> idList) {
|
for (String id : idList) {
|
adminRoleRuleDao.delete(id);
|
}
|
}
|
|
@Override
|
public List<String> listPaths(String adminId) {
|
|
List<AdminRole> list = adminUserRolesService.listRoleByAdminId(adminId);
|
if (list == null) {
|
return new ArrayList<>();
|
}
|
AdminRoleRuleQuery query = new AdminRoleRuleQuery();
|
query.setRoles(list);
|
query.setNavPage(false);
|
long count = count(query);
|
List<AdminRoleRule> ruleList = list(query, 1, (int) count);
|
List<String> paths = new ArrayList<>();
|
for (AdminRoleRule roleRule : ruleList) {
|
paths.add(roleRule.getPath());
|
}
|
return paths;
|
}
|
|
|
}
|