|
@@ -38,6 +38,7 @@ namespace TEAMModelOS.Controllers
|
|
private readonly Option _option;
|
|
private readonly Option _option;
|
|
int baseSpaceSize = 1; //學校保底空間大小(1G)
|
|
int baseSpaceSize = 1; //學校保底空間大小(1G)
|
|
private readonly double bytes = 1073741824;
|
|
private readonly double bytes = 1073741824;
|
|
|
|
+ private readonly int redisAclassoneDbNum = 8; //AclassOne Redis DB號
|
|
|
|
|
|
public SchoolController(AzureCosmosFactory azureCosmos, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, DingDing dingDing, IOptionsSnapshot<Option> option)
|
|
public SchoolController(AzureCosmosFactory azureCosmos, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, DingDing dingDing, IOptionsSnapshot<Option> option)
|
|
{
|
|
{
|
|
@@ -760,7 +761,7 @@ namespace TEAMModelOS.Controllers
|
|
{
|
|
{
|
|
int result = 0;
|
|
int result = 0;
|
|
string key = schoolCode + ":" + "AclassOne" + ":" + "dynamic";
|
|
string key = schoolCode + ":" + "AclassOne" + ":" + "dynamic";
|
|
- var redisClient = _azureRedis.GetRedisClient(8);
|
|
|
|
|
|
+ var redisClient = _azureRedis.GetRedisClient(redisAclassoneDbNum);
|
|
var dyncount = redisClient.StringGet(key);
|
|
var dyncount = redisClient.StringGet(key);
|
|
if (redisClient.KeyExists(key))
|
|
if (redisClient.KeyExists(key))
|
|
{
|
|
{
|
|
@@ -779,7 +780,7 @@ namespace TEAMModelOS.Controllers
|
|
public List<string> GetSchoolDynamicAclassOneIDList(string schoolCode)
|
|
public List<string> GetSchoolDynamicAclassOneIDList(string schoolCode)
|
|
{
|
|
{
|
|
string key = schoolCode + ":" + "AclassOne" + ":" + "dynamicIds";
|
|
string key = schoolCode + ":" + "AclassOne" + ":" + "dynamicIds";
|
|
- var redisClient = _azureRedis.GetRedisClient(8);
|
|
|
|
|
|
+ var redisClient = _azureRedis.GetRedisClient(redisAclassoneDbNum);
|
|
RedisValue[] redisResult = redisClient.SetMembers(key);
|
|
RedisValue[] redisResult = redisClient.SetMembers(key);
|
|
List<string> result = Array.ConvertAll(redisResult, x => (string)x).ToList();
|
|
List<string> result = Array.ConvertAll(redisResult, x => (string)x).ToList();
|
|
return result;
|
|
return result;
|
|
@@ -788,7 +789,7 @@ namespace TEAMModelOS.Controllers
|
|
public long GetSchoolDynamicAclassOneIDCount(string schoolCode)
|
|
public long GetSchoolDynamicAclassOneIDCount(string schoolCode)
|
|
{
|
|
{
|
|
string key = schoolCode + ":" + "AclassOne" + ":" + "dynamicIds";
|
|
string key = schoolCode + ":" + "AclassOne" + ":" + "dynamicIds";
|
|
- var redisClient = _azureRedis.GetRedisClient(8);
|
|
|
|
|
|
+ var redisClient = _azureRedis.GetRedisClient(redisAclassoneDbNum);
|
|
long result = redisClient.SetLength(key);
|
|
long result = redisClient.SetLength(key);
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
@@ -802,7 +803,7 @@ namespace TEAMModelOS.Controllers
|
|
{
|
|
{
|
|
if (!request.TryGetProperty("school_code", out JsonElement school_code)) return BadRequest();
|
|
if (!request.TryGetProperty("school_code", out JsonElement school_code)) return BadRequest();
|
|
request.TryGetProperty("student_id", out JsonElement student_id);
|
|
request.TryGetProperty("student_id", out JsonElement student_id);
|
|
- var redisClient = _azureRedis.GetRedisClient(8);
|
|
|
|
|
|
+ var redisClient = _azureRedis.GetRedisClient(redisAclassoneDbNum);
|
|
string key1 = school_code + ":" + "AclassOne" + ":" + "dynamicIds";
|
|
string key1 = school_code + ":" + "AclassOne" + ":" + "dynamicIds";
|
|
RedisValue[] redisIdsOriginal = redisClient.SetMembers(key1);
|
|
RedisValue[] redisIdsOriginal = redisClient.SetMembers(key1);
|
|
var resultIdsOriginal = Array.ConvertAll(redisIdsOriginal, x => (string)x).ToList();
|
|
var resultIdsOriginal = Array.ConvertAll(redisIdsOriginal, x => (string)x).ToList();
|
|
@@ -874,7 +875,7 @@ namespace TEAMModelOS.Controllers
|
|
//STEP3更新Redis.hbcn:AclassOne:dynamic ※註:只更新動態ID可用數,不更動動態ID列表,所以若可用數為0,當天被動態分配到的學生仍可使用至今日0時才會被清掉
|
|
//STEP3更新Redis.hbcn:AclassOne:dynamic ※註:只更新動態ID可用數,不更動動態ID列表,所以若可用數為0,當天被動態分配到的學生仍可使用至今日0時才會被清掉
|
|
int dynamicAclassCount = totalInDB - studentIds.Count; //動態可使用數
|
|
int dynamicAclassCount = totalInDB - studentIds.Count; //動態可使用數
|
|
dyncNum = (int)GetSchoolDynamicAclassOneIDCount(school_code.GetString()); //動態ID已使用數
|
|
dyncNum = (int)GetSchoolDynamicAclassOneIDCount(school_code.GetString()); //動態ID已使用數
|
|
- var redisClient = _azureRedis.GetRedisClient(8);
|
|
|
|
|
|
+ var redisClient = _azureRedis.GetRedisClient(redisAclassoneDbNum);
|
|
string keys = school_code.GetString() + ":" + "AclassOne" + ":" + "dynamic";
|
|
string keys = school_code.GetString() + ":" + "AclassOne" + ":" + "dynamic";
|
|
int updDynAclassCount = (dynamicAclassCount - dyncNum > 0) ? dynamicAclassCount - dyncNum : 0;
|
|
int updDynAclassCount = (dynamicAclassCount - dyncNum > 0) ? dynamicAclassCount - dyncNum : 0;
|
|
redisClient.StringSet(keys, updDynAclassCount);
|
|
redisClient.StringSet(keys, updDynAclassCount);
|
|
@@ -924,7 +925,7 @@ namespace TEAMModelOS.Controllers
|
|
}
|
|
}
|
|
int status = 0;
|
|
int status = 0;
|
|
string err = "";
|
|
string err = "";
|
|
- var redisClient = _azureRedis.GetRedisClient(8);
|
|
|
|
|
|
+ var redisClient = _azureRedis.GetRedisClient(redisAclassoneDbNum);
|
|
string keys = school_code.GetString() + ":" + "AclassOne" + ":" + "dynamic";
|
|
string keys = school_code.GetString() + ":" + "AclassOne" + ":" + "dynamic";
|
|
string keyd = school_code.GetString() + ":" + "AclassOne" + ":" + "dynamicIds";
|
|
string keyd = school_code.GetString() + ":" + "AclassOne" + ":" + "dynamicIds";
|
|
var clientContainer = _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "School");
|
|
var clientContainer = _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "School");
|