using System; using System.Collections.Generic; using System.Data; using SuperMap.RealEstate.ServiceModel; using Business = SuperMap.RealEstate.Coop.Merchant.Business; using HCC = HZQR.Common.Common; using HZQR.Common; namespace EShang.Common.GeneralMethod { /// /// 发帖信息表相关方法 /// 2025/2/13 17:25:15自动生成 /// public class POSTHelper { #region 获取发帖信息表列表 /// /// 获取发帖信息表列表 /// /// 事务管理器 /// 查询结果总数 /// 查询条件对象 public static List GetPOSTList(Transaction transaction, ref int TotalCount, Model.SearchModel searchModel) { List POSTList = new List(); string WhereSQL = "", RowFilterSQL = ""; if (searchModel.SearchParameter != null) { WhereSQL = OperationDataHelper.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "", "MEMBERSHIP_IDS", "PUBLISH_TIME_Start", "PUBLISH_TIME_End", "POST_TAGS", "OPERATE_DATE_Start", "OPERATE_DATE_End"); if (WhereSQL != "") { WhereSQL = " WHERE " + WhereSQL; } //查询会员内码 if (searchModel.SearchParameter.MEMBERSHIP_IDS.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "MEMBERSHIP_ID IN (" + searchModel.SearchParameter.MEMBERSHIP_IDS + ")"; } //查询发帖时间 if (searchModel.SearchParameter.PUBLISH_TIME_Start.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SUBSTR(PUBLISH_TIME,1,8) >= " + DateTime.Parse(searchModel.SearchParameter.PUBLISH_TIME_Start).ToString("yyyyMMdd"); } if (searchModel.SearchParameter.PUBLISH_TIME_End.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "SUBSTR(PUBLISH_TIME,1,8) <= " + DateTime.Parse(searchModel.SearchParameter.PUBLISH_TIME_End).ToString("yyyyMMdd"); } //查询帖子标签 if (searchModel.SearchParameter.POST_TAGS.TryParseToString() != "") { WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "POST_TAG IN ('" + searchModel.SearchParameter.POST_TAGS.Replace(",", "','") + "')"; } //查询操作时间 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"; } } DataTable dtPOST = new Business.OWNERUNIT(transaction).ExecuteDataTable( "SELECT * FROM COOP_MERCHANT.T_POST" + 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 != "") { dtPOST.DefaultView.RowFilter = RowFilterSQL; } //排序: dtPOST.DefaultView.Sort = searchModel.SortStr; dtPOST = dtPOST.DefaultView.ToTable(); //获取查询结果总记录条数 TotalCount = dtPOST.Rows.Count; //根据传入的页码和每页显示条数返回结果 dtPOST = CommonHelper.GetDataTableWithPageSize(dtPOST, searchModel.PageSize, searchModel.PageIndex); foreach (DataRow drPOST in dtPOST.Rows) { Model.POSTModel postModel = new Model.POSTModel(); //绑定发帖信息表数据对象 BindDataRowToModel(drPOST, postModel); POSTList.Add(postModel); } return POSTList; } #region 绑定model /// /// 绑定model /// /// datarow数据源 /// model对象 public static void BindDataRowToModel(DataRow drPOST, Model.POSTModel postModel) { if (drPOST["POST_ID"].ToString() != "") { postModel.POST_ID = drPOST["POST_ID"].TryParseToInt(); //发帖内码 } if (drPOST["MEMBERSHIP_ID"].ToString() != "") { postModel.MEMBERSHIP_ID = drPOST["MEMBERSHIP_ID"].TryParseToInt(); //会员内码 } postModel.AUTHOR_NAME = drPOST["AUTHOR_NAME"].ToString(); //作者名称 postModel.POST_TITLE = drPOST["POST_TITLE"].ToString(); //帖子标题 postModel.POST_CONTENT = drPOST["POST_CONTENT"].ToString(); //发帖内容 postModel.POST_PLATFORM = drPOST["POST_PLATFORM"].ToString(); //发帖平台 if (!string.IsNullOrWhiteSpace(drPOST["PUBLISH_TIME"].ToString())) { //发帖时间 postModel.PUBLISH_TIME = HCC.Common.TranslateDateTime(drPOST["PUBLISH_TIME"].ToString()); } postModel.POST_TAG = drPOST["POST_TAG"].ToString(); //帖子标签 if (drPOST["POST_VIEWCOUNT"].ToString() != "") { postModel.POST_VIEWCOUNT = drPOST["POST_VIEWCOUNT"].TryParseToInt(); //浏览数量 } if (drPOST["POST_COMMENTCOUNT"].ToString() != "") { postModel.POST_COMMENTCOUNT = drPOST["POST_COMMENTCOUNT"].TryParseToInt(); //评论数量 } if (drPOST["POST_LIKECOUNT"].ToString() != "") { postModel.POST_LIKECOUNT = drPOST["POST_LIKECOUNT"].TryParseToInt(); //点赞数量 } postModel.POST_INFO = drPOST["POST_INFO"].ToString(); //附加信息 if (drPOST["STAFF_ID"].ToString() != "") { postModel.STAFF_ID = drPOST["STAFF_ID"].TryParseToInt(); //操作人内码 } postModel.STAFF_NAME = drPOST["STAFF_NAME"].ToString(); //操作人员 if (!string.IsNullOrWhiteSpace(drPOST["OPERATE_DATE"].ToString())) { //操作时间 postModel.OPERATE_DATE = drPOST["OPERATE_DATE"].ToString(); } if (drPOST["POST_STATE"].ToString() != "") { postModel.POST_STATE = drPOST["POST_STATE"].TryParseToShort(); //帖子状态 } postModel.POST_DESC = drPOST["POST_DESC"].ToString(); //备注说明 } #endregion #endregion #region 获取发帖信息表明细 /// /// 获取发帖信息表明细 /// /// 事务管理器 /// 发帖信息表内码 public static Model.POSTModel GetPOSTDetail(Transaction transaction, int POSTId) { Model.POSTModel postModel = new Model.POSTModel(); string WhereSQL = "WHERE POST_ID = " + POSTId; //查询明细数据 DataTable dtPOST = new Business.OWNERUNIT(transaction).ExecuteDataTable( "SELECT * FROM COOP_MERCHANT.T_POST " + WhereSQL); if (dtPOST.Rows.Count > 0) { //绑定发帖信息表数据对象 BindDataRowToModel(dtPOST.Rows[0], postModel); } return postModel; } #endregion #region 同步发帖信息表 /// /// 赋值发帖信息表数据对象 /// /// 事务管理器 /// 发帖信息表数据对象 public static bool SynchroPOST(Transaction transaction, Model.POSTModel postModel) { bool SynchroFlag = true; string SQLString; List excludeField = new List(); Dictionary dateFieldList = new Dictionary(); string tableName = "COOP_MERCHANT.T_POST", keyField = "POST_ID", seqName = "SEQ_POST"; Business.OWNERUNIT _OWNERUNIT = new Business.OWNERUNIT(transaction); #region 添加SQL语句中需要排除在外的字段 excludeField.Add("MEMBERSHIP_IDS"); excludeField.Add("PUBLISH_TIME_Start"); excludeField.Add("PUBLISH_TIME_End"); excludeField.Add("POST_TAGS"); excludeField.Add("OPERATE_DATE_Start"); excludeField.Add("OPERATE_DATE_End"); #endregion #region 添加SQL语句中日期相关字段的执行语句 //发帖时间 if (!string.IsNullOrWhiteSpace(postModel.PUBLISH_TIME)) { dateFieldList.Add("PUBLISH_TIME", DateTime.Parse( postModel.PUBLISH_TIME).ToString("yyyyMMddHHmmss")); } else { dateFieldList.Add("PUBLISH_TIME", "NULL"); } //操作时间 if (!string.IsNullOrWhiteSpace(postModel.OPERATE_DATE)) { dateFieldList.Add("OPERATE_DATE", "TO_DATE('" + postModel.OPERATE_DATE + "','YYYY/MM/DD HH24:MI:SS')"); } else { dateFieldList.Add("OPERATE_DATE", "NULL"); } #endregion if (postModel.POST_ID != null) { string WhereSQL = " WHERE POST_ID = " + postModel.POST_ID; DataTable dtPOST = _OWNERUNIT.ExecuteDataTable( "SELECT * FROM COOP_MERCHANT.T_POST" + WhereSQL); if (dtPOST.Rows.Count > 0) { SQLString = OperationDataHelper.GetTableExcuteSQL( postModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL); } else { return false; } } else { DataTable dtPOST = _OWNERUNIT.ExecuteDataTable( "SELECT " + seqName + ".NEXTVAL FROM DUAL"); postModel.POST_ID = dtPOST.Rows[0][0].TryParseToInt(); SQLString = OperationDataHelper.GetTableExcuteSQL( postModel, 0, tableName, keyField, seqName, dateFieldList, excludeField); } _OWNERUNIT.ExecuteNonQuery(SQLString, null); return SynchroFlag; } #endregion #region 删除发帖信息表 /// /// 删除发帖信息表 /// /// 事务管理器 /// 发帖信息表内码 public static bool DeletePOST(Transaction transaction, int? POSTId) { bool DeleteFlag = false; if (POSTId != null) { string SQLString = "UPDATE COOP_MERCHANT.T_POST SET POST_STATE = 0 WHERE POST_ID = " + POSTId; int ExcuteCount = new Business.OWNERUNIT(transaction).ExecuteNonQuery(SQLString, null); if (ExcuteCount > 0) { DeleteFlag = true; } } return DeleteFlag; } #endregion } }