/// <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); } }
/// <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()); } }
/// <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); } }
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)); }
/// <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, "提交失败")); }
// 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)); }
/// <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)); }
/// <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()); }
/// <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); }
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); } }
/// <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")); }
/// <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()); }
/// <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); } } }