示例#1
0
 public IdentityConfig()
 {
     User     = new UserConfig();
     Password = new PasswordConfig();
     Lockout  = new LockoutConfig();
     SignIn   = new SignInConfig();
 }
示例#2
0
    private void ModiMapAndInfo()
    {
        updateFlag = false;
        //修改图片和信息的显示
        //获得表
        int          dayId        = TimeUtil.getIntByDateTime(m_selectedDateTime);
        SignInConfig signInConfig = SignInMgr.GetInstance().GetConfigByID((uint)dayId);

        m_selectedLevelID = signInConfig.LevelId;
        LevelData   levelData   = LevelMgr.GetInstance().GetLevelConfig(m_selectedLevelID);
        LevelConfig levelConfig = levelData.Config;

        if (levelConfig == null)
        {
            Debug.LogError("获取不到关卡 " + m_selectedLevelID + " 的Config");
            return;
        }

        //TODO:修改mapIcon的图标,需要通过读表获取对应的图集
        AltasConfig altasConfig = AltasMgr.GetInstance().GetConfigByID(m_selectedLevelID);
        string      altasname   = altasConfig.AltasName2;
        UIAtlas     ats         = UIAtlasUtil.GetAtlas(altasname);

        if (ats != null)
        {
            ats.Sp = mapIcon;
            if (SignInMgr.GetInstance().IsSign(dayId - GameConfig.SignInDay))
            {
                ats.SetSprite("p_" + levelConfig.LevelPicture.ToString());
            }
            else
            {
                ats.SetSprite("s_" + levelConfig.LevelPicture.ToString());
            }
        }

        //TODO:修改info,包括了编号、名字、剩余时间和按钮的状态、文字等
        levelNumText.text = "#" + (SignInMgr.GetInstance().GetIndexByID((uint)dayId) + 1).ToString();
        LanguageMgr.GetInstance().GetLangStrByID(levelNameText, signInConfig.DailylevelName);

        StartCoroutine(TimeLeftUpdate(m_selectedDateTime.AddDays(1)));

        ModiTryButton();
    }
示例#3
0
    public void InitDay(DateTime dateTime)
    {
        isLocked = false;
        isEmpty  = false;

        this.dateTime    = dateTime;
        this.dateTimeInt = TimeUtil.getIntByDateTime(dateTime);
        //TODO:首先获取配置表,如果今天没有配置任何信息,就不显示任何
        SignInConfig signInConfig = SignInMgr.GetInstance().GetConfigByID((uint)dateTimeInt);

        if (signInConfig == null || LevelMgr.GetInstance().GetLevelConfig(signInConfig.LevelId).Config == null)
        {
            // InitInvisible();
            dayBGSelectFinish.color   = Color.clear;
            dayBGSelectUnFinish.color = Color.clear;
            dayBGUnSelectFinish.color = Color.clear;
            lockImage.color           = Color.clear;
            dayText.text  = dateTime.Day.ToString();
            dayText.color = emptyColor;
            isEmpty       = true;

            return;
        }


        //TODO:和今天对比,如果是今天,字體显示为todaycolor;如果是今天之后,就先上锁,字體顯示爲lockcolor;如果是今天之前,就顯示爲normalcolor
        DateTime todayDateTime = DateTime.Today;

        dayBGSelectFinish.color   = Color.clear;
        dayBGSelectUnFinish.color = Color.clear;
        dayBGUnSelectFinish.color = Color.clear;
        dayText.text = dateTime.Day.ToString();


        bool todayOrPast = false;

        if (dateTime == todayDateTime)
        {
            dayText.color   = todayColor;
            lockImage.color = Color.clear;
            todayOrPast     = true;
        }
        else if (dateTime > todayDateTime)
        {
            dayText.color   = lockColor;
            lockImage.color = Color.white;
            isLocked        = true;
        }
        else
        {
            dayText.color   = normalColor;
            lockImage.color = Color.clear;
            todayOrPast     = true;
        }

        //如果是今天或者今天之前才要读取当天的完成状态
        if (todayOrPast)
        {
            //TODO:读取当天的完成状态 via 存档/如果存档中记录的是一系列二进制数,那么读取存档应该放在上层,获取当天的状态后,传入一个bool即可
            // int isChallengedInt = XPlayerPrefs.GetInt(TimeUtil.getIntByDateTime(dateTime) + challengeStr);

            //!just for test


            // Debug.Log(dateTime.ToShortDateString() + " " + dateTimeInt.ToString());
            // Debug.Log(GameConfig.SignInDay);

            // Debug.Log(dateTimeInt - GameConfig.SignInDay);

            isChallenged = SignInMgr.GetInstance().IsSign(dateTimeInt - GameConfig.SignInDay);

            //FINISH:判断当前日期是否被选中

            bool isSelected = XPlayerPrefs.GetInt(ChallengeController.selectedDateTimeStr) == dateTimeInt ? true : false;

            if (isChallenged && isSelected)
            {
                //如果當前日期是選中+完成
                dayBGSelectFinish.color = Color.white;
                dayText.color           = Color.white;
                //还要通知一下ChallengeController
                LogicEvent.Broadcast(LogicEvent.CALENDAR_SELECTED, dateTime, this.gameObject);
            }
            else if (!isChallenged && isSelected)
            {
                //如果當前日期是選中+未完成

                dayBGSelectUnFinish.color = Color.white;
                // Debug.Log("select unfinish:" + dateTime.ToShortDateString());
                // Debug.Log("select unfinish color?:" + dayBGSelectUnFinish.color.ToString());

                // Debug.Log("select finish color?:" + dayBGSelectFinish.color.ToString());
                LogicEvent.Broadcast(LogicEvent.CALENDAR_SELECTED, dateTime, this.gameObject);
            }
            else if (isChallenged && !isSelected)
            {
                //如果當前日期是未選中+完成
                dayBGUnSelectFinish.color = Color.white;
                dayText.color             = Color.white;
            }
        }
    }
示例#4
0
        /// <summary>
        /// 获取签到配置
        /// </summary>
        /// <returns>SignInConfig.</returns>
        public static SignInConfig GetSignInConfig()
        {
            SignInConfig model = new SignInConfig();

            string v = GetValue("EnableSign");

            if (string.IsNullOrEmpty(v))
            {
                model.EnableSign = false;
            }
            else
            {
                model.EnableSign = Convert.ToInt32(v) == 1;
            }


            string v1 = GetValue("EnableContinuousSign");

            if (string.IsNullOrEmpty(v1))
            {
                model.EnableContinuousSign = false;
            }
            else
            {
                model.EnableContinuousSign = Convert.ToInt32(v1) == 1;
            }



            string v2 = GetValue("ContinuousSignDay");

            if (string.IsNullOrEmpty(v2))
            {
                model.ContinuousSignDay = 0;
            }
            else
            {
                model.ContinuousSignDay = Convert.ToInt32(v2);
            }


            string v3 = GetValue("ContinuousSignRewardScore");

            if (string.IsNullOrEmpty(v3))
            {
                model.ContinuousSignRewardScore = 0;
            }
            else
            {
                model.ContinuousSignRewardScore = Convert.ToInt32(v3);
            }


            string v4 = GetValue("SignScore");

            if (string.IsNullOrEmpty(v4))
            {
                model.SignScore = 0;
            }
            else
            {
                model.SignScore = Convert.ToInt32(v4);
            }


            return(model);
        }
示例#5
0
        /// <summary>
        /// 签到功能
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="appsystem">The appsystem.</param>
        /// <param name="addr">The addr.</param>
        /// <param name="apiCode">The API code.</param>
        /// <returns>true if XXXX, false otherwise.</returns>
        public static int SignIn(UserModel user, string appsystem, string addr, ref ApiStatusCode apiCode)
        {
            int userId = user.UserId;

            try
            {
                string outputMsg = string.Empty;

                /**
                 * 输出签到积分,从区间中随机获取
                 */
                int Integral = 0;

                /**
                 * 输出签到额外奖励积分
                 */
                int RewardIntegral = 0;

                /**
                 * 日期格式
                 */
                string dateFormat = "yyyy-MM-dd";

                /**
                 * 获取商家签到配置信息
                 */
                SignInConfig signCfg = ConfigLogic.GetSignInConfig();

                /**
                 * 判断商户是否开启签到功能
                 */
                if (signCfg == null || !signCfg.EnableSign || signCfg.SignScore <= 0)
                {
                    apiCode = ApiStatusCode.签到功能未开启;
                    return(0);
                }

                Integral = signCfg.SignScore;

                /**
                 * 连续签到天数,默认0
                 */
                int             SignCount  = 0;
                MemberSignModel memberSign = GetMemberSignModel(userId);
                if (memberSign == null)
                {
                    memberSign        = new MemberSignModel();
                    memberSign.UserId = userId;
                }
                else
                {
                    /**
                     * 判断今天是否签到过
                     */
                    if (memberSign.lastSignTime.ToString(dateFormat).Equals(DateTime.Now.ToString(dateFormat)))
                    {
                        apiCode = ApiStatusCode.今日已签到;
                        return(0);
                    }
                }


                /**
                 * 判断是否开启连续签到功能
                 * 如果开启,则判断连续签到逻辑
                 */
                if (signCfg.EnableContinuousSign)
                {
                    /**
                     * 判断昨天是否已经满足奖励条件
                     * 如果满足,则连续签到天数置0,重新计数
                     */
                    if (memberSign.SignCount >= signCfg.ContinuousSignDay && signCfg.ContinuousSignRewardScore > 0)
                    {
                        RewardIntegral = signCfg.ContinuousSignRewardScore;
                        //重新计数
                        memberSign.SignCount = 0;
                    }

                    /**
                     * 当前已签到天数
                     */
                    SignCount = memberSign.SignCount;

                    /**
                     * 连续签到天数是否大于0
                     */
                    if (SignCount > 0)
                    {
                        /**
                         * 判断昨天是否签到,如果签到过,则连续签到天数加1
                         * 否则,连续签到天数置1
                         */
                        if (memberSign.lastSignTime.ToString(dateFormat).Equals(DateTime.Now.AddDays(-1).ToString(dateFormat)))
                        {
                            SignCount += 1;
                        }
                        else
                        {
                            SignCount = 1;
                        }
                    }
                    else
                    {
                        SignCount = 1;
                    }

                    /**
                     * 判断连续签到天数是否满足奖励条件
                     * 满足条件后,获取奖励积分,并且连续签到天数置0
                     */
                    if (SignCount >= signCfg.ContinuousSignDay && signCfg.ContinuousSignRewardScore > 0)
                    {
                        RewardIntegral = signCfg.ContinuousSignRewardScore;
                    }
                }
                else
                {
                    SignCount = 0;
                }

                using (TransactionScope scope = new TransactionScope())
                {
                    using (var dal = FactoryDispatcher.UserFactory())
                    {
                        /**
                         * 更新会员签到数据
                         */
                        memberSign.SignCount          = SignCount;
                        memberSign.TotalSignIntegral += (Integral + RewardIntegral);
                        memberSign.lastSignTime       = DateTime.Now;
                        memberSign.TotalSignDays     += 1;
                        if (memberSign.ID > 0)
                        {
                            dal.UpdateMemberSignInfo(memberSign);
                        }
                        else
                        {
                            memberSign.ID = dal.AddMemberSignInfo(memberSign);
                        }

                        /**
                         * 更新签到缓存
                         */
                        RefreshMemberSignCache(userId, memberSign);
                        //将签到获得积分,冲入用户积分账号中
                        if (dal.addUserIntegral(userId, Integral + RewardIntegral) > 0)
                        {
                            /**
                             * 添加签到日志
                             */
                            BeansRecordsModel model2 = new BeansRecordsModel();
                            model2.Amount     = Integral + RewardIntegral;
                            model2.UserId     = userId;
                            model2.LogType    = 1;
                            model2.Income     = 1;
                            model2.Remark     = "签到";
                            model2.OrderId    = "";
                            model2.CreateTime = DateTime.Now;
                            dal.AddBeansRecords(model2);

                            UserSignLogModel signLog = new UserSignLogModel()
                            {
                                UserId          = userId,
                                BelongOneUserId = user.BelongOne,
                                ShopId          = user.ShopId,
                                BelongOneShopId = user.ShopBelongId,
                                AppSystem       = appsystem,
                                Amount          = Integral + RewardIntegral,
                                Reward          = RewardIntegral,
                                UserAddress     = addr,
                                Remark          = "签到" + (RewardIntegral > 0 ? ",连续签到奖励" + RewardIntegral + "积分" : "")
                            };
                            dal.AddUserSignLog(signLog);

                            apiCode = ApiStatusCode.OK;
                        }
                    }
                    scope.Complete();
                    return(Integral + RewardIntegral);
                }
            }
            catch (Exception ex)
            {
                apiCode = ApiStatusCode.请重新签到;
                LogHelper.Log(string.Format("SignIn-->StackTrace:{0},Message:{1},MemberId:{2}", ex.StackTrace, ex.Message, ex, userId));
                return(0);
            }
        }