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); }
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"); } }