/// <summary> /// 钱包列表 /// </summary> public Respbase <List <PurseDto> > GetPurses(Reqbase req) { var query = (from purseConfig in db.TnetPurseConfigSet join purse in db.TblcUserPurseSet on new { Pursetype = purseConfig.Pursetype, Subid = purseConfig.Subid, Currencytype = purseConfig.Currencytype } equals new { Pursetype = purse.Pursetype, Subid = purse.Subid, Currencytype = purse.Currencytype } join currency in db.TblcCurrencySet on purseConfig.Currencytype equals currency.Currencyid join currency2 in db.TblcCurrencySet on purseConfig.Showunit equals currency2.Currencyid where purse.Ownertype == 1 && purse.Ownerid == req.Nodeid && purseConfig.Isshow >= 1 orderby purseConfig.Isshow descending, purseConfig.Infoid descending select new PurseDto { Id = purseConfig.Infoid, Purseid = purse.Purseid, Pursename = purseConfig.Showname, Balance = (purse.Balance - purse.Freezevalue) * currency2.ExchangeRate / currency.ExchangeRate, Freeze = (purse.Freezevalue - purse.Minvalue) * currency2.ExchangeRate / currency.ExchangeRate, Purseunit = purseConfig.Showunit, Purseunitname = purseConfig.Showunitname, IconUrl = purseConfig.Picurl, Note = purseConfig.Note, IsShow = purseConfig.Isshow, PurseType = purseConfig.Pursetype, Subid = purseConfig.Subid, BgPic = purseConfig.Bgpic }); List <PurseDto> purselist = query.ToList(); //var tpxinUserInfo = db.TpxinUserinfoSet.FirstOrDefault(w => w.Nodeid == req.Nodeid); var vp = new VPHelper(); var tpxinUserInfo = vp.GetTpxinUserinfo(req.Nodeid); var VBalance = (tpxinUserInfo == null ? 0 : tpxinUserInfo.VDianBalance); var PBalance = (tpxinUserInfo == null ? 0 : tpxinUserInfo.PDianBalance); query = db.TnetPurseConfigSet.Where(w => w.Infoid < 0 && w.Isshow == 1).Select(s => new PurseDto() { Id = s.Infoid, Purseid = s.Infoid, Pursename = s.Showname, Balance = s.Infoid == -1 ? VBalance : PBalance, Freeze = 0, Purseunit = s.Showunit, Purseunitname = s.Showunitname, IconUrl = s.Picurl, Note = s.Note, IsShow = s.Isshow, PurseType = s.Pursetype, Subid = s.Subid, BgPic = s.Bgpic }); query.ToList().ForEach(item => purselist.Add(item)); purselist.ForEach(item => { item.Balance = Math.Truncate(item.Balance * 100) / 100.0M; item.Freeze = Math.Truncate(item.Freeze * 100) / 100.0M; //item.DetailUrl = string.Format("http://client.p.cn/html/balanceinfo.aspx?purseid={0}&title={1}收支明细", item.Purseid, item.Pursename); }); return(new Respbase <List <PurseDto> > { Data = purselist.OrderByDescending(p => p.Balance).ToList() }); }
/// <summary> /// 获取信友圈用户基本信息 /// </summary> /// <param name="req"></param> /// <returns></returns> public List <UserinfoDto> GetUserInfo(ReqUserInfo req) { int[] Snodeids; if (string.IsNullOrEmpty(req.Snodeids)) { AddUserInfo(req.Nodeid); Snodeids = new int[] { req.Nodeid }; } else { Snodeids = Array.ConvertAll(req.Snodeids.Split(new char[] { ',', ';', '|' }, StringSplitOptions.RemoveEmptyEntries), s => Convert.ToInt32(s)); } var query = from user in db.TpxinUserinfoSet join reginfo in db.TnetReginfoSet.Select(a => new { a.Nodename, a.Nodeid }) on user.Nodeid equals reginfo.Nodeid join chatuser in db.TchatFriendNickSet.Where(a => a.Mynodeid == req.Nodeid).Select(a => new { a.Nickname, a.Friendnodeid }) on user.Nodeid equals chatuser.Friendnodeid into chatuser_join from chatuser in chatuser_join.DefaultIfEmpty() join photo in db.TnetUserphotoSet.Select(a => new { a.Appphoto, a.Nodeid }) on user.Nodeid equals photo.Nodeid into photo_join from photo in photo_join.DefaultIfEmpty() join cu in db.TchatUserSet.Select(p => new { p.Personalsign, p.Nodeid }) on user.Nodeid equals cu.Nodeid into cu_join from cu in cu_join.DefaultIfEmpty() where Snodeids.Contains(user.Nodeid) select new UserinfoDto { Nickname = chatuser.Nickname, Nodeid = user.Nodeid, Nodename = reginfo.Nodename, Appphoto = photo.Appphoto, Backpic = user.Backpic, Createtime = user.Createtime, Down = user.Down, Infoid = user.Infoid, P = user.P, Remarks = user.Remarks, Up = user.Up, V = user.V, Personalsign = cu.Personalsign }; var list = query.ToList(); var vp = new VPHelper(); for (int i = 0; i < list.Count; i++) { var vpDian = vp.GetTpxinUserinfo(list[i].Nodeid); list[i].V = vpDian.VDianBalance; list[i].P = vpDian.PDianBalance; } return(list); }
/// <summary> /// 获取竞拍配置(竞拍页面刷新获取实时的竞拍配置) /// </summary> /// <returns></returns> public MyTpxinPaiConfig GetAuctionConfig(int nodeid) { var now = DateTime.Now; var config = GetConfig(); if (config == null) { return(null); } var vp = new VPHelper(); var vpDian = vp.GetTpxinUserinfo(nodeid); return(new MyTpxinPaiConfig { Addprice = config.Addprice, Minprice = config.Minprice, MyP = vpDian.PDianBalance, Multiple = config.Multiple, }); }
/// <summary> /// 支付V点(查看文章) /// </summary> /// <param name="req"></param> /// <returns></returns> public MessageDto PayVDian(ReqPayVDian req) { #region 数据验证 TnetReginfo regInfo = PxinCache.GetRegInfo(req.Nodeid); if (regInfo == null) { Alert("用户不存在"); return(null); } //检查支付密码 //if (!CheckPayPwd(regInfo, req.Pwd, false)) //{ // Alert("支付密码错误"); // return false; //} TpxinMessage tpxinMessage = db.TpxinMessageSet.FirstOrDefault(a => a.Infoid == req.InfoID && a.Status == 1); if (tpxinMessage == null) { Alert("文章不存在"); return(null); } if (tpxinMessage.Price == 0) { Alert("该文章不需要收费"); return(null); } if (tpxinMessage.Nodeid == regInfo.Nodeid) { Alert("不能给自己的文章付费"); return(null); } //TpxinUserinfo tpxinUserinfo = db.TpxinUserinfoSet.FirstOrDefault(a => a.Nodeid == regInfo.Nodeid); var vp = new VPHelper(); var vpDian = vp.GetTpxinUserinfo(regInfo.Nodeid); if (vpDian.VDianBalance < tpxinMessage.Price) { Alert("V点余额不足,请先充值"); return(null); } TpxinPayhis pay = db.TpxinPayhisSet.FirstOrDefault(a => a.Infoid == tpxinMessage.Infoid && a.Nodeid == regInfo.Nodeid && a.Typeid == 3); if (pay != null) { Alert("您已支付查看文章费用"); return(null); } #endregion try { db.BeginTransaction(); //添加查看用户v点支付历史 TpxinPayhis payhis = new TpxinPayhis() { Createtime = DateTime.Now, Infoid = tpxinMessage.Infoid, Typeid = 3, Nodeid = regInfo.Nodeid, Tonodeid = tpxinMessage.Nodeid, Price = tpxinMessage.Price, Remarks = "查看文章" }; db.TpxinPayhisSet.Add(payhis); //减去查看用户v点数量 //TpxinUserinfo userinfo = db.TpxinUserinfoSet.FirstOrDefault(a => a.Nodeid == regInfo.Nodeid); //if (userinfo.V <= 0) //{ // Alert("支付失败,V点不足"); // return null; //} //userinfo.V -= tpxinMessage.Price; //var transferId = Guid.NewGuid().ToString(); //增加发布用户v点数量 //TpxinUserinfo userinfo1 = db.TpxinUserinfoSet.FirstOrDefault(a => a.Nodeid == tpxinMessage.Nodeid); //userinfo1.V += tpxinMessage.Price; var tpxinMsgUser = PxinCache.GetRegInfo(tpxinMessage.Nodeid); var nodeName = tpxinMsgUser == null ? "" : tpxinMsgUser.Nodename; //添加金额变化记录 //var reduce = CreateAmountChangeHis(regInfo.Nodeid, 1, -tpxinMessage.Price, (int)AmountChangeReason.ViewArticle, transferId, $"查看付费-{nodeName}"); //db.TpxinAmountChangeHisSet.Add(reduce); //var add = CreateAmountChangeHis(tpxinMessage.Nodeid, 1, tpxinMessage.Price, (int)AmountChangeReason.ViewArticle, transferId, $"查看收款-{regInfo.Nodename}"); //db.TpxinAmountChangeHisSet.Add(add); if (db.SaveChanges() <= 0) { Alert("支付失败:" + db.Message); log.Error("查看文章,支付失败,db:" + db.Message); db.Rollback(); return(null); } //VP服务设置V点 var result = vp.SetV(new VPPayVDian { FromNodeid = regInfo.Nodeid, FromRemark = $"查看付费-{Helper.FilterChar(nodeName)}", ToNodeid = tpxinMessage.Nodeid, ToRemark = $"查看收款-{Helper.FilterChar(regInfo.Nodename)}", Amount = tpxinMessage.Price, Reason = (int)AmountChangeReason.ViewArticle, Transferid = payhis.Hisid.ToString(), }); if (result.Result <= 0) { Alert(result.Message, result.Result); db.Rollback(); return(null); } db.Commit(); } catch (Exception ex) { log.Info("查看文章,支付失败。原因:" + ex); Alert("支付失败"); db.Rollback(); return(null); } var query = from msg in db.VpxinMessageSet where msg.Infoid == req.InfoID select new MessageDto { Commentnum = msg.Commentnum, Nodeid = msg.Msgnodeid, Localnodeid = msg.Localnodeid, Content = msg.Content, Createtime = msg.Createtime, Down = msg.Down, Infoid = msg.Infoid, Ispay = msg.Ispay, Picurl = msg.Picurl, Price = msg.Price, Reward = msg.Reward, Sound = msg.Sound, Up = msg.Up, Video = msg.Video, IsDown = msg.IsDown, IsUp = msg.IsUp }; MessageDto msgModel = query.FirstOrDefault(); Alert("支付成功", 1); return(msgModel); }
/// <summary> /// 获取首页钱包数据3 /// </summary> /// <param name="req"></param> /// <returns></returns> public Respbase <List <List <Purse3Dto> > > GetPurses3(Reqbase req) { List <List <Purse3Dto> > dto = new List <List <Purse3Dto> >(); var pxinuser = db.TpxinUserinfoSet.Where(c => c.Nodeid == req.Nodeid).FirstOrDefault(); var vp = new VPHelper(); var tpxinUserInfo = vp.GetTpxinUserinfo(req.Nodeid); var parm = $"nodeid={req.Nodeid}&sid={req.Sid}&tm={req.Tm}&sign={req.Sign}#/"; var baseUrl = System.Web.HttpContext.Current.Request.Url.Scheme + "://" + System.Web.HttpContext.Current.Request.Url.Host; List <Purse3Dto> dto1 = new List <Purse3Dto> { new Purse3Dto { Balance = db.TblcCentcardSet.Where(c => c.Usenodeid == req.Nodeid && c.Status == 1 && c.Areaid == "1").Count().ToString(), Name = "充值码", ClickUrl = baseUrl + "/App/Believe/index.html?" + parm + "RechargeCode" }, new Purse3Dto { Balance = db.Ttqm2InfoSet.Where(a => a.Status == 0 && a.Nodeid == req.Nodeid).Count().ToString(), Name = "提取码", ClickUrl = AppConfig.PMDomain + "/App/Extracted/Index.html?" + parm }, new Purse3Dto { Balance = pxinuser.Apoint.ToString("0.00"), Name = "A点", ClickUrl = baseUrl + "/App/Believe/index.html?" + parm + "auction" }, new Purse3Dto { Balance = GetBalance(65, req.Nodeid, 0, 8).ToString("0.00"), Name = "专户DOS", ClickUrl = baseUrl + "/App/Believe/index.html?" + parm + "exchange" } }; dto.Add(dto1); List <Purse3Dto> dto2 = new List <Purse3Dto> { new Purse3Dto { Balance = tpxinUserInfo.PDianBalance.ToString("0.00"), Name = "P点", PurseType = -2, Subid = 0 }, new Purse3Dto { Balance = tpxinUserInfo.VDianBalance.ToString("0.00"), Name = "V点", PurseType = -1, Subid = 0 }, new Purse3Dto { Balance = GetBalance(4, req.Nodeid, 0, 2).ToString("0.00"), Name = "SV", PurseType = 4, Subid = 0 }, new Purse3Dto { Balance = GetBalance(3, req.Nodeid, 11, 4).ToString("0.00"), Name = "UV", PurseType = 3, Subid = 11 } }; dto.Add(dto2); return(new Respbase <List <List <Purse3Dto> > > { Data = dto }); }