コード例 #1
0
ファイル: ProjectUdf.aspx.cs プロジェクト: evelh/Done
        protected void SaveClose_Click(object sender, EventArgs e)
        {
            string udfValue = Request.Form[udf.id.ToString()];

            if (!string.IsNullOrWhiteSpace(udfValue) && !string.IsNullOrEmpty(udfValue))
            {
            }
            else
            {
                udfValue = null;
            }
            DicEnum.OPER_LOG_OBJ_CATE operCate = DicEnum.OPER_LOG_OBJ_CATE.PROJECT_EXTENSION_INFORMATION;
            switch (cate)
            {
            case DicEnum.UDF_CATE.PROJECTS:
                operCate = DicEnum.OPER_LOG_OBJ_CATE.PROJECT_EXTENSION_INFORMATION;
                break;

            default:
                break;
            }


            var result = new UserDefinedFieldsBLL().EditUdf(cate, objectId, udf.id, udfValue, Request.Form["description"], LoginUserId, operCate);

            if (result)
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('保存成功');window.close();self.opener.location.reload();</script>");
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('保存失败');window.close();self.opener.location.reload();</script>");
            }
        }
コード例 #2
0
ファイル: UserDefinedFieldsBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 修改自定义字段某个值
        /// </summary>
        public bool EditUdf(DicEnum.UDF_CATE cate, long objectId, int udfId, string value, string desc, long user_id, DicEnum.OPER_LOG_OBJ_CATE operType)
        {
            // 更新自定义字段值
            var    udfList   = GetUdf(cate);
            var    udfValues = GetUdfValue(cate, objectId, udfList);
            var    user      = new UserResourceBLL().GetSysUserSingle(user_id);
            int    index     = udfValues.FindIndex(f => f.id == udfId);
            object oldVal    = udfValues[index].value;

            udfValues[index].value = value;
            UpdateUdfValue(cate, udfList, objectId, udfValues,
                           new UserInfoDto {
                id = user_id, name = user.name
            }, operType);
            var  colName = udfList.Find(f => f.id == udfId).name;
            bool result  = true;

            switch (cate)
            {
            case DicEnum.UDF_CATE.PROJECTS:
                result = new ProjectBLL().AddUdfActivity(objectId, colName, oldVal, value, desc, user_id);
                break;

            default:
                break;
            }

            return(result);
        }
コード例 #3
0
ファイル: UserDefinedFieldsBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 更新自定义字段值,并记录日志
        /// </summary>
        /// <param name="cate"></param>
        /// <param name="fields"></param>
        /// <param name="id"></param>
        /// <param name="vals"></param>
        /// <param name="user"></param>
        /// <param name="oper_log_cate"></param>
        /// <returns></returns>
        public bool UpdateUdfValue(DicEnum.UDF_CATE cate, List <UserDefinedFieldDto> fields, long id, List <UserDefinedFieldValue> vals, UserInfoDto user, DicEnum.OPER_LOG_OBJ_CATE oper_log_cate)
        {
            if (vals == null || vals.Count == 0)
            {
                return(true);
            }
            var oldVal = GetUdfValue(cate, id, fields);
            Dictionary <string, string> dict = new Dictionary <string, string>();
            StringBuilder updateSb           = new StringBuilder();

            foreach (var val in vals)
            {
                var oldv = oldVal.Find(f => f.id == val.id);
                if (oldv != null && object.Equals(oldv.value, val.value))
                {
                    continue;
                }
                var fld = fields.Find(f => f.id == val.id);
                if (val.value == null)
                {
                    updateSb.Append(fld.col_name).Append("=null,");    // 组合sql更新语句
                }
                else
                {
                    string v = val.value.ToString().Replace("'", "''");                // 转义单引号
                    updateSb.Append(fld.col_name).Append("='").Append(v).Append("',"); // 组合sql更新语句
                }

                dict.Add(fld.col_name, (oldv == null?"":oldv.value) + "→" + val.value); // 生成操作日志
            }
            if (dict.Count == 0)                                                        // 无修改
            {
                return(true);
            }

            string updateStr = updateSb.Remove(updateSb.Length - 1, 1).ToString();
            string sql       = $"UPDATE {GetTableName(cate)} SET {updateStr} WHERE parent_id={id}";

            if (new sys_udf_field_dal().ExecuteSQL(sql) <= 0)
            {
                return(false);
            }

            sys_oper_log log = new sys_oper_log()
            {
                user_cate           = "用户",
                user_id             = user.id,
                name                = user.name,
                phone               = user.mobile == null ? "" : user.mobile,
                oper_time           = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now),
                oper_object_cate_id = (int)oper_log_cate,
                oper_object_id      = id,   // 操作对象id
                oper_type_id        = (int)DicEnum.OPER_LOG_TYPE.UPDATE,
                oper_description    = new Tools.Serialize().SerializeJson(dict),
                remark              = "修改自定义字段值"
            };                                  // 创建日志

            new sys_oper_log_dal().Insert(log); // 插入日志

            return(true);
        }
コード例 #4
0
ファイル: UserDefinedFieldsBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 保存记录中的自定义字段值,并记录日志
        /// </summary>
        /// <param name="cate">客户、联系人等类别</param>
        /// <param name="userId">操作用户id</param>
        /// <param name="objId">记录的id</param>
        /// <param name="fields">自定义字段信息</param>
        /// <param name="value">自定义字段值</param>
        /// <param name="oper_log_cate"></param>
        /// <returns></returns>
        public bool SaveUdfValue(DicEnum.UDF_CATE cate, long userId, long objId, List <UserDefinedFieldDto> fields, List <UserDefinedFieldValue> value, DicEnum.OPER_LOG_OBJ_CATE oper_log_cate)
        {
            // 无自定义字段信息
            if (value == null)
            {
                value = new List <UserDefinedFieldValue>();
            }

            StringBuilder select             = new StringBuilder();
            StringBuilder values             = new StringBuilder();
            Dictionary <string, object> dict = new Dictionary <string, object>();

            foreach (var val in value)
            {
                var field = fields.FindAll(s => s.id == val.id);
                if (field == null || field.Count == 0)
                {
                    continue;
                }
                string fieldName = field.First().col_name;
                if (val.value != null)
                {
                    select.Append(",").Append(fieldName);
                    string v = val.value.ToString().Replace("'", "''"); // 转义单引号
                    values.Append(",'").Append(v).Append("'");
                    dict.Add(fieldName, val.value);
                }
            }

            string table  = GetTableName(cate);
            var    dal    = new sys_udf_field_dal();
            string insert = $"INSERT INTO {table} (id,parent_id{select.ToString()}) VALUES ({dal.GetNextIdCom()},{objId}{values.ToString()})";

            try
            {
                int rslt = dal.ExecuteSQL(insert);
                if (rslt <= 0)
                {
                    return(false);
                }

                var          user = new sys_resource_dal().FindById(userId);
                sys_oper_log log  = new sys_oper_log()
                {
                    user_cate           = "用户",
                    user_id             = user.id,
                    name                = user.name,
                    phone               = user.mobile_phone == null ? "" : user.mobile_phone,
                    oper_time           = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now),
                    oper_object_cate_id = (int)oper_log_cate,
                    oper_object_id      = objId,   // 操作对象id
                    oper_type_id        = (int)DicEnum.OPER_LOG_TYPE.ADD,
                    oper_description    = new Tools.Serialize().SerializeJson(dict),
                    remark              = "新增自定义字段值"
                };                                  // 创建日志
                new sys_oper_log_dal().Insert(log); // 插入日志
            }
            catch
            {
                return(false);   // TODO: 异常处理
            }

            return(true);
        }
コード例 #5
0
ファイル: OperLogBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 插入删除日志
        /// </summary>
        /// <typeparam name="T">日志对象类</typeparam>
        /// <param name="entity">操作对象</param>
        /// <param name="objId">操作对象id</param>
        /// <param name="userId">userid</param>
        /// <param name="cate">操作对象种类</param>
        /// <param name="remark">备注</param>
        public static void OperLogDelete <T>(T entity, long objId, long userId, DicEnum.OPER_LOG_OBJ_CATE cate, string remark) where T : class
        {
            string desc = dal.AddValue <T>(entity);

            OperLog(objId, userId, DicEnum.OPER_LOG_TYPE.DELETE, cate, desc, remark);
        }
コード例 #6
0
ファイル: OperLogBLL.cs プロジェクト: evelh/Done
 /// <summary>
 /// 插入更新日志
 /// </summary>
 /// <param name="desc">更新对象的修改内容</param>
 /// <param name="objId">操作对象id</param>
 /// <param name="userId">userid</param>
 /// <param name="cate">操作对象种类</param>
 /// <param name="remark">备注</param>
 public static void OperLogUpdate(string desc, long objId, long userId, DicEnum.OPER_LOG_OBJ_CATE cate, string remark)
 {
     OperLog(objId, userId, DicEnum.OPER_LOG_TYPE.UPDATE, cate, desc, remark);
 }
コード例 #7
0
ファイル: OperLogBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 废弃
        /// </summary>
        /// <typeparam name="T">日志对象类</typeparam>
        /// <param name="entity">操作对象</param>
        /// <param name="entityOld">操作对象旧值</param>
        /// <param name="objId">操作对象id</param>
        /// <param name="userId">userid</param>
        /// <param name="cate">操作对象种类</param>
        /// <param name="remark">备注</param>
        public static void OperLogUpdate <T>(T entity, T entityOld, long objId, long userId, DicEnum.OPER_LOG_OBJ_CATE cate, string remark) where T : class
        {
            string desc = dal.CompareValue <T>(entityOld, entity);

            OperLog(objId, userId, DicEnum.OPER_LOG_TYPE.UPDATE, cate, desc, remark);
        }
コード例 #8
0
ファイル: OperLogBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 插入日志
        /// </summary>
        /// <param name="objId">操作对象id</param>
        /// <param name="userId">userid</param>
        /// <param name="type">操作类型</param>
        /// <param name="cate">操作对象种类</param>
        /// <param name="operDesc">操作内容</param>
        /// <param name="remark">备注</param>
        public static void OperLog(long objId, long userId, DicEnum.OPER_LOG_TYPE type, DicEnum.OPER_LOG_OBJ_CATE cate, string operDesc, string remark)
        {
            sys_oper_log log = new sys_oper_log();

            log.user_id             = userId;
            log.user_cate           = "用户";
            log.name                = "";
            log.phone               = "";
            log.oper_time           = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);
            log.oper_object_cate_id = (int)cate;
            log.oper_object_id      = objId;// 操作对象id
            log.oper_type_id        = (int)type;
            log.oper_description    = operDesc;
            log.remark              = remark;

            dal.Insert(log);
        }