コード例 #1
0
        public EAccount DeliverGoods(int accountid, int goodsid)
        {
            EAccount account = DBBase.Get <EAccount>(accountid);
            EStore   goods   = DBBase.Get <EStore>(goodsid);

            if (goods.Type != "Bag" && goods.Type != "Gold")
            {
                return(null);
            }
            int getGold = Convert.ToInt32(goods.Name);

            if (account.Diamond < goods.Price)
            {
                return(null);
            }
            account.Diamond -= goods.Price;
            account.Gold    += getGold;
            DBBase.Change(account);
            EBuyRecord record = new EBuyRecord()
            {
                BuyerID     = accountid,
                BuyTime     = DateTime.Now,
                GoodsID     = goodsid,
                Num         = 1,
                NowDiamond  = account.Diamond,
                NowGold     = account.Gold,
                CostDiamond = -goods.Price,
                CostGold    = getGold
            };

            DBBase.Create(record);
            return(account);
        }
コード例 #2
0
        public string PayNotice()
        {
            log4net.ILog log = log4net.LogManager.GetLogger(this.GetType());//获取一个日志记录器
            try
            {
                ResponseBean responseBean = new ResponseBean(this.Request);
                var          sign         = GetSign(responseBean);
                if (responseBean.p4_status == "1" && sign.Equals(responseBean.p10_sign))
                {
                    string[] data = responseBean.p11_remark.Split('|');
                    log.Info(DateTime.Now.ToString() + ": pay info:uid>" + data[0] + " goodsid>" + data[1]);

                    int      uid     = Convert.ToInt32(data[0]);
                    int      goodsid = Convert.ToInt32(data[1]);
                    EAccount account = DBBase.Get <EAccount>(uid);
                    EStore   goods   = DBBase.Get <EStore>(goodsid);

                    int oldDiamon = account.Diamond;
                    if (goods.Type == "Damion")
                    {
                        account.Diamond += Convert.ToInt32(goods.Name);
                    }
                    else if (goods.Type == "Vip")
                    {
                        account.Vip          = Convert.ToInt32(goods.Name);
                        account.VipBeginTime = DateTime.Now;
                    }
                    DBBase.Change(account);
                    EBuyRecord record = new EBuyRecord()
                    {
                        BuyerID     = account.ID,
                        BuyTime     = DateTime.Now,
                        GoodsID     = goodsid,
                        Num         = 1,
                        NowDiamond  = account.Diamond,
                        NowGold     = account.Gold,
                        CostDiamond = account.Diamond - oldDiamon,
                        CostGold    = 0
                    };
                    DBBase.Create(record);
                    log.Info(DateTime.Now.ToString() + ": pay success:uid>" + uid + " goodsid>" + goodsid);//写入一条新log
                    //服务器操作
                    return("success");
                }
                else
                {
                    log.Info(DateTime.Now.ToString() + ": pay error: status>" + responseBean.p4_status);//写入一条新log
                    return("error");
                }
            }
            catch (Exception ex)
            {
                log.Error(DateTime.Now.ToString() + ": pay error: " + ex.Message + " " + ex.StackTrace);//写入一条新log
                return("error");
            }
        }