/// <summary> /// 当月数据连续签到数据 /// </summary> /// <param name="orderId">订单编号</param> /// <param name="scoreSourceType">积分来源类型</param> /// <returns></returns> public async Task <List <CheckInInfo> > GetUserSignInDataCurrentMonthAllDays(GetUserSignInDataCurrentMonthRequest request, string dateSql) { using (var conn = MySqlHelper.GetConnection()) { var sqlWhere = $@"SELECT IFNULL( mm.IsCheckIn, 0 ) AS IsCheckIn, IFNULL( mm.Intergral, 0 ) AS Intergral, m.CheckInDate FROM ( {dateSql} ) AS m LEFT JOIN ( SELECT 1 AS IsCheckIn, variation AS Intergral, date_format( creation_date, '%Y-%m-%d' ) AS CheckInDate FROM t_utility_score WHERE user_guid = @UserID AND reason = '连续签到送积分' AND user_type_guid=@UserType AND `enable` = 1 GROUP BY CheckInDate, Intergral, IsCheckIn ) AS mm ON m.CheckInDate = mm.CheckInDate ORDER BY m.CheckInDate DESC " ; return((await conn.QueryAsync <CheckInInfo>(sqlWhere, new { request.UserID, request.UserType }))?.ToList()); } }
/// <summary> /// 当月数据连续签到数据 /// </summary> /// <param name="orderId">订单编号</param> /// <param name="scoreSourceType">积分来源类型</param> /// <returns></returns> public async Task <List <ScoreModel> > GetUserSignInDataCurrentMonth(GetUserSignInDataCurrentMonthRequest request) { using (var conn = MySqlHelper.GetConnection()) { var sqlWhere = @"WHERE user_guid = @userID AND reason = '连续签到送积分' AND date_format( creation_date, '%Y-%m' ) = date_format( DATE_SUB( curdate( ), INTERVAL 0 MONTH ), '%Y-%m' ) AND `enable` = 1 ORDER BY creation_date ASC " ; return((await conn.GetListAsync <ScoreModel>(sqlWhere, new { request.UserID, request.UserType }))?.ToList()); } }
[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))); }