毕业设计-SpringBoot-基于推荐算法的商城管理系统

2023-11-14

环境:开发工具:idea,数据库:MySQL5.7 jdk1.8
架构:SpringBoot,前端HTML
主要功能
前台商城系统包含首页门户、商品分类、新品上线、首页轮播、商品推荐、商品搜索、商品展示、购物车、订单结算、订单流程、个人订单管理、会员中心、帮助中心等模块。
后台管理系统包含数据面板、轮播图管理、商品管理、订单管理、会员管理、分类管理、设置等模块。

项目图片:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部分代码:

public List<NewBeeMallIndexConfigGoodsVO> recommendGoods(String userId){
        List<NewBeeMallIndexConfigGoodsVO> recommendGoods = new ArrayList<>();
        //协同过滤算法
        CoreMath coreMath = new CoreMath();
        //获取商品数据
        List<RelateDTO> relateDTOList = getRelateData();
        //执行算法,返回推荐商品id
        List<Integer> recommendIdLists = coreMath.recommend(Integer.parseInt(userId), relateDTOList);
        if(null == recommendIdLists || recommendIdLists.isEmpty()){
            recommendGoods = null;
        }else {
            //获取商品DTO(这里的过滤是防止商品表该id商品已下架或删除)
            List<ProductDTO> productDTOList = getProductData().stream().filter(e -> recommendIdLists.contains(e.getProductId())).collect(Collectors.toList());
            //获取商品ids
            List<Integer> goodIds = productDTOList.stream().map(e -> e.getProductId()).collect(Collectors.toList());
            List<Long> goodIds2 = JSONArray.parseArray(goodIds.toString(), Long.class);
            //获取所有推荐商品
            List<NewBeeMallGoods> newBeeMallGoods = newBeeMallGoodsMapper.selectByGoodIds(goodIds2);
            //截取10个
            if (newBeeMallGoods.size() > 10) {
                newBeeMallGoods = newBeeMallGoods.stream().limit(10).collect(Collectors.toList());
            }
            //转成VOs
            recommendGoods = BeanUtil.copyList(newBeeMallGoods, NewBeeMallIndexConfigGoodsVO.class);
            //截取商品名字
            for (NewBeeMallIndexConfigGoodsVO newBeeMallIndexConfigGoodsVO : recommendGoods) {
                String goodsName = newBeeMallIndexConfigGoodsVO.getGoodsName();
                String goodsIntro = newBeeMallIndexConfigGoodsVO.getGoodsIntro();
                // 字符串过长导致文字超出的问题
                if (goodsName.length() > 30) {
                    goodsName = goodsName.substring(0, 15) + "...";
                    newBeeMallIndexConfigGoodsVO.setGoodsName(goodsName);
                }
                if (goodsIntro.length() > 22) {
                    goodsIntro = goodsIntro.substring(0, 22) + "...";
                    newBeeMallIndexConfigGoodsVO.setGoodsIntro(goodsIntro);
                }
            }
        }
        return recommendGoods;
    }

获取方式:联系下方名片获取

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

毕业设计-SpringBoot-基于推荐算法的商城管理系统 的相关文章

随机推荐

  • Python实现水仙花数代码

    n int input for a in range 10 n 1 10 n if a sum int i n for i in str a print a
  • python 类函数调用外部函数_python类中调用外部函数,python 函数中 定义类

    Q1 python函数里的数组如何在函数外调用出来 使用返回值的方法有两种 可以直接把调用的函数作为变量使用 可以用调用函数给一个变量赋值 第一种情况见如下例子 l 1 2 3 4 5 def add element list elemen
  • 两种方法利用CUDA实现矩阵乘法

    方法一 自己写 创建 cu文件 include
  • 常见的算法思想,全在这里了

    常见的算法思想 1 贪心 贪心算法有很多经典的应用 比如霍夫曼编码 Huffman Coding Prim 和 Kruskal 最小生成树算法 还有 Dijkstra 单源最短路径算法 解决问题步骤 第一步 当我们看到这类问题的时候 首先要
  • 20190708三天总结zrb

    20190705 操作系统 对硬件的第一次扩充 Release 正式版本 内核都为Linux 外观可能使各个品牌 swap 交换分区 1024 2048 根目录 剩余的空间 boot 启动分区 520 1024 虚拟机安装 temp 临时文
  • Vue实现浙政钉扫码登陆(前端部分)

    效果 浙政钉app扫码实现登陆系统 参考文档 浙政钉 H5 小程序应用采集开发手册 语雀 专有钉钉门户 div class login 2code div
  • SpringBoot系列笔记一——SpringBoot项目结构

    SpringBoot 简介 Spring Boot 是一个框架 一种全新的编程规范 他的产生简化了框架的使用 所谓简化是指简化了 Spring 众多框架中所需的大量且繁琐的配置文件 所以 Spring Boot 是一个服 务于框架的框架 服
  • ts自动编译声明文件_webstorm配置TS运行时环境与自动给编译

    webstorm配置TS运行时环境与自动编译 Step 1 安装TypeScipt npm i typescript g Step 2 设置webstorm language Step 3 设置File Watch 添加file watch
  • 针对搜索引擎爬虫的欺骗式SSR

    玩Google Webmasters的可能会有这种经历 自己开发的app用了Vue React 写完后用Fetch as Google一爬傻眼了 爬不到东西 网上搜解决方案出来的都是一堆额外的SSR框架 要上node 还看起来麻烦的要死 对
  • 超清晰-数据结构之线性表

    鸟哥说 坚持学习基础才能有出人头地的一天 不能只专注于练武功了 内功也得练 本篇文章是讲数据结构的第一篇 跟着书好好再过一篇基础 一 线性表 线性表是n个数据特性相同的元素的组成有限序列 是最基本且常用的一种线性结构 线性表 栈 队列 串和
  • 安卓蓝牙广播大全

    android bluetooth 提供了皆如扫描设备 连接设备以及对设备间的数据传输进行管理的类 这些类对蓝牙设备进行功能性管理 蓝牙模块API提供的应用包括了 扫描其它蓝牙设备 通过查询本地蓝牙适配器来匹配蓝牙设备 建立RFCOMM 无
  • layui 附件上传、预览、删除、下载

    layui在开发文档中提供了 附件上传的方法upload render 此篇文章在此模块基础方法上扩展补充了附件预览 删除 下载的实现方法 具体如下 layui 文件 图片上传 layui 相册层 一 html div class layu
  • [无线通信基础-13]:图解移动通信技术与应用发展-1-概述

    前言 移动通信 Mobile communication 是移动体之间的通信 或移动体与固定体之间的通信 移动体可以是人 也可以是汽车 火车 轮船 收音机等在移动状态中的物体 移动通信是进行无线通信的现代化技术 这种技术是电子计算机与移动互
  • 用matlab做高斯混合模型(GMM)聚类分析

    训练GMM参数 options statset MaxIter 1000 gmm gmdistribution fit feature k Covtype Diagonal Regularize 1e 10 Options options
  • STM32 IIC通信干货!理论+实例

    I2C总线简介 I2C总线介绍 I2C Inter Integrated Circuit 总线 也称IIC或I2C 是由PHILIPS公司开发的两线式串行总线 用于连接微控制器及其外围设备 是微电子通信控制领域广泛采用的一种总线标准 它是同
  • 京城游戏人-Day9:Unity 中的鼠标点击与触摸屏点击

    京城游戏人 Day9 Unity 中的鼠标点击与触摸屏点击 作者 大锐哥 地址 http blog csdn net prevention 1 先说几点结论 Unity 中鼠标点击 MouseButton 与触摸点击 Touch 是分开处理
  • Share:思科模拟器 路由配置(默认、静态、动态RIP)

    目录 问题 1 基本连线配置 PC配置 路由器对应端口配置 2 路由设置 默认路由 静态路由 5 19补充 RIP动态路由 2022 4 18 最近发现好多同学看过我这篇记录 记得当时上计网的时候也是学的稀里糊涂 幸亏有同学的作业文档 老师
  • [POC分享] CVE: 2022-24112:Apache APISIX 2.12.1 - Remote Code Execution (RCE)

    Exploit Title Apache APISIX 2 12 1 Remote Code Execution RCE Date 2022 03 16 Exploit Author Ven3xy Vendor Homepage https
  • 软件安全技术复习内容

    软件安全技术 边复习边写的 有错误及时指正 第一章 软件安全概述 零日漏洞 安全威胁分类 CIA安全基本属性 PDRR模型 软件安全的主要方法和技术 基本方法 主要技术 第二章 软件漏洞概述 概念 软件漏洞成因分析 软件漏洞分类 基于漏洞成
  • 毕业设计-SpringBoot-基于推荐算法的商城管理系统

    环境 开发工具 idea 数据库 MySQL5 7 jdk1 8 架构 SpringBoot 前端HTML 主要功能 前台商城系统包含首页门户 商品分类 新品上线 首页轮播 商品推荐 商品搜索 商品展示 购物车 订单结算 订单流程 个人订单