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.dto.*; import com.dsh.account.entity.*; 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.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.util.ResultUtil; import com.dsh.account.util.TokenUtil; import com.dsh.account.util.ToolUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import springfox.documentation.swagger2.mappers.ModelMapper; 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 * @date 2023/6/24 14:59 */ @RestController @RequestMapping("") public class StudentController { @Autowired private TStudentService studentService; @Autowired private TokenUtil tokenUtil; @Autowired private TAppUserService appUserService; @Autowired private IVipPaymentService vipPaymentService; @Autowired private RechargeRecordsService rechargeRecordsService; /** * 添加学员 * @return */ @RequestMapping("/base/student/addStudent") public Object addStudent(@RequestBody TStudent student){ student.setInsertTime(new Date()); student.setIsDefault(1); return studentService.save(student); } /** * 获取用户学员列表 * @param appUserId * @return */ @ResponseBody @PostMapping("/student/queryStudentList") public List queryStudentList(@RequestBody Integer appUserId){ try { List list = studentService.list(new QueryWrapper().eq("appUserId", appUserId).eq("state", 1)); return list; }catch (Exception e){ e.printStackTrace(); return new ArrayList<>(); } } @ResponseBody @PostMapping("/student/queryDefaultStudent") public TStudent queryDefaultStudent(@RequestBody Integer appUserId){ try { TStudent one = studentService.getOne(new QueryWrapper().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> queryStudentList(){ try { Integer uid = tokenUtil.getUserIdFormRedis(); if(null == uid){ return ResultUtil.tokenErr(); } List list = studentService.list(new QueryWrapper().eq("appUserId", uid).eq("state", 1)); List 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().eq("phone", phone).eq("state", 1)); return one; }catch (Exception e){ e.printStackTrace(); return null; } } /** * 根据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 queryStudentListByName(@RequestBody String name){ return studentService.list(new QueryWrapper().eq("state", 1).like("name", name)); } /** * 根据名称模糊搜索学员 * @param name * @return */ @PostMapping("/student/queryTStudentListByName") public List queryTStudentListByName(@RequestBody String name){ return studentService.list(new QueryWrapper().eq("state", 1).like("name", name)); } /** * web端查找学员 * * @return */ @ResponseBody @PostMapping("/student/webStudentList") public List 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 getHisory(){ List getHistoryDtos = studentService.getHistory(); return getHistoryDtos; } @Resource private CoursePaymentClient paymentClient; @ResponseBody @PostMapping("/student/giftSelect") public List giftSelect(@RequestBody GiftSearchDto giftSearchDto){ System.out.println("======giftSelect=========giftSearchDto===="+giftSearchDto); // Integer appId = studentService.getGiftSelect(giftSearchDto); TCoursePackagePayment1 coursePackagePaymentById = paymentClient.getCoursePackagePaymentById1(giftSearchDto.getId()); // System.out.println("=======giftSelect======appId====>"+appId); List selectDtos = studentService.list(new QueryWrapper() .select("name, id") .eq("state", 1) .eq("name", giftSearchDto.getName()).eq("phone",giftSearchDto.getPhone()).ne("appUserId",coursePackagePaymentById.getAppUserId())); List 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 getUserPt(@RequestBody List ids){ if(ids.size()==0){ ids.add(-1); } List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1)); return list.stream().map(TAppUser::getId).collect(Collectors.toList()); } @PostMapping("/student/getUserYYs") @ResponseBody public List getUserYYs(@RequestBody Integer id){ List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id)); return list.stream().map(TAppUser::getId).collect(Collectors.toList()); } @ResponseBody @PostMapping("/student/getUserPtVip") public List getUserPtVip(){ List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1)); return list.stream().map(TAppUser::getId).collect(Collectors.toList()); } @PostMapping("/student/getUserStore") @ResponseBody public List getUserStore(@RequestBody Integer id){ List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id)); return list.stream().map(TAppUser::getId).collect(Collectors.toList()); } @ResponseBody @PostMapping("/student/userAndVipPt") public HashMap userAndVipPt(@RequestBody Integer type){ HashMap map = new HashMap<>(); // 所有的 List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1)); map.put("allUser",list.size()); List list1 = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1)); map.put("allVip",list1.size()); ArrayList integers = new ArrayList<>(); int year = DateUtil.year(new Date()); for (int i = 0; i < 10; i++) { integers.add(year-i); } List collect = integers.stream().sorted().collect(Collectors.toList()); // 年 ArrayList years = new ArrayList<>(); ArrayList 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 months = new ArrayList<>(); ArrayList 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().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s7, s8)); int countVip = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s7, s8)); int count1 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime,s5,s6)); int countVip1 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s5,s6)); int count2 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime,s3,s4)); int countVip2 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s3,s4)); int count3 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime,s1,s2)); int countVip3 = appUserService.count(new LambdaQueryWrapper().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 days = new ArrayList<>(); ArrayList 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().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime,s,s9)); int countVip5 = appUserService.count(new LambdaQueryWrapper().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 stuPt(){ HashMap map = new HashMap<>(); // 所有的 List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1)); List collect1 = list.stream().map(TAppUser::getId).collect(Collectors.toList()); if(collect1.size()==0){ collect1.add(-1); } List students = studentService.list(new LambdaQueryWrapper().in(TStudent::getAppUserId, collect1)); map.put("allUser",students.size()); ArrayList integers = new ArrayList<>(); int year = DateUtil.year(new Date()); for (int i = 0; i < 10; i++) { integers.add(year-i); } List collect = integers.stream().sorted().collect(Collectors.toList()); // 年 ArrayList 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 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().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s7, s8)); int count1 = studentService.count(new LambdaQueryWrapper().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s5,s6)); int count2 = studentService.count(new LambdaQueryWrapper().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s3,s4)); int count3 = studentService.count(new LambdaQueryWrapper().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 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().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s,s9)); days.add(count4); } map.put("dayData",days); return map; } @ResponseBody @PostMapping("/student/userAndVipYys") public HashMap userAndVipYys(@RequestBody Integer id){ HashMap map = new HashMap<>(); // 所有的 List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id)); map.put("allUser",list.size()); List list1 = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1)); map.put("allVip",list1.size()); ArrayList integers = new ArrayList<>(); int year = DateUtil.year(new Date()); for (int i = 0; i < 10; i++) { integers.add(year-i); } List collect = integers.stream().sorted().collect(Collectors.toList()); // 年 ArrayList years = new ArrayList<>(); ArrayList 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 months = new ArrayList<>(); ArrayList 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().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime, s7, s8)); int countVip = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s7, s8)); int count1 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s5,s6)); int countVip1 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s5,s6)); int count2 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s3,s4)); int countVip2 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s3,s4)); int count3 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s1,s2)); int countVip3 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).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 days = new ArrayList<>(); ArrayList 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().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s,s9)); int countVip5 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).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 userAndVipStore(@RequestBody Integer id){ HashMap map = new HashMap<>(); // 所有的 List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id)); map.put("allUser",list.size()); List list1 = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1)); map.put("allVip",list1.size()); ArrayList integers = new ArrayList<>(); int year = DateUtil.year(new Date()); for (int i = 0; i < 10; i++) { integers.add(year-i); } List collect = integers.stream().sorted().collect(Collectors.toList()); // 年 ArrayList years = new ArrayList<>(); ArrayList 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 months = new ArrayList<>(); ArrayList 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().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime, s7, s8)); int countVip = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s7, s8)); int count1 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s5,s6)); int countVip1 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s5,s6)); int count2 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s3,s4)); int countVip2 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s3,s4)); int count3 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s1,s2)); int countVip3 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).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 days = new ArrayList<>(); ArrayList 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().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s,s9)); int countVip5 = appUserService.count(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).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 queryFee(@RequestBody QueryDataFee queryDataFee){ HashMap map = new HashMap<>(); String data = queryDataFee.getData(); List ids = queryDataFee.getIds(); if(ids.size()==0){ ids.add(-1); } LambdaQueryWrapper 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 list = vipPaymentService.list(vipPaymentLambdaQueryWrapper); double sum = list.stream().mapToDouble(VipPayment::getAmount).sum(); map.put("fee1",sum); LambdaQueryWrapper 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 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 queryUserAge(){ HashMap map = new HashMap<>(); List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1)); List collect = list.stream().map(TAppUser::getId).collect(Collectors.toList()); if(collect.size()==0){ collect.add(-1); } List list1 = studentService.list(new LambdaQueryWrapper().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 queryUserAge1(){ HashMap map = new HashMap<>(); List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 1)); List collect = list.stream().map(TAppUser::getId).collect(Collectors.toList()); if(collect.size()==0){ collect.add(-1); } Set strings = list.stream().collect(Collectors.groupingBy(TAppUser::getCity)).keySet(); ArrayList strings1 = new ArrayList<>(); ArrayList integers = new ArrayList<>(); for (String string : strings) { int a = 0; strings1.add(string); for (TAppUser tAppUser : list) { if(tAppUser.getCity().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 queryUserAgeYys(Integer id){ HashMap map = new HashMap<>(); List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id)); List collect = list.stream().map(TAppUser::getId).collect(Collectors.toList()); if(collect.size()==0){ collect.add(-1); } Set strings = list.stream().collect(Collectors.groupingBy(TAppUser::getCity)).keySet(); ArrayList strings1 = new ArrayList<>(); ArrayList integers = new ArrayList<>(); for (String string : strings) { int a = 0; strings1.add(string); for (TAppUser tAppUser : list) { if(tAppUser.getCity().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 queryUserAgeStore(Integer id){ HashMap map = new HashMap<>(); List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id)); List collect = list.stream().map(TAppUser::getId).collect(Collectors.toList()); if(collect.size()==0){ collect.add(-1); } Set strings = list.stream().collect(Collectors.groupingBy(TAppUser::getCity)).keySet(); ArrayList strings1 = new ArrayList<>(); ArrayList integers = new ArrayList<>(); for (String string : strings) { int a = 0; strings1.add(string); for (TAppUser tAppUser : list) { if(tAppUser.getCity().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 queryUserAgeYys1(@RequestBody Integer id){ HashMap map = new HashMap<>(); List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id)); List collect = list.stream().map(TAppUser::getId).collect(Collectors.toList()); if(collect.size()==0){ collect.add(-1); } List list1 = studentService.list(new LambdaQueryWrapper().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 queryUserAgeStore1(@RequestBody Integer id){ HashMap map = new HashMap<>(); List list = appUserService.list(new LambdaQueryWrapper().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id)); List collect = list.stream().map(TAppUser::getId).collect(Collectors.toList()); if(collect.size()==0){ collect.add(-1); } List list1 = studentService.list(new LambdaQueryWrapper().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; } }