|
@@ -91,7 +91,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
|
|
|
|
//获取access_token
|
|
//获取access_token
|
|
IDingTalkClient tokenClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
|
|
IDingTalkClient tokenClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
|
|
- OapiGettokenRequest tokenRequest = new OapiGettokenRequest() { Appkey = appKey, Appsecret = appSecret };
|
|
|
|
|
|
+ OapiGettokenRequest tokenRequest = new() { Appkey = appKey, Appsecret = appSecret };
|
|
tokenRequest.SetHttpMethod("Get");
|
|
tokenRequest.SetHttpMethod("Get");
|
|
OapiGettokenResponse tokenRespone = tokenClient.Execute(tokenRequest);
|
|
OapiGettokenResponse tokenRespone = tokenClient.Execute(tokenRequest);
|
|
if (tokenRespone.IsError)
|
|
if (tokenRespone.IsError)
|
|
@@ -104,7 +104,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
//获取部门接口
|
|
//获取部门接口
|
|
IDingTalkClient deptListClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub");
|
|
IDingTalkClient deptListClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub");
|
|
//一级部门
|
|
//一级部门
|
|
- OapiV2DepartmentListsubRequest reqDeptList1 = new OapiV2DepartmentListsubRequest() { DeptId = 1L, Language = "zh_CN" };
|
|
|
|
|
|
+ OapiV2DepartmentListsubRequest reqDeptList1 = new() { DeptId = 1L, Language = "zh_CN" };
|
|
OapiV2DepartmentListsubResponse rspDeptList1 = deptListClient.Execute(reqDeptList1, access_token);
|
|
OapiV2DepartmentListsubResponse rspDeptList1 = deptListClient.Execute(reqDeptList1, access_token);
|
|
|
|
|
|
List<DingDingUserInfo> ddUserInfos = new();
|
|
List<DingDingUserInfo> ddUserInfos = new();
|
|
@@ -119,7 +119,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
if (dingDingUserInfos1.Count > 0) ddUserInfos.AddRange(dingDingUserInfos1);
|
|
if (dingDingUserInfos1.Count > 0) ddUserInfos.AddRange(dingDingUserInfos1);
|
|
|
|
|
|
//获取二级部门
|
|
//获取二级部门
|
|
- OapiV2DepartmentListsubRequest reqDeptList2 = new OapiV2DepartmentListsubRequest() { DeptId = tempDept1.DeptId, Language = "zh_CN" };
|
|
|
|
|
|
+ OapiV2DepartmentListsubRequest reqDeptList2 = new() { DeptId = tempDept1.DeptId, Language = "zh_CN" };
|
|
OapiV2DepartmentListsubResponse rspDeptList2 = deptListClient.Execute(reqDeptList2, access_token);
|
|
OapiV2DepartmentListsubResponse rspDeptList2 = deptListClient.Execute(reqDeptList2, access_token);
|
|
if (rspDeptList2.Result != null)
|
|
if (rspDeptList2.Result != null)
|
|
{
|
|
{
|
|
@@ -131,7 +131,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
if (dingDingUserInfos2.Count > 0) ddUserInfos.AddRange(dingDingUserInfos2);
|
|
if (dingDingUserInfos2.Count > 0) ddUserInfos.AddRange(dingDingUserInfos2);
|
|
|
|
|
|
//获取三级部门
|
|
//获取三级部门
|
|
- OapiV2DepartmentListsubRequest reqDeptList3 = new OapiV2DepartmentListsubRequest() { DeptId = tempDept2.DeptId, Language = "zh_CN" };
|
|
|
|
|
|
+ OapiV2DepartmentListsubRequest reqDeptList3 = new() { DeptId = tempDept2.DeptId, Language = "zh_CN" };
|
|
OapiV2DepartmentListsubResponse rspDeptList3 = deptListClient.Execute(reqDeptList3, access_token);
|
|
OapiV2DepartmentListsubResponse rspDeptList3 = deptListClient.Execute(reqDeptList3, access_token);
|
|
if (rspDeptList3.Result != null)
|
|
if (rspDeptList3.Result != null)
|
|
{
|
|
{
|
|
@@ -143,7 +143,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
if (dingDingUserInfos3.Count > 0) ddUserInfos.AddRange(dingDingUserInfos3);
|
|
if (dingDingUserInfos3.Count > 0) ddUserInfos.AddRange(dingDingUserInfos3);
|
|
|
|
|
|
//获取四级部门
|
|
//获取四级部门
|
|
- OapiV2DepartmentListsubRequest reqDeptList4 = new OapiV2DepartmentListsubRequest() { DeptId = tempDept3.DeptId, Language = "zh_CN" };
|
|
|
|
|
|
+ OapiV2DepartmentListsubRequest reqDeptList4 = new() { DeptId = tempDept3.DeptId, Language = "zh_CN" };
|
|
OapiV2DepartmentListsubResponse rspDeptList4 = deptListClient.Execute(reqDeptList4, access_token);
|
|
OapiV2DepartmentListsubResponse rspDeptList4 = deptListClient.Execute(reqDeptList4, access_token);
|
|
if (rspDeptList4.Result != null)
|
|
if (rspDeptList4.Result != null)
|
|
{
|
|
{
|
|
@@ -155,7 +155,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
if (dingDingUserInfos4.Count > 0) ddUserInfos.AddRange(dingDingUserInfos4);
|
|
if (dingDingUserInfos4.Count > 0) ddUserInfos.AddRange(dingDingUserInfos4);
|
|
|
|
|
|
//获取五级部门
|
|
//获取五级部门
|
|
- OapiV2DepartmentListsubRequest reqDeptList5 = new OapiV2DepartmentListsubRequest() { DeptId = tempDept4.DeptId, Language = "zh_CN" };
|
|
|
|
|
|
+ OapiV2DepartmentListsubRequest reqDeptList5 = new() { DeptId = tempDept4.DeptId, Language = "zh_CN" };
|
|
OapiV2DepartmentListsubResponse rspDeptList5 = deptListClient.Execute(reqDeptList5, access_token);
|
|
OapiV2DepartmentListsubResponse rspDeptList5 = deptListClient.Execute(reqDeptList5, access_token);
|
|
if (rspDeptList5.Result != null)
|
|
if (rspDeptList5.Result != null)
|
|
{
|
|
{
|
|
@@ -178,7 +178,6 @@ namespace TEAMModelBI.Controllers.BITable
|
|
}
|
|
}
|
|
|
|
|
|
//保存操作记录
|
|
//保存操作记录
|
|
- //await _azureStorage.SaveBILog("tabledd-update", $"{_tmdName}【{_tmdId}】从钉钉组织结构更新至Azure Table表【DDUserInfo】中。", _dingDing, httpContext: HttpContext);
|
|
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", $"{_tmdName}【{_tmdId}】从钉钉组织结构更新至Azure Table表【DDUserInfo】中。", _dingDing, httpContext: HttpContext);
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", $"{_tmdName}【{_tmdId}】从钉钉组织结构更新至Azure Table表【DDUserInfo】中。", _dingDing, httpContext: HttpContext);
|
|
var tempddUserInfos = ddUserInfos.GroupBy(c => c.userId).Select(c => c.First()).ToList();//去重
|
|
var tempddUserInfos = ddUserInfos.GroupBy(c => c.userId).Select(c => c.First()).ToList();//去重
|
|
//List<DingDingUserInfo> TempdingDingUserInfos = await _azureStorage.SaveOrUpdateAll(dingDingUserInfos); //只是保存至Table
|
|
//List<DingDingUserInfo> TempdingDingUserInfos = await _azureStorage.SaveOrUpdateAll(dingDingUserInfos); //只是保存至Table
|
|
@@ -401,7 +400,6 @@ namespace TEAMModelBI.Controllers.BITable
|
|
ddUserInfo = await table.UpdateAll<DingDingUserInfo>(ddUserInfo);
|
|
ddUserInfo = await table.UpdateAll<DingDingUserInfo>(ddUserInfo);
|
|
|
|
|
|
//保存操作记录
|
|
//保存操作记录
|
|
- //await _azureStorage.SaveBILog("tabledd-update", stringBuilder?.ToString(), _dingDing, httpContext: HttpContext);
|
|
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", stringBuilder?.ToString(), _dingDing, httpContext: HttpContext);
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", stringBuilder?.ToString(), _dingDing, httpContext: HttpContext);
|
|
return Ok(new { state = 200, ddUserInfo, roles, permissions });
|
|
return Ok(new { state = 200, ddUserInfo, roles, permissions });
|
|
}
|
|
}
|
|
@@ -439,7 +437,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
var table = tableClient.GetTableReference("BIDDUserInfo");
|
|
var table = tableClient.GetTableReference("BIDDUserInfo");
|
|
//string divide = _configuration["CustomParam:SiteScope"];
|
|
//string divide = _configuration["CustomParam:SiteScope"];
|
|
string divide = _option.Location;
|
|
string divide = _option.Location;
|
|
- Dictionary<string, object> dic = new Dictionary<string, object> { { "PartitionKey", $"{divide}" } };
|
|
|
|
|
|
+ Dictionary<string, object> dic = new() { { "PartitionKey", $"{divide}" } };
|
|
|
|
|
|
List<DingDingUserInfo> tempUserInfos = await table.FindListByDict<DingDingUserInfo>(dic);
|
|
List<DingDingUserInfo> tempUserInfos = await table.FindListByDict<DingDingUserInfo>(dic);
|
|
|
|
|
|
@@ -459,65 +457,6 @@ namespace TEAMModelBI.Controllers.BITable
|
|
userInfo.Where((x, i) => userInfo.FindIndex(z => z.RowKey.Equals(x.RowKey)) == i);//Lambda表达式去重
|
|
userInfo.Where((x, i) => userInfo.FindIndex(z => z.RowKey.Equals(x.RowKey)) == i);//Lambda表达式去重
|
|
//userInfo.GroupBy(p => p).Select(p => p.Key).ToList();//去重复
|
|
//userInfo.GroupBy(p => p).Select(p => p.Key).ToList();//去重复
|
|
|
|
|
|
- //List<DingDingUserInfo> ddUserInfo = new();
|
|
|
|
- //List<DingDingUserInfo> tempUser = new();
|
|
|
|
-
|
|
|
|
- //tempUser = await _azureStorage.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "deptId", $"{deptId}" } });
|
|
|
|
- //if (tempUser.Count == 0)
|
|
|
|
- //{
|
|
|
|
- // tempUser = await _azureStorage.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "pid", $"{deptId}" } });
|
|
|
|
- //}
|
|
|
|
-
|
|
|
|
- //foreach (var itemUser in tempUser)
|
|
|
|
- //{
|
|
|
|
- // var tempUser1 = await _azureStorage.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "pid", $"{deptId}" } });
|
|
|
|
- // foreach (var itemUser1 in tempUser1)
|
|
|
|
- // {
|
|
|
|
- // if (!long.Parse($"{deptId}").Equals(itemUser1.pid))
|
|
|
|
- // {
|
|
|
|
- // var tempUser2 = await _azureStorage.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "pid", $"{itemUser1.pid}" } });
|
|
|
|
- // foreach (var itemUser2 in tempUser2)
|
|
|
|
- // {
|
|
|
|
- // if (!itemUser1.pid.Equals(itemUser2.pid))
|
|
|
|
- // {
|
|
|
|
- // var tempUser3 = await _azureStorage.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "pid", $"{itemUser2.pid}" } });
|
|
|
|
- // foreach (var itemUser3 in tempUser3)
|
|
|
|
- // {
|
|
|
|
- // if (!itemUser2.pid.Equals(itemUser3.pid))
|
|
|
|
- // {
|
|
|
|
- // var tempUser4 = await _azureStorage.FindListByDict<DingDingUserInfo>(new Dictionary<string, object> { { "pid", $"{itemUser3.pid}" } });
|
|
|
|
- // foreach (var itemUser4 in tempUser4)
|
|
|
|
- // {
|
|
|
|
- // if (!itemUser3.pid.Equals(itemUser4.pid)) { }
|
|
|
|
- // if (ddUserInfo.Find(x => x.RowKey.Equals(itemUser4.RowKey)) == null)
|
|
|
|
- // {
|
|
|
|
- // ddUserInfo.Add(itemUser4);
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // if (ddUserInfo.Find(x => x.RowKey.Equals(itemUser3.RowKey)) == null)
|
|
|
|
- // {
|
|
|
|
- // ddUserInfo.Add(itemUser3);
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // if (ddUserInfo.Find(x => x.RowKey.Equals(itemUser2.RowKey)) == null)
|
|
|
|
- // {
|
|
|
|
- // ddUserInfo.Add(itemUser2);
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // if (ddUserInfo.Find(x => x.RowKey.Equals(itemUser1.RowKey)) == null)
|
|
|
|
- // {
|
|
|
|
- // ddUserInfo.Add(itemUser1);
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // if (ddUserInfo.Find(x => x.RowKey.Equals(itemUser.RowKey)) == null)
|
|
|
|
- // {
|
|
|
|
- // ddUserInfo.Add(itemUser);
|
|
|
|
- // }
|
|
|
|
- //}
|
|
|
|
-
|
|
|
|
List<DDUserInfo> ddUserInfos = new();
|
|
List<DDUserInfo> ddUserInfos = new();
|
|
foreach (var item in userInfo)
|
|
foreach (var item in userInfo)
|
|
{
|
|
{
|
|
@@ -552,7 +491,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
|
|
|
|
if (!string.IsNullOrEmpty(item.schoolIds))
|
|
if (!string.IsNullOrEmpty(item.schoolIds))
|
|
{
|
|
{
|
|
- List<string> tempSchoolIds = new List<string>(item.schoolIds.Split("|"));
|
|
|
|
|
|
+ List<string> tempSchoolIds = new(item.schoolIds.Split("|"));
|
|
tempUserInfo.handleSchools = await SchoolWay.GetSchoolInfos(cosmosCliet, tempSchoolIds);
|
|
tempUserInfo.handleSchools = await SchoolWay.GetSchoolInfos(cosmosCliet, tempSchoolIds);
|
|
}
|
|
}
|
|
ddUserInfos.Add(tempUserInfo);
|
|
ddUserInfos.Add(tempUserInfo);
|
|
@@ -607,7 +546,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
//string divide = _configuration["CustomParam:SiteScope"];
|
|
//string divide = _configuration["CustomParam:SiteScope"];
|
|
string divide = _option.Location;
|
|
string divide = _option.Location;
|
|
|
|
|
|
- Dictionary<string, object> dic = new Dictionary<string, object> { { "PartitionKey", $"{divide}" }, { "mobile", $"{mobile}" } };
|
|
|
|
|
|
+ Dictionary<string, object> dic = new() { { "PartitionKey", $"{divide}" }, { "mobile", $"{mobile}" } };
|
|
List<DingDingUserInfo> ddUserInfoList = await table.FindListByDict<DingDingUserInfo>(dic);
|
|
List<DingDingUserInfo> ddUserInfoList = await table.FindListByDict<DingDingUserInfo>(dic);
|
|
|
|
|
|
if (ddUserInfoList.Count > 0)
|
|
if (ddUserInfoList.Count > 0)
|
|
@@ -678,7 +617,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
|
|
|
|
if (!string.IsNullOrEmpty(respUser.schoolIds))
|
|
if (!string.IsNullOrEmpty(respUser.schoolIds))
|
|
{
|
|
{
|
|
- List<string> tempSchoolIds = new List<string>(respUser.schoolIds.Split("|"));
|
|
|
|
|
|
+ List<string> tempSchoolIds = new(respUser.schoolIds.Split("|"));
|
|
dDUserInfo.handleSchools = await SchoolWay.GetSchoolInfos(cosmosCliet, tempSchoolIds);
|
|
dDUserInfo.handleSchools = await SchoolWay.GetSchoolInfos(cosmosCliet, tempSchoolIds);
|
|
}
|
|
}
|
|
ddUserInfos.Add(dDUserInfo);
|
|
ddUserInfos.Add(dDUserInfo);
|
|
@@ -711,7 +650,6 @@ namespace TEAMModelBI.Controllers.BITable
|
|
}
|
|
}
|
|
|
|
|
|
//保存操作记录
|
|
//保存操作记录
|
|
- //await _azureStorage.SaveBILog("tabledd-update",msg.ToString(), _dingDing, httpContext: HttpContext);
|
|
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", msg.ToString(), _dingDing, httpContext: HttpContext);
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", msg.ToString(), _dingDing, httpContext: HttpContext);
|
|
return Ok(new { state = 200, ddUserInfos });
|
|
return Ok(new { state = 200, ddUserInfos });
|
|
}
|
|
}
|
|
@@ -820,7 +758,6 @@ namespace TEAMModelBI.Controllers.BITable
|
|
}
|
|
}
|
|
|
|
|
|
//保存操作记录
|
|
//保存操作记录
|
|
- //await _azureStorage.SaveBILog("tabledd-update", msg.ToString(), _dingDing, httpContext: HttpContext);
|
|
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", msg.ToString(), _dingDing, httpContext: HttpContext);
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", msg.ToString(), _dingDing, httpContext: HttpContext);
|
|
return Ok(new { state = 200, roles });
|
|
return Ok(new { state = 200, roles });
|
|
|
|
|
|
@@ -865,7 +802,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
|
|
|
|
//获取access_token
|
|
//获取access_token
|
|
IDingTalkClient tokenClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
|
|
IDingTalkClient tokenClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
|
|
- OapiGettokenRequest tokenRequest = new OapiGettokenRequest() { Appkey = appKey, Appsecret = appSecret };
|
|
|
|
|
|
+ OapiGettokenRequest tokenRequest = new() { Appkey = appKey, Appsecret = appSecret };
|
|
tokenRequest.SetHttpMethod("Get");
|
|
tokenRequest.SetHttpMethod("Get");
|
|
OapiGettokenResponse tokenRespone = tokenClient.Execute(tokenRequest);
|
|
OapiGettokenResponse tokenRespone = tokenClient.Execute(tokenRequest);
|
|
if (tokenRespone.IsError)
|
|
if (tokenRespone.IsError)
|
|
@@ -878,7 +815,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
//获取部门接口
|
|
//获取部门接口
|
|
IDingTalkClient deptListClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub");
|
|
IDingTalkClient deptListClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub");
|
|
//一级部门
|
|
//一级部门
|
|
- OapiV2DepartmentListsubRequest reqDeptList1 = new OapiV2DepartmentListsubRequest() { DeptId = 1L, Language = "zh_CN" };
|
|
|
|
|
|
+ OapiV2DepartmentListsubRequest reqDeptList1 = new() { DeptId = 1L, Language = "zh_CN" };
|
|
OapiV2DepartmentListsubResponse rspDeptList1 = deptListClient.Execute(reqDeptList1, access_token);
|
|
OapiV2DepartmentListsubResponse rspDeptList1 = deptListClient.Execute(reqDeptList1, access_token);
|
|
|
|
|
|
List<DingDingUserInfo> ddUserInfos = new();
|
|
List<DingDingUserInfo> ddUserInfos = new();
|
|
@@ -893,7 +830,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
if (dingDingUserInfos1.Count > 0) ddUserInfos.AddRange(dingDingUserInfos1);
|
|
if (dingDingUserInfos1.Count > 0) ddUserInfos.AddRange(dingDingUserInfos1);
|
|
|
|
|
|
//获取二级部门
|
|
//获取二级部门
|
|
- OapiV2DepartmentListsubRequest reqDeptList2 = new OapiV2DepartmentListsubRequest() { DeptId = tempDept1.DeptId, Language = "zh_CN" };
|
|
|
|
|
|
+ OapiV2DepartmentListsubRequest reqDeptList2 = new() { DeptId = tempDept1.DeptId, Language = "zh_CN" };
|
|
OapiV2DepartmentListsubResponse rspDeptList2 = deptListClient.Execute(reqDeptList2, access_token);
|
|
OapiV2DepartmentListsubResponse rspDeptList2 = deptListClient.Execute(reqDeptList2, access_token);
|
|
if (rspDeptList2.Result != null)
|
|
if (rspDeptList2.Result != null)
|
|
{
|
|
{
|
|
@@ -905,7 +842,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
if (dingDingUserInfos2.Count > 0) ddUserInfos.AddRange(dingDingUserInfos2);
|
|
if (dingDingUserInfos2.Count > 0) ddUserInfos.AddRange(dingDingUserInfos2);
|
|
|
|
|
|
//获取三级部门
|
|
//获取三级部门
|
|
- OapiV2DepartmentListsubRequest reqDeptList3 = new OapiV2DepartmentListsubRequest() { DeptId = tempDept2.DeptId, Language = "zh_CN" };
|
|
|
|
|
|
+ OapiV2DepartmentListsubRequest reqDeptList3 = new() { DeptId = tempDept2.DeptId, Language = "zh_CN" };
|
|
OapiV2DepartmentListsubResponse rspDeptList3 = deptListClient.Execute(reqDeptList3, access_token);
|
|
OapiV2DepartmentListsubResponse rspDeptList3 = deptListClient.Execute(reqDeptList3, access_token);
|
|
if (rspDeptList3.Result != null)
|
|
if (rspDeptList3.Result != null)
|
|
{
|
|
{
|
|
@@ -917,7 +854,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
if (dingDingUserInfos3.Count > 0) ddUserInfos.AddRange(dingDingUserInfos3);
|
|
if (dingDingUserInfos3.Count > 0) ddUserInfos.AddRange(dingDingUserInfos3);
|
|
|
|
|
|
//获取四级部门
|
|
//获取四级部门
|
|
- OapiV2DepartmentListsubRequest reqDeptList4 = new OapiV2DepartmentListsubRequest() { DeptId = tempDept3.DeptId, Language = "zh_CN" };
|
|
|
|
|
|
+ OapiV2DepartmentListsubRequest reqDeptList4 = new() { DeptId = tempDept3.DeptId, Language = "zh_CN" };
|
|
OapiV2DepartmentListsubResponse rspDeptList4 = deptListClient.Execute(reqDeptList4, access_token);
|
|
OapiV2DepartmentListsubResponse rspDeptList4 = deptListClient.Execute(reqDeptList4, access_token);
|
|
if (rspDeptList4.Result != null)
|
|
if (rspDeptList4.Result != null)
|
|
{
|
|
{
|
|
@@ -929,7 +866,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
if (dingDingUserInfos4.Count > 0) ddUserInfos.AddRange(dingDingUserInfos4);
|
|
if (dingDingUserInfos4.Count > 0) ddUserInfos.AddRange(dingDingUserInfos4);
|
|
|
|
|
|
//获取五级部门
|
|
//获取五级部门
|
|
- OapiV2DepartmentListsubRequest reqDeptList5 = new OapiV2DepartmentListsubRequest() { DeptId = tempDept4.DeptId, Language = "zh_CN" };
|
|
|
|
|
|
+ OapiV2DepartmentListsubRequest reqDeptList5 = new() { DeptId = tempDept4.DeptId, Language = "zh_CN" };
|
|
OapiV2DepartmentListsubResponse rspDeptList5 = deptListClient.Execute(reqDeptList5, access_token);
|
|
OapiV2DepartmentListsubResponse rspDeptList5 = deptListClient.Execute(reqDeptList5, access_token);
|
|
if (rspDeptList5.Result != null)
|
|
if (rspDeptList5.Result != null)
|
|
{
|
|
{
|
|
@@ -952,8 +889,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
}
|
|
}
|
|
|
|
|
|
//保存操作记录
|
|
//保存操作记录
|
|
- //await _azureStorage.SaveBILog("tabledd-update", $"{_tmdName}【{_tmdId}】从钉钉组织结构更新至Azure Table表【DDUserInfo】中。", _dingDing, httpContext: HttpContext);
|
|
|
|
- await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", $"{_tmdName}【{_tmdId}】从钉钉组织结构更新至Azure Table表【DDUserInfo】中。", _dingDing, httpContext: HttpContext);
|
|
|
|
|
|
+ await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", $"{_tmdName}【{_tmdId}】从钉钉组织结构初始化至Azure Table表【DDUserInfo】中。", _dingDing, httpContext: HttpContext);
|
|
var tempddUserInfos = ddUserInfos.GroupBy(c => c.userId).Select(c => c.First()).ToList();//去重
|
|
var tempddUserInfos = ddUserInfos.GroupBy(c => c.userId).Select(c => c.First()).ToList();//去重
|
|
//List<DingDingUserInfo> TempdingDingUserInfos = await _azureStorage.SaveOrUpdateAll(dingDingUserInfos); //只是保存至Table
|
|
//List<DingDingUserInfo> TempdingDingUserInfos = await _azureStorage.SaveOrUpdateAll(dingDingUserInfos); //只是保存至Table
|
|
//查询数据的数据 并和钉钉查询的数据对比,找出不同的数据,并删除 待后期测试
|
|
//查询数据的数据 并和钉钉查询的数据对比,找出不同的数据,并删除 待后期测试
|
|
@@ -1037,28 +973,6 @@ namespace TEAMModelBI.Controllers.BITable
|
|
picture = coreUser.picture;
|
|
picture = coreUser.picture;
|
|
}else return Ok(new { state = 1, message = "该手机号未找到醍摩豆账户" });
|
|
}else return Ok(new { state = 1, message = "该手机号未找到醍摩豆账户" });
|
|
|
|
|
|
- //HttpClient httpClient = _http.CreateClient();
|
|
|
|
- //string url = _configuration.GetValue<string>("HaBookAuth:CoreId:userinfo");
|
|
|
|
- //List<string> mobiles = new List<string>() { $"{mobile}" };
|
|
|
|
- //HttpResponseMessage responseMessage = await httpClient.PostAsJsonAsync(url, mobiles);
|
|
|
|
- //if (responseMessage.StatusCode == HttpStatusCode.OK)
|
|
|
|
- //{
|
|
|
|
- // string temp = responseMessage.Content.ReadAsStringAsync().Result;
|
|
|
|
- // List<JsonElement> json_id = temp.ToObject<List<JsonElement>>();
|
|
|
|
- // if (json_id.Count > 0)
|
|
|
|
- // {
|
|
|
|
- // foreach (var item in json_id)
|
|
|
|
- // {
|
|
|
|
- // tmdId = item.GetProperty("id").ToString();
|
|
|
|
- // tmdName = item.GetProperty("name").ToString();
|
|
|
|
- // tmdMobile = item.GetProperty("mobile").ToString();
|
|
|
|
- // mail = item.GetProperty("mail").ToString();
|
|
|
|
- // picture = item.GetProperty("picture").ToString();
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
- // else return Ok(new { state = 1, message = "该手机号未找到醍摩豆账户" });
|
|
|
|
- //}
|
|
|
|
-
|
|
|
|
tempddUsers = await table.QueryWhereString<DingDingUserInfo>(tableSql.ToString());
|
|
tempddUsers = await table.QueryWhereString<DingDingUserInfo>(tableSql.ToString());
|
|
|
|
|
|
if (tempddUsers.Count > 0)
|
|
if (tempddUsers.Count > 0)
|
|
@@ -1081,7 +995,6 @@ namespace TEAMModelBI.Controllers.BITable
|
|
if (ddUsers.Count > 0) ddUsers = await table.SaveOrUpdateAll(ddUsers);
|
|
if (ddUsers.Count > 0) ddUsers = await table.SaveOrUpdateAll(ddUsers);
|
|
|
|
|
|
//保存操作记录
|
|
//保存操作记录
|
|
- //await _azureStorage.SaveBILog("tabledd-update", $"{_tmdName}【{_tmdId}】操作:绑定钉钉账户[{rowKey}]和醍摩豆账户[{tmdId}]", _dingDing, httpContext: HttpContext);
|
|
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", $"{_tmdName}【{_tmdId}】操作:绑定钉钉账户[{rowKey}]和醍摩豆账户[{tmdId}]", _dingDing, httpContext: HttpContext);
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", $"{_tmdName}【{_tmdId}】操作:绑定钉钉账户[{rowKey}]和醍摩豆账户[{tmdId}]", _dingDing, httpContext: HttpContext);
|
|
return Ok(new { state = 200, ddUsers });
|
|
return Ok(new { state = 200, ddUsers });
|
|
}
|
|
}
|
|
@@ -1097,6 +1010,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
/// </summary>
|
|
/// </summary>
|
|
/// <param name="jsonElement"></param>
|
|
/// <param name="jsonElement"></param>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
|
|
+ [ProducesDefaultResponseType]
|
|
[HttpPost("set-apiphoneadmin")]
|
|
[HttpPost("set-apiphoneadmin")]
|
|
public async Task<IActionResult> SetPhoneAdmin(JsonElement jsonElement)
|
|
public async Task<IActionResult> SetPhoneAdmin(JsonElement jsonElement)
|
|
{
|
|
{
|
|
@@ -1151,7 +1065,6 @@ namespace TEAMModelBI.Controllers.BITable
|
|
}
|
|
}
|
|
|
|
|
|
//保存操作记录
|
|
//保存操作记录
|
|
- //await _azureStorage.SaveBILog("tabledd-update", msg.ToString(), _dingDing, httpContext: HttpContext);
|
|
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", msg.ToString(), _dingDing, httpContext: HttpContext);
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-update", msg.ToString(), _dingDing, httpContext: HttpContext);
|
|
return Ok(new { state = 200, roles });
|
|
return Ok(new { state = 200, roles });
|
|
}
|
|
}
|
|
@@ -1231,7 +1144,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
|
|
|
|
//获取access_token
|
|
//获取access_token
|
|
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
|
|
IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
|
|
- OapiGettokenRequest request = new OapiGettokenRequest() { Appkey = appKey, Appsecret = appSecret };
|
|
|
|
|
|
+ OapiGettokenRequest request = new() { Appkey = appKey, Appsecret = appSecret };
|
|
request.SetHttpMethod("Get");
|
|
request.SetHttpMethod("Get");
|
|
OapiGettokenResponse response = client.Execute(request);
|
|
OapiGettokenResponse response = client.Execute(request);
|
|
if (response.IsError)
|
|
if (response.IsError)
|
|
@@ -1243,15 +1156,15 @@ namespace TEAMModelBI.Controllers.BITable
|
|
string access_token = response.AccessToken;
|
|
string access_token = response.AccessToken;
|
|
|
|
|
|
IDingTalkClient InductionClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/querypreentry");
|
|
IDingTalkClient InductionClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/querypreentry");
|
|
- OapiSmartworkHrmEmployeeQuerypreentryRequest reqInduction = new OapiSmartworkHrmEmployeeQuerypreentryRequest() { Offset = 0L, Size = 50 };
|
|
|
|
|
|
+ OapiSmartworkHrmEmployeeQuerypreentryRequest reqInduction = new() { Offset = 0L, Size = 50 };
|
|
reqInduction.SetHttpMethod("GET");
|
|
reqInduction.SetHttpMethod("GET");
|
|
OapiSmartworkHrmEmployeeQuerypreentryResponse rspInduction = InductionClient.Execute(reqInduction, access_token);
|
|
OapiSmartworkHrmEmployeeQuerypreentryResponse rspInduction = InductionClient.Execute(reqInduction, access_token);
|
|
if (rspInduction.Result.DataList != null)
|
|
if (rspInduction.Result.DataList != null)
|
|
{
|
|
{
|
|
- List<DingDingUserInfo> ddUserInfos = new List<DingDingUserInfo>();
|
|
|
|
|
|
+ List<DingDingUserInfo> ddUserInfos = new();
|
|
foreach (var itemId in rspInduction.Result.DataList)
|
|
foreach (var itemId in rspInduction.Result.DataList)
|
|
{
|
|
{
|
|
- DingDingUserInfo ddUserInfo = new DingDingUserInfo();
|
|
|
|
|
|
+ DingDingUserInfo ddUserInfo = new();
|
|
ddUserInfo.PartitionKey = divide;
|
|
ddUserInfo.PartitionKey = divide;
|
|
ddUserInfo.RowKey = itemId;
|
|
ddUserInfo.RowKey = itemId;
|
|
ddUserInfos.Add(ddUserInfo);
|
|
ddUserInfos.Add(ddUserInfo);
|
|
@@ -1260,12 +1173,9 @@ namespace TEAMModelBI.Controllers.BITable
|
|
List<DingDingUserInfo> tempddUserInfos = await table.SaveAll(ddUserInfos);
|
|
List<DingDingUserInfo> tempddUserInfos = await table.SaveAll(ddUserInfos);
|
|
|
|
|
|
//保存操作记录
|
|
//保存操作记录
|
|
- //await _azureStorage.SaveBILog("tabledd-add", $"{_tmdName}【{_tmdId}】添加待入职员工至table数据表中", _dingDing, httpContext: HttpContext);
|
|
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-add", $"{_tmdName}【{_tmdId}】添加待入职员工至table数据表中", _dingDing, httpContext: HttpContext);
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-add", $"{_tmdName}【{_tmdId}】添加待入职员工至table数据表中", _dingDing, httpContext: HttpContext);
|
|
if (ddUserInfos.Count == tempddUserInfos.Count)
|
|
if (ddUserInfos.Count == tempddUserInfos.Count)
|
|
- {
|
|
|
|
return Ok(new { state = 200, UserInfo = tempddUserInfos });
|
|
return Ok(new { state = 200, UserInfo = tempddUserInfos });
|
|
- }
|
|
|
|
else
|
|
else
|
|
{
|
|
{
|
|
var diffArr = tempddUserInfos.Where(c => !ddUserInfos.Contains(c)).ToList();
|
|
var diffArr = tempddUserInfos.Where(c => !ddUserInfos.Contains(c)).ToList();
|
|
@@ -1273,9 +1183,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
else
|
|
- {
|
|
|
|
return Ok(new { state = 400, rspInduction.SubErrCode, rspInduction.SubErrMsg });
|
|
return Ok(new { state = 400, rspInduction.SubErrCode, rspInduction.SubErrMsg });
|
|
- }
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
{
|
|
{
|
|
@@ -1326,7 +1234,7 @@ namespace TEAMModelBI.Controllers.BITable
|
|
string access_token = response.AccessToken;
|
|
string access_token = response.AccessToken;
|
|
|
|
|
|
IDingTalkClient quitStaffClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/querydimission");
|
|
IDingTalkClient quitStaffClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/querydimission");
|
|
- OapiSmartworkHrmEmployeeQuerydimissionRequest reqDimission = new OapiSmartworkHrmEmployeeQuerydimissionRequest() { Offset = 0L, Size = 50L };
|
|
|
|
|
|
+ OapiSmartworkHrmEmployeeQuerydimissionRequest reqDimission = new() { Offset = 0L, Size = 50L };
|
|
OapiSmartworkHrmEmployeeQuerydimissionResponse rspDimission = quitStaffClient.Execute(reqDimission, access_token);
|
|
OapiSmartworkHrmEmployeeQuerydimissionResponse rspDimission = quitStaffClient.Execute(reqDimission, access_token);
|
|
if (rspDimission.Result != null)
|
|
if (rspDimission.Result != null)
|
|
{
|
|
{
|
|
@@ -1337,7 +1245,6 @@ namespace TEAMModelBI.Controllers.BITable
|
|
}
|
|
}
|
|
|
|
|
|
//保存操作记录
|
|
//保存操作记录
|
|
- //await _azureStorage.SaveBILog("tabledd-del", $"{_tmdName}【{_tmdId}】从table数据表中删除离职员工", _dingDing, httpContext: HttpContext);
|
|
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-del", $"{_tmdName}【{_tmdId}】从table数据表中删除离职员工", _dingDing, httpContext: HttpContext);
|
|
await AzureStorageBlobExtensions.SaveBILog(blobClient, tableClient, "tabledd-del", $"{_tmdName}【{_tmdId}】从table数据表中删除离职员工", _dingDing, httpContext: HttpContext);
|
|
return Ok(new { state = 200 });
|
|
return Ok(new { state = 200 });
|
|
}
|
|
}
|