예제 #1
0
        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));
        }
예제 #2
0
        /// <summary>
        /// 配置跳转
        /// </summary>
        /// <returns></returns>
        public ActionResult Setting()
        {
            SiteSignInConfigInfo  data  = _iMemberSignInService.GetConfig();
            SiteSignInConfigModel model = new SiteSignInConfigModel();

            model = Mapper.Map <SiteSignInConfigInfo, SiteSignInConfigModel>(data);
            return(View(model));
        }
예제 #3
0
 public SignInController(ITopicService iTopicService, IProductService iProductService,
                         IMemberService iMemberService,
                         IMemberSignInService iMemberSignInService)
 {
     _iProductService      = iProductService;
     _iTopicService        = iTopicService;
     _iMemberSignInService = iMemberSignInService;
     _iMemberService       = iMemberService;
     signConfig            = _iMemberSignInService.GetConfig();
 }
예제 #4
0
        /// <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();
        }
예제 #5
0
        /// <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);
        }
예제 #6
0
        /// <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);
        }
예제 #7
0
        /// <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);
        }
예제 #8
0
        /// <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);
        }