Esempio n. 1
0
        /// <summary>
        /// 竞价
        /// 这里没有判断拍卖品的 state_id
        /// 以及 是否 到期 还有竞价值是否大于当前价格
        /// 还有寄卖的主人编号
        /// </summary>
        /// <param name="item_id"></param>
        /// <param name="userid"></param>
        /// <param name="bidPrice"></param>
        /// <returns></returns>
        public ActionResult AddBid(int item_id = 0, int userid = 0, double bidPrice = 0)
        {
            if (item_id <= 0 || userid <= 0 || bidPrice <= 0)
            {
                return(Content("参数错误"));
            }
            // 先从缓存中查找 拍卖品
            Model.item mi = DataCache.GetCache("item_id_" + item_id) == null ? null : (Model.item)DataCache.GetCache("item_id_" + item_id);

            BLL.item bi = new BLL.item();
            // 缓存中没找到
            if (mi == null)
            {
                // 从数据库找
                mi = bi.GetModel(item_id);
                // 数据库找到了拍卖品
                if (mi != null)
                {
                    DataCache.SetCache("item_id_" + mi.item_id, mi);
                    if (mi.max_price >= bidPrice)
                    {
                        return(Content("竞价应该高于当前最高价"));
                    }

                    // 更新竞价
                    mi.max_price = bidPrice;
                    mi.owner_id  = userid;
                    mi.addtime   = DateTime.Now;
                    bool b = bi.Update(mi);
                    if (b)
                    {
                        return(Content("竞价成功"));
                    }
                    else
                    {
                        return(Content("竞价失败"));
                    }
                }
                else
                {
                    return(Content("错误的拍卖品编号"));
                }
            }
            else
            {
                // 从缓存中找到拍卖品,多数是从缓存中找到的
                if (mi.max_price >= bidPrice)
                {
                    return(Content("竞价应该高于当前最高价"));
                }

                // 更新竞价
                mi.max_price = bidPrice;
                mi.winer_id  = userid;
                mi.addtime   = DateTime.Now;
                bool b = bi.Update(mi);
                if (b)
                {
                    return(Content("竞价成功!"));
                }
                else
                {
                    return(Content("竞价失败!"));
                }
            }
        }