Exemplo n.º 1
0
        /// <summary>
        /// 未支付时仅修改内容表
        /// </summary>
        /// <param name="newsId"></param>
        /// <param name="setTop"></param>
        /// <param name="money"></param>
        /// <returns></returns>
        public static bool UpdateSetTop(int newsId, int setTop, decimal money, string pay, out string orderno)
        {
            using (Entities db = new Entities())
            {
                var news = db.ht_news.Find(newsId);
                orderno = string.Empty;
                if (news != null)
                {
                    orderno             = news.order_no;
                    news.set_top        = setTop;
                    news.set_top_money += money;
                    news.total         += money;
                }
                if (!string.IsNullOrWhiteSpace(pay))
                {
                    if (pay == "余额")
                    {
                        ht_user_money_log log = new ht_user_money_log();
                        log.userid  = news.add_userid;
                        log.type    = (int)Model.Enum.UserMoneyDetails.SetTopPay;
                        log.money   = -money;
                        log.remark  = string.Format("余额支出{0}元", money);
                        log.addtime = DateTime.Now;
                        db.ht_user_money_log.Add(log);

                        ht_user user = db.ht_user.Find(news.add_userid);
                        user.money = user.money - money;
                    }
                }
                return(db.SaveChanges() > 0 ? true : false);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 余额支付
        /// </summary>
        /// <param name="order_no">订单号</param>
        /// <param name="pay">支付方式</param>
        /// <param name="pay_trade_no">交易号</param>
        /// <returns></returns>
        public static int PayNews(string order_no, string pay, string pay_trade_no, out string msg)
        {
            msg = "支付失败";
            using (Entities db = new Entities())
            {
                var details = db.ht_news.FirstOrDefault(p => p.order_no == order_no);
                if (details.pay_status == 1)
                {
                    msg = "已支付过";
                    return(0);
                }

                ht_user_money_log log = new ht_user_money_log();
                log.userid  = details.add_userid;
                log.type    = (int)Model.Enum.UserMoneyDetails.PayNews;
                log.money   = -details.total;
                log.remark  = string.Format("余额支出{0}元", details.total);
                log.addtime = DateTime.Now;
                db.ht_user_money_log.Add(log);

                ht_user user = db.ht_user.Find(details.add_userid);
                user.money           = user.money - details.total;
                details.pay_status   = 1;
                details.status       = 1;//自动审核通过
                details.pay_time     = DateTime.Now;
                details.pay          = pay;
                details.pay_trade_no = pay_trade_no;
                // var tran = db.Database.BeginTransaction();
                return(db.SaveChanges());
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// 新增或更新账号
 /// </summary>
 /// <param name="openid"></param>
 /// <returns></returns>
 public static int PostUser(ht_user user)
 {
     using (Entities db = new Entities())
     {
         db.ht_user.AddOrUpdate(user);
         db.SaveChanges();
         return(user.id);
     }
 }
Exemplo n.º 4
0
        public void ProcessRequest(HttpContext context)
        {
            string id = context.Request["id"];

            ht_user model = HT.BLL.Admin.BLLUser.GetUser(int.Parse(id));

            apiResp.msg    = "查询完成";
            apiResp.status = true;
            apiResp.result = model;

            context.Response.Write(HT.Utility.JSONHelper.ObjectToJson(apiResp));
        }
Exemplo n.º 5
0
        /// <summary>
        /// 完善手机
        /// </summary>
        /// <param name="mobile"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public ActionResult PostMobile(string mobile, string code)
        {
            if (!MyRegex.IsPhone(mobile))
            {
                return(JsonResult(APIErrCode.PhoneFormatError, "手机格式错误"));
            }

            var authenticationUser = BLLAuthentication.GetAuthenticationUser();
            var obj = new XCache().Get("Code" + authenticationUser.openid);//写入缓存

            if (obj == null)
            {
                return(JsonResult(APIErrCode.CheckCodeErr, "验证码已过期"));
            }
            if (obj.ToString().ToUpper() != code.Trim().ToUpper())
            {
                return(JsonResult(APIErrCode.CheckCodeErr, "验证码错误"));
            }
            ht_user user = BLLUser.GetUserByOpenid(authenticationUser.openid);

            if (user == null)
            {
                user          = new ht_user();
                user.addtime  = DateTime.Now;
                user.username = user.openid;
                user.openid   = authenticationUser.openid;
                user.salt     = Utils.GetSalt();
                user.password = EncryptUtil.DesEncrypt("123456", user.salt);
                user.points   = 0;
                user.money    = 0;
                if (authenticationUser.parent_id.HasValue)
                {
                    user.parent_id = authenticationUser.parent_id;
                    ht_user parentUser = BLLUser.GetUserById(authenticationUser.parent_id.Value);
                    if (parentUser != null && parentUser.parent_id.HasValue)
                    {
                        user.pparent_id = parentUser.parent_id;
                    }
                }
            }
            user.mobile   = mobile;
            user.avatar   = authenticationUser.avatar;
            user.nickname = authenticationUser.nickname;
            if (BLLUser.PostUser(user) > 0)
            {
                BLLAuthentication.LoginAuthenticationTicket(user);
                return(JsonResult(APIErrCode.Success, "提交成功"));
            }
            return(JsonResult(APIErrCode.CheckCodeErr, "提交失败"));
        }
Exemplo n.º 6
0
        // GET: WX
        public ActionResult OAuthCallback()
        {
            string code  = Request["code"];
            string appId = Request["appid"]; //授权给开放平台时返回此参数 默认授权无此参数
            string state = Request["state"]; //state 原样返回

            string pageUrl           = HttpUtility.UrlDecode(state);
            string appSecret         = "";
            string getAccessTokenUrl = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code",
                                                     appId,
                                                     appSecret,
                                                     code);
            string             accessTokenSource = RequestUtil.Get(getAccessTokenUrl);
            WXOAuthAccessToken accessTokenModel  = JsonConvert.DeserializeObject <WXOAuthAccessToken>(accessTokenSource);

            ht_user user = BLLUser.GetUserByOpenid(accessTokenModel.openid);

            if (user != null)
            {
                BLLAuthentication.LoginAuthenticationTicket(user);
                return(Redirect(pageUrl));
            }
            else
            {
                user             = new ht_user();
                user.addtime     = DateTime.Now;
                user.parent_id   = 0;
                user.points      = 0;
                user.money       = 0;
                user.issubscribe = 0;
                user.salt        = Utils.GetCheckCode(6); //获得6位的salt加密字符串
                user.password    = EncryptUtil.DesEncrypt("123456", user.salt);
            }
            string wxUserInfoSourceJson = RequestUtil.Get(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}",
                                                                        accessTokenModel.access_token,
                                                                        accessTokenModel.openid
                                                                        ));
            WeixinUserInfo wxUserInfo = JsonConvert.DeserializeObject <WeixinUserInfo>(wxUserInfoSourceJson);

            user.username = user.openid;
            user.openid   = wxUserInfo.openid;
            user.nickname = wxUserInfo.nickname;
            user.avatar   = wxUserInfo.headimgurl;
            if (BLLUser.AddUser(user) > 0)
            {
                BLLAuthentication.LoginAuthenticationTicket(user);
            }
            return(Redirect(pageUrl));
        }
Exemplo n.º 7
0
        /// <summary>
        /// 用户授权回调
        /// </summary>
        /// <returns></returns>
        public ActionResult OAuthCallback()
        {
            string code  = Request["code"];
            string appId = Request["appid"]; //授权给开放平台时返回此参数 默认授权无此参数
            string state = Request["state"]; //state 原样返回

            string pageUrl = HttpUtility.UrlDecode(state);

            string appSecret         = "";
            string getAccessTokenUrl = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code",
                                                     appId,
                                                     appSecret,
                                                     code);
            string             accessTokenSource = RequestUtil.Get(getAccessTokenUrl);
            WXOAuthAccessToken accessTokenModel  = JsonConvert.DeserializeObject <WXOAuthAccessToken>(accessTokenSource);

            ht_user user = BLLUser.GetUserByOpenid(accessTokenModel.openid);

            if (user != null)
            {
                BLLAuthentication.LoginAuthenticationTicket(user);
                return(Redirect(pageUrl));
            }
            string wxUserInfoSourceJson = RequestUtil.Get(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}",
                                                                        accessTokenModel.access_token,
                                                                        accessTokenModel.openid
                                                                        ));
            WeixinUserInfo wxUserInfo = JsonConvert.DeserializeObject <WeixinUserInfo>(wxUserInfoSourceJson);

            user          = new ht_user();
            user.nickname = wxUserInfo.nickname;
            user.avatar   = wxUserInfo.headimgurl;
            user.username = accessTokenModel.openid;
            user.openid   = accessTokenModel.openid;
            string prms  = pageUrl.Substring(pageUrl.IndexOf("?") + 1);
            var    qList = HttpUtility.ParseQueryString(prms);
            var    pid   = qList.Get("pid");

            if (pid != null)
            {
                user.parent_id = Convert.ToInt32(pid);
            }
            BLLAuthentication.LoginAuthenticationTicket(user);
            return(Redirect(pageUrl));
        }
Exemplo n.º 8
0
 /// <summary>
 /// 余额明细
 /// </summary>
 /// <param name="page"></param>
 /// <param name="rows"></param>
 /// <returns></returns>
 public ActionResult UserMoneyLogData(int page, int rows)
 {
     if (Request.IsAjaxRequest())
     {
         int     total  = 0;
         var     userId = BLLUser.GetUserId();
         var     list   = BLLUser.GetUserMoneyLogData(page, rows, userId, 0, out total);
         ht_user user   = BLLUser.GetUserById(userId);
         apiResp.result = new {
             list         = list,
             total        = total,
             total_amount = user != null ? user.money : 0
         };
         apiResp.status = true;
         apiResp.msg    = "查询完成";
         return(Json(apiResp));
     }
     return(View());
 }
Exemplo n.º 9
0
        /// <summary>
        /// 生成form身份验证票证
        /// </summary>
        /// <param name="user">用户信息</param>
        public static void LoginAuthenticationTicket(ht_user user)
        {
            var userData = JsonConvert.SerializeObject(new AuthenticationUser()
            {
                id       = user.id,
                openid   = user.openid,
                nickname = user.nickname,
                avatar   = user.avatar
            });
            var expires = DateTime.Now.AddMinutes(30);
            var ticket  = new FormsAuthenticationTicket(1, user.username, DateTime.Now, expires, true, userData);
            // 加密
            var hashTicket = FormsAuthentication.Encrypt(ticket);
            // 生成cookie
            var userCookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashTicket);

            userCookie.Expires = expires;
            // 身份验证票据Cookie输出到客户端
            HttpContext.Current.Response.Cookies.Add(userCookie);
        }
Exemplo n.º 10
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (!filterContext.HttpContext.Request.IsAuthenticated)
            {
                ht_user user = BLLUser.GetUserById(1);
                BLLAuthentication.LoginAuthenticationTicket(user);
                return;

                string currentUrl  = filterContext.HttpContext.Request.Url.PathAndQuery.ToString();                                                                //当前地址和条件
                string callBackUrl = filterContext.HttpContext.Request.Url.Scheme + "://" + filterContext.HttpContext.Request.Url.Authority + "/WX/OAuthCallback"; //当前绝对地址
                var    oauthUrl    = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope={2}&state={3}#wechat_redirect",
                                                   BLLConfig.Get("wx_appid"),
                                                   callBackUrl,
                                                   "snsapi_userinfo",
                                                   HttpUtility.UrlEncode(currentUrl)
                                                   );
                //访问授权链接
                filterContext.HttpContext.Response.Redirect(oauthUrl);
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// 手机号码验证
        /// </summary>
        /// <param name="context"></param>
        private void mobile_validate(HttpContext context)
        {
            string mobile    = HTRequest.GetString("param");
            string oldmobile = HTRequest.GetString("old_name");

            if (string.IsNullOrEmpty(mobile))
            {
                context.Response.Write(NavInfo("手机号不可为空", "n"));
                return;
            }
            if (String.Equals(mobile, oldmobile, StringComparison.CurrentCultureIgnoreCase))
            {
                context.Response.Write(NavInfo("该手机号可使用", "y"));
                return;
            }
            ht_user user = _db.ht_user.FirstOrDefault(x => x.mobile == mobile);

            context.Response.Write(user != null
                ? NavInfo("该手机号已被占用,请更换", "n")
                : NavInfo("该手机号可使用", "y"));
        }
Exemplo n.º 12
0
        /// <summary>
        /// 提现
        /// </summary>
        /// <param name="money"></param>
        /// <returns></returns>
        public ActionResult AddUserMoneyLog(decimal money)
        {
            if (Request.IsAjaxRequest())
            {
                var     userId = BLLUser.GetUserId();
                ht_user user   = BLLUser.GetUserById(userId);
                if (user == null)
                {
                    apiResp.msg    = "请先登录";
                    apiResp.status = true;
                    return(Json(apiResp));
                }
                int type = (int)Model.Enum.UserMoneyDetails.WithDraw;

                // var toauditMoney = BLLUser.GetToauditTotalMoney(userId, type, (int)Model.Enum.WithDraw.ToAudit);

                if (user.money < money)
                {
                    apiResp.msg    = "余额不足";
                    apiResp.status = true;
                    return(Json(apiResp));
                }
                if (BLLUser.AddUserMoneyLogData(userId, money, "余额提现", type))
                {
                    apiResp.msg    = "提现成功";
                    apiResp.status = true;
                }
                else
                {
                    apiResp.msg    = "提现失败";
                    apiResp.status = true;
                }
                return(Json(apiResp));
            }
            return(View());
        }
Exemplo n.º 13
0
        /// <summary>
        /// 分佣
        /// </summary>
        /// <param name="newsId">newsId</param>
        /// <returns></returns>
        public bool Maid(int newsId)
        {
            using (Entities db = new Entities())
            {
                try
                {
                    var     model         = db.ht_news.Single(p => p.id == newsId);
                    var     sourceUser    = db.ht_user.Single(p => p.id == model.add_userid);
                    ht_user preUserLevel1 = null; //上一级
                    ht_user preUserLevel2 = null; //上两级
                    if (sourceUser.parent_id != null && sourceUser.parent_id != 0)
                    {
                        preUserLevel1 = db.ht_user.Single(p => p.id == sourceUser.parent_id);
                    }
                    if (preUserLevel1 != null && preUserLevel1.parent_id != 0)
                    {
                        preUserLevel2 = db.ht_user.Single(p => p.id == preUserLevel1.parent_id);
                    }
                    if (preUserLevel1 == null && preUserLevel2 == null)//一二级都没有
                    {
                        return(true);
                    }
                    decimal level1Rate   = decimal.Parse(db.ht_sys_config.Single(p => p.xkey == "distribution_level1").xvalue) / 100; //上一级分佣比例
                    decimal level2Rate   = decimal.Parse(db.ht_sys_config.Single(p => p.xkey == "distribution_level2").xvalue) / 100; //上两级分佣比例
                    decimal level1Amount = Math.Round(model.total.Value * level1Rate, 2);                                             //分给上一级的金额
                    decimal level2Amount = Math.Round(model.total.Value * level2Rate, 2);                                             //分给上两级的金额
                    if (preUserLevel1 != null)                                                                                        //给上一级分佣
                    {
                        preUserLevel1.money += level1Amount;
                        ht_user_money_log level1Log = new ht_user_money_log();
                        level1Log.addtime = DateTime.Now;
                        level1Log.userid  = preUserLevel1.id;
                        level1Log.money   = level1Amount;
                        level1Log.type    = 1;
                        level1Log.remark  = string.Format("一级分佣获得{0}元", level1Amount);
                        db.ht_user_money_log.Add(level1Log);

                        ht_distribution_log disLevel1Log = new ht_distribution_log();
                        disLevel1Log.userid            = preUserLevel1.id;
                        disLevel1Log.title             = "一级推荐人订单返利";
                        disLevel1Log.order_no          = model.order_no;
                        disLevel1Log.money             = level1Amount;
                        disLevel1Log.source_userid     = model.add_userid;
                        disLevel1Log.source_pre_userid = preUserLevel1.id;
                        disLevel1Log.news_id           = model.id;
                        disLevel1Log.add_time          = DateTime.Now;
                        db.ht_distribution_log.Add(disLevel1Log);

                        ht_commission comLevel1 = db.ht_commission.SingleOrDefault(p => p.userid == preUserLevel1.id && p.source_userid == model.add_userid);
                        if (comLevel1 != null)
                        {
                            comLevel1.total_money += level1Amount;
                        }
                        else
                        {
                            comLevel1                    = new ht_commission();
                            comLevel1.userid             = preUserLevel1.id;
                            comLevel1.add_time           = DateTime.Now;
                            comLevel1.source_userid      = model.add_userid;
                            comLevel1.source_user_nick   = sourceUser.nickname;
                            comLevel1.source_user_avatar = sourceUser.avatar;
                            comLevel1.source_pre_userid  = preUserLevel1.id;
                            comLevel1.total_money        = level1Amount;
                            db.ht_commission.Add(comLevel1);
                        }
                    }

                    if (preUserLevel2 != null)//给上两级分佣
                    {
                        preUserLevel2.money += level2Amount;
                        ht_user_money_log level2Log = new ht_user_money_log();
                        level2Log.addtime = DateTime.Now;
                        level2Log.userid  = preUserLevel2.id;
                        level2Log.money   = level2Amount;
                        level2Log.type    = 1;
                        level2Log.remark  = string.Format("二级分佣获得{0}元", level2Amount);
                        db.ht_user_money_log.Add(level2Log);

                        ht_distribution_log disLevel2Log = new ht_distribution_log();
                        disLevel2Log.userid            = preUserLevel2.id;
                        disLevel2Log.title             = "二级推荐人订单返利";
                        disLevel2Log.order_no          = model.order_no;
                        disLevel2Log.money             = level2Amount;
                        disLevel2Log.source_userid     = model.add_userid;
                        disLevel2Log.source_pre_userid = preUserLevel1.id;
                        disLevel2Log.news_id           = model.id;
                        disLevel2Log.add_time          = DateTime.Now;
                        db.ht_distribution_log.Add(disLevel2Log);

                        ht_commission comLevel2 = db.ht_commission.SingleOrDefault(p => p.userid == preUserLevel2.id && p.source_userid == model.add_userid);
                        if (comLevel2 != null)
                        {
                            comLevel2.total_money += level2Amount;
                        }
                        else
                        {
                            comLevel2                    = new ht_commission();
                            comLevel2.userid             = preUserLevel2.id;
                            comLevel2.add_time           = DateTime.Now;
                            comLevel2.source_userid      = model.add_userid;
                            comLevel2.source_user_nick   = sourceUser.nickname;
                            comLevel2.source_user_avatar = sourceUser.avatar;
                            comLevel2.source_pre_userid  = preUserLevel1.id;
                            comLevel2.total_money        = level2Amount;
                            db.ht_commission.Add(comLevel2);
                        }
                    }


                    return(db.SaveChanges() > 0);
                }
                catch (Exception ex)
                {
                    //日志
                    return(false);
                }
            }
        }