소스 검색

云教练活动

zouxuan 3 년 전
부모
커밋
9326b4d2f5

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EduOrganStudentDataDto.java

@@ -51,6 +51,17 @@ public class EduOrganStudentDataDto {
     @ApiModelProperty("新用户占比")
     private float newStudentDuty;
 
+    @ApiModelProperty("目标人数")
+    private Integer targetNum;
+
+    public Integer getTargetNum() {
+        return targetNum;
+    }
+
+    public void setTargetNum(Integer targetNum) {
+        this.targetNum = targetNum;
+    }
+
     public int getNewStudentNum() {
         return newStudentNum;
     }

+ 45 - 33
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -607,6 +607,13 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         if(StringUtils.isNotBlank(queryInfo.getOrganIds())&&CollectionUtils.isEmpty(organIds)){
             return pageInfo;
         }
+        //获取分部目标
+        String cloudTeacherActiveTarget = sysConfigDao.findConfigValue(SysConfigService.CLOUD_TEACHER_ACTIVE_TARGET);
+        if(StringUtils.isEmpty(cloudTeacherActiveTarget)){
+            return null;
+        }
+        List<CloudTeacherActiveTargetDto> targetDtoList = JSONArray.parseArray(cloudTeacherActiveTarget, CloudTeacherActiveTargetDto.class);
+        Map<Integer, List<CloudTeacherActiveTargetDto>> targetMap = targetDtoList.stream().collect(Collectors.groupingBy(e -> e.getOrganId()));
 
         List<Organization> organs = organizationDao.getOrgans(organIds);
         pageInfo.setTotal(organs.size());
@@ -652,7 +659,12 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         List<EduOrganStudentDataDto> result = new ArrayList<>();
 
         for (Organization organ : organs) {
+            List<CloudTeacherActiveTargetDto> targetDtos = targetMap.get(organ.getId());
             EduOrganStudentDataDto organStudentVipData = new EduOrganStudentDataDto();
+            if(targetDtos != null && targetDtos.size() > 0){
+                CloudTeacherActiveTargetDto target = targetDtos.get(0);
+                organStudentVipData.setTargetNum(target.getTargetNum());
+            }
             organStudentVipData.setOrganId(organ.getId());
             organStudentVipData.setOrganName(organ.getName());
             if(organsStudentNumMap.containsKey(organ.getId().toString())){
@@ -791,14 +803,14 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     @Override
     public void remarkCountFlag() {
         //清除标记
-        studentDao.cleanCountFlag();
+//        studentDao.cleanCountFlag();
         //打标记
-        List<Integer> studentIds = new ArrayList<>();
+//        List<Integer> studentIds = new ArrayList<>();
         //获取在会员团的学员
-        studentIds.addAll(studentRegistrationDao.queryHasMemberGroupStudent());
+//        studentIds.addAll(studentRegistrationDao.queryHasMemberGroupStudent());
         //获取购买过云教练(非活动)的学员
-        studentIds.addAll(cloudTeacherOrderDao.getStudentIds());
-        studentDao.remarkCountFlag(studentIds);
+//        studentIds.addAll(cloudTeacherOrderDao.getStudentIds());
+//        studentDao.remarkCountFlag(studentIds);
         //更新目标学员、目标金额
         SysConfig config = sysConfigDao.findByParamName("cloud_teacher_active_target");
         config.setParanValue(JSON.toJSONString(studentRegistrationDao.queryOrganTarget()));
@@ -817,16 +829,16 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         List<CloudTeacherActiveTargetDto> targetDtoList = JSONArray.parseArray(cloudTeacherActiveTarget, CloudTeacherActiveTargetDto.class);
         Map<Integer, List<CloudTeacherActiveTargetDto>> targetMap = targetDtoList.stream().collect(Collectors.groupingBy(e -> e.getOrganId()));
         //获取各分部总人数
-        List<Map<String, Long>> maps = indexBaseMonthDataDao.countTotalStudentNum();
-        Map<String, Long> organStudentNumMap = new HashMap<>(20);
-        if(maps != null && maps.size() > 0){
-            organStudentNumMap = MapUtil.convertIntegerMap(maps);
-        }
+//        List<Map<String, Long>> maps = indexBaseMonthDataDao.countTotalStudentNum();
+//        Map<String, Long> organStudentNumMap = new HashMap<>(20);
+//        if(maps != null && maps.size() > 0){
+//            organStudentNumMap = MapUtil.convertIntegerMap(maps);
+//        }
         params.put("organIdList",organIdList);
         List<CloudTeacherActiveTargetDto> resultList = indexBaseMonthDataDao.countCloudTeacherActive(params);
         for (CloudTeacherActiveTargetDto dto : resultList) {
-            Long aLong = organStudentNumMap.get(dto.getOrganId().toString());
-            dto.setTotalNum(aLong==null?0:aLong.intValue());
+//            Long aLong = organStudentNumMap.get(dto.getOrganId().toString());
+//            dto.setTotalNum(aLong==null?0:aLong.intValue());
             List<CloudTeacherActiveTargetDto> targetDtos = targetMap.get(dto.getOrganId());
             if(targetDtos != null && targetDtos.size() > 0){
                 CloudTeacherActiveTargetDto target = targetDtos.get(0);
@@ -853,21 +865,21 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         resultMap.put("buyAmount",buyAmount);
         Integer buyNum = resultList.stream().mapToInt(CloudTeacherActiveTargetDto::getBuyNum).sum();
         resultMap.put("buyNum",buyNum);
-        Integer totalNum = resultList.stream().mapToInt(CloudTeacherActiveTargetDto::getTotalNum).sum();
-        resultMap.put("totalNum",totalNum);
+//        Integer totalNum = resultList.stream().mapToInt(CloudTeacherActiveTargetDto::getTotalNum).sum();
+//        resultMap.put("totalNum",totalNum);
         Integer targetNum = resultList.stream().mapToInt(CloudTeacherActiveTargetDto::getTargetNum).sum();
         resultMap.put("targetNum",targetNum);
         resultMap.put("avgBuyAmount",0);
-        resultMap.put("buyScale",0);
+//        resultMap.put("buyScale",0);
         resultMap.put("targetFinishScale",0);
         if(buyAmount.doubleValue() > 0d && buyNum > 0){
             BigDecimal avgBuyAmount = buyAmount.divide(new BigDecimal(buyNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
             resultMap.put("avgBuyAmount",avgBuyAmount);
         }
-        if(totalNum > 0 && buyNum > 0){
-            BigDecimal buyScale = new BigDecimal(buyNum).divide(new BigDecimal(totalNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
-            resultMap.put("buyScale",buyScale);
-        }
+//        if(totalNum > 0 && buyNum > 0){
+//            BigDecimal buyScale = new BigDecimal(buyNum).divide(new BigDecimal(totalNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
+//            resultMap.put("buyScale",buyScale);
+//        }
         if(targetNum > 0 && buyNum > 0){
             BigDecimal targetFinishScale = new BigDecimal(buyNum).divide(new BigDecimal(targetNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
             resultMap.put("targetFinishScale",targetFinishScale);
@@ -901,20 +913,20 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
                     resultList = resultList.stream().sorted(Comparator.comparing(CloudTeacherActiveTargetDto::getAvgBuyAmount)).collect(Collectors.toList());
                 }
                 break;
-            case "totalNum":
-                if("DESC".equalsIgnoreCase(order)){
-                    resultList = resultList.stream().sorted(Comparator.comparing(CloudTeacherActiveTargetDto::getTotalNum,Comparator.reverseOrder())).collect(Collectors.toList());
-                }else {
-                    resultList = resultList.stream().sorted(Comparator.comparing(CloudTeacherActiveTargetDto::getTotalNum)).collect(Collectors.toList());
-                }
-                break;
-            case "buyScale":
-                if("DESC".equalsIgnoreCase(order)){
-                    resultList = resultList.stream().sorted(Comparator.comparing(CloudTeacherActiveTargetDto::getBuyScale,Comparator.reverseOrder())).collect(Collectors.toList());
-                }else {
-                    resultList = resultList.stream().sorted(Comparator.comparing(CloudTeacherActiveTargetDto::getBuyScale)).collect(Collectors.toList());
-                }
-                break;
+//            case "totalNum":
+//                if("DESC".equalsIgnoreCase(order)){
+//                    resultList = resultList.stream().sorted(Comparator.comparing(CloudTeacherActiveTargetDto::getTotalNum,Comparator.reverseOrder())).collect(Collectors.toList());
+//                }else {
+//                    resultList = resultList.stream().sorted(Comparator.comparing(CloudTeacherActiveTargetDto::getTotalNum)).collect(Collectors.toList());
+//                }
+//                break;
+//            case "buyScale":
+//                if("DESC".equalsIgnoreCase(order)){
+//                    resultList = resultList.stream().sorted(Comparator.comparing(CloudTeacherActiveTargetDto::getBuyScale,Comparator.reverseOrder())).collect(Collectors.toList());
+//                }else {
+//                    resultList = resultList.stream().sorted(Comparator.comparing(CloudTeacherActiveTargetDto::getBuyScale)).collect(Collectors.toList());
+//                }
+//                break;
             case "targetNum":
                 if("DESC".equalsIgnoreCase(order)){
                     resultList = resultList.stream().sorted(Comparator.comparing(CloudTeacherActiveTargetDto::getTargetNum,Comparator.reverseOrder())).collect(Collectors.toList());

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -3328,8 +3328,8 @@ public class ExportController extends BaseController {
 
         OutputStream outputStream = response.getOutputStream();
         try {
-            String[] header = {"分部", "购买人数", "购买金额", "目标金额", "人均购买金额", "总人数", "购买率", "目标人数", "目标达成率"};
-            String[] body = {"organName", "buyNum", "buyAmount", "targetAmount", "avgBuyAmount", "totalNum", "buyScale",
+            String[] header = {"分部", "购买人数", "购买金额", "目标金额", "人均购买金额", "目标人数", "目标达成率"};
+            String[] body = {"organName", "buyNum", "buyAmount", "targetAmount", "avgBuyAmount",
                             "targetNum", "targetFinishScale"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, rows);
             response.setContentType("application/octet-stream");