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, IRES_MYALLOCATERES_ACT { public List 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 = new List(); 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(); } } } }