一、添加一个比较器

点击查看代码
import java.util.Comparator;

/**
* @Classname ComparatorResultType
* @Description 排序比较器(金牌师傅推荐-分页中使用)
* @Date 2022/3/10 11:19
* @Created by 小郭
*/
public class ComparatorResultType implements Comparator {
@Override
public int compare(Object arg0, Object arg1) { //MasterPageVO是查询数据的实体类,自己根据业务替换掉
MasterPageVO masterPageVO0=(MasterPageVO)arg0;
MasterPageVO masterPageVO1=(MasterPageVO)arg1;
//首先比较主指标,如果主指标相同,则比较次指标
int flag=masterPageVO0.getScore().compareTo(masterPageVO1.getScore());
if(flag==0){
return masterPageVO0.getOrderCount().compareTo(masterPageVO1.getOrderCount()); }else{
return flag;
}
}
}

二、业务代码

点击查看代码
@Override
public PageData<MasterPageVO> getMasterPage(Map<String, Object> params) { List<MasterPageVO> voList=masterWorkerDao.getMasterPage(params); if (voList.size()>0 && !voList.isEmpty()) {
for (MasterPageVO vo : voList) {
//查询师傅拥有的服务
List<MasterWorkerServiceTypeVO> serviceList = masterWorkerServiceTypeDao.getServiceByMasterWorkerId(Long.parseLong(vo.getId()));
if (serviceList.size() > 0) {
vo.setServiceList(serviceList);
}
//查询印象评价标签列表
List<ImpressionEvaluationVO> impressionEvaluationVOList = masterWorkerDao.getImpressionEvaluationList(Long.parseLong(vo.getId()));
if (impressionEvaluationVOList.size() > 0) {
vo.setImpressionEvaluationVOList(impressionEvaluationVOList);
}
//查询评分(总评分数/接单量)
ScoreDetailVO scoreDetailVO = masterWorkerDao.getScoreTotal(Long.parseLong(vo.getId()));
if (scoreDetailVO.getScoreTotal() != null && scoreDetailVO.getOrderCount() != null) {
vo.setScore(Integer.parseInt(scoreDetailVO.getScoreTotal()) / Integer.parseInt(scoreDetailVO.getOrderCount()));
vo.setOrderCount(Integer.parseInt(scoreDetailVO.getOrderCount()));
} else {
vo.setScore(0);
vo.setOrderCount(0);
}
}
//根据分数降序排序
ComparatorResultType comparator=new ComparatorResultType();
//正常排序
Collections.sort(voList, comparator);
//进行降序
Collections.reverse(voList);
}
return getPageData(voList, voList.size(), MasterPageVO.class);
}

最新文章

  1. mysql启动报错The server quit without updating PID file
  2. C#复习②
  3. XtraFinder在OSX10.11的使用
  4. BSON 1.0版本规范(翻译)
  5. crontab任务取消发送邮件
  6. Java中的异常处理(一)
  7. [Effective C++ --019]设计class犹如设计type
  8. 白书P61 - 点集配对问题
  9. Net::OpenSSH 使用例子
  10. Ubuntu环境变量——系统变量和用户变量
  11. Lucene中的 Query对象
  12. 基于JAVA语言的多线程技术
  13. 关于&quot;模块计算机类型与目标计算机类型冲突&quot;的解决
  14. Effective Java 第三版——33. 优先考虑类型安全的异构容器
  15. gradle入门(1-4)多项目构建实战
  16. sql语句可以截取指定字段后面的字符串
  17. NLP入门(五)用深度学习实现命名实体识别(NER)
  18. codeforces651----A. Joysticks
  19. 网络Socket编程UDP协议例子
  20. nginx静态资源缓存策略配置

热门文章

  1. Gitlab备份以及恢复
  2. vue3中pinia的使用总结
  3. count(*), count(1), count(列名)的区别
  4. acwing346 走廊泼水节 (最小生成树)
  5. 驱动开发:内核通过PEB得到进程参数
  6. activeMq不能被主机访问的问题
  7. goroutine调度
  8. Optimize(优化实验)
  9. 消息队列之RabbitMQ介绍与运用
  10. 一、Go语言开篇介绍