@RequestMapping('/autoSort2') public R autoSort2(@RequestParam Map<String, Object> params,NongzuowuEntity nongzuowu, HttpServletRequest request){ String userId = request.getSession().getAttribute('userId').toString(); String inteltypeColumn = 'zuowufenlei'; List storeups = storeupService.selectList(new EntityWrapper().eq('type', 1).eq('userid', userId).eq('tablename', 'nongzuowu').orderBy('addtime', false)); List inteltypes = new ArrayList(); Integer limit = params.get('limit')==null?10:Integer.parseInt(params.get('limit').toString()); List nongzuowuList = new ArrayList(); //去重 if(storeups!=null && storeups.size()>0) { for(StoreupEntity s : storeups) { nongzuowuList.addAll(nongzuowuService.selectList(new EntityWrapper().eq(inteltypeColumn, s.getInteltype()))); } } EntityWrapper ew = new EntityWrapper(); params.put('sort', 'id'); params.put('order', 'desc'); PageUtils page = nongzuowuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, nongzuowu), params), params)); List pageList = (List)page.getList(); if(nongzuowuList.size()<limit) { int toAddNum = (limit-nongzuowuList.size())<=pageList.size()?(limit-nongzuowuList.size()):pageList.size(); for(NongzuowuEntity o1 : pageList) { boolean addFlag = true; for(NongzuowuEntity o2 : nongzuowuList) { if(o1.getId().intValue()==o2.getId().intValue()) { addFlag = false; break; } } if(addFlag) { nongzuowuList.add(o1); if(--toAddNum==0) break; } } } else if(nongzuowuList.size()>limit) { nongzuowuList = nongzuowuList.subList(0, limit); } page.setList(nongzuowuList); return R.ok().put('data', page); }

// 代码的功能说明: 该接口实现农作物自动排序推荐功能,根据用户收藏的农作物类型进行推荐,并限制返回数据的数量。具体流程如下:

  1. 获取用户 ID 和收藏数据
  2. 根据收藏数据筛选农作物列表
  3. 根据请求参数进行分页查询,获取更多农作物数据
  4. 将收藏数据和分页查询数据合并,并限制返回数据的数量
  5. 返回一个包含推荐排序结果的分页数据

// 代码的详细解释:

  • @RequestMapping('/autoSort2'):定义接口的访问路径
  • @RequestParam Map<String, Object> params:获取请求参数
  • NongzuowuEntity nongzuowu:农作物实体类
  • HttpServletRequest request:获取请求对象
  • String userId:获取用户 ID
  • String inteltypeColumn:农作物分类字段
  • List storeups:用户收藏的农作物数据
  • List inteltypes:收藏的农作物类型列表
  • Integer limit:限制返回数据的数量
  • List nongzuowuList:推荐排序的农作物列表
  • EntityWrapper ew:查询条件构造器
  • PageUtils page:分页数据对象
  • List pageList:分页查询结果
  • int toAddNum:需要添加的数据数量
  • boolean addFlag:判断数据是否已存在

// 代码的优缺点:

  • 优点:代码逻辑清晰,易于理解,功能实现完善
  • 缺点:代码没有进行错误处理,例如获取用户 ID 失败等情况

原文地址: https://www.cveoy.top/t/topic/nNMG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录