小程序-提交专业查询接口
This commit is contained in:
parent
6bf92ff5e4
commit
d210573d63
|
|
@ -0,0 +1,40 @@
|
|||
package com.mdd.front.controller;
|
||||
|
||||
import com.mdd.common.core.AjaxResult;
|
||||
import com.mdd.common.core.PageResult;
|
||||
import com.mdd.common.validator.annotation.IDMust;
|
||||
import com.mdd.front.service.IMajorService;
|
||||
import com.mdd.front.validate.common.PageValidate;
|
||||
import com.mdd.front.validate.major.MajorSearchValidate;
|
||||
import com.mdd.front.vo.major.MajorDetailVo;
|
||||
import com.mdd.front.vo.major.MajorListedVo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("adminapi/major")
|
||||
@Api(tags = "专业管理")
|
||||
public class MajorController {
|
||||
|
||||
@Resource
|
||||
IMajorService iMajorService;
|
||||
|
||||
@GetMapping("/list")
|
||||
@ApiOperation(value = "专业列表")
|
||||
public AjaxResult<PageResult<MajorListedVo>> list(@Validated PageValidate pageValidate,
|
||||
@Validated MajorSearchValidate searchValidate) {
|
||||
PageResult<MajorListedVo> list = iMajorService.list(pageValidate, searchValidate);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
|
||||
@GetMapping("/detail")
|
||||
@ApiOperation(value = "专业详情")
|
||||
public AjaxResult<MajorDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
MajorDetailVo detail = iMajorService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
package com.mdd.front.service;
|
||||
|
||||
import com.mdd.common.core.PageResult;
|
||||
import com.mdd.front.validate.common.PageValidate;
|
||||
import com.mdd.front.validate.major.MajorSearchValidate;
|
||||
import com.mdd.front.vo.major.MajorDetailVo;
|
||||
import com.mdd.front.vo.major.MajorListedVo;
|
||||
|
||||
/**
|
||||
* 专业服务接口类
|
||||
*
|
||||
* @author LikeAdmin
|
||||
*/
|
||||
public interface IMajorService {
|
||||
|
||||
/**
|
||||
* 专业列表
|
||||
*
|
||||
* @param pageValidate 分页参数
|
||||
* @param searchValidate 搜索参数
|
||||
* @return PageResult<MajorListedVo>
|
||||
* @author LikeAdmin
|
||||
*/
|
||||
PageResult<MajorListedVo> list(PageValidate pageValidate, MajorSearchValidate searchValidate);
|
||||
|
||||
/**
|
||||
* 专业详情
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return MajorDetailVo
|
||||
* @author LikeAdmin
|
||||
*/
|
||||
MajorDetailVo detail(Integer id);
|
||||
}
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
package com.mdd.front.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.mdd.common.core.PageResult;
|
||||
import com.mdd.common.entity.College;
|
||||
import com.mdd.common.entity.Major;
|
||||
import com.mdd.common.mapper.CollegeMapper;
|
||||
import com.mdd.common.mapper.MajorMapper;
|
||||
import com.mdd.common.util.TimeUtils;
|
||||
import com.mdd.front.service.IMajorService;
|
||||
import com.mdd.front.validate.common.PageValidate;
|
||||
import com.mdd.front.validate.major.MajorSearchValidate;
|
||||
import com.mdd.front.vo.major.MajorDetailVo;
|
||||
import com.mdd.front.vo.major.MajorListedVo;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 专业实现类
|
||||
*
|
||||
* @author LikeAdmin
|
||||
*/
|
||||
@Service
|
||||
public class MajorServiceImpl implements IMajorService {
|
||||
|
||||
@Resource
|
||||
MajorMapper majorMapper;
|
||||
@Autowired
|
||||
private CollegeMapper collegeMapper;
|
||||
|
||||
/**
|
||||
* 专业列表
|
||||
*
|
||||
* @param pageValidate 分页参数
|
||||
* @param searchValidate 搜索参数
|
||||
* @return PageResult<MajorListedVo>
|
||||
* @author LikeAdmin
|
||||
*/
|
||||
@Override
|
||||
public PageResult<MajorListedVo> list(PageValidate pageValidate, MajorSearchValidate searchValidate) {
|
||||
Integer page = pageValidate.getPage_no();
|
||||
Integer limit = pageValidate.getPage_size();
|
||||
|
||||
QueryWrapper<Major> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.orderByDesc("id");
|
||||
|
||||
majorMapper.setSearch(queryWrapper, searchValidate, new String[]{
|
||||
"=:majorCode@major_code:str",
|
||||
"like:majorName@major_name:str",
|
||||
"=:collegeId@college_id:int",
|
||||
"=:majorType@major_type:int",
|
||||
"=:disciplineCategory@discipline_category:str",
|
||||
"=:directorId@director_id:int",
|
||||
"=:majorStatus@major_status:int",
|
||||
});
|
||||
|
||||
IPage<Major> iPage = majorMapper.selectPage(new Page<>(page, limit), queryWrapper);
|
||||
|
||||
List<MajorListedVo> list = new LinkedList<>();
|
||||
for (Major item : iPage.getRecords()) {
|
||||
MajorListedVo vo = new MajorListedVo();
|
||||
BeanUtils.copyProperties(item, vo);
|
||||
vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime()));
|
||||
College college = collegeMapper.selectById(item.getCollegeId());
|
||||
vo.setCollegeName(college.getCollegeName());
|
||||
list.add(vo);
|
||||
}
|
||||
|
||||
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 专业详情
|
||||
*
|
||||
* @param id 主键参数
|
||||
* @return Major
|
||||
* @author LikeAdmin
|
||||
*/
|
||||
@Override
|
||||
public MajorDetailVo detail(Integer id) {
|
||||
Major model = majorMapper.selectOne(
|
||||
new QueryWrapper<Major>()
|
||||
.eq("id", id)
|
||||
.last("limit 1"));
|
||||
Assert.notNull(model, "数据不存在");
|
||||
|
||||
MajorDetailVo vo = new MajorDetailVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
College college = collegeMapper.selectById(model.getCollegeId());
|
||||
vo.setCollegeName(college.getCollegeName());
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package com.mdd.front.validate.major;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@ApiModel("专业创建参数")
|
||||
public class MajorCreateValidate implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "专业代码")
|
||||
@NotNull(message = "专业代码不为空")
|
||||
private String majorCode;
|
||||
|
||||
@NotNull(message = "专业名称不为空")
|
||||
@ApiModelProperty(value = "专业名称")
|
||||
private String majorName;
|
||||
|
||||
@ApiModelProperty(value = "专业英文名")
|
||||
private String majorEnglishName;
|
||||
|
||||
@NotNull(message = "所属学院不为空")
|
||||
@ApiModelProperty(value = "所属学院ID")
|
||||
private Integer collegeId;
|
||||
|
||||
@NotNull(message = "专业类型不为空")
|
||||
@ApiModelProperty(value = "专业类型: [1=本科, 2=硕士, 3=博士, 4=专科]")
|
||||
private Integer majorType;
|
||||
|
||||
@ApiModelProperty(value = "学科门类")
|
||||
private String disciplineCategory;
|
||||
|
||||
@NotNull(message = "学年制不为空")
|
||||
@ApiModelProperty(value = "学制(年)")
|
||||
private Integer studyDuration;
|
||||
|
||||
@ApiModelProperty(value = "专业简介")
|
||||
private String majorDescription;
|
||||
|
||||
@ApiModelProperty(value = "毕业要求学分")
|
||||
private BigDecimal creditRequirement;
|
||||
|
||||
@ApiModelProperty(value = "开设年份")
|
||||
private Long establishedYear;
|
||||
|
||||
@ApiModelProperty(value = "专业负责人用户ID")
|
||||
private Integer directorId;
|
||||
|
||||
@ApiModelProperty(value = "专业联系电话")
|
||||
private String contactPhone;
|
||||
|
||||
@ApiModelProperty(value = "招生状态: [1=正常招生, 2=暂停招生, 3=停止招生]")
|
||||
private Integer enrollmentStatus;
|
||||
|
||||
@ApiModelProperty(value = "专业状态: [1=正常, 2=停用]")
|
||||
private Integer majorStatus;
|
||||
|
||||
@ApiModelProperty(value = "排序")
|
||||
private Integer sortOrder;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
package com.mdd.front.validate.major;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@ApiModel("专业搜素参数")
|
||||
public class MajorSearchValidate implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "专业代码")
|
||||
private String majorCode;
|
||||
|
||||
@ApiModelProperty(value = "专业名称")
|
||||
private String majorName;
|
||||
|
||||
@ApiModelProperty(value = "所属学院ID")
|
||||
private Integer collegeId;
|
||||
|
||||
@ApiModelProperty(value = "专业类型: [1=本科, 2=硕士, 3=博士, 4=专科]")
|
||||
private Integer majorType;
|
||||
|
||||
@ApiModelProperty(value = "学科门类")
|
||||
private String disciplineCategory;
|
||||
|
||||
@ApiModelProperty(value = "专业负责人用户ID")
|
||||
private Integer directorId;
|
||||
|
||||
@ApiModelProperty(value = "专业状态: [1=正常, 2=停用]")
|
||||
private Integer majorStatus;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
package com.mdd.front.validate.major;
|
||||
|
||||
import com.mdd.common.validator.annotation.IDMust;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 专业参数
|
||||
* @author LikeAdmin
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("专业更新参数")
|
||||
public class MajorUpdateValidate implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@IDMust(message = "id参数必传且需大于0")
|
||||
@ApiModelProperty(value = "主键")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "专业代码")
|
||||
private String majorCode;
|
||||
|
||||
@ApiModelProperty(value = "专业名称")
|
||||
private String majorName;
|
||||
|
||||
@ApiModelProperty(value = "专业英文名")
|
||||
private String majorEnglishName;
|
||||
|
||||
@ApiModelProperty(value = "所属学院ID")
|
||||
private Integer collegeId;
|
||||
|
||||
@ApiModelProperty(value = "专业类型: [1=本科, 2=硕士, 3=博士, 4=专科]")
|
||||
private Integer majorType;
|
||||
|
||||
@ApiModelProperty(value = "学科门类")
|
||||
private String disciplineCategory;
|
||||
|
||||
@ApiModelProperty(value = "学制(年)")
|
||||
private Integer studyDuration;
|
||||
|
||||
@ApiModelProperty(value = "专业简介")
|
||||
private String majorDescription;
|
||||
|
||||
@ApiModelProperty(value = "毕业要求学分")
|
||||
private BigDecimal creditRequirement;
|
||||
|
||||
@ApiModelProperty(value = "开设年份")
|
||||
private Long establishedYear;
|
||||
|
||||
@ApiModelProperty(value = "专业负责人用户ID")
|
||||
private Integer directorId;
|
||||
|
||||
@ApiModelProperty(value = "专业联系电话")
|
||||
private String contactPhone;
|
||||
|
||||
@ApiModelProperty(value = "招生状态: [1=正常招生, 2=暂停招生, 3=停止招生]")
|
||||
private Integer enrollmentStatus;
|
||||
|
||||
@ApiModelProperty(value = "专业状态: [1=正常, 2=停用]")
|
||||
private Integer majorStatus;
|
||||
|
||||
@ApiModelProperty(value = "排序")
|
||||
private Integer sortOrder;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
package com.mdd.front.vo.major;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@ApiModel("专业详情Vo")
|
||||
public class MajorDetailVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "主键")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "所属学院")
|
||||
private String collegeName;
|
||||
|
||||
@ApiModelProperty(value = "专业代码")
|
||||
private String majorCode;
|
||||
|
||||
@ApiModelProperty(value = "专业名称")
|
||||
private String majorName;
|
||||
|
||||
@ApiModelProperty(value = "专业英文名")
|
||||
private String majorEnglishName;
|
||||
|
||||
@ApiModelProperty(value = "所属学院ID")
|
||||
private Integer collegeId;
|
||||
|
||||
@ApiModelProperty(value = "专业类型: [1=本科, 2=硕士, 3=博士, 4=专科]")
|
||||
private Integer majorType;
|
||||
|
||||
@ApiModelProperty(value = "学科门类")
|
||||
private String disciplineCategory;
|
||||
|
||||
@ApiModelProperty(value = "学制(年)")
|
||||
private Integer studyDuration;
|
||||
|
||||
@ApiModelProperty(value = "专业简介")
|
||||
private String majorDescription;
|
||||
|
||||
@ApiModelProperty(value = "毕业要求学分")
|
||||
private BigDecimal creditRequirement;
|
||||
|
||||
@ApiModelProperty(value = "开设年份")
|
||||
private Long establishedYear;
|
||||
|
||||
@ApiModelProperty(value = "专业负责人用户ID")
|
||||
private Integer directorId;
|
||||
|
||||
@ApiModelProperty(value = "专业联系电话")
|
||||
private String contactPhone;
|
||||
|
||||
@ApiModelProperty(value = "招生状态: [1=正常招生, 2=暂停招生, 3=停止招生]")
|
||||
private Integer enrollmentStatus;
|
||||
|
||||
@ApiModelProperty(value = "专业状态: [1=正常, 2=停用]")
|
||||
private Integer majorStatus;
|
||||
|
||||
@ApiModelProperty(value = "排序")
|
||||
private Integer sortOrder;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
package com.mdd.front.vo.major;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@ApiModel("专业列表Vo")
|
||||
public class MajorListedVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "主键")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "所属学院")
|
||||
private String collegeName;
|
||||
|
||||
@ApiModelProperty(value = "专业代码")
|
||||
private String majorCode;
|
||||
|
||||
@ApiModelProperty(value = "专业名称")
|
||||
private String majorName;
|
||||
|
||||
@ApiModelProperty(value = "专业英文名")
|
||||
private String majorEnglishName;
|
||||
|
||||
@ApiModelProperty(value = "专业类型: [1=本科, 2=硕士, 3=博士, 4=专科]")
|
||||
private Integer majorType;
|
||||
|
||||
@ApiModelProperty(value = "学科门类")
|
||||
private String disciplineCategory;
|
||||
|
||||
@ApiModelProperty(value = "学制(年)")
|
||||
private Integer studyDuration;
|
||||
|
||||
@ApiModelProperty(value = "专业简介")
|
||||
private String majorDescription;
|
||||
|
||||
@ApiModelProperty(value = "毕业要求学分")
|
||||
private BigDecimal creditRequirement;
|
||||
|
||||
@ApiModelProperty(value = "开设年份")
|
||||
private Long establishedYear;
|
||||
|
||||
@ApiModelProperty(value = "在校学生数")
|
||||
private Integer studentCount;
|
||||
|
||||
@ApiModelProperty(value = "专业负责人用户ID")
|
||||
private Integer directorId;
|
||||
|
||||
@ApiModelProperty(value = "专业联系电话")
|
||||
private String contactPhone;
|
||||
|
||||
@ApiModelProperty(value = "招生状态: [1=正常招生, 2=暂停招生, 3=停止招生]")
|
||||
private Integer enrollmentStatus;
|
||||
|
||||
@ApiModelProperty(value = "专业状态: [1=正常, 2=停用]")
|
||||
private Integer majorStatus;
|
||||
|
||||
@ApiModelProperty(value = "排序")
|
||||
private Integer sortOrder;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private String createTime;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private String updateTime;
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue