基于SpringBoot协同过滤算法商品推荐系统(源码+lw+部署文档+讲解等)

前言:

博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。

主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、模拟答辩演练、和理解代码逻辑思路,帮助过上千位同学。

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

系统介绍:(根据协同过滤算法推荐的商品系统)

系统后端设计

协同过滤算法参考
 

   /**
     * 协同算法(按用户购买推荐)
     */
    @RequestMapping("/autoSort2")
    public R autoSort2(@RequestParam Map<String, Object> params,ShangpinxinxiEntity shangpinxinxi, HttpServletRequest request){
        String userId = request.getSession().getAttribute("userId").toString();
        String goodtypeColumn = "shangpinleixing";
        List<OrdersEntity> orders = ordersService.selectList(new EntityWrapper<OrdersEntity>().eq("userid", userId).eq("tablename", "shangpinxinxi").orderBy("addtime", false));
        List<String> goodtypes = new ArrayList<String>();
        Integer limit = params.get("limit")==null?10:Integer.parseInt(params.get("limit").toString());
        List<ShangpinxinxiEntity> shangpinxinxiList = new ArrayList<ShangpinxinxiEntity>();
	//去重
    	List<OrdersEntity> ordersDist = new ArrayList<OrdersEntity>();
    	for(OrdersEntity o1 : orders) {
    		boolean addFlag = true;
    		for(OrdersEntity o2 : ordersDist) {
    			if(o1.getGoodid()==o2.getGoodid() || o1.getGoodtype().equals(o2.getGoodtype())) {
    				addFlag = false;
    				break;
    			}
    		}
    		if(addFlag) ordersDist.add(o1);
    	}
        if(ordersDist!=null && ordersDist.size()>0) {
                for(OrdersEntity o : ordersDist) {
                        shangpinxinxiList.addAll(shangpinxinxiService.selectList(new EntityWrapper<ShangpinxinxiEntity>().eq(goodtypeColumn, o.getGoodtype())));
                }
        }
        EntityWrapper<ShangpinxinxiEntity> ew = new EntityWrapper<ShangpinxinxiEntity>();
        params.put("sort", "id");
        params.put("order", "desc");
        PageUtils page = shangpinxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangpinxinxi), params), params));
        List<ShangpinxinxiEntity> pageList = (List<ShangpinxinxiEntity>)page.getList();
        if(shangpinxinxiList.size()<limit) {
                int toAddNum = (limit-shangpinxinxiList.size())<=pageList.size()?(limit-shangpinxinxiList.size()):pageList.size();
                for(ShangpinxinxiEntity o1 : pageList) {
                    boolean addFlag = true;
                    for(ShangpinxinxiEntity o2 : shangpinxinxiList) {
                        if(o1.getId().intValue()==o2.getId().intValue()) {
                            addFlag = false;
                            break;
                        }
                    }
                    if(addFlag) {
                        shangpinxinxiList.add(o1);
                        if(--toAddNum==0) break;
                    }   
                }
        } else if(shangpinxinxiList.size()>limit) {
            shangpinxinxiList = shangpinxinxiList.subList(0, limit);
        }
        page.setList(shangpinxinxiList);
        return R.ok().put("data", page);
    }




关于为什么选择我
在B站持续讲解自己的项目,辅导过多名的计算机毕业设计优秀学生,用最实惠的价格做最好的毕业设计!!(帮助过上一千多名同学拿到优秀毕业生,做到放心考研考公等!可以绝对放心!!

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 07:42:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 07:42:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 07:42:03       57 阅读
  4. Python语言-面向对象

    2024-07-15 07:42:03       68 阅读

热门阅读

  1. 什么是DDoS攻击

    2024-07-15 07:42:03       25 阅读
  2. [NeetCode 150] Word Ladder

    2024-07-15 07:42:03       23 阅读
  3. nginx+lua 实现URL重定向(根据传入的参数条件)

    2024-07-15 07:42:03       20 阅读
  4. Vue2-案例tab切换栏高亮

    2024-07-15 07:42:03       25 阅读
  5. 项目管理·沟通管理

    2024-07-15 07:42:03       26 阅读
  6. CentOS Stream 卸载 Podman 并安装 Docker 的方法

    2024-07-15 07:42:03       21 阅读
  7. 关于 LayoutInflater.inflate 的取值结论

    2024-07-15 07:42:03       21 阅读
  8. Zynq7000系列FPGA中的DMA控制器的编程限制

    2024-07-15 07:42:03       19 阅读