Пример #1
0
        /// <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()
            });
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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,
            });
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        /// <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
            });
        }