using Dapper;
using NetCore.Model.enums;
using NetCore.Model.wx;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
namespace NetCore.BLL.wx
{
public class wx_message_bll
{
private string comcode;
public wx_message_bll(string _comcode)
{
comcode = _comcode;
}
///
/// 获取数据源(已兼容)
///
///
///
///
///
///
///
public List GetList(string tablename, int clearcount, int pkid, int cusmsgdeedhg, DateTime checkdate)
{
using (IDbConnection con = ConnectionFactory.CreateConnection(ContextType.wxContext, comcode))
{
string contype = con.GetType().Name.ToLower();
string sql = string.Empty;
if (contype.Contains("sqlconnection"))
{
sql = string.Format(@"SELECT top {0} pkid,msgid,msgsvrid,status,issend,createtime,talker,imgpath,username,nickname,ctime,msgtype,msgcontent FROM WxMessage.dbo.{1} b
where pkid>@pkid
and ctime>@checkdate
and ctime<@checkdateNext
and msgtype in(1,34)
{2}
and exists(select 1 from hg_orderuser a where a.username=b.talker)
and exists(select 1 from hg_jobalias a where a.jobusername=b.username)
order by pkid asc", clearcount, tablename, (cusmsgdeedhg == 0 ? "and issend=1" : ""));//过滤掉,只执行订单客服消息
}
else if (contype.Contains("mysql"))
{
sql = string.Format(@"SELECT pkid,msgid,msgsvrid,status,issend,createtime,talker,imgpath,username,nickname,ctime,msgtype,msgcontent FROM WxMessage.{1} b
where pkid>@pkid
and ctime>@checkdate
and ctime<@checkdateNext
and msgtype in(1,34)
{2}
and exists(select 1 from hg_orderuser a where a.username=b.talker)
and exists(select 1 from hg_jobalias a where a.jobusername=b.username)
order by pkid asc limit {0} ", clearcount, tablename, (cusmsgdeedhg == 0 ? "and issend=1" : ""));//过滤掉,只执行订单客服消息
}
return con.Query(sql, new { pkid, checkdate, checkdateNext = checkdate.AddDays(1) }, buffered: false).ToList();
}
}
}
}