大四零基础用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等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!

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

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

相关推荐
vvilkim22 分钟前
Java主流框架全解析:从企业级开发到云原生
java·运维·云原生
MZ_ZXD0011 小时前
springboot汽车租赁服务管理系统-计算机毕业设计源码58196
java·c++·spring boot·python·django·flask·php
岁忧4 小时前
(nice!!!)(LeetCode 每日一题) 679. 24 点游戏 (深度优先搜索)
java·c++·leetcode·游戏·go·深度优先
念念01076 小时前
数学建模竞赛中评价类相关模型
python·数学建模·因子分析·topsis
云天徽上6 小时前
【数据可视化-94】2025 亚洲杯总决赛数据可视化分析:澳大利亚队 vs 中国队
python·信息可视化·数据挖掘·数据分析·数据可视化·pyecharts
君不见,青丝成雪6 小时前
Flink双流join
大数据·数据仓库·flink
☺����6 小时前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
猿究院--王升7 小时前
jvm三色标记
java·jvm·算法
王者鳜錸7 小时前
PYTHON让繁琐的工作自动化-函数
开发语言·python·自动化