/// <summary> /// 调用出金接口 /// </summary> /// <param name="type">要调用的出金接口,0表示通联,1表示融宝</param> /// <param name="money"></param> /// <returns></returns> public static RequestResult CachOut(string type, TRealAccounts account, TAgents agent, TAccountMoney money) { PayEntity entity = new PayEntity(); if (account != null) { entity.Phone = account.Phone; entity.Name = account.Name; entity.IDCardNO = account.IDCardNo; } else { entity.IDCardNO = agent.IdCardNo; entity.Phone = agent.TelePhone; entity.Name = agent.SavingsName; } RequestResult result = new RequestResult(); if (money.BankName == null) { result.IsSuccess = false; result.ErrMsg = "银行名不能为空!"; return result; } switch (type) { case "0": result = allinpayMethod(entity.Name, money.AccountNo, "PERSONAL", (money.CreateMoney * 100).ToString(), money.BankName + money.BranchName, ""); break; case "1": string dateTime = DateTime.Now.ToString("yyMMddhhmmss"); if (money.BranchName == null) { result.IsSuccess = false; result.ErrMsg = "支行名不能为空!"; break; } int index = money.BranchName.IndexOf("分行"); if (index == -1) { result.IsSuccess = false; result.ErrMsg = "分行必须填写!"; break; } string fen = money.BranchName.Substring(0, index + 2); result = goldMoney(dateTime, money.CreateMoney.Value.ToString("N"), dateTime, money.AccountNo, entity.Name, money.BankName, fen, money.BranchName, money.ProvincialName, money.CityName, entity.Phone, "身份证", entity.IDCardNO, money.MoneyOrderNum, "", "私", "CNY", dateTime); break; default: break; } return result; }
public ActionResult DoCash() { try { string reqPrice = Request["price"]; //string Branch = Request["Branch"]; if (string.IsNullOrEmpty(reqPrice)) { return Json("出金金额不能为空!"); } double price = Convert.ToDouble(reqPrice); if (price <= 0) { return Json("出金金额必须大于0!"); } int agentids = Converter.ToInt(Session["agentid"], 0); //string SavingsAccount = Request["SavingsAccount"]; //int CityID = Converter.ToInt(Request["CityID"],0); //string BankName = Request["BankName"]; APIDataDataContext db = DBFactory.DB; var user = (from c in db.TAgents where c.ID == agentids select c).FirstOrDefault(); if (price > user.AccountMoney) { return Json("可用余额不足!"); } TAccountMoney tam = new TAccountMoney(); tam.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tam.AgentId = agentids; tam.TypeId = 3; tam.OriginalMoney = user.AccountMoney; tam.CreateMoney = price; tam.NowMoney = user.AccountMoney - price; tam.CreateTime = DateTime.Now; tam.UpDateTime = DateTime.Now; tam.Status = 1; tam.BankState = 0; tam.PlatformState = 0; tam.Examine = 0; tam.CounterFee = 0; //tam.BankName = BankName; //tam.BranchName = Branch; //tam.AccountNo = SavingsAccount; //tam.CityId = CityID; //var city = (from c in db.TCities where c.ID == CityID select c).FirstOrDefault(); //if (city != null) //{ // tam.CityName = city.CityName; // var citys = (from c in db.TCities where c.CityCode == city.ParentCode select c).FirstOrDefault(); // if (citys != null) // { // tam.ProvincialName = citys.CityName; // } //} //else //{ // tam.CityName = ""; // tam.ProvincialName = ""; //} db.TAccountMoney.InsertOnSubmit(tam); //user.AccountMoney = user.AccountMoney - price; //user.MoneyUpDateTime = DateTime.Now; db.SubmitChanges(); return Json("true"); } catch { return Json("出金时出现错误!"); } }
public ActionResult EditPositionPassword() { var password = Request["password"]; var orderid = Converter.ToInt(Request["orderid"], 0); var types = Request["types"];//0保存 1删除 2平仓 var OrderNum = Request["OrderNum"]; var ProductID = Request["ProductID"]; var TRealAccountsID = Converter.ToInt(Request["TRealAccountID"], 0); var Deal = Request["Deal"]; var OrderCount = Request["OrderCount"]; var OpenPrice = Request["OpenPrice"]; var Loss = Request["Loss"]; var OpenTime = Request["OpenTime"]; var Profit = Request["Profit"]; var NowPrice = Request["NowPrice"]; var Deposit = Request["Deposit"]; var UpdateTime = Request["UpdateTime"]; APIDataDataContext db = APIDataContextProxy.APIDB; TOperationLog OLog = new TOperationLog(); var user2 = (from c in db.TRealAccounts where c.ID == TRealAccountsID && c.PassWord == password select c).FirstOrDefault(); if (user2 == null) { return Json(new { code = "0", msg = "客户密码不正确!" }); } try { if (orderid > 0) { var order = (from c in db.TOrders where c.ID == orderid select c).FirstOrDefault(); OLog.BeforeValue = ObjectToJson.ModelToJson(order); OLog.UserID = Convert.ToInt32(Session["ID"]); OLog.UserType = 2;//0 用户 1 会员 2 员工 OLog.CreateDate = DateTime.Now; if (order != null) { if (types == "1") { #region 删除订单 db.TOrders.DeleteOnSubmit(order); db.SubmitChanges(); OLog.UpdateValue = ""; //写入操作日志 OLog.PageName = "删除在手订单"; Converter.InsertOperationLog(OLog); return Json(new { code = "1", msg = "提交成功!" }); #endregion } else if (types == "0") { #region 修改保存 order.ProductID = Converter.ToInt(ProductID, 0); order.TRealAccountsID = Converter.ToInt(TRealAccountsID, 0); order.Deal = Deal == "1" ? true : false; order.OrderCount = Converter.ToInt(OrderCount, 0); order.OpenPrice = Converter.ToFloat(OpenPrice, 0); order.Loss = Converter.ToFloat(Loss, 0); order.OpenTime = Convert.ToDateTime(OpenTime); order.Profit = Converter.ToFloat(Profit, 0); order.NowPrice = Converter.ToFloat(NowPrice, 0); order.Deposit = Converter.ToFloat(Deposit, 0); order.UpdateTime = Convert.ToDateTime(UpdateTime); db.SubmitChanges(); OLog.UpdateValue = ObjectToJson.ModelToJson(order); //写入操作日志 OLog.PageName = "修改在手订单"; Converter.InsertOperationLog(OLog); return Json(new { code = "1", msg = "提交成功!" }); #endregion } else { #region 平仓 int OrderId = orderid; var item = (from c in db.TOrders where c.ID == OrderId && c.OrderState == 1 && c.OrderType == 1 select c).FirstOrDefault(); if (item != null) { var product = (from c in db.TProducts join b in db.TLastClose on c.ProductCode equals b.ProductCode where c.ID == item.ProductID orderby c.ID select new { c, b.LastClose, b.LastUpdateTime }).FirstOrDefault(); if (product != null) { var Scale = Converter.ToFloat(product.c.Scale, 2); var nowdate = product.LastUpdateTime; #region 加工费 double closedeposit = 0.0; //加工费 if (product.c.DepositType == 1)//固定 { closedeposit = Converter.ToFloat(product.c.CloseDeposit, 0) * Converter.ToFloat(product.c.ContractNumber, 0) * Converter.ToFloat(item.OrderCount, 0); } else if (product.c.DepositType == 2)//浮动 { if (item.Deal == false) closedeposit = 0.01 * Converter.ToFloat(product.c.CloseDeposit, 0) * (Converter.ToFloat(product.LastClose, 0)) * Converter.ToFloat(product.c.ContractNumber, 0) * Converter.ToFloat(item.OrderCount, 0); else closedeposit = 0.01 * Converter.ToFloat(product.c.CloseDeposit, 0) * (Converter.ToFloat(product.LastClose, 0) + Converter.ToFloat(product.c.Fixedly, 0)) * Converter.ToFloat(product.c.ContractNumber, 0) * Converter.ToFloat(item.OrderCount, 0); } closedeposit = Converter.ToFloat(closedeposit.ToString("F" + Scale), 0); #endregion item.Deposit = Converter.ToFloat((Converter.ToFloat(item.Deposit, 0) + closedeposit).ToString("F" + Scale), 0); double LastClose = 0.0; //市场价 收盘价 double Spread = 0.0; //点数 //计算盈亏 if (item.Deal == false)//卖出 { LastClose = Converter.ToFloat(product.LastClose, 0) + Converter.ToFloat(product.c.Fixedly, 0); Spread = Converter.ToFloat(item.OpenPrice, 0) - LastClose; } else if (item.Deal == true)//买入 { LastClose = Converter.ToFloat(product.LastClose, 0); Spread = LastClose - Converter.ToFloat(item.OpenPrice, 0); } item.Spread = Converter.ToFloat(Spread.ToString("F" + Scale), 0); item.ProfitAndLoss = Converter.ToFloat((Converter.ToFloat(Spread * item.OrderCount, 0) * Converter.ToFloat(product.c.ContractNumber, 0)).ToString("F" + Scale), 0); item.NowPrice = Converter.ToFloat(LastClose.ToString("F" + Scale), 0); item.NetProfit = Converter.ToFloat((Converter.ToFloat(item.ProfitAndLoss, 0) - Converter.ToFloat(item.Deposit, 0) - Converter.ToFloat(item.Interest, 0)).ToString("F" + Scale), 0); item.UpdateTime = nowdate; item.OrderState = 2; item.OrderType = 2; item.CloseType = "授权平仓"; var user = (from c in db.TRealAccounts where c.ID == item.TRealAccountsID select c).FirstOrDefault(); try { var agent = (from c in db.TAgents join b in db.TAgentGroup on c.GroupID equals b.ID where c.ID == user.AgendID select new { c.ID, c.DirectAgentID, c.Depth, c.HeadRate1, c.ProcessRate1, c.InterestRate1, c.HeadRate2, c.ProcessRate2, c.InterestRate2, c.HeadRate3, c.ProcessRate3, c.InterestRate3, c.HeadRate4, c.ProcessRate4, c.InterestRate4, c.HeadRate5, c.ProcessRate5, c.InterestRate5, GID = b.ID, b.GroupName, b.ProcessRate, b.HeadRate, b.InterestRate, b.NextRate }).FirstOrDefault(); #region 分成 if (agent != null) { //查询客户所属会员的分成 double HeadRate = Convert.ToDouble(Converter.ToFloat(agent.HeadRate, 0).ToString("F4")) * 0.01; double ProcessRate = Convert.ToDouble(Converter.ToFloat(agent.ProcessRate, 0).ToString("F4")) * 0.01; double InterestRate = Convert.ToDouble(Converter.ToFloat(agent.InterestRate, 0).ToString("F4")) * 0.01; //计算分成 double HeadInfo = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); double ProcessInfo = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); double InterestInfo = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tar = new TAgentRate(); tar.HeadRate = HeadInfo.ToString(); tar.ProcessRate = ProcessInfo.ToString(); tar.InterestRate = InterestInfo.ToString(); tar.AllRate = (HeadInfo + ProcessInfo + InterestInfo).ToString(); tar.NextHeadRate = "0"; tar.NextProcessRate = "0"; tar.NextInterestRate = "0"; tar.NextAllRate = "0"; tar.Date = DateTime.Now; tar.TAgentId = agent.ID; tar.TOrderId = item.ID; IList<TAgentRate> tarlist = new List<TAgentRate>(); int depth = agent.Depth;//深度 if (depth > 6) depth = 6; var ag = (from c in db.TAgents where c.ID == agent.ID select c).FirstOrDefault(); var age = ag; for (int i = 1; i < depth; i++) { if (i == 1) { //会员的分成 HeadRate = Convert.ToDouble(Converter.ToFloat(age.HeadRate1, 0).ToString("F4")) * 0.01; ProcessRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate1, 0).ToString("F4")) * 0.01; InterestRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate1, 0).ToString("F4")) * 0.01; //计算分成 var HeadInfo_ = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); var ProcessInfo_ = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); var InterestInfo_ = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tars = new TAgentRate(); tars.HeadRate = "0"; tars.ProcessRate = "0"; tars.InterestRate = "0"; tars.AllRate = "0"; tars.NextHeadRate = HeadInfo_.ToString(); tars.NextProcessRate = ProcessInfo_.ToString(); tars.NextInterestRate = InterestInfo_.ToString(); tars.NextAllRate = (HeadInfo_ + ProcessInfo_ + InterestInfo_).ToString(); tars.Date = DateTime.Now; tars.TAgentId = ag.DirectAgentID; tars.TOrderId = item.ID; tarlist.Add(tars); tar.HeadRate = (Convert.ToDouble(tar.HeadRate) - HeadInfo_).ToString("F4"); tar.ProcessRate = (Convert.ToDouble(tar.ProcessRate) - ProcessInfo_).ToString("F4"); tar.InterestRate = (Convert.ToDouble(tar.InterestRate) - InterestInfo_).ToString("F4"); tar.AllRate = (Convert.ToDouble(tar.AllRate) - (HeadInfo_ + ProcessInfo_ + InterestInfo_)).ToString("F4"); } else if (i == 2) { //会员的分成 HeadRate = Convert.ToDouble(Converter.ToFloat(age.HeadRate2, 0).ToString("F4")) * 0.01; ProcessRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate2, 0).ToString("F4")) * 0.01; InterestRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate2, 0).ToString("F4")) * 0.01; //计算分成 var HeadInfo_ = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); var ProcessInfo_ = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); var InterestInfo_ = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tars = new TAgentRate(); tars.HeadRate = "0"; tars.ProcessRate = "0"; tars.InterestRate = "0"; tars.AllRate = "0"; tars.NextHeadRate = HeadInfo_.ToString(); tars.NextProcessRate = ProcessInfo_.ToString(); tars.NextInterestRate = InterestInfo_.ToString(); tars.NextAllRate = (HeadInfo_ + ProcessInfo_ + InterestInfo_).ToString(); tars.Date = DateTime.Now; tars.TAgentId = ag.DirectAgentID; tars.TOrderId = item.ID; tarlist.Add(tars); tar.HeadRate = (Convert.ToDouble(tar.HeadRate) - HeadInfo_).ToString("F4"); tar.ProcessRate = (Convert.ToDouble(tar.ProcessRate) - ProcessInfo_).ToString("F4"); tar.InterestRate = (Convert.ToDouble(tar.InterestRate) - InterestInfo_).ToString("F4"); tar.AllRate = (Convert.ToDouble(tar.AllRate) - (HeadInfo_ + ProcessInfo_ + InterestInfo_)).ToString("F4"); } else if (i == 3) { //会员的分成 HeadRate = Convert.ToDouble(Converter.ToFloat(age.HeadRate3, 0).ToString("F4")) * 0.01; ProcessRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate3, 0).ToString("F4")) * 0.01; InterestRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate3, 0).ToString("F4")) * 0.01; //计算分成 var HeadInfo_ = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); var ProcessInfo_ = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); var InterestInfo_ = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tars = new TAgentRate(); tars.HeadRate = "0"; tars.ProcessRate = "0"; tars.InterestRate = "0"; tars.AllRate = "0"; tars.NextHeadRate = HeadInfo_.ToString(); tars.NextProcessRate = ProcessInfo_.ToString(); tars.NextInterestRate = InterestInfo_.ToString(); tars.NextAllRate = (HeadInfo_ + ProcessInfo_ + InterestInfo_).ToString(); tars.Date = DateTime.Now; tars.TAgentId = ag.DirectAgentID; tars.TOrderId = item.ID; tarlist.Add(tars); tar.HeadRate = (Convert.ToDouble(tar.HeadRate) - HeadInfo_).ToString("F4"); tar.ProcessRate = (Convert.ToDouble(tar.ProcessRate) - ProcessInfo_).ToString("F4"); tar.InterestRate = (Convert.ToDouble(tar.InterestRate) - InterestInfo_).ToString("F4"); tar.AllRate = (Convert.ToDouble(tar.AllRate) - (HeadInfo_ + ProcessInfo_ + InterestInfo_)).ToString("F4"); } else if (i == 4) { //会员的分成 HeadRate = Convert.ToDouble(Converter.ToFloat(age.HeadRate4, 0).ToString("F4")) * 0.01; ProcessRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate4, 0).ToString("F4")) * 0.01; InterestRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate4, 0).ToString("F4")) * 0.01; //计算分成 var HeadInfo_ = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); var ProcessInfo_ = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); var InterestInfo_ = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tars = new TAgentRate(); tars.HeadRate = "0"; tars.ProcessRate = "0"; tars.InterestRate = "0"; tars.AllRate = "0"; tars.NextHeadRate = HeadInfo_.ToString(); tars.NextProcessRate = ProcessInfo_.ToString(); tars.NextInterestRate = InterestInfo_.ToString(); tars.NextAllRate = (HeadInfo_ + ProcessInfo_ + InterestInfo_).ToString(); tars.Date = DateTime.Now; tars.TAgentId = ag.DirectAgentID; tars.TOrderId = item.ID; tarlist.Add(tars); tar.HeadRate = (Convert.ToDouble(tar.HeadRate) - HeadInfo_).ToString("F4"); tar.ProcessRate = (Convert.ToDouble(tar.ProcessRate) - ProcessInfo_).ToString("F4"); tar.InterestRate = (Convert.ToDouble(tar.InterestRate) - InterestInfo_).ToString("F4"); tar.AllRate = (Convert.ToDouble(tar.AllRate) - (HeadInfo_ + ProcessInfo_ + InterestInfo_)).ToString("F4"); } else if (i == 5) { //会员的分成 HeadRate = Convert.ToDouble(Converter.ToFloat(age.HeadRate5, 0).ToString("F4")) * 0.01; ProcessRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate5, 0).ToString("F4")) * 0.01; InterestRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate5, 0).ToString("F4")) * 0.01; //计算分成 var HeadInfo_ = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); var ProcessInfo_ = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); var InterestInfo_ = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tars = new TAgentRate(); tars.HeadRate = "0"; tars.ProcessRate = "0"; tars.InterestRate = "0"; tars.AllRate = "0"; tars.NextHeadRate = HeadInfo_.ToString(); tars.NextProcessRate = ProcessInfo_.ToString(); tars.NextInterestRate = InterestInfo_.ToString(); tars.NextAllRate = (HeadInfo_ + ProcessInfo_ + InterestInfo_).ToString(); tars.Date = DateTime.Now; tars.TAgentId = ag.DirectAgentID; tars.TOrderId = item.ID; tarlist.Add(tars); tar.HeadRate = (Convert.ToDouble(tar.HeadRate) - HeadInfo_).ToString("F4"); tar.ProcessRate = (Convert.ToDouble(tar.ProcessRate) - ProcessInfo_).ToString("F4"); tar.InterestRate = (Convert.ToDouble(tar.InterestRate) - InterestInfo_).ToString("F4"); tar.AllRate = (Convert.ToDouble(tar.AllRate) - (HeadInfo_ + ProcessInfo_ + InterestInfo_)).ToString("F4"); } ag = (from c in db.TAgents where c.ID == ag.DirectAgentID select c).FirstOrDefault(); } tarlist.Add(tar); db.TAgentRate.InsertAllOnSubmit(tarlist); db.SubmitChanges(); //AgentRate ar = new AgentRate(); //ar.Id = agent.ID; //ar.DirectAgentID = Converter.ToInt(agent.DirectAgentID, 0); //ar.Groupid = agent.GID; //ar.Num = 0; //ar.HeadInfo = HeadInfo; //ar.ProcessInfo = ProcessInfo; //ar.InterestInfo = InterestInfo; //ar.NextheadInfo = HeadInfo; //ar.NextprocessInfo = ProcessInfo; //ar.NextinterestInfo = InterestInfo; //if (ar.DirectAgentID > 0) //{ // Converter.GetAgent(ar, ar, item.ID); //} //ar.HeadInfo = ar.NextheadInfo; //ar.ProcessInfo = ar.NextprocessInfo; //ar.InterestInfo = ar.NextinterestInfo; //ar.NextheadInfo = 0; //ar.NextprocessInfo = 0; //ar.NextinterestInfo = 0; //APIDataDataContext db2 = ConnectionHelper.Db; //{ // TAgentRate tar = new TAgentRate(); // tar.HeadRate = ar.HeadInfo.ToString(); // tar.ProcessRate = ar.ProcessInfo.ToString(); // tar.InterestRate = ar.InterestInfo.ToString(); // tar.AllRate = (ar.HeadInfo + ar.ProcessInfo + ar.InterestInfo).ToString(); // tar.NextHeadRate = ar.NextheadInfo.ToString(); // tar.NextProcessRate = ar.NextprocessInfo.ToString(); // tar.NextInterestRate = ar.NextinterestInfo.ToString(); // tar.NextAllRate = (ar.NextheadInfo + ar.NextprocessInfo + ar.NextinterestInfo).ToString(); // tar.Date = DateTime.Now; // tar.TAgentId = agent.ID; // tar.TOrderId = item.ID; // db2.TAgentRate.InsertOnSubmit(tar); // db2.SubmitChanges(); //} } #endregion } catch { } #region 资金记录 TAccountMoney tam = new TAccountMoney(); tam.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tam.RealAccountId = Converter.ToInt(item.TRealAccountsID, 0); tam.TypeId = 4; tam.OriginalMoney = user.AccountMoney; tam.CreateMoney = item.ProfitAndLoss; tam.NowMoney = user.AccountMoney + item.ProfitAndLoss; if (tam.NowMoney < 0) { tam.NowMoney = 0; } tam.CreateTime = nowdate; tam.UpDateTime = nowdate; tam.Status = 2; tam.TOrderId = item.ID; db.TAccountMoney.InsertOnSubmit(tam); TAccountMoney tams = new TAccountMoney(); tams.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tams.RealAccountId = Converter.ToInt(item.TRealAccountsID, 0); tams.TypeId = 5; tams.OriginalMoney = tam.NowMoney; tams.CreateMoney = item.Deposit; tams.NowMoney = tam.NowMoney - item.Deposit; if (tams.NowMoney < 0) { tams.NowMoney = 0; } tams.CreateTime = nowdate; tams.UpDateTime = nowdate; tams.Status = 2; tams.TOrderId = item.ID; db.TAccountMoney.InsertOnSubmit(tams); #endregion user.AccountMoney = user.AccountMoney + item.ProfitAndLoss - item.Deposit; if (user.AccountMoney < 0) { user.AccountMoney = 0; } db.SubmitChanges(); OLog.UpdateValue = ObjectToJson.ModelToJson(order); //写入操作日志 OLog.PageName = "平仓"; Converter.InsertOperationLog(OLog); return Json(new { code = "1", msg = "提交成功!" }); } else { return Json(new { code = "0", msg = "订单id不正确!" }); } } else { return Json(new { code = "0", msg = "订单id不正确!" }); } #endregion } } else { return Json(new { code = "0", msg = "提交失败请稍后在试!" }); } } else { //添加 #region 添加 TOrders to = new TOrders(); to.OrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); to.ProductID = Converter.ToInt(ProductID, 0); to.TRealAccountsID = TRealAccountsID; to.Deal = Deal == "1" ? true : false; to.OrderCount = Converter.ToInt(OrderCount, 0); to.OpenPrice = Converter.ToFloat(OpenPrice, 0); to.Profit = Converter.ToFloat(Profit, 0); to.Loss = Converter.ToFloat(Loss, 0); to.NowPrice = Converter.ToFloat(NowPrice, 0); to.Deposit = Converter.ToFloat(Deposit, 0); to.Interest = 0; double nowbaozhengjin = 0; var product = (from c in db.TProducts where c.ID == Converter.ToInt(ProductID, 0) select c).FirstOrDefault(); int OccupyFundsType = product.OccupyFundsType.Value; //保证金方式(每单必须有的保证金) 1固定(每笔统一价) 2浮动(按照交易金额的百分比来算) double OccupyFunds = Converter.ToFloat(product.OccupyFunds, 0); //保证金 固定(固定值*手数) 浮动(开仓价*固定值*手数) if (OccupyFundsType == 1) nowbaozhengjin = OccupyFunds * product.ContractNumber.Value * Converter.ToInt(OrderCount, 0); else nowbaozhengjin = 0.01 * OccupyFunds * product.ContractNumber.Value * Converter.ToFloat(NowPrice, 0) * Converter.ToInt(OrderCount, 0); to.OccupyFunds = nowbaozhengjin; to.OpenTime = Convert.ToDateTime(OpenTime); to.UpdateTime = DateTime.Now; try { to.OperatorIP = GetUserIp; } catch { return Json(new { code = "0", msg = "服务器内部错误!" }); } to.OrderState = 1; to.OrderType = 1; to.EntrustType = 0; db.TOrders.InsertOnSubmit(to); db.SubmitChanges(); return Json(new { code = "1", msg = "提交成功!" }); #endregion } } catch { return Json(new { code = "0", msg = "服务器内部错误!" }); } }
public ActionResult PostCommission() { APIDataDataContext db = APIDataContextProxy.APIDB; int id = 0; //Id string name = ""; //登陆名 string Type = ""; //type string msg = ""; //提示信息 bool fruit = false; //结果 TOperationLog OLog = new TOperationLog(); OLog.PageName = "会员资金审核"; try { var agentid = Request["agentid"]; var createdate = Request["createdate"]; var Yjtc = Convert.ToDouble(Converter.ToFloat(Request["Yjtc"], 0).ToString("f4")); var Yjjgf = Convert.ToDouble(Converter.ToFloat(Request["Yjjgf"], 0).ToString("f4")); var Yjcx = Convert.ToDouble(Converter.ToFloat(Request["Yjcx"], 0).ToString("f4")); var Yjxj = Convert.ToDouble(Converter.ToFloat(Request["Yjxj"], 0).ToString("f4")); var allrate = Convert.ToDouble(Converter.ToFloat(Request["allrate"], 0).ToString("f4")); TAgentCommission tac = new TAgentCommission(); tac.agentid = Convert.ToInt32(agentid); tac.createdate = Convert.ToDateTime(createdate); db.TAgentCommission.InsertOnSubmit(tac); var ag = (from c in db.TAgents where c.ID == Convert.ToInt32(agentid) select c).FirstOrDefault(); #region 资金记录 TAccountMoney tam = new TAccountMoney(); tam.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tam.AgentId = ag.ID; tam.TypeId = 4; tam.OriginalMoney = ag.AccountMoney; tam.CreateMoney = Yjtc; tam.NowMoney = ag.AccountMoney + Yjtc; if (tam.NowMoney < 0) { tam.NowMoney = 0; } tam.CreateTime = Convert.ToDateTime(createdate); tam.UpDateTime = Convert.ToDateTime(createdate); tam.Status = 2; tam.TOrderId = 0; db.TAccountMoney.InsertOnSubmit(tam); TAccountMoney tams = new TAccountMoney(); tams.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tams.AgentId = ag.ID; tams.TypeId = 5; tams.OriginalMoney = tam.NowMoney; tams.CreateMoney = Yjjgf; tams.NowMoney = tam.NowMoney + Yjjgf; if (tams.NowMoney < 0) { tams.NowMoney = 0; } tams.CreateTime = Convert.ToDateTime(createdate); tams.UpDateTime = Convert.ToDateTime(createdate); tams.Status = 2; tams.TOrderId = 0; db.TAccountMoney.InsertOnSubmit(tams); TAccountMoney tams1 = new TAccountMoney(); tams1.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tams1.AgentId = ag.ID; tams1.TypeId = 6; tams1.OriginalMoney = tams.NowMoney; tams1.CreateMoney = Yjcx; tams1.NowMoney = tams.NowMoney + Yjcx; if (tams1.NowMoney < 0) { tams1.NowMoney = 0; } tams1.CreateTime = Convert.ToDateTime(createdate); tams1.UpDateTime = Convert.ToDateTime(createdate); tams1.Status = 2; tams1.TOrderId = 0; db.TAccountMoney.InsertOnSubmit(tams1); TAccountMoney tams2 = new TAccountMoney(); tams2.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tams2.AgentId = ag.ID; tams2.TypeId = 7; tams2.OriginalMoney = tams1.NowMoney; tams2.CreateMoney = Yjxj; tams2.NowMoney = tams1.NowMoney + Yjxj; if (tams2.NowMoney < 0) { tams2.NowMoney = 0; } tams2.CreateTime = Convert.ToDateTime(createdate); tams2.UpDateTime = Convert.ToDateTime(createdate); tams2.Status = 2; tams2.TOrderId = 0; db.TAccountMoney.InsertOnSubmit(tams2); #endregion ag.AccountMoney = ag.AccountMoney + Yjtc + Yjjgf + Yjcx + Yjxj; db.SubmitChanges(); var total = allrate + Yjxj; StringBuilder sb = new StringBuilder(); sb.Append("{") .AppendFormat( "\"会员金额\":\"{0}\",\"分红\":\"{1}\",\"加工费\":\"{2}\",\"仓息\":\"{3}\",\"本级汇总\":\"{4}\",\"下级汇总\":\"{5}\",\"总计\":\"{6}\"" + "", ag.AccountMoney, Yjtc, Yjjgf, Yjcx, allrate, Yjxj, total).Append("}"); OLog.UpdateValue = sb.ToString(); OLog.BeforeValue = ""; //写入操作日志 OLog.UserID = Convert.ToInt32(Session["ID"]); OLog.UserType = 2;//0 用户 1 会员 2 员工 OLog.CreateDate = DateTime.Now; Converter.InsertOperationLog(OLog); //存入日志 id = Convert.ToInt32(Session["ID"]); //id Type = Session["Type"].ToString(); //类型 msg = "修改会员账户金额"; fruit = true; Converter.InsertLog(id, name, Type, msg, fruit); return Content("true"); } catch { //存入日志 id = Convert.ToInt32(Session["ID"]); //id Type = Session["Type"].ToString(); //类型 msg = "修改会员账户金额"; fruit = false; Converter.InsertLog(id, name, Type, msg, fruit); return Content("false"); } }
/// <summary> /// 调整资金 /// </summary> /// <param name="type">0表示客户,1表示会员</param> /// <param name="createMoney">调整金额</param> /// <param name="id">客户或会员的ID</param> /// <param name="typeid">存款或取款</param> /// <returns></returns> public ActionResult MoneyChange(int type, double createMoney, int id, int typeid) { APIDataDataContext db = APIDataContextProxy.APIDB; { try { TRealAccounts realAccount = new TRealAccounts(); TAgents agent = new TAgents(); TOperationLog OLog = new TOperationLog(); OLog.BeforeValue = ""; TAccountMoney accountMoney = new TAccountMoney() { CreateMoney = createMoney, TypeId = typeid, CreateTime = DateTime.Now, Status = 2, BankState=1,PlatformState=1,Examine=1 }; if (type == 0) { realAccount = db.TRealAccounts.Where(t => t.ID == id).FirstOrDefault(); accountMoney.OriginalMoney = realAccount.AccountMoney; accountMoney.NowMoney = realAccount.AccountMoney + (typeid == 1 ? createMoney : (-1) * createMoney); accountMoney.RealAccountId = id; realAccount.AccountMoney = accountMoney.NowMoney; if (typeid == 3 && realAccount.AccountMoney < 0) { return Json("余额不足!"); } } else { agent = db.TAgents.Where(t => t.ID == id).FirstOrDefault(); accountMoney.OriginalMoney = agent.AccountMoney; accountMoney.NowMoney = agent.AccountMoney + (typeid == 1 ? createMoney : (-1) * createMoney); accountMoney.AgentId = id; agent.AccountMoney = (double)accountMoney.NowMoney; if (typeid == 3 && agent.AccountMoney < 0) { return Json("余额不足!"); } } db.TAccountMoney.InsertOnSubmit(accountMoney); db.SubmitChanges(); OLog.UpdateValue = ObjectToJson.ModelToJson(accountMoney); //写入操作日志 OLog.UserID = Convert.ToInt32(Session["ID"]); OLog.UserType = 2;//0 用户 1 会员 2 员工 OLog.CreateDate = DateTime.Now; OLog.PageName = "调整金额"; Converter.InsertOperationLog(OLog); return Json(1); } catch { return Json("服务器内部错误!"); } } }
private bool CloseAllOrder(List<TOrders> orderList, APIDataDataContext db) { try { TOperationLog OLog = new TOperationLog(); if (orderList.Count > 0) { StringBuilder beforevalue=new StringBuilder(); beforevalue.Append("{\"IDlist\":["); foreach (var item in orderList) { beforevalue.Append("{"); beforevalue.AppendFormat("\"id\":\"{0}\"", item.ID); beforevalue.Append("},"); var product = (from c in db.TProducts join b in db.TLastClose on c.ProductCode equals b.ProductCode where c.ID == item.ProductID orderby c.ID select new { c, b.LastClose, b.LastUpdateTime }).FirstOrDefault(); if (product != null) { var Scale = Converter.ToFloat(product.c.Scale, 2); var nowdate = product.LastUpdateTime; #region 加工费 double closedeposit = 0.0; //加工费 if (product.c.DepositType == 1)//固定 { closedeposit = Converter.ToFloat(product.c.CloseDeposit, 0) * Converter.ToFloat(product.c.ContractNumber, 0) * Converter.ToFloat(item.OrderCount, 0); } else if (product.c.DepositType == 2)//浮动 { if (item.Deal == false) closedeposit = 0.01 * Converter.ToFloat(product.c.CloseDeposit, 0) * (Converter.ToFloat(product.LastClose, 0)) * Converter.ToFloat(product.c.ContractNumber, 0) * Converter.ToFloat(item.OrderCount, 0); else closedeposit = 0.01 * Converter.ToFloat(product.c.CloseDeposit, 0) * (Converter.ToFloat(product.LastClose, 0) + Converter.ToFloat(product.c.Fixedly, 0)) * Converter.ToFloat(product.c.ContractNumber, 0) * Converter.ToFloat(item.OrderCount, 0); } closedeposit = Converter.ToFloat(closedeposit.ToString("F" + Scale), 0); #endregion item.Deposit = Converter.ToFloat((Converter.ToFloat(item.Deposit, 0) + closedeposit).ToString("F" + Scale), 0); //double LastClose = 0.0; //市场价 收盘价 //double Spread = 0.0; //点数 //计算盈亏 //if (item.Deal == false)//卖出 //{ // LastClose = Converter.ToFloat(product.LastClose, 0) + Converter.ToFloat(product.c.Fixedly, 0); // Spread = Converter.ToFloat(item.OpenPrice, 0) - LastClose; //} //else if (item.Deal == true && item.Profit > 0)//买入 //{ // LastClose = Converter.ToFloat(product.LastClose, 0); // Spread = LastClose - Converter.ToFloat(item.OpenPrice, 0); //} //item.Spread = Converter.ToFloat(Spread.ToString("F" + Scale), 0); //item.ProfitAndLoss = Converter.ToFloat((Converter.ToFloat(Spread * item.OrderCount, 0) * Converter.ToFloat(product.c.ContractNumber, 0)).ToString("F" + Scale), 0); //item.NowPrice = Converter.ToFloat(LastClose.ToString("F" + Scale), 0); //item.NetProfit = Converter.ToFloat((Converter.ToFloat(item.ProfitAndLoss, 0) - Converter.ToFloat(item.Deposit, 0) - Converter.ToFloat(item.Interest, 0)).ToString("F" + Scale), 0); item.CloseType = "清算/交割"; item.UpdateTime = nowdate; item.OrderState = 2; item.OrderType = 2; var user = (from c in db.TRealAccounts where c.ID == item.TRealAccountsID select c).FirstOrDefault(); if (user==null) { db.TOrders.DeleteOnSubmit(item); } else { #region 资金记录 TAccountMoney tam = new TAccountMoney(); tam.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tam.RealAccountId = Converter.ToInt(item.TRealAccountsID, 0); tam.TypeId = 4; tam.OriginalMoney = user.AccountMoney; tam.CreateMoney = item.ProfitAndLoss; tam.NowMoney = user.AccountMoney + item.ProfitAndLoss; if (tam.NowMoney<0) { tam.NowMoney = 0; } tam.CreateTime = nowdate; tam.UpDateTime = nowdate; tam.Status = 2; tam.TOrderId = item.ID; db.TAccountMoney.InsertOnSubmit(tam); TAccountMoney tams = new TAccountMoney(); tams.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tams.RealAccountId = Converter.ToInt(item.TRealAccountsID, 0); tams.TypeId = 5; tams.OriginalMoney = tam.NowMoney; tams.CreateMoney = item.Deposit; tams.NowMoney = tam.NowMoney - item.Deposit; if (tams.NowMoney<0) { tams.NowMoney = 0; } tams.CreateTime = nowdate; tams.UpDateTime = nowdate; tams.Status = 2; tams.TOrderId = item.ID; db.TAccountMoney.InsertOnSubmit(tams); #endregion user.AccountMoney = user.AccountMoney+item.ProfitAndLoss-item.Deposit; if (user.AccountMoney<0) { user.AccountMoney = 0; } } db.SubmitChanges(); } else { } } //移除最后一个‘,’ beforevalue.Remove(beforevalue.Length - 1, 1); beforevalue.Append("]}"); OLog.BeforeValue = beforevalue.ToString(); OLog.UpdateValue = ""; //写入操作日志 OLog.UserID = Convert.ToInt32(Session["ID"]); OLog.UserType = 2;//0 用户 1 会员 2 员工 OLog.CreateDate = DateTime.Now; OLog.PageName = "财务清算"; Converter.InsertOperationLog(OLog); return true; } else { return false; } } catch { return false; } }
/// <summary> /// 平仓操作 /// 10050 订单id不正确! /// 10051 订单id不正确! /// 10052 服务器错误! /// </summary> /// <returns></returns> public string CloseOrder() { try { int OrderId = Converter.ToInt(Request["OrderId"], 0); //订单id double ClosePrice = Convert.ToDouble(Request["ClosePrice"]); //关闭价格 APIDataDataContext db = APIDataContextProxy.APIDB; var item = (from c in db.TOrders where c.ID == OrderId && c.OrderState == 1 && c.OrderType == 1 select c).FirstOrDefault(); if (item != null) { var product = (from c in db.TProducts join b in db.TLastClose on c.ProductCode equals b.ProductCode where c.ID == item.ProductID orderby c.ID select new { c, b.LastClose, b.LastUpdateTime }).FirstOrDefault(); if (product != null) { var OffsetLow = userGroup.OffsetLow; var MinWareTime = userGroup.MinWareTime; #region 允许交易 var AllowTrade = userGroup.AllowTrade; //允许交易 if (AllowTrade == false) { return ErrMsg(10039, "对不起您所在的用户组现在不允许交易!"); } TRealAccounts tra = (from c in db.TRealAccounts where c.ID == userid select c).FirstOrDefault(); var traAllowTrade = tra.AllowTrade; if (traAllowTrade == false) { return ErrMsg(10039, "对不起您现在不允许交易!"); } #endregion if (MinWareTime > 0) { DateTime nowdt = DateTime.Now; try { if ((nowdt - item.OpenTime.Value).TotalSeconds < MinWareTime) { return ErrMsg(10050, "持仓最少时间为" + MinWareTime + "秒!"); } } catch { } } var lastcloseprice = 0.0; if (item.Deal.Value) { lastcloseprice = product.LastClose.Value; if (lastcloseprice - ClosePrice > OffsetLow || ClosePrice - lastcloseprice > OffsetLow) { return ErrMsg(10050, "价格已经改变请重新开仓!"); } } else { lastcloseprice = product.c.Fixedly.Value + product.LastClose.Value; if (lastcloseprice - ClosePrice > OffsetLow || ClosePrice - lastcloseprice > OffsetLow) { return ErrMsg(10050, "价格已经改变请重新开仓!"); } } ClosePrice = lastcloseprice; var Scale = Converter.ToFloat(product.c.Scale, 2); var nowdate = product.LastUpdateTime; #region 加工费 double closedeposit = 0.0; //加工费 if (product.c.DepositType == 1)//固定(设定的值*合约数*手数) { closedeposit = Converter.ToFloat(product.c.CloseDeposit) * Converter.ToFloat(product.c.ContractNumber) * Converter.ToFloat(item.OrderCount); } else if (product.c.DepositType == 2)//浮动(设定的比率*现价*合约数*手数) { if (item.Deal == false) closedeposit = 0.01 * Converter.ToFloat(product.c.CloseDeposit) * (Converter.ToFloat(product.LastClose)) * Converter.ToFloat(product.c.ContractNumber) * Converter.ToFloat(item.OrderCount); else closedeposit = 0.01 * Converter.ToFloat(product.c.CloseDeposit) * (Converter.ToFloat(product.LastClose) + Converter.ToFloat(product.c.Fixedly)) * Converter.ToFloat(product.c.ContractNumber) * Converter.ToFloat(item.OrderCount); } closedeposit = Converter.ToFloat(closedeposit.ToString("F" + Scale)); #endregion item.Deposit = Converter.ToFloat((Converter.ToFloat(item.Deposit) + closedeposit).ToString("F" + Scale));//修改加工费 double LastClose = 0.0; //市场价 收盘价 double Spread = 0.0; //点数 //计算盈亏 if (item.Deal == false)//卖出 { LastClose = Converter.ToFloat(product.LastClose) + Converter.ToFloat(product.c.Fixedly); Spread = Converter.ToFloat(item.OpenPrice) - LastClose; } else if (item.Deal == true)//买入 { LastClose = Converter.ToFloat(product.LastClose); Spread = LastClose - Converter.ToFloat(item.OpenPrice); } item.Spread = Converter.ToFloat(Spread.ToString("F" + Scale)); item.ProfitAndLoss = Converter.ToFloat((Converter.ToFloat(Spread * item.OrderCount) * Converter.ToFloat(product.c.ContractNumber)).ToString("F" + Scale)); item.NowPrice = Converter.ToFloat(LastClose.ToString("F" + Scale)); item.NetProfit = Converter.ToFloat((Converter.ToFloat(item.ProfitAndLoss) - Converter.ToFloat(item.Deposit) - Converter.ToFloat(item.Interest)).ToString("F" + Scale)); item.UpdateTime = nowdate; item.OrderState = 2; item.OrderType = 2; item.CloseType = "人工平仓"; var user = (from c in db.TRealAccounts where c.ID == item.TRealAccountsID select c).FirstOrDefault(); try { var agent = (from c in db.TAgents join b in db.TAgentGroup on c.GroupID equals b.ID where c.ID == user.AgendID select new { c.ID, c.DirectAgentID, c.Depth, c.HeadRate1, c.ProcessRate1, c.InterestRate1, c.HeadRate2, c.ProcessRate2, c.InterestRate2, c.HeadRate3, c.ProcessRate3, c.InterestRate3, c.HeadRate4, c.ProcessRate4, c.InterestRate4, c.HeadRate5, c.ProcessRate5, c.InterestRate5, GID = b.ID, b.GroupName, b.ProcessRate, b.HeadRate, b.InterestRate, b.NextRate }).FirstOrDefault(); #region 分成 if (agent != null) { //查询客户所属会员的分成 double HeadRate = Convert.ToDouble(Converter.ToFloat(agent.HeadRate, 0).ToString("F4")) * 0.01;//直属会员浮动盈亏比率 double ProcessRate = Convert.ToDouble(Converter.ToFloat(agent.ProcessRate, 0).ToString("F4")) * 0.01;//加工费比率 double InterestRate = Convert.ToDouble(Converter.ToFloat(agent.InterestRate, 0).ToString("F4")) * 0.01;//仓息比率 //计算分成 double HeadInfo = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4"));//盈利与客户相反:客户赚钱,会员亏钱 double ProcessInfo = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4"));//加工费 double InterestInfo = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4"));//仓息 //会员分红相关,跟每笔订单相关 TAgentRate tar = new TAgentRate(); tar.HeadRate = HeadInfo.ToString(); tar.ProcessRate = ProcessInfo.ToString(); tar.InterestRate = InterestInfo.ToString(); tar.AllRate = (HeadInfo + ProcessInfo + InterestInfo).ToString(); tar.NextHeadRate = "0"; tar.NextProcessRate = "0"; tar.NextInterestRate = "0"; tar.NextAllRate = "0"; tar.Date = DateTime.Now; tar.TAgentId = agent.ID; tar.TOrderId = item.ID; IList<TAgentRate> tarlist = new List<TAgentRate>(); int depth = agent.Depth;//深度 if (depth > 6) depth = 6; var ag = (from c in db.TAgents where c.ID == agent.ID select c).FirstOrDefault(); var age = ag; for (int i = 1; i < depth; i++) { if (i == 1)//直属会员的上1级 { //会员的分成 HeadRate = Convert.ToDouble(Converter.ToFloat(age.HeadRate1, 0).ToString("F4")) * 0.01; ProcessRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate1, 0).ToString("F4")) * 0.01; InterestRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate1, 0).ToString("F4")) * 0.01; //计算分成 var HeadInfo_ = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); var ProcessInfo_ = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); var InterestInfo_ = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tars = new TAgentRate(); tars.HeadRate = "0"; tars.ProcessRate = "0"; tars.InterestRate = "0"; tars.AllRate = "0"; tars.NextHeadRate = HeadInfo_.ToString(); tars.NextProcessRate = ProcessInfo_.ToString(); tars.NextInterestRate = InterestInfo_.ToString(); tars.NextAllRate = (HeadInfo_ + ProcessInfo_ + InterestInfo_).ToString(); tars.Date = DateTime.Now; tars.TAgentId = ag.DirectAgentID; tars.TOrderId = item.ID; tarlist.Add(tars); tar.HeadRate = (Convert.ToDouble(tar.HeadRate) - HeadInfo_).ToString("F4"); tar.ProcessRate = (Convert.ToDouble(tar.ProcessRate) - ProcessInfo_).ToString("F4"); tar.InterestRate = (Convert.ToDouble(tar.InterestRate) - InterestInfo_).ToString("F4"); tar.AllRate = (Convert.ToDouble(tar.AllRate) - (HeadInfo_ + ProcessInfo_ + InterestInfo_)).ToString("F4"); } else if (i == 2)//指数会员的上2级 { //会员的分成 HeadRate = Convert.ToDouble(Converter.ToFloat(age.HeadRate2, 0).ToString("F4")) * 0.01; ProcessRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate2, 0).ToString("F4")) * 0.01; InterestRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate2, 0).ToString("F4")) * 0.01; //计算分成 var HeadInfo_ = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); var ProcessInfo_ = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); var InterestInfo_ = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tars = new TAgentRate(); tars.HeadRate = "0"; tars.ProcessRate = "0"; tars.InterestRate = "0"; tars.AllRate = "0"; tars.NextHeadRate = HeadInfo_.ToString(); tars.NextProcessRate = ProcessInfo_.ToString(); tars.NextInterestRate = InterestInfo_.ToString(); tars.NextAllRate = (HeadInfo_ + ProcessInfo_ + InterestInfo_).ToString(); tars.Date = DateTime.Now; tars.TAgentId = ag.DirectAgentID; tars.TOrderId = item.ID; tarlist.Add(tars); tar.HeadRate = (Convert.ToDouble(tar.HeadRate) - HeadInfo_).ToString("F4"); tar.ProcessRate = (Convert.ToDouble(tar.ProcessRate) - ProcessInfo_).ToString("F4"); tar.InterestRate = (Convert.ToDouble(tar.InterestRate) - InterestInfo_).ToString("F4"); tar.AllRate = (Convert.ToDouble(tar.AllRate) - (HeadInfo_ + ProcessInfo_ + InterestInfo_)).ToString("F4"); } else if (i == 3)//指数会员的上3级 { //会员的分成 HeadRate = Convert.ToDouble(Converter.ToFloat(age.HeadRate3, 0).ToString("F4")) * 0.01; ProcessRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate3, 0).ToString("F4")) * 0.01; InterestRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate3, 0).ToString("F4")) * 0.01; //计算分成 var HeadInfo_ = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); var ProcessInfo_ = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); var InterestInfo_ = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tars = new TAgentRate(); tars.HeadRate = "0"; tars.ProcessRate = "0"; tars.InterestRate = "0"; tars.AllRate = "0"; tars.NextHeadRate = HeadInfo_.ToString(); tars.NextProcessRate = ProcessInfo_.ToString(); tars.NextInterestRate = InterestInfo_.ToString(); tars.NextAllRate = (HeadInfo_ + ProcessInfo_ + InterestInfo_).ToString(); tars.Date = DateTime.Now; tars.TAgentId = ag.DirectAgentID; tars.TOrderId = item.ID; tarlist.Add(tars); tar.HeadRate = (Convert.ToDouble(tar.HeadRate) - HeadInfo_).ToString("F4"); tar.ProcessRate = (Convert.ToDouble(tar.ProcessRate) - ProcessInfo_).ToString("F4"); tar.InterestRate = (Convert.ToDouble(tar.InterestRate) - InterestInfo_).ToString("F4"); tar.AllRate = (Convert.ToDouble(tar.AllRate) - (HeadInfo_ + ProcessInfo_ + InterestInfo_)).ToString("F4"); } else if (i == 4)//指数会员的上4级 { //会员的分成 HeadRate = Convert.ToDouble(Converter.ToFloat(age.HeadRate4, 0).ToString("F4")) * 0.01; ProcessRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate4, 0).ToString("F4")) * 0.01; InterestRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate4, 0).ToString("F4")) * 0.01; //计算分成 var HeadInfo_ = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); var ProcessInfo_ = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); var InterestInfo_ = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tars = new TAgentRate(); tars.HeadRate = "0"; tars.ProcessRate = "0"; tars.InterestRate = "0"; tars.AllRate = "0"; tars.NextHeadRate = HeadInfo_.ToString(); tars.NextProcessRate = ProcessInfo_.ToString(); tars.NextInterestRate = InterestInfo_.ToString(); tars.NextAllRate = (HeadInfo_ + ProcessInfo_ + InterestInfo_).ToString(); tars.Date = DateTime.Now; tars.TAgentId = ag.DirectAgentID; tars.TOrderId = item.ID; tarlist.Add(tars); tar.HeadRate = (Convert.ToDouble(tar.HeadRate) - HeadInfo_).ToString("F4"); tar.ProcessRate = (Convert.ToDouble(tar.ProcessRate) - ProcessInfo_).ToString("F4"); tar.InterestRate = (Convert.ToDouble(tar.InterestRate) - InterestInfo_).ToString("F4"); tar.AllRate = (Convert.ToDouble(tar.AllRate) - (HeadInfo_ + ProcessInfo_ + InterestInfo_)).ToString("F4"); } else if (i == 5)//指数会员的上5级 { //会员的分成 HeadRate = Convert.ToDouble(Converter.ToFloat(age.HeadRate5, 0).ToString("F4")) * 0.01; ProcessRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate5, 0).ToString("F4")) * 0.01; InterestRate = Convert.ToDouble(Converter.ToFloat(age.ProcessRate5, 0).ToString("F4")) * 0.01; //计算分成 var HeadInfo_ = Convert.ToDouble((Converter.ToFloat(item.ProfitAndLoss, 0) * HeadRate * -1).ToString("F4")); var ProcessInfo_ = Convert.ToDouble((Converter.ToFloat(item.Deposit, 0) * ProcessRate).ToString("F4")); var InterestInfo_ = Convert.ToDouble((Converter.ToFloat(item.Interest, 0) * InterestRate).ToString("F4")); TAgentRate tars = new TAgentRate(); tars.HeadRate = "0"; tars.ProcessRate = "0"; tars.InterestRate = "0"; tars.AllRate = "0"; tars.NextHeadRate = HeadInfo_.ToString(); tars.NextProcessRate = ProcessInfo_.ToString(); tars.NextInterestRate = InterestInfo_.ToString(); tars.NextAllRate = (HeadInfo_ + ProcessInfo_ + InterestInfo_).ToString(); tars.Date = DateTime.Now; tars.TAgentId = ag.DirectAgentID; tars.TOrderId = item.ID; tarlist.Add(tars); tar.HeadRate = (Convert.ToDouble(tar.HeadRate) - HeadInfo_).ToString("F4"); tar.ProcessRate = (Convert.ToDouble(tar.ProcessRate) - ProcessInfo_).ToString("F4"); tar.InterestRate = (Convert.ToDouble(tar.InterestRate) - InterestInfo_).ToString("F4"); tar.AllRate = (Convert.ToDouble(tar.AllRate) - (HeadInfo_ + ProcessInfo_ + InterestInfo_)).ToString("F4"); } ag = (from c in db.TAgents where c.ID == ag.DirectAgentID select c).FirstOrDefault(); } tarlist.Add(tar); db.TAgentRate.InsertAllOnSubmit(tarlist); db.SubmitChanges(); //AgentRate ar = new AgentRate(); //ar.Id = agent.ID; //ar.DirectAgentID = Converter.ToInt(agent.DirectAgentID, 0); //ar.Groupid = agent.GID; //ar.Num = 0; //ar.HeadInfo = HeadInfo; //ar.ProcessInfo = ProcessInfo; //ar.InterestInfo = InterestInfo; //ar.NextheadInfo = HeadInfo; //ar.NextprocessInfo = ProcessInfo; //ar.NextinterestInfo = InterestInfo; //if (ar.DirectAgentID > 0) //{ // Converter.GetAgent(ar, ar, item.ID); //} //ar.HeadInfo = ar.NextheadInfo; //ar.ProcessInfo = ar.NextprocessInfo; //ar.InterestInfo = ar.NextinterestInfo; //ar.NextheadInfo = 0; //ar.NextprocessInfo = 0; //ar.NextinterestInfo = 0; //APIDataDataContext db2 = APIDataContextProxy.APIDB; //{ // TAgentRate tar = new TAgentRate(); // tar.HeadRate = ar.HeadInfo.ToString(); // tar.ProcessRate = ar.ProcessInfo.ToString(); // tar.InterestRate = ar.InterestInfo.ToString(); // tar.AllRate = (ar.HeadInfo + ar.ProcessInfo + ar.InterestInfo).ToString(); // tar.NextHeadRate = ar.NextheadInfo.ToString(); // tar.NextProcessRate = ar.NextprocessInfo.ToString(); // tar.NextInterestRate = ar.NextinterestInfo.ToString(); // tar.NextAllRate = (ar.NextheadInfo + ar.NextprocessInfo + ar.NextinterestInfo).ToString(); // tar.Date = DateTime.Now; // tar.TAgentId = agent.ID; // tar.TOrderId = item.ID; // db2.TAgentRate.InsertOnSubmit(tar); // db2.SubmitChanges(); //} } #endregion } catch { } #region 资金记录 TAccountMoney tam = new TAccountMoney(); tam.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tam.RealAccountId = Converter.ToInt(item.TRealAccountsID); tam.TypeId = 4; tam.OriginalMoney = user.AccountMoney; tam.CreateMoney = item.ProfitAndLoss; tam.NowMoney = user.AccountMoney + item.ProfitAndLoss; if (tam.NowMoney < 0) { tam.NowMoney = 0; } tam.CreateTime = nowdate; tam.UpDateTime = nowdate; tam.Status = 2; tam.TOrderId = item.ID; db.TAccountMoney.InsertOnSubmit(tam); TAccountMoney tams = new TAccountMoney(); tams.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tams.RealAccountId = Converter.ToInt(item.TRealAccountsID, 0); tams.TypeId = 5; tams.OriginalMoney = tam.NowMoney; tams.CreateMoney = item.Deposit; tams.NowMoney = tam.NowMoney - item.Deposit; if (tams.NowMoney < 0) { tams.NowMoney = 0; } tams.CreateTime = nowdate; tams.UpDateTime = nowdate; tams.Status = 2; tams.TOrderId = item.ID; db.TAccountMoney.InsertOnSubmit(tams); #endregion user.AccountMoney = user.AccountMoney + item.ProfitAndLoss - item.Deposit; if (user.AccountMoney < 0) { user.AccountMoney = 0; } db.SubmitChanges(); JObject jb = new JObject(); jb["success"] = "TRUE"; jb["content"] = OrderId; return jb.ToString(); } else { return ErrMsg(10050, "订单id不正确!"); } } else { return ErrMsg(10051, "订单id不正确!"); } } catch { return ErrMsg(10052, "服务器错误!"); } }
//注册 public string Regist() { APIDataDataContext db = APIDataContextProxy.APIDB; string Name = SoftwareAPI.Utils.Converter.ToString(Request["Name"], ""); string Sexs = SoftwareAPI.Utils.Converter.ToString(Request["Sex"], ""); int AccountType = SoftwareAPI.Utils.Converter.ToInt(Request["AccountType"], 0);//帐号类型 0模拟 1 实盘 string Phone = SoftwareAPI.Utils.Converter.ToString(Request["Phone"], "");//手机 string Email = SoftwareAPI.Utils.Converter.ToString(Request["Email"], "");//邮箱 int CityID = SoftwareAPI.Utils.Converter.ToInt(Request["CityID"], 0);//地区; string Address = SoftwareAPI.Utils.Converter.ToString(Request["Address"], "");//地址; int AgendID = SoftwareAPI.Utils.Converter.ToInt(Request["AgendID"], 0);//所属会员; string PassWord = SoftwareAPI.Utils.Converter.ToString(Request["PassWord"], "");//密码 string Account = "";//生成 bool Sex = false; sysPreference = db.TSysPreference.FirstOrDefault(); if (AccountType == 0 && sysPreference.AllowDemo == false) { JObject jo = new JObject(); jo["success"] = 10003; jo["token"] = ""; jo["msg"] = "该平台禁止模拟账户注册!"; return jo.ToString(); } if (Sexs.ToLower() == "true") { Sex = true; } string IP = GetUserIp;//密码 var user = (from c in db.TRealAccounts where c.Email.ToUpper() == Email.ToUpper() || c.Phone.ToUpper() == Phone.ToUpper() select c).FirstOrDefault(); if (string.IsNullOrEmpty(Name) || string.IsNullOrEmpty(Phone) || string.IsNullOrEmpty(Email) || string.IsNullOrEmpty(PassWord)) { JObject jo = new JObject(); jo["success"] = 10003; jo["token"] = ""; jo["msg"] = "请输入完整!"; return jo.ToString(); } if (user != null) { JObject jo = new JObject(); jo["success"] = 10004; jo["token"] = ""; jo["msg"] = "该用户已经注册过了!"; return jo.ToString(); } else { //查询平台设置 var sys = (from c in db.TSysPreference select c).FirstOrDefault(); string beforename = "";//帐号前缀 if (AccountType == 1)//真实帐号 { beforename = sys.LCPrefix; } else //模拟帐号 { beforename = sys.DCPrefix; } Account = beforename + DateTime.Now.ToString("yyyyMMddHHmmss"); var group = (from c in db.TUserGroup orderby c.IsDefault descending select c).FirstOrDefault(); //添加新用户 user = new TRealAccounts(); //Account user.Name = Name; user.Sex = Sex; user.Account = Account; user.AccountType = AccountType; user.Phone = Phone; user.Email = Email; user.CityID = CityID; user.Address = Address; if (AgendID == 0) user.AgendID = (from c in db.TAgents orderby c.Depth ascending select c.ID ).FirstOrDefault(); else user.AgendID = AgendID; user.PassWord = PassWord; user.AccountMoney = 0; if (AccountType != 1) { try { if (sysPreference.DefaultDemoFin > 0) { user.AccountMoney = sysPreference.DefaultDemoFin; user.AccountBeginMoney = sysPreference.DefaultDemoFin;//赠金 TAccountMoney tam = new TAccountMoney(); tam.MoneyOrderNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); tam.RealAccountId = Converter.ToInt(user.ID); tam.TypeId = 2; tam.OriginalMoney = user.AccountMoney; tam.CreateMoney = sysPreference.DefaultDemoFin; tam.NowMoney = sysPreference.DefaultDemoFin; if (tam.NowMoney < 0) { tam.NowMoney = 0; } tam.CreateTime = DateTime.Now; tam.UpDateTime = DateTime.Now; tam.Status = 2; tam.TOrderId = 0; db.TAccountMoney.InsertOnSubmit(tam); } } catch { } } //user.AccountType = AccountType; user.LastLoginIP = IP; user.LastLoginTime = DateTime.Now; try { user.GroupID = group.ID; } catch { user.GroupID = 0; } db.TRealAccounts.InsertOnSubmit(user); db.SubmitChanges(); user.Account = beforename + user.ID.ToString("000000"); db.SubmitChanges(); //Account = beforename + DateTime.Now.ToString("yyyyMMddHHmmss"); //查询accesstoken 是否有 Access access = (from c in db.Access where c.userid == user.ID select c).FirstOrDefault(); string token = ""; if (access != null)// 数据库有accesstoken { token = access.access_token; } else { access = new Access(); access.userid = user.ID; string access_token = FormsAuthentication.HashPasswordForStoringInConfigFile(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "MD5"); access.access_token = access_token; access.expires_in = 0; access.scope = "0"; access.datetime = DateTime.Now; access.platform_name = sys.FullName; access.deviceid = 0; db.Access.InsertOnSubmit(access); db.SubmitChanges(); } JObject job = new JObject(); job["token"] = access.access_token; job["Account"] = user.Account; job["MinVolume"] = group.MinVolume; job["MaxVolume"] = group.MaxVolume; job["EntrustDeadLine"] = group.EntrustDeadLine; JObject jo = new JObject(); jo["success"] = "TRUE"; jo["content"] = job; jo["msg"] = "登陆成功!"; return jo.ToString(); } }