zhaojs
2023-09-27 74098f1401afe40f961d1d167bb18dd0a71c4d59
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
using CommonUtil;
using Microsoft.AspNetCore.Mvc;
using Operater.DAL;
using Operater.DbModel;
using Operater.DTO.System;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
 
namespace Api.Operater.Controllers
{
 
    [Route(TopConstants.API_ROUTE)]
    public class RoleManageController : BaseController
    {
        /// <summary>
        /// 新增角色
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult AddRoleSet([FromBody] AddRoleSetRequest request)
        {
            var isExect = new RoleSetDAL().IsExist(t => t.Name == request.Name && t.IsDe == 0);
            if (isExect)
            {
                return Error("角色名已存在,请修改!");
            }
            RoleSet roleSet = new RoleSet()
            {
                Id = Guid.NewGuid().ToString(),
                Name = request.Name,
                CreateTime = DateTime.Now,
                IsDe = 0,
                Memo = request.Memo,
                Roles = request.Roles
            };
            new RoleSetDAL().Insert(roleSet);
            return Success(true);
        }
 
        /// <summary>
        /// 获取角色列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult GetRoleList([FromBody] GetRoleListRequest request)
        {
            var expression = Expressionable.Create<RoleSet>().And(t => t.IsDe == 0)
                                                                         .AndIF(!request.Name.IsNull(), t => request.Name.Contains(t.Name))
                                                                         .ToExpression();
            int totalCount = 0;
            var history = new RoleSetDAL().ListPageGet(expression, t => t.CreateTime, DbEnum.OrderType.Desc, request.PageNo, request.PageSize, ref totalCount);
            List<GetRoleListResponse> response = new List<GetRoleListResponse>();
            if(!history.IsNull()&& history.Count>0)
            {
                response = JSONUtil.JsonToObject<List<GetRoleListResponse>>(JSONUtil.ObjectToJson(history));
                var countList = new UserInfoDAL().GetRoleIdCount();
                foreach (var res in response)
                {
                    var count = countList.Where(t=>t.RoleId==res.Id).ToList();
                    res.UserCount = (count.IsNull() || count.Count == 0) ? 0 : count[0].Sum;
                }
            }
            return Success(response, request.PageNo, request.PageSize, totalCount);
        }
 
        /// <summary>
        /// 删除角色
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult DelRole([FromBody] DelRoleRequest request)
        {
            RoleSet set = new RoleSet
            {
                IsDe = 1
            };
            var res = new RoleSetDAL().Update(set, i => new { i.IsDe }, t => t.Id == request.RoleId);
            return Success(res == 1);
        }
 
        /// <summary>
        /// 修改角色
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult EditRole([FromBody] EditRoleRequest request)
        {
            RoleSet roleSet = new RoleSet()
            {
                Name = request.Name,
                CreateTime = DateTime.Now,
                IsDe = 0,
                Memo = request.Memo,
                Roles = request.Roles
            };
            var res = new RoleSetDAL().Update(roleSet, i => new { i.Name, i.IsDe, i.Memo, i.Roles }, t => t.Id == request.RoleId);
            return Success(res == 1);
        }
 
        /// <summary>
        /// 获取角色详情
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult GetRoleDetail([FromBody] GetRoleDetailRequset request)
        {
            var res = new RoleSetDAL().GetById(request.RoleId);
            return Success(res);
        }
 
        [HttpPost]
        public IActionResult GetMenuRole()
        {
            List<GetMenuRoleResponse> response = new List<GetMenuRoleResponse>();
            var menu = new MenuSetDAL().ListGet(t => t.Id != null);
            var menuOne = menu.Where(t => t.MenuLevel == 1).OrderBy(t => t.OrdIndex);
            foreach (var m in menuOne)
            {
                GetMenuRoleResponse res = new GetMenuRoleResponse()
                {
                    title = m.MenuName,
                    value = m.MenuRole,
                    key = m.MenuRole
                };
                var menuSecond = menu.Where(t => t.ParentId == m.Id).OrderBy(t => t.OrdIndex).ToList();
                if (!menuSecond.IsNull() && menuSecond.Count > 0)
                {
                    List<GetMenuRoleTree> getMenuRoleTrees = new List<GetMenuRoleTree>();
                    foreach (var te in menuSecond)
                    {
                        GetMenuRoleTree getMenuRoleTree = new GetMenuRoleTree()
                        {
                            title = te.MenuName,
                            value = te.MenuRole,
                            key = te.MenuRole
                        };
                        getMenuRoleTrees.Add(getMenuRoleTree);
                    }
                    res.children = getMenuRoleTrees;
                }
                response.Add(res);
            }
            return Success(response);
        }
    }
}