Browse Source

添加新的入库模式,修改否则添加

lcl 3 months ago
parent
commit
99c7aa88ed
3 changed files with 67 additions and 2 deletions
  1. 7 0
      Model/Database/PriPrizeInField.cs
  2. 6 0
      Model/Vo/Admin/GetPriPrizeInFieldQueryVo.cs
  3. 54 2
      Util/PrizeDo.cs

+ 7 - 0
Model/Database/PriPrizeInField.cs

@@ -94,6 +94,13 @@ namespace Model
         public int inTableId { get; set; }
 
 
+        /// <summary>
+        /// 入库方式
+        /// </summary>
+        [SugarColumn(ColumnDescription = "入库方式", Length = 50, ColumnName = "field_in_model")]
+        public string? fieldInModel { get; set; }
+
+
 
     }
 }

+ 6 - 0
Model/Vo/Admin/GetPriPrizeInFieldQueryVo.cs

@@ -49,6 +49,12 @@ namespace Vo.Admin
         public int inTableId { get; set; }
 
 
+        /// <summary>
+        /// 入库方式
+        /// </summary>
+        public string fieldInModel { get; set; }
+
+
 
     }
 }

+ 54 - 2
Util/PrizeDo.cs

@@ -2356,8 +2356,60 @@ namespace Util
                     }
                 }
 
-                // if(prizeInTable.excuteKind == "add") db.Insertable(doFields).AS(prizeInTable.tableEnName).ExecuteCommand();
-                // if(prizeInTable.excuteKind == "update") db.Updateable(doFields).AS(prizeInTable.tableEnName).Where("1=1" + condi).ExecuteCommand();
+                if(prizeInTable.excuteKind == "add") db.Insertable(doFields).AS(prizeInTable.tableEnName).ExecuteCommand();
+                if(prizeInTable.excuteKind == "update") db.Updateable(doFields).AS(prizeInTable.tableEnName).Where("1=1" + condi).ExecuteCommand();
+                if(prizeInTable.excuteKind == "update_or_add")
+                {
+                    string doSql = "";
+                    var check = db.Ado.GetDataTable("select 1 from " + prizeInTable.tableEnName + " where 1=1" + condi);
+                    if(check.Rows.Count > 0)
+                    {
+                        string fieldString = "";
+                        foreach(var fieldEnName in doFields.Keys)
+                        {
+                            if(typeof(int) == doFields[fieldEnName].GetType() || typeof(decimal) == doFields[fieldEnName].GetType())
+                            {
+                                fieldString += fieldEnName + "=" + doFields[fieldEnName].ToString();
+                            }
+                            else
+                            {
+                                fieldString += fieldEnName + "=" + "'" + doFields[fieldEnName].ToString() + "'";
+                            }
+                            fieldString += ",";
+                        }
+                        if(!string.IsNullOrEmpty(fieldString))
+                        {
+                            fieldString = fieldString.TrimEnd(',');
+                        }
+                        doSql = "update " + prizeInTable.tableEnName + " set " + fieldString + " where 1=1" + condi;
+                    }
+                    else
+                    {
+                        string fieldString = "";
+                        string valString = "";
+                        foreach(var fieldEnName in doFields.Keys)
+                        {
+                            fieldString += fieldEnName;
+                            if(typeof(int) == doFields[fieldEnName].GetType() || typeof(decimal) == doFields[fieldEnName].GetType())
+                            {
+                                valString += doFields[fieldEnName].ToString();
+                            }
+                            else
+                            {
+                                valString += "'" + doFields[fieldEnName].ToString() + "'";
+                            }
+                            fieldString += ",";
+                            valString += ",";
+                        }
+                        if(!string.IsNullOrEmpty(fieldString))
+                        {
+                            fieldString = fieldString.TrimEnd(',');
+                            valString = valString.TrimEnd(',');
+                        }
+                        doSql = "insert into " + prizeInTable.tableEnName + " (" + fieldString + ") values (" + valString + ")";
+                    }
+                    db.Ado.ExecuteCommand(doSql);
+                }
 
                 Function.WriteLog(DateTime.Now.ToString() + "\n" + prizeInTable.excuteKind + "\n" + prizeInTable.tableEnName + "\n" + Newtonsoft.Json.JsonConvert.SerializeObject(doFields) + "\n" + condi + "\n\n", "奖励入库数据");
             }