Exemple #1
0
        /// <summary>
        /// 发送模板短信 九维天地接口(充值、提现、收益)
        /// </summary>
        /// <param name="mobile"></param>
        /// <param name="content"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static bool SendTemplateSms(string mobile, string content, out string msg)
        {
            siteconfig siteConfig = ConfigLoader.loadSiteConfig();
            //检测号码,忽略不合格的
            Regex r = new Regex(@"^1\d{10}$", RegexOptions.IgnoreCase);

            if (r.Match(mobile).Success)
            {
                try
                {
                    string result = Utils.HttpPost(siteConfig.smsapiurl,
                                                   "productid=936245&username="******"&password="******"&mobile=" + mobile + "&content=" + HttpUtility.UrlEncode(content));
                    string[] strArr = result.Split(new string[] { "," }, StringSplitOptions.None);
                    if (strArr[0] != "1")
                    {
                        msg = "发送短信失败," + GetJwErrorType(strArr[0]);
                        return(false);
                    }
                }
                catch (Exception e)
                {
                    msg = "发送短信失败:" + e.Message;
                    return(false);
                }
            }

            msg = "发送短信成功!";
            return(true);
        }
Exemple #2
0
        /// <summary>
        /// 查询普通项目的回款记录
        /// </summary>
        /// <param name="user"></param>
        /// <param name="type"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <returns></returns>
        public static List <MyRepayment> QueryProjectRepayments(dt_users user, Agp2pEnums.MyRepaymentQueryTypeEnum type, string startTime = "", string endTime = "")
        {
            var myRepayingProjects = user.li_claims.Where(c =>
                                                          c.projectId == c.profitingProjectId && c.IsLeafClaim() &&
                                                          (int)Agp2pEnums.ProjectStatusEnum.Financing <= c.li_projects.status &&
                                                          c.status < (int)Agp2pEnums.ClaimStatusEnum.Transferred).ToLookup(cg => cg.li_projects);

            Model.siteconfig config = new siteconfig().loadConfig();

            var unsorted = myRepayingProjects.Select(p =>
            {
                var ratio = p.Sum(c => c.principal) / p.Key.investment_amount;
                var query = p.Key.li_repayment_tasks.Where(t => t.status != (int)Agp2pEnums.RepaymentStatusEnum.Invalid)
                            .Where(task => p.Key.dt_article_category.call_index != "newbie" || task.only_repay_to == user.id);

                if (!string.IsNullOrWhiteSpace(startTime))
                {
                    query = query.Where(tr => Convert.ToDateTime(startTime) <= tr.should_repay_time);
                }
                if (!string.IsNullOrWhiteSpace(endTime))
                {
                    query = query.Where(tr => tr.should_repay_time <= Convert.ToDateTime(endTime));
                }

                var validRepaymentTaskCount = query.Count();

                var reps1 =
                    query.Where(tr =>
                                type == Agp2pEnums.MyRepaymentQueryTypeEnum.Unpaid
                            ? tr.status < (int)Agp2pEnums.RepaymentStatusEnum.ManualPaid
                            : (int)Agp2pEnums.RepaymentStatusEnum.ManualPaid <= tr.status)
                    .Select(task => new MyRepayment
                {
                    RepaymentId    = task.id,
                    Project        = null,
                    RepayInterest  = Math.Round(task.repay_interest * ratio, 2),
                    RepayPrincipal = Math.Round(task.repay_principal * ratio, 2),
                    ShouldRepayDay = task.should_repay_time.ToString("yyyy/MM/dd"),
                    Term           = task.term.ToString() + "/" + validRepaymentTaskCount
                }).ToList();

                if (!reps1.Any())
                {
                    return(Enumerable.Empty <MyRepayment>());
                }
                reps1.First().Project = new MyInvestProject
                {
                    Id                 = p.Key.id,
                    Name               = p.Key.title,
                    Link               = linkurl(config, "project", p.Key.id),
                    InvestValue        = p.Sum(c => c.principal),
                    ProfitRateYear     = p.Key.GetProfitRateYearly(),
                    InvestCompleteTime = p.Key.invest_complete_time
                };

                return(reps1);
            }).ToList();

            return(unsorted.Where(ts => ts.Any()).OrderBy(ts => ts.First().ShouldRepayDay).SelectMany(x => x).ToList());
        }
Exemple #3
0
        /// <summary>
        /// 查询账户剩余短信数量 九维天地接口
        /// </summary>
        public static int GetAccountQuantity(out string code)
        {
            siteconfig siteConfig = ConfigLoader.loadSiteConfig(); //获得站点配置信息

            //检查是否设置好短信账号
            if (!Exists())
            {
                code = "115";
                return(0);
            }
            try
            {
                string   result = Utils.HttpPost("http://esm2.9wtd.com:9001/balance.do", "productid=936245&username="******"&password="******"||" }, StringSplitOptions.None);
                var      count  = Utils.StrToInt(strArr[0], 0);
                if (count < 0)
                {
                    code = count.ToString();
                    return(0);
                }
                code = "100";
                return(count);
            }
            catch
            {
                code = "115";
                return(0);
            }
        }
 /// <summary>
 /// 写入站点配置文件
 /// </summary>
 public siteconfig saveConifg(siteconfig model, string configFilePath)
 {
     lock (lockHelper)
     {
         SerializationHelper.Save(model, configFilePath);
     }
     return(model);
 }
Exemple #5
0
        /// <summary>
        /// 检查账户信息是否正确
        /// </summary>
        /// <returns></returns>
        public static bool Exists()
        {
            siteconfig siteConfig = ConfigLoader.loadSiteConfig(); //获得站点配置信息

            if (string.IsNullOrEmpty(siteConfig.smsapiurl) || string.IsNullOrEmpty(siteConfig.smsusername) || string.IsNullOrEmpty(siteConfig.smspassword))
            {
                return(false);
            }
            return(true);
        }
        /// <summary>
        ///  读取配置文件
        /// </summary>
        public siteconfig loadConfig()
        {
            siteconfig model = CacheHelper.Get <siteconfig>(DTKeys.CACHE_SITE_CONFIG);

            if (model == null)
            {
                CacheHelper.Insert(DTKeys.CACHE_SITE_CONFIG, DALloadConfig(Utils.GetXmlMapPath(DTKeys.FILE_SITE_XML_CONFING)),
                                   Utils.GetXmlMapPath(DTKeys.FILE_SITE_XML_CONFING));
                model = CacheHelper.Get <siteconfig>(DTKeys.CACHE_SITE_CONFIG);
            }
            return(model);
        }
Exemple #7
0
        protected virtual void Page_Load(object sender, System.EventArgs e)
        {
            siteconfig sc = new siteconfig();

            sc.sitechace();
            sc.getconfig();
            config    = sc.config;
            config_ad = sc.config_ad;

            this.Title = config["site_name"].ToString();
            site_name  = config["site_name"].ToString();


            Session["user_id"] = "1";
            if (Session["user_id"] != null)
            {
                user_id = Session["user_id"].ToString();
            }
        }
        /// <summary>
        /// 生成全部模板
        /// </summary>
        public static void MarkTemplates(string buildPath, string skinName, siteconfig siteconfig)
        {
            //取得ASP目录下的所有文件
            string fullDirPath = Utils.GetMapPath(string.Format("{0}aspx/{1}/", siteconfig.webpath, buildPath));

            //获得URL配置列表
            BLL.url_rewrite          bll = new BLL.url_rewrite();
            List <Model.url_rewrite> ls  = bll.GetList("");

            DirectoryInfo dirFile = new DirectoryInfo(fullDirPath);

            //删除不属于URL映射表里的文件,防止冗余
            if (Directory.Exists(fullDirPath))
            {
                foreach (FileInfo file in dirFile.GetFiles())
                {
                    //检查文件
                    //Model.url_rewrite modelt = ls.Find(p => p.page.ToLower() == file.Name.ToLower());
                    //if (modelt == null)
                    //{
                    file.Delete();
                    //}
                }
            }

            //遍历URL配置列表
            foreach (Model.url_rewrite modelt in ls)
            {
                //如果URL配置对应的模板文件存在则生成
                string fullPath = Utils.GetMapPath(string.Format("{0}templates/{1}/{2}", siteconfig.webpath, skinName, modelt.templet));
                if (File.Exists(fullPath))
                {
                    PageTemplate.GetTemplate(siteconfig.webpath, "templates", skinName, modelt.templet, modelt.page, modelt.inherit, buildPath, 1);
                }
            }
        }
Exemple #9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Utils.CheckRole("1"))
            {
                Page.ClientScript.RegisterStartupScript(Page.GetType(), "set", "<script>window.onload=showmsgclose('权限信息','没有权限!','/Systestcomjun/index.aspx',2)</script>");
                return;
            }
            if (!IsPostBack)
            {
                siteconfig site = sitebll.loadConfig(Server.MapPath("/xmlconfig/site.config"));
                txtFileSize.Text = site.FileSize + "";
                foreach (ListItem item in chkImgFormat.Items)
                {
                    if (site.ImgFormat.Contains(item.Text))
                    {
                        item.Selected = true;
                    }
                }
                txtOrderTime.Text    = site.OrderTime + "";
                txtSetOrderTime.Text = site.SetOrderTime + "";

                txtCommission.Text = site.Commission + "";
            }
        }
Exemple #10
0
        protected void btnsave_Click(object sender, EventArgs e)
        {
            siteconfig site = sitebll.loadConfig(Server.MapPath("/xmlconfig/site.config"));

            site.FileSize = Convert.ToInt32(txtFileSize.Text);
            var imgformat = "";

            foreach (ListItem item in chkImgFormat.Items)
            {
                if (item.Selected)
                {
                    imgformat += item.Text + ",";
                }
            }
            imgformat         = imgformat.TrimEnd(',');
            site.ImgFormat    = imgformat;
            site.OrderTime    = Convert.ToInt32(txtOrderTime.Text);
            site.SetOrderTime = Convert.ToInt32(txtSetOrderTime.Text);
            site.Commission   = Convert.ToInt32(txtCommission.Text);
            new ZhongLi.BLL.Reward_Order().SetOrderTime(site.OrderTime, site.SetOrderTime);
            sitebll.saveConifg(site, Server.MapPath("/xmlconfig/site.config"));
            webHelper.addLog("修改了“系统管理”的配置信息");
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "set", "<script>window.onload=showmsg('系统设置','保存成功','',1)</script>");
        }
Exemple #11
0
 public UpLoad()
 {
     siteConfig = new SiteConfig(new SiteConfigRepository()).loadConfig();
 }
Exemple #12
0
 public ManagePage()
 {
     this.Load += new EventHandler(ManagePage_Load);
     siteConfig = new SiteConfig(new SiteConfigRepository()).loadConfig();
 }
Exemple #13
0
 public Login()
 {
     siteConfig = new SiteConfig(new SiteConfigRepository()).loadConfig();
 }
Exemple #14
0
        /// <summary>
        /// 发送营销短信 九维天地接口
        /// </summary>
        /// <param name="mobiles">手机号码,以英文“,”逗号分隔开</param>
        /// <param name="content">短信内容</param>
        /// <param name="pass">短信通道1验证码通道2广告通道 暂无用</param>
        /// <param name="msg">返回提示信息</param>
        /// <returns>bool</returns>
        public static bool Send(string mobiles, string content, int pass, out string msg)
        {
            siteconfig siteConfig = ConfigLoader.loadSiteConfig(); //获得站点配置信息

            //检查是否设置好短信账号
            if (!Exists())
            {
                msg = "短信配置参数有误,请完善后再提交!";
                return(false);
            }
            //检查手机号码,如果超过2000则分批发送
            int    sucCount = 0;            //成功提交数量
            string errorMsg = string.Empty; //错误消息

            string[] oldMobileArr = mobiles.Split(',');
            int      batch        = oldMobileArr.Length / 2000 + 1; //2000条为一批,求出分多少批

            for (int i = 0; i < batch; i++)
            {
                StringBuilder sb        = new StringBuilder();
                int           sendCount = 0;              //发送数量
                int           maxLenght = (i + 1) * 2000; //循环最大的数

                //检测号码,忽略不合格的,重新组合
                for (int j = 0; j < oldMobileArr.Length && j < maxLenght; j++)
                {
                    int    arrNum  = j + (i * 2000);
                    string pattern = @"^1\d{10}$";
                    string mobile  = oldMobileArr[arrNum].Trim();
                    if (mobile.Length != 11)
                    {
                        continue;
                    }
                    Regex r = new Regex(pattern, RegexOptions.IgnoreCase); //正则表达式实例,不区分大小写
                    if (r.Match(mobile).Success)
                    {
                        sendCount++;
                        sb.Append(mobile + ",");
                    }
                }

                //发送短信
                if (sb.ToString().Length > 0)
                {
                    try
                    {
                        string result = Utils.HttpPost(siteConfig.smsapiurl,
                                                       "productid=936245&username="******"&password="******"&mobile=" + Utils.DelLastComma(sb.ToString()) + "&content=" + Utils.UrlEncode(content));
                        string[] strArr = result.Split(new string[] { "," }, StringSplitOptions.None);
                        if (strArr[0] != "1")
                        {
                            errorMsg = "提交失败," + GetJwErrorType(strArr[0]);
                            continue;
                        }
                        sucCount += sendCount; //成功数量
                    }
                    catch
                    {
                        //没有动作
                    }
                }
            }

            //返回状态
            if (sucCount > 0)
            {
                msg = "成功提交" + sucCount + "条,失败" + (oldMobileArr.Length - sucCount) + "条";
                return(true);
            }
            msg = errorMsg;
            return(false);
        }
 /// <summary>
 ///  保存配置文件
 /// </summary>
 public siteconfig saveConifg(siteconfig model)
 {
     return(DALsaveConifg(model, Utils.GetXmlMapPath(DTKeys.FILE_SITE_XML_CONFING)));
 }
Exemple #16
0
        /// <summary>
        /// 发送投资成功消息
        /// </summary>
        /// <param name="projectTransactionId"></param>
        /// <param name="investTime"></param>
        private static void HandleProjectInvestMsg(int projectTransactionId, DateTime investTime)
        {
            var context = new Agp2pDataContext();

            try
            {
                //找出项目投资信息
                var investment = context.li_project_transactions.Single(p => p.id == projectTransactionId);

                //发送电子合同
                siteconfig siteConfig = ConfigLoader.loadSiteConfig();
                //增加协议号到投资记录中
                investment.agree_no = investment.li_projects.dt_article_category.call_index.ToUpper() + Utils.GetOrderNumber();
                //获得投资协议邮件内容
                var bodytxt = context.GetInvestContractContext(investment, AppDomain.CurrentDomain.BaseDirectory + "\\tools\\invest-agreement.html");
                //发送投资协议邮件
                // TODO 新手体验标 不发投资协议到邮箱
                if (!string.IsNullOrWhiteSpace(investment.dt_users.email) && !investment.li_projects.IsNewbieProject1())
                {
                    DTMail.sendMail(siteConfig.emailsmtp,
                                    siteConfig.emailusername,
                                    DESEncrypt.Decrypt(siteConfig.emailpassword),
                                    siteConfig.emailnickname,
                                    siteConfig.emailfrom,
                                    investment.dt_users.email,
                                    "安广融合投资协议", bodytxt);
                }

                // 检测用户是否接收放款的通知
                var sendNotificationSettings = context.li_notification_settings.Where(n => n.user_id == investment.investor)
                                               .Select(n => n.type).Cast <Agp2pEnums.DisabledNotificationTypeEnum>();

                if (sendNotificationSettings.Contains(Agp2pEnums.DisabledNotificationTypeEnum.InvestSuccessForUserMsg))
                {
                    return;
                }
                else
                {
                    context.SubmitChanges();
                }

                //发送投资站内信息
                var dtSmsTemplate = context.dt_sms_template.FirstOrDefault(t => t.call_index == "invest_success");
                if (dtSmsTemplate == null)
                {
                    return;
                }

                var content = dtSmsTemplate.content.Replace("{date}", investment.create_time.ToString("yyyy年MM月dd日HH时mm分"))
                              .Replace("{projectName}", investment.li_projects.title)
                              .Replace("{amount}", investment.principal.ToString("N"));

                var userMsg = new dt_user_message
                {
                    type             = 1,
                    post_user_name   = "",
                    accept_user_name = investment.dt_users.user_name,
                    title            = dtSmsTemplate.title,
                    content          = content,
                    post_time        = investTime,
                    receiver         = investment.investor
                };
                context.dt_user_message.InsertOnSubmit(userMsg);
                context.SubmitChanges();
            }
            catch (Exception ex)
            {
                context.AppendAdminLog("Invest", "发送投资成功消息时错误:" + ex.Message);
                context.SubmitChanges();
            }
        }
        public JsonResult SysConfigSave()
        {
            siteconfig model = configSite.loadConfig();

            try
            {
                model.IsEmail        = Utils.StrToInt(Request.Form["rblEmail"], 0);
                model.webname        = Request.Form["webname"];
                model.weburl         = Request.Form["weburl"];
                model.weblogo        = Request.Form["weblogo"];
                model.webcompany     = Request.Form["webcompany"];
                model.webaddress     = Request.Form["webaddress"];
                model.webtel         = Request.Form["webtel"];
                model.webfax         = Request.Form["webfax"];
                model.webmail        = Request.Form["webmail"];
                model.webcrod        = Request.Form["webcrod"];
                model.webtitle       = Request.Form["webtitle"];
                model.webkeyword     = Request.Form["webkeyword"];
                model.webdescription = Utils.DropHTML(Request.Form["webdescription"]);
                model.webcopyright   = Request.Form["webcopyright"];

                model.webpath         = Request.Form["webpath"];
                model.webmanagepath   = Request.Form["webmanagepath"];
                model.staticstatus    = Utils.StrToInt(Request.Form["staticstatus"], 0);
                model.staticextension = Request.Form["staticextension"];

                model.memberstatus  = !string.IsNullOrEmpty(Request.Form["memberstatus"]) ? 1 : 0;
                model.commentstatus = !string.IsNullOrEmpty(Request.Form["commentstatus"]) ? 1 : 0;
                model.logstatus     = !string.IsNullOrEmpty(Request.Form["logstatus"]) ? 1 : 0;
                model.webstatus     = !string.IsNullOrEmpty(Request.Form["webstatus"]) ? 1 : 0;

                model.webclosereason = Request.Form["webclosereason"];
                model.webcountcode   = Request.Form["webcountcode"];

                model.smsusername = Request.Form["smsusername"];
                string defaultpassword = "******"; //默认显示密码
                //判断密码是否更改
                if (Request.Form["smspassword"].ToString() != "" && Request.Form["smspassword"].ToString() != defaultpassword)
                {
                    model.smspassword = MD5Comm.Get32MD5One(Request.Form["smspassword"].ToString());
                }

                model.emailsmtp     = Request.Form["emailsmtp"];
                model.emailport     = Utils.StrToInt(Request.Form["emailport"].ToString(), 25);
                model.emailfrom     = Request.Form["emailfrom"];
                model.emailusername = Request.Form["emailusername"];
                //判断密码是否更改
                if (Request.Form["emailpassword"] != defaultpassword)
                {
                    model.emailpassword = DESEncrypt.Encrypt(Request.Form["emailpassword"], model.sysencryptstring);
                }
                model.emailnickname = Request.Form["emailnickname"];

                model.filepath              = Request.Form["filepath"];
                model.filesave              = Utils.StrToInt(Request.Form["filesave"], 2);
                model.fileextension         = Request.Form["fileextension"];
                model.attachsize            = Utils.StrToInt(Request.Form["attachsize"], 0);
                model.imgsize               = Utils.StrToInt(Request.Form["imgsize"], 0);
                model.imgmaxheight          = Utils.StrToInt(Request.Form["imgmaxheight"], 0);
                model.imgmaxwidth           = Utils.StrToInt(Request.Form["imgmaxwidth"], 0);
                model.thumbnailheight       = Utils.StrToInt(Request.Form["thumbnailheight"], 0);
                model.thumbnailwidth        = Utils.StrToInt(Request.Form["thumbnailwidth"], 0);
                model.watermarktype         = Utils.StrToInt(Request.Form["watermarktype"], 0);
                model.watermarkposition     = Utils.StrToInt(Request.Form["watermarkposition"], 9);
                model.watermarkimgquality   = Utils.StrToInt(Request.Form["watermarkimgquality"], 80);
                model.watermarkpic          = Request.Form["watermarkpic"];
                model.watermarktransparency = Utils.StrToInt(Request.Form["watermarktransparency"], 5);
                model.watermarktext         = Request.Form["watermarktext"];
                model.watermarkfont         = Request.Form["watermarkfont"];
                model.watermarkfontsize     = Utils.StrToInt(Request.Form["watermarkfontsize"], 12);

                configSite.saveConifg(model);
                strStatus = "1";
                strMsg    = "修改系统配置成功";
            }
            catch
            {
                strStatus = "0";
                strMsg    = "文件写入失败,请检查是否有权限!";
            }
            return(Json(new { status = strStatus, msg = strMsg }));
        }
Exemple #18
0
 /// <summary>
 ///  保存配置文件
 /// </summary>
 public siteconfig saveConifg(siteconfig model)
 {
     return(this._repository.saveConifg(model, Utils.GetXmlMapPath(SystemKeys.FILE_SITE_XML_CONFING)));
 }
        private void SendVerifyEmail(int userId, string email, Action <int, string> callback, string templateName = "emailverify")
        {
            if (userId <= 0 || string.IsNullOrWhiteSpace(email))
            {
                callback((int)HttpStatusCode.BadRequest, "缺少参数");
                return;
            }
            // verifying_email : string | last_send_verifying_mail_at : DateTime? | verifying_email_code : string
            // 限制发送的时间间隔
            var lastSendVerifyingMailAt = (DateTime?)SessionHelper.Get("last_send_verifying_mail_at");

            if (lastSendVerifyingMailAt != null && DateTime.Now.Subtract(lastSendVerifyingMailAt.Value).TotalSeconds < 60)
            {
                callback(429, "发送邮件间隔为 60 秒,您刚才已经发送过啦,休息一下再来吧!");
                return;
            }
            var context = new Agp2pDataContext();
            // 检查是否有其他用户验证过此邮箱
            var count = context.dt_users.Count(u => u.email == email);

            if (count != 0)
            {
                callback((int)HttpStatusCode.Conflict, "这个电子邮箱已经被其他用户绑定了");
                return;
            }

            var strCode = Utils.GetCheckCode(5);

            SessionHelper.Set("verifying_email", email);
            SessionHelper.Set("last_send_verifying_mail_at", DateTime.Now);
            SessionHelper.Set("verifying_email_code", strCode);

            var user = context.dt_users.Single(u => u.id == userId);

            //获得邮件内容
            var mailModel = new mail_template().GetModel(templateName);

            if (mailModel == null)
            {
                callback((int)HttpStatusCode.Gone, "邮件发送失败,邮件模板内容不存在!");
                return;
            }
            //替换模板内容
            var siteConfig = new siteconfig().loadConfig();
            var titletxt   = mailModel.maill_title
                             .Replace("{webname}", siteConfig.webname)
                             .Replace("{username}", user.user_name);
            var bodytxt = mailModel.content
                          .Replace("{webname}", siteConfig.webname)
                          .Replace("{webtel}", siteConfig.webtel)
                          .Replace("{username}", user.user_name)
                          .Replace("{valid}", SessionHelper.GetSessionTimeout().ToString())
                          .Replace("{linkurl}",
                                   "http://" + HttpContext.Current.Request.Url.Authority.ToLower() +
                                   "/user/center/index.html#/safe?action=verifyEmail&code=" + strCode)
                          .Replace("{verifyCode}", strCode);

            try
            {
                DTMail.sendMail(siteConfig.emailsmtp,
                                siteConfig.emailusername,
                                DESEncrypt.Decrypt(siteConfig.emailpassword),
                                siteConfig.emailnickname,
                                siteConfig.emailfrom,
                                email,
                                titletxt, bodytxt); //发送邮件
                callback((int)HttpStatusCode.OK, "邮件发送成功,请查收!");
            }
            catch (Exception e)
            {
                callback((int)HttpStatusCode.InternalServerError, "邮件发送失败,请联系本站管理员!");
            }
        }
Exemple #20
0
 public UpLoad()
 {
     siteConfig = new siteconfigs().loadConfig();
 }
Exemple #21
0
 public ManagePage()
 {
     this.Load += new EventHandler(ManagePage_Load);
     siteConfig = new SiteConfig(new SiteConfigRepository()).loadConfig();
 }