TG.WXCRM.V4/BLL/Res/RES_MYALLOCATERES_ACT_BL.cs

77 lines
3.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OracleClient;
using System.Linq;
using WX.CRM.Common;
using WX.CRM.DAL;
using WX.CRM.IBLL.Res;
using WX.CRM.Model.Entity;
namespace WX.CRM.BLL.Res
{
public class RES_MYALLOCATERES_ACT_BL : DbContextRepository<RES_MYALLOCATERES_ACT>, IRES_MYALLOCATERES_ACT
{
public List<RES_MYALLOCATERES_ACT_VIEW> List(int top = 500)
{
using (var db = new crmContext())
{
var sql = $@"SELECT x.ID,x.RESID,
x.USERNAME,
x.UNIONID,
x.EID ,
x.CHANNEL,
x.CTIME,
x.ACT,
x.ISEXE,
x.OLDEID
FROM (
SELECT a.ID,a.RESID,a.EID,a.CHANNEL,a.CTIME,a.ACT,a.ISEXE,a.OLDEID,b.USERNAME,b.REGDATE,b.UNIONID
FROM RES_MYALLOCATERES_ACT a
LEFT OUTER JOIN SOFT_USER b ON a.RESID = b.RESID
WHERE a.ISEXE=0 AND a.ACT<>'None'
ORDER BY a.ID ASC
)x
WHERE (ROWNUM <= ({top}))";
OracleParameter[] p = { };
var table = OracleHelper.DataQueray(CommandType.Text, sql, p);
//处理外部联系人关系数据
List<RES_MYALLOCATERES_ACT_VIEW> res = new List<RES_MYALLOCATERES_ACT_VIEW>();
foreach (DataRow row in table.Tables[0].Rows)
{
var resid = row["RESID"].ToString();
try
{
RES_MYALLOCATERES_ACT_VIEW item = new RES_MYALLOCATERES_ACT_VIEW();
item.ID = Convert.ToDecimal(row["ID"]);
item.RESID = row["RESID"].ToString();
item.SOFTUSERNAME = row["USERNAME"].ToString();
item.UNIONID = row["UNIONID"].ToString();
item.EID = Convert.ToDecimal(row["EID"]);
item.CHANNEL = Convert.ToDecimal(row["CHANNEL"].ToString());
item.CTIME = Convert.ToDateTime(row["CTIME"].ToString());
item.ACT = row["ACT"].ToString();
item.ISEXE = Convert.ToDecimal(row["ISEXE"].ToString());
if (row["OLDEID"] != DBNull.Value)
{
item.OLDEID = Convert.ToDecimal(row["OLDEID"].ToString());
}
res.Add(item);
}
catch (Exception ex)
{
LogHelper.Error("更新上传关系记录失败:" + resid + "---" + ex.ToString());
}
}
var resids = res.Select(n => n.RESID).Distinct().ToList();
var customerList = db.RES_CUSTOMER.Where(n => resids.Contains(n.RESID)).ToList();
foreach (var item in res.ToList())
{
item.UMID = customerList.FirstOrDefault(n => n.RESID == item.RESID)?.UMID;
}
return res.ToList();
}
}
}
}