forked from Big-Data-Lab/CET-cmd-2.0
修改查询接口
This commit is contained in:
parent
d6432f6efc
commit
2275a2a065
|
@ -42,6 +42,7 @@ public class CenterController {
|
||||||
public Result<JSONObject> getCollege() {
|
public Result<JSONObject> getCollege() {
|
||||||
return Result.ok(centerService.getCollege());
|
return Result.ok(centerService.getCollege());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取学院专业级联数据
|
* 获取学院专业级联数据
|
||||||
*/
|
*/
|
||||||
|
@ -49,6 +50,7 @@ public class CenterController {
|
||||||
public Result<JSONObject> getCollegeMajor() {
|
public Result<JSONObject> getCollegeMajor() {
|
||||||
return centerService.getCollegeMajor();
|
return centerService.getCollegeMajor();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计四级表和六级表中存在的批次
|
* 统计四级表和六级表中存在的批次
|
||||||
*/
|
*/
|
||||||
|
@ -62,27 +64,20 @@ public class CenterController {
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/getData")
|
@GetMapping(value = "/getData")
|
||||||
// @Cacheable(value = "getData", key = "'getData'+#college+#grade")
|
// @Cacheable(value = "getData", key = "'getData'+#college+#grade")
|
||||||
public Result<JSONObject> getData(@RequestParam("college") String college, @RequestParam("major") String major,@RequestParam("entrydate") String entrydate) {
|
public Result<JSONObject> getData(@RequestParam("college") String college, @RequestParam("major") String major, @RequestParam("entrydate") String entrydate) {
|
||||||
return centerService.getData(college,major,entrydate);
|
return centerService.getData(college, major, entrydate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/getRateByBatch")
|
@GetMapping("/getRateByBatch")
|
||||||
public Result<JSONObject> getRateByBatch(@RequestParam("batch") String batch, @RequestParam("level") String level) {
|
public Result<JSONObject> getRateByBatch(@RequestParam("batch") String batch, @RequestParam("level") String level) {
|
||||||
//四六级分开查询
|
//四六级分开查询
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
||||||
Date date;
|
|
||||||
try {
|
|
||||||
date= dateFormat.parse(batch);
|
|
||||||
} catch (ParseException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
if (level.equals("cet4")) {
|
if (level.equals("cet4")) {
|
||||||
Cet_4 cet = new Cet_4();
|
|
||||||
cet.setBatch(date);
|
return cet4Service.getRateByBatch(batch);
|
||||||
return cet4Service.getRate(cet);
|
|
||||||
} else if (level.equals("cet6")) {
|
} else if (level.equals("cet6")) {
|
||||||
Cet_6 cet = new Cet_6();
|
Cet_6 cet = new Cet_6();
|
||||||
cet.setBatch(date);
|
// cet.setBatch(date);
|
||||||
return cet6Service.getRate(cet);
|
return cet6Service.getRate(cet);
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
|
@ -94,9 +89,8 @@ public class CenterController {
|
||||||
public Result<JSONObject> getRateByCollege(@RequestParam("college") String college, @RequestParam("level") String level) {
|
public Result<JSONObject> getRateByCollege(@RequestParam("college") String college, @RequestParam("level") String level) {
|
||||||
System.out.println(college + " " + level);
|
System.out.println(college + " " + level);
|
||||||
if (level.equals("cet4")) {
|
if (level.equals("cet4")) {
|
||||||
Cet_4 cet = new Cet_4();
|
|
||||||
cet.setCollege(college);
|
return cet4Service.getRateByCollege(college);
|
||||||
return cet4Service.getRate(cet);
|
|
||||||
} else if (level.equals("cet6")) {
|
} else if (level.equals("cet6")) {
|
||||||
Cet_6 cet = new Cet_6();
|
Cet_6 cet = new Cet_6();
|
||||||
cet.setCollege(college);
|
cet.setCollege(college);
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
package org.jeecg.modules.service;
|
package org.jeecg.modules.service;
|
||||||
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.jeecg.modules.entity.Cet_4;
|
import org.jeecg.modules.entity.Cet_4;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.jeecg.modules.entity.Cet_6;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: cet_4
|
* @Description: cet_4
|
||||||
|
@ -17,6 +13,7 @@ import java.util.Date;
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
public interface ICet_4Service extends IService<Cet_4> {
|
public interface ICet_4Service extends IService<Cet_4> {
|
||||||
Result<JSONObject> getRate(Cet_4 cet);
|
Result<JSONObject> getRateByCollege(String college);
|
||||||
|
Result<JSONObject> getRateByBatch(String batchStr);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -29,25 +30,25 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
@Autowired
|
@Autowired
|
||||||
Cet_4Mapper cet4Mapper;
|
Cet_4Mapper cet4Mapper;
|
||||||
|
|
||||||
public Result<JSONObject> getRate(Cet_4 cet) {
|
public Result<JSONObject> getRateByCollege(String college) {
|
||||||
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
||||||
//select count(*) from cet_4 where college ='?' and result>=425
|
//select count(*) from cet_4 where college ='?' and result>=425
|
||||||
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
//构造查询条件
|
//构造查询条件
|
||||||
if (cet.getBatch() == null) {
|
|
||||||
//根据学院查人数
|
//根据学院查人数
|
||||||
queryWrapper.eq(Cet_4::getCollege, cet.getCollege()).ge(Cet_4::getResult, 425);
|
queryWrapper.eq(Cet_4::getCollege, college).ge(Cet_4::getResult, 425);
|
||||||
List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
||||||
// System.out.println(result);
|
// System.out.println(result);
|
||||||
Map<Date, List<Cet_4>> collect = result.stream().collect(Collectors.groupingBy(Cet_4::getBatch));
|
Map<Date, List<Cet_4>> collect = result.stream().collect(Collectors.groupingBy(Cet_4::getBatch));
|
||||||
for (Map.Entry<Date, List<Cet_4>> entry : collect.entrySet()) {
|
for (Map.Entry<Date, List<Cet_4>> entry : collect.entrySet()) {
|
||||||
double sum = (double) getNumByCollege(cet, entry.getKey());
|
double sum = (double) getNum(college, entry.getKey());
|
||||||
double size = entry.getValue().size();
|
double size = entry.getValue().size();
|
||||||
double passRate = size / sum;
|
double passRate = size / sum;
|
||||||
DecimalFormat decimalFormat = new DecimalFormat("#.####");
|
DecimalFormat decimalFormat = new DecimalFormat("#.####");
|
||||||
String rate = decimalFormat.format(passRate);
|
String rate = decimalFormat.format(passRate);
|
||||||
double res = Double.parseDouble(rate);
|
double res = Double.parseDouble(rate);
|
||||||
System.out.println(res);
|
// System.out.println(res);
|
||||||
Date key = entry.getKey();
|
Date key = entry.getKey();
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
String format = sdf.format(key);
|
String format = sdf.format(key);
|
||||||
|
@ -56,54 +57,66 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
|
|
||||||
return Result.OK(jsonObject);
|
return Result.OK(jsonObject);
|
||||||
|
|
||||||
} else if (cet.getCollege() == null) {
|
|
||||||
//根据批次查人数
|
|
||||||
queryWrapper.eq(Cet_4::getBatch, cet.getBatch()).ge(Cet_4::getResult, 425);
|
|
||||||
List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
|
||||||
//通过批次
|
|
||||||
Map<String, List<Cet_4>> collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege));
|
|
||||||
for (Map.Entry<String, List<Cet_4>> entry : collect.entrySet()) {
|
|
||||||
double sum = (double) getNumByBatch(cet, entry.getKey());
|
|
||||||
|
|
||||||
double size = entry.getValue().size();
|
}
|
||||||
|
public Result<JSONObject> getRateByBatch(String batchStr){
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
Date batch;
|
||||||
|
try {
|
||||||
|
batch= dateFormat.parse(batchStr);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
||||||
|
//select count(*) from cet_4 where batch ='?' and result>=425
|
||||||
|
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
//构造查询条件
|
||||||
|
|
||||||
double passRate = size / sum;
|
//根据批次查人数
|
||||||
// 定义格式化规则,保留四位小数
|
queryWrapper.eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425);
|
||||||
DecimalFormat decimalFormat = new DecimalFormat("#.####");
|
List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
||||||
String rate = decimalFormat.format(passRate);
|
//通过批次
|
||||||
double res = Double.parseDouble(rate);
|
Map<String, List<Cet_4>> collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege));
|
||||||
|
for (Map.Entry<String, List<Cet_4>> entry : collect.entrySet()) {
|
||||||
|
double sum = (double) getNum(entry.getKey(),batch);
|
||||||
|
|
||||||
jsonObject.put(String.valueOf(entry.getKey()), res);
|
double size = entry.getValue().size();
|
||||||
|
|
||||||
|
double passRate = size / sum;
|
||||||
|
// 定义格式化规则,保留四位小数
|
||||||
|
DecimalFormat decimalFormat = new DecimalFormat("#.####");
|
||||||
|
String rate = decimalFormat.format(passRate);
|
||||||
|
double res = Double.parseDouble(rate);
|
||||||
|
|
||||||
|
jsonObject.put(String.valueOf(entry.getKey()), res);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//对jsonObject的值进行排序
|
//对jsonObject的值进行排序
|
||||||
List<Map.Entry<String, Object>> list = new ArrayList<>(jsonObject.entrySet());
|
List<Map.Entry<String, Object>> list = new ArrayList<>(jsonObject.entrySet());
|
||||||
Collections.sort(list, (o1, o2) -> (double) o1.getValue() > (double) o2.getValue() ? -1 : 1);
|
Collections.sort(list, (o1, o2) -> (double) o1.getValue() > (double) o2.getValue() ? -1 : 1);
|
||||||
jsonObject.clear();
|
jsonObject.clear();
|
||||||
|
|
||||||
for (Map.Entry<String, Object> stringObjectEntry : list) {
|
for (Map.Entry<String, Object> stringObjectEntry : list) {
|
||||||
jsonObject.put(stringObjectEntry.getKey(), stringObjectEntry.getValue());
|
jsonObject.put(stringObjectEntry.getKey(), stringObjectEntry.getValue());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println(jsonObject);
|
// System.out.println(jsonObject);
|
||||||
return Result.OK(jsonObject);
|
return Result.OK(jsonObject);
|
||||||
} else return null;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private long getNum(String college, Date batch) {
|
||||||
private long getNumByCollege(Cet_4 cet, Date batch) {
|
|
||||||
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(Cet_4::getCollege, cet.getCollege()).eq(Cet_4::getBatch, batch);
|
queryWrapper.eq(Cet_4::getCollege, college).eq(Cet_4::getBatch, batch);
|
||||||
return cet4Mapper.selectCount(queryWrapper);
|
return cet4Mapper.selectCount(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
private long getNumByBatch(Cet_4 cet, String college) {
|
// private long getNumByBatch(String college,Date batch) {
|
||||||
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
// LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(Cet_4::getBatch, cet.getBatch()).eq(Cet_4::getCollege, college);
|
// queryWrapper.eq(Cet_4::getBatch,batch).eq(Cet_4::getCollege, college);
|
||||||
return cet4Mapper.selectCount(queryWrapper);
|
// return cet4Mapper.selectCount(queryWrapper);
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue