实现用户对一个招聘信息进行收藏和关注,可以通过以下的底层逻辑来实现:

1.创建一个招聘信息表,包含招聘信息的基本信息,如公司名称、职位名称、工作地点、薪资等。

2.创建一个用户表,包含用户的基本信息,如用户名、密码、邮箱等。

3.创建一个收藏表,用于存储用户收藏的招聘信息。收藏表中需要包含用户ID和招聘信息ID。

4.创建一个关注表,用于存储用户关注的公司信息。关注表中需要包含用户ID和公司ID。

5.在前端页面中,为每个招聘信息和公司信息添加收藏和关注按钮。

6.当用户点击收藏按钮时,前端将用户ID和招聘信息ID发送到后端,后端将这些信息存储到收藏表中。

7.当用户点击关注按钮时,前端将用户ID和公司ID发送到后端,后端将这些信息存储到关注表中。

8.在我的收藏和我的关注页面中,前端从收藏表和关注表中查询对应的信息,并展示给用户。

具体实现代码如下:

1.创建招聘信息表

CREATE TABLE job_info (
    id INT(11) NOT NULL AUTO_INCREMENT,
    company_name VARCHAR(255) NOT NULL,
    job_name VARCHAR(255) NOT NULL,
    location VARCHAR(255) NOT NULL,
    salary VARCHAR(255) NOT NULL,
    job_description TEXT NOT NULL,
    PRIMARY KEY (id)
);

2.创建用户表

CREATE TABLE user (
    id INT(11) NOT NULL AUTO_INCREMENT,
    username VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
);

3.创建收藏表

CREATE TABLE favorite (
    id INT(11) NOT NULL AUTO_INCREMENT,
    user_id INT(11) NOT NULL,
    job_id INT(11) NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (user_id) REFERENCES user(id),
    FOREIGN KEY (job_id) REFERENCES job_info(id)
);

4.创建关注表

CREATE TABLE follow (
    id INT(11) NOT NULL AUTO_INCREMENT,
    user_id INT(11) NOT NULL,
    company_name VARCHAR(255) NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (user_id) REFERENCES user(id)
);

5.前端页面中的收藏和关注按钮

<template>
  <div>
    <button @click="favorite(job.id)">收藏</button>
    <button @click="follow(job.company_name)">关注</button>
  </div>
</template>

<script>
export default {
  methods: {
    favorite(id) {
      // 发送请求给后端,将用户ID和招聘信息ID存储到收藏表中
    },
    follow(companyName) {
      // 发送请求给后端,将用户ID和公司名存储到关注表中
    }
  }
}
</script>

6.后端收藏和关注接口实现

// 添加收藏
@PostMapping("/favorite")
public ResponseBody addFavorite(@RequestBody Map<String, Integer> map) {
    int userId = map.get("userId");
    int jobId = map.get("jobId");
    favoriteService.addFavorite(userId, jobId);
    return ResponseBody.success("添加收藏成功");
}

// 添加关注
@PostMapping("/follow")
public ResponseBody addFollow(@RequestBody Map<String, Object> map) {
    int userId = (int) map.get("userId");
    String companyName = (String) map.get("companyName");
    followService.addFollow(userId, companyName);
    return ResponseBody.success("添加关注成功");
}

7.后端服务实现

@Service
public class FavoriteService {

    @Autowired
    private FavoriteRepository favoriteRepository;

    // 添加收藏
    public void addFavorite(int userId, int jobId) {
        Favorite favorite = new Favorite();
        favorite.setUserId(userId);
        favorite.setJobId(jobId);
        favoriteRepository.save(favorite);
    }

    // 查询用户收藏的招聘信息
    public List<JobInfo> getFavoriteJob(int userId) {
        List<Favorite> favorites = favoriteRepository.findByUserId(userId);
        List<JobInfo> jobInfos = new ArrayList<>();
        for (Favorite favorite : favorites) {
            jobInfos.add(favorite.getJobInfo());
        }
        return jobInfos;
    }

}

@Service
public class FollowService {

    @Autowired
    private FollowRepository followRepository;

    // 添加关注
    public void addFollow(int userId, String companyName) {
        Follow follow = new Follow();
        follow.setUserId(userId);
        follow.setCompanyName(companyName);
        followRepository.save(follow);
    }

    // 查询用户关注的公司
    public List<Company> getFollowCompany(int userId) {
        List<Follow> follows = followRepository.findByUserId(userId);
        List<Company> companies = new ArrayList<>();
        for (Follow follow : follows) {
            companies.add(new Company(follow.getCompanyName()));
        }
        return companies;
    }

}

这样,用户就可以方便地收藏和关注自己感兴趣的招聘信息和公司了

SpringBoot+Vue的一个招聘网站如何实现用户对一个招聘信息进行收藏和关注?底层的逻辑是什么?具体实现代码是什么?

原文地址: https://www.cveoy.top/t/topic/e3gp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录