Commit ca20ab15 authored by licc's avatar licc

新增方案查询接口

parent e0011ba5
package cn.wisenergy.mapper;
import cn.wisenergy.model.app.SchemeInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
public interface SchemeMapper extends BaseMapper<SchemeInfo> {
SchemeInfo add(SchemeInfo schemeInfo);
List<SchemeInfo> getList(Map<String,Object> map);
}
......@@ -4,6 +4,8 @@ import cn.wisenergy.model.app.UserVolunteer;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserVolunteerMapper extends BaseMapper<UserVolunteer> {
UserVolunteer add(UserVolunteer userVolunteer);
......@@ -11,4 +13,6 @@ public interface UserVolunteerMapper extends BaseMapper<UserVolunteer> {
int edit(UserVolunteer userVolunteer);
int delById(@Param("id") Integer id);
int creates(List<UserVolunteer> t);
}
......@@ -3,9 +3,12 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.Volunteer;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
public interface VolunteerMapper extends BaseMapper<Volunteer> {
Volunteer add(Volunteer volunteer);
List<Volunteer> getList(Map<String,Object> map);
}
......@@ -54,7 +54,7 @@
<where>
user_name = #{userName}
and
is_delete=0;
is_delete=0
</where>
</select>
......
......@@ -4,6 +4,7 @@
<mapper namespace="cn.wisenergy.mapper.ProfessionMapper">
<resultMap id="userMap" type="cn.wisenergy.model.app.Profession">
<id column="id" property="id"/>
<id column="type" property="type"/>
<result column="parent_id" property="parentId"/>
<result column="level" property="level"/>
<result column="name" property="name"/>
......@@ -21,14 +22,15 @@
</sql>
<sql id="cols_exclude_id">
parent_id,level, name,create_time,update_time
type,parent_id,level, name,create_time,update_time
</sql>
<sql id="vals">
#{parentId},#{level},#{name},now(),now()
#{type},#{parentId},#{level},#{name},now(),now()
</sql>
<sql id="updateCondition">
<if test="type != null">type = #{type},</if>
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="level != null">level =#{level},</if>
<if test="name != null">name =#{name},</if>
......@@ -37,6 +39,7 @@
<sql id="criteria">
<if test="id != null">id = #{id}</if>
<if test="type != null">and type = #{type}</if>
<if test="parentId != null">and parent_id = #{parentId}</if>
<if test="level != null">and level =#{level}</if>
<if test="name != null">and name =#{name}</if>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wisenergy.mapper.SchemeMapper">
<resultMap id="userMap" type="cn.wisenergy.model.app.SchemeInfo">
<id column="id" property="id"/>
<result column="scheme_name" property="schemeName"/>
<result column="upload_time" property="uploadTime"/>
<result column="type" property="type"/>
<result column="is_delete" property="isDelete"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<sql id="table">
scheme_query_record
</sql>
<sql id="cols_all">
id,
<include refid="cols_exclude_id"/>
</sql>
<sql id="cols_exclude_id">
scheme_name,upload_time, type,is_delete,create_time,update_time
</sql>
<sql id="vals">
#{schemeName},#{uploadTime},#{type},#{isDelete},now(),now()
</sql>
<sql id="updateCondition">
<if test="schemeName != null">scheme_name = #{schemeName},</if>
<if test="uploadTime != null">upload_time =#{uploadTime},</if>
<if test="type != null">type =#{type},</if>
<if test="isDelete != null">is_delete =#{isDelete},</if>
update_time =now()
</sql>
<sql id="criteria">
<if test="id != null">id = #{id}</if>
<if test="schemeName != null">and scheme_name = #{schemeName}</if>
<if test="uploadTime != null">and upload_time =#{uploadTime}</if>
<if test="type != null">and type =#{type}</if>
<if test="isDelete != null">and is_delete =#{isDelete}</if>
<if test="createTime != null">and create_time &gt;= #{createTime}</if>
<if test="updateTime != null">and #{updateTime} &gt;= update_time</if>
</sql>
<insert id="add" parameterType="cn.wisenergy.model.app.SchemeInfo" keyProperty="id" useGeneratedKeys="true">
insert into
<include refid="table"/>
(<include refid="cols_exclude_id"/>)
value(
<include refid="vals"/>
)
</insert>
<select id="getList" parameterType="map" resultType="cn.wisenergy.model.app.SchemeInfo">
select
<include refid="cols_all"/>
from
<include refid="table"/>
<where>
is_delete=0
<if test=" userId != null">
user_id=#{userId}
</if>
limit #{startNum},#{endNum}
order by create_time desc
</where>
</select>
</mapper>
......@@ -22,6 +22,10 @@
scheme_record_id,user_id, volunteer_id
</sql>
<sql id="createsVal">
#{i.scheme_record_id},#{i.user_id},#{i.volunteer_id},now(), now()
</sql>
<sql id="vals">
#{schemeRecordId},#{userId},#{volunteerId}
</sql>
......@@ -48,6 +52,17 @@
)
</insert>
<!-- 批量创建接口 -->
<insert id="creates" parameterType="list">
INSERT INTO
<include refid="table"/>
(<include refid="cols_exclude_id"/>)
VALUES
<foreach collection="list" item="i" index="index" separator=",">
(<include refid="createsVal"/>)
</foreach>
</insert>
<update id="edit" parameterType="cn.wisenergy.model.app.UserVolunteer">
UPDATE
<include refid="table"/>
......
......@@ -76,4 +76,8 @@
)
</insert>
<select id="getList" resultType="cn.wisenergy.model.app.Volunteer">
</select>
</mapper>
......@@ -9,10 +9,10 @@ import java.util.Date;
import java.util.List;
/**
*@ Description: 专业实体类
*@ Author : 86187
*@ Date : 2021/1/13 10:37
*/
* @ Description: 专业实体类
* @ Author : 86187
* @ Date : 2021/1/13 10:37
*/
@Data
@ApiModel(value = "profession")
public class Profession implements Serializable {
......@@ -21,42 +21,49 @@ public class Profession implements Serializable {
/**
* 专业id
*/
@ApiModelProperty(value = "专业id",name = "id")
@ApiModelProperty(value = "专业id", name = "id")
private Integer id;
/**
* 方案类型:1:本科文化一批 2:本科美术一批 3:艺术本科批文学编导 4:本科体育 5:专科专业分类6:专科美术一批 7:专科文学编导一批 8:专科体育一批
*/
@ApiModelProperty(value = "方案类型:1:本科文化一批 2:本科美术一批 3:艺术本科批文学编导 4:本科体育 5:专科专业分类6:" +
"专科美术一批 7:专科文学编导一批 8:专科体育一批", name = "type")
private Integer type;
/**
* 父id
*/
@ApiModelProperty(value = "专业id",name = "id")
@ApiModelProperty(value = "专业id", name = "id")
private Integer parentId;
/**
* 等级
*/
@ApiModelProperty(value = "等级",name = "level")
@ApiModelProperty(value = "等级", name = "level")
private Integer level;
/**
* 专业名称
*/
@ApiModelProperty(value = "专业名称",name = "name")
@ApiModelProperty(value = "专业名称", name = "name")
private String name;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间",name = "createTime")
@ApiModelProperty(value = "创建时间", name = "createTime")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间",name = "updateTime")
@ApiModelProperty(value = "更新时间", name = "updateTime")
private Date updateTime;
/**
* 子专业
*/
@ApiModelProperty(value = "子专业",name = "updateTime")
@ApiModelProperty(value = "子专业", name = "updateTime")
private List<Profession> children;
}
package cn.wisenergy.model.app;
import cn.wisenergy.model.common.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@ApiModel(value = "SchemeInnfo")
public class SchemeInfo extends BaseEntity implements Serializable {
private static final long serialVersionUID = 7020644673356401949L;
/**
* 方案id
*/
@ApiModelProperty(value = "方案id", name = "id")
private Integer id;
/**
* 方案名称
*/
@ApiModelProperty(value = "方案名称", name = "schemeName")
private String schemeName;
/**
* 上传时间
*/
@ApiModelProperty(value = "上传时间", name = "uploadTime")
private Date uploadTime;
/**
* 1:本科文化一批 2:本科美术一批 3:艺术本科批文学编导
* 4:本科体育 5:专科专业分类6:专科美术一批 7:专科文学编导一批 8:专科体育一批
*/
@ApiModelProperty(value = "1:本科文化一批 2:本科美术一批 3:文学编导本科一批 4:本科体育 " +
"5:专科专业分类6:专科美术一批 7:专科文学编导一批 8:专科体育一批", name = "type")
private Integer type;
}
......@@ -29,6 +29,6 @@ public class UserVolunteer {
* 志愿id
*/
@ApiModelProperty(value = "志愿id",name = "volunteerId")
private Integer volunteerId ;
private Integer volunteerId;
}
package cn.wisenergy.model.enums;
/**
*@ Description: 方案类型枚举
*@ Author : 86187
*@ Date : 2021/1/13 14:19
* @author 86187
*/
public enum SchemeTypeEnums {
/**
* 方案类型枚举
*/
UNDERGRADUATE_CULTURE(1,"本科文化一批"),
UNDERGRADUATE_ARTS(2,"本科美术一批"),
UNDERGRADUATE_LITERATURE(3,"文学编导本科一批"),
UNDERGRADUATE_SPORTS(4,"本科体育"),
JUNIOR_COLLEGE_MAJOR(5,"专科专业"),
JUNIOR_COLLEGE_ARTS(6,"专科美术一批"),
JUNIOR_COLLEGE_LITERATURE(7,"文学编导专科一批"),
JUNIOR_COLLEGE_SPORTS(8,"专科体育");
private Integer code;
private String desc;
SchemeTypeEnums(Integer code,String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
package cn.wisenergy.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
*@ Description: 方案查询Vo
*@ Author : 86187
*@ Date : 2021/1/13 14:53
*/
@Data
@ApiModel(value = "SchemeQueryVo")
public class SchemeQueryVo implements Serializable {
private static final long serialVersionUID = 717382532110305837L;
/**
* 用户id
*/
@ApiModelProperty(value = "文化成绩",name = "userId")
private Integer userId;
/**
* 专业ids
*/
@ApiModelProperty(value = "专业ids,如'1,2,3,4,5,6...'",name = "professionIds")
private String professionIds;
/**
* 文化成绩
*/
@ApiModelProperty(value = "文化成绩",name = "cultureGrade")
private String cultureGrade;
/**
* 专业成绩
*/
@ApiModelProperty(value = "专业成绩",name = "majorGrade")
private String majorGrade;
}
package cn.wisenergy.model.vo;
import cn.wisenergy.model.app.Volunteer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
*@ Description: 方案查询志愿列表
*@ Author : 86187
*@ Date : 2021/1/13 14:57
*/
@Data
@ApiModel(value = "VolunteerVo")
public class VolunteerVo {
/**
* 用户id
*/
@ApiModelProperty(value = "用户id",name = "userId")
private Integer userId;
/**
* 志愿信息列表
*/
@ApiModelProperty(value = "志愿信息列表",name = "volunteers")
private List<Volunteer> volunteers;
}
package cn.wisenergy.service.app;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.vo.SchemeQueryVo;
import cn.wisenergy.model.vo.VolunteerVo;
import java.util.List;
/**
*@ Description: 方案接口定义
*@ Author : 86187
*@ Date : 2021/1/13 14:50
*/
public interface SchemeService {
/**
* 方案查询
* @param schemeQueryVo 查询参数
* @return 方案查询结果列表
*/
R<VolunteerVo> getList(SchemeQueryVo schemeQueryVo);
}
package cn.wisenergy.service.app.impl;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*;
import cn.wisenergy.model.vo.SchemeQueryVo;
import cn.wisenergy.model.vo.VolunteerVo;
import cn.wisenergy.service.app.SchemeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @ Description: 方案接口实现
* @ Author : 86187
* @ Date : 2021/1/13 15:04
* @author 86187
*/
@Service
@Slf4j
public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> implements SchemeService {
@Autowired
private UsersMapper usersMapper;
@Autowired
private ScoreInfoMapper scoreInfoMapper;
@Autowired
private VolunteerMapper volunteerMapper;
@Autowired
private SchemeRecordMapper schemeRecordMapper;
@Autowired
private UserVolunteerMapper userVolunteerMapper;
@Override
public R<VolunteerVo> getList(SchemeQueryVo queryVo) {
log.info("volunteer-service[]SchemeServiceImpl[]getList[]input.param.queryVo:" + queryVo);
if (null == queryVo || null == queryVo.getUserId()) {
return R.error("入参为空!");
}
//1、根据userId获取用户信息
UserInfo userInfo = usersMapper.selectById(queryVo.getUserId());
if (null == userInfo) {
return R.error("用户信息不存在!");
}
//2、根据筛选方案算法,筛选方案
Map<String, Object> map = new HashMap<>(16);
List<Volunteer> list = volunteerMapper.getList(map);
if (CollectionUtils.isEmpty(list)) {
return R.ok(new VolunteerVo());
}
//3、保存方案查询记录
SchemeQueryRecord schemeQueryRecord = new SchemeQueryRecord();
schemeQueryRecord.setMajorName("");
schemeQueryRecord.setStudentType(userInfo.getStudentType());
schemeQueryRecord.setUserId(userInfo.getId());
schemeQueryRecord.setIsDelete(0);
double score = Double.parseDouble(queryVo.getCultureGrade()) + Double.parseDouble(queryVo.getMajorGrade());
schemeQueryRecord.setScore(String.valueOf(score));
//保存用户方案记录、志愿之间的关联关系
List<Integer> ids = list.stream().map(Volunteer::getId).collect(Collectors.toList());
boolean bool = saveUserVolunteer(userInfo.getId(), ids, schemeQueryRecord);
if (!bool) {
return R.error("保存方案查询记录失败!");
}
VolunteerVo volunteerVo = new VolunteerVo();
volunteerVo.setUserId(userInfo.getId());
volunteerVo.setVolunteers(list);
return R.ok(volunteerVo);
}
/**
* 保存方案查询记录和关联关系
*
* @param userId 用户id
* @param ids 志愿ids
* @param schemeQueryRecord 方案记录
* @return true 成功 false 失败
*/
@Transactional()
public boolean saveUserVolunteer(Integer userId, List<Integer> ids, SchemeQueryRecord schemeQueryRecord) {
//保存方案查询记录
SchemeQueryRecord count = schemeRecordMapper.add(schemeQueryRecord);
if (null == count) {
return false;
}
List<UserVolunteer> volunteerList = new ArrayList<>();
for (Integer id : ids) {
UserVolunteer userVolunteer = new UserVolunteer();
userVolunteer.setSchemeRecordId(count.getId());
userVolunteer.setUserId(userId);
userVolunteer.setVolunteerId(id);
volunteerList.add(userVolunteer);
}
int save = userVolunteerMapper.creates(volunteerList);
if (volunteerList.size() != save) {
return false;
}
return true;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment