12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Data;
- using MySystem.Models;
- using Library;
- using System.Threading;
- using Microsoft.Extensions.Hosting;
- using System.Threading.Tasks;
- namespace MySystem
- {
- public class HelpProfitPreMerchantHelper
- {
- public readonly static HelpProfitPreMerchantHelper Instance = new HelpProfitPreMerchantHelper();
- private HelpProfitPreMerchantHelper()
- {
- }
- // A:前一天剩余数量
- // B:第二天释放助利宝商户数量
- // C(20):每次递减数量
- // D(100):释放助利宝商户最大数量
- // B = A - C < C ? D : A - C;
-
- public void Start()
- {
- Thread th = new Thread(StartFor);
- th.IsBackground = true;
- th.Start();
- }
- public void StartFor()
- {
- while (true)
- {
- if(DateTime.Now.Hour >= 15 && DateTime.Now.Hour <= 16)
- {
- StatEveryDay(DateTime.Now.ToString("yyyyMMdd"));
- }
- Thread.Sleep(600000);
- }
- }
- public void StatEveryDay(string Date)
- {
- string check = function.ReadInstance("/HelpProfitResetMerchant/" + Date + ".txt");
- if (!string.IsNullOrEmpty(check))
- {
- return;
- }
- function.WritePage("/HelpProfitResetMerchant/", Date + ".txt", DateTime.Now.ToString());
- DateTime start = DateTime.Parse(Date.Substring(0, 4) + "-" + Date.Substring(4, 2) + "-" + Date.Substring(6, 2) + " 00:00:00");
- string Month1 = start.AddMonths(-1).ToString("yyyyMM");
- string Month2 = start.AddMonths(-2).ToString("yyyyMM");
- string Month3 = start.AddMonths(-3).ToString("yyyyMM");
- OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
- HelpProfitRelease obj = new HelpProfitRelease();
- string JsonParam = function.ReadInstance("/PublicParam/HelpProfitRelease.txt"); //json参数文件
- if(string.IsNullOrEmpty(JsonParam))
- {
- obj.MerBrandId = "1";
- obj.GetCount = 100;
- obj.ExpandCount = 20;
- obj.SourceCount = 100;
- function.WritePage("/PublicParam/", "HelpProfitRelease.txt", Newtonsoft.Json.JsonConvert.SerializeObject(obj));
- }
- else
- {
- obj = Newtonsoft.Json.JsonConvert.DeserializeObject<HelpProfitRelease>(JsonParam);
- }
- int ExpandCount = obj.ExpandCount; //膨胀数量
- int SourceCount = obj.SourceCount; //原始数量
- int GetCount = obj.GetCount; //当前实际发放数量
- string BrandId = obj.MerBrandId; //允许释放的品牌
- List<int> HelpProfitMerchantIds = RedisDbconn.Instance.GetList<int>("HelpProfitMerchantIds", 1, SourceCount);
- int CurrentLastCount = HelpProfitMerchantIds.Count; //前一天剩余数量
- //计算第二天释放助利宝商户数量
- GetCount = CurrentLastCount - ExpandCount < ExpandCount ? SourceCount : CurrentLastCount - ExpandCount;
- obj.GetCount = GetCount;
- function.WritePage("/PublicParam/", "HelpProfitRelease.txt", Newtonsoft.Json.JsonConvert.SerializeObject(obj));
- RedisDbconn.Instance.Clear("HelpProfitMerchantIds");
- DataTable dt = OtherMySqlConn.dtable("SELECT MerchantId,sum FROM( SELECT MerchantId,SUM(TradeAmount) sum FROM PosMerchantTradeSummay WHERE Id>=3809083 and MerchantId not in (select MerchantId from HelpProfitMerIds) AND BrandId in (" + BrandId + ") AND TradeMonth in ('" + Month1 + "','" + Month2 + "','" + Month3 + "') GROUP BY MerchantId)a WHERE a.sum/3 >= 20000 and a.sum/3 <= 60000 limit " + GetCount);
- foreach(DataRow dr in dt.Rows)
- {
- RedisDbconn.Instance.AddList("HelpProfitMerchantIds", int.Parse(function.CheckInt(dr["MerchantId"].ToString())));
- }
- }
- }
- }
|