using System; using System.Collections.Generic; using System.Data; using SuperMap.RealEstate.ServiceModel; using Business = SuperMap.RealEstate.MobileServicePlatform.Business; using HCC = HZQR.Common.Common; using HZQR.Common; namespace EShang.Common.GeneralMethod { /// /// 消息通知表相关方法 /// 2024/12/17 14:54:39自动生成 /// public class NOTICEINFOHelper { #region 获取消息通知表列表 /// /// 获取消息通知表列表 /// /// 事务管理器 /// 查询结果总数 /// 查询条件对象 public static List GetNOTICEINFOList(Transaction transaction, ref int TotalCount, Model.SearchModel searchModel) { List NOTICEINFOList = new List(); string WhereSQL = "", RowFilterSQL = ""; if (searchModel.SearchParameter != null) { WhereSQL = OperationDataHelper.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "", "NOTICEINFO_TYPES", "SERVERPART_IDS", "SERVERPARTSHOP_IDS", "START_DATE_Start", "START_DATE_End", "END_DATE_Start", "END_DATE_End", "ISSUED_DATE_Start", "ISSUED_DATE_End"); if (WhereSQL != "") { WhereSQL = " WHERE " + WhereSQL; } //查询消息类型 if (searchModel.SearchParameter.NOTICEINFO_TYPES.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "NOTICEINFO_TYPE IN (" + searchModel.SearchParameter.NOTICEINFO_TYPES + ")"; } //查询服务区内码 if (searchModel.SearchParameter.SERVERPART_IDS.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SERVERPART_ID IN (" + searchModel.SearchParameter.SERVERPART_IDS + ")"; } //查询门店内码 if (searchModel.SearchParameter.SERVERPARTSHOP_IDS.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SERVERPARTSHOP_ID IN (" + searchModel.SearchParameter.SERVERPARTSHOP_IDS + ")"; } //查询生效开始时间 if (searchModel.SearchParameter.START_DATE_Start.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "START_DATE >= TO_DATE('" + searchModel.SearchParameter.START_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')"; } if (searchModel.SearchParameter.START_DATE_End.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "START_DATE < TO_DATE('" + searchModel.SearchParameter.START_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1"; } //查询截止时间 if (searchModel.SearchParameter.END_DATE_Start.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "END_DATE >= TO_DATE('" + searchModel.SearchParameter.END_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')"; } if (searchModel.SearchParameter.END_DATE_End.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "END_DATE < TO_DATE('" + searchModel.SearchParameter.END_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1"; } //查询下发时间 if (searchModel.SearchParameter.ISSUED_DATE_Start.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "ISSUED_DATE >= TO_DATE('" + searchModel.SearchParameter.ISSUED_DATE_Start.Split(' ')[0] + "','YYYY/MM/DD')"; } if (searchModel.SearchParameter.ISSUED_DATE_End.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "ISSUED_DATE < TO_DATE('" + searchModel.SearchParameter.ISSUED_DATE_End.Split(' ')[0] + "','YYYY/MM/DD') + 1"; } } DataTable dtNOTICEINFO = new Business.APPMANAGE(transaction).ExecuteDataTable( "SELECT * FROM MOBILESERVICE_PLATFORM.T_NOTICEINFO" + 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 != "") { dtNOTICEINFO.DefaultView.RowFilter = RowFilterSQL; } //排序: dtNOTICEINFO.DefaultView.Sort = searchModel.SortStr; dtNOTICEINFO = dtNOTICEINFO.DefaultView.ToTable(); //获取查询结果总记录条数 TotalCount = dtNOTICEINFO.Rows.Count; //根据传入的页码和每页显示条数返回结果 dtNOTICEINFO = CommonHelper.GetDataTableWithPageSize(dtNOTICEINFO, searchModel.PageSize, searchModel.PageIndex); foreach (DataRow drNOTICEINFO in dtNOTICEINFO.Rows) { Model.NOTICEINFOModel noticeinfoModel = new Model.NOTICEINFOModel(); //绑定消息通知表数据对象 BindDataRowToModel(drNOTICEINFO, noticeinfoModel); NOTICEINFOList.Add(noticeinfoModel); } return NOTICEINFOList; } #region 绑定model /// /// 绑定model /// /// datarow数据源 /// model对象 public static void BindDataRowToModel(DataRow drNOTICEINFO, Model.NOTICEINFOModel noticeinfoModel) { if (drNOTICEINFO["NOTICEINFO_ID"].ToString() != "") { noticeinfoModel.NOTICEINFO_ID = drNOTICEINFO["NOTICEINFO_ID"].TryParseToInt(); //消息通知表内码 } if (drNOTICEINFO["NOTICEINFO_TYPE"].ToString() != "") { noticeinfoModel.NOTICEINFO_TYPE = drNOTICEINFO["NOTICEINFO_TYPE"].TryParseToInt(); //消息类型 } if (drNOTICEINFO["OWNERUNIT_ID"].ToString() != "") { noticeinfoModel.OWNERUNIT_ID = drNOTICEINFO["OWNERUNIT_ID"].TryParseToInt(); //业主单位内码 } if (drNOTICEINFO["PROVINCE_CODE"].ToString() != "") { noticeinfoModel.PROVINCE_CODE = drNOTICEINFO["PROVINCE_CODE"].TryParseToInt(); //省份编码 } if (drNOTICEINFO["SERVERPART_ID"].ToString() != "") { noticeinfoModel.SERVERPART_ID = drNOTICEINFO["SERVERPART_ID"].TryParseToInt(); //服务区内码 } noticeinfoModel.SERVERPART_CODE = drNOTICEINFO["SERVERPART_CODE"].ToString(); //服务区编码 noticeinfoModel.SERVERPART_NAME = drNOTICEINFO["SERVERPART_NAME"].ToString(); //服务区名称 if (drNOTICEINFO["SERVERPARTSHOP_ID"].ToString() != "") { noticeinfoModel.SERVERPARTSHOP_ID = drNOTICEINFO["SERVERPARTSHOP_ID"].TryParseToInt(); //门店内码 } noticeinfoModel.SHOPCODE = drNOTICEINFO["SHOPCODE"].ToString(); //门店编码 noticeinfoModel.SHOPNAME = drNOTICEINFO["SHOPNAME"].ToString(); //门店名称 noticeinfoModel.NOTICEINFO_CONTENT = drNOTICEINFO["NOTICEINFO_CONTENT"].ToString(); //通知内容 if (!string.IsNullOrWhiteSpace(drNOTICEINFO["START_DATE"].ToString())) { //生效开始时间 noticeinfoModel.START_DATE = drNOTICEINFO["START_DATE"].ToString(); } if (!string.IsNullOrWhiteSpace(drNOTICEINFO["END_DATE"].ToString())) { //截止时间 noticeinfoModel.END_DATE = drNOTICEINFO["END_DATE"].ToString(); } if (!string.IsNullOrWhiteSpace(drNOTICEINFO["ISSUED_DATE"].ToString())) { //下发时间 noticeinfoModel.ISSUED_DATE = drNOTICEINFO["ISSUED_DATE"].ToString(); } noticeinfoModel.FEEDBACK_CONTENT = drNOTICEINFO["FEEDBACK_CONTENT"].ToString(); //反馈内容 if (drNOTICEINFO["NOTICEINFO_OPENEFFECT"].ToString() != "") { noticeinfoModel.NOTICEINFO_OPENEFFECT = drNOTICEINFO["NOTICEINFO_OPENEFFECT"].TryParseToShort(); //是否开机显示 } if (drNOTICEINFO["NOTICEINFO_ISROLL"].ToString() != "") { noticeinfoModel.NOTICEINFO_ISROLL = drNOTICEINFO["NOTICEINFO_ISROLL"].TryParseToShort(); //是否滚动显示 } if (drNOTICEINFO["NOTICEINFO_STATE"].ToString() != "") { noticeinfoModel.NOTICEINFO_STATE = drNOTICEINFO["NOTICEINFO_STATE"].TryParseToShort(); //有效状态 } if (drNOTICEINFO["STAFF_ID"].ToString() != "") { noticeinfoModel.STAFF_ID = drNOTICEINFO["STAFF_ID"].TryParseToInt(); //操作人内码 } noticeinfoModel.STAFF_NAME = drNOTICEINFO["STAFF_NAME"].ToString(); //操作人员 if (drNOTICEINFO["OPERATE_DATE"].ToString() != "") { noticeinfoModel.OPERATE_DATE = drNOTICEINFO["OPERATE_DATE"].TryParseToDateTime(); //操作时间 } noticeinfoModel.NOTICEINFO_DESC = drNOTICEINFO["NOTICEINFO_DESC"].ToString(); //备注说明 noticeinfoModel.NOTICEINFO_TITLE = drNOTICEINFO["NOTICEINFO_TITLE"].ToString(); //消息通知标题 } #endregion #endregion #region 获取消息通知表明细 /// /// 获取消息通知表明细 /// /// 事务管理器 /// 消息通知表内码 public static Model.NOTICEINFOModel GetNOTICEINFODetail(Transaction transaction, int NOTICEINFOId) { Model.NOTICEINFOModel noticeinfoModel = new Model.NOTICEINFOModel(); string WhereSQL = "WHERE NOTICEINFO_ID = " + NOTICEINFOId; //查询明细数据 DataTable dtNOTICEINFO = new Business.APPMANAGE(transaction).ExecuteDataTable( "SELECT * FROM MOBILESERVICE_PLATFORM.T_NOTICEINFO " + WhereSQL); if (dtNOTICEINFO.Rows.Count > 0) { //绑定消息通知表数据对象 BindDataRowToModel(dtNOTICEINFO.Rows[0], noticeinfoModel); } return noticeinfoModel; } #endregion #region 同步消息通知表 /// /// 赋值消息通知表数据对象 /// /// 事务管理器 /// 消息通知表数据对象 public static bool SynchroNOTICEINFO(Transaction transaction, Model.NOTICEINFOModel noticeinfoModel) { bool SynchroFlag = true; string SQLString; List excludeField = new List(); Dictionary dateFieldList = new Dictionary(); string tableName = "MOBILESERVICE_PLATFORM.T_NOTICEINFO", keyField = "NOTICEINFO_ID", seqName = "SEQ_NOTICEINFO"; Business.APPMANAGE _APPMANAGE = new Business.APPMANAGE(transaction); #region 添加SQL语句中需要排除在外的字段 excludeField.Add("NOTICEINFO_TYPES"); excludeField.Add("SERVERPART_IDS"); excludeField.Add("SERVERPARTSHOP_IDS"); excludeField.Add("START_DATE_Start"); excludeField.Add("START_DATE_End"); excludeField.Add("END_DATE_Start"); excludeField.Add("END_DATE_End"); excludeField.Add("ISSUED_DATE_Start"); excludeField.Add("ISSUED_DATE_End"); #endregion #region 添加SQL语句中日期相关字段的执行语句 //生效开始时间 if (!string.IsNullOrWhiteSpace(noticeinfoModel.START_DATE)) { dateFieldList.Add("START_DATE", "TO_DATE('" + noticeinfoModel.START_DATE + "','YYYY/MM/DD HH24:MI:SS')"); } else { dateFieldList.Add("START_DATE", "NULL"); } //截止时间 if (!string.IsNullOrWhiteSpace(noticeinfoModel.END_DATE)) { dateFieldList.Add("END_DATE", "TO_DATE('" + noticeinfoModel.END_DATE + "','YYYY/MM/DD HH24:MI:SS')"); } else { dateFieldList.Add("END_DATE", "NULL"); } //下发时间 if (!string.IsNullOrWhiteSpace(noticeinfoModel.ISSUED_DATE)) { dateFieldList.Add("ISSUED_DATE", "TO_DATE('" + noticeinfoModel.ISSUED_DATE + "','YYYY/MM/DD HH24:MI:SS')"); } else { dateFieldList.Add("ISSUED_DATE", "NULL"); } #endregion if (noticeinfoModel.NOTICEINFO_ID != null) { string WhereSQL = " WHERE NOTICEINFO_ID = " + noticeinfoModel.NOTICEINFO_ID; DataTable dtNOTICEINFO = _APPMANAGE.ExecuteDataTable( "SELECT * FROM MOBILESERVICE_PLATFORM.T_NOTICEINFO" + WhereSQL); if (dtNOTICEINFO.Rows.Count > 0) { SQLString = OperationDataHelper.GetTableExcuteSQL( noticeinfoModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL); } else { return false; } } else { DataTable dtNOTICEINFO = _APPMANAGE.ExecuteDataTable( "SELECT " + seqName + ".NEXTVAL FROM DUAL"); noticeinfoModel.NOTICEINFO_ID = dtNOTICEINFO.Rows[0][0].TryParseToInt(); SQLString = OperationDataHelper.GetTableExcuteSQL( noticeinfoModel, 0, tableName, keyField, seqName, dateFieldList, excludeField); } _APPMANAGE.ExecuteNonQuery(SQLString, null); return SynchroFlag; } #endregion #region 删除消息通知表 /// /// 删除消息通知表 /// /// 事务管理器 /// 消息通知表内码 public static bool DeleteNOTICEINFO(Transaction transaction, int? NOTICEINFOId) { bool DeleteFlag = false; if (NOTICEINFOId != null) { string SQLString = "UPDATE MOBILESERVICE_PLATFORM.T_NOTICEINFO SET NOTICEINFO_STATE = 0 WHERE NOTICEINFO_ID = " + NOTICEINFOId; int ExcuteCount = new Business.APPMANAGE(transaction).ExecuteNonQuery(SQLString, null); if (ExcuteCount > 0) { DeleteFlag = true; } } return DeleteFlag; } #endregion } }