소스 검색

整理数据库读取对象,统一读取ap上的数据库,后期拆分到main上的数据库

lichunlei 3 년 전
부모
커밋
2acb5851e4
76개의 변경된 파일1651개의 추가작업 그리고 1462개의 파일을 삭제
  1. 0 136
      AppStart/Helper/Cash/CashBase.cs
  2. 0 43
      AppStart/Helper/Cash/CashPersonalCreateHelper.cs
  3. 0 43
      AppStart/Helper/Cash/CashSignConfirmHelper.cs
  4. 0 43
      AppStart/Helper/Cash/CashSignHelper.cs
  5. 1 1
      AppStart/Helper/CheckAlipaySignService.cs
  6. 1 1
      AppStart/Helper/CheckWeChatSignService.cs
  7. 1 1
      AppStart/Helper/DelMySql/DeleteMySqlDataService.cs
  8. 11 6
      AppStart/Helper/MakeReferenceQrCodeService.cs
  9. 1 1
      AppStart/Helper/MerchantConfirmService.cs
  10. 1 1
      AppStart/Helper/Profit/ActiveService.cs
  11. 1 1
      AppStart/Helper/Profit/DiviService.cs
  12. 1 1
      AppStart/Helper/Profit/FluxService.cs
  13. 1 1
      AppStart/Helper/Profit/OpenService.cs
  14. 10 3
      AppStart/Helper/Profit/ProfitHelper.cs
  15. 1 1
      AppStart/Helper/Profit/ProfitService.cs
  16. 1 1
      AppStart/Helper/Profit/StandardService.cs
  17. 1 1
      AppStart/Helper/Profit/TeamTopService.cs
  18. 24 1
      AppStart/Helper/RSAHelper.cs
  19. 221 49
      AppStart/Helper/StatService.cs
  20. 1 1
      AppStart/Helper/SycnActiveRewardService.cs
  21. 1 1
      AppStart/Helper/SycnMerchantInfoService.cs
  22. 1 1
      AppStart/Helper/SycnMysql/ConsumerOpenIdsHelper.cs
  23. 1 1
      AppStart/Helper/SycnMysql/ConsumerOrdersHelper.cs
  24. 1 1
      AppStart/Helper/SycnMysql/ConsumersHelper.cs
  25. 1 1
      AppStart/Helper/SycnMysql/MachineApplyHelper.cs
  26. 1 1
      AppStart/Helper/SycnMysql/MerchantParamSetHelper.cs
  27. 1 1
      AppStart/Helper/SycnMysql/OrderProductHelper.cs
  28. 1 1
      AppStart/Helper/SycnMysql/OrdersHelper.cs
  29. 1 1
      AppStart/Helper/SycnMysql/PosMachinesHelper.cs
  30. 1 1
      AppStart/Helper/SycnMysql/ProductsHelper.cs
  31. 1 1
      AppStart/Helper/SycnMysql/PublicTableHelper.cs
  32. 1 1
      AppStart/Helper/SycnMysql/StoreChangeHistoryHelper.cs
  33. 1 1
      AppStart/Helper/SycnMysql/StoreStockChangeHelper.cs
  34. 1 1
      AppStart/Helper/SycnMysql/TeamApplyHelper.cs
  35. 1 1
      AppStart/Helper/SycnMysql/TeamOfferApplyHelper.cs
  36. 1 1
      AppStart/Helper/SycnMysql/UserAddressHelper.cs
  37. 1 1
      AppStart/Helper/SycnMysql/UserBackHelper.cs
  38. 1 1
      AppStart/Helper/SycnMysql/UserCashRecordHelper.cs
  39. 1 1
      AppStart/Helper/SycnMysql/UserLoginRecordHelper.cs
  40. 1 1
      AppStart/Helper/SycnMysql/UserMachineDataHelper.cs
  41. 1 1
      AppStart/Helper/SycnMysql/UserStoreChangeHelper.cs
  42. 1 1
      AppStart/Helper/SycnMysql/UsersHelper.cs
  43. 1 1
      AppStart/Helper/SycnSpServer/SycnSpService.cs
  44. 6 1
      AppStart/Helper/SycnSpServer/SycnSpTradeService.cs
  45. 1 1
      AppStart/Helper/SycnTradeRecordService.cs
  46. 486 0
      AppStart/Helper/TestService.cs
  47. 1 1
      AppStart/PublicFunction.cs
  48. 1 1
      AppStart/RelationClass.cs
  49. 1 1
      AppStart/Timer/AlipayPayBack2Timer.cs
  50. 1 1
      AppStart/Timer/PosTradeStatTimer.cs
  51. 1 1
      AppStart/Timer/SycnSpTimer.cs
  52. 1 1
      AppStart/Timer/TimerStatTimer.cs
  53. 1 1
      AppStart/WeChatFunction.cs
  54. 676 697
      Controllers/HomeController.cs
  55. 1 4
      Models/AgentLevelSet.cs
  56. 2 2
      Models/ConsumerOrders.cs
  57. 1 1
      Models/ConsumerProfit.cs
  58. 1 4
      Models/Consumers.cs
  59. 2 2
      Models/MachineForQrCode.cs
  60. 6 6
      Models/MerchantAddInfo.cs
  61. 7 7
      Models/MerchantInfo.cs
  62. 0 3
      Models/MerchantQrCode.cs
  63. 1 0
      Models/TradeRecord.cs
  64. 6 6
      Models/UserAccount.cs
  65. 1 1
      Models/UserCardRecord.cs
  66. 5 5
      Models/Users.cs
  67. 3 338
      Models/WebCMSEntities.cs
  68. 1 1
      PublicClass/GraphQL/IRepository.cs
  69. 1 1
      PublicClass/GraphQL/Query.cs
  70. 2 2
      PublicClass/GraphQL/Repository.cs
  71. 30 0
      PxcModels/SetMerchantTypeRecord.cs
  72. 1 0
      PxcModels/TradeRecord.cs
  73. 2 0
      PxcModels/Users.cs
  74. 85 0
      PxcModels/WebCMSEntities.cs
  75. 13 11
      Startup.cs
  76. 3 3
      appsettings.json

+ 0 - 136
AppStart/Helper/Cash/CashBase.cs

@@ -1,136 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.Models;
-using Library;
-using LitJson;
-using System.Threading;
-using System.Security.Cryptography;
-
-namespace MySystem
-{
-    public class PayApply
-    {
-        public string taskNo { get; set; }
-        public string entOrderNo { get; set; }
-        public string payeeName { get; set; }
-        public string payeeIdCard { get; set; }
-        public string payeePhone { get; set; }
-        public string payeeAccount { get; set; }
-        public string paymentModel { get; set; }
-        public string amount { get; set; }
-        public string callbackUrl { get; set; }
-        public string remark { get; set; }
-    }
-    public class CashBase
-    {
-        public readonly static CashBase Instance = new CashBase();
-        private CashBase()
-        { }
-
-        public string PrivateKey = ""; //私钥
-        public string PublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZa64mEChZCYmn6t+33ZksHoV9Me/SR2oOkbNifkwP8EmhtopMZE00yumd3zKY0enJvqZ+22x486MUUu3d658n+nl6k8taSAYVrUb6vIfFueUYcbvorxzZNLvdi3AnQGJybRGJis/9WOYJc0XioNq9ywP/RLWMNGmuF+RBFYoRic9dGMoPF2I4Y/RazxUNN9mJRQwIacAd7r+miikBzrQ0kdC0QdNR4eEc2u8UEy2VhMuMqc9oKXVSdlVV+8Cx5m9kZzyRL0UryvUV6VYk8zMxoQVHpTtu0GjL8nXBfiJzglCqIpum989AIxrafgIwvwj8fTMnET4eTwT7nUyskgewIDAQAB";  //公钥
-        public string EnterpriseNo = "8880010000269";  //平台分配的企业编码
-        public string ChannelNo = "8880010000267";  //平台分配的渠道编码
-        public string RequestUrl = "http://yhs-service-pay2data.juheba.top:8888/";  //请求地址
-
-        //查询签约状态
-        public string QuerySignStatus(string IdCard)
-        {
-            Dictionary<string, object> data = new Dictionary<string, object>();
-            data.Add("apiCode", "3003"); //接口编号,固定:3003
-            data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码
-            data.Add("channelNo", ChannelNo); //平台分配的渠道编码
-            data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒)
-            data.Add("idCard", IdCard); //从业者身份证号
-            return PostData("api/personal/signed/result", data, new Dictionary<string, object>());
-        }
-
-        //从业者数据提交
-        public string CreateInfo(string Name, string IdCard, string Phone, string FrontCertImg, string BackCertImg)
-        {
-            Dictionary<string, object> data = new Dictionary<string, object>();
-            data.Add("apiCode", "3000"); //接口编号,固定:3003
-            data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码
-            data.Add("channelNo", ChannelNo); //平台分配的渠道编码
-            data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒)
-            data.Add("name", Name); //从业者姓名
-            data.Add("idCard", IdCard); //从业者身份证号
-            data.Add("phone", Phone); //从业者手机号
-            Dictionary<string, object> fileData = new Dictionary<string, object>();
-            fileData.Add("frontCertImg", FrontCertImg); //身份证正面照
-            fileData.Add("backCertImg", BackCertImg); //身份证反面照
-            return PostData("api/personal/create", data, fileData);
-        }
-
-        //发起签约确认
-        public string ConfirmSign(string IdCard)
-        {
-            Dictionary<string, object> data = new Dictionary<string, object>();
-            data.Add("apiCode", "3004"); //接口编号,固定:3003
-            data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码
-            data.Add("channelNo", ChannelNo); //平台分配的渠道编码
-            data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒)
-            data.Add("idCard", IdCard); //从业者身份证号
-            return PostData("api/personal/sign", data, new Dictionary<string, object>());
-        }
-
-        //提价代付申请
-        public string PayApply(PayApply ReqData)
-        {
-            Dictionary<string, object> data = new Dictionary<string, object>();
-            data.Add("apiCode", "3004"); //接口编号,固定:3003
-            data.Add("enterpriseNo", EnterpriseNo); //平台分配的企业编码
-            data.Add("channelNo", ChannelNo); //平台分配的渠道编码
-            data.Add("timestamp", function.GetCurTimestamp()); //时间戳(毫秒)
-            data.Add("taskNo", ReqData.taskNo); //企业后台创建的任务编码
-            data.Add("entOrderNo", ReqData.entOrderNo); //企业流水号
-            data.Add("payeeName", ReqData.payeeName); //收款人姓名
-            data.Add("payeeIdCard", ReqData.payeeIdCard); //收款人身份证号
-            data.Add("payeePhone", ReqData.payeePhone); //收款人手机号
-            data.Add("payeeAccount", ReqData.payeeAccount); //收款人帐号(银行卡号、支付宝帐号)
-            data.Add("paymentModel", ReqData.paymentModel); //支付类型
-            data.Add("amount", ReqData.amount); //金额(单位:分)
-            data.Add("callbackUrl", ReqData.callbackUrl); //通知地址
-            data.Add("remark", ReqData.remark); //结算单备注信息
-            return PostData("api/pay/apply", data, new Dictionary<string, object>());
-        }
-
-        //公用请求方法
-        public string PostData(string path, Dictionary<string, object> data, Dictionary<string, object> fileData)
-        {
-            Dictionary<string, object> main = new Dictionary<string, object>();
-            main.Add("enterpriseNo", EnterpriseNo);
-            main.Add("channelNo", ChannelNo);
-            function.WriteLog(DateTime.Now.ToString(), "代付公用请求方法");
-            function.WriteLog("path:" + path, "代付公用请求方法");
-            string body = Newtonsoft.Json.JsonConvert.SerializeObject(data);
-            function.WriteLog("body:" + body, "代付公用请求方法");
-            body = Encrypt(body);
-            main.Add("body", body);
-            if (fileData.Keys.Count > 0)
-            {
-                main.Add("fileData", fileData);
-            }
-            string req = Newtonsoft.Json.JsonConvert.SerializeObject(main);
-            function.WriteLog("req:" + req, "代付公用请求方法");
-            string result = function.PostWebRequest(RequestUrl + path, req, "application/json");
-            function.WriteLog("result:" + result, "代付公用请求方法");
-            function.WriteLog("-----------------", "代付公用请求方法");
-            return result;
-        }
-
-        //加密
-        public string Encrypt(string content)
-        {
-            // var toDecryptArray = System.Text.Encoding.UTF8.GetBytes(content);
-            // var keyArray = System.Text.Encoding.UTF8.GetBytes(PublicKey);
-            // var rsa = RSA.Create();
-            // rsa.ImportRSAPublicKey(keyArray, out _);
-            // var contentArray = rsa.Encrypt(toDecryptArray, RSAEncryptionPadding.Pkcs1);
-            // return Convert.ToBase64String(contentArray);
-            
-            return new RSAHelper(RSAType.RSA, System.Text.Encoding.UTF8, "", PublicKey).Encrypt(content);
-        }
-    }
-}

+ 0 - 43
AppStart/Helper/Cash/CashPersonalCreateHelper.cs

@@ -1,43 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.Models;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class CashPersonalCreateHelper
-    {
-        public readonly static CashPersonalCreateHelper Instance = new CashPersonalCreateHelper();
-        private CashPersonalCreateHelper()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities db = new WebCMSEntities();
-                    
-                    db.SaveChanges();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "代付提交资料异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-    }
-}

+ 0 - 43
AppStart/Helper/Cash/CashSignConfirmHelper.cs

@@ -1,43 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.Models;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class CashSignConfirmHelper
-    {
-        public readonly static CashSignConfirmHelper Instance = new CashSignConfirmHelper();
-        private CashSignConfirmHelper()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities db = new WebCMSEntities();
-                    
-                    db.SaveChanges();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "代付确认签约异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-    }
-}

+ 0 - 43
AppStart/Helper/Cash/CashSignHelper.cs

@@ -1,43 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.Models;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class CashSignHelper
-    {
-        public readonly static CashSignHelper Instance = new CashSignHelper();
-        private CashSignHelper()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities db = new WebCMSEntities();
-                    
-                    db.SaveChanges();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "代付签约异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-    }
-}

+ 1 - 1
AppStart/Helper/CheckAlipaySignService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 using System.Text.RegularExpressions;

+ 1 - 1
AppStart/Helper/CheckWeChatSignService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 using System.Text.RegularExpressions;

+ 1 - 1
AppStart/Helper/DelMySql/DeleteMySqlDataService.cs

@@ -1,6 +1,6 @@
 using System;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 
 namespace MySystem

+ 11 - 6
AppStart/Helper/MakeReferenceQrCodeService.cs

@@ -87,11 +87,11 @@ namespace MySystem
             string path = function.CreateQRCode2(ConfigurationManager.AppSettings["SourceHost"].ToString() + "p/user-inviteregist-1?Id=" + user.Id, function.MD5_16(user.Id.ToString() + "9527"), "/bsserver_com/static/ReferenceQrCode/");
             path = path.Replace("//", "/");
             string resultpath = "/bsserver_com/static/ReferenceQrCode/" + function.MD5_16(user.Id.ToString() + "9527") + "Pic.png";
-            MakeQRCode(function.getPath("/static/QrCodeBg.png"), function.getPath(path), function.getPath(resultpath), user);
+            MakeQRCode(function.getPath("/static/" + BgPic), function.getPath(path), function.getPath(resultpath), user, pid);
             return resultpath.Replace("bsserver_com/", "");
         }
 
-        public void MakeQRCode(string sourcepath, string qrcode, string resultpath, Users us)
+        public void MakeQRCode(string sourcepath, string qrcode, string resultpath, Users us, int pid = 0)
         {
             System.Drawing.Image image = System.Drawing.Image.FromFile(sourcepath);
             System.Drawing.Image qrcodepic = System.Drawing.Image.FromFile(qrcode);
@@ -104,7 +104,7 @@ namespace MySystem
             Graphics Grp = Graphics.FromImage(BitmapResult);
             System.Drawing.Rectangle Rec = new System.Drawing.Rectangle(0, 0, Width, Height);
             //定义一个白色的画刷
-            SolidBrush mySolidBrush = new SolidBrush(System.Drawing.Color.White);
+            // SolidBrush mySolidBrush = new SolidBrush(System.Drawing.Color.White);
             //Grp.Clear(Color.White);
             //将矩形框填充为白色
             // Grp.FillRectangle(mySolidBrush, Rec);
@@ -116,8 +116,13 @@ namespace MySystem
             //写字
             Font f = new Font("PingFang SC", 34);
             Font f2 = new Font("PingFang SC", 30);
-            Brush b = new SolidBrush(Color.FromArgb(255, Color.White));
-            Brush b2 = new SolidBrush(Color.FromArgb(255, Color.White));
+            Color color = Color.FromArgb(255, 255, 255, 255);
+            if (pid > 0 && pid != 2)
+            { 
+                color = Color.FromArgb(255, 0, 0, 0);
+            }
+            Brush b = new SolidBrush(color);
+            Brush b2 = new SolidBrush(color);
             StringFormat sf = new StringFormat();
             sf.LineAlignment = StringAlignment.Center;
             sf.Alignment = StringAlignment.Center;
@@ -131,7 +136,7 @@ namespace MySystem
             Grp.DrawString("推荐码:" + us.MakerCode, f2, b2, new RectangleF()
             {
                 X = 0,
-                Y = 1060,
+                Y = 1030,
                 Width = Width,
                 Height = 50,
             }, sf);

+ 1 - 1
AppStart/Helper/MerchantConfirmService.cs

@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Text.RegularExpressions;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Helper/Profit/ActiveService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Helper/Profit/DiviService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Helper/Profit/FluxService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Helper/Profit/OpenService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 10 - 3
AppStart/Helper/Profit/ProfitHelper.cs

@@ -1772,7 +1772,7 @@ namespace MySystem
             }
             function.WritePage("/ProfitStat/", Month + ".txt", DateTime.Now.ToString());
             WebCMSEntities db = new WebCMSEntities();
-            for (int i = 1; i <= 5; i++) //品牌
+            for (int i = 3; i <= 5; i++) //品牌
             {
                 for (int j = 0; j <= 1; j++) //卡类型
                 {
@@ -2050,7 +2050,7 @@ namespace MySystem
                     若创客为商户型创客,则机具UserId的创客获得万4分润
 
                     //查分润
-                    select u.MakerCode,u.RealName,u.UserLevel,p.KqSnNo,(case when ProfitType=1 then '直营' else '团队' end) as DirectFlag,
+                    select u.MakerCode,u.RealName,u.UserLevel,r.Rank,pos.SeoKeyword,p.KqSnNo,(case when ProfitType=1 then '直营' else '团队' end) as DirectFlag,
                     k.Name,CreditTradeAmt,CreditTradeProfit,DebitTradeAmt,DebitTradeProfit,QrCreditTradeAmt,QrCreditTradeProfit from (
                     select UserId,ProfitType,BrandId,MerchantId,
                     sum(CreditTradeAmt) as CreditTradeAmt,
@@ -2061,7 +2061,14 @@ namespace MySystem
                     sum(QrCreditTradeProfit) as QrCreditTradeProfit
                     from ProfitRewardRecord where MerchantId>0
                     GROUP BY UserId,ProfitType,BrandId,MerchantId
-                    ) tb left join Users u on tb.UserId=u.Id LEFT JOIN KqProducts k ON k.Id=tb.BrandId left join PosMerchantInfo p on tb.MerchantId=p.Id ORDER BY p.KqSnNo,u.MakerCode
+                    ) tb 
+                    left join Users u on tb.UserId=u.Id 
+                    LEFT JOIN KqProducts k ON k.Id=tb.BrandId 
+                    left join PosMerchantInfo p on tb.MerchantId=p.Id 
+                    left join MachineForSnNo fp on fp.SnNo=p.KqSnNo 
+                    left join PosMachinesTwo pos on pos.Id=fp.SnId 
+                    left join UserRankWhite r on u.Id=r.Id 
+                    ORDER BY p.KqSnNo,u.MakerCode
 
                     //查补贴
                     select u.MakerCode,u.RealName,u.UserLevel,m.KqSnNo,m.MerchantName,(case when SubsidyType=1 then '直营' else '团队' end) as DirectFlag,

+ 1 - 1
AppStart/Helper/Profit/ProfitService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Helper/Profit/StandardService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Helper/Profit/TeamTopService.cs

@@ -2,7 +2,7 @@
 using System.Threading.Tasks;
 using System.Linq;
 using Microsoft.Extensions.Hosting;
-using MySystem.Models;
+using MySystem.PxcModels;
 using MySystem;
 
 public class TeamTopService : BackgroundService

+ 24 - 1
AppStart/Helper/RSAHelper.cs

@@ -100,7 +100,30 @@ namespace MySystem
 			{
 				throw new Exception("_publicKeyRsaProvider is null");
 			}
-			return Convert.ToBase64String(_publicKeyRsaProvider.Encrypt(Encoding.UTF8.GetBytes(text), RSAEncryptionPadding.Pkcs1));
+            #region 分段加密
+            byte[] dataToEncrypt = Encoding.UTF8.GetBytes(text);
+            int bufferSize = (_publicKeyRsaProvider.KeySize / 8) - 11;
+			byte[] buffer = new byte [bufferSize] ;
+			byte[] outBytes = null;
+			using (MemoryStream input = new MemoryStream(dataToEncrypt))
+            using (MemoryStream ouput = new MemoryStream())
+            {
+                while (true)
+                {
+                    int readLine = input.Read(buffer, 0, bufferSize);
+                    if (readLine <= 0)
+                    {
+                        break;
+                    }
+                    byte[] temp = new byte[readLine];
+                    Array.Copy(buffer, 0, temp, 0, readLine);
+                    byte[] encrypt = _publicKeyRsaProvider.Encrypt(temp, RSAEncryptionPadding.Pkcs1);
+                    ouput.Write(encrypt, 0, encrypt.Length);
+                }
+                outBytes = ouput.ToArray();
+            }
+            #endregion
+            return Convert.ToBase64String(outBytes);
 		}
 
 		#endregion

+ 221 - 49
AppStart/Helper/StatService.cs

@@ -201,36 +201,7 @@ namespace MySystem
             db.Dispose();
         }
 
-        // 2. 每天统计前一天的交易额,每笔交易判断商户号的所属人是商户型创客,如果是,则从此人开始累计交易额,若不是,则从此人上级开始累计交易额 
-        public void dosomething2(string date)
-        {
-            string yesterday = date + " 00:00:00";
-            string today = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-            string TradeMonth = DateTime.Parse(date).ToString("yyyyMM");
-            string TradeDate = DateTime.Parse(date).ToString("yyyyMMdd");
-            DataTable dt = dbconn.dtable("select UserId,BrandId,MerchantId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where CreateDate>='" + yesterday + "' and CreateDate<'" + today + "' group by UserId,BrandId,MerchantId,BankCardType,QrPayFlag");
-            foreach (DataRow dr in dt.Rows)
-            {
-                int UserId = int.Parse(dr["UserId"].ToString()); //创客ID
-                int BrandId = int.Parse(dr["BrandId"].ToString()); //品牌
-                int MerchantId = int.Parse(dr["MerchantId"].ToString()); //商户Id
-                int BankCardType = int.Parse(dr["BankCardType"].ToString()); //卡类型
-                int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString()); //云闪付
-                decimal TradeAmount = decimal.Parse(dr[5].ToString()); //当日交易额
-                string content = "{";
-                content += "\"DateString\":\"" + date + "\",";
-                content += "\"UserId\":\"" + UserId + "\",";
-                content += "\"BrandId\":\"" + BrandId + "\",";
-                content += "\"MerchantId\":\"" + MerchantId + "\",";
-                content += "\"BankCardType\":\"" + BankCardType + "\",";
-                content += "\"QrPayFlag\":\"" + QrPayFlag + "\",";
-                content += "\"TradeAmount\":\"" + TradeAmount + "\"";
-                content += "}";
-                RedisDbconn.Instance.AddList("TradeStatQueue", content);    
-                // RedisDbconn.Instance.AddList("TradeStatQueue2", content);
-            }
-        }
-
+        
         public void testStatTrade(string date)
         {
             string yesterday = date + " 00:00:00";
@@ -1232,11 +1203,14 @@ namespace MySystem
                 //     endId = endDt.Rows[0][0].ToString();
                 // }
                 DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
+                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
                 foreach (DataRow userDr in userDt.Rows)
                 {
                     int UserId = int.Parse(userDr["Id"].ToString());
                     string ParentNav = userDr["ParentNav"].ToString();
+                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
                     DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
+                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
                     foreach (DataRow selfDr in selfdt.Rows)
                     {
                         int BrandId = int.Parse(selfDr["BrandId"].ToString());
@@ -1267,15 +1241,15 @@ namespace MySystem
                         }
                         db.SaveChanges();
                     }
-                    RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
+                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
+                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
+                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
+                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
+                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
+                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
+                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
+                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
+                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
                     if (!string.IsNullOrEmpty(ParentNav))
                     {
                         ParentNav += "," + UserId + ",";
@@ -1286,7 +1260,9 @@ namespace MySystem
                             {
                                 uids.Add(NavUserIdString + start);
                                 int NavUserId = int.Parse(NavUserIdString);
+                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
                                 DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
+                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
                                 foreach (DataRow teamDr in teamDt.Rows)
                                 {
                                     int BrandId = int.Parse(teamDr["BrandId"].ToString());
@@ -1317,15 +1293,208 @@ namespace MySystem
                                     }
                                     db.SaveChanges();
                                 }
-                                RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
+                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
+                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
+                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
+                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
+                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
+                            }
+                        }
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
+            }
+            db.Dispose();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
+
+            StatMerchantTrade(date);
+        }
+
+
+        public void StatTradeAmountEverDay2(object sender)
+        {
+            string date = sender.ToString();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
+            WebCMSEntities db = new WebCMSEntities();
+            try
+            {
+                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+                string TradeDate = date.Replace("-", "");
+                string TradeMonth = TradeDate.Substring(0, 6);
+                string start = date + " 00:00:00";
+                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
+                string startId = "0", endId = "9999999999";
+                List<string> uids = new List<string>();
+                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
+                if (startDt.Rows.Count > 0)
+                {
+                    startId = startDt.Rows[0][0].ToString();
+                }
+                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
+                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
+                // if (endDt.Rows.Count > 0)
+                // {
+                //     endId = endDt.Rows[0][0].ToString();
+                // }
+                
+                function.WriteLog("ap到main开始:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
+                Models.WebCMSEntities maindb = new Models.WebCMSEntities();
+                DateTime StartDate = DateTime.Parse(start);
+                DateTime EndDate = DateTime.Parse(end);
+                int StartTradeId = int.Parse(function.CheckInt(startId));
+                bool op = true;
+                while (op)
+                {
+                    List<TradeRecord> list = db.TradeRecord.Where(m => m.Id > StartTradeId && m.CreateDate >= StartDate && m.CreateDate < EndDate).OrderBy(m => m.Id).Take(500).ToList();
+                    if (list.Count > 0)
+                    {
+                        foreach (TradeRecord sub in list)
+                        {
+                            maindb.TradeRecord.Add(new Models.TradeRecord()
+                            {
+                                CreateDate = sub.CreateDate,
+                                UpdateDate = sub.UpdateDate,
+                                RecordNo = sub.RecordNo, //单号
+                                UserId = sub.UserId, //创客
+                                MerchantId = sub.MerchantId, //商户
+                                MerNo = sub.MerNo, //渠道商户编号
+                                MerHelpFlag = sub.MerHelpFlag, //是否属于扶持周期内商户
+                                HelpMonthCount = sub.HelpMonthCount, //扶持第几个月
+                                MerBuddyType = sub.MerBuddyType, //商户创客类型
+                                SnNo = sub.SnNo, //渠道SN号
+                                TradeDate = sub.TradeDate, //交易日期
+                                ClearDate = sub.ClearDate, //清算日期
+                                TradeSerialNo = sub.TradeSerialNo, //交易流水号
+                                TradeAmount = sub.TradeAmount, //交易金额
+                                BankCardType = sub.BankCardType, //银行卡类型
+                                QrPayFlag = sub.QrPayFlag, //云闪付标识
+                                CapFlag = sub.CapFlag, //借记卡封顶交易标志
+                                DirectFlag = sub.DirectFlag, //是否直营
+                                BrandId = sub.BrandId, //品牌
+                                Remark = sub.Remark, //备注
+                                TopUserId = sub.TopUserId, //顶级创客
+                                MerUserId = sub.MerUserId, //商户直属创客
+                            });
+                            StartTradeId = sub.Id;
+                        }
+                        maindb.SaveChanges();
+                    }
+                    else
+                    {
+                        op = false;
+                    }
+                }
+                maindb.Dispose();
+                function.WriteLog("ap到main结束:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
+
+                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
+                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
+                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
+                foreach (DataRow userDr in userDt.Rows)
+                {
+                    int UserId = int.Parse(userDr["Id"].ToString());
+                    string ParentNav = userDr["ParentNav"].ToString();
+                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
+                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
+                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
+                    foreach (DataRow selfDr in selfdt.Rows)
+                    {
+                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
+                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
+                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
+                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
+                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
+                        if (selfStat == null)
+                        {
+                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                            {
+                                UserId = UserId,
+                                TradeMonth = TradeMonth,
+                                TradeDate = TradeDate,
+                                BrandId = BrandId,
+                                QueryCount = QrPayFlag,
+                                SeoTitle = "self",
+                            }).Entity;
+                            db.SaveChanges();
+                        }
+                        if (BankCardType == 0)
+                        {
+                            selfStat.DirectDebitTradeAmt += TradeAmount;
+                        }
+                        else if (BankCardType != 0)
+                        {
+                            selfStat.DirectTradeAmt += TradeAmount;
+                        }
+                        db.SaveChanges();
+                    }
+                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
+                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
+                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
+                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
+                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
+                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
+                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
+                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
+                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
+                    if (!string.IsNullOrEmpty(ParentNav))
+                    {
+                        ParentNav += "," + UserId + ",";
+                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                        foreach (string NavUserIdString in ParentNavList)
+                        {
+                            if (!uids.Contains(NavUserIdString + start))
+                            {
+                                uids.Add(NavUserIdString + start);
+                                int NavUserId = int.Parse(NavUserIdString);
+                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
+                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
+                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
+                                foreach (DataRow teamDr in teamDt.Rows)
+                                {
+                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
+                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
+                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
+                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
+                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
+                                    if (teamStat == null)
+                                    {
+                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                                        {
+                                            UserId = NavUserId,
+                                            TradeMonth = TradeMonth,
+                                            TradeDate = TradeDate,
+                                            BrandId = BrandId,
+                                            QueryCount = QrPayFlag,
+                                            SeoTitle = "team",
+                                        }).Entity;
+                                        db.SaveChanges();
+                                    }
+                                    if (BankCardType == 0)
+                                    {
+                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
+                                    }
+                                    else if (BankCardType != 0)
+                                    {
+                                        teamStat.NonDirectTradeAmt += TradeAmount;
+                                    }
+                                    db.SaveChanges();
+                                }
+                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
+                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
+                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
+                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
+                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
                             }
                         }
                     }
@@ -1498,7 +1667,7 @@ namespace MySystem
                         {
                             AfterLevel = set.Id;
                         }
-                        if (AfterLevel > BeforeLevel)
+                        if (AfterLevel > BeforeLevel && AfterLevel > 1)
                         {
                             user.UserLevel = AfterLevel;
                             db.UserRank.Add(new UserRank()
@@ -1526,6 +1695,9 @@ namespace MySystem
                 function.WriteLog(ex.ToString(), "创客升级异常");
             }
             db.Dispose();
+
+            
+            ProfitHelper.Instance.StatProfit("202204");
         }
     }
 }

+ 1 - 1
AppStart/Helper/SycnActiveRewardService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Helper/SycnMerchantInfoService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Helper/SycnMysql/ConsumerOpenIdsHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/ConsumerOrdersHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/ConsumersHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/MachineApplyHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/MerchantParamSetHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/OrderProductHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/OrdersHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/PosMachinesHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/ProductsHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/PublicTableHelper.cs

@@ -1,4 +1,4 @@
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Data;
 using Library;

+ 1 - 1
AppStart/Helper/SycnMysql/StoreChangeHistoryHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/StoreStockChangeHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/TeamApplyHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/TeamOfferApplyHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/UserAddressHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/UserBackHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/UserCashRecordHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/UserLoginRecordHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/UserMachineDataHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/UserStoreChangeHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnMysql/UsersHelper.cs

@@ -1,5 +1,5 @@
 using Library;
-using MySystem.Models;
+using MySystem.PxcModels;
 using System;
 using System.Linq;
 

+ 1 - 1
AppStart/Helper/SycnSpServer/SycnSpService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 6 - 1
AppStart/Helper/SycnSpServer/SycnSpTradeService.cs

@@ -163,6 +163,7 @@ namespace MySystem
                                             Remark = trade.Remark, //备注
                                             TopUserId = TopUserId, //顶级创客
                                             MerUserId = pos.UserId, //商户直属创客
+                                            ParentNav = user.ParentNav,
                                         });
                                         decimal CheckMoney = 1000;
                                         int CheckDays = 20;
@@ -193,7 +194,11 @@ namespace MySystem
                                         }
                                         else if (pos.CreditTrade >= CheckMoney && pos.ActivationState == 0 && pos.BindingTime > DateTime.Now.AddDays(-CheckDays))
                                         {
-                                            pos.IsPurchase = 0;
+                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
+                                            if (deposit == 0)
+                                            {
+                                                pos.IsPurchase = 0;
+                                            }
                                             pos.ActivationState = 1;
                                             pos.ActivationTime = DateTime.Now;
                                             PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);

+ 1 - 1
AppStart/Helper/SycnTradeRecordService.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 486 - 0
AppStart/Helper/TestService.cs

@@ -0,0 +1,486 @@
+using System;
+using System.Collections.Generic;
+using Library;
+using LitJson;
+using System.Linq;
+using System.Data;
+using System.Threading;
+using MySystem.PxcModels;
+
+namespace MySystem
+{
+    public class TestService
+    {
+        public readonly static TestService Instance = new TestService();
+        private TestService()
+        { }
+
+        public void Start()
+        {
+            Thread th = new Thread(ResetTradeRecordUserId);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void dosomething()
+        {
+            string check = function.ReadInstance("/tmp/flag.txt");
+            if (!string.IsNullOrEmpty(check))
+            {
+                return;
+            }
+            function.WritePage("/tmp/", "flag.txt", DateTime.Now.ToString());
+            string TradeMonth = "202205";
+            string TradeDate = "20220511";
+            List<int> uids = new List<int>();
+            uids = uids.OrderByDescending(m => m).ToList();
+            foreach (int uid in uids)
+            {
+                RedisDbconn.Instance.Clear("TotalAmount:" + uid);
+                RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":" + TradeMonth);
+                RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + uid + ":" + TradeMonth);
+                RedisDbconn.Instance.Clear("TotalPosAmount:" + uid + ":" + TradeMonth);
+                RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":*:" + TradeMonth);
+                RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":" + TradeDate);
+                RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + uid + ":" + TradeDate);
+                RedisDbconn.Instance.Clear("TotalPosAmount:" + uid + ":" + TradeDate);
+                RedisDbconn.Instance.Clear("TotalAmount:" + uid + ":*:" + TradeDate);
+
+                RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid);
+                RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":" + TradeMonth);
+                RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + uid + ":" + TradeMonth);
+                RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + uid + ":" + TradeMonth);
+                RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":*:" + TradeMonth);
+                RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":" + TradeDate);
+                RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + uid + ":" + TradeDate);
+                RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + uid + ":" + TradeDate);
+                RedisDbconn.Instance.Clear("TeamTotalAmount:" + uid + ":*:" + TradeDate);
+                function.WriteLog(uid.ToString(), "清除redis");
+                Thread.Sleep(200);
+            }
+        }
+
+        public void ResetTradeRecordUserId()
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            List<int> posids = new List<int>();
+            posids.Add(13312);
+            posids.Add(14757);
+            posids.Add(14752);
+            posids.Add(8959);
+            posids.Add(9071);
+            posids.Add(7555);
+            posids.Add(13864);
+            posids.Add(12385);
+            posids.Add(12165);
+            posids.Add(11184);
+            posids.Add(8380);
+            posids.Add(8364);
+            posids.Add(15101);
+            posids.Add(12024);
+            posids.Add(8806);
+            posids.Add(7557);
+            posids.Add(10155);
+            posids.Add(7602);
+            posids.Add(12667);
+            posids.Add(8948);
+            posids.Add(15075);
+            posids.Add(12542);
+            posids.Add(12031);
+            posids.Add(8455);
+            posids.Add(22920);
+            posids.Add(7381);
+            posids.Add(10616);
+            posids.Add(22921);
+            posids.Add(26354);
+            posids.Add(22169);
+            posids.Add(25804);
+            posids.Add(23287);
+            posids.Add(7966);
+            posids.Add(25853);
+            posids.Add(26536);
+            posids.Add(16886);
+            posids.Add(14096);
+            posids.Add(16649);
+            posids.Add(7481);
+            posids.Add(9165);
+            posids.Add(25654);
+            posids.Add(19725);
+            posids.Add(26375);
+            posids.Add(9349);
+            posids.Add(11962);
+            posids.Add(7037);
+            posids.Add(10338);
+            posids.Add(7042);
+            posids.Add(13747);
+            posids.Add(9389);
+            posids.Add(53888);
+            posids.Add(23694);
+            posids.Add(21112);
+            posids.Add(7508);
+            posids.Add(25358);
+            posids.Add(12740);
+            posids.Add(12263);
+            posids.Add(7021);
+            posids.Add(15625);
+            posids.Add(7636);
+            posids.Add(16954);
+            posids.Add(37681);
+            posids.Add(21239);
+            posids.Add(17964);
+            posids.Add(6443);
+            posids.Add(13078);
+            posids.Add(10611);
+            posids.Add(37161);
+            posids.Add(6416);
+            posids.Add(45486);
+            posids.Add(44299);
+            posids.Add(39722);
+            posids.Add(9763);
+            posids.Add(42464);
+            posids.Add(42482);
+            posids.Add(24100);
+            posids.Add(21303);
+            posids.Add(18860);
+            posids.Add(41920);
+            posids.Add(37145);
+            posids.Add(13980);
+            posids.Add(17192);
+            posids.Add(45163);
+            posids.Add(17433);
+            posids.Add(46836);
+            posids.Add(11995);
+            posids.Add(17439);
+            posids.Add(19421);
+            posids.Add(15299);
+            posids.Add(39943);
+            posids.Add(12533);
+            posids.Add(37642);
+            posids.Add(12164);
+            posids.Add(6614);
+            posids.Add(17963);
+            posids.Add(16924);
+            posids.Add(37892);
+            posids.Add(26476);
+            posids.Add(7026);
+            posids.Add(6612);
+            posids.Add(26849);
+            posids.Add(48996);
+            posids.Add(51592);
+            posids.Add(50563);
+            posids.Add(17375);
+            posids.Add(37386);
+            posids.Add(69062);
+            posids.Add(38055);
+            posids.Add(55287);
+            posids.Add(44777);
+            posids.Add(52971);
+            posids.Add(70045);
+            posids.Add(71043);
+            posids.Add(39676);
+            posids.Add(10668);
+            posids.Add(42474);
+            posids.Add(71491);
+            posids.Add(12216);
+            posids.Add(12768);
+            posids.Add(39848);
+            posids.Add(46869);
+            posids.Add(42462);
+            posids.Add(46264);
+            posids.Add(42385);
+            posids.Add(49042);
+            posids.Add(39751);
+            posids.Add(49297);
+            posids.Add(57634);
+            posids.Add(53132);
+            posids.Add(39768);
+            posids.Add(71497);
+            posids.Add(13565);
+            posids.Add(17164);
+            posids.Add(37100);
+            posids.Add(16645);
+            posids.Add(12382);
+            posids.Add(18760);
+            posids.Add(53033);
+            posids.Add(41664);
+            posids.Add(58426);
+            posids.Add(46828);
+            posids.Add(58876);
+            posids.Add(25953);
+            posids.Add(71009);
+            posids.Add(59036);
+            posids.Add(17139);
+            posids.Add(12111);
+            posids.Add(37960);
+            posids.Add(12830);
+            posids.Add(23699);
+            posids.Add(19279);
+            posids.Add(49853);
+            posids.Add(6199);
+            posids.Add(67544);
+            posids.Add(15267);
+            posids.Add(37473);
+            posids.Add(64494);
+            posids.Add(17155);
+            posids.Add(70452);
+            posids.Add(40840);
+            posids.Add(15117);
+            posids.Add(79301);
+            posids.Add(55673);
+            posids.Add(18981);
+            posids.Add(59025);
+            posids.Add(53409);
+            posids.Add(20441);
+            posids.Add(49529);
+            posids.Add(20234);
+            posids.Add(43502);
+            posids.Add(64547);
+            posids.Add(70388);
+            posids.Add(42550);
+            posids.Add(46721);
+            posids.Add(49982);
+            posids.Add(16734);
+            posids.Add(16682);
+            posids.Add(14748);
+            posids.Add(21290);
+            posids.Add(38879);
+            posids.Add(23899);
+            posids.Add(64401);
+            posids.Add(51837);
+            posids.Add(54803);
+            posids.Add(58395);
+            posids.Add(13468);
+            posids.Add(70590);
+            posids.Add(58814);
+            posids.Add(9645);
+            posids.Add(55687);
+            posids.Add(6934);
+            posids.Add(40073);
+            posids.Add(44265);
+            posids.Add(51561);
+            posids.Add(18445);
+            posids.Add(49884);
+            posids.Add(71583);
+            posids.Add(51613);
+            posids.Add(40371);
+            posids.Add(49988);
+            posids.Add(68378);
+            posids.Add(18904);
+            posids.Add(50958);
+            posids.Add(49675);
+            posids.Add(48582);
+            posids.Add(64082);
+            posids.Add(25078);
+            posids.Add(67061);
+            posids.Add(65140);
+            posids.Add(70658);
+            posids.Add(49662);
+            posids.Add(49561);
+            posids.Add(24305);
+            posids.Add(37468);
+            posids.Add(21622);
+            posids.Add(71575);
+            posids.Add(66173);
+            posids.Add(38747);
+            posids.Add(50415);
+            posids.Add(56611);
+            posids.Add(56484);
+            posids.Add(67504);
+            posids.Add(50408);
+            posids.Add(70744);
+            posids.Add(47424);
+            posids.Add(49666);
+            posids.Add(7396);
+            posids.Add(7870);
+            posids.Add(17681);
+            posids.Add(52031);
+            posids.Add(25632);
+            posids.Add(23011);
+            posids.Add(39087);
+            posids.Add(16924);
+            posids.Add(42265);
+            posids.Add(16550);
+            posids.Add(40137);
+            posids.Add(53416);
+            posids.Add(21258);
+            posids.Add(60884);
+            posids.Add(49855);
+            posids.Add(69014);
+            posids.Add(43116);
+            posids.Add(53031);
+            posids.Add(22150);
+            // OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+            foreach (int posid in posids)
+            {
+                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posid);
+                if (pos != null)
+                {
+                    // OtherMySqlConn.op("update TradeRecord set UserId=" + pos.UserId + " where SnNo='" + pos.PosSn + "'");
+                    // function.WriteLog(DateTime.Now.ToString() + ":" + pos.UserId + "-" + pos.PosSn, "重置非商户型创客交易记录Id");
+                    RedisDbconn.Instance.AddList("TmpResetUserTradeQueue", pos.UserId + "#cut#2022-04-01 00:00:00#cut#2022-05-11 00:00:00#cut#" + pos.BrandId);
+                }
+            }
+            // OtherMySqlConn.connstr = "";
+            db.Dispose();
+        }
+
+        public void StartReset()
+        {
+            Thread th = new Thread(doSomething);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void doSomething()
+        { 
+            while (true)
+            {
+                string content = RedisDbconn.Instance.RPop<string>("TmpResetUserTradeQueue");
+                if (!string.IsNullOrEmpty(content))
+                {
+                    try
+                    {
+                        OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+                        WebCMSEntities db = new WebCMSEntities();
+                        string[] datalist = content.Split(new string[] { "#cut#" }, StringSplitOptions.None);
+                        int UserId = int.Parse(datalist[0]);
+                        DateTime sdate = DateTime.Parse(datalist[1]);
+                        DateTime edate = DateTime.Parse(datalist[2]);
+                        int BrandId = int.Parse(datalist[3]);
+                        function.WriteLog(DateTime.Now.ToString(), "重置创客交易额");
+                        List<string> uids = new List<string>();
+                        DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id=" + UserId);
+                        if (userDt.Rows.Count > 0)
+                        {
+                            while (sdate <= edate)
+                            {
+                                string date = sdate.ToString("yyyy-MM-dd");
+                                string TradeDate = date.Replace("-", "");
+                                string TradeMonth = TradeDate.Substring(0, 6);
+                                string start = date + " 00:00:00";
+                                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
+                                string startId = "0", endId = "9999999999";
+                                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
+                                if (startDt.Rows.Count > 0)
+                                {
+                                    startId = startDt.Rows[0][0].ToString();
+                                }
+                                DataRow userDr = userDt.Rows[0];
+                                string ParentNav = userDr["ParentNav"].ToString();
+                                function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
+                                OtherMySqlConn.op("delete from UserTradeDaySummary where UserId=" + UserId + " and BrandId=" + BrandId + " and TradeMonth='" + TradeMonth + "' and TradeDate='" + TradeDate + "' and SeoTitle='self'");
+                                DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " and BrandId=" + BrandId + " group by BrandId,BankCardType,QrPayFlag");
+                                function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
+                                foreach (DataRow selfDr in selfdt.Rows)
+                                {
+                                    int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
+                                    int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
+                                    decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
+                                    UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
+                                    if (selfStat == null)
+                                    {
+                                        selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                                        {
+                                            UserId = UserId,
+                                            TradeMonth = TradeMonth,
+                                            TradeDate = TradeDate,
+                                            BrandId = BrandId,
+                                            QueryCount = QrPayFlag,
+                                            SeoTitle = "self",
+                                        }).Entity;
+                                        db.SaveChanges();
+                                    }
+                                    if (BankCardType == 0)
+                                    {
+                                        selfStat.DirectDebitTradeAmt += TradeAmount;
+                                    }
+                                    else if (BankCardType != 0)
+                                    {
+                                        selfStat.DirectTradeAmt += TradeAmount;
+                                    }
+                                    db.SaveChanges();
+                                }
+                                // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
+                                // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
+                                // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
+                                // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
+                                // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
+                                // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
+                                if (!string.IsNullOrEmpty(ParentNav))
+                                {
+                                    ParentNav += "," + UserId + ",";
+                                    string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                                    foreach (string NavUserIdString in ParentNavList)
+                                    {
+                                        if (!uids.Contains(NavUserIdString + start))
+                                        {
+                                            uids.Add(NavUserIdString + start);
+                                            int NavUserId = int.Parse(NavUserIdString);
+                                            function.WriteLog(NavUserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
+                                            OtherMySqlConn.op("delete from UserTradeDaySummary where UserId=" + NavUserId + " and BrandId=" + BrandId + " and TradeMonth='" + TradeMonth + "' and TradeDate='" + TradeDate + "' and SeoTitle='team'");
+                                            DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") and BrandId=" + BrandId + " group by BrandId,BankCardType,QrPayFlag");
+                                            function.WriteLog(NavUserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
+                                            foreach (DataRow teamDr in teamDt.Rows)
+                                            {
+                                                int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
+                                                int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
+                                                decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
+                                                UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
+                                                if (teamStat == null)
+                                                {
+                                                    teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                                                    {
+                                                        UserId = NavUserId,
+                                                        TradeMonth = TradeMonth,
+                                                        TradeDate = TradeDate,
+                                                        BrandId = BrandId,
+                                                        QueryCount = QrPayFlag,
+                                                        SeoTitle = "team",
+                                                    }).Entity;
+                                                    db.SaveChanges();
+                                                }
+                                                if (BankCardType == 0)
+                                                {
+                                                    teamStat.NonDirectDebitTradeAmt += TradeAmount;
+                                                }
+                                                else if (BankCardType != 0)
+                                                {
+                                                    teamStat.NonDirectTradeAmt += TradeAmount;
+                                                }
+                                                db.SaveChanges();
+                                            }
+                                            // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
+                                            // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
+                                            // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
+                                            // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
+                                            // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
+                                            // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
+                                            // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
+                                            // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
+                                            // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
+                                        }
+                                    }
+                                }
+                                sdate = sdate.AddDays(1);
+                                Thread.Sleep(200);
+                            }
+                        }
+                        db.Dispose();
+                        function.WriteLog(DateTime.Now.ToString() + "\r\n\r\n", "重置创客交易额");
+                    }
+                    catch (Exception ex)
+                    {
+                        function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "重置创客交易额异常");
+                    }
+                }
+                else
+                {
+                    Thread.Sleep(5000);
+                }
+            }
+        }
+    }
+}

+ 1 - 1
AppStart/PublicFunction.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Data;
 using System.Text.RegularExpressions;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 
 namespace MySystem

+ 1 - 1
AppStart/RelationClass.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 
 namespace MySystem
 {

+ 1 - 1
AppStart/Timer/AlipayPayBack2Timer.cs

@@ -5,7 +5,7 @@ using System.Threading.Tasks;
 using System.Linq;
 using Microsoft.Extensions.Hosting;
 using MySystem;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Timer/PosTradeStatTimer.cs

@@ -5,7 +5,7 @@ using System.Threading.Tasks;
 using System.Linq;
 using Microsoft.Extensions.Hosting;
 using MySystem;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Timer/SycnSpTimer.cs

@@ -5,7 +5,7 @@ using System.Threading.Tasks;
 using System.Linq;
 using Microsoft.Extensions.Hosting;
 using MySystem;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/Timer/TimerStatTimer.cs

@@ -5,7 +5,7 @@ using System.Threading.Tasks;
 using System.Linq;
 using Microsoft.Extensions.Hosting;
 using MySystem;
-using MySystem.Models;
+using MySystem.PxcModels;
 using Library;
 using LitJson;
 

+ 1 - 1
AppStart/WeChatFunction.cs

@@ -8,7 +8,7 @@ using System.Security.Cryptography;
 using System.Text;
 using System.IO;
 using System.Net;
-using MySystem.Models;
+using MySystem.PxcModels;
 
 namespace MySystem
 {

+ 676 - 697
Controllers/HomeController.cs

@@ -1,698 +1,677 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Data;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging;
-using MySystem.PxcModels;
-using System.Threading;
-using Library;
-using LitJson;
-
-namespace MySystem.Controllers
-{
-    public class HomeController : Controller
-    {
-        private readonly ILogger<HomeController> _logger;
-
-        public HomeController(ILogger<HomeController> logger)
-        {
-            _logger = logger;
-        }
-
-        public IActionResult Index()
-        {
-            return View();
-        }
-
-        public IActionResult Error()
-        {
-            string isapi = Request.Headers["Api"].ToString();
-            if (isapi != "1")
-            {
-                if (Response.StatusCode == 500)
-                {
-                    return Redirect("/public/errpage/pc/500.html");
-                }
-                else if (Response.StatusCode == 502)
-                {
-                    return Redirect("/public/errpage/pc/502.html");
-                }
-                else if (Response.StatusCode == 404)
-                {
-                    return Redirect("/public/errpage/pc/404.html");
-                }
-            }
-            return View();
-        }
-
-
-        private static object o = new object();
-        public string addmer(string mid, int k = 0)
-        {
-            MerchantConfirmService.Instance.Start(mid, k);
-            return "ok";
-        }
-
-        public string cleartrade()
-        {
-            StatService.Instance.clear();
-            return "ok";
-        }
-
-        public string stattrade(string d)
-        {
-            StatService.Instance.dosomething2(d);
-            return "ok";
-        }
-
-        public string setqrcode(int uid = 0)
-        {            
-            return "ok";
-        }
-
-        public string userqrcode(int uid)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            Users user = db.Users.FirstOrDefault(m => m.Id == uid);
-            if (user != null)
-            {
-                MakeReferenceQrCodeService.Instance.Start(user.Id.ToString());
-                return "ok";
-            }
-            db.Dispose();
-            return "fail";
-        }
-
-        public string getqrcode(int uid, int pid)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            Users user = db.Users.FirstOrDefault(m => m.Id == uid);
-            if (user != null)
-            {
-                return MakeReferenceQrCodeService.Instance.MergeQrCode(user, pid);
-            }
-            db.Dispose();
-            return "fail";
-        }
-
-        private void th1()
-        {
-            Thread th = new Thread(th1do);
-            th.IsBackground = true;
-            th.Start();
-        }
-        private void th1do()
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            Users user = db.Users.FirstOrDefault(m => m.Id == 2);
-            if (user != null)
-            {
-                user.SeoTitle = "111111";
-                Thread.Sleep(5000);
-                user.SeoDescription = "222222";
-                db.SaveChanges();
-            }
-            db.Dispose();
-        }
-        private void th2()
-        { 
-            Thread th = new Thread(th2do);
-            th.IsBackground = true;
-            th.Start();
-        }
-        private void th2do()
-        { 
-            Thread.Sleep(2000);
-            WebCMSEntities db = new WebCMSEntities();
-            Users user = db.Users.FirstOrDefault(m => m.Id == 2);
-            if (user != null)
-            {
-                user.SeoKeyword = "看看有没有值写入";
-                db.SaveChanges();
-            }
-            db.Dispose();
-        }
-
-        // 补激活奖励
-        public string setmeruser(string date)
-        {
-            StatService.Instance.dosomething1(date);
-            return "ok";
-        }
-        public string chkactprize(int Id = 0)
-        {
-            if (Id > 0)
-            {
-                StatService.Instance.dosomething3(Id);
-            }
-            return "ok";
-        }
-
-        public string mutilactprize()
-        {
-            List<int> ids = new List<int>();
-            WebCMSEntities db = new WebCMSEntities();
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            foreach (int id in ids)
-            {
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == id);
-                if (pos != null)
-                {
-                    SpModels.ActivateRecord act = spdb.ActivateRecord.FirstOrDefault(m => m.SnNo == pos.PosSn && m.SeoTitle != "0" && !string.IsNullOrEmpty(m.SeoTitle));
-                    if (act != null)
-                    {
-                        pos.SeoKeyword = act.SeoTitle;
-                        db.SaveChanges();
-                        StatService.Instance.dosomething3(pos.Id);
-                    }
-                }
-            }
-            db.Dispose();
-            spdb.Dispose();
-            return "ok";
-        }
-
-        public string checkOrder(int id)
-        {
-            AlipayPayBack2Service.Instance.checkOrder(id);
-            return "ok";
-        }
-
-        public string scanBind()
-        {
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-            var Binds = spdb.BindRecord.Select(m => new { m.Id, m.CreateTime, m.Status, m.MerNo, m.MerSnNo }).OrderBy(m => m.Id).ToList();
-            foreach (var Bind in Binds)
-            {
-                var tran = db.Database.BeginTransaction();
-                try
-                {
-                    PxcModels.MachineForSnNo posFor = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == Bind.MerSnNo) ?? new PxcModels.MachineForSnNo();
-                    PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                    if (pos != null)
-                    {
-                        if (pos.BindingState == 0)
-                        {
-                            pos.BindingState = 1;
-                            pos.BindingTime = Bind.CreateTime;
-                            PxcModels.MachineForMerNo merFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == Bind.MerNo);
-                            if (merFor == null)
-                            {
-                                merFor = db.MachineForMerNo.Add(new PxcModels.MachineForMerNo()
-                                {
-                                    MerNo = Bind.MerNo,
-                                    SnId = pos.Id,
-                                }).Entity;
-                            }
-                            db.SaveChanges();
-                            tran.Commit();
-                            function.WriteLog(pos.PosSn, "补充绑定数据");
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    tran.Rollback();
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString() + "\n" + Bind.Id, "同步SP绑定数据到MAIN异常");
-                }
-                tran.Dispose();
-            }
-            spdb.SaveChanges();
-            spdb.Dispose();
-            db.SaveChanges();
-            db.Dispose();
-            return "ok";
-        }
-
-        public string scanMerchant()
-        { 
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-            var Mers = spdb.Merchants.OrderBy(m => m.Id).ToList();
-            foreach (var Mer in Mers)
-            {
-                var tran = db.Database.BeginTransaction();
-                try
-                {
-                    PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == Mer.MerNo) ?? new PxcModels.MachineForMerNo();
-                    PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId) ?? new PxcModels.PosMachinesTwo();
-                    if (pos.BindingState == 1)
-                    {
-                        PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                        int TopUserId = 0;
-                        if (!string.IsNullOrEmpty(user.ParentNav))
-                        {
-                            TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                        }
-                        int BrandId = int.Parse(Mer.ProductType);
-                        if (Mer.MerNo.StartsWith("M900"))
-                        {
-                            BrandId = 3;
-                        }
-                        bool check = db.PosMerchantInfo.Any(m => m.KqMerNo == Mer.MerNo);
-                        if (!check)
-                        {
-                            PxcModels.PosMerchantInfo add = db.PosMerchantInfo.Add(new PxcModels.PosMerchantInfo()
-                            {
-                                CreateDate = Mer.CreateTime,
-                                UpdateDate = Mer.UpdateTime,
-                                TopUserId = TopUserId,
-                                MerUserType = user.MerchantType,
-                                BrandId = BrandId,
-                                SnStoreId = pos.StoreId,
-                                SnType = pos.PosSnType,
-                                UserId = pos.UserId,
-                                MgrName = Mer.AgentName,
-                                MerStatus = 1,
-                                KqSnNo = Mer.SnNo,
-                                KqMerNo = Mer.MerNo,
-                                MerIdcardNo = Mer.MerIdcardNo,
-                                MerRealName = Mer.MerRealName,
-                                MerchantMobile = Mer.MerMobile,
-                                MerchantName = Mer.MerName,
-                                MerchantNo = Mer.MerNo.Length > 16 ? Mer.MerNo.Substring(0, 16) : Mer.MerNo,
-                            }).Entity;
-                            db.SaveChanges();
-                            pos.BindMerchantId = add.Id;
-                            db.SaveChanges();
-                            tran.Commit();
-                            function.WriteLog(Mer.MerNo, "补充商户数据");
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    tran.Rollback();
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString() + "\n" + Mer.Id, "同步SP商户数据到MAIN异常");
-                }
-                tran.Dispose();
-            }
-            spdb.Dispose();
-            db.Dispose();
-            return "ok";
-        }
-
-        public string scanTrade()
-        {
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-            IQueryable<SpModels.TradeRecord> trades = spdb.TradeRecord.OrderBy(m => m.Id);
-            foreach (SpModels.TradeRecord trade in trades.ToList())
-            {
-                bool op = true;
-                if (trade.SerEntryMode == "N")
-                {
-                    if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                    {
-                        op = false;
-                        PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                        if (pos != null)
-                        {
-                            if (trade.SerEntryMode == "N" && trade.ProductType == "1")
-                            {
-                                pos.SeoKeyword = trade.TradeAmount.ToString("f2");
-                                db.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                if (op)
-                {
-                    PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                    PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                    if (pos != null)
-                    {
-                        if (pos.BindMerchantId > 0)
-                        {
-                            PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                            int TopUserId = 0;
-                            if (!string.IsNullOrEmpty(user.ParentNav))
-                            {
-                                TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                            }
-                            bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                            if (!check)
-                            {
-                                decimal TradeAmount = trade.TradeAmount;
-                                int BankCardType = -1;
-                                int QrPayFlag = 0;
-                                if (pos.BrandId == 1 || pos.BrandId == 3)
-                                {
-                                    TradeAmount = TradeAmount / 100;
-                                    BankCardType = int.Parse(trade.BankCardType);
-                                    if(trade.TradeType == "02") QrPayFlag = 1;
-                                }
-                                else if (pos.BrandId == 2)
-                                {
-                                    if (trade.TradeType == "CREDIT_BY_CARD")
-                                    {
-                                        BankCardType = 1;
-                                    }
-                                    else if (trade.TradeType == "DEBIT_BY_CARD")
-                                    {
-                                        BankCardType = 0;
-                                    }
-                                    if(trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                }
-                                int BrandId = int.Parse(trade.ProductType);
-                                if (trade.MerNo.StartsWith("M900"))
-                                {
-                                    BrandId = 3;
-                                }
-                                db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                {
-                                    CreateDate = trade.CreateDate,
-                                    UpdateDate = trade.UpdateDate,
-                                    RecordNo = trade.TradeSerialNo, //单号
-                                    UserId = pos.UserId, //创客
-                                    MerchantId = pos.BindMerchantId, //商户
-                                    MerNo = trade.MerNo, //渠道商户编号
-                                    MerHelpFlag = 0, //是否属于扶持周期内商户
-                                    HelpMonthCount = 0, //扶持第几个月
-                                    MerBuddyType = user.MerchantType, //商户创客类型
-                                    SnNo = trade.TradeSnNo, //渠道SN号
-                                    // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                    TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                    TradeAmount = TradeAmount, //交易金额
-                                    BankCardType = BankCardType, //银行卡类型
-                                    QrPayFlag = QrPayFlag, //云闪付标识
-                                    BrandId = BrandId, //品牌
-                                    Remark = trade.Remark, //备注
-                                    TopUserId = TopUserId, //顶级创客
-                                    MerUserId = pos.UserId, //商户直属创客
-                                });
-                                if (BankCardType == 1)
-                                {
-                                    pos.CreditTrade += TradeAmount;
-                                }
-                                else if (BankCardType == 0)
-                                {
-                                    pos.DebitCardTrade += TradeAmount;
-                                }
-                                if (pos.CreditTrade < 1000)
-                                {
-                                    pos.IsPurchase = 99;
-                                }
-                                else if (pos.CreditTrade >= 1000 && pos.ActivationState == 0 && pos.BindingTime > DateTime.Now.AddDays(-20))
-                                {
-                                    pos.IsPurchase = 0;
-                                    pos.ActivationState = 1;
-                                    pos.ActivationTime = DateTime.Now;
-                                    PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                    if (merchant != null)
-                                    {
-                                        merchant.ActiveStatus = 1;
-                                        merchant.MerStandardDate = DateTime.Now;
-                                        db.SaveChanges();
-                                    }
-                                }
-                                db.SaveChanges();
-                                function.WriteLog(trade.Id.ToString(), "补充交易数据");
-                            }
-                        }
-                    }
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-            return "ok";
-        }
-
-        // public string add100()
-        // {
-        //     WebCMSEntities db = new WebCMSEntities();
-        //     List<int> uids = new List<int>();
-        //     uids.Add(1053);
-        //     foreach (int uid in uids)
-        //     {
-        //         int ParentUserId = uid;
-        //         int machineCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.PosSnType == 0); //判断是否拥有3台购买机
-        //         int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-        //         if (machineCount + ActiveCount >= 3)
-        //         {
-        //             UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == ParentUserId);
-        //             if (account == null)
-        //             {
-        //                 account = db.UserAccount.Add(new UserAccount()
-        //                 {
-        //                     Id = ParentUserId,
-        //                     UserId = ParentUserId,
-        //                 }).Entity;
-        //                 db.SaveChanges();
-        //             }
-        //             decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-        //             decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-        //             decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-        //             account.BalanceAmount += 100;
-        //             account.TotalAmount += 100;
-        //             decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-        //             decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-        //             decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-        //             UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-        //             {
-        //                 CreateDate = DateTime.Now,
-        //                 UpdateDate = DateTime.Now,
-        //                 UserId = ParentUserId, //创客
-        //                 ChangeType = 112, //变动类型
-        //                 ChangeAmount = 100, //变更金额
-        //                 BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-        //                 AfterTotalAmount = AfterTotalAmount, //变更后总金额
-        //                 BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-        //                 AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-        //                 BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-        //                 AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-        //             }).Entity;
-        //             db.SaveChanges();
-        //             RedisDbconn.Instance.Set("UserAccount:" + ParentUserId, account);
-
-        //             //推荐下单上级获得30天的机具循环天数
-        //             var posList = db.PosMachinesTwo.Select(m => new { m.Id, m.UserId, m.BindingState, m.RecycEndDate }).Where(m => m.UserId == ParentUserId && m.BindingState == 0 && m.RecycEndDate != null).ToList();
-        //             foreach (var subPos in posList)
-        //             {
-        //                 PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == subPos.Id);
-        //                 if (pos != null)
-        //                 {
-        //                     pos.RecycEndDate = pos.RecycEndDate.Value.AddDays(30);
-        //                 }
-        //             }
-        //             db.SaveChanges();
-        //         }
-        //     }
-        //     db.Dispose();
-        //     return "finish";
-        // }
-
-        //交易不到1000的机具,顶级姓名-代理姓名-客户姓名-客户电话-开机日期-SN // TODO:做到BS后台导出,按绑定时间查
-        public IActionResult PosTable()
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            List<PosMachinesTwo> poses = db.PosMachinesTwo.Where(m => m.CreditTrade < 1000 && m.BindingState == 1).ToList();
-            List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
-            foreach (PosMachinesTwo pos in poses)
-            {
-                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PosMerchantInfo();
-                Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new Users();
-                Users puser = db.Users.FirstOrDefault(m => m.Id == user.ParentUserId) ?? new Users();
-                Users ppuser = db.Users.FirstOrDefault(m => m.Id == puser.ParentUserId) ?? new Users();
-                Dictionary<string, string> item = new Dictionary<string, string>();
-                string TopRealName = "";
-                string TopMakerCode = "";
-                string TopMobile = "";
-                string ParentNav = user.ParentNav;
-                if (!string.IsNullOrEmpty(ParentNav))
-                {
-                    string[] navlist = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                    if (navlist.Length > 1)
-                    {
-                        int TopId = int.Parse(function.CheckInt(navlist[1]));
-                        Users tuser = db.Users.FirstOrDefault(m => m.Id == TopId) ?? new Users();
-                        TopRealName = tuser.RealName;
-                        TopMakerCode = tuser.MakerCode;
-                        TopMobile = tuser.Mobile;
-                    }
-                }
-                item.Add("TopRealName", TopRealName); //顶级姓名
-                item.Add("TopMakerCode", TopMakerCode); //顶级编号
-                item.Add("UpUpRealName", ppuser.RealName); //上上级姓名
-                item.Add("UpRealName", puser.RealName); //上级姓名
-                item.Add("RealName", user.RealName); //代理姓名
-                item.Add("MakerCode", user.MakerCode); //代理编号
-                item.Add("Mobile", user.Mobile); //代理手机号
-                item.Add("MerchantName", merchant.MerchantName); //客户姓名
-                item.Add("MerchantMobile", merchant.MerchantMobile); //客户电话
-                item.Add("OpenTime", pos.BindingTime == null ? "" : pos.BindingTime.Value.ToString("yyyy-MM-dd HH:mm:ss")); //开机日期
-                item.Add("Sn", pos.PosSn); //SN
-                list.Add(item);
-            }
-            db.Dispose();
-            ViewBag.list = list;
-            return View();
-        }
-
-        public string resetall(int k = 0, int b = 1)
-        {
-            DataTable dt = dbconn.dtable("select Id from Users where AuthFlag=1");
-            foreach (DataRow dr in dt.Rows)
-            {
-                if (k == 1)
-                {
-                    reset(int.Parse(dr["Id"].ToString()));
-                }
-                else if (k == 2)
-                {
-                    resetpos(int.Parse(dr["Id"].ToString()), b);
-                }
-            }
-            return "ok";
-        }
-        public string reset(int uid)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            List<Users> users = db.Users.Where(m => m.ParentUserId == uid).OrderByDescending(m => m.AuthDate).ToList();
-            RedisDbconn.Instance.Clear("MyMakerList:" + uid);
-            RedisDbconn.Instance.Clear("MyMakerForNotAuth:" + uid);
-            RedisDbconn.Instance.Clear("TotalUser:" + uid + "*");
-            RedisDbconn.Instance.Clear("TotalUser:Auth:" + uid);
-            foreach (Users user in users)
-            {
-                RedisDbconn.Instance.AddInt("TotalUser:" + uid);
-                RedisDbconn.Instance.AddInt("TotalUser:" + uid + ":" + user.CreateDate.Value.ToString("yyyyMM"));
-                RedisDbconn.Instance.AddInt("TotalUser:" + uid + ":" + user.CreateDate.Value.ToString("yyyyMMdd"));
-                if (user.AuthFlag == 1)
-                {
-                    RedisDbconn.Instance.AddList("MyMakerList:" + uid, new MyMakerItem()
-                    {
-                        UserId = user.Id,
-                        RealName = user.RealName,
-                        UserLevel = user.UserLevel,
-                    });
-                    RedisDbconn.Instance.AddInt("TotalUser:Auth:" + uid);
-                }
-                else
-                { 
-                    RedisDbconn.Instance.AddList("MyMakerForNotAuth:" + uid, new MyMakerItem()
-                    {
-                        UserId = user.Id,
-                        RealName = user.RealName,
-                        UserLevel = user.UserLevel,
-                    });
-                    RedisDbconn.Instance.AddInt("TotalUser:NoAuth:" + uid);
-                }
-                RedisDbconn.Instance.Set("Users:" + user.Id, user);
-            }
-            db.Dispose();
-            return "finish";
-        }
-
-        public string resetpos(int uid, int kind)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            string IdBrand = uid + "_" + kind;
-            UserMachineData machineData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-            if (machineData == null)
-            {
-                machineData = db.UserMachineData.Add(new UserMachineData()
-                {
-                    IdBrand = IdBrand
-                }).Entity;
-                db.SaveChanges();
-            }
-            machineData.BindCount = db.PosMachinesTwo.Count(m => (m.UserId == uid && m.BuyUserId == uid) && m.BrandId == kind && m.BindingState == 1);
-            machineData.UnBindCount = db.PosMachinesTwo.Count(m => (m.UserId == uid && m.BuyUserId == uid) && m.BrandId == kind && m.BindingState == 0);
-            machineData.TotalMachineCount = machineData.BindCount + machineData.UnBindCount;
-            db.SaveChanges();
-            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, machineData);
-            RedisDbconn.Instance.SetExpire("UserMachineData:" + IdBrand, function.get_Random(1800, 5400));
-            db.Dispose();
-            return "finish";
-        }
-
-        // 更新分仓库存
-        public string resetstorestock()
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DataTable dt = dbconn.dtable("select s.Id,LaveNum,count(p.Id) as CurLaveNum from StoreHouse s left join PosMachinesTwo p on s.Id=p.StoreId and s.BrandId=p.BrandId and p.UserId=0 group by s.Id HAVING LaveNum!=count(p.Id)");
-            foreach (DataRow dr in dt.Rows)
-            {
-                int Id = int.Parse(function.CheckInt(dr["Id"].ToString()));
-                int CurLaveNum = int.Parse(function.CheckInt(dr["CurLaveNum"].ToString()));
-                StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == Id);
-                if (store != null)
-                {
-                    store.LaveNum = CurLaveNum;
-                    db.SaveChanges();
-                    RedisDbconn.Instance.Set("StoreHouse:" + Id, store);
-                }
-            }
-            db.Dispose();
-            return "ok";
-        }
-        public string resetstorestock2(int id)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DataTable dt = dbconn.dtable("select Id,LaveNum,(select count(Id) from PosMachinesTwo where StoreId=s.Id and UserId=0) as CurLaveNum from StoreHouse s where Id=" + id);
-            foreach (DataRow dr in dt.Rows)
-            {
-                int Id = int.Parse(function.CheckInt(dr["Id"].ToString()));
-                int CurLaveNum = int.Parse(function.CheckInt(dr["CurLaveNum"].ToString()));
-                StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == Id);
-                if (store != null)
-                {
-                    store.LaveNum = CurLaveNum;
-                    db.SaveChanges();
-                    RedisDbconn.Instance.Set("StoreHouse:" + Id, store);
-                }
-            }
-            db.Dispose();
-            return "ok";
-        }
-
-        public string chkpwd(string pwd)
-        {
-            return function.MD532(pwd);
-        }
-
-        //重置本月团队交易额
-        public string resetMonthTrade()
-        {
-            
-            return "";
-        }
-
-        public string traderecord(int kind, int id = 0)
-        {
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            if (kind == 1)
-            {
-                OtherMySqlConn.op("delete from TradeRecordTest;insert into TradeRecordTest (Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo) select Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo from TradeRecord order by CreateDate;");
-            }
-            else if (kind == 2)
-            {
-                OtherMySqlConn.op("delete from TradeRecord where Id<" + id + ";insert into TradeRecord (Id,Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo) select Id,Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo from TradeRecordTest order by Id;");
-            }
-            OtherMySqlConn.connstr = "";
-            return "ok";
-        }
-
-        public string test()
-        {
-            string result = "ok";
-            // result = CashBase.Instance.QuerySignStatus("523698138812123669");
-            result = CashBase.Instance.CreateInfo("李春雷", "513001198312090419", "13880789833", function.imageToBase64String(function.getPath("/static/1.jpg")), function.imageToBase64String(function.getPath("/static/2.jpg")));
-            //{"code":"000000","msg":"成功"}
-            return result;
-        }
-
-        public string test2()
-        {
-            string result = "ok";
-            result = CashBase.Instance.ConfirmSign("513001198312090419");
-            return result;
-        }
-    }
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Data;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using MySystem.PxcModels;
+using System.Threading;
+using Library;
+using LitJson;
+
+namespace MySystem.Controllers
+{
+    public class HomeController : Controller
+    {
+        private readonly ILogger<HomeController> _logger;
+
+        public HomeController(ILogger<HomeController> logger)
+        {
+            _logger = logger;
+        }
+
+        public IActionResult Index()
+        {
+            return View();
+        }
+
+        public IActionResult Error()
+        {
+            string isapi = Request.Headers["Api"].ToString();
+            if (isapi != "1")
+            {
+                if (Response.StatusCode == 500)
+                {
+                    return Redirect("/public/errpage/pc/500.html");
+                }
+                else if (Response.StatusCode == 502)
+                {
+                    return Redirect("/public/errpage/pc/502.html");
+                }
+                else if (Response.StatusCode == 404)
+                {
+                    return Redirect("/public/errpage/pc/404.html");
+                }
+            }
+            return View();
+        }
+
+
+        private static object o = new object();
+        public string addmer(string mid, int k = 0)
+        {
+            MerchantConfirmService.Instance.Start(mid, k);
+            return "ok";
+        }
+
+        public string setqrcode(int uid = 0)
+        {            
+            return "ok";
+        }
+
+        public string userqrcode(int uid)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            Users user = db.Users.FirstOrDefault(m => m.Id == uid);
+            if (user != null)
+            {
+                MakeReferenceQrCodeService.Instance.Start(user.Id.ToString());
+                return "ok";
+            }
+            db.Dispose();
+            return "fail";
+        }
+
+        public string getqrcode(int uid, int pid)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            Users user = db.Users.FirstOrDefault(m => m.Id == uid);
+            if (user != null)
+            {
+                return MakeReferenceQrCodeService.Instance.MergeQrCode(user, pid);
+            }
+            db.Dispose();
+            return "fail";
+        }
+
+        private void th1()
+        {
+            Thread th = new Thread(th1do);
+            th.IsBackground = true;
+            th.Start();
+        }
+        private void th1do()
+        { 
+            WebCMSEntities db = new WebCMSEntities();
+            Users user = db.Users.FirstOrDefault(m => m.Id == 2);
+            if (user != null)
+            {
+                user.SeoTitle = "111111";
+                Thread.Sleep(5000);
+                user.SeoDescription = "222222";
+                db.SaveChanges();
+            }
+            db.Dispose();
+        }
+        private void th2()
+        { 
+            Thread th = new Thread(th2do);
+            th.IsBackground = true;
+            th.Start();
+        }
+        private void th2do()
+        { 
+            Thread.Sleep(2000);
+            WebCMSEntities db = new WebCMSEntities();
+            Users user = db.Users.FirstOrDefault(m => m.Id == 2);
+            if (user != null)
+            {
+                user.SeoKeyword = "看看有没有值写入";
+                db.SaveChanges();
+            }
+            db.Dispose();
+        }
+
+        // 补激活奖励
+        public string setmeruser(string date)
+        {
+            StatService.Instance.dosomething1(date);
+            return "ok";
+        }
+        public string chkactprize(int Id = 0)
+        {
+            if (Id > 0)
+            {
+                StatService.Instance.dosomething3(Id);
+            }
+            return "ok";
+        }
+
+        public string mutilactprize()
+        {
+            List<int> ids = new List<int>();
+            WebCMSEntities db = new WebCMSEntities();
+            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
+            foreach (int id in ids)
+            {
+                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == id);
+                if (pos != null)
+                {
+                    SpModels.ActivateRecord act = spdb.ActivateRecord.FirstOrDefault(m => m.SnNo == pos.PosSn && m.SeoTitle != "0" && !string.IsNullOrEmpty(m.SeoTitle));
+                    if (act != null)
+                    {
+                        pos.SeoKeyword = act.SeoTitle;
+                        db.SaveChanges();
+                        StatService.Instance.dosomething3(pos.Id);
+                    }
+                }
+            }
+            db.Dispose();
+            spdb.Dispose();
+            return "ok";
+        }
+
+        public string checkOrder(int id)
+        {
+            AlipayPayBack2Service.Instance.checkOrder(id);
+            return "ok";
+        }
+
+        public string scanBind()
+        {
+            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
+            PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
+            var Binds = spdb.BindRecord.Select(m => new { m.Id, m.CreateTime, m.Status, m.MerNo, m.MerSnNo }).OrderBy(m => m.Id).ToList();
+            foreach (var Bind in Binds)
+            {
+                var tran = db.Database.BeginTransaction();
+                try
+                {
+                    PxcModels.MachineForSnNo posFor = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == Bind.MerSnNo) ?? new PxcModels.MachineForSnNo();
+                    PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
+                    if (pos != null)
+                    {
+                        if (pos.BindingState == 0)
+                        {
+                            pos.BindingState = 1;
+                            pos.BindingTime = Bind.CreateTime;
+                            PxcModels.MachineForMerNo merFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == Bind.MerNo);
+                            if (merFor == null)
+                            {
+                                merFor = db.MachineForMerNo.Add(new PxcModels.MachineForMerNo()
+                                {
+                                    MerNo = Bind.MerNo,
+                                    SnId = pos.Id,
+                                }).Entity;
+                            }
+                            db.SaveChanges();
+                            tran.Commit();
+                            function.WriteLog(pos.PosSn, "补充绑定数据");
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    tran.Rollback();
+                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString() + "\n" + Bind.Id, "同步SP绑定数据到MAIN异常");
+                }
+                tran.Dispose();
+            }
+            spdb.SaveChanges();
+            spdb.Dispose();
+            db.SaveChanges();
+            db.Dispose();
+            return "ok";
+        }
+
+        public string scanMerchant()
+        { 
+            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
+            PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
+            var Mers = spdb.Merchants.OrderBy(m => m.Id).ToList();
+            foreach (var Mer in Mers)
+            {
+                var tran = db.Database.BeginTransaction();
+                try
+                {
+                    PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == Mer.MerNo) ?? new PxcModels.MachineForMerNo();
+                    PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId) ?? new PxcModels.PosMachinesTwo();
+                    if (pos.BindingState == 1)
+                    {
+                        PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
+                        int TopUserId = 0;
+                        if (!string.IsNullOrEmpty(user.ParentNav))
+                        {
+                            TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
+                        }
+                        int BrandId = int.Parse(Mer.ProductType);
+                        if (Mer.MerNo.StartsWith("M900"))
+                        {
+                            BrandId = 3;
+                        }
+                        bool check = db.PosMerchantInfo.Any(m => m.KqMerNo == Mer.MerNo);
+                        if (!check)
+                        {
+                            PxcModels.PosMerchantInfo add = db.PosMerchantInfo.Add(new PxcModels.PosMerchantInfo()
+                            {
+                                CreateDate = Mer.CreateTime,
+                                UpdateDate = Mer.UpdateTime,
+                                TopUserId = TopUserId,
+                                MerUserType = user.MerchantType,
+                                BrandId = BrandId,
+                                SnStoreId = pos.StoreId,
+                                SnType = pos.PosSnType,
+                                UserId = pos.UserId,
+                                MgrName = Mer.AgentName,
+                                MerStatus = 1,
+                                KqSnNo = Mer.SnNo,
+                                KqMerNo = Mer.MerNo,
+                                MerIdcardNo = Mer.MerIdcardNo,
+                                MerRealName = Mer.MerRealName,
+                                MerchantMobile = Mer.MerMobile,
+                                MerchantName = Mer.MerName,
+                                MerchantNo = Mer.MerNo.Length > 16 ? Mer.MerNo.Substring(0, 16) : Mer.MerNo,
+                            }).Entity;
+                            db.SaveChanges();
+                            pos.BindMerchantId = add.Id;
+                            db.SaveChanges();
+                            tran.Commit();
+                            function.WriteLog(Mer.MerNo, "补充商户数据");
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    tran.Rollback();
+                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString() + "\n" + Mer.Id, "同步SP商户数据到MAIN异常");
+                }
+                tran.Dispose();
+            }
+            spdb.Dispose();
+            db.Dispose();
+            return "ok";
+        }
+
+        public string scanTrade()
+        {
+            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
+            PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
+            IQueryable<SpModels.TradeRecord> trades = spdb.TradeRecord.OrderBy(m => m.Id);
+            foreach (SpModels.TradeRecord trade in trades.ToList())
+            {
+                bool op = true;
+                if (trade.SerEntryMode == "N")
+                {
+                    if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
+                    {
+                        op = false;
+                        PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
+                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
+                        if (pos != null)
+                        {
+                            if (trade.SerEntryMode == "N" && trade.ProductType == "1")
+                            {
+                                pos.SeoKeyword = trade.TradeAmount.ToString("f2");
+                                db.SaveChanges();
+                            }
+                        }
+                    }
+                }
+                if (op)
+                {
+                    PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
+                    PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
+                    if (pos != null)
+                    {
+                        if (pos.BindMerchantId > 0)
+                        {
+                            PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
+                            int TopUserId = 0;
+                            if (!string.IsNullOrEmpty(user.ParentNav))
+                            {
+                                TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
+                            }
+                            bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
+                            if (!check)
+                            {
+                                decimal TradeAmount = trade.TradeAmount;
+                                int BankCardType = -1;
+                                int QrPayFlag = 0;
+                                if (pos.BrandId == 1 || pos.BrandId == 3)
+                                {
+                                    TradeAmount = TradeAmount / 100;
+                                    BankCardType = int.Parse(trade.BankCardType);
+                                    if(trade.TradeType == "02") QrPayFlag = 1;
+                                }
+                                else if (pos.BrandId == 2)
+                                {
+                                    if (trade.TradeType == "CREDIT_BY_CARD")
+                                    {
+                                        BankCardType = 1;
+                                    }
+                                    else if (trade.TradeType == "DEBIT_BY_CARD")
+                                    {
+                                        BankCardType = 0;
+                                    }
+                                    if(trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
+                                }
+                                int BrandId = int.Parse(trade.ProductType);
+                                if (trade.MerNo.StartsWith("M900"))
+                                {
+                                    BrandId = 3;
+                                }
+                                db.TradeRecord.Add(new PxcModels.TradeRecord()
+                                {
+                                    CreateDate = trade.CreateDate,
+                                    UpdateDate = trade.UpdateDate,
+                                    RecordNo = trade.TradeSerialNo, //单号
+                                    UserId = pos.UserId, //创客
+                                    MerchantId = pos.BindMerchantId, //商户
+                                    MerNo = trade.MerNo, //渠道商户编号
+                                    MerHelpFlag = 0, //是否属于扶持周期内商户
+                                    HelpMonthCount = 0, //扶持第几个月
+                                    MerBuddyType = user.MerchantType, //商户创客类型
+                                    SnNo = trade.TradeSnNo, //渠道SN号
+                                    // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
+                                    TradeSerialNo = trade.ChannelSerial, //交易流水号
+                                    TradeAmount = TradeAmount, //交易金额
+                                    BankCardType = BankCardType, //银行卡类型
+                                    QrPayFlag = QrPayFlag, //云闪付标识
+                                    BrandId = BrandId, //品牌
+                                    Remark = trade.Remark, //备注
+                                    TopUserId = TopUserId, //顶级创客
+                                    MerUserId = pos.UserId, //商户直属创客
+                                });
+                                if (BankCardType == 1)
+                                {
+                                    pos.CreditTrade += TradeAmount;
+                                }
+                                else if (BankCardType == 0)
+                                {
+                                    pos.DebitCardTrade += TradeAmount;
+                                }
+                                if (pos.CreditTrade < 1000)
+                                {
+                                    pos.IsPurchase = 99;
+                                }
+                                else if (pos.CreditTrade >= 1000 && pos.ActivationState == 0 && pos.BindingTime > DateTime.Now.AddDays(-20))
+                                {
+                                    pos.IsPurchase = 0;
+                                    pos.ActivationState = 1;
+                                    pos.ActivationTime = DateTime.Now;
+                                    PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
+                                    if (merchant != null)
+                                    {
+                                        merchant.ActiveStatus = 1;
+                                        merchant.MerStandardDate = DateTime.Now;
+                                        db.SaveChanges();
+                                    }
+                                }
+                                db.SaveChanges();
+                                function.WriteLog(trade.Id.ToString(), "补充交易数据");
+                            }
+                        }
+                    }
+                }
+            }
+            spdb.Dispose();
+            db.Dispose();
+            return "ok";
+        }
+
+        // public string add100()
+        // {
+        //     WebCMSEntities db = new WebCMSEntities();
+        //     List<int> uids = new List<int>();
+        //     uids.Add(1053);
+        //     foreach (int uid in uids)
+        //     {
+        //         int ParentUserId = uid;
+        //         int machineCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.PosSnType == 0); //判断是否拥有3台购买机
+        //         int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == ParentUserId && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
+        //         if (machineCount + ActiveCount >= 3)
+        //         {
+        //             UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == ParentUserId);
+        //             if (account == null)
+        //             {
+        //                 account = db.UserAccount.Add(new UserAccount()
+        //                 {
+        //                     Id = ParentUserId,
+        //                     UserId = ParentUserId,
+        //                 }).Entity;
+        //                 db.SaveChanges();
+        //             }
+        //             decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
+        //             decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
+        //             decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
+        //             account.BalanceAmount += 100;
+        //             account.TotalAmount += 100;
+        //             decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
+        //             decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
+        //             decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
+        //             UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
+        //             {
+        //                 CreateDate = DateTime.Now,
+        //                 UpdateDate = DateTime.Now,
+        //                 UserId = ParentUserId, //创客
+        //                 ChangeType = 112, //变动类型
+        //                 ChangeAmount = 100, //变更金额
+        //                 BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
+        //                 AfterTotalAmount = AfterTotalAmount, //变更后总金额
+        //                 BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
+        //                 AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
+        //                 BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+        //                 AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+        //             }).Entity;
+        //             db.SaveChanges();
+        //             RedisDbconn.Instance.Set("UserAccount:" + ParentUserId, account);
+
+        //             //推荐下单上级获得30天的机具循环天数
+        //             var posList = db.PosMachinesTwo.Select(m => new { m.Id, m.UserId, m.BindingState, m.RecycEndDate }).Where(m => m.UserId == ParentUserId && m.BindingState == 0 && m.RecycEndDate != null).ToList();
+        //             foreach (var subPos in posList)
+        //             {
+        //                 PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == subPos.Id);
+        //                 if (pos != null)
+        //                 {
+        //                     pos.RecycEndDate = pos.RecycEndDate.Value.AddDays(30);
+        //                 }
+        //             }
+        //             db.SaveChanges();
+        //         }
+        //     }
+        //     db.Dispose();
+        //     return "finish";
+        // }
+
+        //交易不到1000的机具,顶级姓名-代理姓名-客户姓名-客户电话-开机日期-SN // TODO:做到BS后台导出,按绑定时间查
+        public IActionResult PosTable()
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            List<PosMachinesTwo> poses = db.PosMachinesTwo.Where(m => m.CreditTrade < 1000 && m.BindingState == 1).ToList();
+            List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
+            foreach (PosMachinesTwo pos in poses)
+            {
+                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PosMerchantInfo();
+                Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new Users();
+                Users puser = db.Users.FirstOrDefault(m => m.Id == user.ParentUserId) ?? new Users();
+                Users ppuser = db.Users.FirstOrDefault(m => m.Id == puser.ParentUserId) ?? new Users();
+                Dictionary<string, string> item = new Dictionary<string, string>();
+                string TopRealName = "";
+                string TopMakerCode = "";
+                string TopMobile = "";
+                string ParentNav = user.ParentNav;
+                if (!string.IsNullOrEmpty(ParentNav))
+                {
+                    string[] navlist = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                    if (navlist.Length > 1)
+                    {
+                        int TopId = int.Parse(function.CheckInt(navlist[1]));
+                        Users tuser = db.Users.FirstOrDefault(m => m.Id == TopId) ?? new Users();
+                        TopRealName = tuser.RealName;
+                        TopMakerCode = tuser.MakerCode;
+                        TopMobile = tuser.Mobile;
+                    }
+                }
+                item.Add("TopRealName", TopRealName); //顶级姓名
+                item.Add("TopMakerCode", TopMakerCode); //顶级编号
+                item.Add("UpUpRealName", ppuser.RealName); //上上级姓名
+                item.Add("UpRealName", puser.RealName); //上级姓名
+                item.Add("RealName", user.RealName); //代理姓名
+                item.Add("MakerCode", user.MakerCode); //代理编号
+                item.Add("Mobile", user.Mobile); //代理手机号
+                item.Add("MerchantName", merchant.MerchantName); //客户姓名
+                item.Add("MerchantMobile", merchant.MerchantMobile); //客户电话
+                item.Add("OpenTime", pos.BindingTime == null ? "" : pos.BindingTime.Value.ToString("yyyy-MM-dd HH:mm:ss")); //开机日期
+                item.Add("Sn", pos.PosSn); //SN
+                list.Add(item);
+            }
+            db.Dispose();
+            ViewBag.list = list;
+            return View();
+        }
+
+        public string resetall(int k = 0, int b = 1)
+        {
+            DataTable dt = dbconn.dtable("select Id from Users where AuthFlag=1");
+            foreach (DataRow dr in dt.Rows)
+            {
+                if (k == 1)
+                {
+                    reset(int.Parse(dr["Id"].ToString()));
+                }
+                else if (k == 2)
+                {
+                    resetpos(int.Parse(dr["Id"].ToString()), b);
+                }
+            }
+            return "ok";
+        }
+        public string reset(int uid)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            List<Users> users = db.Users.Where(m => m.ParentUserId == uid).OrderByDescending(m => m.AuthDate).ToList();
+            RedisDbconn.Instance.Clear("MyMakerList:" + uid);
+            RedisDbconn.Instance.Clear("MyMakerForNotAuth:" + uid);
+            RedisDbconn.Instance.Clear("TotalUser:" + uid + "*");
+            RedisDbconn.Instance.Clear("TotalUser:Auth:" + uid);
+            foreach (Users user in users)
+            {
+                RedisDbconn.Instance.AddInt("TotalUser:" + uid);
+                RedisDbconn.Instance.AddInt("TotalUser:" + uid + ":" + user.CreateDate.Value.ToString("yyyyMM"));
+                RedisDbconn.Instance.AddInt("TotalUser:" + uid + ":" + user.CreateDate.Value.ToString("yyyyMMdd"));
+                if (user.AuthFlag == 1)
+                {
+                    RedisDbconn.Instance.AddList("MyMakerList:" + uid, new MyMakerItem()
+                    {
+                        UserId = user.Id,
+                        RealName = user.RealName,
+                        UserLevel = user.UserLevel,
+                    });
+                    RedisDbconn.Instance.AddInt("TotalUser:Auth:" + uid);
+                }
+                else
+                { 
+                    RedisDbconn.Instance.AddList("MyMakerForNotAuth:" + uid, new MyMakerItem()
+                    {
+                        UserId = user.Id,
+                        RealName = user.RealName,
+                        UserLevel = user.UserLevel,
+                    });
+                    RedisDbconn.Instance.AddInt("TotalUser:NoAuth:" + uid);
+                }
+                RedisDbconn.Instance.Set("Users:" + user.Id, user);
+            }
+            db.Dispose();
+            return "finish";
+        }
+
+        public string resetpos(int uid, int kind)
+        { 
+            WebCMSEntities db = new WebCMSEntities();
+            string IdBrand = uid + "_" + kind;
+            UserMachineData machineData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
+            if (machineData == null)
+            {
+                machineData = db.UserMachineData.Add(new UserMachineData()
+                {
+                    IdBrand = IdBrand
+                }).Entity;
+                db.SaveChanges();
+            }
+            machineData.BindCount = db.PosMachinesTwo.Count(m => (m.UserId == uid && m.BuyUserId == uid) && m.BrandId == kind && m.BindingState == 1);
+            machineData.UnBindCount = db.PosMachinesTwo.Count(m => (m.UserId == uid && m.BuyUserId == uid) && m.BrandId == kind && m.BindingState == 0);
+            machineData.TotalMachineCount = machineData.BindCount + machineData.UnBindCount;
+            db.SaveChanges();
+            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, machineData);
+            RedisDbconn.Instance.SetExpire("UserMachineData:" + IdBrand, function.get_Random(1800, 5400));
+            db.Dispose();
+            return "finish";
+        }
+
+        // 更新分仓库存
+        public string resetstorestock()
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            DataTable dt = dbconn.dtable("select s.Id,LaveNum,count(p.Id) as CurLaveNum from StoreHouse s left join PosMachinesTwo p on s.Id=p.StoreId and s.BrandId=p.BrandId and p.UserId=0 group by s.Id HAVING LaveNum!=count(p.Id)");
+            foreach (DataRow dr in dt.Rows)
+            {
+                int Id = int.Parse(function.CheckInt(dr["Id"].ToString()));
+                int CurLaveNum = int.Parse(function.CheckInt(dr["CurLaveNum"].ToString()));
+                StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == Id);
+                if (store != null)
+                {
+                    store.LaveNum = CurLaveNum;
+                    db.SaveChanges();
+                    RedisDbconn.Instance.Set("StoreHouse:" + Id, store);
+                }
+            }
+            db.Dispose();
+            return "ok";
+        }
+        public string resetstorestock2(int id)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            DataTable dt = dbconn.dtable("select Id,LaveNum,(select count(Id) from PosMachinesTwo where StoreId=s.Id and UserId=0) as CurLaveNum from StoreHouse s where Id=" + id);
+            foreach (DataRow dr in dt.Rows)
+            {
+                int Id = int.Parse(function.CheckInt(dr["Id"].ToString()));
+                int CurLaveNum = int.Parse(function.CheckInt(dr["CurLaveNum"].ToString()));
+                StoreHouse store = db.StoreHouse.FirstOrDefault(m => m.Id == Id);
+                if (store != null)
+                {
+                    store.LaveNum = CurLaveNum;
+                    db.SaveChanges();
+                    RedisDbconn.Instance.Set("StoreHouse:" + Id, store);
+                }
+            }
+            db.Dispose();
+            return "ok";
+        }
+
+        public string chkpwd(string pwd)
+        {
+            return function.MD532(pwd);
+        }
+
+        //重置本月团队交易额
+        public string resetMonthTrade()
+        {
+            
+            return "";
+        }
+
+        public string traderecord(int kind, int id = 0)
+        {
+            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
+            if (kind == 1)
+            {
+                OtherMySqlConn.op("delete from TradeRecordTest;insert into TradeRecordTest (Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo) select Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo from TradeRecord order by CreateDate;");
+            }
+            else if (kind == 2)
+            {
+                OtherMySqlConn.op("delete from TradeRecord where Id<" + id + ";insert into TradeRecord (Id,Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo) select Id,Sort,QueryCount,Status,Version,CreateDate,UpdateDate,CreateMan,UpdateMan,SeoTitle,SeoKeyword,SeoDescription,MerUserId,TopUserId,Remark,BrandId,DirectFlag,CapFlag,QrPayFlag,BankCardType,TradeAmount,TradeSerialNo,ClearDate,TradeDate,SnNo,MerBuddyType,HelpMonthCount,MerHelpFlag,MerNo,MerchantId,UserId,RecordNo from TradeRecordTest order by Id;");
+            }
+            OtherMySqlConn.connstr = "";
+            return "ok";
+        }
+
+        public string test()
+        {
+            string result = "ok";
+            
+            return result;
+        }
+    }
 }

+ 1 - 4
Models/AgentLevelSet.cs

@@ -9,17 +9,14 @@ namespace MySystem.Models
         public int Sort { get; set; }
         public int QueryCount { get; set; }
         public int Status { get; set; }
-        public int Version { get; set; }
         public DateTime? CreateDate { get; set; }
         public DateTime? UpdateDate { get; set; }
-        public string CreateMan { get; set; }
-        public string UpdateMan { get; set; }
         public string SeoTitle { get; set; }
         public string SeoKeyword { get; set; }
         public string SeoDescription { get; set; }
-        public decimal AreasProfitPercent { get; set; }
         public ulong LevelDiff { get; set; }
         public decimal ProfitPercent { get; set; }
         public string Name { get; set; }
+        public decimal AreasProfitPercent { get; set; }
     }
 }

+ 2 - 2
Models/ConsumerOrders.cs

@@ -17,8 +17,6 @@ namespace MySystem.Models
         public string SeoTitle { get; set; }
         public string SeoKeyword { get; set; }
         public string SeoDescription { get; set; }
-        public decimal CurDivi { get; set; }
-        public decimal MaxDivi { get; set; }
         public string SnNo { get; set; }
         public decimal ReturnMoney { get; set; }
         public decimal PayMoney { get; set; }
@@ -26,6 +24,8 @@ namespace MySystem.Models
         public string OrderNo { get; set; }
         public int ConsumerId { get; set; }
         public int MerchantId { get; set; }
+        public decimal CurDivi { get; set; }
+        public decimal MaxDivi { get; set; }
         public ulong IsAct { get; set; }
     }
 }

+ 1 - 1
Models/ConsumerProfit.cs

@@ -17,9 +17,9 @@ namespace MySystem.Models
         public string SeoTitle { get; set; }
         public string SeoKeyword { get; set; }
         public string SeoDescription { get; set; }
-        public int OrderId { get; set; }
         public decimal GetMoney { get; set; }
         public int MerchantId { get; set; }
         public int ConsumerId { get; set; }
+        public int OrderId { get; set; }
     }
 }

+ 1 - 4
Models/Consumers.cs

@@ -17,10 +17,6 @@ namespace MySystem.Models
         public string SeoTitle { get; set; }
         public string SeoKeyword { get; set; }
         public string SeoDescription { get; set; }
-        public string WechatOpenId { get; set; }
-        public ulong CardFlag { get; set; }
-        public ulong AlipayFlag { get; set; }
-        public ulong WeChatPayFlag { get; set; }
         public DateTime? LastConsumDate { get; set; }
         public int TotalConsumCount { get; set; }
         public decimal TotalAmount { get; set; }
@@ -32,5 +28,6 @@ namespace MySystem.Models
         public string Mobile { get; set; }
         public string HeadPhoto { get; set; }
         public string NickName { get; set; }
+        public string WechatOpenId { get; set; }
     }
 }

+ 2 - 2
Models/MachineForQrCode.cs

@@ -6,9 +6,9 @@ namespace MySystem.Models
     public partial class MachineForQrCode
     {
         public string DataId { get; set; }
-        public int MerchantId { get; set; }
+        public DateTime? BindDate { get; set; }
         public string MachineSnNo { get; set; }
         public string SnNo { get; set; }
-        public DateTime? BindDate { get; set; }
+        public int MerchantId { get; set; }
     }
 }

+ 6 - 6
Models/MerchantAddInfo.cs

@@ -17,12 +17,6 @@ namespace MySystem.Models
         public string SeoTitle { get; set; }
         public string SeoKeyword { get; set; }
         public string SeoDescription { get; set; }
-        public DateTime? CardPeriodEnd { get; set; }
-        public DateTime? CardPeriodBegin { get; set; }
-        public string IdCardNumber { get; set; }
-        public string IdCardName { get; set; }
-        public string IdCardNational { get; set; }
-        public string IdCardCopy { get; set; }
         public string AuditDetail { get; set; }
         public string ApplymentState { get; set; }
         public string SignUrl { get; set; }
@@ -96,5 +90,11 @@ namespace MySystem.Models
         public string ContactIdNumber { get; set; }
         public string ContactName { get; set; }
         public string BusinessCode { get; set; }
+        public DateTime? CardPeriodEnd { get; set; }
+        public DateTime? CardPeriodBegin { get; set; }
+        public string IdCardNumber { get; set; }
+        public string IdCardName { get; set; }
+        public string IdCardNational { get; set; }
+        public string IdCardCopy { get; set; }
     }
 }

+ 7 - 7
Models/MerchantInfo.cs

@@ -17,13 +17,6 @@ namespace MySystem.Models
         public string SeoTitle { get; set; }
         public string SeoKeyword { get; set; }
         public string SeoDescription { get; set; }
-        public string ParentUserNav { get; set; }
-        public int UserId { get; set; }
-        public DateTime? LastConsumeDate { get; set; }
-        public int TotalConsumeCount { get; set; }
-        public DateTime? LastAddConsumerDate { get; set; }
-        public decimal TotalActual { get; set; }
-        public string Logo { get; set; }
         public string LoginPwd { get; set; }
         public int TotalUser { get; set; }
         public int TotalCustomer { get; set; }
@@ -34,6 +27,13 @@ namespace MySystem.Models
         public string Areas { get; set; }
         public string Mobile { get; set; }
         public string Name { get; set; }
+        public string Logo { get; set; }
+        public decimal TotalActual { get; set; }
+        public DateTime? LastConsumeDate { get; set; }
+        public int TotalConsumeCount { get; set; }
+        public DateTime? LastAddConsumerDate { get; set; }
+        public string ParentUserNav { get; set; }
+        public int UserId { get; set; }
         public DateTime? BindDate { get; set; }
         public int BindStatus { get; set; }
         public DateTime? ActivationDate { get; set; }

+ 0 - 3
Models/MerchantQrCode.cs

@@ -9,11 +9,8 @@ namespace MySystem.Models
         public int Sort { get; set; }
         public int QueryCount { get; set; }
         public int Status { get; set; }
-        public int Version { get; set; }
         public DateTime? CreateDate { get; set; }
         public DateTime? UpdateDate { get; set; }
-        public string CreateMan { get; set; }
-        public string UpdateMan { get; set; }
         public string SeoTitle { get; set; }
         public string SeoKeyword { get; set; }
         public string SeoDescription { get; set; }

+ 1 - 0
Models/TradeRecord.cs

@@ -37,5 +37,6 @@ namespace MySystem.Models
         public int MerchantId { get; set; }
         public int UserId { get; set; }
         public string RecordNo { get; set; }
+        public string ParentNav { get; set; }
     }
 }

+ 6 - 6
Models/UserAccount.cs

@@ -17,12 +17,6 @@ namespace MySystem.Models
         public string SeoTitle { get; set; }
         public string SeoKeyword { get; set; }
         public string SeoDescription { get; set; }
-        public decimal TotalOverProfit { get; set; }
-        public decimal TeamTotalServiceProfit { get; set; }
-        public decimal TeamTotalProfit { get; set; }
-        public decimal TeamTotalOverProfit { get; set; }
-        public decimal TotalServiceProfit { get; set; }
-        public decimal TotalProfit { get; set; }
         public decimal WithdrawAmount { get; set; }
         public int LockStatus { get; set; }
         public int AccountStatus { get; set; }
@@ -32,5 +26,11 @@ namespace MySystem.Models
         public int UserProperty { get; set; }
         public int UserType { get; set; }
         public int UserId { get; set; }
+        public decimal TotalOverProfit { get; set; }
+        public decimal TeamTotalServiceProfit { get; set; }
+        public decimal TeamTotalProfit { get; set; }
+        public decimal TeamTotalOverProfit { get; set; }
+        public decimal TotalServiceProfit { get; set; }
+        public decimal TotalProfit { get; set; }
     }
 }

+ 1 - 1
Models/UserCardRecord.cs

@@ -17,8 +17,8 @@ namespace MySystem.Models
         public string SeoTitle { get; set; }
         public string SeoKeyword { get; set; }
         public string SeoDescription { get; set; }
-        public int MerchantId { get; set; }
         public int CardId { get; set; }
         public int ConsumerId { get; set; }
+        public int MerchantId { get; set; }
     }
 }

+ 5 - 5
Models/Users.cs

@@ -17,11 +17,6 @@ namespace MySystem.Models
         public string SeoTitle { get; set; }
         public string SeoKeyword { get; set; }
         public string SeoDescription { get; set; }
-        public string AgentAreas { get; set; }
-        public int AgentLevel { get; set; }
-        public string SettleBankCardName { get; set; }
-        public DateTime? CertValidEndDate { get; set; }
-        public DateTime? CertValidStartDate { get; set; }
         public DateTime? CitySetDate { get; set; }
         public decimal ProfitRewardRate { get; set; }
         public decimal ActiveRewardAmount { get; set; }
@@ -79,5 +74,10 @@ namespace MySystem.Models
         public int Sex { get; set; }
         public string RealName { get; set; }
         public string NickName { get; set; }
+        public string SettleBankCardName { get; set; }
+        public DateTime? CertValidEndDate { get; set; }
+        public DateTime? CertValidStartDate { get; set; }
+        public string AgentAreas { get; set; }
+        public int AgentLevel { get; set; }
     }
 }

+ 3 - 338
Models/WebCMSEntities.cs

@@ -93,10 +93,6 @@ namespace MySystem.Models
         public virtual DbSet<Orders> Orders { get; set; }
         public virtual DbSet<PageInfo> PageInfo { get; set; }
         public virtual DbSet<PageUpdateInfo> PageUpdateInfo { get; set; }
-        public virtual DbSet<PosCouponForUser> PosCouponForUser { get; set; }
-        public virtual DbSet<PosCouponOrders> PosCouponOrders { get; set; }
-        public virtual DbSet<PosCouponRecord> PosCouponRecord { get; set; }
-        public virtual DbSet<PosCoupons> PosCoupons { get; set; }
         public virtual DbSet<PosMachines> PosMachines { get; set; }
         public virtual DbSet<PosMachinesTwo> PosMachinesTwo { get; set; }
         public virtual DbSet<PosMerchantInfo> PosMerchantInfo { get; set; }
@@ -156,11 +152,9 @@ namespace MySystem.Models
         public virtual DbSet<TeamDayTop> TeamDayTop { get; set; }
         public virtual DbSet<TeamOfferApply> TeamOfferApply { get; set; }
         public virtual DbSet<TeamPersonDayTop> TeamPersonDayTop { get; set; }
-        public virtual DbSet<TmpCert> TmpCert { get; set; }
         public virtual DbSet<TmpTradeNo> TmpTradeNo { get; set; }
         public virtual DbSet<TradeDaySummary> TradeDaySummary { get; set; }
         public virtual DbSet<TradeRecord> TradeRecord { get; set; }
-        public virtual DbSet<TradeRecordTest> TradeRecordTest { get; set; }
         public virtual DbSet<UploadParams> UploadParams { get; set; }
         public virtual DbSet<UserAccount> UserAccount { get; set; }
         public virtual DbSet<UserAccountRecord> UserAccountRecord { get; set; }
@@ -646,11 +640,6 @@ namespace MySystem.Models
 
                 entity.Property(e => e.CreateDate).HasColumnType("datetime");
 
-                entity.Property(e => e.CreateMan)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
                 entity.Property(e => e.LevelDiff)
                     .HasColumnType("bit(1)")
                     .HasDefaultValueSql("b'0'");
@@ -684,13 +673,6 @@ namespace MySystem.Models
                 entity.Property(e => e.Status).HasColumnType("int(11)");
 
                 entity.Property(e => e.UpdateDate).HasColumnType("datetime");
-
-                entity.Property(e => e.UpdateMan)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
             modelBuilder.Entity<AppBottomNavs>(entity =>
@@ -1305,19 +1287,11 @@ namespace MySystem.Models
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
 
-                entity.Property(e => e.AlipayFlag)
-                    .HasColumnType("bit(1)")
-                    .HasDefaultValueSql("b'0'");
-
                 entity.Property(e => e.AlipayUserId)
                     .HasColumnType("varchar(50)")
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
-                entity.Property(e => e.CardFlag)
-                    .HasColumnType("bit(1)")
-                    .HasDefaultValueSql("b'0'");
-
                 entity.Property(e => e.CreateDate).HasColumnType("datetime");
 
                 entity.Property(e => e.CreateMan)
@@ -1382,10 +1356,6 @@ namespace MySystem.Models
 
                 entity.Property(e => e.Version).HasColumnType("int(11)");
 
-                entity.Property(e => e.WeChatPayFlag)
-                    .HasColumnType("bit(1)")
-                    .HasDefaultValueSql("b'0'");
-
                 entity.Property(e => e.WechatOpenId)
                     .HasColumnType("varchar(50)")
                     .HasCharSet("utf8")
@@ -4146,11 +4116,6 @@ namespace MySystem.Models
 
                 entity.Property(e => e.CreateDate).HasColumnType("datetime");
 
-                entity.Property(e => e.CreateMan)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
                 entity.Property(e => e.MachineId).HasColumnType("int(11)");
 
                 entity.Property(e => e.MerchantId).HasColumnType("int(11)");
@@ -4187,13 +4152,6 @@ namespace MySystem.Models
                 entity.Property(e => e.Status).HasColumnType("int(11)");
 
                 entity.Property(e => e.UpdateDate).HasColumnType("datetime");
-
-                entity.Property(e => e.UpdateMan)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
             modelBuilder.Entity<MerchantRebateDetail>(entity =>
@@ -6215,187 +6173,6 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
-            modelBuilder.Entity<PosCouponForUser>(entity =>
-            {
-                entity.Property(e => e.Id).HasColumnType("int(11)");
-
-                entity.Property(e => e.CreateDate).HasColumnType("datetime");
-
-                entity.Property(e => e.OutNum).HasColumnType("int(11)");
-
-                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
-
-                entity.Property(e => e.SeoDescription)
-                    .HasColumnType("varchar(500)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoKeyword)
-                    .HasColumnType("varchar(200)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoTitle)
-                    .HasColumnType("varchar(100)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.Sort).HasColumnType("int(11)");
-
-                entity.Property(e => e.Status).HasColumnType("int(11)");
-
-                entity.Property(e => e.StockNum).HasColumnType("int(11)");
-
-                entity.Property(e => e.TotalNum).HasColumnType("int(11)");
-
-                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
-            });
-
-            modelBuilder.Entity<PosCouponOrders>(entity =>
-            {
-                entity.Property(e => e.Id).HasColumnType("int(11)");
-
-                entity.Property(e => e.AfterOut).HasColumnType("int(11)");
-
-                entity.Property(e => e.AfterStock).HasColumnType("int(11)");
-
-                entity.Property(e => e.AfterTotal).HasColumnType("int(11)");
-
-                entity.Property(e => e.BeforeOut).HasColumnType("int(11)");
-
-                entity.Property(e => e.BeforeStock).HasColumnType("int(11)");
-
-                entity.Property(e => e.BeforeTotal).HasColumnType("int(11)");
-
-                entity.Property(e => e.ChangeCount).HasColumnType("int(11)");
-
-                entity.Property(e => e.ChangeKind).HasColumnType("int(11)");
-
-                entity.Property(e => e.CreateDate).HasColumnType("datetime");
-
-                entity.Property(e => e.FromUserId).HasColumnType("int(11)");
-
-                entity.Property(e => e.OrderNo)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
-
-                entity.Property(e => e.SeoDescription)
-                    .HasColumnType("varchar(500)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoKeyword)
-                    .HasColumnType("varchar(200)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoTitle)
-                    .HasColumnType("varchar(100)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.Sort).HasColumnType("int(11)");
-
-                entity.Property(e => e.Status).HasColumnType("int(11)");
-
-                entity.Property(e => e.ToUserId).HasColumnType("int(11)");
-
-                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
-            });
-
-            modelBuilder.Entity<PosCouponRecord>(entity =>
-            {
-                entity.Property(e => e.Id).HasColumnType("int(11)");
-
-                entity.Property(e => e.ChangeKind).HasColumnType("int(11)");
-
-                entity.Property(e => e.CreateDate).HasColumnType("datetime");
-
-                entity.Property(e => e.FromUserId).HasColumnType("int(11)");
-
-                entity.Property(e => e.OrderNo)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.PosCouponId).HasColumnType("int(11)");
-
-                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
-
-                entity.Property(e => e.SeoDescription)
-                    .HasColumnType("varchar(500)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoKeyword)
-                    .HasColumnType("varchar(200)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoTitle)
-                    .HasColumnType("varchar(100)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.Sort).HasColumnType("int(11)");
-
-                entity.Property(e => e.Status).HasColumnType("int(11)");
-
-                entity.Property(e => e.ToUserId).HasColumnType("int(11)");
-
-                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
-            });
-
-            modelBuilder.Entity<PosCoupons>(entity =>
-            {
-                entity.Property(e => e.Id).HasColumnType("int(11)");
-
-                entity.Property(e => e.CreateDate).HasColumnType("datetime");
-
-                entity.Property(e => e.ExchangeCode)
-                    .HasColumnType("varchar(10)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.IsLock)
-                    .HasColumnType("bit(1)")
-                    .HasDefaultValueSql("b'0'");
-
-                entity.Property(e => e.IsUse)
-                    .HasColumnType("bit(1)")
-                    .HasDefaultValueSql("b'0'");
-
-                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
-
-                entity.Property(e => e.SeoDescription)
-                    .HasColumnType("varchar(500)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoKeyword)
-                    .HasColumnType("varchar(200)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoTitle)
-                    .HasColumnType("varchar(100)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.Sort).HasColumnType("int(11)");
-
-                entity.Property(e => e.Status).HasColumnType("int(11)");
-
-                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
-
-                entity.Property(e => e.UseDate).HasColumnType("datetime");
-
-                entity.Property(e => e.UserId).HasColumnType("int(11)");
-            });
-
             modelBuilder.Entity<PosMachines>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -10667,22 +10444,6 @@ namespace MySystem.Models
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
-            modelBuilder.Entity<TmpCert>(entity =>
-            {
-                entity.HasKey(e => e.MakerCode)
-                    .HasName("PRIMARY");
-
-                entity.Property(e => e.MakerCode)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("latin1")
-                    .HasCollation("latin1_swedish_ci");
-
-                entity.Property(e => e.CertId)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("latin1")
-                    .HasCollation("latin1_swedish_ci");
-            });
-
             modelBuilder.Entity<TmpTradeNo>(entity =>
             {
                 entity.HasKey(e => e.RecordNo)
@@ -10874,113 +10635,17 @@ namespace MySystem.Models
 
                 entity.Property(e => e.MerchantId).HasColumnType("int(11)");
 
-                entity.Property(e => e.QrPayFlag).HasColumnType("int(11)");
-
-                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
-
-                entity.Property(e => e.RecordNo)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.Remark)
-                    .HasColumnType("varchar(64)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoDescription)
-                    .HasColumnType("varchar(500)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoKeyword)
-                    .HasColumnType("varchar(200)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SeoTitle)
-                    .HasColumnType("varchar(100)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.SnNo)
-                    .HasColumnType("varchar(32)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.Sort).HasColumnType("int(11)");
-
-                entity.Property(e => e.Status).HasColumnType("int(11)");
-
-                entity.Property(e => e.TopUserId).HasColumnType("int(11)");
-
-                entity.Property(e => e.TradeAmount).HasColumnType("decimal(18,2)");
-
-                entity.Property(e => e.TradeDate).HasColumnType("datetime");
-
-                entity.Property(e => e.TradeSerialNo)
-                    .HasColumnType("varchar(48)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
-
-                entity.Property(e => e.UpdateMan)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.UserId).HasColumnType("int(11)");
-
-                entity.Property(e => e.Version).HasColumnType("int(11)");
-            });
-
-            modelBuilder.Entity<TradeRecordTest>(entity =>
-            {
-                entity.Property(e => e.Id).HasColumnType("int(11)");
-
-                entity.Property(e => e.BankCardType).HasColumnType("int(11)");
-
-                entity.Property(e => e.BrandId).HasColumnType("int(11)");
-
-                entity.Property(e => e.CapFlag).HasColumnType("int(11)");
-
-                entity.Property(e => e.ClearDate).HasColumnType("datetime");
-
-                entity.Property(e => e.CreateDate).HasColumnType("datetime");
-
-                entity.Property(e => e.CreateMan)
-                    .HasColumnType("varchar(50)")
-                    .HasCharSet("utf8")
-                    .HasCollation("utf8_general_ci");
-
-                entity.Property(e => e.DirectFlag)
-                    .HasColumnType("bit(1)")
-                    .HasDefaultValueSql("b'0'");
-
-                entity.Property(e => e.HelpMonthCount).HasColumnType("int(11)");
-
-                entity.Property(e => e.MerBuddyType).HasColumnType("int(11)");
-
-                entity.Property(e => e.MerHelpFlag)
-                    .HasColumnType("bit(1)")
-                    .HasDefaultValueSql("b'0'");
-
-                entity.Property(e => e.MerNo)
-                    .HasColumnType("varchar(32)")
+                entity.Property(e => e.ParentNav)
+                    .HasColumnType("mediumtext")
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 
-                entity.Property(e => e.MerUserId).HasColumnType("int(11)");
-
-                entity.Property(e => e.MerchantId).HasColumnType("int(11)");
-
                 entity.Property(e => e.QrPayFlag).HasColumnType("int(11)");
 
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
 
                 entity.Property(e => e.RecordNo)
-                    .HasColumnType("varchar(100)")
+                    .HasColumnType("varchar(32)")
                     .HasCharSet("utf8")
                     .HasCollation("utf8_general_ci");
 

+ 1 - 1
PublicClass/GraphQL/IRepository.cs

@@ -1,6 +1,6 @@
 using System;
 using System.Collections.Generic;
-using MySystem.Models;
+using MySystem.PxcModels;
 
 namespace MySystem.PublicClass.GraphQL
 {

+ 1 - 1
PublicClass/GraphQL/Query.cs

@@ -1,6 +1,6 @@
 using System;
 using GraphQL.Types;
-using MySystem.Models;
+using MySystem.PxcModels;
 
 namespace MySystem.PublicClass.GraphQL
 {

+ 2 - 2
PublicClass/GraphQL/Repository.cs

@@ -1,13 +1,13 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using MySystem.Models;
+using MySystem.PxcModels;
 
 namespace MySystem.PublicClass.GraphQL
 {
     public class Repository:IRepository
     {
-        private WebCMSEntities db = new WebCMSEntities();
+        // private WebCMSEntities db = new WebCMSEntities();
 
 
     }

+ 30 - 0
PxcModels/SetMerchantTypeRecord.cs

@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.PxcModels
+{
+    public partial class SetMerchantTypeRecord
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public ulong IsRecyc { get; set; }
+        public decimal CreditAmount { get; set; }
+        public int PosSnType { get; set; }
+        public DateTime? ActDate { get; set; }
+        public DateTime? BindDate { get; set; }
+        public ulong ActStatus { get; set; }
+        public ulong BindStatus { get; set; }
+        public string MerNo { get; set; }
+        public string PosSn { get; set; }
+        public string Note { get; set; }
+        public int ToUserId { get; set; }
+        public int FromUserId { get; set; }
+    }
+}

+ 1 - 0
PxcModels/TradeRecord.cs

@@ -37,5 +37,6 @@ namespace MySystem.PxcModels
         public int MerchantId { get; set; }
         public int UserId { get; set; }
         public string RecordNo { get; set; }
+        public string ParentNav { get; set; }
     }
 }

+ 2 - 0
PxcModels/Users.cs

@@ -79,5 +79,7 @@ namespace MySystem.PxcModels
         public int Sex { get; set; }
         public string RealName { get; set; }
         public string NickName { get; set; }
+        public int CashStatus { get; set; }
+        public string CashNote { get; set; }
     }
 }

+ 85 - 0
PxcModels/WebCMSEntities.cs

@@ -134,6 +134,7 @@ namespace MySystem.PxcModels
         public virtual DbSet<PullnewSummary> PullnewSummary { get; set; }
         public virtual DbSet<RightDic> RightDic { get; set; }
         public virtual DbSet<ServiceCenter> ServiceCenter { get; set; }
+        public virtual DbSet<SetMerchantTypeRecord> SetMerchantTypeRecord { get; set; }
         public virtual DbSet<StoreBalance> StoreBalance { get; set; }
         public virtual DbSet<StoreChangeHistory> StoreChangeHistory { get; set; }
         public virtual DbSet<StoreForCode> StoreForCode { get; set; }
@@ -9126,6 +9127,75 @@ namespace MySystem.PxcModels
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<SetMerchantTypeRecord>(entity =>
+            {
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.ActDate).HasColumnType("datetime");
+
+                entity.Property(e => e.ActStatus)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'");
+
+                entity.Property(e => e.BindDate).HasColumnType("datetime");
+
+                entity.Property(e => e.BindStatus)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'");
+
+                entity.Property(e => e.CreateDate).HasColumnType("datetime");
+
+                entity.Property(e => e.CreditAmount).HasColumnType("decimal(18,2)");
+
+                entity.Property(e => e.FromUserId).HasColumnType("int(11)");
+
+                entity.Property(e => e.IsRecyc)
+                    .HasColumnType("bit(1)")
+                    .HasDefaultValueSql("b'0'");
+
+                entity.Property(e => e.MerNo)
+                    .HasColumnType("varchar(50)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Note)
+                    .HasColumnType("varchar(50)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.PosSn)
+                    .HasColumnType("varchar(50)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.PosSnType).HasColumnType("int(11)");
+
+                entity.Property(e => e.QueryCount).HasColumnType("int(11)");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort).HasColumnType("int(11)");
+
+                entity.Property(e => e.Status).HasColumnType("int(11)");
+
+                entity.Property(e => e.ToUserId).HasColumnType("int(11)");
+
+                entity.Property(e => e.UpdateDate).HasColumnType("datetime");
+            });
+
             modelBuilder.Entity<StoreBalance>(entity =>
             {
                 entity.Property(e => e.Id).HasColumnType("int(11)");
@@ -10874,6 +10944,11 @@ namespace MySystem.PxcModels
 
                 entity.Property(e => e.MerchantId).HasColumnType("int(11)");
 
+                entity.Property(e => e.ParentNav)
+                    .HasColumnType("mediumtext")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
                 entity.Property(e => e.QrPayFlag).HasColumnType("int(11)");
 
                 entity.Property(e => e.QueryCount).HasColumnType("int(11)");
@@ -13533,6 +13608,9 @@ namespace MySystem.PxcModels
 
             modelBuilder.Entity<UserTradeDaySummary>(entity =>
             {
+                entity.HasIndex(e => new { e.UserId, e.TradeMonth, e.TradeDate, e.SeoTitle, e.BrandId, e.QueryCount })
+                    .HasName("UserTradeDaySummaryIndex");
+
                 entity.Property(e => e.Id).HasColumnType("int(11)");
 
                 entity.Property(e => e.BrandId).HasColumnType("int(11)");
@@ -13739,6 +13817,13 @@ namespace MySystem.PxcModels
 
                 entity.Property(e => e.CashFreezeAmt).HasColumnType("decimal(18,2)");
 
+                entity.Property(e => e.CashNote)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.CashStatus).HasColumnType("int(11)");
+
                 entity.Property(e => e.CertFrontImage)
                     .HasColumnType("varchar(200)")
                     .HasCharSet("utf8")

+ 13 - 11
Startup.cs

@@ -183,16 +183,16 @@ namespace MySystem
             // };
             // app.UseStatusCodePages(builder => builder.Run(handler));
             app.UseStaticFiles();
-            app.UseStaticFiles(new StaticFileOptions
-            {
-                FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/static"),
-                RequestPath = "/static"
-            });
-            app.UseStaticFiles(new StaticFileOptions
-            {
-                FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/" + Configuration["Setting:Database"]),
-                RequestPath = "/" + Configuration["Setting:Database"]
-            });
+            // app.UseStaticFiles(new StaticFileOptions
+            // {
+            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/static"),
+            //     RequestPath = "/static"
+            // });
+            // app.UseStaticFiles(new StaticFileOptions
+            // {
+            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/" + Configuration["Setting:Database"]),
+            //     RequestPath = "/" + Configuration["Setting:Database"]
+            // });
             app.UseStaticFiles(new StaticFileOptions
             {
                 ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
@@ -230,8 +230,10 @@ namespace MySystem
             // SycnSpTradeService.Instance.Start(); //同步SP交易数据
             //必须打开的
 
+
             // StatService.Instance.StatUserLevel();
-            // ProfitHelper.Instance.StatProfit("202204"); //统计分润
+            // StatService.Instance.StartEverDay("2022-05-11");
+            ProfitHelper.Instance.StatProfit("202204"); //统计分润
             // StatService.Instance.ListenFluxRecord();
             // StatService.Instance.StartEverDay2();
             // TestHelper.Instance.Start();

+ 3 - 3
appsettings.json

@@ -17,10 +17,10 @@
     "Host": "http://localhost:5047/",
     "SourceHost": "http://bs.kexiaoshuang.com/",
     "Database": "KxsMainServer",
-    "SqlConnStr": "server=localhost;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=localhost;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
+    "SqlConnStr": "server=47.108.207.184;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
+    "Pxc1SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
     "SpSqlConnStr": "server=localhost;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
-    "RedisConnStr": "localhost:6379,password=,DefaultDatabase=15,poolsize=500,preheat=50,asyncPipeline=true",
+    "RedisConnStr": "localhost:6379,password=,DefaultDatabase=0,poolsize=500,preheat=50,asyncPipeline=true",
     "TendisConnStr": "localhost:6379,password=,DefaultDatabase=15,poolsize=500,preheat=50,asyncPipeline=true",
     "IOSAppVersion": "1.0.0",
     "AndroidAppVersion": "1.0.0",