예제 #1
0
        private IEnumerable <PartnerTranWithLevel> GetPartnerTransWithLevel(int level)
        {
            var partners            = PayDAO.GetAllPartners();
            var partnerTrans        = PayDAO.GetAllAgencyTransactions();
            var partnerTransByLevel = from a in partnerTrans
                                      from b in partners.Where(p => (p.GameAccountId == a.SenderID) || p.GameAccountId == a.RecvID)
                                      .DefaultIfEmpty()
                                      select new PartnerTranWithLevel()
            {
                ID            = a.ID,
                CreatedTime   = a.CreatedTime,
                Amount        = a.Amount,
                Fee           = a.Fee,
                Sender        = a.Sender,
                SenderID      = a.SenderID,
                Recv          = a.Recv,
                RecvID        = a.RecvID,
                Description   = a.Description,
                Note          = a.Note,
                CreateTimeInt = a.CreateTimeInt,
                State         = a.State,
                Level         = b.Level
            };

            return(partnerTransByLevel.Where(x => x.Level == level));
        }
예제 #2
0
        public ActionResult PayLogData(int day = 0, int month = 0, int year = 0, int pay = 0, int type = 0, int page = 1, int total = 100) // thống kê nạp thẻ
        {
            if (page < 1)
            {
                return(new EmptyResult());
            }

            day   = day == 0 ? DateTime.Now.Day : day;
            month = month == 0 ? DateTime.Now.Month : month;
            year  = year == 0 ? DateTime.Now.Year : year;
            var payLogs = PayDAO.GetAllPayLogs();

            var filter = payLogs.Where(x => x.CreatedTime.Month == month && x.CreatedTime.Year == year && x.CreatedTime.Day == day);

            if (pay != 0)
            {
                filter = filter.Where(x => x.PayId == pay);
            }
            if (type != 0)
            {
                filter = filter.Where(x => x.CardType == type);
            }
            ViewBag.CurrentPage = page;
            ViewBag.TotalPage   = Math.Ceiling(filter.Count() * 1.0 / total); // tổng số trang
            filter = filter.Skip((page - 1) * total).Take(total).OrderByDescending(x => x.CreatedTime);

            return(View(filter));
        }
        public int AddMoney(string accountName, long amount, int type, string reason)
        {
            try
            {
                if (type <= 0 || type > 4)
                {
                    return(-99);
                }

                var user = UserDAO.GetInfo(accountName);
                if (user == null)
                {
                    return(-1);
                }
                long reference = PayDAO.AddLog(user.AccountID, user.DisplayName, type, amount, reason, UserContext.UserInfo.AccountID, UserContext.UserInfo.FullName);
                PayDAO.AddGold(user.AccountID, amount, "Nạp tiền", reference, 1004, 1);
                return(1);
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
            }

            return(-99);
        }
예제 #4
0
        // GET: Admin/Pay
        public ActionResult Index()
        {
            GetViewBag_Session();
            ViewBag.System = new SystemConfigDAO().GetDetail(1);
            var model = new PayDAO().ViewDetail();

            return(View(model));
        }
예제 #5
0
        public ActionResult BalanceStatistics() // Thống kê số dư
        {
            var data = PayDAO.GetAllBalanceStatitics();

            data = data.OrderByDescending(x => x.Date);
            ViewBag.TotalAllUserBalance    = data.Sum(x => x.TotalUserBalance);
            ViewBag.TotalAllPartnerBalance = data.Sum(x => x.TotalPartnerBalance);
            return(View(data));
        }
예제 #6
0
        public ActionResult GoldTransferStatisticsData(int month = 0)
        {
            var aTrans = PayDAO.GetAllAgencyTransactions();

            month = month == 0 ? DateTime.Now.Month : month;

            var soldByOwner   = aTrans.Where(x => (x.SenderID == 860000 || x.SenderID == 860001) && (x.RecvID != 860000 && x.RecvID != 860001) && x.CreatedTime.Month == month).OrderByDescending(x => x.CreatedTime);
            var soldByPartner = aTrans.Where(x => (x.RecvID == 860000 || x.RecvID == 860001) && (x.SenderID != 860000 && x.SenderID != 860001) && x.CreatedTime.Month == month).OrderByDescending(x => x.CreatedTime);

            var ownerGroupByDate  = soldByOwner.GroupBy(x => x.CreatedTime.Date);
            var parnerGroupByDate = soldByPartner.GroupBy(x => x.CreatedTime.Date);

            var ownerList   = new List <AgencyTranByDate>();
            var partnerList = new List <AgencyTranByDate>();

            foreach (var date in ownerGroupByDate)
            {
                ownerList.Add(new AgencyTranByDate()
                {
                    DateString = date.Key.ToString("dd/MM/yyyy"),
                    TotalGold  = date.Sum(x => x.Amount),
                    TotalMoney = (long)(date.Sum(x => x.Amount) * 0.82),
                    TotalTrans = date.Count()
                });
            }

            foreach (var date in parnerGroupByDate)
            {
                partnerList.Add(new AgencyTranByDate()
                {
                    DateString = date.Key.ToString("dd/MM/yyyy"),
                    TotalGold  = date.Sum(x => x.Amount),
                    TotalMoney = (long)(date.Sum(x => x.Amount) * 0.82),
                    TotalTrans = date.Count()
                });
            }


            var totalOwnerGold = ViewBag.TotalOwnerGold = soldByOwner.Sum(x => x.Amount);

            ViewBag.TotalOwnerMoney = totalOwnerGold * 0.82;
            ViewBag.TotalOwnerTrans = soldByOwner.Count();

            // by partner
            var totalPartnerGold = ViewBag.TotalPartnerGold = soldByPartner.Sum(x => x.Amount);

            ViewBag.TotalPartnerMoney = totalPartnerGold * 0.82;
            ViewBag.TotalPartnerTrans = soldByPartner.Count();
            var allDate = ownerList.Select(x => x.DateString).Union((partnerList.Select(x => x.DateString)));

            //NLogManager.LogMessage($"ownerList:{JsonConvert.SerializeObject(ownerList)}\npartnerList:{JsonConvert.SerializeObject(partnerList)}\nAlLDate:{JsonConvert.SerializeObject(allDate)}");
            ViewData["OwnerList"]   = ownerList;
            ViewData["PartnerList"] = partnerList;
            ViewData["AllDate"]     = allDate;
            return(PartialView());
        }
예제 #7
0
        // Update YagamiRaito

        public ActionResult CardInGameStatistics() // thống kê nạp thẻ
        {
            var cardConfigs = PayDAO.GetCards();
            var numOfPays   = cardConfigs.FirstOrDefault().PayOrderConfig.Split('|').Length;
            var types       = cardConfigs.GroupBy(x => x.Type).Select(x => x.Key).ToList();

            ViewBag.Types     = types;
            ViewBag.NumOfPays = numOfPays;
            return(View());
        }
예제 #8
0
        public JsonResult SaveData(string data)
        {
            JavaScriptSerializer js = new JavaScriptSerializer();
            Pay model = js.Deserialize <Pay>(data);
            var res   = new PayDAO().Update(model);

            return(Json(new
            {
                status = res
            }));
        }
 public dynamic GetErrorCardTransaction()
 {
     try
     {
         return(PayDAO.GetErrorCardTransaction());
     }
     catch (Exception ex)
     {
         NLogManager.PublishException(ex);
     }
     return(null);
 }
 public dynamic DeleteCardInBank(long cardId)
 {
     try
     {
         return(PayDAO.DeleteCardInBank(cardId));
     }
     catch (Exception ex)
     {
         NLogManager.PublishException(ex);
     }
     return(false);
 }
 public dynamic GetCardInBank()
 {
     try
     {
         return(PayDAO.GetCardInBank());
     }
     catch (Exception ex)
     {
         NLogManager.PublishException(ex);
     }
     return(null);
 }
 public bool DeleteCard(long cardId)
 {
     try
     {
         return(PayDAO.DeleteCard(cardId));
     }
     catch (Exception ex)
     {
         NLogManager.PublishException(ex);
     }
     return(false);
 }
 public dynamic GetUnverifyPayment()
 {
     try
     {
         return(PayDAO.GetUnverifyPayment());
     }
     catch (Exception ex)
     {
         NLogManager.PublishException(ex);
     }
     return(null);
 }
 public dynamic SearchCard(int searchType, string serial, string pin)
 {
     try
     {
         return(PayDAO.SearchCard(searchType, serial, pin));
     }
     catch (Exception ex)
     {
         NLogManager.PublishException(ex);
     }
     return(null);
 }
 public dynamic GetCurrentLog()
 {
     try
     {
         return(PayDAO.GetLog(UserContext.UserInfo.AccountID));
     }
     catch (Exception ex)
     {
         NLogManager.PublishException(ex);
     }
     return(null);
 }
 public dynamic GetLog(int start, int end, int page)
 {
     try
     {
         var skip = page * 30;
         return(PayDAO.GetLog(start, end, skip, 30));
     }
     catch (Exception ex)
     {
         NLogManager.PublishException(ex);
     }
     return(null);
 }
예제 #17
0
        public ActionResult PayLogByDate(int month = 0, int year = 0, int pay = 0, int type = 0)
        {
            //if (page < 1)
            //{
            //    return new EmptyResult();
            //}
            month = month == 0 ? DateTime.Now.Month : month;
            year  = year == 0 ? DateTime.Now.Year : year;

            var payLogs = PayDAO.GetAllPayLogs();

            var filter = payLogs.Where(x => x.CreatedTime.Month == month && x.CreatedTime.Year == year);

            if (pay != 0)
            {
                filter = filter.Where(x => x.PayId == pay);
            }
            if (type != 0)
            {
                filter = filter.Where(x => x.CardType == type);
            }


            var dateGroups  = filter.GroupBy(x => x.CreatedTime.Date).OrderByDescending(x => x.Key);
            var datePayLogs = new List <DatePayLog>();

            foreach (var dateGroup in dateGroups)
            {
                datePayLogs.Add(new DatePayLog()
                {
                    DateString       = dateGroup.Key.ToString("dd/MM/yyyy"),
                    TotalSuccessTran = dateGroup.Count(x => x.Status == 1),
                    TotalFailTran    = dateGroup.Count(x => x.Status < 0),
                    TotalPendingTran = dateGroup.Count(x => x.Status == 0),
                    TotalTopup       = dateGroup.Where(x => x.Status == 1).Sum(x => x.Amount)
                });
            }

            ViewBag.TotalTopup       = filter.Where(x => x.Status == 1).Sum(x => x.Amount);
            ViewBag.TotalSuccessTran = filter.Count(x => x.Status == 1);
            ViewBag.TotalFailTran    = filter.Count(x => x.Status < 0);
            ViewBag.TotalPendingTran = filter.Count(x => x.Status == 0);

            //ViewBag.CurrentPage = page;
            //ViewBag.TotalPage = Math.Ceiling(datePayLogs.Count() * 1.0 / total); // tổng số trang
            //datePayLogs = datePayLogs.Skip((page - 1) * total).Take(total).ToList();

            return(PartialView(datePayLogs));
        }
 public dynamic GetCashoutBilling(int month, int year)
 {
     try
     {
         int      start = int.Parse($"{year.ToString("D4")}{month.ToString("D2")}01");
         DateTime _end  = new DateTime(year, month, 1).AddMonths(1).AddDays(-1);
         int      end   = int.Parse($"{year.ToString("D4")}{month.ToString("D2")}{_end.Day.ToString("D2")}");
         return(PayDAO.GetCashoutBilling(start, end));
     }
     catch (Exception ex)
     {
         NLogManager.PublishException(ex);
     }
     return(null);
 }
예제 #19
0
 public ActionResult Update(Pay entity)
 {
     if (ModelState.IsValid)
     {
         var res = new PayDAO().Update(entity);
         if (res)
         {
             return(RedirectToAction("Index", "Pay"));
         }
         else
         {
             ModelState.AddModelError("", "Không thể cập nhật cấu hình thanh toán");
         }
     }
     return(RedirectToAction("Index", "Pay"));
 }
예제 #20
0
        public JsonResult GetPay(int id)
        {
            bool status = false;
            var  model  = new PayDAO().GetDetail(id);

            if (model != null)
            {
                status = true;
            }

            return(Json(new
            {
                status = status,
                data = model
            }, JsonRequestBehavior.AllowGet));
        }
예제 #21
0
        public ActionResult AgencyTransactionLevel1Statistics(DateTime from, DateTime to, List <int> filterId = null) // Thống kê giao dịch đại lý cấp 1
        {
            var partnerTransLevel = GetPartnerTransWithLevel(1);
            var partners          = PayDAO.GetAllPartners();
            var level1Partners    = partners.Where(x => x.Level == 1);

            partnerTransLevel = partnerTransLevel.Where(x => x.CreatedTime >= from && x.CreatedTime <= to); // filter by date
            if (filterId != null)
            {
                partnerTransLevel.Where(x => filterId.Any(y => y == x.SenderID || y == x.RecvID)); // filter by ids
                partners.Where(x => filterId.Any(y => y == x.GameAccountId));                      // filter by ids
            }
            var data = new List <PartnerTranWithLevel>();



            return(View());
        }
예제 #22
0
        // GET: Pay
        public ActionResult Index()
        {
            User user  = Session["User"] as User;
            var  btndh = Session["btndh"];

            if (user != null && btndh != null)
            {
                List <CartProductUser> listCPU = PayDAO.LoadDataPay(user.ID_ACCOUNT);
                ArrayList model = new ArrayList();
                model.Add(listCPU);
                var totalMoney = PayDAO.TotalMoneyOder(user.ID_ACCOUNT);
                model.Add(totalMoney);
                return(View(model));
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
        public dynamic Analytic(int month, int year)
        {
            try
            {
                int      start = int.Parse($"{year.ToString("D4")}{month.ToString("D2")}01");
                DateTime _end  = new DateTime(year, month, 1).AddMonths(1).AddDays(-1);
                int      end   = int.Parse($"{year.ToString("D4")}{month.ToString("D2")}{_end.Day.ToString("D2")}");

                var sum = PayDAO.Sumary(start, end);

                List <dynamic> objs = new List <dynamic>();

                if (sum != null)
                {
                    var groupByDay = ((IEnumerable)sum).Cast <dynamic>().GroupBy(x => x.CreatedTimeInt);

                    foreach (var d in groupByDay)
                    {
                        var momo   = d.FirstOrDefault(x => x.Type == 2)?.Total;
                        var card   = d.FirstOrDefault(x => x.Type == 1)?.Total;
                        var agency = d.FirstOrDefault(x => x.Type == 3)?.Total;
                        var err    = d.FirstOrDefault(x => x.Type == 4)?.Total;

                        objs.Add(new
                        {
                            Days    = d.FirstOrDefault().CreatedTimeInt,
                            Momo    = momo == null ? 0 : momo,
                            Card    = card == null ? 0 : card,
                            Agency  = agency == null ? 0 : agency,
                            ErrGame = err == null ? 0 : err,
                        });
                    }

                    return(objs);
                }
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
            }
            return(null);
        }
예제 #24
0
        public bool Update([FromBody] List <Models.Bussiness.ConfigCard.CardConfig> configs)
        {
            try
            {
                StringBuilder query = new StringBuilder();

                foreach (var c in configs)
                {
                    string payConfig = c.Pay1 + "|" + c.Pay2 + "|" + c.Pay3 + "|" + c.Pay4 + "|" + c.Pay5;
                    query.AppendLine($"update dbo.CardConfig set Enable = '{c.Enable}', Promotion = {c.Promotion}, CashoutRate = {c.CashoutRate}, EnableCashout = '{c.EnableCashout}', TopupRate = {c.TopupRate}" +
                                     $", PromotionCashout = {c.PromotionCashout}, PayOrderConfig = N'{payConfig}' WHERE ID = {c.ID}");
                }

                PayDAO.Update(query.ToString());
                return(true);
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
            }
            return(false);
        }
예제 #25
0
        public ActionResult GoldTransferDetails(string date, bool isSelling, int month = 0) //xem chi tiết giao dịch đại lý và nph
        {
            var aTrans      = PayDAO.GetAllAgencyTransactions();
            var currentDate = DateTime.ParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture);

            month  = month == 0 ? DateTime.Now.Month : month;
            aTrans = aTrans.Where(x => x.CreatedTime.Month == month);
            aTrans = aTrans.Where(x => x.CreatedTime.Date == currentDate); // xem trong ngày chỉ định
            var transferDetails = new List <AgencyTransaction>();

            if (isSelling)
            {
                transferDetails = aTrans.Where(x => (x.RecvID == 860000 || x.RecvID == 860001) && (x.SenderID != 860000 && x.SenderID != 860001)).OrderByDescending(x => x.CreatedTime).ToList();
            }
            else
            {
                transferDetails = aTrans.Where(x => (x.SenderID == 860000 || x.SenderID == 860001) && (x.RecvID != 860000 && x.RecvID != 860001)).OrderByDescending(x => x.CreatedTime).ToList();
            }

            ViewBag.IsSelling = isSelling; // đại lý bán


            return(View(transferDetails));
        }
예제 #26
0
 public IEnumerable <Models.Bussiness.ConfigCard.CardConfig> GetCards()
 {
     return(PayDAO.GetCards());
 }
        public dynamic Charge(int cardType, int amount, int total)
        {
            try
            {
                if (cardType != 1 && cardType != 2 && cardType != 3)
                {
                    return(null);
                }

                int successtransaction = 0;
                int errortransaction   = 0;

                try
                {
                    string serviceCode = string.Empty;

                    if (cardType == 1)
                    {
                        serviceCode = "VTT";
                    }
                    else if (cardType == 2)
                    {
                        serviceCode = "VMS";
                    }
                    else if (cardType == 3)
                    {
                        serviceCode = "VNP";
                    }

                    for (int i = 0; i < total; i++)
                    {
                        long transactionId = DateTime.Now.Ticks;

                        int    outRes    = 0;
                        string requestId = string.Empty;

                        var    service = new muathe24h.MechantServicesSoapClient();
                        string email   = "*****@*****.**";
                        string pass    = "******";

                        var res = service.BuyCards(new muathe24h.UserCredentials {
                            userName = email, pass = pass
                        }
                                                   , transactionId.ToString(), serviceCode, amount, 1);

                        NLogManager.LogMessage(JsonConvert.SerializeObject(res));
                        string resultCode = res?.RepCode.ToString();


                        if (res != null && res.RepCode == 0)
                        {
                            var seri = JsonConvert.DeserializeObject <List <CardObject> >(res.Data.ToString());
                            if (PayDAO.InsertCard(seri[0].PinCode, seri[0].Serial, amount, string.Empty, cardType, serviceCode, "muathe24h", DateTime.Now, transactionId.ToString(), resultCode, true))
                            {
                                successtransaction++;
                            }
                            else
                            {
                                PayDAO.InsertCard(string.Empty, string.Empty, amount, string.Empty, cardType, serviceCode, "muathe24h", DateTime.Now, requestId, resultCode, false);
                                errortransaction++;
                            }
                        }
                        else
                        {
                            PayDAO.InsertCard(string.Empty, string.Empty, amount, string.Empty, cardType, serviceCode, "muathe24h", DateTime.Now, requestId, resultCode, false);

                            errortransaction++;
                        }
                    }

                    return(new
                    {
                        suc = successtransaction,
                        err = errortransaction
                    });
                }
                catch (Exception ex)
                {
                    NLogManager.PublishException(ex);
                }
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
            }
            return(null);
        }
예제 #28
0
        public ActionResult LoadDataIntoCart(FormPay formPay)
        {
            User   user = Session["User"] as User;
            string status;

            if (user != null)
            {
                var ten    = formPay.HO_TEN;
                var diaChi = formPay.DIA_CHI;
                var sdt    = formPay.SDT;
                if (ten == null || diaChi == null || sdt == null || ten == "" || diaChi == "" || sdt == "")
                {
                    status = "fail";
                    var mess = "Vui Lòng Nhập Đây Đủ Thông Tin";
                    return(new JsonResult {
                        Data = new { status = status, mess }
                    });
                }
                else if (Tools.IsNumberPhone(sdt) == false)
                {
                    status = "fail";
                    var mess = "Vui Lòng Nhập Đúng Số Điện Thoại";
                    return(new JsonResult {
                        Data = new { status = status, mess }
                    });
                }
                else
                {
                    List <CartProductUser> listCPU = PayDAO.LoadDataPay(user.ID_ACCOUNT);
                    listCPU[0].HO_TEN  = ten;
                    listCPU[0].DIA_CHI = diaChi;
                    listCPU[0].SDT     = sdt;
                    if (PayDAO.CreateNewOder(listCPU) == true)
                    {
                        HttpContext.Session.Remove("btndh");
                        if (PayDAO.deteleProductInCart(user.ID_ACCOUNT) == true)
                        {
                            status = "success";
                            return(new JsonResult {
                                Data = new { status = status }
                            });
                        }
                        else
                        {
                            status = "fail";
                            var mess = "Lỗi Ngoại Lệ";
                            return(new JsonResult {
                                Data = new { status = status, mess }
                            });
                        }
                    }
                    else
                    {
                        status = "fail";
                        var mess = "Lỗi Ngoại Lệ";
                        return(new JsonResult {
                            Data = new { status = status, mess }
                        });
                    }
                }
            }
            else
            {
                status = "home";
                return(new JsonResult {
                    Data = new { status = status, url = Url.Action("Index", "Home") }
                });
            }
        }