[HttpGet, Produces(typeof(ResponseDto <GetUserSignInDataCurrentMonthResponse>))]//,AllowAnonymous
        public async Task <IActionResult> GetUserSignInDataCurrentMonthAsync(GetUserSignInDataCurrentMonthRequest request)
        {
            if (string.IsNullOrWhiteSpace(request.UserID))
            {
                request.UserID = UserID;
            }
            var scoreBiz = new ScoreExBiz();
            GetUserSignInDataCurrentMonthResponse response = new GetUserSignInDataCurrentMonthResponse();
            var recordModel = await scoreBiz.GetCheckInSendIntergralRecord(request.UserID, SendIntergralEnum.连续签到送积分.ToString(), request.UserType);

            if (recordModel != null)
            {
                TimeSpan interval = DateTime.Now.Date - recordModel.CreationDate.Date;
                if (interval.Days.Equals(1) || interval.Days.Equals(0))
                {
                    var checkInInfoList = new List <GetUserSignInDataCurrentMonthResponse.CheckInInfo>();
                    if (recordModel.Variation < 7)
                    {
                        var modelListLessThan7 = await scoreBiz.GetModelListByCondition(request.UserID, request.UserType.ToString(), recordModel.Variation);

                        return(Success(GetResponseData(modelListLessThan7)));
                    }
                    var modelList = await scoreBiz.GetModelListByCondition(request.UserID, request.UserType.ToString(), 30);

                    var conditionModel = modelList.Take(7).Where(a => a.Variation.Equals(6)).ToList().Count == 0 ? modelList.Take(14).Where(a => a.Variation.Equals(6)).ToList().Count == 0 ? modelList.Take(21).Where(a => a.Variation.Equals(6)).ToList().Count == 0 ? modelList.Take(28).Where(a => a.Variation.Equals(6)).ToList().Count == 0 ? modelList.Where(a => a.Variation.Equals(6)).ToList() : modelList.Take(28).Where(a => a.Variation.Equals(6)).ToList() : modelList.Take(21).Where(a => a.Variation.Equals(6)).ToList() : modelList.Take(14).Where(a => a.Variation.Equals(6)).ToList() : modelList.Take(7).Where(a => a.Variation.Equals(6)).ToList();
                    if (conditionModel.Count != 1)
                    {
                        return(Failed(ErrorCode.DataBaseError, "数据有误,请联系管理员!"));
                    }
                    var dataIndex     = modelList.FindIndex(a => a.ScoreGuid.Equals(conditionModel[0].ScoreGuid));
                    var realModelList = modelList.Take(dataIndex + 6).ToList();
                    return(Success(GetResponseData(realModelList)));
                }
            }
            //重新签到
            var newModelList = new List <ScoreModel>();

            return(Success(GetResponseData(newModelList)));
        }
        /// <summary>
        /// 组装
        /// </summary>
        /// <param name="modelList">有效的签到</param>
        /// <returns></returns>
        private GetUserSignInDataCurrentMonthResponse GetResponseData(List <ScoreModel> modelList)
        {
            GetUserSignInDataCurrentMonthResponse response = new GetUserSignInDataCurrentMonthResponse();
            var checkInInfoList  = new List <GetUserSignInDataCurrentMonthResponse.CheckInInfo>();
            var orderByModelList = modelList.OrderBy(a => a.CreationDate);

            foreach (var item in orderByModelList)
            {
                var model = new GetUserSignInDataCurrentMonthResponse.CheckInInfo
                {
                    CheckInDate = item.CreationDate,
                    IsCheckIn   = true,
                    Intergral   = item.Variation
                };
                checkInInfoList.Add(model);
            }
            for (int i = 0; i < 30 - modelList.Count; i++)
            {
                var model = new GetUserSignInDataCurrentMonthResponse.CheckInInfo();
                if (modelList.Count > 7)
                {
                    model.CheckInDate = modelList[0].CreationDate.AddDays(i + 1);
                    model.IsCheckIn   = false;
                    model.Intergral   = 7;
                }
                else
                {
                    model.CheckInDate = modelList.Count == 0 ? DateTime.Now.AddDays(i) : modelList[0].CreationDate.AddDays(i + 1);
                    model.IsCheckIn   = false;
                    model.Intergral   = modelList.Count + 1 + i > 6 ? 7 : modelList.Count + 1 + i;
                }
                checkInInfoList.Add(model);
            }
            response.CheckInInfoList          = checkInInfoList;
            response.ContinuousCheckInDays    = modelList.Count;
            response.NextTimeCheckInIntergral = modelList.Count > 7 ? modelList.Count == 30 ? 1 : 7 : modelList.Count + 1;
            return(response);
        }