五、核心代码
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 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!
- 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
- 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
- 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
- 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。