public JsonResult Setting(SiteSignInConfigModel model) { Result result = new Result { success = false, msg = "未知错误" }; if (ModelState.IsValid) { if (model.DayIntegral == 0) { model.IsEnable = false; } SiteSignInConfigModel postdata = new SiteSignInConfigModel(); SiteSignInConfigInfo data = _iMemberSignInService.GetConfig(); postdata = Mapper.Map <SiteSignInConfigInfo, SiteSignInConfigModel>(data); UpdateModel(postdata); data = Mapper.Map <SiteSignInConfigModel, SiteSignInConfigInfo>(postdata); _iMemberSignInService.SaveConfig(data); result.success = true; result.msg = "配置签到成功"; } else { result.success = false; result.msg = "数据错误"; } return(Json(result)); }
/// <summary> /// 配置跳转 /// </summary> /// <returns></returns> public ActionResult Setting() { SiteSignInConfigInfo data = _iMemberSignInService.GetConfig(); SiteSignInConfigModel model = new SiteSignInConfigModel(); model = Mapper.Map <SiteSignInConfigInfo, SiteSignInConfigModel>(data); return(View(model)); }
public SignInController(ITopicService iTopicService, IProductService iProductService, IMemberService iMemberService, IMemberSignInService iMemberSignInService) { _iProductService = iProductService; _iTopicService = iTopicService; _iMemberSignInService = iMemberSignInService; _iMemberService = iMemberService; signConfig = _iMemberSignInService.GetConfig(); }
/// <summary> /// 保存签到配置 /// </summary> /// <param name="config"></param> public void SaveConfig(SiteSignInConfigInfo config) { SiteSignInConfigInfo data = GetConfig(); data.IsEnable = config.IsEnable; data.DayIntegral = config.DayIntegral; data.DurationCycle = config.DurationCycle; data.DurationReward = config.DurationReward; Context.SaveChanges(); }
/// <summary> /// 签到 /// </summary> /// <param name="memberId"></param> /// <returns>已持续签到天数,0表示签到不成功</returns> public int SignIn(long memberId) { int result = 0; SiteSignInConfigInfo config = GetConfig(); if (CanSignInByToday(memberId)) { MemberSignInInfo signinfo = GetSignInInfo(memberId); DateTime _oldlastsigntime = signinfo.LastSignTime; signinfo.LastSignTime = DateTime.Now; signinfo.SignDaySum += 1; //处理积分 int needAddIntegral = config.DayIntegral; //需要增加的各分 bool isReward = false; //连续登录 if (_oldlastsigntime.Date == (DateTime.Now.AddDays(-1).Date)) { signinfo.DurationDaySum += 1; if (config.DurationCycle > 0) { signinfo.DurationDay += 1; if (signinfo.DurationDay > config.DurationCycle) { signinfo.DurationDay = 1; } //处理额外积分 if (signinfo.DurationDay == config.DurationCycle) { needAddIntegral += config.DurationReward; isReward = true; } } else { signinfo.DurationDay = 1; } } else { signinfo.DurationDay = 1; signinfo.DurationDaySum = 1; } //积分到户 AddIntegralToUser(memberId, needAddIntegral, isReward); result = signinfo.DurationDay; //Context.SaveChanges(); DbFactory.Default.Update(signinfo); } return(result); }
/// <summary> /// 保存签到配置 /// </summary> /// <param name="config"></param> public void SaveConfig(SiteSignInConfigInfo config) { SiteSignInConfigInfo data = GetConfig(); data.IsEnable = config.IsEnable; data.DayIntegral = config.DayIntegral; data.DurationCycle = config.DurationCycle; data.DurationReward = config.DurationReward; if (data.IsEnable && data.DurationCycle <= 1) { throw new HimallException("开启连续签到必须大于1"); } //Context.SaveChanges(); DbFactory.Default.Update(data); }
/// <summary> /// 今天是否可以签到 /// </summary> /// <param name="memberId"></param> /// <returns></returns> public bool CanSignInByToday(long memberId) { bool result = false; SiteSignInConfigInfo config = GetConfig(); if (config.IsEnable) { result = true; MemberSignInInfo signinfo = GetSignInInfo(memberId); if (signinfo.LastSignTime.Date == DateTime.Now.Date) { result = false; } } return(result); }
/// <summary> /// 取得签到配置 /// </summary> /// <returns></returns> public SiteSignInConfigInfo GetConfig() { SiteSignInConfigInfo result = null; result = Context.SiteSignInConfigInfo.FirstOrDefault(); if (result == null) { result = new SiteSignInConfigInfo(); result.IsEnable = false; result.DayIntegral = 0; result.DurationCycle = 0; result.DurationReward = 0; Context.SiteSignInConfigInfo.Add(result); Context.SaveChanges(); } if (result.DayIntegral < 1) { result.IsEnable = false; } return(result); }