2025-03-28 09:49:56 +08:00

453 lines
21 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 帖子评论点赞表相关方法
/// 2025/2/13 17:36:11自动生成
/// </summary>
public class POSTDETAILHelper
{
#region
/// <summary>
/// 获取帖子评论点赞表列表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="TotalCount">查询结果总数</param>
/// <param name="searchModel">查询条件对象</param>
public static List<Model.POSTDETAILModel> GetPOSTDETAILList(Transaction transaction,
ref int TotalCount, Model.SearchModel<Model.POSTDETAILModel> searchModel)
{
List<Model.POSTDETAILModel> POSTDETAILList = new List<Model.POSTDETAILModel>();
string WhereSQL = "", RowFilterSQL = "";
if (searchModel.SearchParameter != null)
{
WhereSQL = OperationDataHelper<Model.POSTDETAILModel>.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
/// <summary>
/// 绑定model
/// </summary>
/// <param name="drPOSTDETAIL">datarow数据源</param>
/// <param name="postdetailModel">model对象</param>
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
/// <summary>
/// 获取帖子评论点赞表明细
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="POSTDETAILId">帖子评论点赞表内码</param>
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
/// <summary>
/// 赋值帖子评论点赞表数据对象
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="postdetailModel">帖子评论点赞表数据对象</param>
public static bool SynchroPOSTDETAIL(Transaction transaction, Model.POSTDETAILModel postdetailModel)
{
bool SynchroFlag = true;
string SQLString;
List<string> excludeField = new List<string>();
Dictionary<string, string> dateFieldList = new Dictionary<string, string>();
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<Model.POSTDETAILModel>.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<Model.POSTDETAILModel>.GetTableExcuteSQL(
postdetailModel, 0, tableName, keyField, seqName, dateFieldList, excludeField);
}
_OWNERUNIT.ExecuteNonQuery(SQLString, null);
return SynchroFlag;
}
#endregion
#region
/// <summary>
/// 删除帖子评论点赞表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="POSTDETAILId">帖子评论点赞表内码</param>
public static bool DeletePOSTDETAIL(Transaction transaction, int? POSTDETAILId)
{
bool DeleteFlag = false;
if (POSTDETAILId != null)
{
}
return DeleteFlag;
}
#endregion
#region
/// <summary>
/// 获取帖子评论点赞表嵌套列表
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="POSTDETAIL_PIDS">评论内码</param>
/// <param name="SearchKey">模糊查询</param>
/// <returns></returns>
public static List<Model.NestingModel<Model.POSTDETAILModel>> GetNestingPOSTDETAILList(Transaction transaction,
string POSTDETAIL_PIDS, string SearchKey)
{
//申明嵌套列表集合
List<Model.NestingModel<Model.POSTDETAILModel>> nestingModelList = new List<Model.NestingModel<Model.POSTDETAILModel>>();
//赋值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<Model.POSTDETAILModel> nestingModel = new Model.NestingModel<Model.POSTDETAILModel>();
//将帖子评论点赞表model添加到嵌套对象中去
nestingModel.node = postdetailModel;
List<Model.NestingModel<Model.POSTDETAILModel>> nestingModelListChild = new List<Model.NestingModel<Model.POSTDETAILModel>>();
//调用绑定嵌套列表的方法
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
/// <summary>
/// 绑定嵌套列表
/// </summary>
/// <param name="POSTDETAIL_PID">上级分类</param>
/// <param name="nestingModelList">嵌套列表</param>
/// <param name="dtPOSTDETAIL">帖子评论点赞表数据</param>
/// <param name="SearchKey">模糊查询内容</param>
public static void BindNestingList(List<Model.NestingModel<Model.POSTDETAILModel>> nestingModelList,
string POSTDETAIL_PID, DataTable dtPOSTDETAIL, string SearchKey)
{
//遍历数据
foreach (DataRow drPOSTDETAIL in dtPOSTDETAIL.Select("POSTDETAIL_PID = " +
POSTDETAIL_PID, "POSTDETAIL_ID,POSTDETAIL_PID"))
{
//申明嵌套对象
Model.NestingModel<Model.POSTDETAILModel> nestingModelChild = new Model.NestingModel<Model.POSTDETAILModel>();
//申明帖子评论点赞表对象
Model.POSTDETAILModel postdetailModel = new Model.POSTDETAILModel();
//赋值帖子评论点赞表数据对象
BindDataRowToModel(drPOSTDETAIL, postdetailModel);
nestingModelChild.node = postdetailModel;
List<Model.NestingModel<Model.POSTDETAILModel>> nestingModelListChild = new List<Model.NestingModel<Model.POSTDETAILModel>>();
//判断下一关系级下面是否还存在数据,没有则跳出遍历
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
/// <summary>
/// 获取帖子评论点赞表嵌套树
/// </summary>
/// <param name="transaction">事务管理器</param>
/// <param name="POSTDETAIL_PIDS">评论内码</param>
/// <param name="SearchKey">模糊查询</param>
/// <returns></returns>
public static List<Model.NestingModel<Model.CommonTypeModel>> GetNestingPOSTDETAILTree(Transaction transaction,
string POSTDETAIL_PIDS, string SearchKey)
{
//申明嵌套树集合
List<Model.NestingModel<Model.CommonTypeModel>> nestingModelList = new List<Model.NestingModel<Model.CommonTypeModel>>();
//赋值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<Model.CommonTypeModel> nestingModel = new Model.NestingModel<Model.CommonTypeModel>();
//申明帖子评论点赞表对象
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<Model.NestingModel<Model.CommonTypeModel>> nestingModelListChild = new List<Model.NestingModel<Model.CommonTypeModel>>();
//调用绑定数据的方法
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
/// <summary>
/// 绑定嵌套树
/// </summary>
/// <param name="POSTDETAIL_PID">上级分类</param>
/// <param name="nestingModelList">嵌套列表</param>
/// <param name="dtPOSTDETAIL">帖子评论点赞表数据</param>
/// <param name="SearchKey">模糊查询内容</param>
public static void BindNestingTree(List<Model.NestingModel<Model.CommonTypeModel>> nestingModelList,
string POSTDETAIL_PID, DataTable dtPOSTDETAIL, string SearchKey)
{
//遍历数据
foreach (DataRow drPOSTDETAIL in dtPOSTDETAIL.Select("POSTDETAIL_PID = " +
POSTDETAIL_PID, "POSTDETAIL_ID,POSTDETAIL_PID"))
{
//申明嵌套对象
Model.NestingModel<Model.CommonTypeModel> nestingModelChild = new Model.NestingModel<Model.CommonTypeModel>();
//申明帖子评论点赞表对象
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<Model.NestingModel<Model.CommonTypeModel>> nestingModelListChild = new List<Model.NestingModel<Model.CommonTypeModel>>();
//判断下一关系级下面是否还存在数据,没有则跳出遍历
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
}
}