Esempio n. 1
0
        public virtual int Delete(string connectionId = null)
        {
            int result = 0;
            IDictionary <string, string> slaveTables = SlaveTables();

            if (slaveTables.IsNullOrCount0())
            {
                DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
                {
                    result = Delete(dbConn, GetDbTransaction(connId, AccessMode.MASTER));
                }, AccessMode.MASTER);

                return(result);
            }

            ExecTransaction((cId) =>
            {
                DbConnectionManager.BrainpowerExecute(cId, this, (connId, dbConn) =>
                {
                    result = Delete(dbConn, GetDbTransaction(connId, AccessMode.MASTER));

                    foreach (KeyValuePair <string, string> slTable in slaveTables)
                    {
                        DeleteSlaveTable(slTable.Key, dbConn, GetDbTransaction(connId, AccessMode.MASTER));
                    }
                }, AccessMode.MASTER);
            }, AccessMode.MASTER, connectionId: connectionId);

            return(result);
        }
        /// <summary>
        /// 根据菜单编码、功能编码集合和用户ID统计个数
        /// </summary>
        /// <param name="menuCode">菜单编码</param>
        /// <param name="functionCodes">功能编码集合</param>
        /// <param name="userId">用户ID</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>个数</returns>
        public int CountByMenuCodeAndFunctionCodesAndUserId(string menuCode, string[] functionCodes, int userId, string connectionId = null)
        {
            int result = 0;

            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@MenuCode", menuCode);
            parameters.Add("@UserId", userId);

            StringBuilder functionSql = new StringBuilder();

            for (var i = 0; i < functionCodes.Length; i++)
            {
                string name = $"@FunctionCode{i}";
                functionSql.AppendFormat("{0},", name);
                parameters.Add(name, functionCodes[i]);;
            }
            functionSql.Remove(functionSql.Length - 1, 1);

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = "SELECT COUNT(*) FROM menu M"
                             + " INNER JOIN menu_function MF ON M.`id`= MF.`menu_id`"
                             + $" INNER JOIN `function` F ON F.`id`= MF.`function_id` AND F.`code` IN({functionSql.ToString()})"
                             + $" INNER JOIN {Table} RMF ON RMF.`menu_function_id`=MF.`id` AND RMF.`user_id`=@UserId"
                             + " WHERE M.`code`=@MenuCode";
                Log.TraceAsync(sql, source: this.GetType().Name, tags: "CountByMenuCodeAndFunctionCodesAndUserId");
                result = dbConn.ExecuteScalar <int>(sql, parameters);
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 3
0
        /// <summary>
        /// 根据用户ID集合查询用户角色列表,包含角色信息
        /// </summary>
        /// <param name="userIds">用户ID集合</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>用户角色列表</returns>
        public IList <UserRoleInfo> SelectContainsRoleByUserIds(int[] userIds, string connectionId = null)
        {
            IList <UserRoleInfo> result     = null;
            DynamicParameters    parameters = new DynamicParameters();
            StringBuilder        userIdSql  = new StringBuilder();

            for (int i = 0; i < userIds.Length; i++)
            {
                string name = $"@UserId{i}";
                parameters.Add(name, userIds[i]);
                userIdSql.AppendFormat("{0},", name);
            }
            userIdSql.Remove(userIdSql.Length - 1, 1);
            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"SELECT UR.user_id UserId,{RolePersistence.AllFieldMapProps().JoinSelectPropMapFields("R.")} FROM {Table} UR"
                             + $" INNER JOIN `{RolePersistence.Table}` R ON R.id=UR.role_id AND UR.user_id IN({userIdSql.ToString()})";
                result = dbConn.Query <UserRoleInfo, RoleInfo, UserRoleInfo>(sql, (ur, r) =>
                {
                    ur.Role = r;
                    return(ur);
                }, parameters).AsList();
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 4
0
        public virtual int DeleteByIds(IdT[] ids, CommonUseData comData = null, string connectionId = null)
        {
            int result = 0;
            IDictionary <string, string> slaveTables = SlaveTables();

            if (slaveTables.IsNullOrCount0())
            {
                DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
                {
                    result = DeleteByIds(ids, dbConn, GetDbTransaction(connId, AccessMode.MASTER), comData: comData);
                }, AccessMode.MASTER);

                return(result);
            }

            ExecTransaction((cId) =>
            {
                DbConnectionManager.BrainpowerExecute(cId, this, (connId, dbConn) =>
                {
                    var trans = GetDbTransaction(connId, AccessMode.MASTER);
                    result    = DeleteByIds(ids, dbConn, trans, comData: comData);

                    foreach (KeyValuePair <string, string> slTable in slaveTables)
                    {
                        DeleteSlaveTableByForeignKeys(slTable.Key, slTable.Value, ids, dbConn, trans, comData: comData);
                    }
                }, AccessMode.MASTER);
            }, AccessMode.MASTER, connectionId: connectionId);

            return(result);
        }
Esempio n. 5
0
        /// <summary>
        /// 插入模型列表
        /// </summary>
        /// <param name="models">模型列表</param>
        /// <param name="propertyNames">属性名称集合</param>
        /// <param name="comData">通用数据</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>影响行数</returns>
        public virtual int Insert(IList <ModelT> models, string[] propertyNames = null, CommonUseData comData = null, string connectionId = null)
        {
            int result = 0;

            IdT TenantId = default(IdT);

            foreach (var m in models)
            {
                if (ModelIsSetTenantId(m))
                {
                    continue;
                }

                if (!Identity.IsEmpty(TenantId) && IsExistsTenantId(out TenantId, comData))
                {
                    SetTenantId(m, TenantId);
                }
            }

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = Insert(models, dbConn, propertyNames, GetDbTransaction(connId, AccessMode.MASTER), comData: comData);
            }, AccessMode.MASTER);

            return(result);
        }
        /// <summary>
        /// 根据菜单编码和角色ID集合查询功能信息列表
        /// </summary>
        /// <param name="menuCode">菜单编码</param>
        /// <param name="roleIds">角色ID集合</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>功能信息列表</returns>
        public IList <FunctionInfo> SelectFunctionsByMenuCodeAndRoleIds(string menuCode, int[] roleIds, string connectionId = null)
        {
            IList <FunctionInfo> result = null;

            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@MenuCode", menuCode);

            StringBuilder roleSql = new StringBuilder();

            for (var i = 0; i < roleIds.Length; i++)
            {
                string name = $"@RoleId{i}";
                roleSql.AppendFormat("{0},", name);
                parameters.Add(name, roleIds[i]);;
            }
            roleSql.Remove(roleSql.Length - 1, 1);

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = "SELECT F.* FROM `function` F"
                             + " INNER JOIN menu_function MF ON MF.`function_id`= F.`id`"
                             + " INNER JOIN menu M ON M.`id`= MF.`menu_id` AND M.`code`=@MenuCode"
                             + $" INNER JOIN {Table} RMF ON RMF.`menu_function_id`= MF.`id` AND RMF.`role_id` IN({roleSql.ToString()})";
                Log.TraceAsync(sql, source: this.GetType().Name, tags: "SelectFunctionsByMenuCodeAndRoleIds");
                result = dbConn.Query <FunctionInfo>(sql, parameters).AsList();
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 7
0
        /// <summary>
        /// 查询已审核的工作流列表并分页
        /// </summary>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">每页记录数</param>
        /// <param name="filter">筛选</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>分页信息</returns>
        public PagingInfo <WorkflowInfo> SelectAuditedHandlePage(int pageIndex, int pageSize, AuditFlowFilterInfo filter, string connectionId = null)
        {
            PagingInfo <WorkflowInfo> result = null;
            DynamicParameters         parameters;
            StringBuilder             whereSql = MergeWhereSql(filter, out parameters);

            whereSql.Append(" AND wh.handler_id=@HandlerId AND (wh.handle_status=@HandleStatus1 || wh.handle_status=@HandleStatus2) && handle_type=@HandleType");
            parameters.Add("HandlerId", filter.HandlerId);
            parameters.Add("HandleStatus1", (byte)HandleStatusEnum.SENDED);
            parameters.Add("HandleStatus2", (byte)HandleStatusEnum.RETURNED);
            parameters.Add("HandleType", (byte)HandleTypeEnum.AUDIT);

            if (filter.FlowStatus != null)
            {
                whereSql.Append(" AND flow_status=@FlowStatus");
                parameters.Add("FlowStatus", filter.FlowStatus);
            }

            string sortSql = GetSelectPageSortSql(filter, GetSelectSortNamePfx(filter));

            if (string.IsNullOrWhiteSpace(sortSql))
            {
                sortSql = $" ORDER BY wh.handle_time DESC";
            }

            string formatSql = $"SELECT {{0}} FROM {Table}"
                               + $" INNER JOIN workflow_handle wh ON {Table}.`id`=wh.`workflow_id`"
                               + whereSql.ToString();

            string countSql = string.Format(formatSql, "COUNT(1)");
            string pageSql  = string.Format(formatSql, $"{JoinSelectPropMapFields(pfx: Table + ".")},wh.`id`,wh.`is_readed` IsReaded")
                              + " " + sortSql + " " + GetPartPageSql(pageIndex, pageSize);

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = PagingUtil.ExecPage <WorkflowInfo>(pageIndex, pageSize, () =>
                {
                    return(dbConn.ExecuteScalar <int>(countSql, parameters, GetDbTransaction(connId)));
                }, () =>
                {
                    return(dbConn.Query <WorkflowInfo, WorkflowHandleInfo, WorkflowInfo>(pageSql, (wf, wh) =>
                    {
                        if (wf.Handles == null)
                        {
                            wf.Handles = new List <WorkflowHandleInfo>()
                            {
                                wh
                            };
                        }

                        return wf;
                    }, parameters, GetDbTransaction(connId), splitOn: "id").AsList());
                });
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 8
0
        /// <summary>
        /// 根据ID查询模型
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="propertyNames">属性名称集合</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>模型</returns>
        public virtual ModelT Select(IdT id, string[] propertyNames, string connectionId = null)
        {
            ModelT result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = Select(id, dbConn, GetDbTransaction(connId, AccessMode.SLAVE), propertyNames);
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 9
0
        /// <summary>
        /// 根据ID更新模型
        /// </summary>
        /// <param name="model">模型</param>
        /// <param name="propertyNames">属性名称集合</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>影响行数</returns>
        public virtual int UpdateById(ModelT model, string[] propertyNames, string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = UpdateById(model, dbConn, GetDbTransaction(connId, AccessMode.MASTER), propertyNames);
            }, AccessMode.MASTER);

            return(result);
        }
Esempio n. 10
0
        /// <summary>
        /// 统计模型数
        /// </summary>
        /// <param name="connectionId">连接ID</param>
        /// <returns>模型数</returns>
        public virtual int Count(string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = Count(dbConn, GetDbTransaction(connId, AccessMode.SLAVE));
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 11
0
        /// <summary>
        /// 根据用户ID删除
        /// </summary>
        /// <param name="roleId">角色ID</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>影响行数</returns>
        public int DeleteByRoleId(int roleId, string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = dbConn.Execute($"{DeleteSql()} WHERE role_id=@RoleId", new { RoleId = roleId }, GetDbTransaction(connId));
            });

            return(result);
        }
Esempio n. 12
0
        /// <summary>
        /// 根据ID更新模型
        /// </summary>
        /// <param name="model">模型</param>
        /// <param name="comData">通用数据</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>影响行数</returns>
        public virtual int UpdateById(ModelT model, CommonUseData comData = null, string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = UpdateById(model, dbConn, GetDbTransaction(connId, AccessMode.MASTER), comData: comData);
            }, AccessMode.MASTER);

            return(result);
        }
Esempio n. 13
0
        /// <summary>
        /// 根据ID和大于修改时间查询修改信息列表(多用于乐观锁的判断,以修改时间为判断)
        /// </summary>
        /// <param name="models">模型数组</param>
        /// <param name="mode">访问模式,默认为主库</param>
        /// <param name="comData">通用数据</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>只有修改信息的模型列表</returns>
        public virtual IList <ModelT> SelectModifyInfosByIdAndGeModifyTime(ModelT[] models, AccessMode mode = AccessMode.MASTER, CommonUseData comData = null, string connectionId = null)
        {
            IList <ModelT> result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = SelectModifyInfosByIdAndGeModifyTime(models, dbConn, GetDbTransaction(connId, mode), comData: comData);
            }, mode);

            return(result);
        }
Esempio n. 14
0
        /// <summary>
        /// 查询模型列表
        /// </summary>
        /// <param name="propertyNames">属性名称集合</param>
        /// <param name="comData">通用数据</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>模型列表</returns>
        public virtual IList <ModelT> Select(string[] propertyNames, CommonUseData comData = null, string connectionId = null)
        {
            IList <ModelT> result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = Select(dbConn, GetDbTransaction(connId, AccessMode.SLAVE), propertyNames, comData: comData);
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 15
0
        /// <summary>
        /// 根据ID统计模型数
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="comData">通用数据</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>模型数</returns>
        public virtual int Count(IdT id, CommonUseData comData = null, string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = Count(id, dbConn, GetDbTransaction(connId, AccessMode.SLAVE), comData: comData);
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 16
0
        /// <summary>
        /// 根据ID集合查询模型列表
        /// </summary>
        /// <param name="ids">ID集合</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>模型列表</returns>
        public virtual IList <ModelT> Select(IdT[] ids, string connectionId = null)
        {
            IList <ModelT> result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = Select(ids, dbConn, GetDbTransaction(connId, AccessMode.SLAVE));
            }, AccessMode.SLAVE);

            return(result);
        }
        /// <summary>
        /// 插入模型列表
        /// </summary>
        /// <param name="models">模型列表</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>影响行数</returns>
        public virtual int Insert(IList <ModelT> models, string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = Insert(models, dbConn, GetDbTransaction(connId, AccessMode.MASTER));
            }, AccessMode.MASTER);

            return(result);
        }
        /// <summary>
        /// 根据登录ID或编码或名称查询用户信息,但排除ID
        /// </summary>
        /// <param name="notId">排除ID</param>
        /// <param name="loginId">登录ID</param>
        /// <param name="code">编码</param>
        /// <param name="name">名称</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>用户信息</returns>
        public UserInfo SelectByLoginIdOrCodeOrNameNotId(int notId, string loginId, string code, string name, string connectionId = null)
        {
            UserInfo result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{SelectSql()} WHERE [{GetFieldByProp("Id")}]!=@Id AND ([{GetFieldByProp("LoginId")}]=@LoginId OR [{GetFieldByProp("Code")}]=@Code OR [{GetFieldByProp("Name")}]=@Name)";
                result     = dbConn.QueryFirstOrDefault <UserInfo>(sql, new { Id = notId, LoginId = loginId, Code = code, Name = name });
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 19
0
        /// <summary>
        /// 根据归属删除
        /// </summary>
        /// <param name="ownerType">归属类型</param>
        /// <param name="ownerId">归属ID</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>影响行数</returns>
        public int DeleteByOwner(short ownerType, int ownerId, string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{DeleteSql()} WHERE owner_type=@OwnerType AND owner_id=@OwnerId";
                result     = dbConn.Execute(sql, new { OwnerType = ownerType, OwnerId = ownerId }, GetDbTransaction(connId));
            });

            return(result);
        }
        /// <summary>
        /// 根据登录ID和密码查询用户信息
        /// </summary>
        /// <param name="loginId">登录ID</param>
        /// <param name="password">密码</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>用户信息</returns>
        public UserInfo SelectByLoginIdAndPassword(string loginId, string password, string connectionId = null)
        {
            UserInfo result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{SelectSql()} WHERE {GetFieldByProp("LoginId")}=@LoginId AND [{GetFieldByProp("Password")}]=@Password";
                result     = dbConn.QueryFirstOrDefault <UserInfo>(sql, new { LoginId = loginId, Password = password });
            }, AccessMode.SLAVE);

            return(result);
        }
        /// <summary>
        /// 根据ID更新密码
        /// </summary>
        /// <param name="user">用户</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>影响行数</returns>
        public int UpdatePasswordById(UserInfo user, string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"UPDATE [{Table}] SET [{GetFieldByProp("Password")}]=@Password{GetModifyInfoSql(user)} WHERE {GetFieldByProp("Id") }=@Id";
                result     = dbConn.Execute(sql, user, GetDbTransaction(connId));
            });

            return(result);
        }
Esempio n. 22
0
        /// <summary>
        /// 根据用户ID删除
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>影响行数</returns>
        public int DeleteByUserId(int userId, string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{DeleteSql()} WHERE {GetFieldByProp("UserId")}=@UserId";
                result     = dbConn.Execute(sql, new { UserId = userId }, GetDbTransaction(connId));
            });

            return(result);
        }
        /// <summary>
        /// 根据流程关卡ID查询退件流程路线列表
        /// </summary>
        /// <param name="flowCensorshipId">流程关卡ID</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>退件流程路线列表</returns>
        public IList <ReturnFlowRouteInfo> SelectByFlowCensorshipId(int flowCensorshipId, string connectionId = null)
        {
            IList <ReturnFlowRouteInfo> result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{SelectSql()} WHERE {GetFieldByProp("FlowCensorshipId")}=@FlowCensorshipId";
                result     = dbConn.Query <ReturnFlowRouteInfo>(sql, new { FlowCensorshipId = flowCensorshipId }).AsList();
            }, AccessMode.SLAVE);

            return(result);
        }
        /// <summary>
        /// 根据数据字典ID和文本统计个数,但排除ID
        /// </summary>
        /// <param name="notId">排除ID</param>
        /// <param name="dataDictionaryId">数据字典ID</param>
        /// <param name="text">文本</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>个数</returns>
        public int CountByDataItemIdAndTextNotId(int notId, int dataDictionaryId, string text, string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{CountSql()} WHERE `{GetFieldByProp("Id")}`!=@Id AND {GetFieldByProp("DataDictionaryId")}=@DataDictionaryId AND `{GetFieldByProp("Text")}`=@Text";
                result     = dbConn.ExecuteScalar <int>(sql, new { Id = notId, DataDictionaryId = dataDictionaryId, Text = text });
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 25
0
        /// <summary>
        /// 查询模型列表并分页
        /// </summary>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">每页记录数</param>
        /// <param name="propertyNames">属性名称集合</param>
        /// <param name="filter">筛选</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>分页信息</returns>
        public virtual PagingInfo <ModelT> SelectPage(int pageIndex, int pageSize, string[] propertyNames, FilterInfo filter = null, string connectionId = null)
        {
            BeforeFilterInfo(filter);
            PagingInfo <ModelT> result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                result = SelectPage(pageIndex, pageSize, dbConn, filter, GetDbTransaction(connId, AccessMode.SLAVE), propertyNames);
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 26
0
        /// <summary>
        /// 根据工作流ID查询测试表单信息
        /// </summary>
        /// <param name="workflowId">工作流ID</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>测试表单信息</returns>
        public TestFormInfo SelectByWorkflowId(int workflowId, string connectionId = null)
        {
            TestFormInfo result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{SelectSql()} WHERE {GetFieldByProp("WorkflowId")}=@WorkflowId";
                result     = dbConn.QueryFirstOrDefault <TestFormInfo>(sql, new { WorkflowId = workflowId }, GetDbTransaction(connId));
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 27
0
        /// <summary>
        /// 根据流程ID更新流程状态
        /// </summary>
        /// <param name="testForm">测试表单</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>影响行数</returns>
        public int UpdateFlowStatusByWorkflowId(TestFormInfo testForm, string connectionId = null)
        {
            int result = 0;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"UPDATE `{Table}` SET {GetFieldByProp("FlowStatus")}=@FlowStatus{GetModifyInfoSql(testForm)} WHERE {GetFieldByProp("WorkflowId")}=@WorkflowId";
                result     = dbConn.Execute(sql, testForm, GetDbTransaction(connId));
            });

            return(result);
        }
Esempio n. 28
0
        /// <summary>
        /// 查询角色列表并去掉系统隐藏
        /// </summary>
        /// <param name="connectionId">连接ID</param>
        /// <returns>角色列表</returns>
        public IList <RoleInfo> SelectAndNotSystemHide(string connectionId = null)
        {
            IList <RoleInfo> result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{SelectSql()} WHERE {GetFieldByProp("SystemHide")}=@SystemHide";
                result     = dbConn.Query <RoleInfo>(sql, new { SystemHide = false }).AsList();
            }, AccessMode.SLAVE);

            return(result);
        }
Esempio n. 29
0
        /// <summary>
        /// 根据编码或名称查询角色列表,但排除ID
        /// </summary>
        /// <param name="role">编码</param>
        /// <param name="notId">名称</param>
        /// <param name="notId">排除ID</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>角色列表</returns>
        public IList <RoleInfo> SelelctByCodeOrNameNotId(string code, string name, int notId, string connectionId = null)
        {
            IList <RoleInfo> result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{SelectSql()} WHERE Id!=@Id AND (`{GetFieldByProp("Code")}`=@Code OR `{GetFieldByProp("Name")}`=@Name)";
                result     = dbConn.Query <RoleInfo>(sql, new { Id = notId, Code = code, Name = name }).AsList();
            }, AccessMode.SLAVE);

            return(result);
        }
        /// <summary>
        /// 根据数据字典ID查询数据字典子项列表
        /// </summary>
        /// <param name="dataDictionaryId">数据字典ID</param>
        /// <param name="connectionId">连接ID</param>
        /// <returns>数据字典子项列表</returns>
        public IList <DataDictionaryItemInfo> SelectByDataDictionaryId(int dataDictionaryId, string connectionId = null)
        {
            IList <DataDictionaryItemInfo> result = null;

            DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) =>
            {
                string sql = $"{SelectSql()} WHERE {GetFieldByProp("DataDictionaryId")}=@DataDictionaryId";
                result     = dbConn.Query <DataDictionaryItemInfo>(sql, new { DataDictionaryId = dataDictionaryId }).AsList();
            }, AccessMode.SLAVE);

            return(result);
        }