Browse Source

补录奖励队列处理

lcl 3 months ago
parent
commit
982a730415
4 changed files with 201 additions and 5 deletions
  1. 9 1
      Common/RabbitMQClient.cs
  2. 3 1
      Program.cs
  3. 152 0
      Util/CopyProject.cs
  4. 37 3
      Util/PrizeDo.cs

+ 9 - 1
Common/RabbitMQClient.cs

@@ -70,7 +70,14 @@ namespace MySystem
                 try
                 {
                     Function.WriteLog(DateTime.Now.ToString() + "-" + MsgContent, "接收mq数据队列");
-                    PrizeDo.sendPrize(QueueName, MsgContent);
+                    if(QueueName == "QUEUE_KXS_RETRY_MACHINE_PRIZE_CONFIG_DIVISION")
+                    {
+                        PrizeDo.addPrize(QueueName, MsgContent);
+                    }
+                    else
+                    {
+                        PrizeDo.sendPrize(QueueName, MsgContent);
+                    }
                     Function.WriteLog(DateTime.Now.ToString() + "-end", "接收mq数据队列");
                 }
                 catch(Exception ex)
@@ -89,6 +96,7 @@ namespace MySystem
             {
                 StartReceive(sub.mqQueueName, "kxs_direct_ranch", "/");
             }
+            StartReceive("QUEUE_KXS_RETRY_MACHINE_PRIZE_CONFIG_DIVISION", "kxs_direct_ranch", "/");
         }
         #endregion
 

+ 3 - 1
Program.cs

@@ -131,7 +131,9 @@ app.Urls.Add("http://*:5802");
 // PrizeDo.sendPrize(7, "{\"OrderNo\":\"BM2024090817330511847441249\"}");
 // PrizeDo.sendPrize(7, "{\"OrderNo\":\"BM2024090817360962275551251\"}");
 
-// RabbitMQClient.Instance.Start();
+RabbitMQClient.Instance.Start();
+
+// CopyProject.Copy(5, 7);
 
 // PrizeDo.sendPrize("{\"prize_tag\":\"1\",\"content\":\"{\\\"PosSn\\\":\\\"00002402045980195457\\\"}\"}");
 

+ 152 - 0
Util/CopyProject.cs

@@ -0,0 +1,152 @@
+using System.Data;
+using Common;
+using Infrastructure;
+using LitJson;
+using Microsoft.Extensions.Localization;
+using Model;
+using Model.Customer;
+using NuGet.Packaging;
+using Services;
+using System.Linq;
+using System.Net.Mime;
+using System.Text.RegularExpressions;
+
+namespace Util
+{
+    public class CopyProject
+    {
+        //发奖入口
+        public static void Copy(int fromProjectId, int toProjectId)
+        {
+            var projectService = App.GetService<IPriProjectService>();
+            var listService = App.GetService<IPriListService>();
+            var listAmountSetService = App.GetService<IPriListAmountSetService>();
+            var loopSetService = App.GetService<IPriLoopSetService>();
+            var conditionService = App.GetService<IPriConditionService>();
+            var prizeInFieldService = App.GetService<IPriPrizeInFieldService>();
+            var prizeInQueryFieldService = App.GetService<IPriPrizeInQueryFieldService>();
+            var prizeInSetService = App.GetService<IPriPrizeInSetService>();
+            var prizeInTableService = App.GetService<IPriPrizeInTableService>();
+            var prizeObjectFieldService = App.GetService<IPriPrizeObjectFieldService>();
+            var prizeObjectTableService = App.GetService<IPriPrizeObjectTableService>();
+            var projectParamService = App.GetService<IPriProjectParamService>();
+            var queryFieldService = App.GetService<IPriQueryFieldService>();
+            var queryTableService = App.GetService<IPriQueryTableService>();
+            var recursionStartConditionService = App.GetService<IPriRecursionStartConditionService>();
+            var recursionStartFieldService = App.GetService<IPriRecursionStartFieldService>();
+            var recursionStartReturnFieldService = App.GetService<IPriRecursionStartReturnFieldService>();
+            var recursionStartTableService = App.GetService<IPriRecursionStartTableService>();
+            var returnFieldService = App.GetService<IPriReturnFieldService>();
+
+            var list = listService.GetList(m => m.projectId == fromProjectId);
+            foreach(var subList in list)
+            {
+                subList.projectId = toProjectId;
+                int listId = listService.InsertReturnIdentity(subList);
+                var listAmountSet = listAmountSetService.GetList(m => m.listId == subList.id);
+                foreach(var subListAmountSet in listAmountSet)
+                {
+                    subListAmountSet.projectId = toProjectId;
+                    subListAmountSet.listId = listId;
+                    listAmountSetService.InsertReturnIdentity(subListAmountSet);
+                }
+
+                var loopSet = loopSetService.GetList(m => m.listId == subList.id);
+                foreach(var subLoopSet in loopSet)
+                {
+                    subLoopSet.projectId = toProjectId;
+                    subLoopSet.listId = listId;
+                    int loopSetId = loopSetService.InsertReturnIdentity(subLoopSet);
+
+                    var recursionStartCondition = recursionStartConditionService.GetList(m => m.loopSetId == subLoopSet.id);
+                    foreach(var subRecursionStartCondition in recursionStartCondition)
+                    {
+                        subRecursionStartCondition.projectId = toProjectId;
+                        subRecursionStartCondition.loopSetId = loopSetId;
+                        recursionStartConditionService.InsertReturnIdentity(subRecursionStartCondition);
+                    }
+                }
+
+                var condition = conditionService.GetList(m => m.listId == subList.id);
+                foreach(var subCondition in condition)
+                {
+                    subCondition.projectId = toProjectId;
+                    subCondition.listId = listId;
+                    conditionService.InsertReturnIdentity(subCondition);
+                }
+
+                var prizeInTable = prizeInTableService.GetList(m => m.listId == subList.id);
+                foreach(var subPrizeInTable in prizeInTable)
+                {
+                    subPrizeInTable.projectId = toProjectId;
+                    subPrizeInTable.listId = listId;
+                    int prizeInTableId = prizeInTableService.InsertReturnIdentity(subPrizeInTable);
+
+                    var prizeInQueryField = prizeInQueryFieldService.GetList(m => m.inTableId == subPrizeInTable.id);
+                    foreach(var subPrizeInQueryField in prizeInQueryField)
+                    {
+                        subPrizeInQueryField.inTableId = prizeInTableId;
+                        prizeInQueryFieldService.InsertReturnIdentity(subPrizeInQueryField);
+                    }
+
+                    var prizeInField = prizeInFieldService.GetList(m => m.inTableId == subPrizeInTable.id);
+                    foreach(var subPrizeInField in prizeInField)
+                    {
+                        subPrizeInField.inTableId = prizeInTableId;
+                        prizeInFieldService.InsertReturnIdentity(subPrizeInField);
+                    }
+                }
+
+                var recursionStartTable = recursionStartTableService.GetList(m => m.listId == subList.id);
+                foreach(var subRecursionStartTable in recursionStartTable)
+                {
+                    subRecursionStartTable.projectId = toProjectId;
+                    subRecursionStartTable.listId = listId;
+                    int recursionStartTableId = recursionStartTableService.InsertReturnIdentity(subRecursionStartTable);
+
+                    var recursionStartField = recursionStartFieldService.GetList(m => m.objectTableId == subRecursionStartTable.id);
+                    foreach(var subRecursionStartField in recursionStartField)
+                    {
+                        subRecursionStartField.objectTableId = recursionStartTableId;
+                        recursionStartFieldService.InsertReturnIdentity(subRecursionStartField);
+                    }
+
+                    var recursionStartReturnField = recursionStartReturnFieldService.GetList(m => m.objectTableId == subRecursionStartTable.id);
+                    foreach(var subRecursionStartReturnField in recursionStartReturnField)
+                    {
+                        subRecursionStartReturnField.objectTableId = recursionStartTableId;
+                        recursionStartReturnFieldService.InsertReturnIdentity(subRecursionStartReturnField);
+                    }
+                }
+            }
+
+            var projectParam = projectParamService.GetList(m => m.projectId == fromProjectId);
+            foreach(var subProjectParam in projectParam)
+            {
+                subProjectParam.projectId = toProjectId;
+                projectParamService.InsertReturnIdentity(subProjectParam);
+            }
+
+            var queryTable = queryTableService.GetList(m => m.projectId == fromProjectId);
+            foreach(var subQueryTable in queryTable)
+            {
+                subQueryTable.projectId = toProjectId;
+                int tableId = queryTableService.InsertReturnIdentity(subQueryTable);
+                
+                var queryField = queryFieldService.GetList(m => m.queryTableId == subQueryTable.id);
+                foreach(var subQueryField in queryField)
+                {
+                    subQueryField.queryTableId = tableId;
+                    queryFieldService.InsertReturnIdentity(subQueryField);
+                }
+
+                var returnField = returnFieldService.GetList(m => m.queryTableId == subQueryTable.id);
+                foreach(var subReturnField in returnField)
+                {
+                    subReturnField.queryTableId = tableId;
+                    returnFieldService.InsertReturnIdentity(subReturnField);
+                }
+            }
+        }
+    }
+}

+ 37 - 3
Util/PrizeDo.cs

@@ -1,4 +1,7 @@
 using System.Data;
+using System.Linq;
+using System.Net.Mime;
+using System.Text.RegularExpressions;
 using Common;
 using Infrastructure;
 using LitJson;
@@ -7,9 +10,6 @@ using Model;
 using Model.Customer;
 using NuGet.Packaging;
 using Services;
-using System.Linq;
-using System.Net.Mime;
-using System.Text.RegularExpressions;
 
 namespace Util
 {
@@ -39,6 +39,40 @@ namespace Util
             }
         }
 
+        //补奖入口
+        public static void addPrize(string queueName, string content)
+        {
+            batchNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + Function.get_Random(3);
+            publicStep = "";
+            string priObjString = prizeInSet(queueName);
+            if(!string.IsNullOrEmpty(priObjString))
+            {
+                string[] priObjData = priObjString.Split('|');
+                string priListIds = "";
+                int projectId = int.Parse(priObjData[1]);
+                int prizeInId = int.Parse(priObjData[2]);
+
+                var projectService = App.GetService<IPriProjectService>();
+                var project = projectService.GetFirst(m => m.id == projectId) ?? new PriProject();
+                logFlag = project.logFlag;
+
+                JsonData jsonObj = JsonMapper.ToObject(content);
+                JsonData posSn = jsonObj["pos_sn"].ToString();
+                JsonData prizeKinds = jsonObj["prize_kind_list"];
+                for (int i = 0; i < prizeKinds.Count; i++)
+                {
+                    string kind = prizeKinds[i].ToString();
+                    if(kind == "0") priListIds = "42,45";
+                    if(kind == "50") priListIds = "44";
+                    if(kind == "116") priListIds = "49";
+                    if(kind == "121") priListIds = "50";
+                    if(kind == "139") priListIds = "56";
+                }
+
+                prizeSend(projectId, prizeInId, priListIds, content, queueName);
+            }
+        }
+
 
         //接收入参
         public static Dictionary<string, string> getRequestParams(int projectId, string content)