Ejemplo n.º 1
0
        /// <summary>
        /// 用户角色关系是否有模块权限
        /// </summary>
        /// <param name="roleId">角色主键</param>
        /// <param name="permissionItemCode">权限编号</param>
        /// <returns>有角色权限</returns>
        public bool CheckPermissionByRole(string roleId, string permissionItemCode)
        {
            var permissionItemManager = new PiPermissionItemManager(DBProvider, UserInfo);
            var permissionItemId      = permissionItemManager.GetProperty(PiPermissionItemTable.FieldCode, permissionItemCode, PiPermissionItemTable.FieldId);

            // 判断当前判断的权限是否存在,否则很容易出现前台设置了权限,后台没此项权限
            // 需要自动的能把前台判断过的权限,都记录到后台来
            #if (DEBUG)
            if (String.IsNullOrEmpty(permissionItemId))
            {
                PiPermissionItemEntity permissionItemEntity = new PiPermissionItemEntity
                {
                    Code        = permissionItemCode,
                    FullName    = permissionItemCode,
                    ParentId    = "",
                    IsScope     = 0,
                    AllowDelete = 1,
                    AllowEdit   = 1,
                    DeleteMark  = 0,
                    Enabled     = 1
                };
                // 这里是防止主键重复?
                // permissionEntity.ID = BusinessLogic.NewGuid();
                permissionItemManager.AddEntity(permissionItemEntity);
            }
            else
            {
                // 更新最后一次访问日期,设置为当前服务器日期
                SQLBuilder sqlBuilder = new SQLBuilder(DBProvider);
                sqlBuilder.BeginUpdate(PiPermissionItemTable.TableName);
                sqlBuilder.SetDBNow(PiPermissionItemTable.FieldLastCall);
                sqlBuilder.SetWhere(PiPermissionItemTable.FieldId, permissionItemId);
                sqlBuilder.EndUpdate();
            }
            #endif

            if (string.IsNullOrEmpty(permissionItemId))
            {
                return(false);
            }
            var sqlQuery = " SELECT COUNT(*) "
                           + "   FROM " + PiPermissionTable.TableName
                           + "  WHERE " + "(" + PiPermissionTable.FieldResourceCategory + " = '" + PiRoleTable.TableName + "') "
                           + "        AND (" + PiPermissionTable.FieldEnabled + " = 1) "
                           + "        AND (" + PiPermissionTable.FieldResourceId + " = '" + roleId + "' ) "
                           + "        AND (" + PiPermissionTable.FieldPermissionId + " = '" + permissionItemId + "') ";
            var rowCount     = 0;
            var returnObject = DBProvider.ExecuteScalar(sqlQuery);
            if (returnObject != null)
            {
                rowCount = int.Parse(returnObject.ToString());
            }
            return(rowCount > 0);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 重置访问情况
        /// </summary>
        /// <param name="id">主键</param>
        /// <returns>影响行数</returns>
        private int ResetVisitInfo(string id)
        {
            SQLBuilder sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(this.CurrentTableName);
            sqlBuilder.SetNull(PiUserLogOnTable.FieldFirstVisit);
            sqlBuilder.SetNull(PiUserLogOnTable.FieldPreviousVisit);
            sqlBuilder.SetNull(PiUserLogOnTable.FieldLastVisit);
            sqlBuilder.SetValue(PiUserLogOnTable.FieldLogOnCount, 0);
            sqlBuilder.SetWhere(PiUserLogOnTable.FieldId, id);
            return(sqlBuilder.EndUpdate());
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 离开时的日志记录
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="logId">日志主键</param>
        public void WriteExit(UserInfo userInfo, string logId)
        {
            var parameter = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, string.Empty);

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                var sqlBuilder = new SQLBuilder(dbProvider);
                sqlBuilder.BeginUpdate(CiLogTable.TableName);
                sqlBuilder.SetWhere(CiLogTable.FieldId, logId);
                sqlBuilder.EndUpdate();
            });
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Update 更新的主键
        /// </summary>
        /// <param name="folderEntity">文件夹对象</param>
        /// <returns>影响行数</returns>
        public int UpdateEntity(CiFolderEntity folderEntity)
        {
            var sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(CiFolderTable.TableName);
            this.SetEntity(sqlBuilder, folderEntity);
            sqlBuilder.SetValue(CiFolderTable.FieldModifiedUserId, UserInfo.Id);
            sqlBuilder.SetValue(CiFolderTable.FieldModifiedBy, UserInfo.RealName);
            sqlBuilder.SetDBNow(CiFolderTable.FieldModifiedOn);
            sqlBuilder.SetWhere(CiFolderTable.FieldId, folderEntity.Id);
            return(sqlBuilder.EndUpdate());
        }
        /// <summary>
        /// 获取一个操作权限的主键
        /// 若不存在就自动增加一个
        /// </summary>
        /// <param name="permissionItemCode">操作权限编号</param>
        /// <param name="permissionItemName">操作权限名称</param>
        /// <returns>主键</returns>
        public string GetIdByAdd(string permissionItemCode, string permissionItemName = null)
        {
            // 判断当前判断的权限是否存在,否则很容易出现前台设置了权限,后台没此项权限
            // 需要自动的能把前台判断过的权限,都记录到后台来

            string[] names  = { PiPermissionItemTable.FieldDeleteMark, PiPermissionItemTable.FieldEnabled, PiPermissionItemTable.FieldCode };
            object[] values = { 0, 1, permissionItemCode };

            var permissionItemEntity = new PiPermissionItemEntity();

            permissionItemEntity = BaseEntity.Create <PiPermissionItemEntity>(this.GetDT(names, values, PiPermissionItemTable.FieldId));
            string permissionItemId = string.Empty;

            if (permissionItemEntity.Id != null)
            {
                permissionItemId = permissionItemEntity.Id;
            }

            // 不存在的权限就自动加入。
            if (String.IsNullOrEmpty(permissionItemId))
            {
                // 这里需要进行一次加锁,方式并发冲突发生
                lock (PermissionItemLock)
                {
                    permissionItemEntity.Code         = permissionItemCode;
                    permissionItemEntity.FullName     = string.IsNullOrEmpty(permissionItemName) ? permissionItemCode : permissionItemName;
                    permissionItemEntity.CategoryCode = "Application";
                    permissionItemEntity.ParentId     = null;
                    permissionItemEntity.ModuleId     = null;
                    permissionItemEntity.IsScope      = 0;
                    permissionItemEntity.IsPublic     = 0;
                    permissionItemEntity.AllowDelete  = 1;
                    permissionItemEntity.AllowEdit    = 1;
                    permissionItemEntity.Enabled      = 1;
                    permissionItemEntity.DeleteMark   = 0;
                    // 这里是防止主键重复?
                    permissionItemEntity.Id = BusinessLogic.NewGuid();
                    permissionItemId        = this.AddEntity(permissionItemEntity);
                }
            }
            else
            {
                // 更新最后一次访问日期,设置为当前服务器日期
                var sqlBuilder = new SQLBuilder(DBProvider);
                sqlBuilder.BeginUpdate(PiPermissionItemTable.TableName);
                sqlBuilder.SetDBNow(PiPermissionItemTable.FieldLastCall);
                sqlBuilder.SetWhere(PiPermissionItemTable.FieldId, permissionItemId);
                sqlBuilder.EndUpdate();
            }

            return(permissionItemId);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 设置属性
        /// </summary>
        /// <param name="dbProvider">数据库连接</param>
        /// <param name="tableName">目标表名</param>
        /// <param name="whereParameters">条件字段,条件值</param>
        /// <param name="parameters">更新字段,更新值</param>
        /// <returns>影响行数</returns>
        public static int SetProperty(IDbProvider dbProvider, string tableName, List <KeyValuePair <string, object> > whereParameters, List <KeyValuePair <string, object> > parameters)
        {
            SQLBuilder sqlBuilder = new SQLBuilder(dbProvider);

            sqlBuilder.BeginUpdate(tableName);
            foreach (var parameter in parameters)
            {
                sqlBuilder.SetValue(parameter.Key, parameter.Value);
            }
            sqlBuilder.SetWhere(whereParameters);
            // sqlBuilder.SetDBNow(FieldModifiedOn);
            return(sqlBuilder.EndUpdate());
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 设置属性
        /// </summary>
        /// <param name="dbProvider">数据库连接</param>
        /// <param name="tableName">目标表名</param>
        /// <param name="name">条件字段</param>
        /// <param name="value">条件值</param>
        /// <param name="targetFields">更新字段</param>
        /// <param name="targetValues">更新值</param>
        /// <returns>影响行数</returns>
        public static int SetProperty(IDbProvider dbProvider, string tableName, string name, Object[] value, string[] targetFields, Object[] targetValues)
        {
            SQLBuilder sqlBuilder = new SQLBuilder(dbProvider);

            sqlBuilder.BeginUpdate(tableName);
            for (int i = 0; i < targetFields.Length; i++)
            {
                sqlBuilder.SetValue(targetFields[i], targetValues[i]);
            }
            // sqlBuilder.SetDBNow(BusinessLogic.FieldModifiedOn);
            sqlBuilder.SetWhere(name, value);
            return(sqlBuilder.EndUpdate());
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 重置访问情况
        /// </summary>
        /// <returns>影响行数</returns>
        public int ResetVisitInfo()
        {
            int        returnValue = 0;
            SQLBuilder sqlBuilder  = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(this.CurrentTableName);
            sqlBuilder.SetNull(PiUserLogOnTable.FieldFirstVisit);
            sqlBuilder.SetNull(PiUserLogOnTable.FieldPreviousVisit);
            sqlBuilder.SetNull(PiUserLogOnTable.FieldLastVisit);
            sqlBuilder.SetValue(PiUserLogOnTable.FieldLogOnCount, 0);
            returnValue = sqlBuilder.EndUpdate();
            return(returnValue);
        }
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="cIMESSAGEEntity">实体</param>
        public int UpdateEntity(CiMessageEntity cIMESSAGEEntity)
        {
            SQLBuilder sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(this.CurrentTableName);
            this.SetEntity(sqlBuilder, cIMESSAGEEntity);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(CiMessageTable.FieldModifiedBy, UserInfo.RealName);
            }
            sqlBuilder.SetDBNow(CiMessageTable.FieldModifiedOn);
            sqlBuilder.SetWhere(CiMessageTable.FieldId, cIMESSAGEEntity.Id);
            return(sqlBuilder.EndUpdate());
        }
Ejemplo n.º 10
0
 /// <summary>
 /// 更新实体
 /// </summary>
 /// <param name="staffEntity">实体</param>
 public int UpdateEntity(PiStaffEntity staffEntity)
 {
     SQLBuilder sqlBuilder = new SQLBuilder(DBProvider);
     sqlBuilder.BeginUpdate(PiStaffTable.TableName);
     this.SetEntity(sqlBuilder, staffEntity);
     if (UserInfo != null)
     {
         sqlBuilder.SetValue(PiStaffTable.FieldModifiedUserId, UserInfo.Id);
         sqlBuilder.SetValue(PiStaffTable.FieldModifiedBy, UserInfo.RealName);
     }
     sqlBuilder.SetDBNow(PiStaffTable.FieldModifiedOn);
     sqlBuilder.SetWhere(PiStaffTable.FieldId, staffEntity.Id);
     return sqlBuilder.EndUpdate();
 }
Ejemplo n.º 11
0
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="itemsEntity">实体</param>
        public int UpdateEntity(CiItemsEntity itemsEntity)
        {
            var sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(this.CurrentTableName);
            this.SetEntity(sqlBuilder, itemsEntity);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(CiItemsTable.FieldModifiedUserId, UserInfo.Id);
                sqlBuilder.SetValue(CiItemsTable.FieldModifiedBy, UserInfo.RealName);
            }
            sqlBuilder.SetDBNow(CiItemsTable.FieldModifiedOn);
            sqlBuilder.SetWhere(CiItemsTable.FieldId, itemsEntity.Id);
            return(sqlBuilder.EndUpdate());
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="piPlatFormAddInEntity">实体</param>
        public int UpdateEntity(PiPlatFormAddInEntity piPlatFormAddInEntity)
        {
            SQLBuilder sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(this.CurrentTableName);
            this.SetEntity(sqlBuilder, piPlatFormAddInEntity);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(PiPlatFormAddInTable.FieldModifiedBy, UserInfo.RealName);
                sqlBuilder.SetValue(PiPlatFormAddInTable.FieldModifiedUserId, piPlatFormAddInEntity.ModifiedUserId);
            }
            sqlBuilder.SetDBNow(PiPlatFormAddInTable.FieldModifiedOn);
            sqlBuilder.SetWhere(PiPlatFormAddInTable.FieldId, piPlatFormAddInEntity.Id);
            return(sqlBuilder.EndUpdate());
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="workFlowTemplateEntity">实体</param>
        public int UpdateEntity(WorkFlowTemplateEntity workFlowTemplateEntity)
        {
            var sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(this.CurrentTableName);
            this.SetEntity(sqlBuilder, workFlowTemplateEntity);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(WorkFlowTemplateTable.FieldModifiedUserId, UserInfo.Id);
                sqlBuilder.SetValue(WorkFlowTemplateTable.FieldModifiedBy, UserInfo.RealName);
            }
            sqlBuilder.SetDBNow(WorkFlowTemplateTable.FieldModifiedOn);
            sqlBuilder.SetWhere(WorkFlowTemplateTable.FieldWorkFlowId, workFlowTemplateEntity.WorkFlowId);
            return(sqlBuilder.EndUpdate());
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="entity">实体</param>
        public int UpdateEntity(PiPermissionEntity entity)
        {
            var sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(PiPermissionTable.TableName);
            this.SetEntity(sqlBuilder, entity);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(PiPermissionTable.FieldModifiedUserId, UserInfo.Id);
                sqlBuilder.SetValue(PiPermissionTable.FieldModifiedBy, UserInfo.RealName);
            }
            sqlBuilder.SetDBNow(PiPermissionTable.FieldModifiedOn);
            sqlBuilder.SetWhere(PiPermissionTable.FieldId, entity.Id);
            return(sqlBuilder.EndUpdate());
        }
Ejemplo n.º 15
0
        public int UpdateFile(string id, string fileName, byte[] file)
        {
            var sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(CiFileTable.TableName);
            sqlBuilder.SetValue(CiFileTable.FieldFileName, fileName);
            if (file != null)
            {
                sqlBuilder.SetValue(CiFileTable.FieldFileContent, file);
                sqlBuilder.SetValue(CiFileTable.FieldFileSize, file.Length);
            }
            sqlBuilder.SetValue(CiFileTable.FieldModifiedUserId, UserInfo.Id);
            sqlBuilder.SetValue(CiFileTable.FieldModifiedBy, UserInfo.RealName);
            sqlBuilder.SetDBNow(CiFileTable.FieldModifiedOn);
            sqlBuilder.SetWhere(CiFileTable.FieldId, id);
            return(sqlBuilder.EndUpdate());
        }
Ejemplo n.º 16
0
        //
        // 重置序列(暂不考虑并发问题)
        //


        #region public int Reset(string[] ids) 批量重置
        /// <summary>
        /// 批量重置
        /// </summary>
        /// <param name="ids">主键数组</param>
        /// <returns>影响行数</returns>
        public int Reset(string[] ids)
        {
            int        returnValue = 0;
            SQLBuilder sqlBuilder  = new SQLBuilder(DBProvider);

            for (int i = 0; i < ids.Length; i++)
            {
                if (ids[i].Length > 0)
                {
                    sqlBuilder.BeginUpdate(CiSequenceTable.TableName);
                    sqlBuilder.SetValue(CiSequenceTable.FieldSequence, this.DefaultSequence);
                    sqlBuilder.SetValue(CiSequenceTable.FieldReduction, this.DefaultReduction);
                    sqlBuilder.SetWhere(CiSequenceTable.FieldId, ids[i]);
                    returnValue += sqlBuilder.EndUpdate();
                }
            }
            return(returnValue);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="queryEngineDefineEntity">实体</param>
        /// <param name="statusCode">返回状态码</param>
        /// <returns>影响行数</returns>
        public int UpdateEntity(QueryEngineDefineEntity queryEngineDefineEntity, out string statusCode)
        {
            SQLBuilder sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(this.CurrentTableName);
            this.SetEntity(sqlBuilder, queryEngineDefineEntity);
            if (UserInfo != null)
            {
                sqlBuilder.SetValue(QueryEngineDefineTable.FieldModifiedUserId, UserInfo.Id);
                sqlBuilder.SetValue(QueryEngineDefineTable.FieldModifiedBy, UserInfo.RealName);
            }
            sqlBuilder.SetDBNow(QueryEngineDefineTable.FieldModifiedOn);
            sqlBuilder.SetWhere(QueryEngineDefineTable.FieldId, queryEngineDefineEntity.Id);
            int returnValue = sqlBuilder.EndUpdate();

            statusCode = returnValue == 1 ? StatusCode.OKUpdate.ToString() : StatusCode.ErrorDeleted.ToString();
            return(returnValue);
        }
Ejemplo n.º 18
0
        public int Update(string id, string folderId, string fileName, string description, bool enabled, out string statusCode)
        {
            statusCode = string.Empty;
            var sqlBuilder = new SQLBuilder(DBProvider);

            sqlBuilder.BeginUpdate(CiFileTable.TableName);
            sqlBuilder.SetValue(CiFileTable.FieldFolderId, folderId);
            sqlBuilder.SetValue(CiFileTable.FieldFileName, fileName);
            sqlBuilder.SetValue(CiFileTable.FieldEnabled, enabled);
            sqlBuilder.SetValue(CiFileTable.FieldDescription, description);
            sqlBuilder.SetValue(CiFileTable.FieldModifiedUserId, UserInfo.Id);
            sqlBuilder.SetValue(CiFileTable.FieldModifiedBy, UserInfo.RealName);
            sqlBuilder.SetDBNow(CiFileTable.FieldModifiedOn);
            sqlBuilder.SetWhere(CiFileTable.FieldId, id);
            var returnValue = sqlBuilder.EndUpdate();

            statusCode = returnValue > 0 ? StatusCode.OKUpdate.ToString() : StatusCode.ErrorDeleted.ToString();
            return(returnValue);
        }