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); } }
/// <summary> /// 增加一条数据 /// </summary> public int Add(RechargeRecordEntity model) { try { return(RechargeRecordDb.Instance.Add(model)); } catch (Exception ex) { WriteLog.WriteError(ex); throw ex; } }
/// <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)); }
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); } }
/// <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)); }
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("无通知参数"); } }