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

}
最近下载更多
11999333  LV3 6月9日
newhaijun  LV16 6月7日
haitianjiaoyu0  LV8 5月27日
5418888  LV3 5月13日
陈小灏  LV18 2月21日
蓝羊羊  LV20 2月15日
lxllxllxlLXL  LV1 2024年12月26日
微信网友_7289626841501696  LV4 2024年12月24日
1121173448  LV2 2024年12月18日
最近浏览更多
酷酷的轲  LV10 8月26日
38735466  LV11 8月18日
3127785664  LV2 8月15日
康日澜  LV10 8月2日
ddman9009  LV25 7月4日
limufu  LV1 6月17日
krispeng  LV15 6月15日
潜心小白来到  LV3 6月10日
11999333  LV3 6月9日
zhangyuhong123 6月8日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友