Esempio n. 1
0
 public void SetUI(List <RechargeRecordEntity> lst)
 {
     for (int i = 0; i < m_List.Count; ++i)
     {
         m_List[i].gameObject.SetActive(false);
     }
     if (lst == null || lst.Count == 0)
     {
         InputUserId.text = string.Empty;
         m_TextAmount.SafeSetText(string.Empty);
         return;
     }
     m_TextAmount.SafeSetText(string.Format("合计:{0}", lst.Count.ToString()));
     for (int i = 0; i < lst.Count; ++i)
     {
         UIItemRechargeRecord item   = null;
         RechargeRecordEntity entity = lst[i];
         if (i < m_List.Count)
         {
             item = m_List[i];
             item.gameObject.SetActive(true);
         }
         else
         {
             UIViewManager.Instance.LoadItemAsync("UIItemRechargeRecord", (GameObject go) =>
             {
                 go = Instantiate(go);
                 go.SetParent(m_Container);
                 item = go.GetComponent <UIItemRechargeRecord>();
                 m_List.Add(item);
             });
         }
         item.SetUI(entity.add_time, entity.nickname, entity.toId, entity.amount, entity.old_amount);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public int Add(RechargeRecordEntity model)
 {
     try
     {
         return(RechargeRecordDb.Instance.Add(model));
     }
     catch (Exception ex)
     {
         WriteLog.WriteError(ex);
         throw ex;
     }
 }
Esempio n. 3
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(RechargeRecordEntity model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into sns_rechargeRecord(");
            strSql.Append("UserId,source,RMB,Cnbi,addTime,OrderNo,OrderName,wareDesc,Status)");
            strSql.Append(" values (");
            strSql.Append("@UserId,@source,@RMB,@Cnbi,@addTime,@OrderNo,@OrderName,@wareDesc,@Status)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters =
            {
                new SqlParameter("@UserId",    SqlDbType.VarChar,   50),
                new SqlParameter("@source",    SqlDbType.VarChar,   50),
                new SqlParameter("@RMB",       SqlDbType.VarChar,   50),
                new SqlParameter("@Cnbi",      SqlDbType.VarChar,   50),
                new SqlParameter("@addTime",   SqlDbType.DateTime),
                new SqlParameter("@OrderNo",   SqlDbType.VarChar,   50),
                new SqlParameter("@OrderName", SqlDbType.VarChar,   50),
                new SqlParameter("@wareDesc",  SqlDbType.VarChar,   50),
                new SqlParameter("@Status",    SqlDbType.Int, 4)
            };
            parameters[0].Value = UtilityHelper.SqlNull(model.UserId);
            parameters[1].Value = UtilityHelper.SqlNull(model.source);
            parameters[2].Value = UtilityHelper.SqlNull(model.RMB);
            parameters[3].Value = UtilityHelper.SqlNull(model.Cnbi);
            parameters[4].Value = UtilityHelper.SqlNull(model.addTime);
            parameters[5].Value = UtilityHelper.SqlNull(model.OrderNo);
            parameters[6].Value = UtilityHelper.SqlNull(model.OrderName);
            parameters[7].Value = UtilityHelper.SqlNull(model.wareDesc);
            parameters[8].Value = UtilityHelper.SqlNull(model.Status);

            object obj = SqlHelper.Instance.ExecSqlScalar(strSql.ToString(), parameters);

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToInt32(obj));
            }
        }
 /// <summary>
 /// 修改
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public MFReturnValue <object> Update(RechargeRecordEntity entity)
 {
     return(this.DBModel.Update(entity));
 }
Esempio n. 5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //请在这里加上商户的业务逻辑程序代码
                //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
                string user_id      = Request.Form["extra_common_param"];
                string notify_time  = DateTime.Now.ToString();                  //Request.Form["notify_time"]; //通知时间
                string notify_type  = "";                                       //Request.Form["notify_type"]; //通知类型
                string notify_id    = Request.Form["notify_id"];                //通知校验ID
                string sign_type    = Request.Form["sign_type"];                //签名方式
                string sign         = Request.Form["sign"];                     //签名
                string out_trade_no = Request.Form["out_trade_no"];             //商户订单号
                string subject      = Request.Form["subject"];                  //商品名称
                string payment_type = Request.Form["payment_type"];             //支付类型
                string trade_no     = Request.Form["trade_no"];                 //支付宝交易号
                string trade_status = Request.Form["trade_status"];             //交易状态
                string gmt_create   = DateTime.Now.ToString();                  //交易创建时间

                string gmt_payment = DateTime.Now.ToString();                   //交易付款时间

                string gmt_close = DateTime.Now.ToString();                     //交易关闭时间

                string seller_email       = Request.Form["seller_email"];       //卖家支付宝账号
                string seller_id          = Request.Form["seller_id"];          //卖家支付宝账户号
                string buyer_email        = Request.Form["buyer_email"];        //买家支付宝账号
                string buyer_id           = Request.Form["buyer_id"];           //买家支付宝账户号
                string total_fee          = Request.Form["total_fee"];          //交易金额
                string body               = Request.Form["body"];               //商品描述
                string discount           = Request.Form["discount"];           //折扣
                string business_scene     = Request.Form["business_scene"];     //是否扫码支付
                string extra_common_param = Request.Form["extra_common_param"]; //公用回传参数

                TransactionsEntity transactionsEntity = new TransactionsEntity();
                transactionsEntity.UserId           = user_id;
                transactionsEntity.NotifyTime       = Convert.ToDateTime(notify_time);
                transactionsEntity.NotifyType       = notify_type;
                transactionsEntity.NotifyId         = notify_id;
                transactionsEntity.SignType         = sign_type;
                transactionsEntity.Sign             = sign;
                transactionsEntity.OutTradeNo       = out_trade_no;
                transactionsEntity.Subject          = subject;
                transactionsEntity.PaymentType      = payment_type;
                transactionsEntity.TradeNo          = trade_no;
                transactionsEntity.TradeStatus      = trade_status;
                transactionsEntity.GmtCreate        = Convert.ToDateTime(gmt_create);
                transactionsEntity.GmtPayment       = Convert.ToDateTime(gmt_payment);
                transactionsEntity.GmtClose         = Convert.ToDateTime(gmt_close);
                transactionsEntity.SellerEmail      = seller_email;
                transactionsEntity.SellerId         = seller_id;
                transactionsEntity.BuyerEmail       = buyer_email;
                transactionsEntity.BuyerId          = buyer_id;
                transactionsEntity.TotalFee         = total_fee;
                transactionsEntity.Body             = body;
                transactionsEntity.Discount         = discount;
                transactionsEntity.BusinessScene    = business_scene;
                transactionsEntity.ExtraCommonParam = extra_common_param;
                transactionsEntity.Status           = 1;
                TransactionsBll.Instance.Add(transactionsEntity);

                //保存到充值记录表
                RechargeRecordEntity rechargeRecordEntity = new RechargeRecordEntity();
                rechargeRecordEntity.UserId = user_id;

                rechargeRecordEntity.RMB = double.Parse(total_fee).ToString();
                if (subject.IndexOf("身家", StringComparison.Ordinal) > -1)
                {
                    rechargeRecordEntity.source = "ShenJiaRecharge";
                    rechargeRecordEntity.Cnbi   = "0";
                }
                else if (subject.IndexOf("会员", StringComparison.Ordinal) > -1)
                {
                    rechargeRecordEntity.source = "PurchaseVip";
                    rechargeRecordEntity.Cnbi   = "0";
                }
                else if (subject.IndexOf("押金", StringComparison.Ordinal) > -1)
                {
                    rechargeRecordEntity.source = "Deposit";
                    rechargeRecordEntity.Cnbi   = "0";
                }
                else
                {
                    rechargeRecordEntity.source = "";
                    rechargeRecordEntity.Cnbi   = (double.Parse(total_fee) * 100).ToString();
                }

                rechargeRecordEntity.addTime   = DateTime.Now;
                rechargeRecordEntity.OrderNo   = out_trade_no;
                rechargeRecordEntity.OrderName = subject;
                rechargeRecordEntity.wareDesc  = body;
                rechargeRecordEntity.Status    = 1;
                RechargeRecordBll.Instance.Add(rechargeRecordEntity);
                //保存到积分变更表
                IntegralChangeEntity integralChangeEntity = new IntegralChangeEntity();
                integralChangeEntity.UserId   = user_id;
                integralChangeEntity.source   = "ShenJiaRecharge";
                integralChangeEntity.ShenJia  = decimal.Parse(total_fee);
                integralChangeEntity.Bean     = "0";
                integralChangeEntity.Cnbi     = rechargeRecordEntity.Cnbi;
                integralChangeEntity.integral = 0;
                integralChangeEntity.Growth   = 0;
                integralChangeEntity.Status   = 1;
                integralChangeEntity.ardent   = 0;
                integralChangeEntity.AddTime  = DateTime.Now;
                IntegralChangeBll.Instance.Add(integralChangeEntity);
                //更新会员表
                if (subject.IndexOf("身家", StringComparison.Ordinal) > -1)
                {
                    MemberBll.Instance.UpdateIntegral(user_id, "ShenJia", integralChangeEntity.ShenJia.ToString());
                }
                else if (subject.IndexOf("会员", StringComparison.Ordinal) > -1)
                {
                    //string month = (double.Parse(total_fee)/0.01).ToString();
                    MemberBll.Instance.UpdateVip(user_id, total_fee);
                }
                else if (subject.IndexOf("押金", StringComparison.Ordinal) > -1)
                {
                    MemberBll.Instance.UpdateIntegral(user_id, "Deposit", total_fee);
                }
                else
                {
                    MemberBll.Instance.UpdateIntegral(user_id, "Cnbi", integralChangeEntity.Cnbi);
                }


                //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
                Response.Write("success");  //请不要修改或删除

                /////////////////////////////////////////////////////////////////////////////////////////////////////////////
            }
            catch (Exception ex)
            {
                Response.Write("错误:" + ex.Message);
            }
        }
Esempio n. 6
0
        /// <summary>
        /// 充值
        /// </summary>
        /// <param name="channelId"></param>
        /// <param name="rechargeProductId"></param>
        public void Recharge(short channelId, int rechargeProductId)
        {
            //1.根据rechargeProductId 查询到充值产品信息
            RechargeProductEntity rechargeProductEntity = RechargeProductCacheModel.Instance.GetEntity(string.Format("[ChannelType]={0} and [ProductId]={1}", 0, rechargeProductId));
            int virtualMoney = rechargeProductEntity.Virtual;

            bool rechargeSuccess   = false;
            byte rechargeErrorType = 0;
            int  remainDays        = 0;

            //2.添加充值记录
            //⑴.检查充值的合法性
            //⑵.进行充值记录的添加

            //⑴.检查充值的合法性
            //如果是月卡 检查到期时间 是否可以购买
            //如果是礼包 检查是否已经购买过
            //如果是普通计费点 但是没有购买过 首充双倍

            RechargeRecordEntity monthCard = null;//定义月卡

            if (rechargeProductEntity.ProductType == 1)
            {
                //月卡
                //是否购买过月卡 或者购买时间超过一个月了
                MFReturnValue <List <RechargeRecordEntity> > retValue = RechargeRecordCacheModel.Instance.GetPageList(condition: string.Format("[RoleId]={0} and [ProductId]={1}", RoleId, rechargeProductId), orderby: "UpdateTime", pageSize: 1, pageIndex: 1);

                if (retValue.Value == null || retValue.Value.Count == 0)
                {
                    rechargeSuccess = true;
                }
                else
                {
                    //说明购买过月卡
                    monthCard = retValue.Value[0];

                    DateTime lastUpdateTime = retValue.Value[0].UpdateTime; //最后一次购买时间
                    remainDays = (DateTime.Now - lastUpdateTime).Days;

                    if (remainDays > 30)
                    {
                        //超过30天 可以购买
                        rechargeSuccess = true;
                    }
                    else
                    {
                        remainDays        = 30 - remainDays - 1;
                        rechargeErrorType = 1;
                    }
                }
            }
            else if (rechargeProductEntity.ProductType == 2)
            {
                //礼包
                RechargeRecordEntity rechargeRecordEntity = RechargeRecordCacheModel.Instance.GetEntity(string.Format("[RoleId]={0} and [ProductId]={1}", RoleId, rechargeProductId));
                if (rechargeRecordEntity == null) //没有买过礼包
                {
                    rechargeSuccess = true;
                }
                else
                {
                    rechargeErrorType = 2;
                }
            }
            else if (rechargeProductEntity.ProductType == 3)
            {
                rechargeSuccess = true;

                //检查是否已经购买过 没购买过就 首充双倍
                RechargeRecordEntity rechargeRecordEntity = RechargeRecordCacheModel.Instance.GetEntity(string.Format("[RoleId]={0} and [ProductId]={1}", RoleId, rechargeProductId));
                if (rechargeRecordEntity == null) //没有买过普通计费点
                {
                    virtualMoney *= 2;            //双倍
                }
            }

            //⑵.添加充值记录
            if (rechargeSuccess)
            {
                //查询是否有月卡记录 有的话先删除旧的
                if (monthCard != null)
                {
                    RechargeRecordCacheModel.Instance.Delete(monthCard.Id);
                }

                RechargeRecordEntity rechargeRecordEntity = new RechargeRecordEntity();
                rechargeRecordEntity.Status     = Mmcoy.Framework.AbstractBase.EnumEntityStatus.Released;
                rechargeRecordEntity.RoleId     = RoleId;
                rechargeRecordEntity.ProductId  = rechargeProductId;
                rechargeRecordEntity.CreateTime = DateTime.Now;
                rechargeRecordEntity.UpdateTime = DateTime.Now;

                RechargeRecordCacheModel.Instance.Create(rechargeRecordEntity);
            }


            //3.给玩家添加元宝 发放道具
            Dictionary <string, object> param = new Dictionary <string, object>();

            param["@Id"] = RoleId;


            RoleEntity entity    = RoleCacheModel.Instance.GetEntity(RoleId);
            int        currMoney = entity.Money; //角色当前身上的元宝

            currMoney += virtualMoney;           //加上充值后 获得的元宝

            param["@Money"]    = currMoney;
            param["@AddMoney"] = virtualMoney;

            this.Money += virtualMoney;

            RoleCacheModel.Instance.Update("[TotalRechargeMoney]=[TotalRechargeMoney]+@AddMoney, [Money]= @Money", "Id=@Id", param); //更新数据库

            //4.通知客户端元宝到账
            RoleData_RechargeReturnProto proto = new RoleData_RechargeReturnProto();

            proto.IsSuccess = rechargeSuccess;
            if (!rechargeSuccess)
            {
                switch (rechargeErrorType)
                {
                case 0:
                default:
                    proto.ErrorCode = 102002;
                    break;

                case 1:
                    proto.ErrorCode = 102004;     //月卡购买失败
                    proto.RemainDay = remainDays;
                    break;

                case 2:
                    proto.ErrorCode = 102005;     //礼包购买失败
                    break;
                }
            }
            else
            {
                proto.RechargeProductId   = rechargeProductId;
                proto.RechargeProductType = rechargeProductEntity.ProductType;
                proto.Money     = currMoney;
                proto.RemainDay = 29;
            }

            Client_Socket.SendMsg(proto.ToArray(this.SocketSendMS));
        }
Esempio n. 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SortedDictionary <string, string> sPara = GetRequestPost();

            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Notify aliNotify    = new Notify();
                bool   verifyResult = aliNotify.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"]);
                try
                {
                    if (verifyResult)//验证成功
                    {
                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                        //请在这里加上商户的业务逻辑程序代码
                        //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                        //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
                        string user_id      = Request.Form["extra_common_param"];
                        string notify_time  = DateTime.Now.ToString();                  //Request.Form["notify_time"]; //通知时间
                        string notify_type  = "";                                       //Request.Form["notify_type"]; //通知类型
                        string notify_id    = Request.Form["notify_id"];                //通知校验ID
                        string sign_type    = Request.Form["sign_type"];                //签名方式
                        string sign         = Request.Form["sign"];                     //签名
                        string out_trade_no = Request.Form["out_trade_no"];             //商户订单号
                        string subject      = Request.Form["subject"];                  //商品名称
                        string payment_type = Request.Form["payment_type"];             //支付类型
                        string trade_no     = Request.Form["trade_no"];                 //支付宝交易号
                        string trade_status = Request.Form["trade_status"];             //交易状态
                        string gmt_create   = DateTime.Now.ToString();                  //交易创建时间

                        string gmt_payment = DateTime.Now.ToString();                   //交易付款时间

                        string gmt_close = DateTime.Now.ToString();                     //交易关闭时间

                        string seller_email       = Request.Form["seller_email"];       //卖家支付宝账号
                        string seller_id          = Request.Form["seller_id"];          //卖家支付宝账户号
                        string buyer_email        = Request.Form["buyer_email"];        //买家支付宝账号
                        string buyer_id           = Request.Form["buyer_id"];           //买家支付宝账户号
                        string total_fee          = Request.Form["total_fee"];          //交易金额
                        string body               = Request.Form["body"];               //商品描述
                        string discount           = Request.Form["discount"];           //折扣
                        string business_scene     = Request.Form["business_scene"];     //是否扫码支付
                        string extra_common_param = Request.Form["extra_common_param"]; //公用回传参数

                        TransactionsEntity transactionsEntity = new TransactionsEntity();
                        transactionsEntity.UserId           = user_id;
                        transactionsEntity.NotifyTime       = Convert.ToDateTime(notify_time);
                        transactionsEntity.NotifyType       = notify_type;
                        transactionsEntity.NotifyId         = notify_id;
                        transactionsEntity.SignType         = sign_type;
                        transactionsEntity.Sign             = sign;
                        transactionsEntity.OutTradeNo       = out_trade_no;
                        transactionsEntity.Subject          = subject;
                        transactionsEntity.PaymentType      = payment_type;
                        transactionsEntity.TradeNo          = trade_no;
                        transactionsEntity.TradeStatus      = trade_status;
                        transactionsEntity.GmtCreate        = Convert.ToDateTime(gmt_create);
                        transactionsEntity.GmtPayment       = Convert.ToDateTime(gmt_payment);
                        transactionsEntity.GmtClose         = Convert.ToDateTime(gmt_close);
                        transactionsEntity.SellerEmail      = seller_email;
                        transactionsEntity.SellerId         = seller_id;
                        transactionsEntity.BuyerEmail       = buyer_email;
                        transactionsEntity.BuyerId          = buyer_id;
                        transactionsEntity.TotalFee         = total_fee;
                        transactionsEntity.Body             = body;
                        transactionsEntity.Discount         = discount;
                        transactionsEntity.BusinessScene    = business_scene;
                        transactionsEntity.ExtraCommonParam = extra_common_param;
                        transactionsEntity.Status           = 1;
                        TransactionsBll.Instance.Add(transactionsEntity);

                        if (Request.Form["trade_status"] == "TRADE_FINISHED")  //在指定时间段内未支付时关闭的交易;在交易完成全额退款成功时关闭的交易。
                        {
                            //    //判断该笔订单是否在商户网站中已经做过处理
                            //    //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                            //    //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的
                            //    //如果有做过处理,不执行商户的业务程序

                            //    //注意:
                            //    //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
                        }
                        else if (Request.Form["trade_status"] == "TRADE_SUCCESS") //交易成功,且可对该交易做操作,如:多级分润、退款等。
                        {
                            //保存到充值记录表
                            RechargeRecordEntity rechargeRecordEntity = new RechargeRecordEntity();
                            rechargeRecordEntity.UserId = user_id;

                            rechargeRecordEntity.RMB = double.Parse(total_fee).ToString();
                            if (subject.IndexOf("身家", StringComparison.Ordinal) > -1)
                            {
                                rechargeRecordEntity.source = "ShenJiaRecharge";
                                rechargeRecordEntity.Cnbi   = "0";
                            }
                            else if (subject.IndexOf("会员", StringComparison.Ordinal) > -1)
                            {
                                rechargeRecordEntity.source = "PurchaseVip";
                                rechargeRecordEntity.Cnbi   = "0";
                            }
                            else if (subject.IndexOf("押金", StringComparison.Ordinal) > -1)
                            {
                                rechargeRecordEntity.source = "Deposit";
                                rechargeRecordEntity.Cnbi   = "0";
                            }
                            else
                            {
                                rechargeRecordEntity.source = "";
                                rechargeRecordEntity.Cnbi   = (double.Parse(total_fee) * 100).ToString();
                            }

                            rechargeRecordEntity.addTime   = DateTime.Now;
                            rechargeRecordEntity.OrderNo   = out_trade_no;
                            rechargeRecordEntity.OrderName = subject;
                            rechargeRecordEntity.wareDesc  = body;
                            rechargeRecordEntity.Status    = 1;
                            RechargeRecordBll.Instance.Add(rechargeRecordEntity);
                            //保存到积分变更表
                            IntegralChangeEntity integralChangeEntity = new IntegralChangeEntity();
                            integralChangeEntity.UserId   = user_id;
                            integralChangeEntity.source   = "ShenJiaRecharge";
                            integralChangeEntity.ShenJia  = decimal.Parse(total_fee);
                            integralChangeEntity.Bean     = "0";
                            integralChangeEntity.Cnbi     = rechargeRecordEntity.Cnbi;
                            integralChangeEntity.integral = 0;
                            integralChangeEntity.Growth   = 0;
                            integralChangeEntity.Status   = 1;
                            integralChangeEntity.ardent   = 0;
                            integralChangeEntity.AddTime  = DateTime.Now;
                            IntegralChangeBll.Instance.Add(integralChangeEntity);
                            //更新会员表
                            if (subject.IndexOf("身家", StringComparison.Ordinal) > -1)
                            {
                                MemberBll.Instance.UpdateIntegral(user_id, "ShenJia", integralChangeEntity.ShenJia.ToString());
                            }
                            else if (subject.IndexOf("会员", StringComparison.Ordinal) > -1)
                            {
                                //string month = (double.Parse(total_fee)/0.01).ToString();
                                MemberBll.Instance.UpdateVip(user_id, total_fee);
                            }
                            else if (subject.IndexOf("押金", StringComparison.Ordinal) > -1)
                            {
                                MemberBll.Instance.UpdateIntegral(user_id, "Deposit", total_fee);
                            }
                            else
                            {
                                MemberBll.Instance.UpdateIntegral(user_id, "Cnbi", integralChangeEntity.Cnbi);
                            }
                        }
                        else
                        {
                        }

                        //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
                        Response.Write("success");  //请不要修改或删除

                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    }
                    else//验证失败
                    {
                        Core.LogResult("验证失败");
                        Response.Write("fail");
                    }
                }
                catch (Exception ex)
                {
                    Core.LogResult("错误:" + ex.Message);
                }
            }
            else
            {
                Response.Write("无通知参数");
            }
        }