public ActionResult FastSet() { FastConfig FastConfig = Entity.FastConfig.FirstOrDefault(); ViewBag.FastConfig = FastConfig; ViewBag.FastSetSave = this.checkPower("FastSetSave"); return(View()); }
public void FastSetSave(FastConfig FastConfig) { FastConfig.UserCost = FastConfig.UserCost / 1000; FastConfig baseFastConfig = Entity.FastConfig.FirstOrDefault(); baseFastConfig = Request.ConvertRequestToModel <FastConfig>(baseFastConfig, FastConfig); Entity.SaveChanges(); Response.Redirect("/Manage/SysSet/FastSet.html"); }
public void Execute(IJobExecutionContext context) { string JobName = "FastProfit"; string CanRun = ConfigurationManager.AppSettings["Run" + JobName].ToString(); if (CanRun == "true") { if (!IsRun) { LokFuEntity Entity = new LokFuEntity(); IsRun = true; try { Log.Write(JobName + "任务开始执行!"); //------------------------------------------------------- #region 任务主体 FastConfig FastConfig = Entity.FastConfig.FirstOrNew(); DateTime eDate = DateTime.Now.AddSeconds(-10); //只读取用户结算10s后的数据 //用户已结算成功,且结算时间小于10秒前,分润方式为自动分润,代理商未分润 IList <FastOrder> List = Entity.FastOrder.Where(n => n.AgentWay == 1 && n.AgentState == 0 && n.UserState == 1 && n.UserTime < eDate).ToList(); if (FastConfig.AgentWay == 1) { foreach (var p in List) { p.PayAgent(Entity, 1); } } else { Log.WriteLog("当前为人工结算!", JobName); } #endregion //------------------------------------------------------- Log.Write(JobName + "任务执行结束![共计" + List.Count + "条]"); } catch (Exception Ex) { Log.Write(JobName + "任务执行过程出错!", Ex); } IsRun = false; } else { Log.Write(JobName + "任务还在执行中!"); } } }
public static FastUser AddMer(FastUser FastUser, FastConfig FastConfig, LokFuEntity Entity) { if (FastUser.Card.IsNullOrEmpty()) { //未绑定银行卡 return(FastUser); } //批量处理所有接口 IList <FastPayWay> FastPayWayList = Entity.FastPayWay.Where(n => n.State == 1).OrderBy(n => n.Sort).ToList(); foreach (var p in FastPayWayList) { try { AddMer(FastUser, p, FastConfig, Entity); } catch (Exception e) { Utils.WriteLog("/FastPay/AddMer" + e.Message + e.StackTrace, "bug", "API"); } } return(FastUser); }
public void Post() { string Data = DataObj.GetData(); if (!Data.IsNullOrEmpty()) { JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[Receipt]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } var Users = new Users(); Users = JsonToObject.ConvertJsonToModel(Users, json); Users BaseUsers = Entity.Users.FirstOrDefault(o => o.Token == Users.Token); if (BaseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (BaseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (BaseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } //if (BaseUsers.MiBao != 1)//未设置支付密码 //{ // DataObj.OutError("2008"); // return; //} //获取直通车配置及用户直通车配置 bool IsBindingFast = true; FastUser FastUser = Entity.FastUser.FirstOrDefault(n => n.UId == BaseUsers.Id); if (FastUser == null) { //开通帐户 FastUser = new FastUser(); FastUser.UId = BaseUsers.Id; FastUser.TrueName = BaseUsers.TrueName; FastUser.CardId = BaseUsers.CardId; FastUser.AddTime = DateTime.Now; Entity.FastUser.AddObject(FastUser); Entity.SaveChanges(); } if (FastUser.Card.IsNullOrEmpty()) { IsBindingFast = false; } else { FastConfig FastConfig = Entity.FastConfig.FirstOrNew(); //=========================================================== //这里要处理商户入驻 BusFastPay.AddMer(FastUser, FastConfig, this.Entity); //=========================================================== } var result = new Receipt2Model(); result.FastUser = new FastUserModel() { card = FastUser.Card, bank = FastUser.Bank, bin = FastUser.Bin, }; List <PayWayModel> PayWayModelList = new List <PayWayModel>(); SysSet SysSet = Entity.SysSet.FirstOrDefault(); #region 整合数据 DateTime now = new DateTime(1990, 01, 01, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second); #region 交易通道 var SCquery = Entity.SysControl.Where(o => AllowTag.Contains(o.Tag) && (o.State == 1 || o.State == 2) && ((((now >= o.STime && now <= o.ETime && o.STime < o.ETime) || ((now >= o.STime || now <= o.ETime) && o.STime > o.ETime)) && o.TimeType == 1) || o.TimeType == 0)); if (SysSet.LagEntry == 0) { SCquery = SCquery.Where(o => o.LagEntryNum == 0); } List <SysControl> SysControlList = SCquery.OrderBy(o => o.Sort).ToList(); string UserPayCashName = "UserPay_" + BaseUsers.Id.ToString() + "_" + Equipment.RqType; List <UserPay> UserPayList = null; if (HasCache) { UserPayList = CacheBuilder.EntityCache.Get(UserPayCashName, null) as List <UserPay>; if (UserPayList == null) { UserPayList = Entity.UserPay.Where(n => n.UId == BaseUsers.Id).ToList(); CacheBuilder.EntityCache.Remove(UserPayCashName, null); CacheBuilder.EntityCache.Add(UserPayCashName, UserPayList, DateTime.Now.AddHours(1), null); } } else { UserPayList = Entity.UserPay.Where(n => n.UId == BaseUsers.Id).ToList(); } SysControlList.ForEach(o => { var PayWayModel = new PayWayModel() { id = o.Id, name = o.CName, cost = o.LagEntryDay > 0 ? 0m : (decimal)UserPayList.Where(x => x.PId == o.PayWay).Select(x => x.Cost).FirstOrNew(), s_num = o.SNum, e_num = o.ENum, state = o.State, sort = o.Sort, tag = o.Tag, lagentryday = o.LagEntryDay, paywaytype = 1, cash = 0, payway = o.PayWay, }; PayWayModelList.Add(PayWayModel); }); #endregion #region 直通车通道 if (IsBindingFast) { List <FastPayWay> FastPayWayList = Entity.FastPayWay.Where(o => o.State == 1 && o.ManE == 0 && ((now >= o.STime && now <= o.ETime && o.TimeType == 1) || o.TimeType == 0)).OrderBy(o => o.Sort).ToList(); string FastUserPayCashName = "FastUserPay_" + BaseUsers.Id.ToString() + "_" + Equipment.RqType; List <FastUserPay> FastUserPayList = null; if (HasCache) { FastUserPayList = CacheBuilder.EntityCache.Get(FastUserPayCashName, null) as List <FastUserPay>; if (FastUserPayList == null) { FastUserPayList = Entity.FastUserPay.Where(n => n.UId == BaseUsers.Id).ToList(); CacheBuilder.EntityCache.Remove(FastUserPayCashName, null); CacheBuilder.EntityCache.Add(FastUserPayCashName, FastUserPayList, DateTime.Now.AddHours(1), null); } } else { FastUserPayList = Entity.FastUserPay.Where(n => n.UId == BaseUsers.Id).ToList(); } FastPayWayList.ForEach(o => { var tempList = new List <PayWayModel>(); if (o.HasAliPay == 1) { tempList.Add(new PayWayModel() { tag = "Alipay", name = "支付宝" + o.ShowName, s_num = o.SNum2, e_num = o.ENum2, payway = 1 }); } if (o.HasWeiXin == 1) { tempList.Add(new PayWayModel() { tag = "WeiXin", name = "微信" + o.ShowName, s_num = o.SNum, e_num = o.ENum, payway = 2 }); } if (o.HasBank == 1) { tempList.Add(new PayWayModel() { tag = "RecMoneyLocal", name = "银联" + o.ShowName, s_num = o.BankSNum, e_num = o.BankENum, payway = 3 }); } foreach (var item in tempList) { FastUserPay FastUserPay = FastUserPayList.FirstOrNew(x => x.PayWay == o.Id); item.id = o.Id; //2017-11-12 通道支持微信/支付宝/银联不同费率 if (item.payway == 1) { item.cost = FastUserPay.UserCost2; } if (item.payway == 2) { item.cost = FastUserPay.UserCost; } if (item.payway == 3) { item.cost = FastUserPay.UserCost3; } item.cash = FastUserPay.UserCash; item.state = o.State; item.sort = o.Sort; item.paywaytype = 2; if (o.GroupType == "D0") { item.lagentryday = 0; } else if (o.GroupType == "T1") { item.lagentryday = 1; } } ; PayWayModelList.AddRange(tempList); }); } #endregion PayWayModelList = PayWayModelList.OrderBy(n => n.sort).ToList();//排序 //一条通道都没有的情况处理 //if (PayWayModelList.Count == 0) //{ // var none = new PayWayModel() // { // cash = 2, // cost = 0.006m, // s_num = 1000, // e_num = 20000, // id = 99999, // lagentryday = 0, // payway = 0, // paywaytype = 2, // sort = 0, // tag = "RecMoneyLocal", // state = 0, // name = "银联", // }; // PayWayModelList.Add(none); //} result.UserPay = PayWayModelList; #endregion DataObj.Data = JsonConvert.SerializeObject(result); DataObj.Code = "0000"; DataObj.OutString(); } }
public static FastUser AddMer(FastUser FastUser, FastPayWay FastPayWay, FastConfig FastConfig, LokFuEntity Entity) { if (FastUser.Card.IsNullOrEmpty()) { //未绑定银行卡 return(FastUser); } FastUserPay FastUserPay = Entity.FastUserPay.FirstOrDefault(n => n.UId == FastUser.UId && n.PayWay == FastPayWay.Id); if (FastUserPay == null) { FastUserPay = new FastUserPay(); FastUserPay.UId = FastUser.UId; FastUserPay.PayWay = FastPayWay.Id; if (FastPayWay.DllName == "HFPay") { //不需要一户一码直接开通商户 FastUserPay.MerId = "HFPay" + FastUserPay.UId.ToString(); FastUserPay.MerState = 1; FastUserPay.CardState = 1; FastUserPay.BusiState = 1; } else { FastUserPay.MerId = ""; FastUserPay.MerState = 2; //状态 0锁定 1正常 2待提交 3审核中 4审核失败 FastUserPay.CardState = 2; //状态 0锁定 1正常 2待提交 3审核中 4审核失败 FastUserPay.BusiState = 2; //状态 1正常 2待提交 3审核中 4审核失败 } FastUserPay.CardName = FastUser.TrueName; FastUserPay.Bank = FastUser.Bank; FastUserPay.Card = FastUser.Card; FastUserPay.Bin = FastUser.Bin; //2017-11-22 修改成取通道配置,且分别计算微信/支付宝/银联 //FastUserPay.UserCost = FastConfig.UserCost; FastUserPay.UserCost = FastPayWay.InCost; FastUserPay.UserCost2 = FastPayWay.InCost2; FastUserPay.UserCost3 = FastPayWay.InCost3; if (FastPayWay.GroupType == "T1") { FastUserPay.UserCash = 0; } else { FastUserPay.UserCash = FastConfig.UserCash; } FastUserPay.AddTime = DateTime.Now; Entity.FastUserPay.AddObject(FastUserPay); Entity.SaveChanges(); } else { bool Save = false; if (FastUserPay.CardName != FastUser.TrueName) { FastUserPay.CardName = FastUser.TrueName; Save = true; } if (FastUserPay.Bank != FastUser.Bank) { FastUserPay.Bank = FastUser.Bank; Save = true; } if (FastUserPay.Card != FastUser.Card) { FastUserPay.Card = FastUser.Card; Save = true; } if (FastUserPay.Bin != FastUser.Bin) { FastUserPay.Bin = FastUser.Bin; Save = true; } if (Save) { Entity.SaveChanges(); } } string[] PayConfigArr = FastPayWay.QueryArray.Split(','); if (FastPayWay.DllName == "HFJSPay") { #region 结算系统 if (PayConfigArr.Length == 3) { string Code = PayConfigArr[0]; string CodeKey = PayConfigArr[1]; string PayWayCode = PayConfigArr[2]; #region 进件 if (FastUserPay.MerState == 2 || FastUserPay.MerState == 4) { UserCard UserCard = Entity.UserCard.FirstOrNew(n => n.Card == FastUserPay.Card && n.UId == FastUser.UId); string Mobile = UserCard.Mobile; Users Users = Entity.Users.FirstOrNew(n => n.Id == FastUser.UId); if (Mobile.IsNullOrEmpty()) { Mobile = Users.UserName; } fastuseraddModel model = new fastuseraddModel() { code = Code, mchid = "HF" + Users.Id.ToString(), mchname = Users.NeekName, truename = Users.TrueName, cardno = Users.CardId, accountcard = UserCard.Card, accountbin = UserCard.Bin, accountmobile = UserCard.Mobile }; fastuserResult fastuserResult = HFJSTools.fastuseradd(model, CodeKey); if (fastuserResult.respcode == "00") { bool RunTrue = true; string Msg = ""; if (fastuserResult.respmsg == "存在相同外部商户号") { //这里面要修改一下结算卡 fastuseraddModel modelEdit = new fastuseraddModel() { code = Code, merid = fastuserResult.merid, cardno = Users.CardId, accountcard = UserCard.Card, accountbin = UserCard.Bin, accountmobile = UserCard.Mobile }; fastuserResult fastuserresult = HFJSTools.fastuseredit(modelEdit, CodeKey); if (fastuserresult.respcode != "00") { Msg = fastuserresult.respmsg; RunTrue = false; } } if (RunTrue) { if (fastuserResult.state == 1) { FastUserPay.MerState = 1; FastUserPay.CardState = 1;//这里已绑定结算卡 FastUserPay.MerId = fastuserResult.merid; FastUserPay.MerKey = fastuserResult.merkey; } else if (fastuserResult.state == 2) { FastUserPay.MerId = fastuserResult.merid; FastUserPay.MerKey = fastuserResult.merkey; FastUserPay.MerState = 3; } else { FastUserPay.MerState = 4; FastUserPay.MerMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; } } else { FastUserPay.MerState = 4; FastUserPay.MerMsg = Msg; } } else { FastUserPay.MerState = 4; FastUserPay.MerMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; } Entity.SaveChanges(); } #endregion #region 开通道 if (FastUserPay.MerState == 1 && (FastUserPay.BusiState == 2 || FastUserPay.BusiState == 4)) { decimal Cost = FastPayWay.InCost3;//刷卡手续费 Users Users = Entity.Users.FirstOrNew(n => n.Id == FastUser.UId); if (Users.IsVip == 1) { Cost = 0.005M; FastUserPay.UserCost3 = 0.005M; } decimal Cash = FastConfig.UserCash;//还款手续费 userspayopenbModel userspayopenbModel = new userspayopenbModel() { merid = FastUserPay.MerId, paywaycode = PayWayCode, code = Code, bankcost = Cost, //surcharge = 0, cash = Cash, bankcostmin = 0, bankcostmax = 9999999 }; fastuserResult fastuserResult = HFJSTools.userspayopen(userspayopenbModel, CodeKey); if (fastuserResult.respcode == "00") { if (fastuserResult.state == 1) { FastUserPay.BusiState = 1; } else { FastUserPay.BusiState = 4; FastUserPay.BusiMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; } } else { FastUserPay.BusiState = 4; FastUserPay.BusiMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; } Entity.SaveChanges(); } #endregion } #endregion } return(FastUser); }
/// <summary> /// 订单分润/分润退款 /// </summary> /// <param name="O"></param> /// <param name="Entity"></param> /// <param name="Type">1分润入帐 2分润退款</param> /// <returns></returns> public static FastOrder PayAgent(this FastOrder O, LokFuEntity Entity, int Type) { FastConfig FastConfig = Entity.FastConfig.FirstOrNew(); if (FastConfig.AgentWay != 1) { return(O); } if (O.Agent.IsNullOrEmpty()) {//代理商没有情况下 return(O); } //if (O.AgentPayGet.IsNullOrEmpty()) //{ // //没有佣金 // //直接标识为已结算 // O.AgentState = 1; // O.AgentTime = DateTime.Now; // Entity.SaveChanges(); // return O; //} if (Type != 1)//类型不对 { return(O); } Users OrderUser = Entity.Users.FirstOrDefault(n => n.Id == O.UId);//读取订单用户 if (Type == 1) { string TypeString = "收付直通车"; #region 结算 if (O.AgentState != 0) {//已结算,不能重复结算 return(O); } O.AgentState = 1; O.AgentTime = DateTime.Now; Entity.SaveChanges(); //获取各级代理商 SysAgent SysAgent = new SysAgent(); SysAgent.Id = O.Agent; IList <SysAgent> SysAgentList = SysAgent.GetAgentsById(Entity); decimal AIdPayGet = (decimal)O.AgentPayGet; // decimal sumpayget = 0; int tier = 1; foreach (var p in SysAgentList) { if (p.State == 1) { decimal PayGet = SysAgent.GetSplit(p.Tier, Entity); AIdPayGet = O.Amoney * PayGet; //当前级总佣金,需获取是否有下级拆分他的佣金 AIdPayGet = AIdPayGet.Floor(); decimal AIdPayGetNext = 0; //定义下一级佣金 if (tier < SysAgentList.Count) { //不是最后一级,需计算下级拆分金额 SysAgent SysAgentNext = SysAgentList.Skip(tier).Take(1).FirstOrDefault(); if (SysAgentNext != null) { if (SysAgentNext.State == 1) {//下级状态有效时才计算,如关闭了则不正计算下级 decimal PayGetNext = SysAgent.GetSplit(SysAgentNext.Tier, Entity); AIdPayGetNext = O.Amoney * PayGetNext; AIdPayGetNext = AIdPayGetNext.Floor(); } } } decimal AIdPayGetMy = AIdPayGet - AIdPayGetNext; //当前级所能得到真实佣金 decimal UsersGetAll = 0; //定义所有用户佣金 //最后一级代理商 处理用户分润 #region 最后一级代理商 处理用户分润 if (tier == SysAgentList.Count) { //获取各级分润配置 SysSet SysSet = Entity.SysSet.FirstOrNew(); int MaxLevel = SysSet.GlobaPromoteMaxLevel; //有用户分润,开始执行用户分润 Users Users = new Users(); Users.Id = O.UId; //获取用户各级关系,最大级不超过用户配置级数。返回数据包含当前用户,当前用户级数标识Tier为0 IList <Users> UsersList = Users.GetUsersById(Entity, MaxLevel); int UsersTier = 1; foreach (var U in UsersList.Where(n => n.Tier > 0 && n.State == 1)) { //UsersGetAll //UserPromoteGet UserPromoteGet = UserPromoteGetList.FirstOrDefault(n => n.PromoteLevel == U.Tier); //if (UserPromoteGet != null) //{ decimal PromoteGet = Users.GetUsersSplit(Entity, U.Tier); decimal UsersGet = O.Amoney * PromoteGet; UsersGet = UsersGet.Floor(); if (UsersTier == 1) { UsersGetAll = UsersGet; } //UsersGetSum += UsersGet; if (UsersTier < UsersList.Count) { //不是最后一级,需计算下级拆分金额 byte nexttier = (byte)(U.Tier + 1); Users UsersNext = UsersList.FirstOrDefault(o => o.Tier == nexttier); if (UsersNext != null) { if (UsersNext.State == 1) { //下级状态有效时才计算,如关闭了则不正计算下级 decimal PayGetNext = Users.GetUsersSplit(Entity, UsersNext.Tier); decimal UserPayGetNext = O.Amoney * PayGetNext; UserPayGetNext = UserPayGetNext.Floor(); //减掉下级用户的金额 UsersGet = UsersGet - UserPayGetNext; } } } if (UsersGet > 0) { //帐户变动记录 string Remark = string.Format("{0}[{1}]", TypeString, O.TNum); string SP_Ret = Entity.SP_UsersMoney(U.Id, O.TNum, UsersGet, 8, Remark, 0); if (SP_Ret != "3") { Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", U.Id, O.TNum, 8, UsersGet, SP_Ret), "SP_UsersMoney"); } //记录清分记录 OrderProfitLog OPL = new OrderProfitLog(); OPL.AddTime = DateTime.Now; OPL.UId = U.Id; OPL.Agent = 0; OPL.TNum = O.TNum; OPL.LogType = 1; OPL.Tier = U.Tier; OPL.Profit = UsersGet; OPL.Amoney = O.Amoney; OPL.OrderType = 21; OPL.UserName = OrderUser.UserName; Entity.OrderProfitLog.AddObject(OPL); //=====增加统计记录===== ShareTotal ShareTotal = Entity.ShareTotal.FirstOrDefault(n => n.UId == U.Id && n.Tier == U.Tier); if (ShareTotal == null) { ShareTotal = new ShareTotal(); ShareTotal.UId = U.Id; ShareTotal.AddTime = DateTime.Now; ShareTotal.ShareNum = 0; ShareTotal.Amount = O.Amoney; ShareTotal.Profit = UsersGet; ShareTotal.Tier = U.Tier; Entity.ShareTotal.AddObject(ShareTotal); } else { ShareTotal.Amount += O.Amoney; ShareTotal.Profit += UsersGet; } sumpayget = sumpayget + UsersGet; } UsersTier++; // } } } #endregion //20160704 Lin 增加统计用户拆分多少,最后一级代理金额减掉这部分金额即可。 //解决用户分剩下钱规系统逻辑问题 AIdPayGetMy = AIdPayGetMy - UsersGetAll; #region 最后一级代理商 处理同级分润 if (tier == SysAgentList.Count) { if (!p.SameAgent.IsNullOrEmpty() && AIdPayGet > 0) { SysMoneySet SysMoneySet = Entity.SysMoneySet.FirstOrNew(); decimal SameMoney = AIdPayGet * SysMoneySet.SameAgent; SameMoney = SameMoney.Floor(); SysAgent SameSysAgent = Entity.SysAgent.FirstOrNew(o => o.Id == p.SameAgent); if (SameSysAgent.State == 1 && !SameSysAgent.MyUId.IsNullOrEmpty()) { //帐户变动记录 string Remark = string.Format("{0}[{1}]", "直通车同级分润", O.TNum); string SP_Ret = Entity.SP_UsersMoney(SameSysAgent.MyUId, O.TNum, SameMoney, 8, Remark, 0); if (SP_Ret != "3") { Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", SameSysAgent.MyUId, O.TNum, 8, SameMoney, SP_Ret), "SP_UsersMoney"); } //记录清分记录 OrderProfitLog OPL = new OrderProfitLog(); OPL.AddTime = DateTime.Now; OPL.UId = SameSysAgent.MyUId; OPL.Agent = SameSysAgent.Id; OPL.TNum = O.TNum; OPL.LogType = 3; OPL.Tier = p.Tier; OPL.Profit = SameMoney; OPL.Amoney = O.Amoney; OPL.OrderType = 21; OPL.UserName = OrderUser.UserName; Entity.OrderProfitLog.AddObject(OPL); O.SameGet = SameMoney; } } } #endregion if (!p.MyUId.IsNullOrEmpty() && AIdPayGetMy > 0)//某一级未绑定钱包,钱留给系统^-^ { //获取钱包信息 //为了减少系统开销,这里不读取用户信息——By Lin //Users Users = Entity.Users.FirstOrDefault(n => n.Id == p.MyUId); if (p.MyUId > 0) { //帐户变动记录 string Remark = string.Format("{0}[{1}]", TypeString, O.TNum); string SP_Ret = Entity.SP_UsersMoney(p.MyUId, O.TNum, AIdPayGetMy, 8, Remark, 0); if (SP_Ret != "3") { Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", p.MyUId, O.TNum, 8, AIdPayGetMy, SP_Ret), "SP_UsersMoney"); } //记录清分记录 OrderProfitLog OPL = new OrderProfitLog(); OPL.AddTime = DateTime.Now; OPL.UId = p.MyUId; OPL.Agent = p.Id; OPL.TNum = O.TNum; OPL.LogType = 2; OPL.Tier = p.Tier; OPL.Profit = AIdPayGetMy; OPL.Amoney = O.Amoney; OPL.OrderType = 21; OPL.UserName = OrderUser.UserName; Entity.OrderProfitLog.AddObject(OPL); sumpayget = sumpayget + AIdPayGetMy; } } } tier++; } Entity.SaveChanges(); //统计所有分润 //decimal Profit = 0; //if (Entity.OrderProfitLog.Count(n => n.TNum == O.TNum) > 0) //{ // Profit = Entity.OrderProfitLog.Where(n => n.TNum == O.TNum).Sum(n => n.Profit);//是否会为空的情况 //} O.AgentPayGet = sumpayget;//记录总佣金支出,以便总系统计算利润 O.AgentState = 1; Entity.SaveChanges(); #endregion } if (Type == 2) { //没有退款,分润也不需要写 } return(O); }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[CardReg]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } Card Card = new Card(); Card = JsonToObject.ConvertJsonToModel(Card, json); Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == Card.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } if (baseUsers.MiBao != 1)//未设置支付密码 { DataObj.OutError("2008"); return; } if (baseUsers.IsVip == 1)//是VIP不能再生成 { DataObj.OutError("9001"); return; } Card = Entity.Card.FirstOrDefault(n => n.Code == Card.Code && n.PasWd == Card.PasWd && n.Auto == 1); if (Card == null) { DataObj.OutError("5003"); return; } if (Card.State != 1) { string StateStr = string.Empty; switch (Card.State) { case 2: StateStr = "已授权"; break; case 3: StateStr = "已使用"; break; case 0: StateStr = "已失效"; break; } DataObj.Msg = "激活码" + StateStr; DataObj.OutError("5003"); return; } if (Card.AId.IsNullOrEmpty()) { DataObj.OutError("5002"); return; } if (Card.AdminId.IsNullOrEmpty()) { DataObj.OutError("5002"); return; } Card.State = 2;//使用中 Card.PUId = baseUsers.Id; baseUsers.Agent = Card.AId; baseUsers.CardNum = Card.Code; baseUsers.IsVip = 1; //修改到app费率 IList <UserPay> UserPayList = Entity.UserPay.Where(o => o.UId == baseUsers.Id).ToList(); foreach (var temp in UserPayList) { if (temp.Cost > 0.005) { temp.Cost = 0.005; } } // Entity.SaveChanges(); //修改用户通道费率 FastUserPay FastUserPay = Entity.FastUserPay.FirstOrDefault(o => o.UId == baseUsers.Id && o.BusiState == 1 && o.MerState == 1 && o.CardState == 1); if (FastUserPay != null) { FastPayWay FastPayWay = Entity.FastPayWay.FirstOrNew(o => o.State == 1); FastConfig FastConfig = Entity.FastConfig.FirstOrNew(); decimal Cost = 0.005M; //费率 decimal Cash = FastConfig.UserCash; //手续费 string[] PayConfigArr = FastPayWay.QueryArray.Split(','); string Code = PayConfigArr[0]; string CodeKey = PayConfigArr[1]; string PayWayCode = PayConfigArr[2]; userspayopenbModel userspayopenbModel = new userspayopenbModel() { merid = FastUserPay.MerId, paywaycode = PayWayCode, code = Code, bankcost = Cost, //surcharge = 0, cash = Cash, bankcostmin = 1.2M, bankcostmax = 9999999 }; fastuserResult fastuserResult = HFJSTools.userspayedit(userspayopenbModel, CodeKey); if (fastuserResult.respcode == "00") { if (fastuserResult.state == 1) { FastUserPay.BusiState = 1; FastUserPay.BusiMsg = fastuserResult.respcode + "升级Vip[" + fastuserResult.respmsg + "]"; FastUserPay.UserCost3 = 0.005M; } else { FastUserPay.BusiState = 4; FastUserPay.BusiMsg = fastuserResult.respcode + "升级Vip[" + fastuserResult.respmsg + "]"; } } else { FastUserPay.BusiState = 4; FastUserPay.BusiMsg = fastuserResult.respcode + "升级Vip[" + fastuserResult.respmsg + "]"; } } Entity.SaveChanges(); DataObj.Data = baseUsers.ToString(); DataObj.Code = "0000"; DataObj.OutString(); }
public ActionResult MyQrCode(string act = "") { if (!IsLokFu) { ViewBag.ErrorMsg = "请在钱包中打开链接!"; return(View("Error")); } if (BasicUsers == null) { ViewBag.ErrorMsg = "用户未登录或登录异常!"; return(View("Error")); } if (BasicUsers.Id.IsNullOrEmpty()) { ViewBag.ErrorMsg = "用户未登录或登录异常!"; return(View("Error")); } if (BasicUsers.State != 1)//用户被锁定 { ViewBag.ErrorMsg = "您的帐户被锁定!"; return(View("Error")); } if (BasicUsers.CardStae != 2)//未实名认证 { ViewBag.ErrorMsg = "您未实名认证!"; return(View("Error")); } //if (baseUsers.MiBao != 1)//未设置支付密码 //{} //========================================================================================== //获取直通车配置及用户直通车配置 FastUser FastUser = Entity.FastUser.FirstOrDefault(n => n.UId == BasicUsers.Id); if (FastUser == null) { //开通帐户 FastUser = new FastUser(); FastUser.UId = BasicUsers.Id; FastUser.TrueName = BasicUsers.TrueName; FastUser.CardId = BasicUsers.CardId; FastUser.AddTime = DateTime.Now; Entity.FastUser.AddObject(FastUser); Entity.SaveChanges(); } ViewBag.FastUser = FastUser; if (FastUser.Card.IsNullOrEmpty() || act == "setbank") { //未绑卡 IList <UserCard> UserCardList = Entity.UserCard.Where(n => n.UId == BasicUsers.Id && n.Type == 1).ToList(); if (UserCardList.Count < 1) { return(View("MyBankNull")); } ViewBag.UserCardList = UserCardList; ViewBag.Act = act; return(View("MyBank")); } ViewBag.FastConfig = Entity.FastConfig.FirstOrNew(); ViewBag.Code = BasicUsers.FastCode(); FastConfig FastConfig = Entity.FastConfig.FirstOrNew(); //=========================================================== //这里要处理商户入驻 BusFastPay.AddMer(FastUser, FastConfig, this.Entity); //=========================================================== return(View()); }
public ActionResult Index(Users Users, string SetCashType = "D0") { if (!Users.Id.IsNullOrEmpty()) { Users = Entity.Users.FirstOrNew(n => n.Id == Users.Id); } //if (!IsLokFu && !IsAlipayBrowser && !IsWeiXinBrowser) //{ // ViewBag.ErrorMsg = "请使用微信或支付宝扫码!"; // return View("Error"); //} if (Users == null) { ViewBag.ErrorMsg = "商户信息异常!"; return(View("Error")); } if (Users.Id.IsNullOrEmpty()) { ViewBag.ErrorMsg = "商户信息异常!"; return(View("Error")); } if (Users.State != 1)//用户被锁定 { ViewBag.ErrorMsg = "商户状态异常!"; return(View("Error")); } if (Users.CardStae != 2)//未实名认证 { ViewBag.ErrorMsg = "商户未认证,不能收款!"; return(View("Error")); } ViewBag.Users = Users; FastUser FastUser = Entity.FastUser.FirstOrDefault(n => n.UId == Users.Id); if (FastUser == null) { ViewBag.ErrorMsg = "商户未开通!"; return(View("Error")); } ViewBag.FastUser = FastUser; FastConfig FastConfig = Entity.FastConfig.FirstOrNew(); //=========================================================== //处理有哪些通道 IList <FastPayWay> FastPayWayList = Entity.FastPayWay.Where(n => n.State == 1 && n.ManE == 0).OrderBy(n => n.Sort).ToList(); if (!SetCashType.IsNullOrEmpty()) { FastPayWayList = FastPayWayList.Where(n => n.GroupType == SetCashType).ToList(); } if (FastPayWayList == null) { ViewBag.ErrorMsg = "暂无可用通道!"; return(View("Error")); } IList <FastPayWay> PayWayList = new List <FastPayWay>(); foreach (var p in FastPayWayList) { if (p.TimeType == 1)//限制时间,模式1 { DateTime STime = p.STime; DateTime ETime = p.ETime; DateTime NowSTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + STime.ToString("HH:mm:ss")); DateTime NowETime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + ETime.ToString("HH:mm:ss")); if (NowSTime <= DateTime.Now && DateTime.Now <= NowETime) { //当前时间允许交易 PayWayList.Add(p); } } else { PayWayList.Add(p); } } if (PayWayList.Count < 1) { ViewBag.ErrorMsg = "暂无可用通道!"; return(View("Error")); } IList <FastPayWay> WxList = PayWayList.Where(n => n.HasWeiXin == 1).ToList(); IList <FastPayWay> AliList = PayWayList.Where(n => n.HasAliPay == 1).ToList(); IList <FastPayWay> BankList = PayWayList.Where(n => n.HasBank == 1).ToList(); IList <FastPayWay> List = new List <FastPayWay>(); if (WxList.Count > 0) { FastPayWay Wx = new FastPayWay(); Wx.Id = 2; Wx.GroupType = "weixin"; Wx.DllName = "微信支付"; Wx.SNum = WxList.OrderBy(n => n.SNum).FirstOrDefault().SNum; Wx.ENum = WxList.OrderByDescending(n => n.ENum).FirstOrDefault().ENum; List.Add(Wx); } if (AliList.Count > 0) { FastPayWay Ali = new FastPayWay(); Ali.Id = 1; Ali.GroupType = "alipay"; Ali.DllName = "支付宝支付"; Ali.SNum = AliList.OrderBy(n => n.SNum2).FirstOrDefault().SNum2; Ali.ENum = AliList.OrderByDescending(n => n.ENum2).FirstOrDefault().ENum2; List.Add(Ali); } if (BankList.Count > 0) { //收银台暂不开放银联 //FastPayWay Bank = new FastPayWay(); //Bank.Id = 3; //Bank.GroupType = "bank"; //Bank.DllName = "银行卡支付"; //Bank.SNum = BankList.OrderBy(n => n.BankSNum).FirstOrDefault().BankSNum; //Bank.ENum = BankList.OrderByDescending(n => n.BankENum).FirstOrDefault().BankENum; //List.Add(Bank); } ViewBag.FastPayWayList = List; //=========================================================== //这里要处理商户入驻 BusFastPay.AddMer(FastUser, FastConfig, this.Entity); //=========================================================== //处理自选商户 //Users.SetPayName = Users.NeekName; //Users.CanOpenMer = 0; return(View()); }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[FastOrders]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } Users Users = new Users(); Users = JsonToObject.ConvertJsonToModel(Users, json); Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == Users.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } var model = new FastOrderIndexModel(); //获取直通车配置及用户直通车配置 FastUser FastUser = Entity.FastUser.FirstOrDefault(n => n.UId == baseUsers.Id); if (FastUser == null) { //开通帐户 FastUser = new FastUser(); FastUser.UId = baseUsers.Id; FastUser.TrueName = baseUsers.TrueName; FastUser.CardId = baseUsers.CardId; FastUser.AddTime = DateTime.Now; Entity.FastUser.AddObject(FastUser); Entity.SaveChanges(); } if (FastUser.Card.IsNullOrEmpty()) { //未绑卡 IList <UserCard> UserCardList = Entity.UserCard.Where(n => n.UId == baseUsers.Id && n.Type == 1 && n.State == 1).ToList(); if (UserCardList.Count < 1) { DataObj.OutError("2099"); return; } } FastConfig FastConfig = Entity.FastConfig.FirstOrNew(); //=========================================================== //这里要处理商户入驻 BusFastPay.AddMer(FastUser, FastConfig, this.Entity); //=========================================================== var BasicBank = Entity.BasicBank.FirstOrNew(o => o.Name == FastUser.Bank); model.bank = FastUser.Bank ?? string.Empty; model.uid = FastUser.UId; model.card = FastUser.Card ?? string.Empty; model.bin = FastUser.Bin ?? string.Empty; model.bid = BasicBank.Id; model.caption1 = "使用收付直通车直接结算到银行卡,无需提现,交易手续费为0.49%+2元."; model.caption2 = "每天9:00-21:00实时到账,其它时间交易为T+1到账"; DataObj.Data = JsonConvert.SerializeObject(model); DataObj.Code = "0000"; DataObj.OutString(); }