113 lines
4.8 KiB
C#
113 lines
4.8 KiB
C#
using Dapper;
|
|
using NetCore.Model.crm;
|
|
using NetCore.Model.enums;
|
|
using NetCore.Model.qw;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
//using Kogel.Dapper.Extension.MySql;
|
|
|
|
namespace NetCore.BLL
|
|
{
|
|
/// <summary>
|
|
/// 企业微信订单客户操作
|
|
/// </summary>
|
|
public class qw_orderuser_bll
|
|
{
|
|
private string comcode;
|
|
/// <summary>
|
|
///企业微信订单客户操作
|
|
/// </summary>
|
|
/// <param name="comcode">公司编码</param>
|
|
public qw_orderuser_bll(string _comcode)
|
|
{
|
|
comcode = _comcode;
|
|
}
|
|
/// <summary>
|
|
/// 订单客户初始化(已经兼容小事业部)
|
|
/// </summary>
|
|
public void InitHgOrderUser()
|
|
{
|
|
using (IDbConnection con = ConnectionFactory.CreateConnection(ContextType.crmContext, comcode, false))
|
|
{
|
|
List<wx_order_userid> list = new List<wx_order_userid>();
|
|
var aax = con.GetType().Name.ToLower();
|
|
if (aax.Contains("oracle"))//oracle数据库
|
|
{
|
|
list = con.Query<wx_order_userid>(@" select userid external_userid from ww_extuser_resid x
|
|
where userid is not null and exists
|
|
(select * from wx_szzyorder t where t.orderstatus in (200, 205, 220, 80, 90)
|
|
and t.arrivalpay > 100 and x.resid = t.resid
|
|
)
|
|
union
|
|
select t.external_userid from wx_szzyorder t where t.orderstatus in (200, 205, 220, 80, 90)
|
|
and t.arrivalpay > 100 and t.external_userid is not null", null, buffered: false).ToList();
|
|
}
|
|
else if (aax.Contains("mysql"))//mysql版本的涉及到多个事业部
|
|
{
|
|
list = con.Query<wx_order_userid>($@"
|
|
select DISTINCT t.external_userid from wx_szzyorder t
|
|
join WX_ORDEREXT b on b.orderid=t.orderid
|
|
where t.orderstatus in (200, 205, 220, 80, 90)
|
|
and t.arrivalpay > 100 and t.external_userid is not null and t.external_userid!=''
|
|
and exists(select 1 from bas_company aa where aa.companycode='{comcode}' and b.CHANNEL>=aa.channelMin and b.channel<=aa.channelMax);
|
|
", null, buffered: false).ToList();
|
|
}
|
|
|
|
|
|
using (IDbConnection conqw = ConnectionFactory.CreateConnection(ContextType.qwContext, comcode))
|
|
{
|
|
List<wx_order_userid> nowlist = conqw.Query<wx_order_userid>("select external_userid from hg_orderuser;", null, buffered: false).ToList();
|
|
var welist = list.Select(m => m.external_userid).ToArray();
|
|
var ollist = nowlist.Select(m => m.external_userid).ToArray();
|
|
var needDel = nowlist.Where(m => !welist.Contains(m.external_userid));
|
|
foreach (wx_order_userid item in needDel)//删除多余的订单客户
|
|
{
|
|
conqw.Execute("delete from hg_orderuser where external_userid=@external_userid", item);
|
|
}
|
|
|
|
var needInsert = list.Where(m => !ollist.Contains(m.external_userid));
|
|
foreach (var item in needInsert)
|
|
{
|
|
conqw.Execute("insert into hg_orderuser(external_userid)values(@external_userid)", item);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 初始化工作企业微信信息(已经兼容小事业部)
|
|
/// </summary>
|
|
public void InitHgJobUser()
|
|
{
|
|
using (IDbConnection con = ConnectionFactory.CreateConnection(ContextType.crmContext, comcode, false))
|
|
{
|
|
List<hg_jobuser> list = con.Query<hg_jobuser>($@"select distinct userid,corpid from ww_hhuser_eid t
|
|
where t.eid in(
|
|
select x.eid from bas_innerusergroup a
|
|
join bas_inneruser x on x.pkid=a.inneruserid
|
|
where a.companyid=(select companyid from bas_company where COMPANYCODE='{comcode}' )
|
|
)
|
|
", null, buffered: false).ToList();
|
|
|
|
using (IDbConnection conqw = ConnectionFactory.CreateConnection(ContextType.qwContext, comcode))
|
|
{
|
|
List<hg_jobuser> nowlist = conqw.Query<hg_jobuser>("select userid,corpid from hg_jobuser;", null, buffered: false).ToList();
|
|
var needDel = nowlist.Where(m => !list.Contains(m));
|
|
foreach (hg_jobuser item in needDel)//删除多余的订单客户
|
|
{
|
|
conqw.Execute("delete from hg_jobuser where userid=@userid and corpid=@corpid", item);
|
|
}
|
|
|
|
var needInsert = list.Where(m => !nowlist.Contains(m));
|
|
foreach (var item in needInsert)
|
|
{
|
|
conqw.Execute("insert into hg_jobuser(userid,corpid)values(@userid,@corpid)", item);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|