public IdentityConfig() { User = new UserConfig(); Password = new PasswordConfig(); Lockout = new LockoutConfig(); SignIn = new SignInConfig(); }
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(); }
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; } } }
/// <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); }
/// <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); } }