Ejemplo n.º 1
0
        public EOrderInfo InitWXOrder(string No, EQRUser qrUser, float TotalAmount, string phone)
        {
            EOrderInfo order = new EOrderInfo()
            {
                OrderNo      = No,
                OrderStatus  = BaseEnum.OrderStatus.WaitingAliPayNotify,
                QRUserId     = qrUser.ID,
                AgentName    = qrUser.UserName,
                AgentOpenId  = qrUser.OpenId,
                TotalAmount  = TotalAmount,
                Rate         = qrUser.Rate,
                RateAmount   = (float)Math.Round(TotalAmount * (qrUser.Rate / 100), 2, MidpointRounding.AwayFromZero),
                TransDate    = DateTime.Now,
                TransDateStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm"),

                OrderType = OrderType.WX,

                BuyerMarketRate     = qrUser.MarketRate,
                BuyerTransferAmount = (float)Math.Round(TotalAmount * (100 - qrUser.MarketRate) / 100, 2, MidpointRounding.AwayFromZero),
                BuyerMobilePhone    = phone
                                      // BuyerAliPayAccount = AliPayAccount,
            };

            return(order);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="order"></param>
        /// <param name="qrUser">2级QRUser</param>
        /// <param name="topUser">1级代理人</param>
        /// <returns></returns>
        public EAgentCommission InitAgentCommission_L3(EOrderInfo order, EQRUser qrUser, RUserInfo topUser)
        {
            double L3Comm = 0.2;

            //if (qrUser.QRType == QRType.ARHuge)
            //    L3Comm = 0.2;

            EAgentCommission comm = new EAgentCommission
            {
                OrderNo = order.OrderNo,
                AgentCommissionStatus = BaseEnum.AgentCommissionStatus.Open,
                ParentOpenId          = topUser.OpenId,
                ChildOpenId           = qrUser.OpenId,
                CommissionAmount      = (float)Math.Round((L3Comm / 100) * order.TotalAmount, 2, MidpointRounding.ToEven),
                Level = 3,

                CommissionRate      = (float)L3Comm,
                ChildName           = qrUser.UserName,
                ParentName          = topUser.Name,
                TransDate           = DateTime.Now,
                TransDateStr        = DateTime.Now.ToString("yyyy-MM-dd HH:mm"),
                ParentAliPayAccount = topUser.AliPayAccount,
            };

            return(comm);
        }
Ejemplo n.º 3
0
        private void AnalyUser(IQBContent db, string parentOpenId, int level)
        {
            var list = db.DBUserInfo.Where(a => a.UserRole == UserRole.Agent &&
                                           a.UserStatus == UserStatus.PPUser &&
                                           a.parentOpenId == parentOpenId).ToList();

            level++;
            foreach (EUserInfo u in list)
            {
                //  if (u.OpenId == "o3nwE0oE32A4jA-bGu9t59Ob4Qzc") continue;

                List <SFee> feeList = new List <SFee>();
                SFee        sfee    = null;
                /*普通代理*/
                //花呗 1
                EQRUser qr = db.DBQRUser.Where(a => a.OpenId == u.OpenId && a.QRType == QRReceiveType.Small).FirstOrDefault();
                if (qr != null)
                {
                    var fee = 0.75 + Config.ChildFixRate * (level - 1);

                    sfee             = new SFee();
                    sfee.OrigFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    sfee.QRType      = qr.QRType;

                    qr.Rate = Convert.ToSingle((qr.MarketRate - fee).ToString("0.00"));

                    sfee.AdjustedFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    feeList.Add(sfee);
                }


                //信用卡 0.63/0.75
                qr = db.DBQRUser.Where(a => a.OpenId == u.OpenId && a.QRType == QRReceiveType.CreditCard).FirstOrDefault();
                if (qr != null)
                {
                    var fee = 0.63 + Config.CCChildFixRate * (level - 1);

                    sfee             = new SFee();
                    sfee.OrigFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    sfee.QRType      = qr.QRType;

                    qr.Rate = Convert.ToSingle((qr.MarketRate - fee).ToString("0.00"));

                    sfee.AdjustedFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    feeList.Add(sfee);
                }


                WXNTAgentFeeRate(feeList, u.OpenId);


                AnalyUser(db, u.OpenId, level);

                _UserNum++;

                Console.WriteLine(string.Format("{1}调整代理:{0}", u.Name, _UserNum));
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="qrUser"></param>
        /// <param name="store"></param>
        /// <param name="TotalAmount">订单总金额</param>
        /// <param name="orderType">订单类型:大额/小额</param>
        /// <param name="AliPayAccount">支付宝账户</param>
        /// <param name="orderNum">是否有订单,没有费率则为全局费率</param>
        /// <param name="ui">如果用户被禁用,传入</param>
        /// <param name="QRHugeTrans"></param>
        /// <returns></returns>
        public EOrderInfo InitOrder(EQRUser qrUser, EStoreInfo store, EUserStore userStore, float TotalAmount, OrderType orderType, string AliPayAccount = "", int orderNum = 0, EUserInfo ui = null, EQRHugeTrans QRHugeTrans = null)
        {
            EOrderInfo order = new EOrderInfo()
            {
                OrderNo          = _handler.OrderNo,
                OrderStatus      = BaseEnum.OrderStatus.WaitingAliPayNotify,
                QRUserId         = qrUser.ID,
                AgentName        = qrUser.UserName,
                AgentOpenId      = qrUser.OpenId,
                TotalAmount      = TotalAmount,
                Rate             = qrUser.Rate,
                RateAmount       = (float)Math.Round(TotalAmount * (qrUser.Rate / 100), 2, MidpointRounding.AwayFromZero),
                TransDate        = DateTime.Now,
                TransDateStr     = DateTime.Now.ToString("yyyy-MM-dd HH:mm"),
                SellerAliPayId   = store.AliPayAccount,
                SellerStoreId    = store.ID,
                SellerName       = store.Name,
                SellerChannel    = store.Channel,
                SellerRate       = store.Rate,
                SellerCommission = (float)Math.Round(TotalAmount * (userStore.OwnerRate) / 100, 2, MidpointRounding.ToEven),
                OrderType        = orderType,

                BuyerMarketRate     = qrUser.MarketRate,
                BuyerTransferAmount = (float)Math.Round(TotalAmount * (100 - qrUser.MarketRate) / 100, 2, MidpointRounding.AwayFromZero),
                BuyerAliPayAccount  = AliPayAccount,

                //ReceiveNo = StringHelper.GenerateReceiveNo(),
            };

            if (QRHugeTrans != null)
            {
                order.EQRHugeTransId = QRHugeTrans.ID;

                //大单用户手续费
                order.BuyerTransferAmount -= (float)RuleManager.PayRule().User_ServerFee_HQ;
            }
            else
            {
                //double FOFeeRate = RuleManager.PayRule().Agent_FOFeeRate;
                //小单用户手续费
                //if(order.TotalAmount>=199)
                //    order.BuyerTransferAmount -= (float)RuleManager.PayRule().User_ServerFee_Q;
                order.BuyerTransferAmount -= (float)RuleManager.PayRule().User_ServerFee_Q;

                ////首单费率
                //if(orderNum == 0 && (qrUser.MarketRate-qrUser.Rate)< FOFeeRate)
                //    order.RateAmount = (float)Math.Round(TotalAmount * ((qrUser.MarketRate-FOFeeRate) / 100), 2, MidpointRounding.ToEven);

                if (ui.UserStatus == UserStatus.JustRegister)
                {
                    order.RateAmount = (float)Math.Round(TotalAmount * (0.5 / 100), 2, MidpointRounding.ToEven);
                }
            }


            return(order);
        }
Ejemplo n.º 5
0
 public void ChangeReceiveQR()
 {
     using (IQBContent db = new IQBContent())
     {
         //var list = db.DBQRUser.Where(a => a.QRType == QRReceiveType.Small).ToList();
         var list = db.DBQRUser.Where(a => a.QRType == QRReceiveType.Small && a.OpenId == "o3nwE0jrONff65oS-_W96ErKcaa0").ToList();
         foreach (EQRUser qr in list)
         {
             string  openId   = qr.OpenId;
             EQRUser updateQr = QRManager.CreateUserUrlById(qr);
         }
         db.SaveChanges();
     }
 }
Ejemplo n.º 6
0
        public void UpdateAgentForSpecial()
        {
            using (IQBContent db = new IQBContent())
            {
                var list = db.DBUserInfo.Where(a => a.parentOpenId == "o3nwE0vaY07Rr2RJRgb9JRKci_KI").ToList();
                foreach (EUserInfo u in list)
                {
                    List <SFee> feeList = new List <SFee>();
                    SFee        sfee    = null;
                    /*总代*/
                    //花呗(0.75)/0.8
                    EQRUser qr  = db.DBQRUser.Where(a => a.OpenId == u.OpenId && a.QRType == QRReceiveType.Small).FirstOrDefault();
                    var     fee = 0.75;

                    sfee             = new SFee();
                    sfee.OrigFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    sfee.QRType      = qr.QRType;

                    qr.Rate = Convert.ToSingle((qr.MarketRate - fee).ToString("0.00"));
                    sfee.AdjustedFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    feeList.Add(sfee);

                    //信用卡0.63/0.65
                    qr = db.DBQRUser.Where(a => a.OpenId == u.OpenId && a.QRType == QRReceiveType.CreditCard).FirstOrDefault();
                    if (u.OpenId == "o3nwE0snE94bXggy2K8ZfHuyypVs" || u.OpenId == "o3nwE0og1j5cLMTVdg0XSjtJ88E8")
                    {
                        fee = 0.63;
                    }
                    else
                    {
                        fee = 0.65;
                    }

                    sfee             = new SFee();
                    sfee.OrigFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    sfee.QRType      = qr.QRType;

                    qr.Rate = Convert.ToSingle((qr.MarketRate - fee).ToString("0.00"));

                    sfee.AdjustedFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    feeList.Add(sfee);

                    Console.WriteLine(string.Format("代理:{0}", u.Name));

                    // WXNTAgentFeeRate(feeList, u.OpenId);
                }
                db.SaveChanges();
                Console.WriteLine(string.Format("调整代理Done"));
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 批量更新代理费率
        /// </summary>
        public void UpdateAgentRate()
        {
            using (IQBContent db = new IQBContent())
            {
                var list = db.DBUserInfo.Where(a => a.UserRole == UserRole.DiamondAgent || a.UserRole == UserRole.Administrator &&
                                               a.UserStatus == UserStatus.PPUser).ToList();

                foreach (EUserInfo u in list)
                {
                    List <SFee> feeList = new List <SFee>();
                    SFee        sfee    = null;
                    /*总代*/
                    //花呗(0.75)/0.8
                    EQRUser qr  = db.DBQRUser.Where(a => a.OpenId == u.OpenId && a.QRType == QRReceiveType.Small).FirstOrDefault();
                    var     fee = 0.75;

                    sfee             = new SFee();
                    sfee.OrigFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    sfee.QRType      = qr.QRType;

                    qr.Rate = Convert.ToSingle((qr.MarketRate - fee).ToString("0.00"));
                    sfee.AdjustedFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    feeList.Add(sfee);

                    //信用卡0.63/0.65
                    qr  = db.DBQRUser.Where(a => a.OpenId == u.OpenId && a.QRType == QRReceiveType.CreditCard).FirstOrDefault();
                    fee = 0.63;

                    sfee             = new SFee();
                    sfee.OrigFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    sfee.QRType      = qr.QRType;

                    qr.Rate = Convert.ToSingle((qr.MarketRate - fee).ToString("0.00"));

                    sfee.AdjustedFeeRate = Convert.ToSingle((qr.MarketRate - qr.Rate).ToString("0.00"));
                    feeList.Add(sfee);

                    Console.WriteLine(string.Format("总代:{0}", u.Name));

                    //   WXNTAgentFeeRate(feeList, u.OpenId);

                    AnalyUser(db, u.OpenId, 1);
                }


                db.SaveChanges();
                Console.WriteLine(string.Format("调整代理Done"));
            }
        }
Ejemplo n.º 8
0
        public static string TestQR(EQRUser qrUser)
        {
            string imgPath = "";

            //string site = ConfigurationManager.AppSettings["IQBWX_SiteUrl"];
            //string url = site + "PP/Pay?Id=" + qrUser.ID;

            //Image LogoImg;
            //string LogoAddr = HttpContext.Current.Server.MapPath("/Content/QR/ReceiveMoney_Logo");
            //LogoImg = new Bitmap(LogoAddr);

            //Bitmap qrImg = QRManager.CreateQR(url, filePath, LogoImg);

            return(imgPath);
        }
Ejemplo n.º 9
0
        public EAgentCommission InitAgentCommission(EOrderInfo order, EQRUser qrUser)
        {
            EAgentCommission comm = new EAgentCommission
            {
                OrderNo = order.OrderNo,
                AgentCommissionStatus = BaseEnum.AgentCommissionStatus.Open,
                ParentOpenId          = qrUser.ParentOpenId,
                ChildOpenId           = qrUser.OpenId,
                CommissionAmount      = (float)Math.Round((qrUser.ParentCommissionRate / 100) * order.TotalAmount, 2, MidpointRounding.ToEven),
                Level          = 2,
                CommissionRate = qrUser.ParentCommissionRate,
                ChildName      = qrUser.UserName,
                ParentName     = qrUser.ParentName,
                TransDate      = DateTime.Now,
                TransDateStr   = DateTime.Now.ToString("yyyy-MM-dd HH:mm"),
            };

            return(comm);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 更新收款二维码
        /// </summary>
        /// <param name="qrUser"></param>
        /// <param name="logoUrl"></param>
        /// <returns></returns>
        public static EQRUser UpdateReceiveQR(EQRUser qrUser, string SeqNo)
        {
            try
            {
                string   filename = qrUser.OrigQRFilePath;
                string   filePath = HttpContext.Current.Server.MapPath(qrUser.OrigQRFilePath);
                FileInfo fi       = new FileInfo(filePath);


                Bitmap qrImg = new Bitmap(filePath);

                //BK
                //+ "ARUserBK1.jpg";
                string bkAdree = HttpContext.Current.Server.MapPath("/Content/QR/BK/bk_spring.jpg");
                Bitmap bkImg   = new Bitmap(bkAdree);
                Bitmap finImg  = ImgHelper.ImageWatermark(bkImg, qrImg);

                filePath  = ConfigurationManager.AppSettings["QR_ARUser_FP"];
                filename  = "BK_" + SeqNo + "_" + fi.Name;
                filePath += filename;

                finImg.Save(HttpContext.Current.Server.MapPath(filePath));
                finImg.Dispose();
                bkImg.Dispose();


                qrUser.FilePath = filePath;
            }
            catch (Exception ex)
            {
                IQBLog log = new IQBLog();
                log.log("CreateUserUrlById Error:" + ex.Message);
                throw ex;
            }

            return(qrUser);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 收款二维码
        /// </summary>
        public static EQRUser CreateUserUrlById(EQRUser qrUser, string logoUrl = "")
        {
            try
            {
                string site = ConfigurationManager.AppSettings["IQBWX_SiteUrl"];
                string url  = site + "PP/PaySelection?Id=" + qrUser.OpenId;

                string filePath = ConfigurationManager.AppSettings["QR_ARUser_FP"];
                string filename = "QRARU_" + qrUser.ID + "_" + System.DateTime.Now.ToString("yyyyMMdd") + (new Random()).Next(1, 100).ToString()
                                  + ".jpg";

                filePath += filename;

                qrUser.OrigQRFilePath = filePath;
                //Create QR
                filePath = System.Web.HttpContext.Current.Server.MapPath(filePath);

                //Logo
                Image LogoImg = null;
                //根据头像创建收款码Logo
                //if (!string.IsNullOrEmpty(logoUrl))
                //{
                //    LogoImg = ImgHelper.GetImgFromUrl(logoUrl);
                //    LogoImg = ImgHelper.resizeImage(LogoImg, new Size(56, 56));
                //    LogoImg = ImgHelper.AddImgBorder(new Bitmap(LogoImg), 4, Color.Wheat);
                //}

                //收款码统一Logo
                string LogoAddr = HttpContext.Current.Server.MapPath("/Content/QR/ReceiveMoney_Logo.png");
                LogoImg = new Bitmap(LogoAddr);

                Bitmap qrImg = QRManager.CreateQR(url, filePath, LogoImg);


                //BK
                //+ "ARUserBK1.jpg";
                string bkAdree = HttpContext.Current.Server.MapPath("/Content/QR/BK/bk_spring.jpg");
                Bitmap bkImg   = new Bitmap(bkAdree);

                //添加文字
                using (Graphics g = Graphics.FromImage(bkImg))
                {
                    string s    = "欢迎使用支付宝付款";
                    Font   font = new Font("黑体", 12, FontStyle.Bold);

                    SolidBrush b = new SolidBrush(Color.FromArgb(50, 159, 250));

                    g.DrawString(s, font, b, new PointF(96, 125));
                }

                Bitmap finImg = ImgHelper.ImageWatermark(bkImg, qrImg);

                filePath  = ConfigurationManager.AppSettings["QR_ARUser_FP"];
                filename  = "BK_" + qrUser.ID + "_" + filename;
                filePath += filename;

                finImg.Save(HttpContext.Current.Server.MapPath(filePath));
                finImg.Dispose();
                bkImg.Dispose();


                qrUser.FilePath  = filePath;
                qrUser.TargetUrl = url;
            }
            catch (Exception ex)
            {
                IQBLog log = new IQBLog();
                log.log("CreateUserUrlById Error:" + ex.Message);
                throw ex;
            }

            return(qrUser);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// O2O入口
        /// </summary>
        public static EQRUser CreateO2OEntryQR(EQRUser qrUser)
        {
            try
            {
                string site = ConfigurationManager.AppSettings["Main_SiteUrl"];
                string url  = site + "/O2OWap/Index?aoId=" + qrUser.OpenId;

                string filePath = "/Content/QR/O2O/";
                string filename = "QRO2O_" + qrUser.ID + "_" + System.DateTime.Now.ToString("yyyyMMdd") + (new Random()).Next(1, 100).ToString()
                                  + ".jpg";

                filePath += filename;

                qrUser.OrigQRFilePath = filePath;
                //Create QR
                filePath = System.Web.HttpContext.Current.Server.MapPath(filePath);

                //Logo
                Image LogoImg = null;

                //O2O统一Logo
                string LogoAddr = HttpContext.Current.Server.MapPath("/Content/QR/O2O_Logo.png");
                LogoImg = new Bitmap(LogoAddr);

                Bitmap qrImg = QRManager.CreateQR(url, filePath, LogoImg);


                //BK
                string bkAdree = HttpContext.Current.Server.MapPath("/Content/QR/BK/bk_O2O.jpg");
                Bitmap bkImg   = new Bitmap(bkAdree);

                //添加文字
                //using (Graphics g = Graphics.FromImage(bkImg))
                //{
                //    string s = "欢迎来到O2O特惠商城";
                //    Font font = new Font("黑体", 12, FontStyle.Bold);

                //    SolidBrush b = new SolidBrush(Color.FromArgb(50, 159, 250));

                //    g.DrawString(s, font, b, new PointF(96, 125));
                //}

                Bitmap finImg = ImgHelper.ImageWatermark(bkImg, qrImg);

                filePath  = "/Content/QR/O2O/";
                filename  = "BK_" + qrUser.ID + "_" + filename;
                filePath += filename;

                finImg.Save(HttpContext.Current.Server.MapPath(filePath));
                finImg.Dispose();
                bkImg.Dispose();


                qrUser.FilePath  = filePath;
                qrUser.TargetUrl = url;
            }
            catch (Exception ex)
            {
                IQBLog log = new IQBLog();
                log.log("CreateUserUrlById Error:" + ex.Message);
                throw ex;
            }

            return(qrUser);
        }