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

}
最近下载更多
luhong  LV5 9月20日
vincemokea  LV9 9月14日
yangchengshuai  LV16 9月3日
hulewang  LV8 7月16日
大神程序员  LV23 7月2日
sgrfsgrts  LV2 5月15日
SX520886  LV6 4月24日
lipiao161  LV16 3月16日
最近浏览更多
奋斗的小蚂蚁  LV13 10月16日
求学的熊猫  LV11 10月10日
wyx065747  LV67 10月1日
310834626  LV3 9月29日
1231578  LV9 9月28日
疯子庭  LV8 9月25日
jlmarket  LV22 9月23日
梁小贤  LV1 9月12日
vincemokea  LV9 9月11日
AniyaKKbi 8月28日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友