Esempio n. 1
0
        public ActionResult Add(decimal Money = 0, int Num = 0, int RedPacketType = 0, int WalletType = 0)
        {
            Result result = new Result();

            if (Money == 0 || Num == 0 || RedPacketType == 0)
            {
                result.Msg = "请输入完整信息";
                return(Json(result));
            }
            RedPacket redpacket = new RedPacket();

            redpacket.Id              = Guid.NewGuid().ToString();
            redpacket.uuid            = this.CurrentSession.UserId;
            redpacket.CreateTime      = DateTime.Now;
            redpacket.EndTime         = DateTime.Now.AddDays(1);
            redpacket.totalMoney      = Money;
            redpacket.LessMoney       = Money;
            redpacket.num             = Num;
            redpacket.LessNum         = Num;
            redpacket.builderStrategy = RedPacketType;
            redpacket.walletType      = WalletType;
            redpacket.getuuids        = "";
            redpacket.appointUuid     = "";
            redpacket.remark          = "";
            redpacket.token           = "";
            _redPacketService.Add(redpacket);
            result.Status = Data.Enum.ResultStatus.OK;
            result.Msg    = "添加成功";
            RedisHelper.Set(PrefixKeyHelper.GetRedPacketPK() + redpacket.Id, redpacket.Serialize());
            return(Json(result));
        }
 //写入更新记录
 public RedPacketResult update()
 {
     fx();
     if (this.isCreate)
     {
         object o = new object();
         lock (o)
         {
             //获取当前领取的数量
             string Num = RedisHelper.Get(PrefixKeyHelper.GetRedPacketIncrement() + redpacket.Id);
             if (Num == null || Num.ToInt() < redpacket.num)
             {
                 //自增红包数
                 RedisHelper.Increment(PrefixKeyHelper.GetRedPacketIncrement() + redpacket.Id);
                 //更新红包缓存数据
                 RedisHelper.Set(PrefixKeyHelper.GetRedPacketPK() + redpacket.Id, redpacket.Serialize());
                 //创建已领取红包记录Model
                 Create();
                 //写入待更新红包表数据库队列
                 RedisHelper.LPush(PrefixKeyHelper.GetWaitWriteRedPacket() + redpacket.Id, redpacket.Serialize());
                 //写入红包领取记录缓存队列
                 RedisHelper.LPush(PrefixKeyHelper.GetWaitWriteHadGetRedPacket() + redpacket.Id, hadGetRedPacket.Serialize());
                 result.Status = (int)MRC.Data.Enum.EnumGetRedPacketStatus.GetOK;
             }
             else
             {
                 result.Status = (int)MRC.Data.Enum.EnumGetRedPacketStatus.Over;
             }
         }
         result.Money   = oneMoney;
         result.Message = "OK";
     }
     return(result);
 }