jinxia.mo 1 месяц назад
Родитель
Сommit
ffe6d037ec

+ 22 - 0
ie-admin/src/main/java/com/ruoyi/web/controller/front/FrontUniversitiesController.java

@@ -35,6 +35,8 @@ import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import static com.ruoyi.framework.datasource.DynamicDataSourceContextHolder.log;
+
 @RestController
 @Api(tags = "前端-三库-院校库")
 @RequestMapping("front/university")
@@ -303,20 +305,40 @@ public class FrontUniversitiesController extends BaseController {
     @GetMapping("getUniversityBaseInfo")
     @ApiOperation("112 院校基础信息")
     public AjaxResult getUniversityDetail(@ApiParam("学校code") @RequestParam String code) {
+//        long startTime = System.currentTimeMillis();
+//        long currentTime = startTime;
+
         commService.requireVip();
+//        log.info("Step 0 - 获取VIP完成, 耗时: {} ms", System.currentTimeMillis() - currentTime);
+
         SysUser sysUser = SecurityUtils.getLoginUser().getUser();
+//        log.info("Step 1 - 获取用户信息完成, 耗时: {} ms", System.currentTimeMillis() - currentTime);
+//        currentTime = System.currentTimeMillis();
+
         UniversityDetailDTO data = universitiesService.detail(code, voluntaryService.getPlanYear(sysUser));
+//        log.info("Step 2 - 获取院校详情完成, 耗时: {} ms", System.currentTimeMillis() - currentTime);
+//        currentTime = System.currentTimeMillis();
+
         if(StringUtils.isNotEmpty(data.getBaseInfo().getStar())){
             data.getBaseInfo().setStar(dictTypeService.getDictDataByType("university_stars",data.getBaseInfo().getStar()));
         }
+//        log.info("Step 3 - 处理院校星级完成, 耗时: {} ms", System.currentTimeMillis() - currentTime);
+//        currentTime = System.currentTimeMillis();
+
         Long universityId = data.getBaseInfo().getId();
         BCustomerUniversities cond = new BCustomerUniversities();
         cond.setUniversityId(universityId);
         cond.setCustomerCode(sysUser.getCode());
         cond.setStatus(1L);
         List<BCustomerUniversities> list = customerUniversitiesService.selectBCustomerUniversitiesList(cond);
+//        log.info("Step 4 - 查询收藏状态完成, 耗时: {} ms", System.currentTimeMillis() - currentTime);
+//        currentTime = System.currentTimeMillis();
+
         data.getBaseInfo().setCollected(CollectionUtils.isNotEmpty(list));
         this.saveUniversitiesClicks(code);
+//        log.info("Step 5 - 更新点击量和设置收藏状态完成, 耗时: {} ms", System.currentTimeMillis() - currentTime);
+
+//        log.info("总耗时: {} ms", System.currentTimeMillis() - startTime);
 
         return AjaxResult.success(data);
     }

+ 12 - 3
ie-system/src/main/java/com/ruoyi/sy/service/impl/SyMajorServiceImpl.java

@@ -10,11 +10,15 @@ import com.ruoyi.sy.domain.SyMajor;
 import com.ruoyi.sy.mapper.SyMajorMapper;
 import com.ruoyi.sy.service.ISyMajorService;
 import com.ruoyi.util.ConstantUtil;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 专业Service业务层处理
@@ -27,9 +31,8 @@ public class SyMajorServiceImpl implements ISyMajorService
 {
     @Autowired
     private SyMajorMapper syMajorMapper;
-    @Autowired
-    private IDzControlService dzControlService;
 
+    Map<String,List<SyMajor>> codeCountMap = new HashMap<>();
     /**
      * 查询专业
      *
@@ -50,7 +53,13 @@ public class SyMajorServiceImpl implements ISyMajorService
 
     @Override
     public List<SyMajor> selectSyMajorByLevel(String examType, Integer level) {
-        return syMajorMapper.selectSyMajorByLevel(examType, level);
+        String key = examType+level;
+        if (MapUtils.isNotEmpty(codeCountMap)&&codeCountMap.containsKey(key)) {
+            return codeCountMap.get(key);
+        }
+        List<SyMajor> ll = syMajorMapper.selectSyMajorByLevel(examType, level);
+        codeCountMap.put(key,ll);
+        return ll;
     }
 
     /**

+ 7 - 0
ie-system/src/main/java/com/ruoyi/syzy/service/impl/BBusiWishUniversitiesServiceImpl.java

@@ -163,9 +163,12 @@ public class BBusiWishUniversitiesServiceImpl implements IBBusiWishUniversitiesS
 
     @Override
     public UniversityDetailDTO detail(String code, Integer year) {
+        long startTime = System.currentTimeMillis();
+        long currentTime = startTime;
         UniversityDetailDTO data = new UniversityDetailDTO();
         //基础信息
         data.setBaseInfo(selectBBusiWishUniversitiesByCode(code));
+//        System.out.println("Step 1  - 获取基础信息完成, 耗时: {} ms" +( System.currentTimeMillis() - currentTime));
 
         //院校院系 b_busi_wish_universities_department;院校院系专业 b_busi_wish_universities_department_major
 //        List<BBusiWishUniversitiesDepartment>  departmentList=universitiesDepartmentMapper.selectBBusiWishUniversitiesDepartmentList(new BBusiWishUniversitiesDepartment().setCollegeCode(code));
@@ -183,6 +186,8 @@ public class BBusiWishUniversitiesServiceImpl implements IBBusiWishUniversitiesS
 
         /****/
         List<BBusiWishUniversitiesProfession> professionList = universitiesProfessionMapper.selectEnrollPlanProfessionByCode(cond);
+//        System.out.println("Step 2  - 获取专业列表完成, 耗时: {} ms" +( System.currentTimeMillis() - currentTime));
+
         //设置数量
         Map<String,Integer> codeCountMap = syMajorService.selectSyMajorByLevel(examTypeData, 3).stream().collect(Collectors.toMap(t -> t.getCode(), SyMajor::getChildCount));
         professionList.stream().forEach(ll->{
@@ -191,6 +196,7 @@ public class BBusiWishUniversitiesServiceImpl implements IBBusiWishUniversitiesS
             }
         });
         data.setProfessions(professionList);
+//        System.out.println("Step 3  - 获取专业数量完成, 耗时: {} ms" +( System.currentTimeMillis() - currentTime));
 
 
         //院校重点&双一流 b_busi_wish_universities_subject
@@ -210,6 +216,7 @@ public class BBusiWishUniversitiesServiceImpl implements IBBusiWishUniversitiesS
         query.setCollegeCode(code);
         List<BBusiWishUniversitiesEnrollBrochure> list = universitiesEnrollBrochureService.selectBBusiWishUniversitiesEnrollBrochureList(query);
         data.setEnrollBrochures(list);
+//        System.out.println("Step 4  - 获取动态、招生简章完成, 耗时: {} ms" +( System.currentTimeMillis() - currentTime));
 
         return data;
     }