|
@@ -0,0 +1,213 @@
|
|
|
|
+using System;
|
|
|
|
+using System.Collections.Generic;
|
|
|
|
+using System.Linq;
|
|
|
|
+using System.Data;
|
|
|
|
+using MySystem.PxcModels;
|
|
|
|
+using Library;
|
|
|
|
+using System.Threading;
|
|
|
|
+using Microsoft.Extensions.Hosting;
|
|
|
|
+using System.Threading.Tasks;
|
|
|
|
+
|
|
|
|
+namespace MySystem
|
|
|
|
+{
|
|
|
|
+ public class HelpProfitHelper
|
|
|
|
+ {
|
|
|
|
+ public readonly static HelpProfitHelper Instance = new HelpProfitHelper();
|
|
|
|
+ private HelpProfitHelper()
|
|
|
|
+ {
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void Start()
|
|
|
|
+ {
|
|
|
|
+ Thread th = new Thread(StartFor);
|
|
|
|
+ th.IsBackground = true;
|
|
|
|
+ th.Start();
|
|
|
|
+ }
|
|
|
|
+ public void StartFor()
|
|
|
|
+ {
|
|
|
|
+ while (true)
|
|
|
|
+ {
|
|
|
|
+ if(DateTime.Now.Hour >= 2)// && DateTime.Now.Hour <= 3)
|
|
|
|
+ {
|
|
|
|
+ StatProfitEveryDay(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
|
|
|
|
+ }
|
|
|
|
+ Thread.Sleep(600000);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ public void StatProfitEveryDay(string Date)
|
|
|
|
+ {
|
|
|
|
+ string check = function.ReadInstance("/HelpProfitStat/" + Date + ".txt");
|
|
|
|
+ if (!string.IsNullOrEmpty(check))
|
|
|
|
+ {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ function.WritePage("/HelpProfitStat/", Date + ".txt", DateTime.Now.ToString());
|
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
|
+ List<HelpProfitMerTradeSummay> list = db.HelpProfitMerTradeSummay.Where(m => m.TradeDate == Date).ToList();
|
|
|
|
+ foreach(HelpProfitMerTradeSummay sub in list)
|
|
|
|
+ {
|
|
|
|
+ int MerchantId = sub.MerchantId;
|
|
|
|
+ decimal TradeAmount = sub.TradeAmount;
|
|
|
|
+ HelpProfitMerchantForUser merchant = db.HelpProfitMerchantForUser.FirstOrDefault(m => m.MerchantId == MerchantId);
|
|
|
|
+ if(merchant != null)
|
|
|
|
+ {
|
|
|
|
+ int UserId = merchant.UserId;
|
|
|
|
+ PosMerchantInfo mer = db.PosMerchantInfo.FirstOrDefault(m => m.Id == MerchantId) ?? new PosMerchantInfo();
|
|
|
|
+ MachineForMerNo merFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == mer.KqMerNo) ?? new MachineForMerNo();
|
|
|
|
+ PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == merFor.SnId) ?? new PosMachinesTwo();
|
|
|
|
+ // string Name = mer.MerchantName;
|
|
|
|
+ // if (mer.BrandId == 2)
|
|
|
|
+ // {
|
|
|
|
+ // if (Name.Contains("-"))
|
|
|
|
+ // {
|
|
|
|
+ // Name = Name.Split('-')[1];
|
|
|
|
+ // }
|
|
|
|
+ // else if (Name.Contains("_"))
|
|
|
|
+ // {
|
|
|
|
+ // Name = Name.Split('_')[1];
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ // Name = Name.Replace("个体户", "");
|
|
|
|
+ // Name = Name.Replace("个体商户", "");
|
|
|
|
+ // Name = Name.Replace("企业户", "");
|
|
|
|
+ // Name = Name.Replace("企业商户", "");
|
|
|
|
+ Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
|
|
|
|
+ Users puser = db.Users.FirstOrDefault(m => m.Id == user.ParentUserId) ?? new Users();
|
|
|
|
+ decimal money = TradeAmount * 0.0005M;
|
|
|
|
+ decimal money2 = TradeAmount * 0.00005M;
|
|
|
|
+ // UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == UserId);
|
|
|
|
+ // if (account == null)
|
|
|
|
+ // {
|
|
|
|
+ // account = db.UserAccount.Add(new UserAccount()
|
|
|
|
+ // {
|
|
|
|
+ // Id = UserId,
|
|
|
|
+ // UserId = UserId,
|
|
|
|
+ // }).Entity;
|
|
|
|
+ // db.SaveChanges();
|
|
|
|
+ // }
|
|
|
|
+ // decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
|
|
|
|
+ // account.HelpProfitBalanceAmount += money;
|
|
|
|
+ // decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
|
|
|
|
+ // UserAccountRecord accountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
|
|
|
|
+ // {
|
|
|
|
+ // CreateDate = DateTime.Now,
|
|
|
|
+ // UpdateDate = DateTime.Now,
|
|
|
|
+ // Sort = MerchantId,
|
|
|
|
+ // UserId = UserId, //创客
|
|
|
|
+ // ProductType = 101, //产品类型
|
|
|
|
+ // ChangeType = 1,
|
|
|
|
+ // ChangeAmount = money, //变更金额
|
|
|
|
+ // BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
|
|
|
|
+ // AfterBalanceAmount = AfterBalanceAmount, //变更后余额
|
|
|
|
+ // Remark = Name.Substring(0, 1) + "**:" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + "交易" + TradeAmount.ToString("f2"),
|
|
|
|
+ // }).Entity;
|
|
|
|
+ AddProfitRecord(db, user, pos, mer, TradeAmount, money, DateTime.Now.AddDays(-1), 1);
|
|
|
|
+ db.SaveChanges();
|
|
|
|
+
|
|
|
|
+ // account = db.UserAccount.FirstOrDefault(m => m.Id == user.ParentUserId);
|
|
|
|
+ // if (account == null)
|
|
|
|
+ // {
|
|
|
|
+ // account = db.UserAccount.Add(new UserAccount()
|
|
|
|
+ // {
|
|
|
|
+ // Id = user.ParentUserId,
|
|
|
|
+ // UserId = user.ParentUserId,
|
|
|
|
+ // }).Entity;
|
|
|
|
+ // db.SaveChanges();
|
|
|
|
+ // }
|
|
|
|
+ // BeforeBalanceAmount = account.BalanceAmount; //变更前余额
|
|
|
|
+ // account.HelpProfitBalanceAmount += money2;
|
|
|
|
+ // AfterBalanceAmount = account.BalanceAmount; //变更后余额
|
|
|
|
+ // accountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
|
|
|
|
+ // {
|
|
|
|
+ // CreateDate = DateTime.Now,
|
|
|
|
+ // UpdateDate = DateTime.Now,
|
|
|
|
+ // Sort = MerchantId,
|
|
|
|
+ // UserId = user.ParentUserId, //创客
|
|
|
|
+ // ProductType = 101, //产品类型
|
|
|
|
+ // ChangeType = 112,
|
|
|
|
+ // ChangeAmount = money2, //变更金额
|
|
|
|
+ // BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
|
|
|
|
+ // AfterBalanceAmount = AfterBalanceAmount, //变更后余额
|
|
|
|
+ // Remark = Name.Substring(0, 1) + "**:" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + "交易" + TradeAmount.ToString("f2"),
|
|
|
|
+ // }).Entity;
|
|
|
|
+ AddProfitRecord(db, puser, pos, mer, TradeAmount, money, DateTime.Now.AddDays(-1), 112);
|
|
|
|
+ db.SaveChanges();
|
|
|
|
+
|
|
|
|
+ // string Month = Date.Substring(0, 6);
|
|
|
|
+ // HelpProfitRebateDetail selfStat = db.HelpProfitRebateDetail.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == Month && m.TradeDate == Date);
|
|
|
|
+ // if (selfStat == null)
|
|
|
|
+ // {
|
|
|
|
+ // selfStat = db.HelpProfitRebateDetail.Add(new HelpProfitRebateDetail()
|
|
|
|
+ // {
|
|
|
|
+ // TradeMonth = Month,
|
|
|
|
+ // TradeDate = Date,
|
|
|
|
+ // UserId = UserId,
|
|
|
|
+ // }).Entity;
|
|
|
|
+ // db.SaveChanges();
|
|
|
|
+ // }
|
|
|
|
+ // selfStat.CreditRewardAmount += money;
|
|
|
|
+
|
|
|
|
+ // selfStat = db.HelpProfitRebateDetail.FirstOrDefault(m => m.UserId == user.ParentUserId && m.TradeMonth == Month && m.TradeDate == Date);
|
|
|
|
+ // if (selfStat == null)
|
|
|
|
+ // {
|
|
|
|
+ // selfStat = db.HelpProfitRebateDetail.Add(new HelpProfitRebateDetail()
|
|
|
|
+ // {
|
|
|
|
+ // TradeMonth = Month,
|
|
|
|
+ // TradeDate = Date,
|
|
|
|
+ // UserId = user.ParentUserId,
|
|
|
|
+ // }).Entity;
|
|
|
|
+ // db.SaveChanges();
|
|
|
|
+ // }
|
|
|
|
+ // selfStat.CreditRewardAmount += money2;
|
|
|
|
+ // db.SaveChanges();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ db.Dispose();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void AddProfitRecord(WebCMSEntities db, Users puser, PosMachinesTwo pos, PosMerchantInfo merchant, decimal TradeAmount, decimal Prize, DateTime yesterday, int RewardType)
|
|
|
|
+ {
|
|
|
|
+ string RewardDesc = "助利宝分润";
|
|
|
|
+ if(RewardType == 112)
|
|
|
|
+ {
|
|
|
|
+ RewardDesc = "助利宝推荐分润";
|
|
|
|
+ }
|
|
|
|
+ HelpProfitRewardDetail detail = db.HelpProfitRewardDetail.Add(new HelpProfitRewardDetail()
|
|
|
|
+ {
|
|
|
|
+ CreateDate = DateTime.Now,
|
|
|
|
+ UpdateDate = DateTime.Now,
|
|
|
|
+ TradeMonth = yesterday.ToString("yyyyMM"), //交易月
|
|
|
|
+ TradeDate = yesterday, //达标日期
|
|
|
|
+ UserId = puser.Id, //创客
|
|
|
|
+ BrandId = pos.BrandId, //品牌
|
|
|
|
+ ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
|
|
|
|
+ MerchantId = pos.BindMerchantId, //商户
|
|
|
|
+ DirectUserId = merchant.UserId, //商户直属人
|
|
|
|
+ SnNo = pos.PosSn, //SN号
|
|
|
|
+ MerNo = merchant.KqMerNo, //渠道商户号
|
|
|
|
+ SnType = pos.PosSnType, //机具类型
|
|
|
|
+ StandardDate = pos.ActivationTime, //商户的激活日期
|
|
|
|
+ SnStoreId = pos.StoreId, //SN仓库
|
|
|
|
+ MerBuddyType = puser.MerchantType, //商户创客类型
|
|
|
|
+ RewardType = RewardType, //奖励类型
|
|
|
|
+ RewardTips = RewardDesc, //奖励描述
|
|
|
|
+ CreditTradeAmt = TradeAmount, //贷记卡交易总金额
|
|
|
|
+ CreditRewardAmount = Prize, //贷记卡交易奖励金额
|
|
|
|
+ RewardDesc = RewardDesc, //奖励描述
|
|
|
|
+ }).Entity;
|
|
|
|
+ db.HelpProfitReward.Add(new HelpProfitReward()
|
|
|
|
+ {
|
|
|
|
+ CreateDate = DateTime.Now,
|
|
|
|
+ UpdateDate = DateTime.Now,
|
|
|
|
+ TradeMonth = yesterday.ToString("yyyyMM"), //交易月
|
|
|
|
+ TradeDate = DateTime.Now, //达标日期
|
|
|
|
+ UserId = puser.Id, //创客
|
|
|
|
+ BrandId = pos.BrandId, //品牌
|
|
|
|
+ RewardType = RewardType, //奖励类型
|
|
|
|
+ CreditTradeAmt = TradeAmount, //贷记卡交易总金额
|
|
|
|
+ CreditRewardAmount = Prize, //贷记卡交易奖励金额
|
|
|
|
+ RewardDesc = RewardDesc, //奖励描述
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|