Exemple #1
0
 public async Task <Guid> Post(FundManager fundManager)
 {
     return(await _repository.Create(fundManager));
 }
 public async Task <Guid> Post(FundManager content)
 {
     return(await _client.PostContentAndGetAsync <Guid, FundManager>("api/FundManager/", content));
 }
 public Task <Guid> Update(FundManager fundManager)
 {
     _fundManagers[fundManager.Id] = fundManager;
     return(Task.FromResult(fundManager.Id));
 }
Exemple #4
0
 public async Task <Guid> Put(FundManager fundManager)
 {
     return(await _repository.Update(fundManager));
 }
Exemple #5
0
        public void HandleClientChargeMoney(string userID, int rid, int addMoney, bool transmit, int superInputFanLi = 0)
        {
            JieriIPointsExchgActivity act = HuodongCachingMgr.GetJieriIPointsExchgActivity();

            if (null != act)
            {
                act.OnMoneyChargeEvent(userID, rid, addMoney);
            }
            EverydayActivity everyAct = HuodongCachingMgr.GetEverydayActivity();

            if (null != everyAct)
            {
                everyAct.OnMoneyChargeEvent(userID, rid, addMoney);
            }
            SpecPriorityActivity spAct = HuodongCachingMgr.GetSpecPriorityActivity();

            if (null != everyAct)
            {
                spAct.OnMoneyChargeEvent(userID, rid, addMoney);
            }
            if (superInputFanLi > 0)
            {
                JieriSuperInputActivity siAct = HuodongCachingMgr.GetJieRiSuperInputActivity();
                if (null != siAct)
                {
                    siAct.OnMoneyChargeEvent(userID, rid, addMoney, superInputFanLi);
                }
            }
            TMSKSocket clientSocket = GameManager.OnlineUserSession.FindSocketByUserID(userID);

            if (null == clientSocket)
            {
                SpecialActivity specAct = HuodongCachingMgr.GetSpecialActivity();
                if (null != specAct)
                {
                    specAct.OnMoneyChargeEventOffLine(userID, rid, addMoney);
                }
            }
            else
            {
                if (transmit)
                {
                    LogManager.WriteLog(LogTypes.SQL, string.Format("通知账户ID{0}的角色更新元宝数量", userID), null, true);
                }
                GameClient otherClient = GameManager.ClientMgr.FindClient(clientSocket);
                if (null != otherClient)
                {
                    SpecialActivity specAct = HuodongCachingMgr.GetSpecialActivity();
                    if (null != specAct)
                    {
                        specAct.OnMoneyChargeEventOnLine(otherClient, addMoney);
                    }
                    GameManager.ClientMgr.AddUserMoney(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, otherClient, 0, "", ActivityTypes.None, "");
                    GameManager.logDBCmdMgr.AddDBLogInfo(-1, "钻石", "GM命令强迫更新", "系统", otherClient.ClientData.RoleName, "增加", addMoney, otherClient.ClientData.ZoneID, otherClient.strUserID, otherClient.ClientData.UserMoney, otherClient.ServerId, null);
                    otherClient._IconStateMgr.FlushChongZhiIconState(otherClient);
                    otherClient._IconStateMgr.CheckJieRiActivity(otherClient, false);
                    otherClient._IconStateMgr.SendIconStateToClient(otherClient);
                    UserReturnManager.getInstance().initUserReturnData(otherClient);
                    SingletonTemplate <SevenDayActivityMgr> .Instance().OnCharge(otherClient);

                    FundManager.initFundData(otherClient);
                }
                else
                {
                    SpecialActivity specAct = HuodongCachingMgr.GetSpecialActivity();
                    if (null != specAct)
                    {
                        specAct.OnMoneyChargeEventOffLine(userID, rid, addMoney);
                    }
                }
            }
        }
 public void Update(Guid id, FundManager fundManager)
 {
     _fundManagers[id] = fundManager;
 }
Exemple #7
0
        public UserQueryInfo QueryUserByKey(string userId, string agentId)
        {
            var userManager = new UserBalanceManager();
            var reg         = userManager.QueryUserRegister(userId);

            if (reg == null)
            {
                throw new Exception("用户不存在");
            }
            if (!string.IsNullOrEmpty(agentId) && reg.AgentId != agentId)
            {
                throw new Exception(string.Format("用户{0}不属于您发展的用户", userId));
            }

            var balance = userManager.QueryUserBalance(userId);

            if (balance == null)
            {
                throw new Exception("用户账户不存在");
            }

            var realNameManager = new UserRealNameManager();
            var real            = realNameManager.GetUserRealName(userId);

            //var apliy = new AlipayLoginInfo();
            //var apliyCount = apliy.ApliyCount;
            var mobileManagr = new UserMobileManager();
            var mobile       = mobileManagr.GetUserMobile(userId);

            var fundManger         = new FundManager();
            var agentFreezeBalance = fundManger.QueryAgentFreezeBalanceByUserId(userId);
            var caibbFreezeBalance = 0M;

            if (balance.FreezeBalance > 0)
            {
                caibbFreezeBalance = balance.FreezeBalance - agentFreezeBalance;//网站冻结资金=总冻结资金-代理冻结资金;
            }
            var userAlipayManager = new UserAlipayManager();
            var userAlipy         = userAlipayManager.GetUserAlipay(userId);


            var userQQManager = new UserQQManager();
            var userQQ        = userQQManager.GetUserQQ(userId);

            var ocAgentManager = new OCAgentManager();
            var ocAgent        = ocAgentManager.QueryOCAgent(userId);

            return(new UserQueryInfo
            {
                DisplayName = reg.DisplayName,
                UserId = reg.UserId,
                RealName = real == null ? string.Empty : real.RealName,
                IdCardNumber = real == null ? string.Empty : real.IdCardNumber,
                Mobile = mobile == null ? string.Empty : mobile.Mobile,
                FillMoneyBalance = balance.FillMoneyBalance,
                BonusBalance = balance.BonusBalance,
                CommissionBalance = balance.CommissionBalance,
                ExpertsBalance = balance.ExpertsBalance,
                RedBagBalance = balance.RedBagBalance,
                FreezeBalance = caibbFreezeBalance,
                IsEnable = reg.IsEnable,
                AgentId = reg.AgentId,
                IsAgent = reg.IsAgent,
                CardType = "",
                ComeFrom = reg.ComeFrom,
                Email = "",
                IsFillMoney = reg.IsFillMoney,
                IsSettedEmail = true,
                IsSettedMobile = mobile == null ? false : mobile.IsSettedMobile,
                IsSettedRealName = real == null ? false : real.IsSettedRealName,
                RegisterIp = reg.RegisterIp,
                RegTime = reg.CreateTime,
                VipLevel = reg.VipLevel,
                CurrentDouDou = balance.CurrentDouDou,
                ApliyCount = userAlipy == null ? string.Empty : userAlipy.AlipayAccount,
                QQNumber = userQQ == null ? string.Empty : userQQ.QQ,
                CPSMode = ocAgent == null ? 0 : ocAgent.CPSMode,
                UserGrowth = balance.UserGrowth,
                CPSBalance = balance.CPSBalance
            });
        }
Exemple #8
0
        public UserQueryInfo QueryUserByUserName(string userName, string agentId)
        {
            var userManager = new UserBalanceManager();
            var reg         = userManager.QueryUserRegisterByUserName(userName);

            if (reg == null)
            {
                throw new Exception("用户不存在");
            }
            if (string.IsNullOrEmpty(reg.AgentId) || reg.AgentId != agentId)
            {
                throw new Exception(string.Format("用户{0}不属于您发展的用户", userName));
            }

            var balance = userManager.QueryUserBalance(reg.UserId);

            if (balance == null)
            {
                throw new Exception("用户账户不存在");
            }

            var realNameManager = new UserRealNameManager();
            var real            = realNameManager.GetUserRealName(reg.UserId);

            var mobileManagr = new UserMobileManager();
            var mobile       = mobileManagr.GetUserMobile(reg.UserId);

            var fundManger         = new FundManager();
            var agentFreezeBalance = fundManger.QueryAgentFreezeBalanceByUserId(reg.UserId);
            var caibbFreezeBalance = 0M;

            if (balance.FreezeBalance > 0)
            {
                caibbFreezeBalance = balance.FreezeBalance - agentFreezeBalance;//网站冻结资金=总冻结资金-代理冻结资金;
            }
            return(new UserQueryInfo
            {
                DisplayName = reg.DisplayName,
                UserId = reg.UserId,
                RealName = real == null ? string.Empty : real.RealName,
                IdCardNumber = real == null ? string.Empty : real.IdCardNumber,
                Mobile = mobile == null ? string.Empty : mobile.Mobile,
                FillMoneyBalance = balance.FillMoneyBalance,
                BonusBalance = balance.BonusBalance,
                CommissionBalance = balance.CommissionBalance,
                ExpertsBalance = balance.ExpertsBalance,
                RedBagBalance = balance.RedBagBalance,
                FreezeBalance = caibbFreezeBalance,
                IsEnable = reg.IsEnable,
                AgentId = reg.AgentId,
                IsAgent = reg.IsAgent,
                CardType = "",
                ComeFrom = reg.ComeFrom,
                Email = "",
                IsFillMoney = reg.IsFillMoney,
                IsSettedEmail = true,
                IsSettedMobile = mobile == null ? false : mobile.IsSettedMobile,
                IsSettedRealName = real == null ? false : real.IsSettedRealName,
                RegisterIp = reg.RegisterIp,
                RegTime = reg.CreateTime,
                VipLevel = reg.VipLevel,
                CurrentDouDou = balance.CurrentDouDou,
            });
        }
Exemple #9
0
 /*Initialize Variables*/
 private void Start()
 {
     manager     = GameObject.Find("GameManager");
     fundManager = manager.GetComponent <FundManager>();
 }
Exemple #10
0
 public void setup()
 {
     manager = new FundManager();
 }
Exemple #11
0
 public VOFundManager(FundManager instance)
 {
     this.instance = instance;
 }
        public void Init()
        {
            // setup, create sample benchmark index  repo
            fm = new FundManager();
            var indexName = "UK Corporate Benchmark";

            benchmarkRepo = new BenchmarkRepo();

            benchmarkRepo.Add(new Benchmark()
            {
                IndexWeight = 50, Name = indexName, Stock = new Stock()
                {
                    Symbol = "UNDE"
                }
            });
            benchmarkRepo.Add(new Benchmark()
            {
                IndexWeight = 25, Name = indexName, Stock = new Stock()
                {
                    Symbol = "ROBO"
                }
            });
            benchmarkRepo.Add(new Benchmark()
            {
                IndexWeight = 10, Name = indexName, Stock = new Stock()
                {
                    Symbol = "ABAC"
                }
            });
            benchmarkRepo.Add(new Benchmark()
            {
                IndexWeight = 10, Name = indexName, Stock = new Stock()
                {
                    Symbol = "DODO"
                }
            });
            benchmarkRepo.Add(new Benchmark()
            {
                IndexWeight = 5, Name = indexName, Stock = new Stock()
                {
                    Symbol = "ZIZA"
                }
            });

            // create a mock fund
            var fund = fm.CreateFund("UK Equity Tracker", new FundRepo(), benchmarkRepo);

            // add cash tot the fund
            fund.AddCash(50023.00M);
            // add some stock to the newly created fund
            fund.AddCash(50023.00M);
            fund.AddStock(new Stock()
            {
                Symbol = "ROBO"
            }, qty: 100, price: 8.22M);
            fund.AddStock(new Stock()
            {
                Symbol = "UNDE"
            }, qty: 500, price: 3.11M);
            fund.AddStock(new Stock()
            {
                Symbol = "ABAC"
            }, qty: 600, price: .39M);
            fund.AddStock(new Stock()
            {
                Symbol = "DODO"
            }, qty: 30, price: 12M);
            fund.AddStock(new Stock()
            {
                Symbol = "XYZ"
            }, qty: 100, price: 10M);
        }
Exemple #13
0
 public async Task <FundManager> Create(FundManager fundManager)
 {
     _repository.Create(fundManager);
     return(await _repository.GetBy(fundManager.Id)); // TODO: Change this into a TResult?
 }
Exemple #14
0
        /// <summary>
        /// 申请提现
        /// 计算申请金额是否可提现,返回计算结果
        /// </summary>
        public CheckWithdrawResult RequestWithdraw_Step1(string userId, decimal requestMoney)
        {
            var balanceManager = new UserBalanceManager();
            var fundManager    = new FundManager();
            var userManager    = new UserManager();
            var maxTimes       = 3;
            var currentTimes   = fundManager.QueryTodayWithdrawTimes(userId);

            if (currentTimes >= maxTimes)
            {
                throw new Exception(string.Format("每日只能提现{0}次", maxTimes));
            }
            var user = userManager.LoadUser(userId);

            if (user == null)
            {
                throw new Exception("用户不存在 - " + userId);
            }
            var userBalance = balanceManager.QueryUserBalance(userId);

            if (userBalance == null)
            {
                throw new Exception("用户帐户不存在 - " + userId);
            }

            //奖金+佣金+名家
            var can_tx_money = userBalance.BonusBalance + userBalance.CommissionBalance + userBalance.ExpertsBalance;

            //正常提现
            if (can_tx_money >= requestMoney)
            {
                return(new CheckWithdrawResult
                {
                    WithdrawCategory = WithdrawCategory.General,
                    RequestMoney = requestMoney,
                    ResponseMoney = requestMoney,
                    Summary = string.Format("申请提现{0:N2}元,到账{0:N2}元。", requestMoney),
                });
            }

            var payoutMoney = requestMoney - can_tx_money;

            if (userBalance.FillMoneyBalance < payoutMoney)
            {
                return(new CheckWithdrawResult
                {
                    WithdrawCategory = WithdrawCategory.Error,
                    RequestMoney = requestMoney,
                    ResponseMoney = 0,
                    Summary = "可用充值金额不足",
                });
            }

            #region  处理充值金额的消费,直接扣5%



            var percent = decimal.Parse(new CacheDataBusiness().QueryCoreConfigFromRedis("WithdrawAboutFillMoney.CutPercent"));
            //收取5%手续费
            var cutFree = payoutMoney * percent / 100;

            return(new CheckWithdrawResult
            {
                RequestMoney = requestMoney,
                ResponseMoney = requestMoney - cutFree,
                WithdrawCategory = WithdrawCategory.Compulsory,
                Summary = string.Format("提现金额中包含充值金额,需要扣除{0}%手续费{1:N2}元,实际到账{2:N2}元", percent, cutFree, requestMoney - cutFree),
            });

            #endregion
        }
Exemple #15
0
        /// <summary>
        /// 申请提现
        /// 实际添加提现记录,扣除用户资金
        /// </summary>
        public void RequestWithdraw_Step2(Withdraw_RequestInfo info, string userId, string password)
        {
            var userManager = new UserBalanceManager();
            var user        = userManager.QueryUserRegister(userId);

            if (!user.IsEnable)
            {
                throw new LogicException("用户已禁用");
            }


            DB.Begin();


            var            resonseMoney   = 0M;
            var            orderId        = BusinessHelper.GetWithdrawId();
            BusinessHelper businessHelper = new BusinessHelper();
            var            category       = businessHelper.Payout_To_Frozen_Withdraw(BusinessHelper.FundCategory_RequestWithdraw, userId, orderId, info.RequestMoney
                                                                                     , string.Format("申请提现:{0:N2}元", info.RequestMoney), "Withdraw", password, out resonseMoney);

            var fundManager = new FundManager();
            var addWithdraw = new C_Withdraw
            {
                OrderId        = orderId,
                BankCardNumber = info.BankCardNumber,
                BankCode       = info.BankCode,
                BankName       = info.BankName,
                BankSubName    = info.BankSubName,
                CityName       = info.CityName,
                RequestTime    = DateTime.Now,
                ProvinceName   = info.ProvinceName,
                UserId         = userId,
                RequestMoney   = info.RequestMoney,
                WithdrawAgent  = (int)info.WithdrawAgent,
                Status         = (int)WithdrawStatus.Requesting,

                WithdrawCategory = (int)category,
                ResponseMoney    = resonseMoney,
            };

            fundManager.AddWithdraw(addWithdraw);

            //查询到账金额
            var wi = GetWithdrawById(orderId);

            //判断DP是否可用
            var cacheDataBusiness = new CacheDataBusiness();
            var iscoreConfigInfo  = cacheDataBusiness.QueryCoreConfigByKey("DP.Isvailable");
            //获取当前系统时间(4-5点DP关闭)
            var      datetime    = System.DateTime.Now;
            var      nowHourAndM = datetime.ToString("t");
            var      datestar    = cacheDataBusiness.QueryCoreConfigByKey("DP.StartTime");
            var      dateend     = cacheDataBusiness.QueryCoreConfigByKey("DP.EndTime");
            DateTime dstar       = Convert.ToDateTime(datestar.ConfigValue);
            DateTime dend        = Convert.ToDateTime(dateend.ConfigValue);

            if (iscoreConfigInfo.ConfigValue == "1")
            {
                if (datetime <= dstar || datetime >= dend)
                {
                    //发送消息到DP
                    //判断是否发送到DP
                    String htmls = info.BankName;
                    //获取Dp提现最大限额
                    var coreConfigInfo = cacheDataBusiness.QueryCoreConfigByKey("DP.WithdrawHigthMoney");
                    //获取Dp给的公司编码
                    var coreConfigInfoC = cacheDataBusiness.QueryCoreConfigByKey("DP.Companyid");
                    //获取DP给的key
                    var ck = cacheDataBusiness.QueryCoreConfigByKey("DP.Key");
                    //获取DP访问路径
                    var     cw = cacheDataBusiness.QueryCoreConfigByKey("DP.WebUrl");
                    decimal withdrawHigthMoney = decimal.Parse(coreConfigInfo.ConfigValue);
                    //var writer = Common.Log.LogWriterGetter.GetLogWriter();
                    //writer.Write("关于DP日志", "关于DP日志", Common.Log.LogType.Information, "关于DP日志", "withdrawHigthMoney===============" + withdrawHigthMoney);

                    String str = String.Format("BankCardNumber=" + info.BankCardNumber + ",BankCode=" + info.BankCode + ",BankName=" + info.BankName + ",BankSubName=" + info.BankSubName + ",CityName=" + info.CityName + ",ProvinceName=" + info.ProvinceName + ",RequestMoney=" + info.RequestMoney + ",userRealName=" + info.userRealName + ",WithdrawAgent=" + info.WithdrawAgent + "");
                    //writer.Write("输出参数写测试用例", "输出参数写测试用例", Common.Log.LogType.Information, "输出参数写测试用例", "输出参数写测试用例===============" + str);
                    WithdrawApplyInfo wai = new WithdrawApplyInfo();
                    wai.company_order_num  = orderId;
                    wai.company_user       = userId;
                    wai.card_name          = info.userRealName;
                    wai.card_num           = info.BankCardNumber;
                    wai.issue_bank_name    = info.BankName;
                    wai.issue_bank_address = info.BankSubName;
                    wai.memo = "";
                    String amount = wi.ResponseMoney.ToString();
                    wai.amount = Math.Round(decimal.Parse(amount), 2);

                    wai.company_id = Int32.Parse(coreConfigInfoC.ConfigValue);
                    String  dpresult    = null;
                    decimal dpHighmoney = decimal.Parse(coreConfigInfo.ConfigValue);
                    if (info.RequestMoney < withdrawHigthMoney)
                    {
                        if (htmls.Contains("工商银行"))
                        {
                            int bankid = (int)BankCode.ICBC;
                            wai.bank_id = bankid.ToString();
                        }
                        else if (htmls.Contains("招商银行"))
                        {
                            int bankid = (int)BankCode.CMB;
                            wai.bank_id = bankid.ToString();
                        }
                        else if (htmls.Contains("建设银行"))
                        {
                            int bankid = (int)BankCode.CCB;
                            wai.bank_id = bankid.ToString();
                        }
                        else if (htmls.Contains("农业银行"))
                        {
                            int bankid = (int)BankCode.ABC;
                            wai.bank_id = bankid.ToString();
                        }
                        else if (htmls.Contains("中国银行"))
                        {
                            int bankid = (int)BankCode.BOC;
                            wai.bank_id = bankid.ToString();
                        }
                        else if (htmls.Contains("交通银行"))
                        {
                            int bankid = (int)BankCode.BCM;
                            wai.bank_id = bankid.ToString();
                        }

                        else if (htmls.Contains("中国民生银行") || htmls.Contains("民生银行"))
                        {
                            int bankid = (int)BankCode.CMBC;
                            wai.bank_id = bankid.ToString();
                        }

                        else if (htmls.Contains("中信银行"))
                        {
                            int bankid = (int)BankCode.ECC;
                            wai.bank_id = bankid.ToString();
                        }
                        else if (htmls.Contains("浦东发展银行") || htmls.Contains("浦发") || htmls.Contains("浦东"))
                        {
                            int bankid = (int)BankCode.SPDB;
                            wai.bank_id = bankid.ToString();
                        }
                        else if (htmls.Contains("邮政储蓄") || htmls.Contains("中国邮政"))
                        {
                            int bankid = (int)BankCode.PSBC;
                            wai.bank_id = bankid.ToString();
                        }

                        else if (htmls.Contains("光大银行"))
                        {
                            int bankid = (int)BankCode.CEB;
                            wai.bank_id = bankid.ToString();
                        }

                        else if (htmls.Contains("平安银行"))
                        {
                            int bankid = (int)BankCode.PINGAN;
                            wai.bank_id = bankid.ToString();
                        }
                        else if (htmls.Contains("广东发展银行") || htmls.Contains("广发银行"))
                        {
                            int bankid = (int)BankCode.CGB;
                            wai.bank_id = bankid.ToString();
                        }
                        else if (htmls.Contains("华夏银行"))
                        {
                            int bankid = (int)BankCode.HXB;
                            wai.bank_id = bankid.ToString();
                        }

                        else if (htmls.Contains("兴业银行"))
                        {
                            int bankid = (int)BankCode.CIB;
                            wai.bank_id = bankid.ToString();
                        }
                        else
                        {
                            var pListe = new List <string>();
                            pListe.Add(string.Format("{0}={1}", "[OrderId]", orderId));
                            pListe.Add(string.Format("{0}={1}", "[UserName]", user.DisplayName));
                            pListe.Add(string.Format("{0}={1}", "[RequestMoney]", info.RequestMoney));
                            pListe.Add(string.Format("{0}={1}", "[ResponseMoney]", resonseMoney));
                            //发送短信
                            new SiteMessageControllBusiness().DoSendSiteMessage(userId, "", "ON_User_Request_Withdraw", pListe.ToArray());
                            DB.Commit();
                            //刷新余额
                            BusinessHelper.RefreshRedisUserBalance(userId);
                            return;
                        }
                        dpresult = Withdrawal(wai, ck.ConfigValue, cw.ConfigValue);
                        if (dpresult == null || dpresult == "")
                        {
                            DB.Rollback();
                            throw new Exception("服务繁忙,请稍后重试,如多次尝试失败,请在客服服务时间内联系在线客服咨询");
                        }
                    }
                }
            }

            #region 发送站内消息:手机短信或站内信
            var pList = new List <string>();
            pList.Add(string.Format("{0}={1}", "[OrderId]", orderId));
            pList.Add(string.Format("{0}={1}", "[UserName]", ""));
            pList.Add(string.Format("{0}={1}", "[RequestMoney]", info.RequestMoney));
            pList.Add(string.Format("{0}={1}", "[ResponseMoney]", resonseMoney));
            //发送短信
            new SiteMessageControllBusiness().DoSendSiteMessage(userId, "", "ON_User_Request_Withdraw", pList.ToArray());

            #endregion

            DB.Commit();


            //刷新余额
            BusinessHelper.RefreshRedisUserBalance(userId);
        }