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:36:11自动生成
///
public class POSTDETAILHelper
{
#region 获取帖子评论点赞表列表
///
/// 获取帖子评论点赞表列表
///
/// 事务管理器
/// 查询结果总数
/// 查询条件对象
public static List GetPOSTDETAILList(Transaction transaction,
ref int TotalCount, Model.SearchModel searchModel)
{
List POSTDETAILList = new List();
string WhereSQL = "", RowFilterSQL = "";
if (searchModel.SearchParameter != null)
{
WhereSQL = OperationDataHelper.GetWhereSQL(searchModel.SearchParameter, searchModel.QueryType, "",
"OPERATE_DATE_Start", "OPERATE_DATE_End", "POSTDETAIL_IDS", "POSTDETAIL_PIDS");
if (WhereSQL != "")
{
WhereSQL = " WHERE " + WhereSQL;
}
//查询评论时间
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.POSTDETAIL_IDS.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "POSTDETAIL_ID IN (" + searchModel.SearchParameter.POSTDETAIL_IDS + ")";
}
//查询评论内码
if (searchModel.SearchParameter.POSTDETAIL_PIDS.TryParseToString() != "")
{
WhereSQL += (WhereSQL == "" ? " WHERE " : " AND ") + "POSTDETAIL_PID IN (" + searchModel.SearchParameter.POSTDETAIL_PIDS + ")";
}
}
DataTable dtPOSTDETAIL = new Business.OWNERUNIT(transaction).ExecuteDataTable(
"SELECT * FROM COOP_MERCHANT.T_POSTDETAIL" + 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 != "")
{
dtPOSTDETAIL.DefaultView.RowFilter = RowFilterSQL;
}
//排序:
dtPOSTDETAIL.DefaultView.Sort = searchModel.SortStr;
dtPOSTDETAIL = dtPOSTDETAIL.DefaultView.ToTable();
//获取查询结果总记录条数
TotalCount = dtPOSTDETAIL.Rows.Count;
//根据传入的页码和每页显示条数返回结果
dtPOSTDETAIL = CommonHelper.GetDataTableWithPageSize(dtPOSTDETAIL, searchModel.PageSize, searchModel.PageIndex);
foreach (DataRow drPOSTDETAIL in dtPOSTDETAIL.Rows)
{
Model.POSTDETAILModel postdetailModel = new Model.POSTDETAILModel();
//绑定帖子评论点赞表数据对象
BindDataRowToModel(drPOSTDETAIL, postdetailModel);
POSTDETAILList.Add(postdetailModel);
}
return POSTDETAILList;
}
#region 绑定model
///
/// 绑定model
///
/// datarow数据源
/// model对象
public static void BindDataRowToModel(DataRow drPOSTDETAIL, Model.POSTDETAILModel postdetailModel)
{
if (drPOSTDETAIL["POSTDETAIL_ID"].ToString() != "")
{
postdetailModel.POSTDETAIL_ID = drPOSTDETAIL["POSTDETAIL_ID"].TryParseToInt(); //内码
}
if (drPOSTDETAIL["POST_ID"].ToString() != "")
{
postdetailModel.POST_ID = drPOSTDETAIL["POST_ID"].TryParseToInt(); //帖子内码
}
if (drPOSTDETAIL["POSTDETAIL_PID"].ToString() != "")
{
postdetailModel.POSTDETAIL_PID = drPOSTDETAIL["POSTDETAIL_PID"].TryParseToInt(); //评论内码
}
if (drPOSTDETAIL["MEMBERSHIP_ID"].ToString() != "")
{
postdetailModel.MEMBERSHIP_ID = drPOSTDETAIL["MEMBERSHIP_ID"].TryParseToInt(); //会员内码
}
if (drPOSTDETAIL["POSTDETAIL_TYPE"].ToString() != "")
{
postdetailModel.POSTDETAIL_TYPE = drPOSTDETAIL["POSTDETAIL_TYPE"].TryParseToInt(); //用户行为(1000:浏览;2000:点赞;3000:评论)
}
postdetailModel.POSTDETAIL_CONTENT = drPOSTDETAIL["POSTDETAIL_CONTENT"].ToString(); //评论内容
postdetailModel.NICK_NAME = drPOSTDETAIL["NICK_NAME"].ToString(); //用户昵称
if (drPOSTDETAIL["STAFF_ID"].ToString() != "")
{
postdetailModel.STAFF_ID = drPOSTDETAIL["STAFF_ID"].TryParseToInt(); //操作人内码
}
postdetailModel.STAFF_NAME = drPOSTDETAIL["STAFF_NAME"].ToString(); //操作人员
if (!string.IsNullOrWhiteSpace(drPOSTDETAIL["OPERATE_DATE"].ToString()))
{
//评论时间
postdetailModel.OPERATE_DATE = drPOSTDETAIL["OPERATE_DATE"].ToString();
}
postdetailModel.POSTDETAIL_DESC = drPOSTDETAIL["POSTDETAIL_DESC"].ToString(); //备注说明
}
#endregion
#endregion
#region 获取帖子评论点赞表明细
///
/// 获取帖子评论点赞表明细
///
/// 事务管理器
/// 帖子评论点赞表内码
public static Model.POSTDETAILModel GetPOSTDETAILDetail(Transaction transaction, int POSTDETAILId)
{
Model.POSTDETAILModel postdetailModel = new Model.POSTDETAILModel();
string WhereSQL = "WHERE POSTDETAIL_ID = " + POSTDETAILId;
//查询明细数据
DataTable dtPOSTDETAIL = new Business.OWNERUNIT(transaction).ExecuteDataTable(
"SELECT * FROM COOP_MERCHANT.T_POSTDETAIL " + WhereSQL);
if (dtPOSTDETAIL.Rows.Count > 0)
{
//绑定帖子评论点赞表数据对象
BindDataRowToModel(dtPOSTDETAIL.Rows[0], postdetailModel);
}
return postdetailModel;
}
#endregion
#region 同步帖子评论点赞表
///
/// 赋值帖子评论点赞表数据对象
///
/// 事务管理器
/// 帖子评论点赞表数据对象
public static bool SynchroPOSTDETAIL(Transaction transaction, Model.POSTDETAILModel postdetailModel)
{
bool SynchroFlag = true;
string SQLString;
List excludeField = new List();
Dictionary dateFieldList = new Dictionary();
string tableName = "COOP_MERCHANT.T_POSTDETAIL", keyField = "POSTDETAIL_ID", seqName = "SEQ_POSTDETAIL";
Business.OWNERUNIT _OWNERUNIT = new Business.OWNERUNIT(transaction);
#region 添加SQL语句中需要排除在外的字段
excludeField.Add("POSTDETAIL_IDS");
excludeField.Add("POSTDETAIL_PIDS");
excludeField.Add("OPERATE_DATE_Start");
excludeField.Add("OPERATE_DATE_End");
#endregion
#region 添加SQL语句中日期相关字段的执行语句
//评论时间
if (!string.IsNullOrWhiteSpace(postdetailModel.OPERATE_DATE))
{
dateFieldList.Add("OPERATE_DATE", "TO_DATE('" +
postdetailModel.OPERATE_DATE + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
dateFieldList.Add("OPERATE_DATE", "NULL");
}
#endregion
if (postdetailModel.POSTDETAIL_ID != null)
{
string WhereSQL = " WHERE POSTDETAIL_ID = " + postdetailModel.POSTDETAIL_ID;
DataTable dtPOSTDETAIL = _OWNERUNIT.ExecuteDataTable(
"SELECT * FROM COOP_MERCHANT.T_POSTDETAIL" + WhereSQL);
if (dtPOSTDETAIL.Rows.Count > 0)
{
SQLString = OperationDataHelper.GetTableExcuteSQL(
postdetailModel, 1, tableName, keyField, seqName, dateFieldList, excludeField, WhereSQL);
}
else
{
return false;
}
}
else
{
DataTable dtPOSTDETAIL = _OWNERUNIT.ExecuteDataTable(
"SELECT " + seqName + ".NEXTVAL FROM DUAL");
postdetailModel.POSTDETAIL_ID = dtPOSTDETAIL.Rows[0][0].TryParseToInt();
SQLString = OperationDataHelper.GetTableExcuteSQL(
postdetailModel, 0, tableName, keyField, seqName, dateFieldList, excludeField);
}
_OWNERUNIT.ExecuteNonQuery(SQLString, null);
return SynchroFlag;
}
#endregion
#region 删除帖子评论点赞表
///
/// 删除帖子评论点赞表
///
/// 事务管理器
/// 帖子评论点赞表内码
public static bool DeletePOSTDETAIL(Transaction transaction, int? POSTDETAILId)
{
bool DeleteFlag = false;
if (POSTDETAILId != null)
{
}
return DeleteFlag;
}
#endregion
#region 获取帖子评论点赞表嵌套列表
///
/// 获取帖子评论点赞表嵌套列表
///
/// 事务管理器
/// 评论内码
/// 模糊查询
///
public static List> GetNestingPOSTDETAILList(Transaction transaction,
string POSTDETAIL_PIDS, string SearchKey)
{
//申明嵌套列表集合
List> nestingModelList = new List>();
//赋值sql语句
string WhereSQL = "";
//查询帖子评论点赞表数据
DataTable dtPOSTDETAIL = new Business.OWNERUNIT(transaction).FillDataTable(WhereSQL);
if (POSTDETAIL_PID == "-1")
{
//调用绑定数据的方法
BindNestingList(nestingModelList, "-1", dtPOSTDETAIL, SearchKey);
}
else
{
Model.POSTDETAILModel postdetailModel = GetPOSTDETAILDetail(transaction, POSTDETAIL_PID.TryParseToInt());
if (postdetailModel != null && postdetailModel.POSTDETAIL_ID != null)
{
//申明嵌套对象
Model.NestingModel nestingModel = new Model.NestingModel();
//将帖子评论点赞表model添加到嵌套对象中去
nestingModel.node = postdetailModel;
List> nestingModelListChild = new List>();
//调用绑定嵌套列表的方法
BindNestingList(nestingModelListChild, postdetailModel.POSTDETAIL_ID.ToString(), dtPOSTDETAIL, SearchKey);
//赋值子级
nestingModel.children = nestingModelListChild;
//过滤模糊查询条件
if (nestingModelListChild.Count > 0 || string.IsNullOrWhiteSpace(SearchKey))
{
nestingModelList.Add(nestingModel);
}
}
}
dtPOSTDETAIL.Clear();
dtPOSTDETAIL.Dispose();
return nestingModelList;
}
#region 绑定嵌套列表
///
/// 绑定嵌套列表
///
/// 上级分类
/// 嵌套列表
/// 帖子评论点赞表数据
/// 模糊查询内容
public static void BindNestingList(List> nestingModelList,
string POSTDETAIL_PID, DataTable dtPOSTDETAIL, string SearchKey)
{
//遍历数据
foreach (DataRow drPOSTDETAIL in dtPOSTDETAIL.Select("POSTDETAIL_PID = " +
POSTDETAIL_PID, "POSTDETAIL_ID,POSTDETAIL_PID"))
{
//申明嵌套对象
Model.NestingModel nestingModelChild = new Model.NestingModel();
//申明帖子评论点赞表对象
Model.POSTDETAILModel postdetailModel = new Model.POSTDETAILModel();
//赋值帖子评论点赞表数据对象
BindDataRowToModel(drPOSTDETAIL, postdetailModel);
nestingModelChild.node = postdetailModel;
List> nestingModelListChild = new List>();
//判断下一关系级下面是否还存在数据,没有则跳出遍历
if (dtPOSTDETAIL.Select("POSTDETAIL_PID = " + postdetailModel.POSTDETAIL_ID).Length > 0)
{
//调用绑定嵌套列表的方法
BindNestingList(nestingModelListChild, postdetailModel.POSTDETAIL_ID.ToString(), dtPOSTDETAIL, SearchKey);
//赋值子级
nestingModelChild.children = nestingModelListChild;
}
//过滤模糊查询条件
if (nestingModelListChild.Count > 0 || string.IsNullOrWhiteSpace(SearchKey))
{
nestingModelList.Add(nestingModelChild);
}
}
}
#endregion
#endregion
#region 获取帖子评论点赞表嵌套树
///
/// 获取帖子评论点赞表嵌套树
///
/// 事务管理器
/// 评论内码
/// 模糊查询
///
public static List> GetNestingPOSTDETAILTree(Transaction transaction,
string POSTDETAIL_PIDS, string SearchKey)
{
//申明嵌套树集合
List> nestingModelList = new List>();
//赋值sql语句
string WhereSQL = "";
//查询帖子评论点赞表数据
DataTable dtPOSTDETAIL = new Business.OWNERUNIT(transaction).FillDataTable(WhereSQL);
if (POSTDETAIL_PID == "-1")
{
//调用绑定数据的方法
BindNestingTree(nestingModelList, "-1", dtPOSTDETAIL, SearchKey);
}
else
{
Model.POSTDETAILModel postdetailModel = GetPOSTDETAILDetail(transaction, POSTDETAIL_PID.TryParseToInt());
if (postdetailModel != null && postdetailModel.POSTDETAIL_ID != null)
{
//申明嵌套对象
Model.NestingModel nestingModel = new Model.NestingModel();
//申明帖子评论点赞表对象
Model.CommonTypeModel commonTypeModel = new Model.CommonTypeModel
{
//将帖子评论点赞表赋值给CommonTypeModel
//绑定评论内容
label = postdetailModel.POSTDETAIL_CONTENT,
//绑定内码
value = postdetailModel.POSTDETAIL_ID.TryParseToInt(),
type = 1,//标识为子级节点
};
commonTypeModel.key = commonTypeModel.type + "-" + commonTypeModel.value;
//将commonTypeModel添加到嵌套对象中去
nestingModel.node = commonTypeModel;
List> nestingModelListChild = new List>();
//调用绑定数据的方法
BindNestingTree(nestingModelListChild, postdetailModel.POSTDETAIL_ID.ToString(), dtPOSTDETAIL, SearchKey);
//赋值子级
nestingModel.children = nestingModelListChild;
//过滤模糊查询条件
if (nestingModelListChild.Count > 0 || string.IsNullOrWhiteSpace(SearchKey))
{
nestingModelList.Add(nestingModel);
}
}
}
dtPOSTDETAIL.Clear();
dtPOSTDETAIL.Dispose();
return nestingModelList;
}
#region 绑定嵌套树
///
/// 绑定嵌套树
///
/// 上级分类
/// 嵌套列表
/// 帖子评论点赞表数据
/// 模糊查询内容
public static void BindNestingTree(List> nestingModelList,
string POSTDETAIL_PID, DataTable dtPOSTDETAIL, string SearchKey)
{
//遍历数据
foreach (DataRow drPOSTDETAIL in dtPOSTDETAIL.Select("POSTDETAIL_PID = " +
POSTDETAIL_PID, "POSTDETAIL_ID,POSTDETAIL_PID"))
{
//申明嵌套对象
Model.NestingModel nestingModelChild = new Model.NestingModel();
//申明帖子评论点赞表对象
Model.CommonTypeModel commonTypeModel = new Model.CommonTypeModel();
//将帖子评论点赞表赋值给CommonTypeModel
//绑定评论内容
commonTypeModel.label = drPOSTDETAIL["POSTDETAIL_CONTENT"].ToString();
//绑定内码
commonTypeModel.value = drPOSTDETAIL["POSTDETAIL_ID"].TryParseToInt();
commonTypeModel.type = 1;//标识为子级节点
commonTypeModel.key = commonTypeModel.type + "-" + commonTypeModel.value;
nestingModelChild.node = commonTypeModel;
List> nestingModelListChild = new List>();
//判断下一关系级下面是否还存在数据,没有则跳出遍历
if (dtPOSTDETAIL.Select("POSTDETAIL_PID = " + drPOSTDETAIL["POSTDETAIL_ID"]).Length > 0)
{
//调用绑定嵌套列表的方法
BindNestingTree(nestingModelListChild, drPOSTDETAIL["POSTDETAIL_ID"].ToString(), dtPOSTDETAIL, SearchKey);
//赋值子级
nestingModelChild.children = nestingModelListChild;
}
//过滤模糊查询条件
if (nestingModelListChild.Count > 0 || string.IsNullOrWhiteSpace(SearchKey))
{
nestingModelList.Add(nestingModelChild);
}
}
}
#endregion
#endregion
}
}