admin
2022-05-19 a44f2c3b5db92069ea2813ecf8cb12a6ab3b2203
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package com.yeshi.makemoney.app.service.impl.admin;
 
import java.lang.Exception;
import javax.annotation.Resource;
 
import com.yeshi.makemoney.app.entity.admin.AdminRole;
import com.yeshi.makemoney.app.service.inter.admin.AdminUserRolesService;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
 
import org.yeshi.utils.bean.BeanUtil;
 
import java.util.List;
 
import com.yeshi.makemoney.app.dao.admin.AdminRoleRuleDao;
import com.yeshi.makemoney.app.entity.admin.AdminRoleRule;
import com.yeshi.makemoney.app.service.inter.admin.AdminRoleRuleService;
import com.yeshi.makemoney.app.service.query.admin.AdminRoleRuleQuery;
import com.yeshi.makemoney.app.dao.admin.AdminRoleRuleDao.DaoQuery;
 
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
 
@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) {
        DaoQuery daoQuery = new 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) {
        DaoQuery daoQuery = new 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;
    }
 
 
}