Преглед на файлове

添加补推队列
调整推送流程

lichunlei преди 1 година
родител
ревизия
ccdd56e6e4
променени са 4 файла, в които са добавени 97 реда и са изтрити 23 реда
  1. 2 2
      AppStart/StartHelper.cs
  2. 29 6
      Util/Queue/PushHelper.cs
  3. 5 5
      Util/Queue/RePushHelper.cs
  4. 61 10
      Util/Queue/SourceHelper.cs

+ 2 - 2
AppStart/StartHelper.cs

@@ -12,8 +12,8 @@
             int Environment = Library.ConfigurationManager.EnvironmentFlag; //运行环境(1-开发环境,2-生产环境)
             if(Environment == 2)
             {
-                SourceHelper.Instance.Start(); //获取原始数据队列
-                PushHelper.Instance.Start(); //推送队列
+                // SourceHelper.Instance.Start(); //获取原始数据队列
+                // PushHelper.Instance.Start(); //推送队列
                 RePushHelper.Instance.Start(); //重新推送队列
 
                 // DefaultHelper.Instance.Start(); //队列程序

+ 29 - 6
Util/Queue/PushHelper.cs

@@ -58,11 +58,18 @@ namespace MySystem
                     int MerchantId = pushItem.MerchantId;
 
                     string QueryField = "";
+                    List<string> PushField = new List<string>();
+                    Dictionary<string, string> Trans = new Dictionary<string, string>();;
                     JsonData fieldJson = JsonMapper.ToObject(FieldList);
                     for (int i = 0; i < fieldJson.Count; i++)
                     {
                         JsonData item = fieldJson[i];
                         if(!string.IsNullOrEmpty(item["name"].ToString())) QueryField += item["name"].ToString() + ",";
+                        if(item["push"].ToString() == "1")
+                        {
+                            PushField.Add(item["name"].ToString());
+                            Trans.Add(item["name"].ToString(), item["trans"].ToString());
+                        }
                     }
 
                     //构造抓取数据sql
@@ -137,7 +144,23 @@ namespace MySystem
                         SortedList<string, string> obj = new SortedList<string, string>();
                         foreach(DataColumn dc in dt.Columns)
                         {
-                            obj.Add(dc.ColumnName, dr[dc.ColumnName].ToString());
+                            if(PushField.Contains(dc.ColumnName))
+                            {
+                                string val = dr[dc.ColumnName].ToString();
+                                string tran = Trans[dc.ColumnName];
+                                if(!string.IsNullOrEmpty(val))
+                                {
+                                    if(!string.IsNullOrEmpty(tran))
+                                    {
+                                        if(tran.StartsWith("*"))
+                                        {
+                                            decimal num = decimal.Parse(val) * int.Parse(tran.Substring(1));
+                                            val = num.ToString("f0");
+                                        }
+                                    }
+                                    obj.Add(dc.ColumnName, val);
+                                }
+                            }
                         }
                         int Status = 0;
                         string PushData = "";
@@ -153,11 +176,11 @@ namespace MySystem
                             obj.Add("content", content);
                             string requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
                             PushDataEncrypt = requestJson;
-                            string result = function.PostWebRequest(NoticeUrl, requestJson, "application/json");
-                            if(result.Contains("\"code\":\"200\""))
-                            {
-                                Status = 1;
-                            }
+                            // string result = function.PostWebRequest(NoticeUrl, requestJson, "application/json");
+                            // if(result.Contains("\"code\":\"200\""))
+                            // {
+                            //     Status = 1;
+                            // }
                         }
                         PushRecord rec = db.PushRecord.Add(new PushRecord()
                         {

+ 5 - 5
Util/Queue/RePushHelper.cs

@@ -44,11 +44,11 @@ namespace MySystem
                 string NoticeUrl = push.RePushUrl;
                 string PushDataEncrypt = push.PushDataEncrypt;
                 int Status = 0;
-                string result = function.PostWebRequest(NoticeUrl, PushDataEncrypt, "application/json");
-                if(result.Contains("\"code\":\"200\""))
-                {
-                    Status = 1;
-                }
+                // string result = function.PostWebRequest(NoticeUrl, PushDataEncrypt, "application/json");
+                // if(result.Contains("\"code\":\"200\""))
+                // {
+                //     Status = 1;
+                // }
                 RePushQueue edit = db.RePushQueue.FirstOrDefault(m => m.Id == push.Id);
                 if(edit != null)
                 {

+ 61 - 10
Util/Queue/SourceHelper.cs

@@ -47,7 +47,15 @@ namespace MySystem
                 for (int i = 0; i < fieldJson.Count; i++)
                 {
                     JsonData item = fieldJson[i];
-                    if(!string.IsNullOrEmpty(item["source_name"].ToString())) QueryField += item["source_name"].ToString() + ",";
+                    string source_name = item["source_name"].ToString();
+                    if(source_name.StartsWith("v("))
+                    {
+                        QueryField += source_name.Replace("v(", "").Replace(")", "") + ",";
+                    }
+                    else
+                    {
+                        QueryField += source_name + ",";
+                    }
                 }
 
                 //构造抓取数据
@@ -128,10 +136,7 @@ namespace MySystem
                 for (int i = 0; i < TargetFieldJson.Count; i++)
                 {
                     JsonData item = TargetFieldJson[i];
-                    if(!string.IsNullOrEmpty(item["source_name"].ToString()))
-                    {
-                        TargetQueryField += item["name"].ToString() + ",";
-                    }
+                    TargetQueryField += item["name"].ToString() + ",";
                 }
                 string insertSql = "";
                 sql = sql.Replace("${QueryId}$", StartId.ToString());
@@ -143,14 +148,34 @@ namespace MySystem
                     for (int i = 0; i < fieldJson.Count; i++)
                     {
                         JsonData item = fieldJson[i];
-                        if(!string.IsNullOrEmpty(item["source_name"].ToString()))
+                        string source_name = item["source_name"].ToString();
+                        string field_type = item["field_type"].ToString();
+                        if(!string.IsNullOrEmpty(source_name))
                         {
-                            values += "'" + dr[item["source_name"].ToString()].ToString() + "',";
+                            if(source_name.StartsWith("v("))
+                            {
+                                values += source_name.Replace("v(", "").Replace(")", "") + ",";
+                            }
+                            else
+                            {
+                                if(field_type == "int" || field_type == "numeric")
+                                {
+                                    values += "" + dr[source_name].ToString() + ",";
+                                }
+                                else if(field_type == "datetime")
+                                {
+                                    values += "'" + DateTime.Parse(dr[source_name].ToString()).ToString("yyyy-MM-dd HH:mm:ss") + "',";
+                                }
+                                else
+                                {
+                                    values += "'" + dr[source_name].ToString() + "',";
+                                }
+                            }
                         }
                     }
                     insertSql += "insert into u_" + TableName + " (" + TargetQueryField.TrimEnd(',') + ") values (" + values.TrimEnd(',') + ");";
                     StartId = int.Parse(dr["Id"].ToString());
-                    CustomerSqlConn.dtable("update " + TableName + " set " + FlagField + "=1 where Id=" + StartId, AppConfig.Base.SourceSqlConnStr);
+                    CustomerSqlConn.op("update " + TableName + " set " + FlagField + "=1 where Id=" + StartId, AppConfig.Base.SourceSqlConnStr);
                 }
                 var edit = db.SourceData.FirstOrDefault(m => m.Id == source.Id);
                 if(edit != null)
@@ -158,7 +183,10 @@ namespace MySystem
                     edit.QueryId = StartId;
                     db.SaveChanges();
                 }
-                CustomerSqlConn.op(insertSql, AppConfig.Base.SqlConnStr);
+                if(!string.IsNullOrEmpty(insertSql))
+                {
+                    CustomerSqlConn.op(insertSql, AppConfig.Base.SqlConnStr);
+                }
             }
             db.Dispose();
         }
@@ -173,12 +201,35 @@ namespace MySystem
             {
                 JsonData item = fieldJson[i];
                 string nullCondition = "";
+                string fieldType = item["field_type"].ToString();
                 string defaultValue = item["default"].ToString();
                 if(!string.IsNullOrEmpty(defaultValue))
                 {
                     nullCondition = " NOT NULL DEFAULT " + defaultValue;
                 }
-                sql += "`" + item["name"].ToString() + "` varchar(" + item["len"].ToString() + ")" + nullCondition + " COMMENT '" + item["title"].ToString() + "',\n";
+                if(item["pri"].ToString() == "1" && item["name"].ToString() == "id")
+                {
+                    sql += "`" + item["name"].ToString() + "` int NOT NULL AUTO_INCREMENT COMMENT '" + item["title"].ToString() + "',\n";
+                }
+                else
+                {
+                    if(fieldType == "int")
+                    {
+                        sql += "`" + item["name"].ToString() + "` int NOT NULL DEFAULT " + defaultValue + " COMMENT '" + item["title"].ToString() + "',\n";
+                    }
+                    else if(fieldType == "numeric")
+                    {
+                        sql += "`" + item["name"].ToString() + "` numeric(18,2) NOT NULL DEFAULT " + defaultValue + " COMMENT '" + item["title"].ToString() + "',\n";
+                    }
+                    else if(fieldType == "datetime")
+                    {
+                        sql += "`" + item["name"].ToString() + "` datetime COMMENT '" + item["title"].ToString() + "',\n";
+                    }
+                    else
+                    {
+                        sql += "`" + item["name"].ToString() + "` " + fieldType + "(" + item["len"].ToString() + ")" + nullCondition + " COMMENT '" + item["title"].ToString() + "',\n";
+                    }
+                }
                 if(item["pri"].ToString() == "1")
                 {
                     prikey = item["name"].ToString();