ComplianceServer/oldcode/Core.InitUsePrice/Program.cs

99 lines
5.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using CRM.Core.BLL.Wx;
using CRM.Core.Model.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Core.InitUsePrice
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("开始初始化数据哦!");
WX_SzzyOrderDeposit_BL depositbl = new WX_SzzyOrderDeposit_BL();
Wx_SzzyOrderPayUseLog_BL logbl = new Wx_SzzyOrderPayUseLog_BL();
using (zxdContext db = new zxdContext())
{
var xx = db.WX_SZZYORDER.FirstOrDefault();
List<Wx_SzzyOrderPayUseLog> loglist = new List<Wx_SzzyOrderPayUseLog>();
//第一步:老的订金使用数据进行数据初始化
int[] sx = { 0, 6 };
DateTime time = Convert.ToDateTime("2022-05-16 19:20:00");
var list1 = db.WX_SzzyOrderDeposit.Where(m => m.isdelete == 0 && m.auditstatus == 1 && sx.Contains(m.isbu) && m.audittime < time).ToList();//人工补充的老数据需要进行处理
var orderPayList = db.WX_SzzyOrderPay.Where(m => m.isdelete == 0 && m.auditstatus == 1).ToList();
var refundList = db.WX_SzzyOrderRefund.Where(m => m.isdelete == 0 && m.auditstatus == 1).ToList();
int i = 0;
Dictionary<long, decimal> leijituiquan = new Dictionary<long, decimal>();
foreach (var pay in list1)
{
i++;
pay.lastprice = 0;
pay.useprice = pay.payprice;
var log = new Wx_SzzyOrderPayUseLog(pay.resid, null, pay.id, pay.paytype, pay.paytypename, pay.payno, pay.payprice.Value, pay.audittime ?? DateTime.Now, pay.channel.Value, 1, 0, "到账审核-初始化");
loglist.Add(log);
decimal orderid = pay.id;
var orderpay = orderPayList.FirstOrDefault(m => m.payno == pay.payno && m.auditstatus == 1 && m.isdelete == 0 && m.depositid == null);
if (orderpay != null)//表明无订单使用记录,直接跳过
{
orderid = orderpay.orderid;
var log2 = new Wx_SzzyOrderPayUseLog(pay.resid, orderpay.orderid, pay.id, pay.paytype, pay.paytypename, pay.payno, -pay.payprice.Value, pay.audittime ?? DateTime.Now, pay.channel.Value, 2, 0, "金额使用-初始化");
loglist.Add(log2);
}
var reffund = refundList.Where(m => m.orderid == orderid && m.isdelete == 0 && m.auditstatus == 1).ToList();//退款行为
foreach (var item in reffund)
{
decimal leijituiE = 0;//这个退款累计退了多少钱
if (leijituiquan.ContainsKey(item.id))
{
leijituiE = leijituiquan[item.id];
}
decimal cantui = item.refundprice - leijituiE;//本单退款还能退的钱
if (cantui == 0)
{
continue;//没有可退金额
}
if (pay.useprice == 0)
continue;
decimal refundprice = cantui;
if (cantui > pay.useprice)//如果退款金额过大,表明退款多笔退款金额
refundprice = pay.useprice ?? 0;
else
refundprice = cantui;
if (leijituiquan.ContainsKey(item.id))
{
leijituiquan[item.id] = leijituiquan[item.id] + refundprice;
}
else
{
leijituiquan.Add(item.id, refundprice);//记录当前退款金额
}
pay.useprice -= refundprice;
int? orderid22 = null;
if (orderpay != null)
{
orderid22 = orderpay.orderid;
}
var log3 = new Wx_SzzyOrderPayUseLog(pay.resid, orderid22, pay.id, pay.paytype, pay.paytypename, pay.payno, -refundprice, item.audittime ?? DateTime.Now, pay.channel.Value, 6, 0, "退款-初始化");
loglist.Add(log3);
}
depositbl.Update(pay);//修改订金信息
Console.WriteLine("完成的初始化" + i + "" + pay.id);
}
Console.WriteLine("====================导入数据库==================");
logbl.BulkInsertToMysql("Wx_SzzyOrderPayUseLog", loglist);
//depositbl.BulkInsertToMysql("wx_szzyorderdeposit_22", list1);
}
Console.WriteLine("====================全部执行ok了==================");
Console.ReadLine();
}
}
}