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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 用户画像活动推荐系统 毕业设计 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. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
18天前
|
监控 数据可视化 安全
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
环境实时数据、动态监测报警,实时监控施工环境状态,有针对性地预防施工过程中的环境污染问题,打造文明生态施工,创造绿色的生态环境。
14 0
智慧工地SaaS可视化平台源码,PC端+APP端,支持二开,项目使用,微服务+Java++vue+mysql
|
25天前
|
JavaScript Java 关系型数据库
基于 java + Springboot + vue +mysql 大学生实习管理系统(含源码)
本文档介绍了基于Springboot的实习管理系统的设计与实现。系统采用B/S架构,旨在解决实习管理中的人工管理问题,提高效率。系统特点包括对用户输入的验证和数据安全性保障。功能涵盖首页、个人中心、班级管理、学生管理、教师管理、实习单位管理、实习作业管理、教师评分管理、单位成绩管理和系统管理等。用户分为管理员、教师和学生,各自有不同的操作权限。
|
5月前
|
搜索推荐 算法 前端开发
旅游管理与推荐系统Python+Django网页平台+协同过滤推荐算法
旅游管理与推荐系统Python+Django网页平台+协同过滤推荐算法
147 0
|
搜索推荐 算法 数据挖掘
# 【推荐系统入门到项目实战】(三):矩阵分解和ALS算法
# 【推荐系统入门到项目实战】(三):矩阵分解和ALS算法
# 【推荐系统入门到项目实战】(三):矩阵分解和ALS算法
|
3月前
|
搜索推荐 算法 前端开发
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
104 4
美食物管理与推荐系统Python+Django网站开发+协同过滤推荐算法应用【计算机课设项目推荐】
|
3月前
|
机器学习/深度学习 搜索推荐 算法
推荐系统算法的研究与实践:协同过滤、基于内容的推荐和深度学习推荐模型
推荐系统算法的研究与实践:协同过滤、基于内容的推荐和深度学习推荐模型
231 1
|
4月前
|
搜索推荐 算法 前端开发
商品购物管理与推荐系统Python+Django网页界面+协同过滤推荐算法
商品购物管理与推荐系统Python+Django网页界面+协同过滤推荐算法
67 0
|
1月前
|
机器学习/深度学习 自然语言处理 搜索推荐
推荐系统的算法分类和操作流程介绍
推荐系统的算法分类和操作流程介绍
|
3月前
|
机器学习/深度学习 搜索推荐 算法
【机器学习】推荐系统推荐算法综述
【1月更文挑战第10天】【机器学习】推荐系统推荐算法综述