public string ShareProfit(string id = "", decimal?money = 0) { //取出分润比例Type=0:信用卡 var bsp = ct.BusinessShareProfit.Where(o => o.Type == 0).FirstOrDefault(); var Id = int.Parse(id); //普通用户 var user1 = ct.Users.Where(o => o.Id == Id).FirstOrDefault(); if (user1 != null) { #region 生成订单 OrderProfitLog op = new OrderProfitLog(); OrdersPayOnly opo = new OrdersPayOnly(); var logType = "1"; decimal? bspnum = 0; //生成订单号 var Tnum = "FX" + MD5Helper.getMd5Hash(DateTime.Now.ToString()); try { //添加订单 opo.TNum = Tnum; opo.AddTime = DateTime.Now; opo.IsDel = 0; ct.OrdersPayOnly.Add(opo); ct.SaveChanges(); } catch (Exception e) { Log.LoggerHelper.Error("添加订单失败,原因:" + e); } #endregion //查找VIP var user = ct.Users.Where(o => o.Id == user1.MyPId && o.IsVip == 1).FirstOrDefault(); if (user != null) { GetAllSysAgentList(user); //生成分润日志 op.AddTime = DateTime.Now; op.IsDel = 0; op.UId = user.Id; op.TNum = Tnum; op.UserName = user.UserName; op.OrderType = 22; /*(22:分销分润)*/ op.Amoney = decimal.Parse(money.ToString()); #region VIP用户分润 try { logType = "1"; op.LogType = byte.Parse(logType); op.Tier = 0; bspnum = bsp.S0_0; op.Agent = 0; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); //对用户的账户进行操作 user.Amount = user.Amount + op.Profit; user.Sp_Amount = user.Sp_Amount + op.Profit; ct.SaveChanges(); } catch (Exception e) { Log.LoggerHelper.Error("添加VIP用户分润日志失败,原因:" + e); } #endregion //用户的代理商 var Agent = ct.SysAgent.Where(o => o.Id == user.Agent).FirstOrDefault(); if (Agent != null) { logType = "2"; op.LogType = byte.Parse(logType); op.Tier = Agent.Tier; op.Agent = user.Agent; //代理商一级分润 if (Agent.Tier == 4) { #region 分销商S1_4 try { bspnum = bsp.S1_4; //对代理商的账户进行操作 var S1_4 = ct.Users.Where(o => o.Id == Agent.MyUId).FirstOrDefault(); if (S1_4 != null) { op.UserName = user.UserName; op.UId = S1_4.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); S1_4.Amount = S1_4.Amount + op.Profit; S1_4.Sp_Amount = S1_4.Sp_Amount + op.Profit; ct.SaveChanges(); //同级代理 #region 级分润 var tagent = ct.SysAgent.Where(o => o.Id == Agent.SameAgent).FirstOrDefault(); if (tagent != null) { var S1_1 = ct.Users.Where(o => o.Id == tagent.MyUId).FirstOrDefault(); if (S1_1 != null) { bspnum = bsp.S1_1; op.Tier = tagent.Tier; op.UserName = S1_4.UserName; op.UId = S1_1.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); //对用户的账户进行操作 S1_1.Amount = S1_1.Amount + op.Profit; S1_1.Sp_Amount = S1_1.Sp_Amount + op.Profit; ct.SaveChanges(); } } #endregion } } catch (Exception e) { Log.LoggerHelper.Error("添加(S1_4)代理商一级分润日志失败,原因:" + e); } #endregion } else if (Agent.Tier == 5) { bspnum = bsp.S1_5; //对代理商的账户进行操作 var S1_5 = ct.Users.Where(o => o.Id == Agent.MyUId).FirstOrDefault(); if (S1_5 != null) { #region 分销商S1_5 try { op.UserName = user.UserName; op.UId = S1_5.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); S1_5.Amount = S1_5.Amount + op.Profit; S1_5.Sp_Amount = S1_5.Sp_Amount + op.Profit; ct.SaveChanges(); //同级代理 #region 级分润 var tagent = ct.SysAgent.Where(o => o.Id == Agent.SameAgent).FirstOrDefault(); if (tagent != null) { var S1_1 = ct.Users.Where(o => o.Id == tagent.MyUId).FirstOrDefault(); if (S1_1 != null) { bspnum = bsp.S1_1; op.Tier = tagent.Tier; op.UserName = S1_5.UserName; op.UId = S1_1.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); //对用户的账户进行操作 S1_1.Amount = S1_1.Amount + op.Profit; S1_1.Sp_Amount = S1_1.Sp_Amount + op.Profit; ct.SaveChanges(); } } #endregion } catch (Exception e) { Log.LoggerHelper.Error("添加(S1_5)代理商一级分润日志失败,原因:" + e); } #endregion //上级代理商 var upAgent = ct.SysAgent.Where(o => o.Id == Agent.AgentID).FirstOrDefault(); if (upAgent != null) { //判断代理商的层级 if (upAgent.Tier == 4) { #region 分销商S2_5_4 try { op.Tier = upAgent.Tier; op.Agent = upAgent.Id; bspnum = bsp.S2_5_4; //对代理商的账户进行操作 var S2_5_4 = ct.Users.Where(o => o.Id == upAgent.MyUId).FirstOrDefault(); if (S2_5_4 != null) { op.UserName = S1_5.UserName; op.UId = S2_5_4.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); S2_5_4.Amount = S2_5_4.Amount + op.Profit; S2_5_4.Sp_Amount = S2_5_4.Sp_Amount + op.Profit; ct.SaveChanges(); //同级代理 #region 级分润 var uptagent = ct.SysAgent.Where(o => o.Id == upAgent.SameAgent).FirstOrDefault(); if (uptagent != null) { var S1_1 = ct.Users.Where(o => o.Id == uptagent.MyUId).FirstOrDefault(); if (S1_1 != null) { bspnum = bsp.S1_1; op.Tier = uptagent.Tier; op.UserName = S2_5_4.UserName; op.UId = S1_1.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); //对用户的账户进行操作 S1_1.Amount = S1_1.Amount + op.Profit; S1_1.Sp_Amount = S1_1.Sp_Amount + op.Profit; ct.SaveChanges(); } } #endregion } } catch (Exception e) { Log.LoggerHelper.Error("添加(S2_5_4)代理商二级分润日志失败,原因:" + e); } #endregion } } } } else if (Agent.Tier == 6) { bspnum = bsp.S1_6; var S1_6 = ct.Users.Where(o => o.Id == Agent.MyUId).FirstOrDefault(); if (S1_6 != null) { #region 分销商S1_6 try { op.UserName = user.UserName; op.UId = S1_6.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); S1_6.Amount = S1_6.Amount + op.Profit; S1_6.Sp_Amount = S1_6.Sp_Amount + op.Profit; ct.SaveChanges(); //同级代理 #region 级分润 var tagent = ct.SysAgent.Where(o => o.Id == Agent.SameAgent).FirstOrDefault(); if (tagent != null) { var S1_1 = ct.Users.Where(o => o.Id == tagent.MyUId).FirstOrDefault(); if (S1_1 != null) { bspnum = bsp.S1_1; op.Tier = tagent.Tier; op.UserName = S1_6.UserName; op.UId = S1_1.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); //对用户的账户进行操作 S1_1.Amount = S1_1.Amount + op.Profit; S1_1.Sp_Amount = S1_1.Sp_Amount + op.Profit; ct.SaveChanges(); } } #endregion } catch (Exception e) { Log.LoggerHelper.Error("添加(S1_6)分销商一级分润日志失败,原因:" + e); } #endregion //上级代理商 var upAgent = ct.SysAgent.Where(o => o.Id == Agent.AgentID).FirstOrDefault(); if (upAgent != null) { //判断代理商的层级 if (upAgent.Tier == 4) { op.Tier = upAgent.Tier; op.Agent = upAgent.Id; bspnum = bsp.S2_6_4; //对代理商的账户进行操作 var S2_6_4 = ct.Users.Where(o => o.Id == upAgent.MyUId).FirstOrDefault(); if (S2_6_4 != null) { #region 分销商S2_6_4 try { op.UserName = S1_6.UserName; op.UId = S2_6_4.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); S2_6_4.Amount = S2_6_4.Amount + op.Profit; S2_6_4.Sp_Amount = S2_6_4.Sp_Amount + op.Profit; ct.SaveChanges(); //同级代理 #region 级分润 var uptagent = ct.SysAgent.Where(o => o.Id == upAgent.SameAgent).FirstOrDefault(); if (uptagent != null) { var S1_1 = ct.Users.Where(o => o.Id == uptagent.MyUId).FirstOrDefault(); if (S1_1 != null) { bspnum = bsp.S1_1; op.Tier = uptagent.Tier; op.UserName = S2_6_4.UserName; op.UId = S1_1.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); //对用户的账户进行操作 S1_1.Amount = S1_1.Amount + op.Profit; S1_1.Sp_Amount = S1_1.Sp_Amount + op.Profit; ct.SaveChanges(); } } #endregion } catch (Exception e) { Log.LoggerHelper.Error("添加(S2_6_4)分销商二级分润日志失败,原因:" + e); } #endregion } } else if (upAgent.Tier == 5) { op.Tier = upAgent.Tier; op.Agent = upAgent.Id; bspnum = bsp.S2_6_5; //对代理商的账户进行操作 var S2_6_5 = ct.Users.Where(o => o.Id == upAgent.MyUId).FirstOrDefault(); if (S2_6_5 != null) { #region 分销商S2_6_5 try { op.UserName = S1_6.UserName; op.UId = S2_6_5.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); S2_6_5.Amount = S2_6_5.Amount + op.Profit; S2_6_5.Sp_Amount = S2_6_5.Sp_Amount + op.Profit; ct.SaveChanges(); //同级代理 #region 级分润 var uptagent = ct.SysAgent.Where(o => o.Id == upAgent.SameAgent).FirstOrDefault(); if (uptagent != null) { var S1_1 = ct.Users.Where(o => o.Id == uptagent.MyUId).FirstOrDefault(); if (S1_1 != null) { bspnum = bsp.S1_1; op.Tier = uptagent.Tier; op.UserName = S2_6_5.UserName; op.UId = S1_1.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); //对用户的账户进行操作 S1_1.Amount = S1_1.Amount + op.Profit; S1_1.Sp_Amount = S1_1.Sp_Amount + op.Profit; ct.SaveChanges(); } } #endregion } catch (Exception e) { Log.LoggerHelper.Error("添加(S2_6_5)分销商二级分润日志失败,原因:" + e); } #endregion //上级代理商 var up1Agent = ct.SysAgent.Where(o => o.Id == upAgent.AgentID).FirstOrDefault(); if (up1Agent != null) { op.Tier = up1Agent.Tier; op.Agent = up1Agent.AgentID; bspnum = bsp.S3_6_5_4; //对代理商的账户进行操作 var S3_6_5_4 = ct.Users.Where(o => o.Id == up1Agent.MyUId).FirstOrDefault(); if (S3_6_5_4 != null) { try { op.UserName = S3_6_5_4.UserName; op.UId = S3_6_5_4.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); S3_6_5_4.Amount = S3_6_5_4.Amount + op.Profit; S3_6_5_4.Sp_Amount = S3_6_5_4.Sp_Amount + op.Profit; ct.SaveChanges(); //同级代理 #region 级分润 var up1tagent = ct.SysAgent.Where(o => o.Id == up1Agent.SameAgent).FirstOrDefault(); if (up1tagent != null) { var S1_1 = ct.Users.Where(o => o.Id == up1tagent.MyUId).FirstOrDefault(); if (S1_1 != null) { bspnum = bsp.S1_1; op.Tier = up1tagent.Tier; op.UserName = S3_6_5_4.UserName; op.UId = S1_1.Id; op.Profit = decimal.Parse((money * bspnum).ToString()); ct.OrderProfitLog.Add(op); //对用户的账户进行操作 S1_1.Amount = S1_1.Amount + op.Profit; S1_1.Sp_Amount = S1_1.Sp_Amount + op.Profit; ct.SaveChanges(); } } #endregion } catch (Exception e) { Log.LoggerHelper.Error("添加(S3_6_5_4)分销商三级分润日志失败,原因:" + e); } } } } } } } } } } else { return("该用户不是Vip不能参与分润!"); } } return("分润成功!"); }
/// <summary> /// 补单 /// </summary> /// <returns></returns> public ActionResult OrdersRepair(FastOrder FastOrder) { if (!FastOrder.Id.IsNullOrEmpty()) { FastOrder = Entity.FastOrder.FirstOrDefault(n => n.Id == FastOrder.Id); } if (FastOrder == null) { ViewBag.ErrorMsg = "订单不存在"; return(View("Error")); } if (FastOrder.PayState != 0) { ViewBag.ErrorMsg = "不符合补单规则"; return(View("Error")); } if (FastOrder.State == 0) { FastOrder.State = 1; Entity.SaveChanges(); } if (this.Request.QueryString["Confirm"] == "true") { OrdersPayOnly ConfirmOrdersPayOnly = Entity.OrdersPayOnly.Where(o => o.TNum == FastOrder.TNum).FirstOrDefault(); Entity.OrdersPayOnly.DeleteObject(ConfirmOrdersPayOnly); Entity.SaveChanges(); } OrdersPayOnly OrdersPayOnly = Entity.OrdersPayOnly.Where(o => o.TNum == FastOrder.TNum).FirstOrDefault(); if (OrdersPayOnly != null) { ViewBag.Msg = "入账流程未完成,是否先结束流程?"; return(View("Confirm")); } FastPayWay FastPayWay = Entity.FastPayWay.FirstOrNew(n => n.Id == FastOrder.PayWay); if (FastPayWay.State.IsNullOrEmpty()) { ViewBag.ErrorMsg = "支付通道已关闭"; return(View("Error")); } //补单查询 Users Users = Entity.Users.FirstOrDefault(o => o.Id == FastOrder.UId); Equipment Equipment = Entity.Equipment.FirstOrDefault(e => e.No == Users.ENo); if (Equipment == null) { ViewBag.ErrorMsg = "支付通道已关闭"; return(View("Error")); } string keys = Equipment.Keys; string dataJosn = "{\"token\":\"" + Users.Token + "\",\"tnum\":\"" + FastOrder.TNum + "\"}"; string data_data = HttpUtility.UrlEncode(LokFuEncode.LokFuAPIEncode(dataJosn, keys)); string Url = ConfigurationManager.AppSettings["ApiPath"].ToString() + "/API/FastOrderQuery/"; string PostData = string.Format("data={0}&eno={1}&code=0000", data_data, Users.ENo); string result = Utils.PostRequest(Url, PostData, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(result); string statename = ""; //返回成功 if (JS["code"].ToString() == "0000") { string ret_data = JS["data"].ToString(); result = LokFuEncode.LokFuAPIDecode(ret_data, keys); JS = (JObject)JsonConvert.DeserializeObject(result); if (JS["state"].ToString() == "0" || JS["state"].ToString() == "1") { if (JS["state"].ToString() == "0") { statename = "取消交易"; } else { statename = "待支付"; } ViewBag.ErrorMsg = "补单失败!状态:" + statename; return(View("Error")); } else { if (JS["state"].ToString() == "2") { statename = "待结算"; } else { statename = "已结算"; } ViewBag.Msg = "补单成功!状态:" + statename; return(View("Succeed")); } } else { ViewBag.ErrorMsg = JS["msg"].ToString(); return(View("Error")); } } catch (Exception) { ViewBag.ErrorMsg = "补单失败!"; return(View("Error")); } }
//分润算法 public string ShareProfit1(string id = "", decimal?money = 0) { //取出分润比例Type=0:信用卡 var bsp = ct.BusinessShareProfit.Where(o => o.Type == 0).FirstOrDefault(); var Id = int.Parse(id); //普通用户 var user1 = ct.Users.Where(o => o.Id == Id).FirstOrDefault(); if (user1 != null) { #region 生成订单 OrdersPayOnly opo = new OrdersPayOnly(); //生成订单号 var Tnum = "FX" + MD5Helper.getMd5Hash(DateTime.Now.ToString()); try { //添加订单 opo.TNum = Tnum; opo.AddTime = DateTime.Now; opo.IsDel = 0; ct.OrdersPayOnly.Add(opo); ct.SaveChanges(); } catch (Exception e) { Log.LoggerHelper.Error("添加订单失败,原因:" + e.Message); } #endregion try { List <SysAgentList> list = GetAllSysAgentList(user1); if (list.Count() > 0) { foreach (SysAgentList i in list) { OrderProfitLog op = new OrderProfitLog(); //生成分润日志 op.AddTime = DateTime.Now; op.IsDel = 0; op.UId = i.Id; op.TNum = Tnum; op.UserName = user1.UserName; op.OrderType = 22; /*(22:分销分润)*/ op.Amoney = decimal.Parse(money.ToString()); op.Profit = decimal.Parse((money * i.Rat).ToString()); ct.OrderProfitLog.Add(op); var user = ct.Users.Where(o => o.Id == i.Id).FirstOrDefault(); user.Amount = user.Amount + op.Profit; user.Sp_Amount = user.Sp_Amount + op.Profit; //同级分润 if (i.Equative != 0) { var euser = ct.Users.Where(o => o.Id == i.Equative).FirstOrDefault(); op = new OrderProfitLog(); //生成分润日志 op.AddTime = DateTime.Now; op.IsDel = 0; op.UId = euser.Id; op.TNum = Tnum; op.UserName = user1.UserName; op.OrderType = 22; /*(22:分销分润)*/ op.Amoney = decimal.Parse(money.ToString()); op.Profit = decimal.Parse((money * i.Rat * bsp.S1_1).ToString()); ct.OrderProfitLog.Add(op); euser.Amount = euser.Amount + op.Profit; euser.Sp_Amount = euser.Sp_Amount + op.Profit; } ct.SaveChanges(); } } else { return("该用户没有上级!"); } } catch (Exception e) { Log.LoggerHelper.Error("添加分润失败,原因:" + e.Message); return("分润失败!"); } } return("分润成功!"); }
public ActionResult Save(OrderCash OrderCash) { OrderCash baseOrderCash = Entity.OrderCash.FirstOrDefault(n => n.Id == OrderCash.Id); string tnum = "TK" + baseOrderCash.OId; if (!this.GetRuningState(tnum)) { this.SetRuningState(tnum); try { OrdersPayOnly OPO = new OrdersPayOnly(); OPO.TNum = tnum; OPO.AddTime = DateTime.Now; Entity.OrdersPayOnly.AddObject(OPO); Entity.SaveChanges(); } catch (Exception) { ViewBag.ErrorMsg = "重复入帐!"; return(View("Error")); } //return null; if (baseOrderCash.OrderState == 2 && baseOrderCash.PayState == 3) { var OrderCashLog = new OrderCashLog() { AddTime = DateTime.Now, AdminId = this.AdminUser.Id, AdminName = this.AdminUser.TrueName, TNum = baseOrderCash.OId, Remark = string.Empty, LogType = 3, }; this.Entity.OrderCashLog.AddObject(OrderCashLog); baseOrderCash.RefundTime = DateTime.Now; baseOrderCash.PayState = 4; Orders Orders = Entity.Orders.FirstOrDefault(n => n.TNum == baseOrderCash.OId); Orders.PayState = 4; //退款到余额 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Id == baseOrderCash.UId); //帐户变动记录 int USERSID = baseUsers.Id; string TNUM = Orders.TNum; decimal PAYMONEY = baseOrderCash.Amoney; string SP_Ret = Entity.SP_UsersMoney(USERSID, TNUM, PAYMONEY, 6, ""); if (SP_Ret != "3") { Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", USERSID, TNUM, 6, PAYMONEY, SP_Ret), "SP_UsersMoney"); } //======分润====== baseOrderCash = baseOrderCash.PayAgent(Entity, 2); Orders.AgentPayGet = (decimal)baseOrderCash.AgentCashGet; Entity.SaveChanges(); Orders.SendMsg(Entity);//发送消息类 //T0时增加配额 if (baseOrderCash.TrunType == 0) { decimal Money = baseOrderCash.Amoney - (decimal)baseOrderCash.UserRate; DateTime Today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); TaskTimeSet TaskTimeSet = Entity.TaskTimeSet.FirstOrDefault(n => n.ODate == Today); if (TaskTimeSet != null) { if (TaskTimeSet.UsedMoney >= Money) { TaskTimeSet.UsedMoney -= Money; } else { TaskTimeSet.UsedMoney = 0; } Entity.SaveChanges(); } } } BaseRedirect(); } return(null); }