using Mini.Common;
using Mini.Model;
using Mini.Model.CrmModel;
using Mini.Model.Entity;
using Mini.Model.ViewModel;
using MySql.Data.MySqlClient;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
namespace Mini.Services.ww
{
public class ww_hhuser_Service : Iww_hhuser_Service
{
private readonly crmContext _crmContext;
public ww_hhuser_Service(crmContext crmContext)
{
_crmContext = crmContext;
}
///
/// 内部群
///
///
///
///
public Ww_RoomChat GetRoomChat(string corpid, string chatid)
{
return _crmContext.Ww_RoomChat.FirstOrDefault(m => m.corpid == corpid && m.roomid == chatid);
}
///
/// 外部群
///
///
///
///
public Ww_GroupChat GetWw_GroupChat(string corpid, string chatid)
{
return _crmContext.Ww_GroupChat.FirstOrDefault(m => m.corpid == corpid && m.chat_id == chatid);
}
///
/// 内部群获取
///
///
public List GetInnerGroup(ref Laypage pager, string corpid, string name)
{
var db = from a in _crmContext.Ww_RoomChat
join b in _crmContext.Ww_hhuser on new { a.creator, a.corpid } equals new { creator = b.userid, b.corpid } into jiontemp
from c_tmp in jiontemp.DefaultIfEmpty()
select new Ww_InnerGroupModel
{
corpid = a.corpid,
creator = a.creator,
creatorname = c_tmp.uname,
ctime = a.ctime,
ltimeupdate = a.ltimeupdate,
membernum = a.membernum,
members = a.members,
notice = a.notice,
roomid = a.roomid,
roomname = a.roomname,
room_create_time = a.room_create_time
};
if (!string.IsNullOrEmpty(corpid))
{
string[] corpids = corpid.Split(",");
db = db.Where(m => corpids.Contains(m.corpid));
}
if (!string.IsNullOrEmpty(name))
{
db = db.Where(m => m.roomname.Contains(name));
}
db = db.OrderByDescending(m => m.ltimeupdate);
Pager pager1 = new Pager() { page = pager.page, rows = pager.limit };
PagerUtil.SetPager(ref db, ref pager1);
pager.count = pager1.totalRows;
List list = db.ToList();
foreach (Ww_InnerGroupModel item in list)
{
item.createtime = DateTimeTool.GetTimeFromLinuxShortTime(item.room_create_time).ToString("yyyy-MM-dd HH:mm:ss");
if (item.ltimeupdate.HasValue)
{
item.ltimeupdatestr = item.ltimeupdate.Value.ToString("yyyy-MM-dd HH:mm:ss");
}
}
return list;
}
///
/// 外部群获取
///
///
public List GetOuterGroup(ref Laypage pager, string corpid, string name)
{
var db = from a in _crmContext.Ww_GroupChat
join b in _crmContext.Ww_hhuser on new { a.owner, a.corpid } equals new { owner = b.userid, b.corpid } into jiontemp
from c_tmp in jiontemp.DefaultIfEmpty()
select new Ww_OuterGroupModel
{
corpid = a.corpid,
owner = a.owner,
creatorname = c_tmp.uname,
ctime = a.ctime,
ltimeupdate = a.ltimeupdate,
membernum = a.membernum,
member_list = a.member_list,
notice = a.notice,
chat_id = a.chat_id,
name = a.name,
create_time = a.create_time
};
if (!string.IsNullOrEmpty(corpid))
{
string[] corpids = corpid.Split(",");
db = db.Where(m => corpids.Contains(m.corpid));
}
if (!string.IsNullOrEmpty(name))
{
db = db.Where(m => m.name.Contains(name));
}
db = db.OrderByDescending(m => m.ltimeupdate);
Pager pager1 = new Pager() { page = pager.page, rows = pager.limit };
PagerUtil.SetPager(ref db, ref pager1);
pager.count = pager1.totalRows;
List list = db.ToList();
foreach (Ww_OuterGroupModel item in list)
{
item.createtime = DateTimeTool.GetTimeFromLinuxShortTime(item.create_time).ToString("yyyy-MM-dd HH:mm:ss");
if (item.ltimeupdate.HasValue)
{
item.ltimeupdatestr = item.ltimeupdate.Value.ToString("yyyy-MM-dd HH:mm:ss");
}
}
return list;
}
///
/// 获取企业微信成员列表
///
/// ID
///
public List WorList_Get(ref Laypage pager, string v_name, string v_corpid, string v_deptid)
{
var db = from a in _crmContext.Ww_hhuser
join b in _crmContext.Ww_Corp on a.corpid equals b.corpid
join c in _crmContext.Ww_hhuser_Name on new { a.userid, a.corpid } equals new { c.userid, c.corpid } into jiontemp
from c_tmp in jiontemp.DefaultIfEmpty()//左关联
select new Ww_hhuserModel()
{
corpid = b.corpid,
deptid = a.deptid,
corpname = b.corpname,
exinfo = a.exinfo,
uname = a.uname,
userid = a.userid,
lmsgtime = a.lmsgtime,
remarkname = c_tmp.remarkname,
alias = a.alias,
email = a.email,
fmsgtime = a.fmsgtime,
mobile = a.mobile
}
;
if (!string.IsNullOrEmpty(v_name))
{
db = db.Where(m => m.userid.Contains(v_name) || m.uname.Contains(v_name) || m.remarkname.Contains(v_name) || m.mobile.Contains(v_name) || m.email.Contains(v_name));
}
if (!string.IsNullOrEmpty(v_corpid))
{
db = db.Where(m => m.corpid == v_corpid);
if (!string.IsNullOrEmpty(v_deptid))
{
v_deptid = v_deptid.Trim();
int[] deptids = JsonHelper.JsonDivertToObj(v_deptid);
db = db.Where(m => deptids.Contains(m.deptid.Value));
}
}
db = db.OrderByDescending(m => m.lmsgtime);
Pager pager1 = new Pager() { page = pager.page, rows = pager.limit };
PagerUtil.SetPager(ref db, ref pager1);
pager.count = pager1.totalRows;
return db.ToList();
}
///
/// 朋友圈数据获取
///
/// ID
///
public List Moment_Get(ref Laypage pager, string v_name, string corp)
{
List list = new List();
try
{
string where = "";
List param = new List();
if (!string.IsNullOrEmpty(v_name))
{
where = " and a.uname like @name or a.userid like @name or a.mobile like @name or a.email like @name ";
param.Add(new MySqlParameter() { MySqlDbType = MySqlDbType.VarChar, Value = $"%{v_name}%", ParameterName = "@name" });
}
string connectStr = Utility.GetSettingByKey("ConnectionStrings:crmMsgContext");
string sql = @"select a.uname,a.exinfo,mm.corpname,t.* from wework_" + corp + @".ww_moment t
join ww_hhuser a on t.corpid = a.corpid and t.creator = a.userid
join ww_corp mm on mm.corpid=t.corpid
where 1=1 " + where + @"
order by create_time desc limit " + (pager.page - 1) * pager.limit + "," + pager.limit;
string countsql = "select count(*) mcount from wework_" + corp + ".ww_moment t join ww_hhuser a on t.corpid = a.corpid and t.creator = a.userid where 1=1 " + where + @" ";
LogHelper.Error(sql);
LogHelper.Error(countsql);
DataTable countdate = MySqlDbHelper.DataQueray(connectStr, CommandType.Text, countsql, param.ToArray()).Tables[0];
int count = Convert.ToInt32(countdate.Rows[0]["mcount"]);
pager.count = count;
DataTable set = MySqlDbHelper.DataQueray(connectStr, CommandType.Text, sql, param.ToArray()).Tables[0];
foreach (DataRow item in set.Rows)
{
Ww_MomentModel moment = new Ww_MomentModel();
moment.corpname = item["corpname"].ToString();
moment.corpid = item["corpid"].ToString();
moment.create_time = Utility.ToUnityString(Utility.ConvertIntDateTime(Convert.ToDouble(item["create_time"].ToString())), 7);
moment.create_type = Convert.ToInt32(item["create_type"]);
moment.creator = item["creator"].ToString();
moment.exinfo = item["exinfo"].ToString();
if (!string.IsNullOrEmpty(moment.exinfo) && moment.exinfo != "-")
{
try
{
MomentAvator info = Newtonsoft.Json.JsonConvert.DeserializeObject(moment.exinfo);
moment.exinfo = info.thumb_avatar ?? info.avatar;//有缩略图就取缩率图,没有就取大图
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
}
}
moment.link = item["link"].ToString();
moment.location = item["location"].ToString();
if (!string.IsNullOrEmpty(moment.location))
{
try
{
MomentLocation info = Newtonsoft.Json.JsonConvert.DeserializeObject(moment.location);
moment.location = CommpnHelpEx.FromUnicodeString(info.name);
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
}
}
moment.moment_id = item["moment_id"].ToString();
moment.text = item["text"].ToString();
if (!string.IsNullOrEmpty(moment.text))
{
try
{
moment.text = CommpnHelpEx.FromUnicodeString(Newtonsoft.Json.JsonConvert.DeserializeObject(moment.text).content);//将文本解码
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
}
}
moment.image = item["image"].ToString();
if (!string.IsNullOrEmpty(moment.image))
{
try
{
List imagelist = Newtonsoft.Json.JsonConvert.DeserializeObject>(moment.image);
foreach (var imagea in imagelist)
{
imagea.media_id = Utility.EncryptMD5(imagea.media_id).ToLower();
}
moment.image = Newtonsoft.Json.JsonConvert.SerializeObject(imagelist);//图片列表
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
}
}
moment.video = item["video"].ToString();
if (!string.IsNullOrEmpty(moment.video))
{
try
{
MomentVideo video = Newtonsoft.Json.JsonConvert.DeserializeObject(moment.video);
video.media_id = Utility.EncryptMD5(video.media_id).ToLower();
video.thumb_media_id = Utility.EncryptMD5(video.thumb_media_id).ToLower();
moment.video = Newtonsoft.Json.JsonConvert.SerializeObject(video);//视频信息,缩量图
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
}
}
moment.uname = item["uname"].ToString();
moment.visible_type = Convert.ToInt32(item["visible_type"]);
if (item["ctime"] != DBNull.Value)
{
try
{
moment.ctime = Convert.ToDateTime(item["ctime"]);
moment.ctimestr = Utility.ToUnityString(moment.ctime, 7);
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
}
}
list.Add(moment);
}
}
catch (Exception e)
{
LogHelper.Error(e.ToString());
}
return list;
}
public Ww_hhuser_Name GetHHuserName(string userid, string corp)
{
return _crmContext.Ww_hhuser_Name.FirstOrDefault(m => m.userid == userid && m.corpid == corp);
}
public bool UpdateHHuserName(Ww_hhuser_Name model)
{
bool result = true;
try
{
var entry = _crmContext.Ww_hhuser_Name.FirstOrDefault(m => m.userid == model.userid && m.corpid == model.corpid);
if (entry == null)
{
//throw new Exception("找不到指定的员工!");
_crmContext.Ww_hhuser_Name.Add(model);
}
else
{
entry.remarkname = model.remarkname;
}
_crmContext.SaveChanges();
}
catch (Exception e)
{
result = false;
LogHelper.Error(e.ToString());
}
return result;
}
///
/// 获取企业微信通话查询列表
///
///
///
///
///
///
///
///
public List RecordList_Get(ref Laypage pager, string corpid, DateTime? stime, DateTime? etime, string customername, string kefuname, string companycode = null)
{
var db = from a in _crmContext.Ww_Record
join b in _crmContext.Ww_Corp on a.corpid equals b.corpid
join c in _crmContext.Ww_hhuser on new { a.fromer, a.corpid } equals new { fromer = c.userid, c.corpid } into jiontemp
from c_tmp in jiontemp.DefaultIfEmpty()//左关联
join d in _crmContext.Ww_Extuser on a.tolist equals d.userid into jiontemp2
from dc_tmp in jiontemp2.DefaultIfEmpty()//左关联
join e in _crmContext.Ww_hhuser_Name on new { a.fromer, a.corpid } equals new { fromer = e.userid, e.corpid } into jiontemp3
from e_tmp in jiontemp3.DefaultIfEmpty()//左关联
select new Ww_RecordModel()
{
calltype = a.calltype,
tolist = a.tolist,
corpid = a.corpid,
corpname = b.corpname,
ctime = a.ctime,
customername = dc_tmp.name,
endtime = a.endtime,
filename = a.filename,
fromer = a.fromer,
length = a.length,
msgid = a.msgid,
roomid = a.roomid,
starttime = a.starttime,
voiceid = a.voiceid,
kefuname = c_tmp.uname,
remarkname = e_tmp.remarkname,
deptid = c_tmp.deptid
}
;
if (!string.IsNullOrEmpty(corpid))
{
db = db.Where(m => m.corpid == corpid);
}
if (!string.IsNullOrEmpty(companycode))
{
List nlist = Corp_Get();
string companycodeFormat = string.Format("[{0}]", companycode);
nlist = nlist.Where(m => m.companycode.Contains(companycodeFormat)).ToList();
if (nlist.Count > 0)
{
var where = PredicateExtensionses.True();
int i = 0;
foreach (Ww_Corp item in nlist)
{
if (!string.IsNullOrEmpty(item.deptid))
{
JObject obj = (JObject)Newtonsoft.Json.Linq.JObject.Parse(item.deptid);
var dept = JsonConvert.SerializeObject(obj[companycode]);
var depts = JsonConvert.DeserializeObject(dept);
int[] newdepts = GetAllCildDept(depts, item.corpid);
if (i == 0)
{
where = where.And(m => m.corpid == item.corpid && newdepts.Contains(m.deptid.Value));
}
else
where = where.Or(m => m.corpid == item.corpid && newdepts.Contains(m.deptid.Value));
}
else
{
if (i == 0)
where = where.And(m => m.corpid == item.corpid);
else
where = where.Or(m => m.corpid == item.corpid);
}
i++;
}
db = db.Where(where);
}
}
if (stime.HasValue)
{
db = db.Where(m => m.starttime >= stime.Value);
}
if (etime.HasValue)
{
db = db.Where(m => m.starttime <= etime.Value);
}
if (!string.IsNullOrEmpty(customername))
{
db = db.Where(m => m.customername.Contains(customername) || m.tolist.Contains(customername));
}
if (!string.IsNullOrEmpty(kefuname))
{
db = db.Where(m => m.kefuname.Contains(kefuname) || m.fromer.Contains(kefuname) || m.remarkname.Contains(kefuname));
}
db = db.OrderByDescending(m => m.starttime);
Pager pager1 = new Pager() { page = pager.page, rows = pager.limit };
PagerUtil.SetPager(ref db, ref pager1);
pager.count = pager1.totalRows;
List list = db.ToList();
foreach (var item in list)
{
item.starttimestr = item.starttime.ToUnityString(7);
item.endtimestr = item.endtime.ToUnityString(7);
}
return list;
}
///
/// 根据客户ID获取所有关系客服
///
/// ID
///
public List Extuser_GetAllUser(string exuserids)
{
string[] extuserid = exuserids.Split(";");
var unionids = _crmContext.Ww_Extuser.Where(x => !string.IsNullOrWhiteSpace(x.unionid) && extuserid.Contains(x.userid))
.Select(x => x.unionid).Distinct().ToList();
var db = from a in _crmContext.Ww_Extuser
join f in _crmContext.Ww_Corp on a.corpid equals f.corpid
join b in _crmContext.Ww_User_Extuser on new { extuserid = a.userid, a.corpid } equals new { b.extuserid, b.corpid }
join c in _crmContext.Ww_hhuser on new { b.userid, b.corpid } equals new { c.userid, c.corpid }
where unionids.Contains(a.unionid) || extuserid.Contains(a.userid)
select new Wx_ExuserModel()
{
corpid = c.corpid,
userid = c.userid,
extuserid = a.userid,
exinfo = a.exinfo,
name = a.name,
uname = c.uname,
corpname = f.corpname,
//deptid = c.deptid
};
//var db = from a in _crmContext.Ww_Extuser
// join f in _crmContext.Ww_Corp on a.corpid equals f.corpid
// join b in _crmContext.Ww_User_Extuser on new { extuserid = a.userid, a.corpid } equals new { b.extuserid, b.corpid }
// join c in _crmContext.Ww_hhuser on new { b.userid, b.corpid } equals new { c.userid, c.corpid }
// where extuserid.Contains(a.userid)
// select new Wx_ExuserModel()
// {
// corpid = c.corpid,
// userid = c.userid,
// extuserid = a.userid,
// exinfo = a.exinfo,
// name = a.name,
// uname = c.uname,
// corpname = f.corpname
// };
return db.ToList();
}
///
/// 根据客户ID获取所有关系客服
///
/// ID
///
public List Extuser_GetAllUser(string exuserids, string companycode = null)
{
var config = _crmContext.Bas_Config.FirstOrDefault(m => m.code == "CanLookMsgGroup");
List canlookmsgList = new List();
if (config != null)
{
canlookmsgList = Newtonsoft.Json.JsonConvert.DeserializeObject>(config.value);
}
string[] extuserid = exuserids.Split(";");
var unionids = _crmContext.Ww_Extuser.Where(x => !string.IsNullOrWhiteSpace(x.unionid) && extuserid.Contains(x.userid))
.Select(x => x.unionid).Distinct().ToList();
var db = from a in _crmContext.Ww_Extuser
join f in _crmContext.Ww_Corp on a.corpid equals f.corpid
join b in _crmContext.Ww_User_Extuser on new { extuserid = a.userid, a.corpid } equals new { b.extuserid, b.corpid }
join c in _crmContext.Ww_hhuser on new { b.userid, b.corpid } equals new { c.userid, c.corpid }
where unionids.Contains(a.unionid) || extuserid.Contains(a.userid)
select new Wx_ExuserModel()
{
corpid = c.corpid,
userid = c.userid,
extuserid = a.userid,
exinfo = a.exinfo,
name = a.name,
uname = c.uname,
corpname = f.corpname,
deptid=c.deptid
};
var extlist = db.ToList();
if (!string.IsNullOrEmpty(companycode))
{
var companys = companycode.Split(',');
var newCompanys = new List();//[{"Group":"东方软件事业部","Contains":"[DNZZ][DNYY][DNRW]","Target":"DNZZ,DNYY,DNRW"}]
foreach (var company in companys)
{
string codeformat = string.Format("[{0}]", company);
var canLook = canlookmsgList.FirstOrDefault(m => m.Contains.Contains(codeformat));
if (canLook != null)
newCompanys.AddRange(canLook.Target.Split(','));
}
newCompanys.AddRange(companys);
newCompanys = newCompanys.Distinct().ToList();
Dictionary AlldictMM = new Dictionary();//整个企业号能看
Dictionary miniMM = new Dictionary();//细节到部门ID能看
foreach (var company in newCompanys)
{
string codeformat = string.Format("[{0}]", company);
List corplist = _crmContext.Ww_Corp.Where(m => m.companycode.Contains(codeformat)).ToList();
foreach (Ww_Corp item in corplist)
{
if (!string.IsNullOrEmpty(item.deptid))//有dptid
{
JObject obj = (JObject)Newtonsoft.Json.Linq.JObject.Parse(item.deptid);
string wox = obj[company].ToString();
int[] deptids = JsonHelper.JsonDivertToObj(wox);
int[] newdeptids = GetAllCildDept(deptids, item.corpid);//新数据获取方式
foreach (var itdpem in newdeptids)
{
string vv = $"{item.corpid}_{itdpem}";
if (!miniMM.ContainsKey(vv))
miniMM.Add(vv, vv);
}
}
else
{
if (!AlldictMM.ContainsKey(item.corpid))
AlldictMM.Add(item.corpid, item.corpid);
}
}
}
foreach (var item in extlist)
{
if (AlldictMM.ContainsKey(item.corpid))//真个企业微信都能看
{
continue;
}
string vv = $"{item.corpid}_{item.deptid}";//只能小部门查看
if (miniMM.ContainsKey(vv))
{
continue;
}
item.isOutDept = 1;
}
}
return extlist;
}
public List Extuser_GetAllUser_check(string exuserids, string companycode = null)
{
var config = _crmContext.Bas_Config.FirstOrDefault(m => m.code == "CanLookMsgGroup");
List canlookmsgList = new List();
if (config != null)
{
canlookmsgList = Newtonsoft.Json.JsonConvert.DeserializeObject>(config.value);
}
string[] extuserid = exuserids.Split(";");
var unionids = _crmContext.Ww_Extuser.Where(x => !string.IsNullOrWhiteSpace(x.unionid) && extuserid.Contains(x.userid))
.Select(x => x.unionid).Distinct().ToList();
var db = from a in _crmContext.Ww_Extuser
join f in _crmContext.Ww_Corp on a.corpid equals f.corpid
join b in _crmContext.Ww_User_Extuser on new { extuserid = a.userid, a.corpid } equals new { b.extuserid, b.corpid }
join c in _crmContext.Ww_hhuser on new { b.userid, b.corpid } equals new { c.userid, c.corpid }
where unionids.Contains(a.unionid) || extuserid.Contains(a.userid)
select new Wx_ExuserModel()
{
corpid = c.corpid,
userid = c.userid,
extuserid = a.userid,
exinfo = a.exinfo,
name = a.name,
uname = c.uname,
corpname = f.corpname,
deptid = c.deptid
};
var checkUser = GetHHuserEid();
var checkCorp = _crmContext.Ww_Corp.ToList();
var extlist = db.ToList();
if (!string.IsNullOrEmpty(companycode))
{
var companys = companycode.Split(',');
var newCompanys = new List();//[{"Group":"东方软件事业部","Contains":"[DNZZ][DNYY][DNRW]","Target":"DNZZ,DNYY,DNRW"}]
foreach (var company in companys)
{
string codeformat = string.Format("[{0}]", company);
var canLook = canlookmsgList.FirstOrDefault(m => m.Contains.Contains(codeformat));
if (canLook != null)
newCompanys.AddRange(canLook.Target.Split(','));
}
newCompanys.AddRange(companys);
newCompanys = newCompanys.Distinct().ToList();
Dictionary AlldictMM = new Dictionary();//整个企业号能看
Dictionary miniMM = new Dictionary();//细节到部门ID能看
foreach (var company in newCompanys)
{
string codeformat = string.Format("[{0}]", company);
List corplist = checkCorp.Where(m => m.companycode.Contains(codeformat)).ToList();
foreach (Ww_Corp item in corplist)
{
if (!string.IsNullOrEmpty(item.deptid))//有dptid
{
JObject obj = (JObject)Newtonsoft.Json.Linq.JObject.Parse(item.deptid);
string wox = obj[company].ToString();
int[] deptids = JsonHelper.JsonDivertToObj(wox);
int[] newdeptids = GetAllCildDept(deptids, item.corpid);//新数据获取方式
foreach (var itdpem in newdeptids)
{
string vv = $"{item.corpid}_{itdpem}";
if (!miniMM.ContainsKey(vv))
miniMM.Add(vv, vv);
}
}
else
{
if (!AlldictMM.ContainsKey(item.corpid))
AlldictMM.Add(item.corpid, item.corpid);
}
}
}
foreach (var item in extlist)
{
if (item.corpid == "wx824b4ea054629084" && companycode == "QIND")
{
if (checkUser.Any(p => p.userid == item.userid))
{
continue;
}
}
else
{
if (AlldictMM.ContainsKey(item.corpid))//真个企业微信都能看
{
continue;
}
string vv = $"{item.corpid}_{item.deptid}";//只能小部门查看
if (miniMM.ContainsKey(vv))
{
continue;
}
}
item.isOutDept = 1;
}
}
return extlist;
}
///
/// 获取外部联系人列表
///
///
///
public List Extuser_Get(string v_userid, string v_corpid)
{
var db = from t in _crmContext.Ww_User_Extuser
join x in _crmContext.Ww_Extuser on t.extuserid equals x.userid
join w in _crmContext.Ww_Corp on t.corpid equals w.corpid
where t.userid == v_userid
where t.corpid == v_corpid
select new Ww_User_ExtuserModel
{
ctime = t.ctime,
exinfo = x.exinfo,
userid = x.userid,
cname = x.name,
lmsgtime = t.lmsgtime,
avatar = x.avatar
};
db = db.OrderByDescending(m => m.lmsgtime);
return db.ToList();
}
///
/// 获取内部联系人好友列表
///
///
///
///
public List InnerUser_Get(string v_userid, string v_corpid)
{
var db = from t in _crmContext.Ww_UserChat
join x in _crmContext.Ww_DeptUser on new { inuserid = t.deptuserid, t.corpid } equals new { inuserid = x.userid, x.corpid }
join c in _crmContext.Ww_hhuser on new { inuserid = t.deptuserid, t.corpid } equals new { inuserid = c.userid, c.corpid } into jiontemp
from c_tmp in jiontemp.DefaultIfEmpty()//左关联
where t.userid == v_userid
where t.corpid == v_corpid
select new Ww_InnerUserModel
{
corpid = t.corpid,
userid = t.userid,
ctime = t.ctime,
department = x.department,
deptuserid = t.deptuserid,
lmsgtime = t.lmsgtime,
name = x.name,
exinfo = c_tmp.exinfo
};
List modellist = db.OrderByDescending(m => m.lmsgtime).ToList();
foreach (Ww_InnerUserModel item in modellist)
{
if (!string.IsNullOrEmpty(item.exinfo) && item.exinfo != "-")
{
thumb_avatar_Model infox = JsonHelper.JsonDivertToObj(item.exinfo);
if (!string.IsNullOrEmpty(infox.thumb_avatar))
{
item.avatar = infox.thumb_avatar;
}
else if (!string.IsNullOrEmpty(infox.avatar))
{
item.avatar = infox.avatar;
}
}
}
return modellist;
}
//select b.corpname, a.uname, a.userid, d.name, d.exinfo from ww_hhuser a
//left join ww_corp b on a.corpid= b.corpid
//join ww_user_extuser c on a.userid= c.userid
//join ww_extuser d on c.extuserid= d.userid
//where d.exinfo like'%简单就好%'
///
/// 查找客户
///
/// 电话号码,昵称,备注
///
public List Find_UserBySQL(ref Laypage pager, string name, string myphone, string companycode, string extuserid = null)
{
string connectStr = Utility.GetSettingByKey("ConnectionStrings:crmContext");//数据库链接
string sqlTXT = $@"
select
d.uname,
a.userid,
d.deptid,
a.corpid,
a.extuserid,
c.NAME,
c.exinfo,
c.avatar,
a.remark,
a.remarkmobile,
c.ctime,
d.mobile myphone
FROM
ww_user_extuser a
LEFT JOIN ww_extuser c ON `a`.`extuserid` = `c`.`userid` AND `a`.`corpid` = `c`.`corpid`
LEFT JOIN ww_hhuser d ON a.corpid = d.corpid AND a.userid = d.userid where 1=1 ";
List parameters = new List();
var config = _crmContext.Bas_Config.FirstOrDefault(m => m.code == "UserCenterGetUserInfoUrl");//用户中心获取用户信息接口
List corpListA = _crmContext.Ww_Corp.ToList();
if (!string.IsNullOrEmpty(name))
{
name = name.Trim();
string mobilemd5 = Utility.GetMd5Str16(name + "-dg2022");
parameters.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "extuserid", Value = name });
parameters.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "name", Value = $"%{name}%" });
parameters.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "mobilemd5", Value = mobilemd5 });
sqlTXT += " and (a.extuserid=@extuserid or a.remark like @name or a.remarkmobile=@mobilemd5 ";
//var newResid = name;
//bool ss = Utility.ChekExtUserid(newResid);
//if (newResid.Length > 10 && Utility.ChekExtUserid(newResid))//看上去要是ID或者号码才进行远程查找
//{
// if (Utility.ChekMobile(newResid))//如果是手机号码格式,那么改造成resid
// {
// newResid = ResUtil.CreateResId(newResid);//如果是号码,那么转换成号码格式
// }
// if (config != null)
// {
// try
// {
// var corpList = corpListA.Select(m => m.corpid).ToArray();
// var httpurl = config.value;//通过resid查找客户信息
// var objecb = new { mobiles = new string[] { newResid } };
// string retmss = Utility.PostAjaxData(httpurl, JsonHelper.ObjDivertToJson(objecb), Encoding.UTF8, new Dictionary());
// var result = JsonHelper.JsonDivertToObj(retmss);
// var alllist = result.list.Where(m => corpList.Contains(m.appid.Replace("_1", "")));
// //var onwhere = PredicateExtensionses.True();
// var extlist = alllist.Where(m => m.appuserid.Length > 20).Select(m => m.appuserid);
// if (extlist.Count() > 0)
// sqlTXT += $" or a.extuserid in('{string.Join("','", extlist)}')";
// }
// catch (Exception e)
// {
// LogHelper.Error(e.ToString());
// };
// }
//}
if (!string.IsNullOrEmpty(extuserid))
{
var xextuserids = extuserid.Split(',');
sqlTXT += $" or a.extuserid in('{string.Join("','", xextuserids)}')";
}
sqlTXT += ") ";
}
else
{
if (!string.IsNullOrEmpty(extuserid))
{
var xextuserids = extuserid.Split(',');
sqlTXT += $" and a.extuserid in('{string.Join("','", xextuserids)}')";
}
}
if (!string.IsNullOrEmpty(myphone))
{
myphone = myphone.Trim();
sqlTXT += " and d.mobile =@myphone";
parameters.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "myphone", Value = myphone });
//db = db.Where(m => m.myphone == myphone);
}
var where = PredicateExtensionses.True();
if (!string.IsNullOrEmpty(companycode))
{
int i = 0;
string codeformat = string.Format("[{0}]", companycode);
List corplist = _crmContext.Ww_Corp.Where(m => m.companycode.Contains(codeformat)).ToList();
string deptSQL = "";
foreach (Ww_Corp item in corplist)
{
if (!string.IsNullOrEmpty(item.deptid))//有dptid
{
JObject obj = (JObject)Newtonsoft.Json.Linq.JObject.Parse(item.deptid);
string wox = obj[companycode].ToString();
int[] deptids = JsonHelper.JsonDivertToObj(wox);
int[] newdeptids = GetAllCildDept(deptids, item.corpid);//新数据获取方式
if (i == 0)
{
//where = where.And(m => m.corpid == item.corpid && newdeptids.Contains(m.deptid.Value));
deptSQL += $" ( d.corpid='{item.corpid}' and d.deptid in(" + string.Join(",", newdeptids) + ") ) ";
}
else
{
//where = where.Or(m => m.corpid == item.corpid && newdeptids.Contains(m.deptid.Value));
deptSQL += $" or ( d.corpid='{item.corpid}' and d.deptid in(" + string.Join(",", newdeptids) + ") ) ";
}
}
else
{
if (i == 0)
{
//where = where.And(m => m.corpid == item.corpid);
deptSQL += $" d.corpid='{item.corpid}' ";
}
else
{
//where = where.Or(m => m.corpid == item.corpid);
deptSQL += $" or d.corpid='{item.corpid}' ";
}
}
i++;
}
if (!string.IsNullOrEmpty(deptSQL))
{
sqlTXT += $" and ({deptSQL}) ";
}
}
sqlTXT += " limit 50";
var dblist = MySqlDbHelper.DataQueray(connectStr, CommandType.Text, sqlTXT, parameters.ToArray()).Tables[0].ToList();
//Pager pager1 = new Pager() { page = pager.page, rows = pager.limit };
//PagerUtil.SetPager(ref db, ref pager1);
//pager.count = pager1.totalRows;
////PagerUtil.SetPager(ref db, ref pager);
//var dblist = db.ToList();
foreach (var item in dblist)
{
var cop = corpListA.FirstOrDefault(m => m.corpid == item.corpid);
if (cop != null)
item.corpname = cop.corpname;
}
return dblist;
}
///
/// 查找客户
///
/// 电话号码,昵称,备注
///
public List Find_User(ref Laypage pager, string name, string myphone, string companycode)
{
var db = from a in _crmContext.Ww_hhuser
join b in _crmContext.Ww_Corp on a.corpid equals b.corpid
join c in _crmContext.Ww_User_Extuser on new { a.userid, a.corpid } equals new { c.userid, c.corpid }
join d in _crmContext.Ww_Extuser on new { c.extuserid, c.corpid } equals new { extuserid = d.userid, d.corpid }
where d.userid == name || d.exinfo.Contains(name)
select new Ww_FindUser_Model
{
corpname = b.corpname,
uname = a.uname,
userid = a.userid,
extuserid = c.extuserid,
name = d.name,
exinfo = d.exinfo,
ctime = d.ctime,
avatar = d.avatar,
deptid = a.deptid,
corpid = a.corpid,
myphone = a.mobile
};
if (!string.IsNullOrEmpty(myphone))
{
myphone = myphone.Trim();
db = db.Where(m => m.myphone == myphone);
}
var where = PredicateExtensionses.True();
if (!string.IsNullOrEmpty(companycode))
{
int i = 0;
string codeformat = string.Format("[{0}]", companycode);
List corplist = _crmContext.Ww_Corp.Where(m => m.companycode.Contains(codeformat)).ToList();
foreach (Ww_Corp item in corplist)
{
if (!string.IsNullOrEmpty(item.deptid))//有dptid
{
JObject obj = (JObject)Newtonsoft.Json.Linq.JObject.Parse(item.deptid);
string wox = obj[companycode].ToString();
int[] deptids = JsonHelper.JsonDivertToObj(wox);
int[] newdeptids = GetAllCildDept(deptids, item.corpid);//新数据获取方式
if (i == 0)
where = where.And(m => m.corpid == item.corpid && newdeptids.Contains(m.deptid.Value));
else
where = where.Or(m => m.corpid == item.corpid && newdeptids.Contains(m.deptid.Value));
}
else
{
if (i == 0)
where = where.And(m => m.corpid == item.corpid);
else
where = where.Or(m => m.corpid == item.corpid);
}
i++;
}
}
db = db.Where(where);
db = db.OrderByDescending(m => m.ctime);
//Pager pager = new Pager() { page = 1, rows = 50 };
Pager pager1 = new Pager() { page = pager.page, rows = pager.limit };
PagerUtil.SetPager(ref db, ref pager1);
pager.count = pager1.totalRows;
//PagerUtil.SetPager(ref db, ref pager);
return db.ToList();
}
public int[] GetAllCildDept(int[] deptids, string corpid)
{
Dictionary dicdptlist = new Dictionary();
foreach (var item in deptids)
{
if (!dicdptlist.ContainsKey(item))
dicdptlist.Add(item, item);
}
foreach (var item in deptids)
{
GetChildDept(dicdptlist, corpid, item);
}
return dicdptlist.Select(m => m.Key).ToArray();
}
public void GetChildDept(Dictionary dplist, string corpid, int id)
{
List deptlist = _crmContext.Ww_Dept.Where(m => m.parentid == id && m.corpid == corpid).ToList();
foreach (var dp in deptlist)
{
if (!dplist.ContainsKey(dp.deptid))
{
dplist.Add(dp.deptid, dp.deptid);
GetChildDept(dplist, corpid, dp.deptid);
}
}
}
///
/// 获取公司列表
///
///
public List Corp_Get()
{
return _crmContext.Ww_Corp.ToList();
}
///
/// 获取群
///
///
///
///
public List GetRoom(ref Laypage pager, string corp, string name)
{
List list = new List();
try
{
string connectStr = Utility.GetSettingByKey("ConnectionStrings:crmMsgContext");
string sql = "select roomid,ctime,roomname,membernum from wework_" + corp + ".ww_msgroom " + (string.IsNullOrEmpty(name) ? "" : "where roomname like '%" + name + "%' or roomid like'%" + name + "%'") + " order by ctime desc limit " + (pager.page - 1) * pager.limit + "," + pager.limit;
string countsql = "select count(*) mcount from wework_" + corp + ".ww_msgroom " + (string.IsNullOrEmpty(name) ? "" : "where roomname like '%" + name + "%' or roomid like'%" + name + "%'") + "";
DataTable countdate = MySqlDbHelper.DataQueray(connectStr, CommandType.Text, countsql).Tables[0];
int count = Convert.ToInt32(countdate.Rows[0]["mcount"]);
pager.count = count;
DataTable set = MySqlDbHelper.DataQueray(connectStr, CommandType.Text, sql).Tables[0];
foreach (DataRow item in set.Rows)
{
Ww_MsgRoom room = new Ww_MsgRoom();
room.roomid = item["roomid"].ToString();
room.roomname = item["roomname"].ToString();
room.membernum = Convert.ToInt32(item["membernum"]);
if (item["ctime"] != DBNull.Value)
{
room.ctime = Convert.ToDateTime(item["ctime"]);
room.ctimestr = Utility.ToUnityString(room.ctime, 2);
list.Add(room);
}
}
}
catch (Exception e)
{
LogHelper.Error(e.ToString());
}
return list;
}
///
/// 修改聊天群
///
///
///
///
public bool UpdateRomeName(string corp, string roomid, string roomname)
{
bool result = true;
try
{
string connectStr = Utility.GetSettingByKey("ConnectionStrings:crmMsgContext");
string sql = "update wework_" + corp + ".ww_msgroom set roomname=@roomname where roomid=@roomid";
MySqlParameter[] param =
{
new MySqlParameter() { MySqlDbType = MySqlDbType.VarChar, ParameterName = "@roomname", Value = roomname },
new MySqlParameter() { MySqlDbType = MySqlDbType.VarChar, ParameterName = "@roomid", Value = roomid }
};
MySqlDbHelper.ExecuteNonQuery(connectStr, CommandType.Text, sql, param);
}
catch (Exception e)
{
result = false;
LogHelper.Error(e.ToString());
}
return result;
}
///
/// 获取单个聊天群
///
///
///
///
public Ww_MsgRoom GetRoom(string corp, string roomid)
{
Ww_MsgRoom room = null;
try
{
string connectStr = Utility.GetSettingByKey("ConnectionStrings:crmMsgContext");
string sql = "select * from wework_" + corp + ".ww_msgroom where roomid=@roomid";
MySqlParameter[] param =
{
new MySqlParameter() { MySqlDbType = MySqlDbType.VarChar, ParameterName = "@roomid", Value = roomid }
};
DataTable set = MySqlDbHelper.DataQueray(connectStr, CommandType.Text, sql, param).Tables[0];
foreach (DataRow item in set.Rows)
{
room = new Ww_MsgRoom();
room.roomid = set.Rows[0]["roomid"].ToString();
room.roomname = set.Rows[0]["roomname"].ToString();
room.userlist = set.Rows[0]["userlist"].ToString();
if (set.Rows[0]["ctime"] != DBNull.Value)
room.ctime = Convert.ToDateTime(set.Rows[0]["ctime"]);
room.corp = corp;
}
}
catch (Exception e)
{
LogHelper.Error(e.ToString());
}
return room;
}
///
/// 获取多个信息
///
///
///
///
public List GetRoomList(string corp, string roomids)
{
List roomlist = new List();
try
{
string connectStr = Utility.GetSettingByKey("ConnectionStrings:crmMsgContext");
string sql = "select roomid,roomname,ctime from wework_" + corp + ".ww_msgroom where roomid in(" + roomids + ")";
MySqlParameter[] param =
{
};
DataTable set = MySqlDbHelper.DataQueray(connectStr, CommandType.Text, sql, param).Tables[0];
foreach (DataRow item in set.Rows)
{
Ww_MsgRoom room = new Ww_MsgRoom();
room.roomid = item["roomid"].ToString();
room.roomname = item["roomname"].ToString();
//room.userlist = set.Rows[0]["userlist"].ToString();
if (item["ctime"] != DBNull.Value)
room.ctime = Convert.ToDateTime(item["ctime"]);
room.corp = corp;
roomlist.Add(room);
}
}
catch (Exception e)
{
LogHelper.Error(e.ToString());
}
return roomlist.OrderByDescending(m => m.ctime).ToList();
}
///
/// 获取群,通过成员列表like
///
///
/// 外部联系人ID
///
public List GetRoomListByChengYuan(string corp, string extendId)
{
List roomlist = new List();
try
{
string connectStr = Utility.GetSettingByKey("ConnectionStrings:crmMsgContext");
string sql = "select roomid,roomname,ctime from wework_" + corp + ".ww_msgroom where userlist like '%" + extendId + ",%'";
MySqlParameter[] param =
{
};
DataTable set = MySqlDbHelper.DataQueray(connectStr, CommandType.Text, sql, param).Tables[0];
foreach (DataRow item in set.Rows)
{
Ww_MsgRoom room = new Ww_MsgRoom();
room.roomid = item["roomid"].ToString();
room.roomname = item["roomname"].ToString();
//room.userlist = set.Rows[0]["userlist"].ToString();
if (item["ctime"] != DBNull.Value)
room.ctime = Convert.ToDateTime(item["ctime"]);
room.corp = corp;
roomlist.Add(room);
}
}
catch (Exception e)
{
LogHelper.Error(e.ToString());
}
return roomlist.OrderByDescending(m => m.ctime).ToList();
}
///
/// 获取群信息
///
///
///
///
public List GetGroupUser(string corp, Ww_MsgRoom room)
{
string[] user = room.userlist.Split(',');
List list = new List();
foreach (var item in user)
{
if (string.IsNullOrEmpty(item))
continue;
Ww_Extuser model = _crmContext.Ww_Extuser.FirstOrDefault(m => m.corpid == corp && m.userid == item);//外部联系人
if (model != null)
{
list.Add(new GroupUser() { avatar = model.avatar, corpid = corp, name = model.name, roomid = room.roomid, userid = model.userid });
}
else
{
Ww_hhuser entry = _crmContext.Ww_hhuser.FirstOrDefault(m => m.corpid == corp && m.userid == item);//外部联系人
if (entry != null)
{
GroupUser guser = new GroupUser() { userid = entry.userid, roomid = room.roomid, corpid = corp, name = entry.uname, avatar = "" };
if (entry.exinfo != null && entry.exinfo != "-")
{
HHuserInfo info = JsonHelper.JsonDivertToObj(entry.exinfo);
if (string.IsNullOrEmpty(info.thumb_avatar))
guser.avatar = info.thumb_avatar;
else
guser.avatar = info.avatar;
}
list.Add(guser);
}
else
{
GroupUser guser = new GroupUser() { userid = item, roomid = room.roomid, corpid = corp, name = item, avatar = "" };
list.Add(guser);
}
}
}
return list;
}
///
/// 初始化数据库
///
public void InitDb()
{
try
{
string createDbSql = @"CREATE TABLE IF NOT EXISTS `bas_config` (
`code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '配置',
`value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '值',
`time` datetime(0) NULL DEFAULT NULL COMMENT '时间',
`content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '内容'
);";
string sql = @"INSERT INTO `bas_config` (code,value,time,content)
select 'IsShowPhone', '0', now(), '是否显示手机号码'
where not exists(select 1 from bas_config z where z.code='IsShowPhone');";
string connectStr = Utility.GetSettingByKey("ConnectionStrings:crmContext");
MySqlDbHelper.ExecuteNonQuery(connectStr, CommandType.Text, createDbSql);
MySqlDbHelper.ExecuteNonQuery(connectStr, CommandType.Text, sql);
string createTableSql = @"CREATE TABLE IF NOT EXISTS `ww_hhuser_name` (
`userid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`corpid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`remarkname` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`ctime` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP,
`utime` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0),
PRIMARY KEY (`userid`, `corpid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '备注客服的名称' ROW_FORMAT = Dynamic;";
MySqlDbHelper.ExecuteNonQuery(connectStr, CommandType.Text, createTableSql);
string createParameter = @"CREATE TABLE IF NOT EXISTS `bas_parameter` (
`parakey` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '参数key',
`paravalue` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '参数值',
`ctime` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`utime` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改该时间',
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;";
MySqlDbHelper.ExecuteNonQuery(connectStr, CommandType.Text, createParameter);
string createLoginLog = @"CREATE TABLE IF NOT EXISTS `bas_loginlog` (
`pkid` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`eid` int(11) NULL DEFAULT NULL,
`logintime` datetime(0) NOT NULL,
`ip` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
PRIMARY KEY (`pkid`) USING BTREE
); ";
MySqlDbHelper.ExecuteNonQuery(connectStr, CommandType.Text, createLoginLog);
string createRoleDept = @"CREATE TABLE IF NOT EXISTS `ww_role_dept` (
`corpid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '企业ID',
`roleid` int(11) NOT NULL COMMENT '角色ID',
`deptid` int(11) NOT NULL,
`deptcode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '部门编码树',
`ctime` datetime(0) NULL DEFAULT NULL,
PRIMARY KEY (`corpid`, `roleid`, `deptid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
";
MySqlDbHelper.ExecuteNonQuery(connectStr, CommandType.Text, createRoleDept);
string createHHusereid = @"CREATE TABLE IF NOT EXISTS `ww_hhuser_eid` (
`corpid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '企业ID',
`userid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '员工ID',
`ctime` datetime(0) NULL DEFAULT NULL,
`eid` int(11) NULL DEFAULT NULL COMMENT '员工登陆工号',
`utime` datetime(0) NULL DEFAULT NULL,
PRIMARY KEY (`corpid`, `userid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
";
MySqlDbHelper.ExecuteNonQuery(connectStr, CommandType.Text, createHHusereid);
string inserRight = @"
INSERT INTO bas_right(rightid, rname, sortid, ctime, createuser, groupid)
SELECT 'B099', '登陆权限',0, now() ,1,10
FROM DUAL
WHERE NOT EXISTS(SELECT rightid FROM bas_right WHERE rightid = 'B099');
";
MySqlDbHelper.ExecuteNonQuery(connectStr, CommandType.Text, inserRight);
string inserRoleRight = @"
INSERT INTO bas_rolerightresource(roleid,rightid,ctime,createuser,toolbarvalue)
SELECT 1,'B099', now() ,1,0
FROM DUAL
WHERE NOT EXISTS(SELECT rightid FROM bas_rolerightresource WHERE rightid = 'B099' and roleid=1);
";
MySqlDbHelper.ExecuteNonQuery(connectStr, CommandType.Text, inserRoleRight);
}
catch (Exception s)
{
LogHelper.Error(s.ToString());
}
}
#region 我的企业微信权限控制
public List