コード例 #1
0
        /// <summary>
        /// 当前签到奖励
        /// </summary>
        /// <param name="managerId"></param>
        /// <returns></returns>
        public DailyAttendancePrizeResponse AttendancePrize(Guid managerId)
        {
            try
            {
                var manager = ManagerCore.Instance.GetManager(managerId);
                if (manager == null)
                {
                    return(ResponseHelper.InvalidParameter <DailyAttendancePrizeResponse>());
                }
                int days;
                var dailyAttendManager = GetManager(managerId, manager.Name, out days);
                if (dailyAttendManager.IsAttend)
                {
                    return(ResponseHelper.Create <DailyAttendancePrizeResponse>(MessageCode.PrizeHaveSend));
                }
                int curTimes    = ++dailyAttendManager.AttendTimes;
                var prizeEntity = CacheFactory.DayAttendCache.GetPrizeEntity(curTimes);
                if (prizeEntity == null)
                {
                    return(ResponseHelper.Create <DailyAttendancePrizeResponse>(MessageCode.ActivityNoConfigPrize));
                }

                //奖励发送
                var code = SendPrize(managerId, prizeEntity);
                if (code != MessageCode.Success)
                {
                    return(ResponseHelper.Create <DailyAttendancePrizeResponse>(code));
                }

                dailyAttendManager.IsAttend = true;
                //IsAttendance = true;
                dailyAttendManager.UpdateTime = DateTime.Now;
                if (!DailyattendanceManagerMgr.Update(dailyAttendManager))
                {
                    return(ResponseHelper.Create <DailyAttendancePrizeResponse>(MessageCode.FailUpdate));
                }
                var response = ResponseHelper.Create <DailyAttendancePrizeResponse>(MessageCode.Success);
                response.Data       = new DailyAttendancePrize();
                response.Data.Prize = prizeEntity;
                return(response);
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("DailyAttendancePrize", ex);
                return(ResponseHelper.Create <DailyAttendancePrizeResponse>(MessageCode.Exception));
            }
        }
コード例 #2
0
        public DailyattendanceManagerEntity GetManager(Guid managerId, string name, out int days)
        {
            var dtNow    = DateTime.Now.Date;
            var curMonth = dtNow.Month;

            days = DateTime.DaysInMonth(dtNow.Year, curMonth);
            var manager = DailyattendanceManagerMgr.GetManager(managerId, name, curMonth);

            if (manager.Month != curMonth)
            {
                //IsInstance = false;
                manager = DailyattendanceManagerMgr.UpdateMonth(managerId, curMonth);
            }
            if (dtNow != manager.UpdateTime.Date)
            {
                //IsInstance = false;
                manager = DailyattendanceManagerMgr.UpdateStatus(managerId);
            }

            return(manager);
        }