大四零基础用Vue+ElementUI一周做完化妆品推荐系统?

💖💖作者:计算机毕业设计小途

💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!

💛💛想说的话:感谢大家的关注与支持!

💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学习实战项目

目录

化妆品推荐系统介绍

化妆品推荐系统面向大四计算机专业毕业设计场景,采用Java-SpringBoot或Python-Django双后端方案,前端统一使用Vue+ElementUI构建B/S架构的完整Web应用;系统以MySQL为核心数据存储,围绕化妆品业务设计用户、商家、化妆品类别、单品、评分、销量、留言反馈、在线咨询、轮播公告及友情链接等十余个功能模块,既支持普通用户浏览、搜索、收藏、评分与留言,也支持商家后台上架商品、维护库存与查看销量数据,管理员可在系统管理界面完成用户/商家权限控制、公告资讯与分类发布、首页轮播图配置及系统简介维护,所有交互通过RESTful接口与JSON数据完成,前端路由与权限由Vue-router与ElementUI组件协同实现,代码结构清晰、注释详尽,可直接作为毕业设计项目运行与演示,帮助学生在短时间内掌握从需求分析、数据库设计、后端业务实现到前端页面交互的完整开发流程,并提供真实业务场景下的数据模型与接口范例,为毕设文档撰写与系统展示提供扎实基础。

化妆品推荐系统演示视频

大四零基础用Vue+ElementUI一周做完化妆品推荐系统?

化妆品推荐系统演示图片








化妆品推荐系统代码展示

python 复制代码
// 1. 化妆品个性化推荐核心逻辑:基于用户历史评分与商品特征计算余弦相似度并返回Top-N
public List<Cosmetic> recommendByUser(Long userId, int topN) {
    List<UserRating> myRatings = userRatingMapper.selectByUserId(userId);
    if (myRatings.isEmpty()) return cosmeticMapper.selectBySalesDesc(topN);
    Map<Long, Double> userVector = myRatings.stream()
            .collect(Collectors.toMap(UserRating::getCosmeticId, UserRating::getScore));
    Set<Long> alreadyRated = userVector.keySet();
    List<Cosmetic> allItems = cosmeticMapper.selectAll();
    List<CosmeticScore> scores = new ArrayList<>();
    for (Cosmetic c : allItems) {
        if (alreadyRated.contains(c.getId())) continue;
        List<UserRating> itemRatings = userRatingMapper.selectByCosmeticId(c.getId());
        if (itemRatings.isEmpty()) continue;
        Map<Long, Double> itemVector = itemRatings.stream()
                .collect(Collectors.toMap(UserRating::getUserId, UserRating::getScore));
        double dot = 0, normA = 0, normB = 0;
        for (UserRating r : myRatings) {
            Double otherScore = itemVector.get(r.getUserId());
            if (otherScore != null) {
                dot += r.getScore() * otherScore;
                normA += r.getScore() * r.getScore();
                normB += otherScore * otherScore;
            }
        }
        double sim = (normA == 0 || normB == 0) ? 0 : dot / (Math.sqrt(normA) * Math.sqrt(normB));
        scores.add(new CosmeticScore(c, sim));
    }
    scores.sort((a, b) -> Double.compare(b.getScore(), a.getScore()));
    return scores.stream().limit(topN).map(CosmeticScore::getCosmetic).collect(Collectors.toList());
}

// 2. 用户提交评分后的实时销量与平均分更新:事务内同时写评分表、更新化妆品表销量与平均分
@Transactional
public int addRating(Long userId, Long cosmeticId, Double score) {
    Cosmetic c = cosmeticMapper.selectById(cosmeticId);
    if (c == null) throw new BizException("商品不存在");
    UserRating exists = userRatingMapper.selectByUserAndCosmetic(userId, cosmeticId);
    if (exists != null) {
        exists.setScore(score);
        userRatingMapper.updateById(exists);
    } else {
        UserRating ur = new UserRating();
        ur.setUserId(userId);
        ur.setCosmeticId(cosmeticId);
        ur.setScore(score);
        userRatingMapper.insert(ur);
    }
    int totalSales = userRatingMapper.countByCosmetic(cosmeticId);
    Double avgScore = userRatingMapper.avgScoreByCosmetic(cosmeticId);
    cosmeticMapper.updateSalesAndScore(cosmeticId, totalSales, avgScore);
    return 1;
}

// 3. 商家后台销量数据多维度实时统计:按品类、月份聚合返回ECharts所需JSON
public Map<String, Object> salesStatistics(Long merchantId) {
    Map<String, Object> result = new LinkedHashMap<>();
    List<Map<String, Object>> byCategory = cosmeticMapper.selectSalesGroupByCategory(merchantId);
    result.put("category", byCategory);
    List<Map<String, Object>> byMonth = orderDetailMapper.selectSalesGroupByMonth(merchantId);
    result.put("month", byMonth);
    List<Map<String, Object>> top10 = cosmeticMapper.selectTopSalesByMerchant(merchantId, 10);
    result.put("top10", top10);
    return result;
}

化妆品推荐系统文档展示

💖💖作者:计算机毕业设计小途

💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!

💛💛想说的话:感谢大家的关注与支持!

💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学习实战项目

相关推荐
毕设源码-钟学长2 分钟前
【开题答辩全过程】以 基于Springboot的扶贫众筹平台为例,包含答辩的问题和答案
java·spring boot·后端
ZH15455891315 分钟前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter
鹏说大数据6 分钟前
Spark 和 Hive 的关系与区别
大数据·hive·spark
B站计算机毕业设计超人11 分钟前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
B站计算机毕业设计超人12 分钟前
计算机毕业设计hadoop+spark+hive交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析(源码+LW文档+PPT+讲解视频)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
AI架构师小马12 分钟前
Hive调优手册:从入门到精通的完整指南
数据仓库·hive·hadoop·ai
数据架构师的AI之路13 分钟前
深入了解大数据领域Hive的HQL语言特性
大数据·hive·hadoop·ai
CodeSheep程序羊17 分钟前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
独好紫罗兰17 分钟前
对python的再认识-基于数据结构进行-a002-列表-列表推导式
开发语言·数据结构·python
机器学习之心HML20 分钟前
多光伏电站功率预测新思路:当GCN遇见LSTM,解锁时空预测密码,python代码
人工智能·python·lstm