lcl 6 months ago
parent
commit
b9bf14016c
1 changed files with 31 additions and 2 deletions
  1. 31 2
      Util/PrizeDo.cs

+ 31 - 2
Util/PrizeDo.cs

@@ -76,7 +76,22 @@ namespace Util
                 var returnFields = returnFieldService.GetList(m => m.queryTableId == queryTable.id);
                 foreach(var returnField in returnFields)
                 {
-                    fields += returnField.fieldEnName + " " + queryTable.tableEnName + "_" + returnField.fieldEnName + ",";
+                    if(returnField.fieldReturnKind == "2")
+                    {
+                        fields += "count(" + returnField.fieldEnName + ") " + queryTable.tableEnName + "_" + returnField.fieldEnName + ",";
+                    }
+                    else if(returnField.fieldReturnKind == "3")
+                    {
+                        fields += "sum(" + returnField.fieldEnName + ") " + queryTable.tableEnName + "_" + returnField.fieldEnName + ",";
+                    }
+                    else if(returnField.fieldReturnKind == "4")
+                    {
+                        fields += "avg(" + returnField.fieldEnName + ") " + queryTable.tableEnName + "_" + returnField.fieldEnName + ",";
+                    }
+                    else
+                    {
+                        fields += returnField.fieldEnName + " " + queryTable.tableEnName + "_" + returnField.fieldEnName + ",";
+                    }
                 }
                 fields = fields.TrimEnd(',');
 
@@ -642,7 +657,21 @@ namespace Util
                     number = decimal.Parse(prizeSourceField.Split('/')[1]);
                     prizeSourceField = prizeSourceField.Split('/')[0];
                 }
-                string prizeSourceData = condiDic.ContainsKey(prizeSourceField) ? condiDic[prizeSourceField].ToString() : "0";
+                string prizeSourceData = "";
+                if(prizeSourceField.Contains(","))
+                {
+                    string[] prizeSourceFieldList = prizeSourceField.Split(',');
+                    foreach(string subField in prizeSourceFieldList)
+                    {
+                        prizeSourceData += condiDic.ContainsKey(subField) + ",";
+                    }
+                    prizeSourceData = prizeSourceData.TrimEnd(',');
+                }
+                else
+                {
+                    prizeSourceData = condiDic.ContainsKey(prizeSourceField) ? condiDic[prizeSourceField].ToString() : "0";
+                }
+                if(string.IsNullOrEmpty(prizeSourceData)) prizeSourceData = "0";
                 if(prizeSourceField.Contains("/") && number > 0)
                 {
                     decimal prizeSourceDataNum = decimal.Parse(prizeSourceData) / number;