宝塔面板建站教程,做exo小说的网站,建站制作企业,wordpress切换成中文1. 管理端#xff1a; 带有职位的增删改查功能#xff0c;评论功能是针对新闻模块的#xff0c;类似新闻大数据的实现 2. 网站端#xff1a; python / java 协同过滤推荐算法 / 下载职位数据表收费1元每条 / 账户充值 / 短信验证码修改密码 / 身份证识别 / 多条件搜索 3.…1. 管理端 带有职位的增删改查功能评论功能是针对新闻模块的类似新闻大数据的实现 2. 网站端 python / java 协同过滤推荐算法 / 下载职位数据表收费1元每条 / 账户充值 / 短信验证码修改密码 / 身份证识别 / 多条件搜索 3. 大屏端 SparkUtils 之大屏 * 职位的评论带情感分析和新闻里用的技术一样可在管理端评论管理中查看结果 核心算法代码分享如下
package com.university.demo.controller;import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.university.demo.dao.JobDao;
import com.university.demo.dao.NewsDao;
import com.university.demo.entity.*;
import com.university.demo.entity.request.NewsRequest;
import com.university.demo.entity.request.SearchRequest;
import com.university.demo.entity.response.JobVo;
import com.university.demo.entity.response.NewsVo;
import com.university.demo.entity.system.ServerResponse;
import com.university.demo.python.TransferPython.ToPython;
import com.university.demo.service.*;
import com.university.demo.service.impl.TokenService;
import org.apache.commons.lang3.StringUtils;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.xm.tendency.word.HownetWordTendency;import java.util.ArrayList;
import java.util.List;/*** author redcomet* since 2022-06-24*/
RestController
RequestMapping(/job)
public class JobController {Autowiredprivate JobService jobService;AutowiredToPython toPython;Autowiredprivate CommentService commentService;Autowiredprivate RateService rateService;Autowiredprivate JobDao jobDao;Autowiredprivate ThumbService thumbService;Autowiredprivate ConcernService concernService;Autowiredprivate StarService starService;PostMapping(/modify)public ServerResponse modify(RequestBody Job job) {return jobService.updateById(job) ? ServerResponse.ofSuccess(更新成功) : ServerResponse.ofError(更新失败);}GetMapping(/delete/{id})public ServerResponse delete(PathVariable(id) Integer id) {return jobService.removeById(id) ? ServerResponse.ofSuccess(删除成功) : ServerResponse.ofError(删除失败);}GetMapping(/{id})public ServerResponse query(PathVariable(id) Integer id) {return ServerResponse.ofSuccess(jobService.getById(id));}// 根据【点赞-thumb】来进行倒序排序GetMapping(/news/{page})public ServerResponse querys(PathVariable(page) Integer page,RequestParam(defaultValue 10) Integer limit) {PageJob pages new Page(page, limit);QueryWrapperJob wrapper new QueryWrapperJob().orderByDesc(job_salary);IPageJob iPage jobService.page(pages, wrapper);return ServerResponse.ofSuccess(iPage);}// 后端的接口PostMapping(/search2)public ServerResponse search2(RequestBody SearchRequest params,RequestParam(defaultValue 1) Integer page,RequestParam(defaultValue 10) Integer limit) {QueryWrapperJob wrapper new QueryWrapper();wrapper.orderByDesc(job_date);wrapper.like(!StringUtils.isEmpty(params.getKeyword()), job_name, params.getKeyword());
// .eq(!StringUtils.isEmpty(params.getType()), type, params.getType())
// .eq(deleted, false);PageJob pages new Page(page, limit);IPageJob iPage jobService.page(pages, wrapper);if (page ! null) {return ServerResponse.ofSuccess(iPage);}return ServerResponse.ofError(查询不到数据!);}GetMapping({/search/{keyword}, /search/})public ServerResponse search(PathVariable(value keyword, required false) String keyword, RequestParam(defaultValue 1) Integer page,RequestParam(defaultValue 10) Integer limit) {QueryWrapperJob wrapper new QueryWrapper();wrapper.orderByDesc(job_date);wrapper.like(!StringUtils.isEmpty(keyword), job_name, keyword);PageJob pages new Page(page, limit);IPageJob iPage jobService.page(pages, wrapper);if (page ! null) {return ServerResponse.ofSuccess(iPage);}return ServerResponse.ofError(查询不到数据!);}PostMapping(/add)public ServerResponse add(RequestBody Job job) {job.setId(jobDao.getMaxId());boolean b jobService.save(job);if (b) {return ServerResponse.ofSuccess(添加成功, job);}return ServerResponse.ofError(添加失败!);}/* 给前端用的 */GetMapping({/fontsearch/{username}})public ServerResponse fontsearch(PathVariable(value username, required false) String username, RequestParam(defaultValue 1) Integer page,RequestParam(defaultValue 10) Integer limit) {QueryWrapperJob wrapper new QueryWrapper();wrapper.orderByDesc(update_time);wrapper.like(!StringUtils.isEmpty(username), job_name, username).eq(deleted, false);PageJob pages new Page(page, limit);IPageJob iPage jobService.page(pages, wrapper);if (page ! null) {return ServerResponse.ofSuccess(iPage);}return ServerResponse.ofError(查询不到数据!);}// 推荐1// Mahout 基于协同过滤的推荐接口 基于User的皮尔逊相关系数PostMapping({/recommend})public ServerResponse recommends(RequestParam String username,RequestBody SearchRequest query, RequestParam(defaultValue 1) Integer page,RequestParam(defaultValue 10) Integer limit) {ListJobVo records new ArrayList();ListRecommendedItem items rateService.getRecommendItemIds(query.getUserId(), 5);for (RecommendedItem item : items) {JobVo vo new JobVo();Job job jobService.getById(item.getItemID());BeanUtils.copyProperties(job, vo);QueryWrapperComment wrapper2 new QueryWrapper();wrapper2.eq(remark, job.getId());wrapper2.eq(deleted, false);ListComment comments commentService.list(wrapper2);vo.setComments(comments);//如果在用户登录状态下去查询他有没有点赞或者关注过这个文章作者if(!StringUtils.isEmpty(username)) {// 是否点赞QueryWrapperThumb wrapper3 new QueryWrapper();wrapper3.eq(nid, job.getId()).eq(deleted, false).eq(sid, username);int thumbs thumbService.count(wrapper3);if (thumbs 0)vo.setIthumb(true);elsevo.setIthumb(false);// 是否关注QueryWrapperStar wrapper4 new QueryWrapper();wrapper4.eq(nid, job.getId()).eq(deleted, false).eq(sid, username).eq(type,news);int stars starService.count(wrapper4);if (stars 0)vo.setIstar(true);elsevo.setIstar(false);}records.add(vo);}return ServerResponse.ofSuccess(records);}GetMapping({/getOne/{id}})public ServerResponse getOne(PathVariable(id) Integer id, RequestParam String username) {JobVo vo new JobVo();Job job jobService.getById(id);BeanUtils.copyProperties(job, vo);QueryWrapperComment wrapper2 new QueryWrapper();wrapper2.eq(remark, job.getId());wrapper2.eq(deleted, false);ListComment comments commentService.list(wrapper2);vo.setComments(comments);//如果在用户登录状态下去查询他有没有点赞或者关注过这个文章作者return ServerResponse.ofSuccess(vo);}// 推荐2PostMapping({/recommend2})public ServerResponse recommends2(RequestParam String username,RequestBody SearchRequest query, RequestParam(defaultValue 1) Integer page,RequestParam(defaultValue 10) Integer limit) {ListJobVo records new ArrayList();String content toPython.itemrec(String.valueOf(query.getUserId()));//转为json数据JSONArray jo JSONObject.parseArray(content);for(int i0;ijo.size();i){JSONObject obj jo.getJSONObject(i);JobVo vo new JobVo();Job job jobService.getById(obj.getInteger(iid));BeanUtils.copyProperties(job, vo);QueryWrapperComment wrapper2 new QueryWrapper();wrapper2.eq(remark, job.getId());wrapper2.eq(deleted, false);ListComment comments commentService.list(wrapper2);vo.setComments(comments);//如果在用户登录状态下去查询他有没有点赞或者关注过这个文章作者if(!StringUtils.isEmpty(username)) {// 是否点赞QueryWrapperThumb wrapper3 new QueryWrapper();wrapper3.eq(nid, job.getId()).eq(deleted, false).eq(sid, username);int thumbs thumbService.count(wrapper3);if (thumbs 0)vo.setIthumb(true);elsevo.setIthumb(false);// 是否关注QueryWrapperStar wrapper4 new QueryWrapper();wrapper4.eq(nid, job.getId()).eq(deleted, false).eq(sid, username).eq(type,news);int stars starService.count(wrapper4);if (stars 0)vo.setIstar(true);elsevo.setIstar(false);}records.add(vo);}return ServerResponse.ofSuccess(records);}/*** 综合搜索* 2021年12月28日*/PostMapping({/searchx})public ServerResponse searchx(RequestBody NewsRequest params, RequestParam(defaultValue 1) Integer page,RequestParam(defaultValue 10) Integer limit) {ListJobVo response new ArrayList();QueryWrapperJob wrapper new QueryWrapper();wrapper.orderByDesc(job_date);if (params ! null) {wrapper.like(!StringUtils.isEmpty(params.getTitle()), job_name, params.getTitle());wrapper.like(!StringUtils.isEmpty(params.getKeyword()), job_company_type, params.getKeyword());wrapper.ge(!StringUtils.isEmpty(params.getBegin()), job_date, params.getBegin());wrapper.le(!StringUtils.isEmpty(params.getEnd()), job_date, params.getEnd());}// wrapper.eq(deleted, false);PageJob pages new Page(page, limit);IPageJob iPage jobService.page(pages, wrapper);ListJob jobs iPage.getRecords();HownetWordTendency hownet new HownetWordTendency();jobs.forEach(job1 - {JobVo v new JobVo();String title v.getJobName();double sim hownet.getTendency(title);if(sim0)v.setTend(正向);else if(sim0)v.setTend(负向);elsev.setTend(中性);
// v.setId(news1.getId());BeanUtils.copyProperties(job1, v);QueryWrapperComment wrapper2 new QueryWrapper();wrapper2.eq(remark, job1.getId());wrapper2.eq(deleted, false);ListComment comments commentService.list(wrapper2);v.setComments(comments);response.add(v);});//前端需要返回分页参数IPageJobVo voPage new Page();voPage.setRecords(response);voPage.setSize(iPage.getSize());voPage.setPages(iPage.getPages());voPage.setCurrent(iPage.getCurrent());voPage.setTotal(iPage.getTotal());if (page ! null) {return ServerResponse.ofSuccess(voPage);}return ServerResponse.ofError(查询不到数据!);}}