CrazyIter_Bin 1 year ago
parent
commit
486e5a28f2

+ 3 - 3
TEAMModelOS/Controllers/Both/GroupListController.cs

@@ -1153,7 +1153,7 @@ namespace TEAMModelOS.Controllers
         [ProducesDefaultResponseType]
         [AuthToken(Roles = "teacher,admin,student")]
         [HttpPost("review")]
-#if DEBUG
+#if !DEBUG
         [Authorize(Roles = "IES")]
 #endif
         public async Task<IActionResult> review(JsonElement request)
@@ -1269,14 +1269,14 @@ namespace TEAMModelOS.Controllers
                 case bool when $"{grant_type}".Equals("result", StringComparison.OrdinalIgnoreCase):
                     {
                         string stuKey = !string.IsNullOrWhiteSpace(school) ? $"GroupList:StudentWaitinglist:{school}_{userId}" : $"GroupList:StudentWaitinglist:{userId}";
-                        var datas = await _azureRedis.GetRedisClient().HashGetAllAsync(stuKey);
+                        var datas = await _azureRedis.GetRedisClient(8).HashGetAllAsync(stuKey);
                         List<GroupWaitingList> waitingLists = new List<GroupWaitingList>();
                         long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
                         if (datas!=null && datas.Length>0)
                         {
                             foreach (var data in datas)
                             {
-                                var group = data.ToString().ToObject<GroupWaitingList>();
+                                var group = data.Value.ToString().ToObject<GroupWaitingList>();
                                 if (group!=null)
                                 {
                                     waitingLists.Add(group);

+ 18 - 5
TEAMModelOS/Controllers/System/WeChatPayController.cs

@@ -1,4 +1,5 @@
-using Lib.AspNetCore.ServerSentEvents;
+using Azure.Cosmos;
+using Lib.AspNetCore.ServerSentEvents;
 using Microsoft.AspNetCore.Cors;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.Extensions.Options;
@@ -102,13 +103,14 @@ namespace TEAMModelOS.Controllers
                 if (response.IsSuccessful())
                 {
                     order.qrcode_url=response.QrcodeUrl;
-                    order.id=order.id;
+                    order.id=order.order_no;
                     order.pk="TMDOrder";
                     order.code="TMDOrder";
                     order.ttl=-1;
                     order.qrcode_time=DateTimeOffset.Now.ToUnixTimeMilliseconds();
-                    await _azureCosmosFactory.GetCosmosClient().GetContainer(Constant.TEAMModelOS,Constant.Normal).UpsertItemAsync(order,new Azure.Cosmos.PartitionKey(order.code));
-                    return Redirect($"https://teammodeltest.blob.core.chinacloudapi.cn/0-public/index_cn.html?order_no={order.order_no}&amount={order.amount}&count=1&buyer_name={HttpUtility.UrlEncode(order.buyer_name, Encoding.UTF8)}&item_desc={HttpUtility.UrlEncode(order.item_desc, Encoding.UTF8)}&buyer_tmid={order.buyer_tmid}&item_desc={HttpUtility.UrlEncode(order.return_url, Encoding.UTF8)}&buyer_email={HttpUtility.UrlEncode(order.buyer_email, Encoding.UTF8)}");
+                    await _azureCosmosFactory.GetCosmosClient().GetContainer(Constant.TEAMModelOS,Constant.Normal).UpsertItemAsync(order,new PartitionKey(order.code));
+                    string url = $"https://teammodeltest.blob.core.chinacloudapi.cn/0-public/index_cn.html?order_no={order.order_no}&amount={order.amount}&count=1&buyer_name={HttpUtility.UrlEncode(order.buyer_name, Encoding.UTF8)}&item_desc={HttpUtility.UrlEncode(order.item_desc, Encoding.UTF8)}&buyer_tmid={order.buyer_tmid}&return_url={HttpUtility.UrlEncode(order.return_url, Encoding.UTF8)}&buyer_email={HttpUtility.UrlEncode(order.buyer_email, Encoding.UTF8)}";
+                    return Redirect(url);
                     //return Ok(new { code = 200, qrcodeUrl = response.QrcodeUrl, orderId = orderId });
                 }
                 else
@@ -171,7 +173,8 @@ namespace TEAMModelOS.Controllers
                             order.pay_type=callbackResource.TradeType;
                             order.openid=callbackResource.Payer.OpenId;
                             await _azureCosmosFactory.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).UpsertItemAsync(order, new Azure.Cosmos.PartitionKey(order.code));
-                            if (!string.IsNullOrWhiteSpace(order.client_id)) {
+                            if (!string.IsNullOrWhiteSpace(order.client_id))
+                            {
                                 if ((sseClient = _sse.GetClient(new Guid(order.client_id))) != null)
                                 {
                                     await sseClient.SendEventAsync(new { data, grant_type = "pay_success" }.ToJsonString());
@@ -179,6 +182,16 @@ namespace TEAMModelOS.Controllers
                             }
                         }
                     }
+                    else {
+                        if (!string.IsNullOrWhiteSpace($"{json.GetProperty("clientId")}"))
+                        {
+                            if ((sseClient = _sse.GetClient(new Guid($"{json.GetProperty("clientId")}"))) != null)
+                            {
+                                await sseClient.SendEventAsync(new { data, grant_type = "pay_success" }.ToJsonString());
+                            }
+                        }
+                        return Ok(new { code = 404, msg = "订单不存在" });
+                    }
                 }
                 else {
                     await _dingDing.SendBotMsg($"微信支付通知(解析数据)支付失败结果:{callbackModel.EventType}", GroupNames.成都开发測試群組);