Commit f2f804e3 authored by licc's avatar licc

方案接口实现2

parent 9babf1bc
......@@ -7,11 +7,14 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author 86187
*/
public interface VolunteerMapper extends BaseMapper<Volunteer> {
Volunteer add(Volunteer volunteer);
List<Volunteer> getList(Map<String,Object> map);
List<Volunteer> getFillList(Map<String,Object> map);
List<Volunteer> getListByIds(@Param("list") List<Integer> ids);
......
......@@ -100,8 +100,28 @@
</where>
</update>
<select id="getList" resultType="cn.wisenergy.model.app.Volunteer">
<select id="getFillList" resultType="cn.wisenergy.model.app.Volunteer">
select
<include refid="cols_all"/>
from
<include refid="table"/>
<where>
is_delete =0
<if test="upGrade != null">
and #{upGrade} > lowest_mark
</if>
<if test="downGrade != null">
and lowest_mark >#{downGrade}
</if>
<if test="volunteerIds != null and volunteerIds.size() >0">
and id IN
<foreach collection="list" index="index" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</if>
limit #{number}
order by lowest_mark desc
</where>
</select>
<select id="getListByIds" resultType="cn.wisenergy.model.app.Volunteer">
......@@ -143,6 +163,7 @@
</foreach>
</if>
limit #{number}
order by lowest_mark desc
</where>
</select>
......
......@@ -83,5 +83,5 @@ public class AdmissionRule extends BaseEntity implements Serializable {
* 展示志愿总数
*/
@ApiModelProperty(value = "展示志愿总数", name = "number")
private Double number;
private Integer number;
}
......@@ -332,10 +332,12 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
downGrade = cultureMin;
map.put("downGrade", downGrade);
list = volunteerMapper.getVolunteerList(map);
//如果数据不满足最大数量,取不限专业重最低分补充
if (list.size() < firstRule.getNumber()) {
List<Integer> volunteerIds = list.stream().map(Volunteer::getId).collect(Collectors.toList());
int total = firstRule.getNumber() - list.size();
List<Volunteer> fillList = fillUpVolunteer(volunteerIds, total, upGrade, downGrade);
list.addAll(fillList);
}
} else {
downGrade = firstCulture - firstRule.getDownMark();
......@@ -362,7 +364,10 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//如果数据不满足最大数量,取不限专业最低分补充
if (list.size() < firstRule.getNumber()) {
List<Integer> volunteerIds = list.stream().map(Volunteer::getId).collect(Collectors.toList());
int total = firstRule.getNumber() - list.size();
List<Volunteer> fillList = fillUpVolunteer(volunteerIds, total, upGrade, downGrade);
list.addAll(fillList);
}
} else {
downGrade = secondCulture - secondRule.getDownMark();
......@@ -568,4 +573,22 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
List<Integer> professionIds = StringUtil.strToArray(schemeQueryVo.getProfessionIds());
return professionMapper.getNameByIds(professionIds);
}
/**
* 补充不足数量的志愿数
*
* @param ids 已有志愿ids
* @param number 差的数量
* @param max 最高分
* @param min 最低分
* @return 集合
*/
private List<Volunteer> fillUpVolunteer(List<Integer> ids, Integer number, double max, double min) {
Map<String, Object> map = new HashMap<>(16);
map.put("volunteerIds", ids);
map.put("number", number);
map.put("upGrade", max);
map.put("downGrade", min);
return volunteerMapper.getFillList(map);
}
}
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