public static SignInSuccessiveRecord Sign(long GroupNum, long QQNum) { var lastest = GetLastest(GroupNum, QQNum); if (lastest == null || !lastest.IsYesterdaySigned) { var newSign = new SignInSuccessiveRecord { QQNum = QQNum, GroupNum = GroupNum, StartDate = DateTime.Today, EndDate = DateTime.Today }; MongoService <SignInSuccessiveRecord> .Insert(newSign); return(newSign); } lastest.EndDate = DateTime.Today; lastest.Update(); return(lastest); }
public override bool OnMsgReceived(MsgInformationEx MsgDTO) { if (base.OnMsgReceived(MsgDTO)) { return(true); } if (MsgDTO.Type == MsgType.Private) { return(false); } // 群组签到验证 var groupInfo = GroupSignInDic.ContainsKey(MsgDTO.FromGroup) ? GroupSignInDic[MsgDTO.FromGroup] : null; var signInContent = groupInfo == null ? "签到" : groupInfo.Content; if (MsgDTO.FullMsg != signInContent) { if (MsgDTO.FullMsg == "签到") { MsgSender.PushMsg(MsgDTO, "请使用 今日签到内容 命令获取今天的签到口令!"); } return(false); } AIAnalyzer.AddCommandCount(new CmdRec() { FunctionalAi = AIName, Command = "SignInOverride", GroupNum = MsgDTO.FromGroup, BindAi = MsgDTO.BindAi }); // 个人签到验证 if (SignInSuccessiveRecord.IsTodaySigned(MsgDTO.FromGroup, MsgDTO.FromQQ)) { MsgSender.PushMsg(MsgDTO, "你今天已经签过到啦!"); return(true); } Sign(MsgDTO); return(true); }
protected override void Sign(MsgInformationEx MsgDTO) { var sign = SignInSuccessiveRecord.Sign(MsgDTO.FromGroup, MsgDTO.FromQQ); var goldsGen = Math.Min(sign.SuccessiveDays * 5, 50); OSPerson.GoldIncome(MsgDTO.FromQQ, goldsGen); var indexNo = SignInGroupInfo.GetAndUpdate(MsgDTO.FromGroup); var msg = $"签到成功!你已连续签到 {sign.SuccessiveDays}天,获得 {goldsGen.CurencyFormat()}!\r\n本群签到排名:【No.{indexNo}】"; if (sign.SuccessiveDays % 10 == 0) { var cache = PersonCacheRecord.Get(MsgDTO.FromQQ, "抽奖"); cache.Value = !string.IsNullOrEmpty(cache.Value) && int.TryParse(cache.Value, out var times) ? (times + 1).ToString() : 1.ToString(); cache.Update(); msg += "\r\n恭喜你获得一次抽奖机会,快去试试吧(当日有效!)"; } MsgSender.PushMsg(MsgDTO, msg, true); }