44323
2023-11-24 ae9bfd2d66f68a553786ac78b12f4390e65e4e09
cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
@@ -8,11 +8,9 @@
import com.dsh.account.feignclient.course.CoursePaymentClient;
import com.dsh.account.feignclient.course.model.TCoursePackagePayment;
import com.dsh.account.model.QueryDataFee;
import com.dsh.account.model.Student;
import com.dsh.account.model.StudentVo;
import com.dsh.account.service.IVipPaymentService;
import com.dsh.account.service.RechargeRecordsService;
import com.dsh.account.service.TAppUserService;
import com.dsh.account.service.TStudentService;
import com.dsh.account.service.*;
import com.dsh.account.util.ResultUtil;
import com.dsh.account.util.TokenUtil;
import com.dsh.account.util.ToolUtil;
@@ -65,6 +63,15 @@
       return studentService.save(student);
    }
    /**
     * 获取有学员的用户ids
     * @return
     */
    @ResponseBody
    @PostMapping("/student/getHasStudentUser")
    public List<Integer> getHasStudentUser(){
       return studentService.list(new QueryWrapper<TStudent>()).stream().map(TStudent::getAppUserId).distinct().collect(Collectors.toList());
    }
    /**
     * 获取用户学员列表
     * @param appUserId
     * @return
@@ -81,12 +88,33 @@
        }
    }
    @ResponseBody
    @PostMapping("/student/queryListByIds")
    public List<TStudent> queryListByIds(@RequestBody List<Integer> collect){
        try {
            List<TStudent> list = studentService.list(new QueryWrapper<TStudent>().in("id",collect).eq("state", 1));
            return list;
        }catch (Exception e){
            e.printStackTrace();
            return new ArrayList<>();
        }
    }
    @ResponseBody
    @PostMapping("/student/queryStudentCom")
    public  List<Map<String, Object>> queryStudentCom(@RequestBody Integer id){
        List<Map<String, Object>> list = studentService.queryCom(id);
            return list;
    }
    @ResponseBody
    @PostMapping("/student/frozen")
    public  void frozen(@RequestBody TStudent student){
            studentService.updateById(student);
    }
@@ -154,6 +182,22 @@
        }
    }
    @ResponseBody
    @PostMapping("/student/queryById")
    public TStudent queryById(@RequestBody Integer id) {
            return studentService.getById(id);
    }
    @ResponseBody
    @PostMapping("/base/appUser/updateTStudent")
    public void updateTStudent(@RequestBody TStudent student){
        try {
            studentService.updateById(student);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    /**
     * 根据id获取数据
@@ -237,16 +281,14 @@
    @PostMapping("/student/giftSelect")
    public  List<SelectDto> giftSelect(@RequestBody GiftSearchDto giftSearchDto){
        System.out.println("======giftSelect=========giftSearchDto===="+giftSearchDto);
        TAppUser one = appUserService.getOne(new QueryWrapper<TAppUser>().eq("name", giftSearchDto.getName())
                .eq("phone", giftSearchDto.getPhone()));
//       Integer appId = studentService.getGiftSelect(giftSearchDto);
        TCoursePackagePayment1 coursePackagePaymentById = paymentClient.getCoursePackagePaymentById1(giftSearchDto.getId());
//        System.out.println("=======giftSelect======appId====>"+appId);
        List<TStudent> selectDtos =  studentService.list(new QueryWrapper<TStudent>()
                .select("name, id")
                .eq("state", 1)
                .eq("name", giftSearchDto.getName()).eq("phone",giftSearchDto.getPhone()).ne("appUserId",coursePackagePaymentById.getAppUserId()));
                .eq("appUserId",one.getId()));
        List<SelectDto> list = new ArrayList<>();
        for (TStudent student : selectDtos) {
            SelectDto selectDto = new SelectDto();
@@ -254,6 +296,8 @@
            selectDto.setId(student.getId());
            list.add(selectDto);
        }
        // 只筛选当前用户已经购买了这个课程的学员
        System.out.println("=======giftSelect======selectDtos====>"+list);
        return list;
    }
@@ -274,6 +318,18 @@
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id));
        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
    }
    @PostMapping("/student/getUserStore")
    @ResponseBody
    public  List<Integer> getUserStore(@RequestBody Integer id){
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id));
        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
    }
    @PostMapping("/student/getUserYys")
    @ResponseBody
    public  List<Integer> getUserYys(@RequestBody Integer id){
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id));
        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
    }
    @ResponseBody
    @PostMapping("/student/getUserPtVip")
    public List<Integer> getUserPtVip(){
@@ -281,12 +337,7 @@
        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
    }
    @PostMapping("/student/getUserStore")
    @ResponseBody
   public  List<Integer> getUserStore(@RequestBody Integer id){
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id));
        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
    }
    @ResponseBody
@@ -488,13 +539,216 @@
        return map;
    }
    @ResponseBody
    @PostMapping("/student/stuYys")
    public HashMap<String, Object>  stuYys(@RequestBody Integer id){
        HashMap<String, Object> map = new HashMap<>();
        // 所有的
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getAddUserId, id));
        List<Integer> collect1 = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect1.size()==0){
            collect1.add(-1);
        }
        List<TStudent> students = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1));
        map.put("allUser",students.size());
        ArrayList<Object> integers = new ArrayList<>();
        int year = DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
        ArrayList<Long> years = new ArrayList<>();
        for (Object o : collect) {
            String s = o.toString();
            long count = students.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
            years.add(count);
        }
        map.put("yearData",years);
        ArrayList<Long> months = new ArrayList<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 月
        for (int i = 1; i <= 12; i++) {
            String m=i+"";
            if(i<10){
                m="0"+i;
            }
            String s = year + "-" + m;
            long count = students.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
            months.add(count);
        }
        map.put("monthData",months);
        // 周
        // 获取最近四周
        LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
        LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
        // 周度数据
        String s1 = minNow.minusDays(6).toString();
        String s2 = maxNow.toString();
        String s3 = minNow.minusDays(13).toString();
        String s4 = maxNow.minusDays(6).toString();
        String s5 = minNow.minusDays(20).toString();
        String s6 = maxNow.minusDays(13).toString();
        String s7 = minNow.minusDays(27).toString();
        String s8 = maxNow.minusDays(20).toString();
        int count = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s7, s8));
        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s5,s6));
        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s3,s4));
        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s1,s2));
        map.put("count",count);
        map.put("count1",count1);
        map.put("count2",count2);
        map.put("count3",count3);
        // 日
        ArrayList<Integer> days = new ArrayList<>();
        for (int i = 6; i >= 0; i--) {
            String s = minNow.minusDays(i).toString();
            String s9 = maxNow.minusDays(i).toString();
            int count4 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s,s9));
            days.add(count4);
        }
        map.put("dayData",days);
        return map;
    }
    @ResponseBody
    @PostMapping("/student/comdel")
    public void  comdel(@RequestBody Integer id) {
        evaluateStudentService.removeById(id);
    }
    @ResponseBody
    @PostMapping("/student/stuStores")
    public HashMap<String, Object>  stuStores(@RequestBody Integer id){
        HashMap<String, Object> map = new HashMap<>();
        // 所有的
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getAddUserId, id));
        List<Integer> collect1 = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect1.size()==0){
            collect1.add(-1);
        }
        List<TStudent> students = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1));
        map.put("allUser",students.size());
        ArrayList<Object> integers = new ArrayList<>();
        int year = DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
        ArrayList<Long> years = new ArrayList<>();
        for (Object o : collect) {
            String s = o.toString();
            long count = students.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
            years.add(count);
        }
        map.put("yearData",years);
        ArrayList<Long> months = new ArrayList<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 月
        for (int i = 1; i <= 12; i++) {
            String m=i+"";
            if(i<10){
                m="0"+i;
            }
            String s = year + "-" + m;
            long count = students.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
            months.add(count);
        }
        map.put("monthData",months);
        // 周
        // 获取最近四周
        LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
        LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
        // 周度数据
        String s1 = minNow.minusDays(6).toString();
        String s2 = maxNow.toString();
        String s3 = minNow.minusDays(13).toString();
        String s4 = maxNow.minusDays(6).toString();
        String s5 = minNow.minusDays(20).toString();
        String s6 = maxNow.minusDays(13).toString();
        String s7 = minNow.minusDays(27).toString();
        String s8 = maxNow.minusDays(20).toString();
        int count = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s7, s8));
        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s5,s6));
        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s3,s4));
        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s1,s2));
        map.put("count",count);
        map.put("count1",count1);
        map.put("count2",count2);
        map.put("count3",count3);
        // 日
        ArrayList<Integer> days = new ArrayList<>();
        for (int i = 6; i >= 0; i--) {
            String s = minNow.minusDays(i).toString();
            String s9 = maxNow.minusDays(i).toString();
            int count4 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s,s9));
            days.add(count4);
        }
        map.put("dayData",days);
        return map;
    }
    @Autowired
    private EvaluateStudentService evaluateStudentService;
    @ResponseBody
    @PostMapping("/student/save")
    public void   save(@RequestBody EvaluateStudent evaluateStudent) {
            evaluateStudent.setInsertTime(new Date());
        evaluateStudentService.saveOrUpdate(evaluateStudent);
    }
@@ -882,7 +1136,7 @@
    }
    @PostMapping("/student/queryUserAgeYys")
    public HashMap<String, Object> queryUserAgeYys(Integer id){
    public HashMap<String, Object> queryUserAgeYys(@RequestBody Integer id){
        HashMap<String, Object> map = new HashMap<>();
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id));
        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());