From dc4f87f63d40caa3bbf6b2190f8040e19810177e Mon Sep 17 00:00:00 2001 From: xbx <1827135378@qq.com> Date: Wed, 3 Apr 2024 14:31:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E4=B8=93=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/controller/CenterController.java | 13 +-- .../jeecg/modules/service/ICet_4Service.java | 4 +- .../service/impl/Cet_4ServiceImpl.java | 108 ++++++++++++------ 3 files changed, 79 insertions(+), 46 deletions(-) diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CenterController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CenterController.java index 3861cd66..a3e41fa2 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CenterController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/controller/CenterController.java @@ -69,12 +69,10 @@ public class CenterController { } @GetMapping("/getRateByBatch") - public Result getRateByBatch(@RequestParam("batch") String batch, @RequestParam("level") String level) { + public Result getRateByBatch(@RequestParam("college") String college, @RequestParam("batch") String batch, @RequestParam("level") String level) { //四六级分开查询 - if (level.equals("cet4")) { - - return cet4Service.getRateByBatch(batch); + return cet4Service.getRateByBatch(college,batch); } else if (level.equals("cet6")) { Cet_6 cet = new Cet_6(); // cet.setBatch(date); @@ -86,11 +84,10 @@ public class CenterController { //根据batch/college是否为空判断两种查询方式 @GetMapping("/getRateByCollege") - public Result getRateByCollege(@RequestParam("college") String college, @RequestParam("level") String level) { - System.out.println(college + " " + level); + public Result getRateByCollege(@RequestParam("college") String college,@RequestParam("major") String major, @RequestParam("level") String level) { +// System.out.println(college + " " + level); if (level.equals("cet4")) { - - return cet4Service.getRateByCollege(college); + return cet4Service.getRateByCollege(college,major); } else if (level.equals("cet6")) { Cet_6 cet = new Cet_6(); cet.setCollege(college); diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet_4Service.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet_4Service.java index 5d6e26ce..e0e74081 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet_4Service.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICet_4Service.java @@ -13,7 +13,7 @@ import com.baomidou.mybatisplus.extension.service.IService; * @Version: V1.0 */ public interface ICet_4Service extends IService { - Result getRateByCollege(String college); - Result getRateByBatch(String batchStr); + Result getRateByCollege(String college,String major); + Result getRateByBatch(String college, String batchStr); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java index 00e25c34..7460bba0 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java @@ -4,8 +4,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.checkerframework.checker.units.qual.A; import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.Cet4_major; import org.jeecg.modules.entity.Cet_4; +import org.jeecg.modules.mapper.Cet4_majorMapper; import org.jeecg.modules.mapper.Cet_4Mapper; import org.jeecg.modules.service.ICet_4Service; import org.springframework.beans.factory.annotation.Autowired; @@ -29,68 +32,97 @@ import java.util.stream.Collectors; public class Cet_4ServiceImpl extends ServiceImpl implements ICet_4Service { @Autowired Cet_4Mapper cet4Mapper; + @Autowired + Cet4_majorMapper cet4_MajorMapper; - public Result getRateByCollege(String college) { + public Result getRateByCollege(String college, String major) { + System.out.println(college + " " + major); JSONObject jsonObject = new JSONObject(new LinkedHashMap<>()); //select count(*) from cet_4 where college ='?' and result>=425 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); //构造查询条件 - - //根据学院查人数 + //根据学院查人数 + if (major.equals("")) { queryWrapper.eq(Cet_4::getCollege, college).ge(Cet_4::getResult, 425); - List result = cet4Mapper.selectList(queryWrapper); -// System.out.println(result); - Map> collect = result.stream().collect(Collectors.groupingBy(Cet_4::getBatch)); - for (Map.Entry> entry : collect.entrySet()) { - double sum = (double) getNum(college, entry.getKey()); - double size = entry.getValue().size(); - double passRate = size / sum; - DecimalFormat decimalFormat = new DecimalFormat("#.####"); - String rate = decimalFormat.format(passRate); - double res = Double.parseDouble(rate); -// System.out.println(res); - Date key = entry.getKey(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String format = sdf.format(key); - jsonObject.put(format, res); + } else { + queryWrapper.eq(Cet_4::getCollege, college).eq(Cet_4::getMajorname, major).ge(Cet_4::getResult, 425); + } + List result = cet4Mapper.selectList(queryWrapper); + Map> collect = result.stream().collect(Collectors.groupingBy(Cet_4::getBatch)); + for (Map.Entry> entry : collect.entrySet()) { + double sum; + if (major.equals("")) { + sum = (double) getNumCollege(college, entry.getKey()); + } else { + sum = (double) getNumMajor(major, entry.getKey()); } + double size = entry.getValue().size(); + double passRate = size / sum; + DecimalFormat decimalFormat = new DecimalFormat("#.####"); + String rate = decimalFormat.format(passRate); + double res = Double.parseDouble(rate); + Date key = entry.getKey(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String format = sdf.format(key); + jsonObject.put(format, res); + } - return Result.OK(jsonObject); + return Result.OK(jsonObject); } - public Result getRateByBatch(String batchStr){ - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + + public Result getRateByBatch(String college, String batchStr) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date batch; try { - batch= dateFormat.parse(batchStr); + 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 queryWrapper = new LambdaQueryWrapper<>(); //构造查询条件 - + Map> collect = new HashMap<>(); //根据批次查人数 - queryWrapper.eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425); - List result = cet4Mapper.selectList(queryWrapper); + if (college.equals("全校")) { + queryWrapper.eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425); + List result = cet4Mapper.selectList(queryWrapper); + collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege)); + } else { + queryWrapper.eq(Cet_4::getCollege, college).eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425); + List result = cet4Mapper.selectList(queryWrapper); + collect = result.stream().collect(Collectors.groupingBy(Cet_4::getMajorname)); + } +// System.out.println(collect); +// List result = cet4Mapper.selectList(queryWrapper); //通过批次 - Map> collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege)); +// Map> collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege)); for (Map.Entry> entry : collect.entrySet()) { - double sum = (double) getNum(entry.getKey(),batch); - + double sum; + if (college.equals("全校")) { + sum = (double) getNumCollege(entry.getKey(), batch); + } else { + //查某个学院的所有专业 + LambdaQueryWrapper cet4MajorQW = new LambdaQueryWrapper<>(); + cet4MajorQW.select(Cet4_major::getMajorname).eq(Cet4_major::getCollege, college).groupBy(Cet4_major::getMajorname); + //若为转专业的则剔除 + List majorList = cet4_MajorMapper.selectObjs(cet4MajorQW); + System.out.println(majorList); + if (majorList.contains(entry.getKey())) { + sum = (double) getNumMajor(entry.getKey(), batch); + } else { + continue; + } + } 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的值进行排序 List> list = new ArrayList<>(jsonObject.entrySet()); @@ -101,18 +133,22 @@ public class Cet_4ServiceImpl extends ServiceImpl implements jsonObject.put(stringObjectEntry.getKey(), stringObjectEntry.getValue()); } - -// System.out.println(jsonObject); return Result.OK(jsonObject); } - private long getNum(String college, Date batch) { + private long getNumCollege(String college, Date batch) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Cet_4::getCollege, college).eq(Cet_4::getBatch, batch); return cet4Mapper.selectCount(queryWrapper); } + private long getNumMajor(String major, Date batch) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Cet_4::getMajorname, major).eq(Cet_4::getBatch, batch); + return cet4Mapper.selectCount(queryWrapper); + } + // private long getNumByBatch(String college,Date batch) { // LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); // queryWrapper.eq(Cet_4::getBatch,batch).eq(Cet_4::getCollege, college);