public ContentResult playersignlist(PlayerSignQueryRequest request) { request.MemberId = UserContext.WebUserContext.Id; var data = _eventSignService.PlayerSignList(request); var res = new ResultDto <PlayerSignResponse> { page = request.PageIndex, total = request.Total, records = request.Records, rows = data }; Initrendersign(request.EventId); return(Content(res.Serialize())); }
//选手签到列表 public List <PlayerSignResponse> PlayerSignList(PlayerSignQueryRequest request) { List <PlayerSignResponse> list = new List <PlayerSignResponse>(); try { StringBuilder join = new StringBuilder(); if (request.KeyValue.IsNotEmpty()) { request.KeyValue = $"%{request.KeyValue}%"; join.Append(" and (b.code like @KeyValue or b.completename like @KeyValue or d.groupnum like @KeyValue)"); } var sql = $@" select a.isStop IsStop,b.gender Gender,b.grade Grade,b.contactmobile ContactMobile,d.groupnum GroupNum,a.memberId MemberId,b.completename MemberName,b.code MemberCode,GROUP_CONCAT(a.signdate order by a.Id) Signdates,GROUP_CONCAT(a.eventSignStatus order by a.Id) EventSignStatuss from t_event_sign a inner join t_member_player b on a.memberId=b.memberId inner join t_event c on a.eventId=c.id inner join t_event_player_signup d on d.eventId=a.eventId and d.eventGroupId=a.eventGroupId and a.memberId=d.memberId where a.isdelete=0 and b.isdelete=0 and c.isdelete=0 and a.eventId=@EventId and a.eventGroupId=@EventGroupId and c.memberId=@MemberId and eventSignType={(int)EventSignTypeEm.选手} {join.ToString()} group by a.memberId order by d.GroupNum desc "; int totalCount = 0; list = _dbContext.Page <PlayerSignResponse>(sql, out totalCount, request.PageIndex, request.PageSize, request); if (list != null && list.Count > 0) { foreach (var item in list) { var data = _dbContext.Query <dynamic>($"select b.chinessname,c.name from t_player_edu a inner join t_sys_school b on a.schoolId=b.id inner join t_sys_city c on c.id=b.cityId where a.memberid={item.MemberId} and a.isdelete=0 order by a.startdate desc limit 1").FirstOrDefault(); if (data != null) { item.SchoolName = data.chinessname; item.CityName = data.name; } List <string> ltSignDate = item.SignDates.Split(',').ToList(); List <string> ltSignStatus = item.EventSignStatuss.Split(',').ToList(); for (int i = 0; i < ltSignDate.Count; i++) { var dt = ltSignDate[i].ToDateTime(); var model = new PlayerSignSplitResponse { SignDate = ltSignDate[i].ToDateTime().ToString("MM/dd"), EventSignStatus = (EventSignStatusEm)ltSignStatus[i].ToInt32() }; if (dt < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) { model.SignType = 1; } else if (dt.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd")) { model.SignType = 2; } else { model.SignType = 3; } item.List.Add(model); } } } request.Records = totalCount; } catch (Exception ex) { LogUtils.LogError("EventSignService.PlayerSignList", ex); } return(list); }