99 lines
5.0 KiB
C#
99 lines
5.0 KiB
C#
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();
|
||
}
|
||
}
|
||
}
|