Commit 96c42524 authored by shiyu's avatar shiyu

排行榜中展示参加但未打卡的用户

parent cdba55ff
...@@ -5,6 +5,7 @@ import com.xxdxxs.entity.Entity; ...@@ -5,6 +5,7 @@ import com.xxdxxs.entity.Entity;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
@Data @Data
public class QdUserSignInTaskRequestDto extends BaseRequestDto implements Entity { public class QdUserSignInTaskRequestDto extends BaseRequestDto implements Entity {
...@@ -16,6 +17,11 @@ public class QdUserSignInTaskRequestDto extends BaseRequestDto implements Entity ...@@ -16,6 +17,11 @@ public class QdUserSignInTaskRequestDto extends BaseRequestDto implements Entity
*/ */
private Long userId; private Long userId;
/**
* 要排除的用户id
*/
private List<Long> filterUserId;
/** /**
* 签到任务id * 签到任务id
*/ */
......
...@@ -7,6 +7,7 @@ import com.wwdz.ch.db.domain.qiandao.QdUserSignInTaskExample; ...@@ -7,6 +7,7 @@ import com.wwdz.ch.db.domain.qiandao.QdUserSignInTaskExample;
import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInTaskRequestDto; import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInTaskRequestDto;
import com.wwdz.ch.db.mapper.qiandao.QdUserSignInTaskMapper; import com.wwdz.ch.db.mapper.qiandao.QdUserSignInTaskMapper;
import com.xxdxxs.db.component.JdbcHelper; import com.xxdxxs.db.component.JdbcHelper;
import com.xxdxxs.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -28,10 +29,15 @@ public class QdUserSignInTaskDaoImpl implements QdUserSignInTaskDao { ...@@ -28,10 +29,15 @@ public class QdUserSignInTaskDaoImpl implements QdUserSignInTaskDao {
QdUserSignInTaskExample example = new QdUserSignInTaskExample(); QdUserSignInTaskExample example = new QdUserSignInTaskExample();
QdUserSignInTaskExample.Criteria criteria = example.createCriteria(); QdUserSignInTaskExample.Criteria criteria = example.createCriteria();
JdbcHelper.ifPresent(dto.getUserId(), criteria :: andUserIdEqualTo); JdbcHelper.ifPresent(dto.getUserId(), criteria :: andUserIdEqualTo);
JdbcHelper.ifPresent(dto.getFilterUserId(), criteria :: andUserIdNotIn);
JdbcHelper.ifPresent(dto.getTaskId(), criteria :: andTaskIdEqualTo); JdbcHelper.ifPresent(dto.getTaskId(), criteria :: andTaskIdEqualTo);
JdbcHelper.ifPresent(dto.getIsSelf(), criteria :: andIsSelfEqualTo); JdbcHelper.ifPresent(dto.getIsSelf(), criteria :: andIsSelfEqualTo);
criteria.andIsValidEqualTo(true); criteria.andIsValidEqualTo(true);
example.setOrderByClause("update_time desc"); if (StringUtils.isEmpty(dto.getSortColumn())) {
example.setOrderByClause("update_time desc");
} else {
example.setOrderByClause(dto.getSortColumn() + " " + dto.getOrder());
}
PageHelper.startPage(dto.getPage(), dto.getLimit()); PageHelper.startPage(dto.getPage(), dto.getLimit());
return qdUserSignInTaskMapper.selectByExample(example); return qdUserSignInTaskMapper.selectByExample(example);
} }
......
...@@ -60,6 +60,9 @@ public class QdUserSignInNoteServiceImpl implements QdUserSignInNoteService { ...@@ -60,6 +60,9 @@ public class QdUserSignInNoteServiceImpl implements QdUserSignInNoteService {
@Autowired @Autowired
WxCheckRecordDao wxCheckRecordDao; WxCheckRecordDao wxCheckRecordDao;
@Autowired
QdSignInRankingDao qdSignInRankingDao;
@Override @Override
public Result findSignInNoteList(QdUserSignInNoteRequestDto dto) { public Result findSignInNoteList(QdUserSignInNoteRequestDto dto) {
try { try {
...@@ -173,6 +176,15 @@ public class QdUserSignInNoteServiceImpl implements QdUserSignInNoteService { ...@@ -173,6 +176,15 @@ public class QdUserSignInNoteServiceImpl implements QdUserSignInNoteService {
qdUserSignIn.setIsValid(false); qdUserSignIn.setIsValid(false);
qdUserSignIn.setUpdateTime(new Date()); qdUserSignIn.setUpdateTime(new Date());
qdUserSignInDao.updateByPrimaryKey(qdUserSignIn); qdUserSignInDao.updateByPrimaryKey(qdUserSignIn);
//打卡排行记录设置无效
QdSignInRanking qdSignInRanking = qdSignInRankingDao.findByIndex(signInNote.getUserId(), signInNote.getTaskId());
if (qdSignInRanking != null && qdSignInRanking.getTotalSignInDays() > 0) {
QdSignInRanking updateDto = new QdSignInRanking();
updateDto.setId(qdSignInRanking.getId());
updateDto.setTotalSignInDays(qdSignInRanking.getTotalSignInDays() - 1);
updateDto.setUpdateTime(new Date());
qdSignInRankingDao.update(updateDto);
}
return Result.success(); return Result.success();
} catch (Exception e) { } catch (Exception e) {
logger.error("删除笔记 error:{}", e); logger.error("删除笔记 error:{}", e);
......
...@@ -22,6 +22,7 @@ import java.time.LocalDateTime; ...@@ -22,6 +22,7 @@ import java.time.LocalDateTime;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Service @Service
public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService { public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService {
...@@ -280,6 +281,31 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService { ...@@ -280,6 +281,31 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService {
} }
dataList.add(chartsListInfo); dataList.add(chartsListInfo);
} }
int listSize = list.size();
//点击参加了但是尚未打卡的用户也在排行榜中展示
if (listSize < 100) {
int limit = 100 - list.size();
//排除已经在排行榜上的用户
List<Long> userList = list.stream().map(QdSignInRanking::getUserId).collect(Collectors.toList());
QdUserSignInTaskRequestDto qdUserSignInTaskRequestDto = new QdUserSignInTaskRequestDto();
qdUserSignInTaskRequestDto.setPage(1);
qdUserSignInTaskRequestDto.setLimit(limit);
qdUserSignInTaskRequestDto.setTaskId(taskId);
qdUserSignInTaskRequestDto.setFilterUserId(userList);
qdUserSignInTaskRequestDto.setSortColumn("create_time");
qdUserSignInTaskRequestDto.setOrder("asc");
List<QdUserSignInTask> qdUserSignInTaskList = qdUserSignInTaskDao.findByPage(qdUserSignInTaskRequestDto);
for (int i =0; i < qdUserSignInTaskList.size(); i++) {
Map<String, Object> chartsListInfo = new HashMap<>();
int ranking = listSize + i + 1;
QdUser qdUser = qdUserDao.queryById(list.get(i).getUserId());
chartsListInfo.put("ranking", ranking);
chartsListInfo.put("avatar", qdUser.getAvatar());
chartsListInfo.put("userName", qdUser.getNickName());
chartsListInfo.put("totalDays", list.get(i).getTotalSignInDays());
dataList.add(chartsListInfo);
}
}
resultMap.put("currentUserName", cUser.getNickName()); resultMap.put("currentUserName", cUser.getNickName());
resultMap.put("currentAvatar", cUser.getAvatar()); resultMap.put("currentAvatar", cUser.getAvatar());
resultMap.put("currentAvatar", cUser.getAvatar()); resultMap.put("currentAvatar", cUser.getAvatar());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment