DuGuYang 3 éve
szülő
commit
5f06e5201e

+ 25 - 21
AppStart/Helper/InstallmentDeductionService.cs

@@ -28,14 +28,15 @@ namespace MySystem
         {
             while (true)
             {
-                if (DateTime.Now.Hour < 20)
+                if (DateTime.Now.Day == 20 && DateTime.Now.Hour < 12)
+                // if (DateTime.Now.Hour < 20)
                 {
                     try
                     {
-                        string check = function.ReadInstance("/InstallmentDeduction/check" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
+                        string check = function.ReadInstance("/InstallmentDeduction/check" + DateTime.Now.ToString("yyyy-MM-20") + ".txt");
                         if (string.IsNullOrEmpty(check))
                         {
-                            function.WritePage("/InstallmentDeduction/", "check" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString("HH:mm:ss"));
+                            function.WritePage("/InstallmentDeduction/", "check" + DateTime.Now.ToString("yyyy-MM-20") + ".txt", DateTime.Now.ToString("HH:mm:ss"));
                             WebCMSEntities db = new WebCMSEntities();
 
                             var info = db.ToChargeBackRecord.Where(m => m.Sort > 0 && m.Status == 0 && m.ChargeType == 2).ToList();//分期扣款记录
@@ -43,6 +44,8 @@ namespace MySystem
                             {
                                 var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == items.UserId) ?? new UserAccount();
                                 var record = info.FirstOrDefault(m => m.Id == items.Id);
+                                ToChargeBackRecordSub toChargeBackRecordSub = new ToChargeBackRecordSub();
+                                ToChargeByStage toChargeByStage = new ToChargeByStage();
                                 if (userAccount.BalanceAmount >= record.ChargeAmount)
                                 {
                                     var userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord
@@ -56,8 +59,8 @@ namespace MySystem
                                         Remark = "分期扣款",
 
                                     }).Entity;
-                                    var toChargeBackRecordSub = db.ToChargeBackRecordSub.FirstOrDefault(m => m.Id == record.Sort) ?? new ToChargeBackRecordSub();
-                                    var toChargeByStage = db.ToChargeByStage.FirstOrDefault(m => m.Id == toChargeBackRecordSub.ParentId && record.TimeNumber > m.QueryCount) ?? new ToChargeByStage();
+                                    toChargeBackRecordSub = db.ToChargeBackRecordSub.FirstOrDefault(m => m.Id == record.Sort) ?? new ToChargeBackRecordSub();
+                                    toChargeByStage = db.ToChargeByStage.FirstOrDefault(m => m.Id == toChargeBackRecordSub.ParentId && m.TimeNumber > m.QueryCount) ?? new ToChargeByStage();
                                     record.Status = 1;
                                     toChargeBackRecordSub.Status = 1;
                                     toChargeByStage.QueryCount += 1;
@@ -70,26 +73,27 @@ namespace MySystem
                                         userAccount.ToChargeAmount -= record.ChargeAmount;//分期扣款
                                     }
                                     userAccount.BalanceAmount -= record.ChargeAmount;//扣减余额
-                                }
-                                if (record.Status == 1)
-                                {
-                                    var toChargeBackRecordSub = db.ToChargeBackRecordSub.FirstOrDefault(m => m.Id == record.Sort) ?? new ToChargeBackRecordSub();
-                                    var toChargeByStage = db.ToChargeByStage.FirstOrDefault(m => m.Id == toChargeBackRecordSub.ParentId && record.TimeNumber > m.QueryCount) ?? new ToChargeByStage();
-                                    if (toChargeByStage.Id > 0)
+
+                                    if (record.Status == 1)
                                     {
-                                        var toChargeBackRecordSubs = db.ToChargeBackRecordSub.FirstOrDefault(m => m.Status == 0 && m.ParentId == toChargeByStage.Id) ?? new ToChargeBackRecordSub();
-                                        if (toChargeBackRecordSubs.Id > 0)
+                                        if (toChargeByStage.Id > 0 && toChargeByStage.TimeNumber > toChargeByStage.QueryCount)
                                         {
-                                            userAccount.ToChargeAmount += toChargeBackRecordSubs.ChargeAmount;//增加预扣款
-                                            var toChargeBackRecord = db.ToChargeBackRecord.Add(new ToChargeBackRecord
+                                            var toChargeBackRecordSubs = db.ToChargeBackRecordSub.FirstOrDefault(m => m.Status == 0 && m.ParentId == toChargeByStage.Id) ?? new ToChargeBackRecordSub();
+                                            var time = DateTime.Now.ToString("yyyy-MM-20");
+                                            var date = DateTime.Parse(toChargeBackRecordSubs.StartDate.ToString()).ToString("yyyy-MM-dd");
+                                            if (toChargeBackRecordSubs.Id > 0 && time == date)
                                             {
-                                                CreateDate = DateTime.Now,
-                                                UserId = toChargeByStage.UserId,
-                                                ChargeAmount = toChargeBackRecordSubs.ChargeAmount,
-                                                ChargeType = 2,//2 分期扣款 1 普通预扣
-                                                Remark = "分期扣款",
+                                                userAccount.ToChargeAmount += toChargeBackRecordSubs.ChargeAmount;//增加预扣款
+                                                var toChargeBackRecord = db.ToChargeBackRecord.Add(new ToChargeBackRecord
+                                                {
+                                                    CreateDate = DateTime.Now,
+                                                    UserId = toChargeByStage.UserId,
+                                                    ChargeAmount = toChargeBackRecordSubs.ChargeAmount,
+                                                    ChargeType = 2,//2 分期扣款 1 普通预扣
+                                                    Remark = "分期扣款",
 
-                                            }).Entity;
+                                                }).Entity;
+                                            }
                                         }
                                     }
                                 }

+ 81 - 31
AppStart/Helper/TimeOutPosChargeService.cs

@@ -28,7 +28,7 @@ namespace MySystem
         {
             while (true)
             {
-                if (DateTime.Now.Hour < 20)
+                if (DateTime.Now.Hour < 3)
                 {
                     try
                     {
@@ -40,8 +40,8 @@ namespace MySystem
                             var date = DateTime.Now.AddDays(-60).ToString("yyyy-MM-dd 00:00:00");//过期限制时间
                             var time = DateTime.Parse(date);//过期限制时间
 
-                            DataTable dt = CustomerSqlConn.dtable("SELECT BuyUserId FROM PosMachinesTwo WHERE `Status`>-1 AND BuyUserId>0 AND BindingState=0 AND ActivationState=0 AND ScanQrTrade=0 AND RecycEndDate <'" + date + "' GROUP BY BuyUserId", MysqlConn.connstr);//扣费创客
-                            var query = db.PosMachinesTwo.Where(m => m.Status > -1 && m.BuyUserId > 0 && m.BindingState == 0 && m.ActivationState == 0 && m.ScanQrTrade == 0 && m.RecycEndDate < time).ToList();//循环过期超过60天机具
+                            DataTable dt = CustomerSqlConn.dtable("SELECT BuyUserId FROM PosMachinesTwo WHERE `Status`>-1 AND BuyUserId>0 AND BindingState=0 AND ActivationState=0 AND ScanQrTrade=0 AND RecycEndDate <'" + date + "' GROUP BY BuyUserId", MysqlConn.SqlConnStr);//扣费创客
+                            var query = db.PosMachinesTwo.Where(m => m.Status > -1 && m.BuyUserId > 0 && m.BindingState == 0 && m.ActivationState == 0 && m.ScanQrTrade == 0 && m.RecycEndDate < time).ToList();//循环过期超过15天机具
                             var brandInfo = db.KqProducts.ToList();
                             foreach (DataRow item in dt.Rows)
                             {
@@ -85,34 +85,7 @@ namespace MySystem
                             }
                             db.SaveChanges();
 
-                            var info = db.ToChargeBackRecord.Where(m => m.Status == 0).ToList();//过期机具扣费记录
-                            foreach (var items in info)
-                            {
-                                var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == items.UserId) ?? new UserAccount();
-                                var record = info.FirstOrDefault(m => m.Id == items.Id);
-                                if (userAccount.BalanceAmount >= record.ChargeAmount)
-                                {
-                                    var userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord
-                                    {
-                                        CreateDate = DateTime.Now,
-                                        UserId = items.UserId,
-                                        BeforeBalanceAmount = userAccount.BalanceAmount,
-                                        AfterBalanceAmount = userAccount.BalanceAmount - record.ChargeAmount,
-                                        ChangeAmount = record.ChargeAmount,
-                                        ChangeType = 124,//过期机具货款扣费
-                                        Remark = "扣机具货款",
-
-                                    }).Entity;
-                                    record.Status = 1;
-                                    if (userAccount.ToChargeAmount >= record.ChargeAmount)
-                                    {
-                                        userAccount.ToChargeAmount -= record.ChargeAmount;//扣减预扣款
-                                    }
-                                    userAccount.BalanceAmount -= record.ChargeAmount;//扣减余额
-                                }
-                            }
-                            db.SaveChanges();
-
+                            DoChargeAmount(db);
                         }
                     }
                     catch (Exception ex)
@@ -123,5 +96,82 @@ namespace MySystem
                 Thread.Sleep(1000);
             }
         }
+
+
+
+        public void StartDoChargeAmount()
+        {
+            Thread th = new Thread(StartDoChargeAmountReady);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void StartDoChargeAmountReady()
+        {
+            while(true)
+            {
+                WebCMSEntities db = new WebCMSEntities();
+                DoChargeAmount(db);
+                db.Dispose();
+                Thread.Sleep(600000);
+            }
+        }
+
+        public void ListenChargeAmount()
+        {
+            Thread th = new Thread(ListenChargeAmountReady);
+            th.IsBackground = true;
+            th.Start();
+        }
+
+        public void ListenChargeAmountReady()
+        {
+            while(true)
+            {
+                string content = RedisDbconn.Instance.RPop<string>("DoChargeAmountQueue");
+                if(!string.IsNullOrEmpty(content))
+                {
+                    WebCMSEntities db = new WebCMSEntities();
+                    DoChargeAmount(db, int.Parse(function.CheckInt(content)));
+                    db.Dispose();
+                }
+            }
+        }
+
+        public void DoChargeAmount(WebCMSEntities db, int UserId = 0)
+        {
+            IQueryable<ToChargeBackRecord> list = db.ToChargeBackRecord.Where(m => m.Status == 0);//过期机具扣费记录
+            if(UserId > 0)
+            {
+                list = list.Where(m => m.UserId == UserId);
+            }
+            var info = list.ToList();
+            foreach (var items in info)
+            {
+                var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == items.UserId) ?? new UserAccount();
+                var record = info.FirstOrDefault(m => m.Id == items.Id);
+                if (userAccount.BalanceAmount >= record.ChargeAmount)
+                {
+                    var userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord
+                    {
+                        CreateDate = DateTime.Now,
+                        UserId = items.UserId,
+                        BeforeBalanceAmount = userAccount.BalanceAmount,
+                        AfterBalanceAmount = userAccount.BalanceAmount - record.ChargeAmount,
+                        ChangeAmount = record.ChargeAmount,
+                        ChangeType = 124,//过期机具货款扣费
+                        Remark = "扣机具货款",
+
+                    }).Entity;
+                    record.Status = 1;
+                    if (userAccount.ToChargeAmount >= record.ChargeAmount)
+                    {
+                        userAccount.ToChargeAmount -= record.ChargeAmount;//扣减预扣款
+                    }
+                    userAccount.BalanceAmount -= record.ChargeAmount;//扣减余额
+                }
+            }
+            db.SaveChanges();
+        }
     }
 }

+ 1 - 0
Areas/Admin/Controllers/MainServer/ToChargeBackRecordController.cs

@@ -97,6 +97,7 @@ namespace MySystem.Areas.Admin.Controllers
                 Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
                 dic["UserIdMakerCode"] = userid_Users.MakerCode;
                 dic["UserIdRealName"] = userid_Users.RealName;
+                dic["UserIdMobile"] = userid_Users.Mobile;
                 dic.Remove("UserId");
                 //待扣类型
                 int ChargeType = int.Parse(dic["ChargeType"].ToString());

+ 1 - 1
Areas/Admin/Controllers/MainServer/ToChargeBackRecordSubController.cs

@@ -56,7 +56,7 @@ namespace MySystem.Areas.Admin.Controllers
         {
 
             Dictionary<string, string> Fields = new Dictionary<string, string>();
-
+            Fields.Add("ParentId", "1");
 
             string condition = " and Status>-1";
 

+ 1 - 0
Areas/Admin/Controllers/MainServer/ToChargeByStageController.cs

@@ -103,6 +103,7 @@ namespace MySystem.Areas.Admin.Controllers
                 Users userid_Users = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
                 dic["MakerCode"] = userid_Users.MakerCode;
                 dic["MakerName"] = userid_Users.RealName;
+                dic["MakerMobile"] = userid_Users.Mobile;
 
                 //扣款状态
                 int TimeNumber = int.Parse(function.CheckInt(dic["TimeNumber"].ToString()));

+ 2 - 2
Areas/Admin/Views/MainServer/ToChargeBackRecordSub/Index.cshtml

@@ -91,12 +91,12 @@
                         <button class="layui-btn" data-type="batchdel"><i
                             class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
                     }
-                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    @* @if (RightInfo.Contains("," + right + "_edit,"))
                     {
                         <button class="layui-btn" data-type="ExportExcel"><i
                             class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
 
-                    }
+                    } *@
                 </div>
 
                 <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>

+ 2 - 2
Areas/Admin/Views/MainServer/ToChargeByStage/Index.cshtml

@@ -109,12 +109,12 @@
                         <button class="layui-btn" data-type="batchdel"><i
                             class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除</button>
                     }
-                    @if (RightInfo.Contains("," + right + "_edit,"))
+                    @* @if (RightInfo.Contains("," + right + "_edit,"))
                     {
                         <button class="layui-btn" data-type="ExportExcel"><i
                             class="layui-icon layui-icon-export layuiadmin-button-btn"></i>导出</button>
 
-                    }
+                    } *@
                 </div>
 
                 <table id="LAY-list-manage" lay-filter="LAY-list-manage"></table>

+ 1 - 0
wwwroot/layuiadmin/modules_main/ToChargeByStage_Admin.js

@@ -97,6 +97,7 @@ layui.config({
             , { field: 'Status', width: 200, title: '扣款状态', sort: true }
             , { field: 'MakerCode', width: 200, title: '创客编号', sort: true }
             , { field: 'MakerName', width: 200, title: '创客姓名', sort: true }
+            , { field: 'MakerMobile', width: 200, title: '创客手机号', sort: true }
             , { field: 'TimeNumber', width: 200, title: '期数', sort: true }
             , { field: 'TotalAmount', width: 200, title: '扣款总金额', sort: true }
             , { field: 'ChargeAmount', width: 200, title: '已扣金额', sort: true }