Exemplo n.º 1
0
        public async Task <MSSResult <RoleView> > GetPageByParm(RoleQueryParm parm)
        {
            MSSResult <RoleView> mRet = new MSSResult <RoleView>();

            try
            {
                parm.page  = parm.page == 0 ? 1 : parm.page;
                parm.rows  = parm.rows == 0 ? Common.Const.PAGESIZE : parm.rows;
                parm.sort  = string.IsNullOrWhiteSpace(parm.sort) ? "id" : parm.sort;
                parm.order = parm.order.ToLower() == "desc" ? "desc" : "asc";
                mRet       = await _RoleRepo.GetPageByParm(parm);

                int[] arrRoleID        = mRet.data.Select(a => a.Id).ToArray();
                List <RoleActions> lra = await _ActionRepo.GetActionByRoles(arrRoleID);

                foreach (var item in mRet.data)
                {
                    List <ActionAll> actionAll = lra.Where(a => a.roleID == item.Id).ToList <ActionAll>();
                    //item.action_trees = ActionHelper.GetActionTree(actionAll);
                    List <ActionTree> actiontree = ActionHelper.ConvertToTree(actionAll);
                    item.action_trees = ActionHelper.BuildTreeRecursive(actiontree, 0);
                }
                mRet.code = (int)ErrType.OK;
                return(mRet);
            }
            catch (Exception ex)
            {
                mRet.code = (int)ErrType.SystemErr;
                mRet.msg  = ex.Message;
                return(mRet);
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult <ApiResult> > GetPageByParm([FromQuery] RoleQueryParm parm)
        {
            ApiResult resp = new ApiResult();
            var       ret  = await _RoleService.GetPageByParm(parm);

            if (ret.code == (int)ErrType.OK)
            {
                var data = new { rows = ret.data, total = ret.relatedData };
                resp.code = Code.Success;
                resp.data = data;
                return(resp);
            }
            else
            {
                resp.code = Code.Failure;
                resp.msg  = ret.msg;
                return(resp);
            }
        }
Exemplo n.º 3
0
 public async Task <MSSResult <RoleView> > GetPageByParm(RoleQueryParm parm)
 {
     return(await WithConnection(async c =>
     {
         MSSResult <RoleView> mRet = new MSSResult <RoleView>();
         StringBuilder sql = new StringBuilder();
         sql.Append("SELECT DISTINCT a.*,u1.user_name as created_name,u2.user_name as updated_name ")
         .Append(" FROM Role a ")
         .Append(" left join user u1 on a.created_by=u1.id left join user u2 on a.updated_by=u2.id ")
         .Append(" left join role_action ra on a.id=ra.role_id ")
         .Append(" left join action_info act on act.id=ra.action_id ")
         .Append(" WHERE 1=1 ");
         StringBuilder whereSql = new StringBuilder();
         if (!string.IsNullOrWhiteSpace(parm.searchName))
         {
             whereSql.Append(" and a.role_name like '%" + parm.searchName + "%' ");
         }
         if (parm.searchAction != null)
         {
             whereSql.Append(" and act.id=" + parm.searchAction);
         }
         if (parm.searchActionGroup != null)
         {
             whereSql.Append(" and act.group_id=" + parm.searchActionGroup);
         }
         sql.Append(whereSql)
         .Append(" order by a." + parm.sort + " " + parm.order)
         .Append(" limit " + (parm.page - 1) * parm.rows + "," + parm.rows);
         var tmp = await c.QueryAsync <RoleView>(sql.ToString());
         if (tmp != null)
         {
             mRet.data = tmp.ToList();
         }
         mRet.relatedData = await c.QueryFirstOrDefaultAsync <int>(
             "select count(DISTINCT a.id) from role a " +
             " left join role_action ra on a.id = ra.role_id " +
             " left join action_info act on act.id=ra.action_id where 1=1 " + whereSql.ToString());
         return mRet;
     }));
 }