用户画像活动推荐系统 毕业设计 JAVA+Vue+SpringBoot+MySQL(二)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 用户画像活动推荐系统 毕业设计 JAVA+Vue+SpringBoot+MySQL


五、核心代码

5.1 查询兴趣标签

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询兴趣标签")
public Result<IPage<Label>> getByPage(@ModelAttribute Label label ,@ModelAttribute PageVo page){
    QueryWrapper<Label> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(label.getTitle())) {
        qw.like("title",label.getTitle());
    }
    if(!ZwzNullUtils.isNull(label.getContent())) {
        qw.like("content",label.getContent());
    }
    IPage<Label> data = iLabelService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Label>>().setData(data);
}

5.2 查询活动推荐

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询活动")
public Result<IPage<Activity>> getByPage(@ModelAttribute Activity activity ,@ModelAttribute PageVo page){
    /**
        * 接受前端传来的参数,开始模拟搜索
        */
    QueryWrapper<Activity> qw = new QueryWrapper<>();
    /**
        * 获取当前登录的用户对象
        */
    User currUser = securityUtil.getCurrUser();
    if(ZwzNullUtils.isNull(currUser.getLabel())) {
        currUser.setLabel("");
    }
    /**
        * 分析用户的兴趣标签
        */
    String[] labelList = currUser.getLabel().split(",");
    if(!ZwzNullUtils.isNull(activity.getTitle())) {
        qw.like("title",activity.getTitle());
    }
    if(!ZwzNullUtils.isNull(activity.getContent())) {
        qw.like("content",activity.getContent());
    }
    if(!ZwzNullUtils.isNull(activity.getStatus())) {
        qw.eq("status",activity.getStatus());
    }
    /**
        * 查询系统全部的活动留言数据
        */
    List<Message> messageList = iMessageService.list();
    /**
        * 查询系统全部的活动预定数据
        */
    List<ActivityOrder> orderList = iActivityOrderService.list();
    IPage<Activity> data = iActivityService.page(PageUtil.initMpPage(page),qw);
    for (Activity vo : data.getRecords()) {
        /**
            * 判断登录用户是否预定了这个活动
            */
        QueryWrapper<ActivityOrder> orderQw = new QueryWrapper<>();
        orderQw.eq("act_id",vo.getId());
        orderQw.eq("user_id",currUser.getId());
        vo.setOrderFlag(iActivityOrderService.count(orderQw));
        /**
            * 判断收藏
            */
        QueryWrapper<Collect> coQw = new QueryWrapper<>();
        coQw.eq("user_id",currUser.getId());
        coQw.eq("act_id",vo.getId());
        vo.setCoFlag(iCollectService.count(coQw));
        Long likeNumber = 0L;
        /**
            * 自己喜爱的活动,一个标签加十分
            */
        for (String s : labelList) {
            if(vo.getLabel().indexOf(s) > -1) {
                likeNumber += 10L;
            }
        }
        /**
            * 他人预定,每次加三分
            */
        for (ActivityOrder activityOrder : orderList) {
            if(Objects.equals(activityOrder.getActId(),vo.getId())) {
                likeNumber += 3L;
            }
        }
        /**
            * 被别人留言,每次加两分
            */
        for (Message message : messageList) {
            if(message.getContent().indexOf(vo.getTitle()) > -1) {
                likeNumber += 2L;
            }
        }
        vo.setLikeLevel(likeNumber);
    }
    /**
        * 最后对即将返回的活动数据,针对加权分值降序排序
        */
    Collections.sort(data.getRecords(), new Comparator<Activity>() {
        @Override
        public int compare(Activity o1, Activity o2) {
            return o2.getLikeLevel().compareTo(o1.getLikeLevel());
        }
    });
    /**
        * 返回给前端
        */
    return new ResultUtil<IPage<Activity>>().setData(data);
}

5.3 新增活动报名

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增单条活动报名")
public Result<ActivityOrder> addOne(@RequestParam String id){
    Activity activity = iActivityService.getById(id);
    if(activity == null) {
        return ResultUtil.error("活动不存在");
    }
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<ActivityOrder> qw = new QueryWrapper<>();
    qw.eq("act_id",id);
    qw.eq("user_id",currUser.getId());
    iActivityOrderService.remove(qw);
    ActivityOrder order = new ActivityOrder();
    order.setActId(activity.getId());
    order.setTitle(activity.getTitle());
    order.setContent(activity.getContent());
    order.setAddress(activity.getAddress());
    order.setTime(activity.getTime());
    order.setUserId(currUser.getId());
    order.setUserName(currUser.getNickname());
    iActivityOrderService.saveOrUpdate(order);
    return ResultUtil.success();
}

5.4 新增活动收藏

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增收藏")
public Result<Object> addOne(@RequestParam String id){
    Activity a = iActivityService.getById(id);
    if(a == null) {
        return ResultUtil.error("活动不存在");
    }
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<Collect> coQw = new QueryWrapper<>();
    coQw.eq("user_id",currUser.getId());
    coQw.eq("act_id",a.getId());
    long coCount = iCollectService.count(coQw);
    if(coCount < 1) {
        Collect c = new Collect();
        c.setUserId(currUser.getId());
        c.setUserName(currUser.getNickname());
        c.setActId(a.getId());
        c.setActTitle(a.getTitle());
        c.setTime(DateUtil.now());
        iCollectService.saveOrUpdate(c);
    }
    return ResultUtil.success();
}

5.5 新增活动留言

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增活动留言")
public Result<Message> insert(Message message){
    Activity activity = iActivityService.getById(message.getActId());
    if(activity == null) {
        return ResultUtil.error("活动不存在");
    }
    message.setActTitle(activity.getTitle());
    User currUser = securityUtil.getCurrUser();
    message.setUserId(currUser.getId());
    message.setUserName(currUser.getNickname());
    message.setTime(DateUtil.now());
    message.setReplyContent("");
    message.setReplyName("");
    message.setReplyId("");
    message.setReplyTime("");
    iMessageService.saveOrUpdate(message);
    return new ResultUtil<Message>().setData(message);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
19天前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
38 5
|
1月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
54 8
|
1月前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
60 9
|
4月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
172 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
6月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
6月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
4月前
|
搜索推荐 前端开发 数据可视化
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
本文介绍了一个基于Python协同过滤算法的旅游景点推荐系统,该系统采用Django框架、MySQL数据库、Bootstrap前端和echarts数据可视化技术,旨在为用户提供个性化的旅游推荐服务,提升用户体验和旅游市场增长。
366 9
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
|
4月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
302 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
7月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
202 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】