123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287 |
- using System;
- using System.Collections.Generic;
- using System.Threading;
- using System.Linq;
- using System.Data;
- using MySystem;
- using MySystem.PxcModels;
- using Library;
- using LitJson;
- public class UserMonthFeeHelper
- {
- public readonly static UserMonthFeeHelper Instance = new UserMonthFeeHelper();
- private UserMonthFeeHelper()
- {
- }
- public void Start()
- {
- Thread th = new Thread(DoWorks);
- th.IsBackground = true;
- th.Start();
- }
- private void DoWorks()
- {
- while (true)
- {
- try
- {
- string content = RedisDbconn.Instance.RPop<string>("UserMonthFeeQueue");
- if(!string.IsNullOrEmpty(content))
- {
- if(content == "end")
- {
- RedisDbconn.Instance.AddList("PosExpiredPayQueue", "1");
- }
- else
- {
- WebCMSEntities db = new WebCMSEntities();
- DoSomething(db, int.Parse(content));
- db.Dispose();
- }
- }
- else
- {
- Thread.Sleep(60000);
- }
- }
- catch (Exception ex)
- {
- function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "创客每月月费扣款异常");
- }
- function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "创客每月月费扣款日志");
- }
- }
- public void DoSomething(WebCMSEntities db, int UserId)
- {
- DateTime Start = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01 00:00:00");
- DateTime WithoutStart = DateTime.Parse("2023-02-20 00:00:00"); //收支明细服务费记录开始时间
- UserAccount User = db.UserAccount.FirstOrDefault(m => m.Id == UserId && m.BalanceAmount > 0);
- if(User != null)
- {
- bool check = db.UserAccountRecord.Any(m => m.UserId == User.Id && m.CreateDate >= Start && m.CreateDate >= WithoutStart && m.ChangeType == 125);
- if(!check)
- {
- if(User.BalanceAmount > 10)
- {
- AlipayPayBack2Service.Instance.ChangeAccount(db, new Orders(), User.Id, -10, 125);
- }
- else
- {
- AlipayPayBack2Service.Instance.ChangeAccount(db, new Orders(), User.Id, -User.BalanceAmount, 125);
- }
- }
- }
- }
- public void Start2()
- {
- Thread th = new Thread(DoWorks2);
- th.IsBackground = true;
- th.Start();
- }
- private void DoWorks2()
- {
- while (true)
- {
- try
- {
- if(DateTime.Now.Hour == 1 && DateTime.Now < DateTime.Parse("2023-02-20 00:00:00"))
- {
- string check = function.ReadInstance("/UserMonthFee/" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
- if(string.IsNullOrEmpty(check))
- {
- function.WritePage("/UserMonthFee/", DateTime.Now.ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString("HH:mm:ss"));
- WebCMSEntities db = new WebCMSEntities();
- DoSomething2(db);
- db.Dispose();
- }
- }
- }
- catch (Exception ex)
- {
- function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "创客每月月费补扣款异常");
- }
- function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "创客每月月费补扣款日志");
- Thread.Sleep(60000);
- }
- }
- public void DoSomething2(WebCMSEntities db)
- {
- DateTime Start = DateTime.Parse("2023-01-19 00:00:00"); //收支明细服务费记录开始时间
- // DateTime ExpireDate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM") + "-01 00:00:00").AddDays(-90); //创客认证超过90天比对时间
- // //超过90天创客ID集合
- // List<int> UserIds = db.Users.Where(m => m.AuthFlag == 1 && m.AuthDate < ExpireDate).ToList().Select(m => m.Id).ToList();
- List<int> UserIds = new List<int>();
- UserIds.Add(311);
- UserIds.Add(3057);
- UserIds.Add(3061);
- UserIds.Add(12122);
- UserIds.Add(36591);
- UserIds.Add(39115);
- UserIds.Add(43435);
- UserIds.Add(47763);
- UserIds.Add(56954);
- UserIds.Add(63674);
- UserIds.Add(69804);
- UserIds.Add(70203);
- UserIds.Add(72356);
- UserIds.Add(74571);
- UserIds.Add(75261);
- UserIds.Add(79265);
- UserIds.Add(80363);
- UserIds.Add(80579);
- UserIds.Add(80639);
- UserIds.Add(80856);
- UserIds.Add(88455);
- UserIds.Add(88494);
- UserIds.Add(99635);
- UserIds.Add(100934);
- UserIds.Add(109518);
- UserIds.Add(120692);
- UserIds.Add(120896);
- UserIds.Add(122704);
- UserIds.Add(123101);
- UserIds.Add(124776);
- UserIds.Add(124822);
- UserIds.Add(124875);
- UserIds.Add(125094);
- UserIds.Add(125720);
- UserIds.Add(125969);
- UserIds.Add(126346);
- UserIds.Add(126781);
- UserIds.Add(126897);
- UserIds.Add(127469);
- UserIds.Add(127515);
- UserIds.Add(127645);
- UserIds.Add(128851);
- UserIds.Add(128969);
- UserIds.Add(129039);
- UserIds.Add(129061);
- UserIds.Add(129153);
- UserIds.Add(129220);
- UserIds.Add(129277);
- UserIds.Add(129307);
- UserIds.Add(129405);
- UserIds.Add(129434);
- UserIds.Add(129436);
- UserIds.Add(129443);
- UserIds.Add(129519);
- UserIds.Add(129659);
- UserIds.Add(129762);
- UserIds.Add(129914);
- UserIds.Add(129949);
- UserIds.Add(129980);
- UserIds.Add(130182);
- UserIds.Add(130307);
- UserIds.Add(130342);
- UserIds.Add(130546);
- UserIds.Add(130778);
- UserIds.Add(130837);
- UserIds.Add(131077);
- UserIds.Add(131879);
- UserIds.Add(132140);
- UserIds.Add(132567);
- UserIds.Add(132572);
- UserIds.Add(132936);
- UserIds.Add(133205);
- UserIds.Add(133216);
- UserIds.Add(133522);
- UserIds.Add(133649);
- UserIds.Add(133798);
- UserIds.Add(134112);
- UserIds.Add(134150);
- UserIds.Add(134307);
- UserIds.Add(134310);
- UserIds.Add(134318);
- UserIds.Add(134321);
- UserIds.Add(134522);
- UserIds.Add(134571);
- UserIds.Add(134840);
- UserIds.Add(134863);
- UserIds.Add(135039);
- UserIds.Add(135327);
- UserIds.Add(135434);
- UserIds.Add(135459);
- UserIds.Add(135475);
- UserIds.Add(135498);
- UserIds.Add(135590);
- UserIds.Add(135606);
- UserIds.Add(135719);
- UserIds.Add(135835);
- UserIds.Add(135877);
- UserIds.Add(135906);
- UserIds.Add(135924);
- UserIds.Add(136122);
- UserIds.Add(136346);
- UserIds.Add(136458);
- UserIds.Add(136581);
- UserIds.Add(136587);
- UserIds.Add(136700);
- UserIds.Add(136707);
- UserIds.Add(136980);
- UserIds.Add(137055);
- UserIds.Add(137123);
- UserIds.Add(137228);
- UserIds.Add(137313);
- UserIds.Add(137459);
- UserIds.Add(137468);
- UserIds.Add(137532);
- UserIds.Add(137617);
- UserIds.Add(138055);
- UserIds.Add(138074);
- UserIds.Add(138183);
- UserIds.Add(138275);
- UserIds.Add(138288);
- UserIds.Add(138359);
- UserIds.Add(138362);
- UserIds.Add(138440);
- UserIds.Add(138460);
- UserIds.Add(138581);
- UserIds.Add(138682);
- UserIds.Add(139109);
- UserIds.Add(139118);
- UserIds.Add(139172);
- UserIds.Add(139455);
- UserIds.Add(139517);
- UserIds.Add(139530);
- UserIds.Add(139890);
- UserIds.Add(140120);
- UserIds.Add(140274);
- UserIds.Add(140381);
- UserIds.Add(140397);
- UserIds.Add(140406);
- UserIds.Add(140522);
- UserIds.Add(140539);
- UserIds.Add(140540);
- UserIds.Add(140749);
- UserIds.Add(140753);
- UserIds.Add(140764);
- UserIds.Add(141057);
- UserIds.Add(141109);
- UserIds.Add(141406);
- UserIds.Add(141494);
- UserIds.Add(141892);
- UserIds.Add(141918);
- UserIds.Add(141951);
- UserIds.Add(141980);
- //已扣费创客ID集合
- List<int> UserAccountRecordIds = db.UserAccountRecord.Where(m => UserIds.Contains(m.UserId) && m.CreateDate >= Start && m.ChangeType == 125).ToList().Select(m => m.UserId).ToList();
- //应该扣除而未扣的创客集合
- var Users = db.UserAccount.Select(m => new { m.Id, m.BalanceAmount }).Where(m => !UserAccountRecordIds.Contains(m.Id) && UserIds.Contains(m.Id) && m.BalanceAmount >= 10).ToList();
- foreach(var User in Users)
- {
- AlipayPayBack2Service.Instance.ChangeAccount(db, new Orders(), User.Id, -10, 125); //执行扣费
- }
- }
- }
|