From 9486766c806fe1d9e082b2fd02ea1cc558f1b443 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 08 五月 2025 09:21:57 +0800
Subject: [PATCH] bug修改

---
 cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java | 1403 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,397 insertions(+), 6 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
index 674b0e8..adf363d 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
@@ -1,13 +1,34 @@
 package com.dsh.account.controller;
 
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.dsh.account.entity.TStudent;
-import com.dsh.account.service.TStudentService;
+import com.dsh.account.dto.*;
+import com.dsh.account.entity.*;
+import com.dsh.account.feignclient.course.CoursePackageClient;
+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.model.updateTimeDto;
+import com.dsh.account.service.*;
+import com.dsh.account.util.ResultUtil;
+import com.dsh.account.util.TokenUtil;
+import com.dsh.account.util.ToolUtil;
+import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
+import springfox.documentation.swagger2.mappers.ModelMapper;
 
-import java.util.ArrayList;
-import java.util.List;
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author zhibing.pu
@@ -20,21 +41,1391 @@
     @Autowired
     private TStudentService studentService;
 
+    @Autowired
+    private TokenUtil tokenUtil;
+
+    @Autowired
+    private TAppUserService appUserService;
+
+    @Autowired
+    private IVipPaymentService vipPaymentService;
+
+    @Autowired
+    private RechargeRecordsService rechargeRecordsService;
+
+    @Resource
+    private CoursePackageClient coursePackageClient;
+
+    /**
+     * 查询玩湃惠民卡绑定学员列表信息
+     *
+     * @return
+     */
+    @RequestMapping("/base/student/getStudentByIds/{ids}")
+    public List<TStudent> getStudentByIds(@PathVariable("ids") String ids) {
+        List<TStudent> list = studentService.list(new LambdaQueryWrapper<TStudent>()
+                .in(TStudent::getId, Arrays.asList(ids.split(","))));
+        return list;
+    }
+
+    /**
+     * 添加学员
+     *
+     * @return
+     */
+    @RequestMapping("/base/student/addStudent")
+    public Object addStudent(@RequestBody TStudent student) {
+        student.setInsertTime(new Date());
+        student.setIsDefault(1);
+        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
      */
     @ResponseBody
     @PostMapping("/student/queryStudentList")
-    public List<TStudent> queryStudentList(@RequestBody Integer appUserId){
+    public List<TStudent> queryStudentList(@RequestBody Integer appUserId) {
         try {
             List<TStudent> list = studentService.list(new QueryWrapper<TStudent>().eq("appUserId", appUserId).eq("state", 1));
             return list;
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
             return new ArrayList<>();
         }
     }
+
+
+    @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<>();
+        }
+    }
+
+
+    @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);
+
+    }
+    @ResponseBody
+    @PostMapping("/student/getById")
+    public Date getById(@RequestBody Integer tStudentId) {
+       return   studentService.getById(tStudentId).getValidity();
+
+    }
+    @ResponseBody
+    @PostMapping("/student/update1")
+    public void update(@RequestBody updateTimeDto updateTimeDto) {
+
+        TStudent student = new TStudent();
+        student.setId(updateTimeDto.getTStudentId());
+        student.setValidity(updateTimeDto.getDate());
+        studentService.updateById(student);
+    }
+
+
+    @ResponseBody
+    @PostMapping("/student/queryDefaultStudent")
+    public TStudent queryDefaultStudent(@RequestBody Integer appUserId) {
+        try {
+            TStudent one = studentService.getOne(new QueryWrapper<TStudent>().eq("appUserId", appUserId).eq("isDefault", 1).eq("state", 1).last("limit 1"));
+            return one;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/api/student/queryStudentList")
+    @ApiOperation(value = "获取学员列表", tags = {"APP-课程列表"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<StudentVo>> queryStudentList() {
+        try {
+            Integer uid = tokenUtil.getUserIdFormRedis();
+            if (null == uid) {
+                return ResultUtil.tokenErr();
+            }
+            List<TStudent> list = studentService.list(new QueryWrapper<TStudent>().eq("appUserId", uid).eq("state", 1));
+            List<StudentVo> listVo = new ArrayList<>();
+            for (TStudent tStudent : list) {
+                StudentVo studentVo = new StudentVo();
+                studentVo.setId(tStudent.getId());
+                studentVo.setPhone(tStudent.getPhone());
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+                studentVo.setAge(Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())));
+                listVo.add(studentVo);
+                studentVo.setName(tStudent.getName());
+            }
+            return ResultUtil.success(listVo);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 根据电话号码学员信息
+     *
+     * @param phone
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/student/queryStudentByPhone")
+    public TStudent queryStudentByPhone(@RequestBody String phone) {
+        try {
+            TStudent one = studentService.getOne(new QueryWrapper<TStudent>().eq("phone", phone).eq("state", 1));
+            return one;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+
+    @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获取数据
+     *
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/student/queryStudentById")
+    public TStudent queryStudentById(@RequestBody Integer id) {
+        TStudent student = studentService.getById(id);
+        return student;
+    }
+
+
+    /**
+     * 根据名称模糊搜索学员
+     *
+     * @param name
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/student/queryStudentListByName")
+    public List<TStudent> queryStudentListByName(@RequestBody String name) {
+        return studentService.list(new QueryWrapper<TStudent>().eq("state", 1).like("name", name));
+    }
+
+    /**
+     * 根据名称模糊搜索学员
+     *
+     * @param name
+     * @return
+     */
+    @PostMapping("/student/queryTStudentListByName")
+    public List<TStudent> queryTStudentListByName(@RequestBody String name) {
+        return studentService.list(new QueryWrapper<TStudent>().eq("state", 1).like("name", name));
+    }
+
+    /**
+     * web端查找学员
+     *
+     * @return
+     */
+
+    @ResponseBody
+    @PostMapping("/student/webStudentList")
+    public List<TStudentDto> querywebStudent(@RequestBody StudentSearch search) {
+        return studentService.listAll(search);
+    }
+
+    @ResponseBody
+    @PostMapping("/student/webOneStudent")
+    public TStudentDto querywebStudentOne(@RequestParam("id") Integer id) {
+        System.out.println("===?==》" + id);
+        return studentService.listOne(id);
+    }
+
+    @ResponseBody
+    @PostMapping("/student/update")
+    public void update(@RequestBody TStudent tStudent) {
+        System.out.println("======tStudent======" + tStudent);
+        studentService.updateById(tStudent);
+    }
+
+    @ResponseBody
+    @PostMapping("/student/createHistory")
+    public void createHistory(@RequestBody CreateHistoryDto createHistoryDto) {
+        createHistoryDto.setDate(new Date());
+        studentService.createHistory(createHistoryDto);
+    }
+
+    @ResponseBody
+    @PostMapping("/student/getHisory")
+    public List<GetHistoryDto> getHisory() {
+        List<GetHistoryDto> getHistoryDtos = studentService.getHistory();
+        return getHistoryDtos;
+    }
+
+
+    @Resource
+    private CoursePaymentClient paymentClient;
+
+    @ResponseBody
+    @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>()
+                .eq("state", 1)
+                .eq("appUserId", one.getId()));
+        List<SelectDto> list = new ArrayList<>();
+        for (TStudent student : selectDtos) {
+            SelectDto selectDto = new SelectDto();
+            selectDto.setValue(student.getName());
+            selectDto.setId(student.getId());
+            list.add(selectDto);
+        }
+        // 只筛选当前用户已经购买了这个课程的学员
+
+        System.out.println("=======giftSelect======selectDtos====>" + list);
+        return list;
+    }
+
+
+    @PostMapping("/student/getUserPt")
+    @ResponseBody
+    public List<Integer> getUserPt(@RequestBody List<Integer> ids) {
+        if (ids.size() == 0) {
+            ids.add(-1);
+        }
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1));
+        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());
+    }
+
+    @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() {
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1));
+        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
+    }
+
+
+    @ResponseBody
+    @PostMapping("/student/userAndVipPt")
+    public HashMap<String, Object> userAndVipPt(@RequestBody Integer type) {
+        HashMap<String, Object> map = new HashMap<>();
+        // 所有的
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1));
+        map.put("allUser", list.size());
+        List<TAppUser> list1 = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1));
+        map.put("allVip", list1.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<>();
+        ArrayList<Long> yearsVip = new ArrayList<>();
+        for (Object o : collect) {
+            String s = o.toString();
+            long count = list.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
+            long count1 = list1.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
+            years.add(count);
+            yearsVip.add(count1);
+        }
+        map.put("yearData", years);
+        map.put("yearsVip", yearsVip);
+
+        ArrayList<Long> months = new ArrayList<>();
+        ArrayList<Long> monthsVip = 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 = list.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
+            long count1 = list1.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
+            months.add(count);
+            monthsVip.add(count1);
+        }
+        map.put("monthData", months);
+        map.put("monthsVip", monthsVip);
+
+        // 周
+
+        // 获取最近四周
+        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 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s7, s8));
+        int countVip = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s7, s8));
+
+        int count1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s5, s6));
+        int countVip1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s5, s6));
+
+        int count2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s3, s4));
+        int countVip2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s3, s4));
+
+        int count3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s1, s2));
+        int countVip3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s1, s2));
+        map.put("count", count);
+        map.put("count1", count1);
+        map.put("count2", count2);
+        map.put("count3", count3);
+        map.put("countVip", countVip);
+        map.put("countVip1", countVip1);
+        map.put("countVip2", countVip2);
+        map.put("countVip3", countVip3);
+
+
+        // 日
+        ArrayList<Integer> days = new ArrayList<>();
+        ArrayList<Integer> daysVip = new ArrayList<>();
+        for (int i = 6; i >= 0; i--) {
+            String s = minNow.minusDays(i).toString();
+            String s9 = maxNow.minusDays(i).toString();
+            int count4 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s, s9));
+            int countVip5 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s, s9));
+            days.add(count4);
+            daysVip.add(countVip5);
+        }
+        map.put("dayData", days);
+        map.put("daysVip", daysVip);
+
+
+        return map;
+
+    }
+
+    @ResponseBody
+    @PostMapping("/student/stuPt")
+    public HashMap<String, Object> stuPt() {
+        HashMap<String, Object> map = new HashMap<>();
+        // 所有的
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1));
+        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/stuYys")
+    public HashMap<String, Object> stuYys(@RequestBody List<Integer> ids) {
+        HashMap<String, Object> map = new HashMap<>();
+        List<TStudent> students = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, ids));
+        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, ids).between(TStudent::getInsertTime, s7, s8));
+
+        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, ids).between(TStudent::getInsertTime, s5, s6));
+
+        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, ids).between(TStudent::getInsertTime, s3, s4));
+
+        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, ids).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, ids).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/updatePassWord")
+    public void updatePassWord(@RequestBody List<String> strings) throws Exception {
+        appUserService.updatePassword1(strings.get(0),strings.get(1),strings.get(2));
+
+    }
+
+
+    @ResponseBody
+    @PostMapping("/student/stuStores")
+    public HashMap<String, Object> stuStores(@RequestBody List<Integer> ids) {
+        HashMap<String, Object> map = new HashMap<>();
+
+        List<TStudent> students = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, ids));
+        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, ids).between(TStudent::getInsertTime, s7, s8));
+
+        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, ids).between(TStudent::getInsertTime, s5, s6));
+
+        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, ids).between(TStudent::getInsertTime, s3, s4));
+
+        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, ids).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, ids).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);
+
+    }
+
+
+    @ResponseBody
+    @PostMapping("/student/userAndVipYys")
+    public HashMap<String, Object> userAndVipYys(@RequestBody List<Integer> ids) {
+        HashMap<String, Object> map = new HashMap<>();
+
+        // 所有的
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().in(TAppUser::getId, ids));
+        map.put("allUser", list.size());
+        List<TAppUser> list1 = appUserService.list(new LambdaQueryWrapper<TAppUser>().in(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1));
+        map.put("allVip", list1.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<>();
+        ArrayList<Long> yearsVip = new ArrayList<>();
+        for (Object o : collect) {
+            String s = o.toString();
+            long count = list.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
+            long count1 = list1.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
+            years.add(count);
+            yearsVip.add(count1);
+        }
+        map.put("yearData", years);
+        map.put("yearsVip", yearsVip);
+
+        ArrayList<Long> months = new ArrayList<>();
+        ArrayList<Long> monthsVip = 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 = list.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
+            long count1 = list1.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
+            months.add(count);
+            monthsVip.add(count1);
+        }
+        map.put("monthData", months);
+        map.put("monthsVip", monthsVip);
+
+        // 周
+
+        // 获取最近四周
+        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 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).in(TAppUser::getId, ids).between(TAppUser::getInsertTime, s7, s8));
+        int countVip = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).in(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s7, s8));
+
+        int count1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).in(TAppUser::getId, ids).between(TAppUser::getInsertTime, s5, s6));
+        int countVip1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).in(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s5, s6));
+
+        int count2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).in(TAppUser::getId, ids).between(TAppUser::getInsertTime, s3, s4));
+        int countVip2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).in(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s3, s4));
+
+        int count3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).in(TAppUser::getId, ids).between(TAppUser::getInsertTime, s1, s2));
+        int countVip3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).in(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s1, s2));
+        map.put("count", count);
+        map.put("count1", count1);
+        map.put("count2", count2);
+        map.put("count3", count3);
+        map.put("countVip", countVip);
+        map.put("countVip1", countVip1);
+        map.put("countVip2", countVip2);
+        map.put("countVip3", countVip3);
+
+
+        // 日
+        ArrayList<Integer> days = new ArrayList<>();
+        ArrayList<Integer> daysVip = new ArrayList<>();
+        for (int i = 6; i >= 0; i--) {
+            String s = minNow.minusDays(i).toString();
+            String s9 = maxNow.minusDays(i).toString();
+            int count4 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).in(TAppUser::getId, ids).between(TAppUser::getInsertTime, s, s9));
+            int countVip5 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).in(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s, s9));
+            days.add(count4);
+            daysVip.add(countVip5);
+        }
+        map.put("dayData", days);
+        map.put("daysVip", daysVip);
+
+
+        return map;
+
+    }
+
+    @ResponseBody
+    @PostMapping("/student/userAndVipStore")
+    public HashMap<String, Object> userAndVipStore(@RequestBody List<Integer> ids) {
+        HashMap<String, Object> map = new HashMap<>();
+        // 所有的
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().in(TAppUser::getId, ids));
+        map.put("allUser", list.size());
+        List<TAppUser> list1 = appUserService.list(new LambdaQueryWrapper<TAppUser>().in(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1));
+        map.put("allVip", list1.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<>();
+        ArrayList<Long> yearsVip = new ArrayList<>();
+        for (Object o : collect) {
+            String s = o.toString();
+            long count = list.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
+            long count1 = list1.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
+            years.add(count);
+            yearsVip.add(count1);
+        }
+        map.put("yearData", years);
+        map.put("yearsVip", yearsVip);
+
+        ArrayList<Long> months = new ArrayList<>();
+        ArrayList<Long> monthsVip = 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 = list.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
+            long count1 = list1.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
+            months.add(count);
+            monthsVip.add(count1);
+        }
+        map.put("monthData", months);
+        map.put("monthsVip", monthsVip);
+
+        // 周
+
+        // 获取最近四周
+        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 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getId, ids).between(TAppUser::getInsertTime, s7, s8));
+        int countVip = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s7, s8));
+
+        int count1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getId, ids).between(TAppUser::getInsertTime, s5, s6));
+        int countVip1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s5, s6));
+
+        int count2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getId, ids).between(TAppUser::getInsertTime, s3, s4));
+        int countVip2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s3, s4));
+
+        int count3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getId, ids).between(TAppUser::getInsertTime, s1, s2));
+        int countVip3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s1, s2));
+        map.put("count", count);
+        map.put("count1", count1);
+        map.put("count2", count2);
+        map.put("count3", count3);
+        map.put("countVip", countVip);
+        map.put("countVip1", countVip1);
+        map.put("countVip2", countVip2);
+        map.put("countVip3", countVip3);
+
+
+        // 日
+        ArrayList<Integer> days = new ArrayList<>();
+        ArrayList<Integer> daysVip = new ArrayList<>();
+        for (int i = 6; i >= 0; i--) {
+            String s = minNow.minusDays(i).toString();
+            String s9 = maxNow.minusDays(i).toString();
+            int count4 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getId, ids).between(TAppUser::getInsertTime, s, s9));
+            int countVip5 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getId, ids).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s, s9));
+            days.add(count4);
+            daysVip.add(countVip5);
+        }
+        map.put("dayData", days);
+        map.put("daysVip", daysVip);
+
+
+        return map;
+
+    }
+
+
+    @PostMapping("/student/queryFee")
+    public HashMap<String, Object> queryFee(@RequestBody QueryDataFee queryDataFee) {
+        HashMap<String, Object> map = new HashMap<>();
+        String data = queryDataFee.getData();
+        List<Integer> ids = queryDataFee.getIds();
+        if (ids.size() == 0) {
+            ids.add(-1);
+        }
+        LambdaQueryWrapper<VipPayment> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if (ToolUtil.isNotEmpty(data)) {
+            String stime = data.split(" - ")[0] + " 00:00:00";
+            String etime = data.split(" - ")[1] + " 23:59:59";
+            vipPaymentLambdaQueryWrapper.between(VipPayment::getInsertTime, stime, etime);
+        }
+        vipPaymentLambdaQueryWrapper.in(VipPayment::getAppUserId, ids);
+        vipPaymentLambdaQueryWrapper.eq(VipPayment::getPayStatus, 2);
+        List<VipPayment> list = vipPaymentService.list(vipPaymentLambdaQueryWrapper);
+        double sum = list.stream().mapToDouble(VipPayment::getAmount).sum();
+
+        map.put("fee1", sum);
+
+        LambdaQueryWrapper<RechargeRecords> rechargeRecordsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if (ToolUtil.isNotEmpty(data)) {
+            String stime = data.split(" - ")[0] + " 00:00:00";
+            String etime = data.split(" - ")[1] + " 23:59:59";
+            rechargeRecordsLambdaQueryWrapper.between(RechargeRecords::getInsertTime, stime, etime);
+        }
+        rechargeRecordsLambdaQueryWrapper.in(RechargeRecords::getAppUserId, ids);
+        rechargeRecordsLambdaQueryWrapper.eq(RechargeRecords::getPayStatus, 2);
+        List<RechargeRecords> list1 = rechargeRecordsService.list(rechargeRecordsLambdaQueryWrapper);
+        double sum1 = list1.stream().map(RechargeRecords::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).doubleValue();
+
+        map.put("fee2", sum1);
+
+
+        return map;
+
+
+    }
+
+
+    @PostMapping("/student/queryUserAge")
+    public HashMap<String, Object> queryUserAge() {
+        HashMap<String, Object> map = new HashMap<>();
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1));
+        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
+        if (collect.size() == 0) {
+            collect.add(-1);
+        }
+        List<TStudent> list1 = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect));
+        int age1 = 0;
+        int age2 = 0;
+        int age3 = 0;
+        int age4 = 0;
+        int boy = 0;
+        int girl = 0;
+        for (TStudent tStudent : list1) {
+            Date birthday = tStudent.getBirthday();
+            long l = DateUtil.betweenYear(birthday, new Date(), true);
+            if (l < 7) {
+                age1++;
+            } else if (l >= 8 && l < 11) {
+                age2++;
+            } else if (l >= 11 && l <= 12) {
+                age3++;
+            } else {
+                age4++;
+            }
+            if (tStudent.getSex() == 1) {
+                boy++;
+            } else {
+                girl++;
+            }
+        }
+        map.put("age1", age1);
+        map.put("age2", age2);
+        map.put("age3", age3);
+        map.put("age4", age4);
+        map.put("boy", boy);
+        map.put("girl", girl);
+        return map;
+
+
+    }
+
+    @PostMapping("/student/queryUserAge1")
+    public HashMap<String, Object> queryUserAge1() {
+        HashMap<String, Object> map = new HashMap<>();
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1)
+                        .isNotNull(TAppUser::getPhone)
+                .ne(TAppUser::getState,3)
+                .isNotNull(TAppUser::getCity));
+        Set<String> strings2 = new HashSet<>(list.stream().filter(e -> e.getCity().equals("[]")).collect(Collectors.groupingBy(TAppUser::getProvince)).keySet());
+        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
+        if (collect.size() == 0) {
+            collect.add(-1);
+        }
+
+        Set<String> strings = new HashSet<>(list.stream()
+                .filter(e -> !e.getCity().equals("[]") && StringUtils.hasLength(e.getCity()))
+                .collect(Collectors.groupingBy(TAppUser::getCity))
+                .keySet());
+        strings.addAll(strings2);
+        ArrayList<String> strings1 = new ArrayList<>();
+        ArrayList<Integer> integers = new ArrayList<>();
+
+        for (String string : strings) {
+            int a = 0;
+            strings1.add(string);
+            for (TAppUser tAppUser : list) {
+                if (tAppUser.getCity()!=null&&tAppUser.getCity().equals(string)) {
+                    a++;
+                }else if (tAppUser.getProvince()!=null&&tAppUser.getProvince().equals(string)){
+                    a++;
+                }
+            }
+            integers.add(a);
+        }
+        map.put("cityData", strings1);
+        map.put("cityNum", integers);
+        int age1 = 0;
+        int age2 = 0;
+        int age3 = 0;
+        int age4 = 0;
+        int age5 = 0;
+        int age6 = 0;
+        int boy = 0;
+        int girl = 0;
+        for (TAppUser tStudent : list) {
+            Date birthday = tStudent.getBirthday();
+            long l = 0;
+            if (birthday != null) {
+
+                l = DateUtil.betweenYear(birthday, new Date(), true);
+            }
+            if (l <= 12) {
+                age1++;
+            } else if (l > 12 && l < 18) {
+                age2++;
+            } else if (l >= 19 && l <= 25) {
+                age3++;
+            } else if (l >= 26 && l <= 35) {
+                age4++;
+            } else if (l >= 36 && l <= 50) {
+                age5++;
+            } else {
+                age6++;
+            }
+            if (tStudent.getGender() != null && tStudent.getGender() == 1) {
+                boy++;
+            } else {
+                girl++;
+            }
+        }
+        map.put("age1", age1);
+        map.put("age2", age2);
+        map.put("age3", age3);
+        map.put("age4", age4);
+        map.put("age5", age5);
+        map.put("age6", age6);
+        map.put("boy", boy);
+        map.put("girl", girl);
+        return map;
+
+
+    }
+
+    @PostMapping("/student/queryUserAgeYys")
+    public HashMap<String, Object> queryUserAgeYys(@RequestBody List<Integer> ids) {
+        HashMap<String, Object> map = new HashMap<>();
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().in(TAppUser::getId, ids)
+                .isNotNull(TAppUser::getPhone)
+                .ne(TAppUser::getState,3)
+                .isNotNull(TAppUser::getCity));
+        Set<String> strings2 = new HashSet<>(list.stream().filter(e -> e.getCity().equals("[]")).collect(Collectors.groupingBy(TAppUser::getProvince)).keySet());
+        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
+        if (collect.size() == 0) {
+            collect.add(-1);
+        }
+
+
+        Set<String> strings = new HashSet<>(list.stream()
+                .filter(e -> !e.getCity().equals("[]") && StringUtils.hasLength(e.getCity()))
+                .collect(Collectors.groupingBy(TAppUser::getCity))
+                .keySet());
+        strings.addAll(strings2);
+        ArrayList<String> strings1 = new ArrayList<>();
+        ArrayList<Integer> integers = new ArrayList<>();
+
+        for (String string : strings) {
+            int a = 0;
+            strings1.add(string);
+            for (TAppUser tAppUser : list) {
+                if (tAppUser.getCity()!=null&&tAppUser.getCity().equals(string)) {
+                    a++;
+                }else if (tAppUser.getProvince()!=null&&tAppUser.getProvince().equals(string)){
+                    a++;
+                }
+            }
+            integers.add(a);
+        }
+
+        map.put("cityData", strings1);
+        map.put("cityNum", integers);
+        int age1 = 0;
+        int age2 = 0;
+        int age3 = 0;
+        int age4 = 0;
+        int age5 = 0;
+        int age6 = 0;
+        int boy = 0;
+        int girl = 0;
+        for (TAppUser tStudent : list) {
+            Date birthday = tStudent.getBirthday();
+            long l = 0;
+            if (birthday != null) {
+
+                l = DateUtil.betweenYear(birthday, new Date(), true);
+            }
+            if (l <= 12) {
+                age1++;
+            } else if (l > 12 && l < 18) {
+                age2++;
+            } else if (l >= 19 && l <= 25) {
+                age3++;
+            } else if (l >= 26 && l <= 35) {
+                age4++;
+            } else if (l >= 36 && l <= 50) {
+                age5++;
+            } else {
+                age6++;
+            }
+            if (tStudent.getGender() != null && tStudent.getGender() == 1) {
+                boy++;
+            } else {
+                girl++;
+            }
+        }
+        map.put("age1", age1);
+        map.put("age2", age2);
+        map.put("age3", age3);
+        map.put("age4", age4);
+        map.put("age5", age5);
+        map.put("age6", age6);
+        map.put("boy", boy);
+        map.put("girl", girl);
+        return map;
+
+    }
+
+    @PostMapping("/student/queryUserAgeStore")
+    public HashMap<String, Object> queryUserAgeStore(@RequestBody List<Integer> ids) {
+        HashMap<String, Object> map = new HashMap<>();
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().in(TAppUser::getId, ids)
+                .isNotNull(TAppUser::getPhone)
+                .ne(TAppUser::getState,3)
+                .isNotNull(TAppUser::getCity));
+        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
+        if (collect.size() == 0) {
+            collect.add(-1);
+        }
+        Set<String> strings2 = new HashSet<>(list.stream().filter(e -> e.getCity().equals("[]")).collect(Collectors.groupingBy(TAppUser::getProvince)).keySet());
+
+
+        Set<String> strings = new HashSet<>(list.stream()
+                .filter(e -> !e.getCity().equals("[]") && StringUtils.hasLength(e.getCity()))
+                .collect(Collectors.groupingBy(TAppUser::getCity))
+                .keySet());
+        strings.addAll(strings2);
+        ArrayList<String> strings1 = new ArrayList<>();
+        ArrayList<Integer> integers = new ArrayList<>();
+
+        for (String string : strings) {
+            int a = 0;
+            strings1.add(string);
+            for (TAppUser tAppUser : list) {
+                if (tAppUser.getCity()!=null&&tAppUser.getCity().equals(string)) {
+                    a++;
+                }else if (tAppUser.getProvince()!=null&&tAppUser.getProvince().equals(string)){
+                    a++;
+                }
+            }
+            integers.add(a);
+        }
+
+        map.put("cityData", strings1);
+        map.put("cityNum", integers);
+        int age1 = 0;
+        int age2 = 0;
+        int age3 = 0;
+        int age4 = 0;
+        int age5 = 0;
+        int age6 = 0;
+        int boy = 0;
+        int girl = 0;
+        for (TAppUser tStudent : list) {
+            Date birthday = tStudent.getBirthday();
+            long l = 0;
+            if (birthday != null) {
+
+                l = DateUtil.betweenYear(birthday, new Date(), true);
+            }
+            if (l <= 12) {
+                age1++;
+            } else if (l > 12 && l < 18) {
+                age2++;
+            } else if (l >= 19 && l <= 25) {
+                age3++;
+            } else if (l >= 26 && l <= 35) {
+                age4++;
+            } else if (l >= 36 && l <= 50) {
+                age5++;
+            } else {
+                age6++;
+            }
+            if (tStudent.getGender() != null && tStudent.getGender() == 1) {
+                boy++;
+            } else {
+                girl++;
+            }
+        }
+        map.put("age1", age1);
+        map.put("age2", age2);
+        map.put("age3", age3);
+        map.put("age4", age4);
+        map.put("age5", age5);
+        map.put("age6", age6);
+        map.put("boy", boy);
+        map.put("girl", girl);
+        return map;
+
+    }
+
+    @PostMapping("/student/queryUserAgeYys1")
+    public HashMap<String, Object> queryUserAgeYys1(@RequestBody List<Integer> ids) {
+        HashMap<String, Object> map = new HashMap<>();
+        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().in(TAppUser::getId, ids));
+        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
+        if (collect.size() == 0) {
+            collect.add(-1);
+        }
+        List<TStudent> list1 = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect));
+        int age1 = 0;
+        int age2 = 0;
+        int age3 = 0;
+        int age4 = 0;
+        int boy = 0;
+        int girl = 0;
+        for (TStudent tStudent : list1) {
+            Date birthday = tStudent.getBirthday();
+            long l = DateUtil.betweenYear(birthday, new Date(), true);
+            if (l < 7) {
+                age1++;
+            } else if (l >= 8 && l < 11) {
+                age2++;
+            } else if (l >= 11 && l <= 12) {
+                age3++;
+            } else {
+                age4++;
+            }
+            if (tStudent.getSex() == 1) {
+                boy++;
+            } else {
+                girl++;
+            }
+        }
+        map.put("age1", age1);
+        map.put("age2", age2);
+        map.put("age3", age3);
+        map.put("age4", age4);
+        map.put("boy", boy);
+        map.put("girl", girl);
+        return map;
+
+
+    }
+
+    @PostMapping("/student/queryUserAgeStore1")
+    public HashMap<String, Object> queryUserAgeStore1(@RequestBody List<Integer> ids) {
+        HashMap<String, Object> map = new HashMap<>();
+        List<TStudent> list1 = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, ids));
+        int age1 = 0;
+        int age2 = 0;
+        int age3 = 0;
+        int age4 = 0;
+        int boy = 0;
+        int girl = 0;
+        for (TStudent tStudent : list1) {
+            Date birthday = tStudent.getBirthday();
+            long l = DateUtil.betweenYear(birthday, new Date(), true);
+            if (l < 7) {
+                age1++;
+            } else if (l >= 8 && l < 11) {
+                age2++;
+            } else if (l >= 11 && l <= 12) {
+                age3++;
+            } else {
+                age4++;
+            }
+            if (tStudent.getSex() == 1) {
+                boy++;
+            } else {
+                girl++;
+            }
+        }
+        map.put("age1", age1);
+        map.put("age2", age2);
+        map.put("age3", age3);
+        map.put("age4", age4);
+        map.put("boy", boy);
+        map.put("girl", girl);
+        return map;
+    }
+
+
+
+    @ResponseBody
+    @PostMapping("/student/queryExpiredList")
+    public List<TStudent> queryExpiredList(){
+        List<TStudent> list = studentService.list(new QueryWrapper<TStudent>().eq("state", 1).last(" and DATE_FORMAT(now(), '%Y-%m-%d') > validity"));
+        return list;
+    }
 }

--
Gitblit v1.7.1