using System; using System.Collections.Generic; using System.Data; using SuperMap.RealEstate.ServiceModel; using Business = SuperMap.RealEstate.FrameWork.Platform.Business; using HCC = HZQR.Common.Common; using HZQR.Common; namespace EShang.Common.GeneralMethod { /// /// 操作日志表相关方法 /// 2024/8/26 19:11:20自动生成 /// public class OPERATELOGHelper { #region 获取操作日志表列表 /// /// 获取操作日志表列表 /// /// 事务管理器 /// 查询结果总数 /// 查询条件对象 public static List GetOPERATELOGList(Transaction transaction, ref int TotalCount, Model.SearchModel searchModel) { List OPERATELOGList = new List(); string WhereSQL = "", RowFilterSQL = ""; if (searchModel.SearchParameter != null) { WhereSQL = OperationDataHelper.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "", "OPERATELOG_TYPES", "OPERATE_DATE_Start", "OPERATE_DATE_End", "BUSINESS_DATE_Start", "BUSINESS_DATE_End"); if (WhereSQL != "") { WhereSQL = " WHERE " + WhereSQL; } //查询操作类型 if (searchModel.SearchParameter.OPERATELOG_TYPES.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OPERATELOG_TYPE IN (" + searchModel.SearchParameter.OPERATELOG_TYPES + ")"; } //查询操作时间 if (searchModel.SearchParameter.OPERATE_DATE_Start.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OPERATE_DATE >= TO_DATE('" + searchModel.SearchParameter.OPERATE_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')"; } if (searchModel.SearchParameter.OPERATE_DATE_End.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "OPERATE_DATE < TO_DATE('" + searchModel.SearchParameter.OPERATE_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1"; } //查询业务时间 if (searchModel.SearchParameter.BUSINESS_DATE_Start.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SUBSTR(BUSINESS_DATE,1,8) >= " + DateTime.Parse(searchModel.SearchParameter.BUSINESS_DATE_Start).ToString("yyyyMMdd"); } if (searchModel.SearchParameter.BUSINESS_DATE_End.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SUBSTR(BUSINESS_DATE,1,8) <= " + DateTime.Parse(searchModel.SearchParameter.BUSINESS_DATE_End).ToString("yyyyMMdd"); } } DataTable dtOPERATELOG = new Business.PERMISSIONAPPLY(transaction).ExecuteDataTable( "SELECT * FROM PLATFORM_FRAMEWORK.T_OPERATELOG" + WhereSQL); //增加组合查询条件 if (searchModel.keyWord != null && !string.IsNullOrWhiteSpace(searchModel.keyWord.Key)) { foreach (string KeyName in searchModel.keyWord.Key.Split(',')) { RowFilterSQL += (RowFilterSQL == "" ? "" : " or ") + KeyName + " like '%" + searchModel.keyWord.Value + "%'"; } } if (RowFilterSQL != "") { dtOPERATELOG.DefaultView.RowFilter = RowFilterSQL; } //排序: dtOPERATELOG.DefaultView.Sort = searchModel.SortStr; dtOPERATELOG = dtOPERATELOG.DefaultView.ToTable(); //获取查询结果总记录条数 TotalCount = dtOPERATELOG.Rows.Count; //根据传入的页码和每页显示条数返回结果 dtOPERATELOG = CommonHelper.GetDataTableWithPageSize(dtOPERATELOG, searchModel.PageSize, searchModel.PageIndex); foreach (DataRow drOPERATELOG in dtOPERATELOG.Rows) { Model.OPERATELOGModel operatelogModel = new Model.OPERATELOGModel(); //绑定操作日志表数据对象 BindDataRowToModel(drOPERATELOG, operatelogModel); OPERATELOGList.Add(operatelogModel); } return OPERATELOGList; } #region 绑定model /// /// 绑定model /// /// datarow数据源 /// model对象 public static void BindDataRowToModel(DataRow drOPERATELOG, Model.OPERATELOGModel operatelogModel) { if (drOPERATELOG["OPERATELOG_ID"].ToString() != "") { operatelogModel.OPERATELOG_ID = drOPERATELOG["OPERATELOG_ID"].TryParseToInt(); //内码 } if (drOPERATELOG["OPERATELOG_TYPE"].ToString() != "") { operatelogModel.OPERATELOG_TYPE = drOPERATELOG["OPERATELOG_TYPE"].TryParseToInt(); //操作类型 } if (drOPERATELOG["USER_ID"].ToString() != "") { operatelogModel.USER_ID = drOPERATELOG["USER_ID"].TryParseToInt(); //帐户内码 } operatelogModel.USER_NAME = drOPERATELOG["USER_NAME"].ToString(); //用户名称 operatelogModel.USER_PASSPORT = drOPERATELOG["USER_PASSPORT"].ToString(); //登录账户 if (drOPERATELOG["MODULE_ID"].ToString() != "") { operatelogModel.MODULE_ID = drOPERATELOG["MODULE_ID"].TryParseToInt(); //模块内码 } operatelogModel.MODULE_NAME = drOPERATELOG["MODULE_NAME"].ToString(); //模块名称 operatelogModel.MODULE_GUID = drOPERATELOG["MODULE_GUID"].ToString(); //唯一标识 if (!string.IsNullOrWhiteSpace(drOPERATELOG["OPERATE_DATE"].ToString())) { //操作时间 operatelogModel.OPERATE_DATE = drOPERATELOG["OPERATE_DATE"].ToString(); } operatelogModel.OPERATELOG_DESC = drOPERATELOG["OPERATELOG_DESC"].ToString(); //备注说明 if (drOPERATELOG["SERVERPART_ID"].ToString() != "") { operatelogModel.SERVERPART_ID = drOPERATELOG["SERVERPART_ID"].TryParseToInt(); //服务区内码 } operatelogModel.SERVERPART_CODE = drOPERATELOG["SERVERPART_CODE"].ToString(); //服务区编码 if (drOPERATELOG["SERVERPARTSHOP_ID"].ToString() != "") { operatelogModel.SERVERPARTSHOP_ID = drOPERATELOG["SERVERPARTSHOP_ID"].TryParseToInt(); //门店内码 } operatelogModel.SHOPCODE = drOPERATELOG["SHOPCODE"].ToString(); //门店编码 if (!string.IsNullOrWhiteSpace(drOPERATELOG["BUSINESS_DATE"].ToString())) { //业务时间 operatelogModel.BUSINESS_DATE = HCC.Common.TranslateDateTime(drOPERATELOG["BUSINESS_DATE"].ToString()); } if (drOPERATELOG["BUSINESSTYPE"].ToString() != "") { operatelogModel.BUSINESSTYPE = drOPERATELOG["BUSINESSTYPE"].TryParseToInt(); //商品业态 } if (drOPERATELOG["DIFFERENT_AMOUNT"].ToString() != "") { operatelogModel.DIFFERENT_AMOUNT = drOPERATELOG["DIFFERENT_AMOUNT"].TryParseToDouble(); //金额差异 } if (drOPERATELOG["MOBILEPAY_DIFFERENT"].ToString() != "") { operatelogModel.MOBILEPAY_DIFFERENT = drOPERATELOG["MOBILEPAY_DIFFERENT"].TryParseToDouble(); //移动支付差异 } if (drOPERATELOG["OPERATE_STATE"].ToString() != "") { operatelogModel.OPERATE_STATE = drOPERATELOG["OPERATE_STATE"].TryParseToShort(); //处理状态 } operatelogModel.USER_LOGINIP = drOPERATELOG["USER_LOGINIP"].ToString(); //登录IP operatelogModel.USER_LOGINPLACE = drOPERATELOG["USER_LOGINPLACE"].ToString(); //登录地址 operatelogModel.BROWSER_VERSION = drOPERATELOG["BROWSER_VERSION"].ToString(); //浏览器版本 operatelogModel.OPERATING_SYSTEM = drOPERATELOG["OPERATING_SYSTEM"].ToString(); //操作系统 } #endregion #endregion #region 获取操作日志表明细 /// /// 获取操作日志表明细 /// /// 事务管理器 /// 操作日志表内码 public static Model.OPERATELOGModel GetOPERATELOGDetail(Transaction transaction, int OPERATELOGId) { Model.OPERATELOGModel operatelogModel = new Model.OPERATELOGModel(); string WhereSQL = "WHERE OPERATELOG_ID = " + OPERATELOGId; //查询明细数据 DataTable dtOPERATELOG = new Business.PERMISSIONAPPLY(transaction).ExecuteDataTable( "SELECT * FROM PLATFORM_FRAMEWORK.T_OPERATELOG " + WhereSQL); if (dtOPERATELOG.Rows.Count > 0) { //绑定操作日志表数据对象 BindDataRowToModel(dtOPERATELOG.Rows[0], operatelogModel); } return operatelogModel; } #endregion #region 同步操作日志表 /// /// 赋值操作日志表数据对象 /// /// 事务管理器 /// 操作日志表数据对象 public static bool SynchroOPERATELOG(Transaction transaction, Model.OPERATELOGModel operatelogModel) { bool SynchroFlag = true; string SQLString; List excludeField = new List(); Dictionary dateFieldList = new Dictionary(); string tableName = "PLATFORM_FRAMEWORK.T_OPERATELOG", keyField = "OPERATELOG_ID", seqName = "SEQ_OPERATELOG"; Business.PERMISSIONAPPLY _PERMISSIONAPPLY = new Business.PERMISSIONAPPLY(transaction); #region 添加SQL语句中需要排除在外的字段 excludeField.Add("OPERATELOG_TYPES"); excludeField.Add("OPERATE_DATE_Start"); excludeField.Add("OPERATE_DATE_End"); excludeField.Add("BUSINESS_DATE_Start"); excludeField.Add("BUSINESS_DATE_End"); #endregion #region 添加SQL语句中日期相关字段的执行语句 //操作时间 if (!string.IsNullOrWhiteSpace(operatelogModel.OPERATE_DATE)) { dateFieldList.Add("OPERATE_DATE", "TO_DATE('" + operatelogModel.OPERATE_DATE + "','YYYY/MM/DD HH24:MI:SS')"); } else { dateFieldList.Add("OPERATE_DATE", "NULL"); } //业务时间 if (!string.IsNullOrWhiteSpace(operatelogModel.BUSINESS_DATE)) { dateFieldList.Add("BUSINESS_DATE", DateTime.Parse( operatelogModel.BUSINESS_DATE).ToString("yyyyMMddHHmmss")); } else { dateFieldList.Add("BUSINESS_DATE", "NULL"); } #endregion if (operatelogModel.OPERATELOG_ID != null) { string WhereSQL = " WHERE OPERATELOG_ID = " + operatelogModel.OPERATELOG_ID; DataTable dtOPERATELOG = _PERMISSIONAPPLY.ExecuteDataTable( "SELECT * FROM PLATFORM_FRAMEWORK.T_OPERATELOG" + WhereSQL); if (dtOPERATELOG.Rows.Count > 0) { SQLString = OperationDataHelper.GetTableExcuteSQL( operatelogModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL); } else { return false; } } else { DataTable dtOPERATELOG = _PERMISSIONAPPLY.ExecuteDataTable( "SELECT " + seqName + ".NEXTVAL FROM DUAL"); operatelogModel.OPERATELOG_ID = dtOPERATELOG.Rows[0][0].TryParseToInt(); SQLString = OperationDataHelper.GetTableExcuteSQL( operatelogModel, 0, tableName, keyField, seqName, dateFieldList, excludeField); } _PERMISSIONAPPLY.ExecuteNonQuery(SQLString, null); return SynchroFlag; } #endregion #region 删除操作日志表 /// /// 删除操作日志表 /// /// 事务管理器 /// 操作日志表内码 public static bool DeleteOPERATELOG(Transaction transaction, int? OPERATELOGId) { bool DeleteFlag = false; if (OPERATELOGId != null) { } return DeleteFlag; } #endregion } }