首页>代码>基于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("删除失败");
    }

}
最近下载更多
可是不知道么  LV23 5月1日
周青松197  LV3 4月30日
DavidZeng1  LV4 4月29日
wanglinddad  LV55 4月29日
王愉悦  LV2 4月28日
tonghao  LV18 4月23日
xiaozhi丶  LV14 4月22日
jlmarket  LV22 4月22日
最代码官方  LV167 4月21日
最近浏览更多
shuangfu  LV25 昨天
ZJY1122 昨天
暂无贡献等级
vacalono  LV1 前天
wjh0420 前天
暂无贡献等级
sink122406  LV12 前天
逍遥2020  LV11 前天
xiao1111  LV2 5月15日
lh1234DGF 5月14日
暂无贡献等级
来一杯西瓜冰咩  LV6 5月14日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友