|
|
@@ -92,7 +92,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
{
|
|
|
var cacheKey = $"NewClientData_Dropdown_{operationUserId}";
|
|
|
var cachedData = await _redisHelper.StringGetAsync<DropdownData>(cacheKey);
|
|
|
-
|
|
|
+
|
|
|
if (cachedData != null)
|
|
|
{
|
|
|
return cachedData;
|
|
|
@@ -108,7 +108,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
}
|
|
|
|
|
|
var dropdownData = new DropdownData();
|
|
|
-
|
|
|
+
|
|
|
//负责人下拉框
|
|
|
dropdownData.Users = GetNewExistClient(operationUserId)
|
|
|
.Select(x => new DropdownItem { Id = x.Id, Name = x.CnName })
|
|
|
@@ -153,7 +153,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
|
|
|
// 缓存30分钟
|
|
|
await _redisHelper.StringSetAsync(cacheKey, dropdownData, TimeSpan.FromMinutes(30));
|
|
|
-
|
|
|
+
|
|
|
return dropdownData;
|
|
|
}
|
|
|
|
|
|
@@ -191,7 +191,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
|
|
|
var cacheKey = $"NewClientData_Relations_{string.Join("_", clientIds.OrderBy(x => x))}";
|
|
|
var cachedData = await _redisHelper.StringGetAsync<(List<SerializableAscribedUser>, List<SerializableAscribedDepartment>)>(cacheKey);
|
|
|
-
|
|
|
+
|
|
|
if (cachedData.Item1 != null && cachedData.Item2 != null)
|
|
|
{
|
|
|
// 转换为原始类型
|
|
|
@@ -237,10 +237,10 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
}).ToList();
|
|
|
|
|
|
var result = (serializableUsers, serializableDepartments);
|
|
|
-
|
|
|
+
|
|
|
// 缓存10分钟
|
|
|
await _redisHelper.StringSetAsync(cacheKey, result, TimeSpan.FromMinutes(10));
|
|
|
-
|
|
|
+
|
|
|
return (queriedUsers, queriedDepartments);
|
|
|
}
|
|
|
|
|
|
@@ -249,13 +249,13 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
/// </summary>
|
|
|
/// <param name="range">省域范围</param>
|
|
|
/// <returns></returns>
|
|
|
- private async Task<List<int>> GetCachedRangeSetDataAsync(int range)
|
|
|
+ public async Task<List<int>> GetCachedRangeSetDataAsync(int range)
|
|
|
{
|
|
|
if (range == 0) return new List<int>();
|
|
|
|
|
|
var cacheKey = $"NewClientData_Range_{range}";
|
|
|
var cachedData = await _redisHelper.StringGetAsync<List<int>>(cacheKey);
|
|
|
-
|
|
|
+
|
|
|
if (cachedData != null)
|
|
|
{
|
|
|
return cachedData;
|
|
|
@@ -302,11 +302,11 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
{
|
|
|
rangeSetDataList = sc.SqlQueryable<Sys_SetData>(setDataSql).Select(x => x.Id).ToList();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
// 缓存1小时
|
|
|
await _redisHelper.StringSetAsync(cacheKey, rangeSetDataList, TimeSpan.FromHours(1));
|
|
|
-
|
|
|
+
|
|
|
return rangeSetDataList;
|
|
|
}
|
|
|
|
|
|
@@ -337,10 +337,10 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
|
|
|
var _Users = GetNewExistClient(Dto.UserId)
|
|
|
.Select(x => new
|
|
|
- {
|
|
|
- x.Id,
|
|
|
- Name = x.CnName
|
|
|
- }).ToList();
|
|
|
+ {
|
|
|
+ x.Id,
|
|
|
+ Name = x.CnName
|
|
|
+ }).ToList();
|
|
|
|
|
|
|
|
|
//List<Sys_Users> users = GetNewExistClient();
|
|
|
@@ -368,7 +368,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = item.Name
|
|
|
};
|
|
|
_level.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+
|
|
|
//客户类别
|
|
|
ArrayList _CustomerClass = new ArrayList();
|
|
|
List<Sys_SetData> CustomerClass = initData.Where(u => u.STid == 37 && u.IsDel == 0).ToList();
|
|
|
@@ -381,7 +382,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
item.Remark
|
|
|
};
|
|
|
_CustomerClass.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+
|
|
|
// 创建比较器实例
|
|
|
IComparer remakeComparer = new RemakeComparer();
|
|
|
_CustomerClass.Sort(remakeComparer);
|
|
|
@@ -397,7 +399,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = item.Name
|
|
|
};
|
|
|
_ServiceClass.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
|
|
|
//身份分类
|
|
|
List<dynamic> _ProvinceClass = new List<dynamic>();
|
|
|
@@ -410,13 +412,15 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = item.Name
|
|
|
};
|
|
|
_ProvinceClass.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+
|
|
|
#endregion
|
|
|
- var data1 = new {
|
|
|
+ var data1 = new
|
|
|
+ {
|
|
|
Users = _Users,
|
|
|
Level = _level,
|
|
|
CustomerClass = _CustomerClass,
|
|
|
- ServiceClass= _ServiceClass,
|
|
|
+ ServiceClass = _ServiceClass,
|
|
|
ProvinceClass = _ProvinceClass
|
|
|
};
|
|
|
return result = new Result()
|
|
|
@@ -440,7 +444,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
- public async Task<Result> _Details(int portType,int id)
|
|
|
+ public async Task<Result> _Details(int portType, int id)
|
|
|
{
|
|
|
Result result = new Result() { Code = -2, Msg = "未知错误" };
|
|
|
|
|
|
@@ -542,7 +546,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
intList = NewClientDataId2;
|
|
|
}
|
|
|
|
|
|
- if (state == -1 && intList.Count < 1)
|
|
|
+ if (state == -1 && intList.Count < 1)
|
|
|
{
|
|
|
intList.Add(-1);
|
|
|
}
|
|
|
@@ -560,11 +564,11 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
if (!string.IsNullOrEmpty(contact) || !string.IsNullOrEmpty(location) || !string.IsNullOrEmpty(clientDto))
|
|
|
{
|
|
|
isSelectSearch = true;
|
|
|
-
|
|
|
+
|
|
|
// 使用缓存键进行搜索
|
|
|
var searchCacheKey = $"NewClientData_Search_{contact}_{location}_{clientDto}_{dto.PortType}";
|
|
|
var cachedSearchIds = await _redisHelper.StringGetAsync<List<int>>(searchCacheKey);
|
|
|
-
|
|
|
+
|
|
|
if (cachedSearchIds != null)
|
|
|
{
|
|
|
searchDataIds = cachedSearchIds;
|
|
|
@@ -577,7 +581,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
.ToListAsync();
|
|
|
|
|
|
// 批量解密
|
|
|
- foreach (var item in searchClientDatas)
|
|
|
+ foreach (var item in searchClientDatas)
|
|
|
{
|
|
|
EncryptionProcessor.DecryptProperties(item);
|
|
|
}
|
|
|
@@ -602,7 +606,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
}
|
|
|
|
|
|
if (searchDataIds.Count < 1) searchDataIds.Add(0);
|
|
|
-
|
|
|
+
|
|
|
// 缓存搜索结果5分钟
|
|
|
await _redisHelper.StringSetAsync(searchCacheKey, searchDataIds, TimeSpan.FromMinutes(5));
|
|
|
}
|
|
|
@@ -663,7 +667,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
// 从批量查询结果中获取关联信息
|
|
|
item.AscribedUser = ascribedUsers.Where(x => x.NewClientDataId == item.Id).ToList();
|
|
|
item.AscribedDepartment = ascribedDepartments.Where(x => x.NewClientDataId == item.Id).ToList();
|
|
|
-
|
|
|
+
|
|
|
index++;
|
|
|
}
|
|
|
|
|
|
@@ -677,7 +681,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
ServiceClass = dropdownData.ServiceClass,
|
|
|
groupNumber = groupNumber.Data,
|
|
|
};
|
|
|
-
|
|
|
+
|
|
|
return result = new Result()
|
|
|
{
|
|
|
Code = 0,
|
|
|
@@ -742,7 +746,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
//记录详细错误信息
|
|
|
//Console.WriteLine($"QueryNewClientData 异常: {ex.Message}");
|
|
|
//Console.WriteLine($"异常堆栈: {ex.StackTrace}");
|
|
|
-
|
|
|
+
|
|
|
result = new Result() { Code = -2, Msg = $"查询异常: {ex.Message}" };
|
|
|
}
|
|
|
finally
|
|
|
@@ -993,7 +997,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = user.CnName
|
|
|
};
|
|
|
_Users.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
//省域数据
|
|
|
List<dynamic> _Province = new List<dynamic>();
|
|
|
List<Sys_SetData> province = _sqlSugar.Queryable<Sys_SetData>()
|
|
|
@@ -1006,7 +1011,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = item.Name
|
|
|
};
|
|
|
_Province.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
//客户级别数据
|
|
|
List<dynamic> _level = new List<dynamic>();
|
|
|
List<Sys_SetData> level = _sqlSugar.Queryable<Sys_SetData>()
|
|
|
@@ -1019,7 +1025,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = item.Name
|
|
|
};
|
|
|
_level.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
//客户类别
|
|
|
ArrayList _CustomerClass = new ArrayList();
|
|
|
List<Sys_SetData> CustomerClass = _sqlSugar.Queryable<Sys_SetData>()
|
|
|
@@ -1033,7 +1040,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
item.Remark
|
|
|
};
|
|
|
_CustomerClass.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+
|
|
|
// 创建比较器实例
|
|
|
IComparer remakeComparer = new RemakeComparer();
|
|
|
_CustomerClass.Sort(remakeComparer);
|
|
|
@@ -1050,7 +1058,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = item.Name
|
|
|
};
|
|
|
_ServiceClass.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
#endregion
|
|
|
var groupNumber = await QueryNumberGroups();
|
|
|
|
|
|
@@ -1126,7 +1135,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
{
|
|
|
var Data = new { pageCount = 0, totalPage = 0, pageIndex = dto.PageIndex, pageSize = dto.PageSize, pageSource = NewClientDataView };
|
|
|
result = new Result() { Code = 0, Msg = "获取成功!", Data = Data };
|
|
|
- }
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
var Data = new
|
|
|
@@ -1142,7 +1151,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
};
|
|
|
result = new Result() { Code = 0, Msg = "获取成功!", Data = Data };
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -1161,7 +1170,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
//负责人下拉框
|
|
|
List<dynamic> _Users = new List<dynamic>();
|
|
|
List<Sys_Users> users = _sqlSugar.Queryable<Sys_Users>()
|
|
|
- .Where(u => u.IsDel == 0).ToList();
|
|
|
+ .Where(u => u.IsDel == 0).ToList();
|
|
|
foreach (Sys_Users user in users)
|
|
|
{
|
|
|
var data = new
|
|
|
@@ -1170,7 +1179,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = user.CnName
|
|
|
};
|
|
|
_Users.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
if (_Users.Count == 0)
|
|
|
{
|
|
|
result = new Result() { Code = -1, Msg = "暂无数据" };
|
|
|
@@ -1189,7 +1199,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Result result = new Result() { Code = -2, Msg = "未知错误" };
|
|
|
bool istrue = false;
|
|
|
int AddReturnId = -1;
|
|
|
-
|
|
|
+
|
|
|
string BirthdayStr = string.Empty;
|
|
|
if (!string.IsNullOrWhiteSpace(dto.Birthday))
|
|
|
{
|
|
|
@@ -1209,7 +1219,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
newClientDataUnEncrypted.LastUpdateTime = DateTime.Now;
|
|
|
newClientDataUnEncrypted.LastUpdateUserId = dto.CreateUserId;
|
|
|
|
|
|
- var newClientDataEncrypted = newClientDataUnEncrypted;
|
|
|
+ var newClientDataEncrypted = newClientDataUnEncrypted;
|
|
|
EncryptionProcessor.EncryptProperties(newClientDataEncrypted); //加密
|
|
|
|
|
|
try
|
|
|
@@ -1260,7 +1270,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
AddReturnId = dto.Id == 0 ? -1 : dto.Id;
|
|
|
if (AddReturnId != -1)
|
|
|
{
|
|
|
- await _sqlSugar.Updateable<Crm_ClientDataAndUser>().Where(x=>x.NewClientDataId == AddReturnId).SetColumns(a => new Crm_ClientDataAndUser()
|
|
|
+ await _sqlSugar.Updateable<Crm_ClientDataAndUser>().Where(x => x.NewClientDataId == AddReturnId).SetColumns(a => new Crm_ClientDataAndUser()
|
|
|
{
|
|
|
IsDel = 1,
|
|
|
DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
|
|
|
@@ -1376,7 +1386,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
//负责人下拉框
|
|
|
List<dynamic> _Users = new List<dynamic>();
|
|
|
List<Sys_Users> users = _sqlSugar.Queryable<Sys_Users>()
|
|
|
- .Where(u => u.IsDel == 0).ToList();
|
|
|
+ .Where(u => u.IsDel == 0).ToList();
|
|
|
foreach (Sys_Users user in users)
|
|
|
{
|
|
|
var data = new
|
|
|
@@ -1385,8 +1395,9 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = user.CnName
|
|
|
};
|
|
|
_Users.Add(data);
|
|
|
- };
|
|
|
-
|
|
|
+ }
|
|
|
+ ;
|
|
|
+
|
|
|
//客户级别数据
|
|
|
List<dynamic> _level = new List<dynamic>();
|
|
|
List<Sys_SetData> level = _sqlSugar.Queryable<Sys_SetData>()
|
|
|
@@ -1399,7 +1410,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = item.Name
|
|
|
};
|
|
|
_level.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
//客户类别
|
|
|
ArrayList _CustomerClass = new ArrayList();
|
|
|
List<Sys_SetData> CustomerClass = _sqlSugar.Queryable<Sys_SetData>()
|
|
|
@@ -1413,7 +1425,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
item.Remark
|
|
|
};
|
|
|
_CustomerClass.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
// 创建比较器实例
|
|
|
IComparer remakeComparer = new RemakeComparer();
|
|
|
_CustomerClass.Sort(remakeComparer);
|
|
|
@@ -1430,7 +1443,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
Name = item.Name
|
|
|
};
|
|
|
_ServiceClass.Add(data);
|
|
|
- };
|
|
|
+ }
|
|
|
+ ;
|
|
|
#endregion
|
|
|
|
|
|
rest.Code = 0;
|
|
|
@@ -1489,7 +1503,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
/// <returns></returns>
|
|
|
public async Task<Result> _BatchAssignment(BatchAssignmentDto dto)
|
|
|
{
|
|
|
- Result AcrionResult = new Result() { Code = -1,Msg="操作失败"};
|
|
|
+ Result AcrionResult = new Result() { Code = -1, Msg = "操作失败" };
|
|
|
if (dto.UserIdItem == null || dto.UserIdItem.Count < 1)
|
|
|
{
|
|
|
AcrionResult.Msg = "用户ID集合不能为空!";
|
|
|
@@ -1518,7 +1532,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
{
|
|
|
foreach (var userId1 in dto.UserIdItem)
|
|
|
{
|
|
|
- Crm_ClientDataAndUser _ClientDataAndUsers2 = _ClientDataAndUsers1.Where(it => it.NewClientDataId == clientDataId &&
|
|
|
+ Crm_ClientDataAndUser _ClientDataAndUsers2 = _ClientDataAndUsers1.Where(it => it.NewClientDataId == clientDataId &&
|
|
|
it.usersId == userId1
|
|
|
).FirstOrDefault();
|
|
|
if (_ClientDataAndUsers2 == null)
|
|
|
@@ -1572,7 +1586,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if(existsCount > 0)
|
|
|
+ if (existsCount > 0)
|
|
|
AcrionResult.Msg += $" {existsCount}条数据已被指派,无法重复指派!";
|
|
|
}
|
|
|
|
|
|
@@ -1582,7 +1596,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
public List<Sys_Users> GetNewExistClient(int userid)
|
|
|
{
|
|
|
string sql = "SELECT * FROM Sys_Users su where su.id in (\r\n\t select distinct usersid from Crm_ClientDataAndUser WHERE IsDel = 0 \r\n) \r\n";
|
|
|
- var userArr = _sqlSugar.SqlQueryable<Sys_Users>(sql).ToList();
|
|
|
+ var userArr = _sqlSugar.SqlQueryable<Sys_Users>(sql).ToList();
|
|
|
var dic = new Dictionary<int, int[]>()
|
|
|
{
|
|
|
{ 95, new int []{ 95 , 337 , 302, 350, 355, 357, 353 , 359 , 361, 368, 364, 366, 369} }
|
|
|
@@ -1611,14 +1625,14 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
}
|
|
|
}
|
|
|
catch (Exception)
|
|
|
- {}
|
|
|
+ { }
|
|
|
|
|
|
if (dic.Keys.Contains(userid))
|
|
|
{
|
|
|
- return userArr.Where(x=> dic[userid].Contains(x.Id)).ToList();
|
|
|
+ return userArr.Where(x => dic[userid].Contains(x.Id)).ToList();
|
|
|
}
|
|
|
|
|
|
- return userArr.WhereIF(userid != 21 ,x=>x.Id == userid).ToList();
|
|
|
+ return userArr.WhereIF(userid != 21, x => x.Id == userid).ToList();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -1629,7 +1643,7 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
/// <returns></returns>
|
|
|
public async Task<List<NewClientDataExcelDownloadView>> NewClientDataExcelDownload(NewClientDataExcelDownloadDto dto)
|
|
|
{
|
|
|
- var dt = new List<NewClientDataExcelDownloadView>();
|
|
|
+ var dt = new List<NewClientDataExcelDownloadView>();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
@@ -1899,8 +1913,8 @@ namespace OASystem.Infrastructure.Repositories.CRM
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- bool beginDateBool = DateTime.TryParse(dto.BeginTime,out _),
|
|
|
- endDateBool = DateTime.TryParse(dto.EndTime,out _);
|
|
|
+ bool beginDateBool = DateTime.TryParse(dto.BeginTime, out _),
|
|
|
+ endDateBool = DateTime.TryParse(dto.EndTime, out _);
|
|
|
if (beginDateBool && endDateBool)
|
|
|
{
|
|
|
string beginLable = $"{dto.BeginTime} 00:00:00",
|