DuGuYang %!s(int64=2) %!d(string=hai) anos
pai
achega
5db024d63a

+ 116 - 0
AppStart/Helper/GetRadioCardInfoService.cs

@@ -0,0 +1,116 @@
+using System.Collections.Generic;
+using LitJson;
+using Library;
+using MySystem.Models;
+using System;
+using System.Security.Cryptography;
+using System.Threading;
+using System.Linq;
+/// <summary>
+/// 获取行销宝信息
+/// </summary>
+
+public class GetRadioCardInfoService
+{
+    public readonly static GetRadioCardInfoService Instance = new GetRadioCardInfoService();
+    private GetRadioCardInfoService()
+    {
+    }
+
+    //测试
+    string pubKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCGvhfAXw0yoPgMwBfX6jgDT6XBjWqOFcGmsm/pfnGlqGSsMYZNjMLzwOMWfhB8IO7dyh4nu3caXjZTbBUJLQtIKcOoM/ZFZZiOXBW2xDg5WPSswmtCvaSmct9rrd0OGvZtNvgimcNjnHbiE1/1LPxwKHWyzdxzRul5NJdg0Vdw1QIDAQAB";
+    string priKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJVLd0ePGZ6fKK1TwcGIxvknF7liDhGyedk3IRxEwTP6P+YS7Y9WaKxDTxIc77ECFSWlvZIPKOXXufMTzwkEGvuAKO+kD9C5R2D+4U3IhztrzcHif8Pn5+I2fVUGuXisUJ+bPxEKSjw7sn5S94uCIsy7o79rHAovAwn+2veLw8xDAgMBAAECgYAqZ8gWnE/jnUOZj9vOFAKoTHFRp8dlQXOYvi76b5ENKXyy5hdyClIq8+dmtq9icLv++IfTD9lHB7J6l9rLrc3XyNmdRSzxSxOT/kPYv1qZoNCqAlTFjWwLNw8tkarcc9NbNXg9UOS/UE97Hs1vlEThOB12cz+5wEF62l+LvZCxeQJBAMrgiujwoKddhCNGuVr3Gac98j4PBqvgtakvYUzvF78gJ0ffngb0J6s1rmGgmaohJc5YE8RwHa4AbIAUjhsdTx0CQQC8YyPgtD44i6+IQMba5zZH1nISSI5yQlPv8dgLXRLDMTnWXx9F7JxXLzAmeJdpkZrdvv1tLzClqDStRClr28rfAkEArFuD6E62TjpWzpmBU9TmiH1KVorxggiQjUHhijj+lbO9a4SBfyrioMQkeHC23CD5O4r8kEEoFfHqPA46hLKryQJAcCHOvDRtCLlUbRSpiKixLYdedLWNXENQtPTN9M2cmmSVmZ0a/0L8OATVc0C6V1MczDqfnDrHiQMa/7sfsJyuHwJBAMLGVR4buHGR/zrnO7FJa4zPw0KK+xUSttDQ9T2+JzV+RcaffmwSm511q+lAZW8e+SrT08WBKhEY8bYUEV95VAM=";
+    string orgNo = "YCJG10010003";
+    string apiKey = "12345678";
+    string host = "https://bmp-test.cbnyunchang.com";
+
+    public void Start()
+    {
+        Thread th = new Thread(StartEverTimeDo);
+        th.IsBackground = true;
+        th.Start();
+    }
+
+    private void StartEverTimeDo()
+    {
+        while (true)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            try
+            {
+                string queryBeginTime = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"); //工号开通时间,开始时间。格式:yyyy-MM-dd
+                string queryEndTime = DateTime.Now.ToString("yyyy-MM-dd"); //工号开通时间,结束时间。格式:yyyy-MM-dd
+                string pageNo = "1"; //当前页
+                string pageSize = "100"; //每页大小
+                string timestamp = function.getTimeStamp(); //时间戳,精确到秒。签名用参数
+                SortedList<string, string> req = new SortedList<string, string>();
+                req.Add("queryBeginTime", queryBeginTime);
+                req.Add("queryEndTime", queryEndTime);
+                req.Add("brhNo", orgNo);
+                req.Add("pageNo", pageNo);
+                req.Add("pageSize", pageSize);
+                req.Add("timestamp", timestamp);
+                string signstr = function.BuildQueryString(req);
+                function.WriteLog(DateTime.Now.ToString(), "广电卡查询开通工号数据");
+                function.WriteLog("代签名串\n" + signstr, "广电卡查询开通工号数据");
+                req.Add("sign", Sign(signstr));
+                string reqstr = Newtonsoft.Json.JsonConvert.SerializeObject(req);
+                function.WriteLog("请求参数\n" + reqstr, "广电卡查询开通工号数据");
+                string reqUrl = host + "/ycsim-business/openapi/query_marketers_info";
+                function.WriteLog("请求地址\n" + reqUrl, "广电卡查询开通工号数据");
+                string result = function.PostWebRequest(reqUrl, reqstr, "application/json");
+                function.WriteLog("响应数据\n" + result, "广电卡查询开通工号数据");
+
+                JsonData jsonObj = JsonMapper.ToObject(result);
+                if (jsonObj["resultCode"].ToString() == "1")
+                {
+                    var data = jsonObj["data"]["records"];
+                    for (int i = 0; i < data.Count; i++)
+                    {
+                        var IdNo = data["idNo"].ToString();
+                        var radioCardInfo = db.RadioCardInfo.FirstOrDefault(m => m.IdNo == IdNo) ?? new RadioCardInfo();
+                        if (string.IsNullOrEmpty(radioCardInfo.JobId))
+                        {
+                            radioCardInfo.JobId = data["jobId"].ToString(); //行销宝工号
+                            radioCardInfo.JobStatus = data["status"].ToString(); //工号状态
+                            radioCardInfo.OprName = data["oprName"].ToString(); //人员姓名
+                            radioCardInfo.Mobile = data["mobile"].ToString(); //广电手机号
+                            radioCardInfo.IdNo = data["idNo"].ToString(); //身份证号
+                            radioCardInfo.Gender = data["gender"].ToString(); //性别
+                            radioCardInfo.Role = data["role"].ToString(); //角色
+                            radioCardInfo.ChannelCode = data["channelCode"].ToString(); //归属社招渠道编码
+                            radioCardInfo.ChannelName = data["channelName"].ToString(); //归属社招渠道名称
+                            radioCardInfo.ProvincialCompany = data["provincialCompany"].ToString(); //归属省公司
+                            radioCardInfo.OprInviteCode = data["oprInviteCode"].ToString(); //邀请码
+                            radioCardInfo.OpenTime = data["openTime"].ToString(); //开通时间
+                            radioCardInfo.BrhName = data["brhName"].ToString(); //机构名称
+                            radioCardInfo.BrhUserId = data["brhUserId"].ToString(); //机构用户编码
+                            radioCardInfo.UpdateDate = DateTime.Now; //更新时间
+                        }
+                    }
+                    db.SaveChanges();
+                }
+                else
+                {
+                    function.WriteLog(DateTime.Now.ToString() + "\n" + result, "请求行销宝信息接口异常");
+                    Thread.Sleep(1800000);
+                }
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "获取行销宝信息线程异常");
+            }
+            db.Dispose();
+        }
+    }
+
+    private string Sign(string message)
+    {
+        byte[] keyData = Convert.FromBase64String(priKey);
+        byte[] data = System.Text.Encoding.UTF8.GetBytes(message);
+        var rsa = System.Security.Cryptography.RSA.Create();
+        rsa.ImportPkcs8PrivateKey(keyData, out _);
+        return Convert.ToBase64String(rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1));
+    }
+
+}

+ 1 - 1
Models/PosMachinesTwo.cs

@@ -61,9 +61,9 @@ namespace MySystem.Models
         public int RecycStatus { get; set; }
         public string OutBatchNo { get; set; }
         public int WithholdFlag { get; set; }
+        public int LastMerchantId { get; set; }
         public int IsSupplement { get; set; }
         public int IsOpAct { get; set; }
-        public int LastMerchantId { get; set; }
         public int CardType { get; set; }
         public decimal DownFee { get; set; }
         public int FirstFlag { get; set; }

+ 30 - 0
Models/RadioCardInfo.cs

@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.Models
+{
+    public partial class RadioCardInfo
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public int UserId { get; set; }
+        public string BrhUserId { get; set; }
+        public string BrhName { get; set; }
+        public string OpenTime { get; set; }
+        public string OprInviteCode { get; set; }
+        public string ProvincialCompany { get; set; }
+        public string ChannelName { get; set; }
+        public string ChannelCode { get; set; }
+        public string Role { get; set; }
+        public string Gender { get; set; }
+        public string IdNo { get; set; }
+        public string Mobile { get; set; }
+        public string OprName { get; set; }
+        public string JobStatus { get; set; }
+        public string JobId { get; set; }
+    }
+}

+ 120 - 1
Models/WebCMSEntities.cs

@@ -184,6 +184,7 @@ namespace MySystem.Models
         public virtual DbSet<PullNewAct> PullNewAct { get; set; }
         public virtual DbSet<PullNewDetail> PullNewDetail { get; set; }
         public virtual DbSet<PullnewSummary> PullnewSummary { get; set; }
+        public virtual DbSet<RadioCardInfo> RadioCardInfo { get; set; }
         public virtual DbSet<RecommendDirectUser> RecommendDirectUser { get; set; }
         public virtual DbSet<RecommendOrderCheck> RecommendOrderCheck { get; set; }
         public virtual DbSet<RecommendTradeSummary> RecommendTradeSummary { get; set; }
@@ -10125,6 +10126,7 @@ namespace MySystem.Models
 
                 entity.Property(e => e.CardType)
                     .HasColumnType("int(11)")
+                    .HasDefaultValueSql("'2'")
                     .HasComment("卡类型");
 
                 entity.Property(e => e.CreateDate).HasColumnType("datetime");
@@ -10194,7 +10196,7 @@ namespace MySystem.Models
 
                 entity.Property(e => e.LastMerchantId)
                     .HasColumnType("int(11)")
-                    .HasComment("最后一次绑定商户Id");
+                    .HasComment("最后一次绑定商户");
 
                 entity.Property(e => e.LeaderUserId).HasColumnType("int(11)");
 
@@ -13273,6 +13275,122 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<RadioCardInfo>(entity =>
+            {
+                entity.HasComment("行销宝工号信息");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrhName)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("机构名称")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.BrhUserId)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("机构用户编码")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.ChannelCode)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("归属社招渠道编码")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.ChannelName)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("归属社招渠道名称")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.Gender)
+                    .HasColumnType("varchar(10)")
+                    .HasComment("性别")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.IdNo)
+                    .HasColumnType("varchar(18)")
+                    .HasComment("身份证号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.JobId)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("行销宝工号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.JobStatus)
+                    .HasColumnType("varchar(10)")
+                    .HasComment("工号状态")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Mobile)
+                    .HasColumnType("varchar(11)")
+                    .HasComment("广电手机号")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.OpenTime)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("开通时间")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.OprInviteCode)
+                    .HasColumnName("oprInviteCode")
+                    .HasColumnType("varchar(50)")
+                    .HasComment("邀请码")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.OprName)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("人员姓名")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.ProvincialCompany)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("归属省公司")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Role)
+                    .HasColumnType("varchar(10)")
+                    .HasComment("角色")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("修改时间");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("创客Id");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<RecommendDirectUser>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -14437,6 +14555,7 @@ namespace MySystem.Models
 
                 entity.Property(e => e.Type)
                     .HasColumnType("int(11)")
+                    .HasDefaultValueSql("'3'")
                     .HasComment("兑换类型");
 
                 entity.Property(e => e.UpdateDate)

+ 6 - 4
Startup.cs

@@ -142,6 +142,7 @@ namespace MySystem
             if(Env == "Develop")
             {
                 SIMPosMerchantTradeService.Instance.Start(); //导入广电卡数据
+                GetRadioCardInfoService.Instance.Start(); //获取行销宝信息
             }
             if(Env == "Production")
             {
@@ -152,6 +153,7 @@ namespace MySystem
                 ExcelHelper.Instance.Start();
                 OpExcelHelper.Instance.Start();
                 SIMPosMerchantTradeService.Instance.Start(); //导入广电卡数据
+                GetRadioCardInfoService.Instance.Start(); //获取行销宝信息
                 SycnUserMachineCountHelper.Instance.Start(); //重置创客机具数量
 
                 TestHelper.Instance.Start(); //生成兑换券
@@ -169,10 +171,10 @@ namespace MySystem
         private void initMainServer(string Env)
         {
             string dbName = "KxsMainServer";
-            if(Env == "Production")
-            {
-                dbName = "KxsProfitServer";
-            }
+            // if(Env == "Production")
+            // {
+            //     dbName = "KxsProfitServer";
+            // }
             Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
             Library.OtherMySqlConn.connstr = Configuration["Setting:SqlConnStr"];
             System.Data.DataTable tablecollection = Library.OtherMySqlConn.dtable("select DISTINCT TABLE_NAME from information_schema.columns where table_schema = '" + dbName + "'");