首页>代码>基于SpringBoot实现的学生就业管理系统>/源代码/employment/src/main/java/com/project/controller/AgreementController.java
package com.project.controller;

import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.project.dto.AgreementDTO;
import com.project.entity.Agreement;
import com.project.entity.Student;
import com.project.entity.Teacher;
import com.project.entity.User;
import com.project.service.AgreementService;
import com.project.service.StudentService;
import com.project.service.TeacherService;
import com.project.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import static com.project.enums.AgreementStatus.APPLY;
import static com.project.enums.AgreementStatus.MAIL;
import static com.project.enums.UserRole.STUDENT;
import static com.project.enums.UserRole.TEACHER;
import static com.project.uitls.Constant.CURRENT_USER;

/**
 * 三方协议 邮寄地址
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/agreement" )
public class AgreementController {

    private final AgreementService baseService;
    @Autowired
    private HttpSession session;
    @Autowired
    private UserService userService;
    @Autowired
    private TeacherService teacherService;
    @Autowired
    private StudentService studentService;


    /**
     * 分页查询
     * @param page 分页对象
     * @param agreement
     * @return
     */
    @GetMapping("/page" )
    public R getPage(Page page, Agreement agreement) {
        User user = (User) session.getAttribute(CURRENT_USER);
        QueryWrapper<Agreement> wrapper = new QueryWrapper<>();
        if (user.getRole().equals(STUDENT)) {
            wrapper.eq("uid", user.getId());
        } else if (user.getRole().equals(TEACHER)) {
            Teacher teacher = teacherService.getByUid(user);
            Student student = new Student();
            student.setSpecialityId(teacher.getSpecialityId());
            List<Student> students = studentService.list(Wrappers.query(student));
            if (students != null && !students.isEmpty()) {
                List<Integer> collect = students.stream().map(x -> x.getUid()).collect(Collectors.toList());
                wrapper.in("uid", collect);
            }
        }

        IPage<Agreement> page1 = baseService.page(page, wrapper);
        List<AgreementDTO> dtos = new ArrayList<>();
        page1.getRecords().forEach(x  -> {
            AgreementDTO dto = new AgreementDTO();
            BeanUtils.copyProperties(x, dto);
            dto.setUserName(userService.getById(x.getUid()).getUserName());
            dtos.add(dto);
        });
        IPage<AgreementDTO> ipage = new Page<AgreementDTO>();
        ipage.setCurrent(page.getCurrent());
        ipage.setPages(page.getPages());
        ipage.setRecords(dtos);
        ipage.setSize(page.getSize());
        ipage.setTotal(page.getTotal());
        return R.ok(ipage);
    }

    @GetMapping("/getById")
    public Object getById(@RequestParam Integer id) {
        return R.ok(baseService.getById(id));
    }

    /**
     * 新增
     * @return R
     */
    @RequestMapping("/saveOrUpdate")
    public R save(Agreement agreement) {
        if (agreement.getId() == null) {
            User user = (User) session.getAttribute(CURRENT_USER);
            agreement.setUid(user.getId());
            baseService.save(agreement);
        }else {
            baseService.updateById(agreement);
        }
        return R.ok(null);
    }

    @GetMapping("/mail")
    public R mail(@RequestParam Integer id) {
        Agreement agreement = baseService.getById(id);
        agreement.setMailTime(DateUtil.now());
        agreement.setStatus(MAIL);
        baseService.updateById(agreement);
        return R.ok(null);
    }


    @GetMapping("/apply")
    public R apply(@RequestParam Integer id) {
        Agreement agreement = baseService.getById(id);
        agreement.setCreateTime(DateUtil.now());
        agreement.setStatus(APPLY);
        baseService.updateById(agreement);
        return R.ok(null);
    }


    @GetMapping("/deleteById")
    public Object deleteById(@RequestParam Integer id) {
        boolean b = baseService.removeById(id);
        return b ? R.ok(null) : R.failed("删除失败");
    }

}
最近下载更多
1271247100  LV9 11月21日
筱洋1616  LV9 11月1日
Luck_ZDM  LV12 10月24日
小丑八怪  LV2 10月21日
luhong  LV5 9月20日
vincemokea  LV9 9月14日
yangchengshuai  LV16 9月3日
hulewang  LV8 7月16日
大神程序员  LV23 7月2日
sgrfsgrts  LV2 5月15日
最近浏览更多
hpr1234511  LV3 昨天
1271247100  LV9 11月21日
yigu123  LV6 11月8日
rao11011  LV1 11月5日
筱洋1616  LV9 11月1日
khmumuno 10月24日
暂无贡献等级
Luck_ZDM  LV12 10月24日
Osit888  LV12 10月24日
ymsyms  LV2 10月21日
奋斗的小蚂蚁  LV17 10月16日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友