From b6373daa40c3dc17ca107f3666fd252f3b6b0778 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 03 一月 2025 18:34:52 +0800 Subject: [PATCH] 代码 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java | 209 ++++++++++++++++++++++++++++++---------------------- 1 files changed, 121 insertions(+), 88 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java index de3832e..5c14ec0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TAppUserController.java @@ -25,6 +25,7 @@ import com.ruoyi.web.controller.query.dto.RegisterDto; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -38,6 +39,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -134,8 +136,8 @@ public R regis(@RequestBody RegisterDto registerDto) { - TAppUser one = appUserService.lambdaQuery().eq(TAppUser::getPhone, registerDto.getPhone()).one(); - if (one!=null){ + TAppUser tAppUser = appUserService.lambdaQuery().eq(TAppUser::getPhone, registerDto.getPhone()).one(); + if (tAppUser!=null){ return R.fail("当前手机号已注册"); } String cacheObject = redisCache.getCacheObject(registerDto.getPhone()); @@ -191,7 +193,7 @@ public R changephone(@RequestParam String newPhone,@RequestParam String code) { Long userId = tokenService.getLoginUser().getUserId(); - TAppUser byId = appUserService.getById(userId); + TAppUser appUser = appUserService.getById(userId); String cacheObject = redisCache.getCacheObject(newPhone); @@ -200,8 +202,8 @@ } if (redisCache.getCacheObject(newPhone).equals(code)){ - byId.setPhone(newPhone); - appUserService.updateById(byId); + appUser.setPhone(newPhone); + appUserService.updateById(appUser); return R.ok(); }else{ return R.fail("验证码错误"); @@ -214,15 +216,15 @@ public R forget(@RequestBody RegisterDto registerDto) { - TAppUser one = appUserService.lambdaQuery().eq(TAppUser::getPhone, registerDto.getPhone()).one(); + TAppUser appUser = appUserService.lambdaQuery().eq(TAppUser::getPhone, registerDto.getPhone()).one(); - String cacheObject = redisCache.getCacheObject(one.getPhone()); + String cacheObject = redisCache.getCacheObject(appUser.getPhone()); if (!registerDto.getCode().equals("123456")&&!cacheObject.equals(registerDto.getCode())){ return R.fail("验证码错误"); } if (registerDto.getCode().equals("123456") || redisCache.getCacheObject(registerDto.getPhone()).equals(registerDto.getCode())) { - one.setPassword(SecurityUtils.encryptPassword(registerDto.getPwd())); - appUserService.updateById(one); + appUser.setPassword(SecurityUtils.encryptPassword(registerDto.getPwd())); + appUserService.updateById(appUser); }else { return R.fail("验证码错误"); } @@ -259,24 +261,29 @@ }else if (lateIds.size()>0){ finalIds = lateIds; } - LocalDateTime time1 = LocalDateTime.now(); - LocalDateTime time2 = LocalDateTime.now(); + LocalDateTime startTime = LocalDateTime.now(); + LocalDateTime endTime = LocalDateTime.now(); if (appUserQuery.getCreateTime1() != null){ - time1 = appUserQuery.getCreateTime1().atStartOfDay(); + startTime = appUserQuery.getCreateTime1().atStartOfDay(); } if (appUserQuery.getCreateTime2() != null){ - time2 = appUserQuery.getCreateTime2().atTime(23, 59, 59, 999999999); + endTime = appUserQuery.getCreateTime2().atTime(23, 59, 59, 999999999); } Page<TAppUser> page = appUserService.lambdaQuery().like(appUserQuery.getName() != null, TAppUser::getName, appUserQuery.getName()) .like(appUserQuery.getPhone() != null, TAppUser::getPhone, appUserQuery.getPhone()) .eq(appUserQuery.getStatus() != null, TAppUser::getStatus, appUserQuery.getStatus()) - .ge(appUserQuery.getCreateTime1() != null, TAppUser::getCreateTime,time1) - .le(appUserQuery.getCreateTime2() != null, TAppUser::getCreateTime,time2) + .ge(appUserQuery.getCreateTime1() != null, TAppUser::getCreateTime,startTime) + .le(appUserQuery.getCreateTime2() != null, TAppUser::getCreateTime,endTime) .in(finalIds.size() > 0, TAppUser::getId, finalIds) .orderByDesc(TAppUser::getCreateTime) .page(Page.of(appUserQuery.getPageNum(), appUserQuery.getPageSize())); + + List<TRegion> regions = regionService.lambdaQuery().list(); + List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().list(); + List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().list(); + List<TLevel> levels = levelService.lambdaQuery().list(); for (TAppUser record : page.getRecords()) { List<String> newString = new ArrayList<>(); @@ -285,11 +292,11 @@ if (newest!=null){ List<TUserChangeDetail> list = tUserChangeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, newest.getId()).list(); for (TUserChangeDetail tUserChangeDetail : list) { - TRegion byId = regionService.getById(tUserChangeDetail.getRegionId()); - TTechnicalTitle byId1 = tTechnicalTitleService.getById(tUserChangeDetail.getTitleId()); - TTitleMajor byId2 = majorService.getById(tUserChangeDetail.getMajorId()); - TLevel byId3 = levelService.getById(tUserChangeDetail.getLevelId()); - newString.add(byId.getName()+"-"+byId1.getTitileName()+"-"+byId2.getMajorName()+"-"+byId3.getName()); + TRegion region = regions.stream().filter(e -> e.getId().equals(tUserChangeDetail.getRegionId())).findFirst().orElse(null); + TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(tUserChangeDetail.getTitleId())).findFirst().orElse(null); + TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(tUserChangeDetail.getMajorId())).findFirst().orElse(null); + TLevel tLevel = levels.stream().filter(e -> e.getId().equals(tUserChangeDetail.getLevelId())).findFirst().orElse(null); + newString.add(region.getName()+"-"+tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName()+"-"+tLevel.getName()); } } @@ -300,20 +307,20 @@ if (latest!=null){ List<TUserChangeDetail> list = tUserChangeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, latest.getId()).list(); for (TUserChangeDetail tUserChangeDetail : list) { - TRegion byId = regionService.getById(tUserChangeDetail.getRegionId()); - TTechnicalTitle byId1 = tTechnicalTitleService.getById(tUserChangeDetail.getTitleId()); - TTitleMajor byId2 = majorService.getById(tUserChangeDetail.getMajorId()); - TLevel byId3 = levelService.getById(tUserChangeDetail.getLevelId()); - lateString.add(byId.getName()+"-"+byId1.getTitileName()+"-"+byId2.getMajorName()+"-"+byId3.getName()); + TRegion region = regions.stream().filter(e -> e.getId().equals(tUserChangeDetail.getRegionId())).findFirst().orElse(null); + TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(tUserChangeDetail.getTitleId())).findFirst().orElse(null); + TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(tUserChangeDetail.getMajorId())).findFirst().orElse(null); + TLevel tLevel = levels.stream().filter(e -> e.getId().equals(tUserChangeDetail.getLevelId())).findFirst().orElse(null); + lateString.add(region.getName()+"-"+tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName()+"-"+tLevel.getName()); } } - String join = StringUtils.join(newString, "、"); - record.setNewString(join); + String endLike = StringUtils.join(newString, "、"); + record.setNewString(endLike); - String join1 = StringUtils.join(lateString, "、"); - record.setLateString(join1); + String firstLike = StringUtils.join(lateString, "、"); + record.setLateString(firstLike); } return R.ok(page); @@ -323,9 +330,9 @@ @ApiOperation(value = "解冻",tags = "后台-用户管理") @PostMapping(value = "/unfreeze") public R unfreeze(Long id){ - TAppUser byId = appUserService.getById(id); - byId.setStatus(1); - appUserService.updateById(byId); + TAppUser appUser = appUserService.getById(id); + appUser.setStatus(1); + appUserService.updateById(appUser); return R.ok(); } @@ -333,24 +340,24 @@ @PostMapping(value = "/info") public R<TAppUser> info(){ Long userId = tokenService.getLoginUser().getUserId(); - TAppUser byId = appUserService.getById(userId); + TAppUser appUser = appUserService.getById(userId); Object cacheObject = redisCache.getCacheObject("CITY:" + userId); - byId.setCityStr(cacheObject); - return R.ok(byId); + appUser.setCityStr(cacheObject); + return R.ok(appUser); } @ApiOperation(value = "冻结",tags = "后台-用户管理") @PostMapping(value = "/freeze") public R freeze(@RequestBody FreezeDto freezeDto){ - TAppUser byId = appUserService.getById(freezeDto.getId()); - byId.setStatus(2); - byId.setRemark(freezeDto.getReason()); + TAppUser appUser = appUserService.getById(freezeDto.getId()); + appUser.setStatus(2); + appUser.setRemark(freezeDto.getReason()); Long userId = tokenService.getLoginUser().getUserId(); SysUser sysUser = sysUserService.selectUserById(userId); - byId.setEditName(sysUser.getNickName()); - byId.setEditTime(LocalDateTime.now()); - appUserService.updateById(byId); + appUser.setEditName(sysUser.getNickName()); + appUser.setEditTime(LocalDateTime.now()); + appUserService.updateById(appUser); return R.ok(); } @@ -392,35 +399,56 @@ }else if (lateIds.size()>0){ finalIds = lateIds; } - LocalDateTime time1 = LocalDateTime.now(); - LocalDateTime time2 = LocalDateTime.now(); + LocalDateTime startTime = LocalDateTime.now(); + LocalDateTime endTime = LocalDateTime.now(); if (appUserQuery.getCreateTime1() != null){ - time1 = appUserQuery.getCreateTime1().atStartOfDay(); + startTime = appUserQuery.getCreateTime1().atStartOfDay(); } if (appUserQuery.getCreateTime2() != null){ - time2 = appUserQuery.getCreateTime2().atTime(23, 59, 59, 999999999); + endTime = appUserQuery.getCreateTime2().atTime(23, 59, 59, 999999999); } - Page<TAppUser> page = appUserService.lambdaQuery().like(appUserQuery.getName() != null, TAppUser::getName, appUserQuery.getName()) - .like(appUserQuery.getPhone() != null, TAppUser::getPhone, appUserQuery.getPhone()) - .eq(appUserQuery.getStatus() != null, TAppUser::getStatus, appUserQuery.getStatus()) - .ge(appUserQuery.getCreateTime1() != null, TAppUser::getCreateTime, time1) - .le(appUserQuery.getCreateTime2() != null, TAppUser::getCreateTime, time2) - .in(finalIds.size() > 0, TAppUser::getId, finalIds) - .page(Page.of(1, 999999999)); + int pageSize = 100; + int currentPage = 0; + List<TAppUser> page = new ArrayList<>(); - for (TAppUser record : page.getRecords()) { + while (true) { + Page<TAppUser> pageItems = appUserService.lambdaQuery().like(appUserQuery.getName() != null, TAppUser::getName, appUserQuery.getName()) + .like(appUserQuery.getPhone() != null, TAppUser::getPhone, appUserQuery.getPhone()) + .eq(appUserQuery.getStatus() != null, TAppUser::getStatus, appUserQuery.getStatus()) + .ge(appUserQuery.getCreateTime1() != null, TAppUser::getCreateTime,startTime) + .le(appUserQuery.getCreateTime2() != null, TAppUser::getCreateTime,endTime) + .in(finalIds.size() > 0, TAppUser::getId, finalIds) + .orderByDesc(TAppUser::getCreateTime) + .page(Page.of(currentPage * pageSize, pageSize)); + List<TAppUser> records = pageItems.getRecords(); + if (CollectionUtils.isEmpty(records)) { + break; // 没有更多数据,退出循环 + } + page.addAll(records); // 累加当前页数据 + currentPage++; // 进入下一页 + } + List<Long> collect = page.stream().map(TAppUser::getId).collect(Collectors.toList()); + Map<Long, TUserChange> collect1 = tUserChangeService.lambdaQuery() + .in(TUserChange::getUserId, collect).orderByDesc(TUserChange::getCreateTime).list() + .stream().collect(Collectors.toMap(TUserChange::getUserId, Function.identity(), (existing, replacement) -> existing)); + List<TRegion> regions = regionService.lambdaQuery().list(); + List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().list(); + List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().list(); + List<TLevel> levels = levelService.lambdaQuery().list(); + for (TAppUser record : page) { List<String> newString = new ArrayList<>(); //拿到最新的change - TUserChange newest = tUserChangeService.lambdaQuery().eq(TUserChange::getUserId,record.getId()).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); +// TUserChange newest = tUserChangeService.lambdaQuery().eq(TUserChange::getUserId,record.getId()).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); + TUserChange newest = collect1.get(record.getId()); if (newest!=null){ List<TUserChangeDetail> list = tUserChangeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, newest.getId()).list(); for (TUserChangeDetail tUserChangeDetail : list) { - TRegion byId = regionService.getById(tUserChangeDetail.getRegionId()); - TTechnicalTitle byId1 = tTechnicalTitleService.getById(tUserChangeDetail.getTitleId()); - TTitleMajor byId2 = majorService.getById(tUserChangeDetail.getMajorId()); - TLevel byId3 = levelService.getById(tUserChangeDetail.getLevelId()); - newString.add(byId.getName()+"-"+byId1.getTitileName()+"-"+byId2.getMajorName()+"-"+byId3.getName()); + TRegion region = regions.stream().filter(e -> e.getId().equals(tUserChangeDetail.getRegionId())).findFirst().orElse(null); + TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(tUserChangeDetail.getTitleId())).findFirst().orElse(null); + TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(tUserChangeDetail.getMajorId())).findFirst().orElse(null); + TLevel tLevel = levels.stream().filter(e -> e.getId().equals(tUserChangeDetail.getLevelId())).findFirst().orElse(null); + newString.add(region.getName()+"-"+tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName()+"-"+tLevel.getName()); } } @@ -431,20 +459,20 @@ if (latest!=null){ List<TUserChangeDetail> list = tUserChangeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, latest.getId()).list(); for (TUserChangeDetail tUserChangeDetail : list) { - TRegion byId = regionService.getById(tUserChangeDetail.getRegionId()); - TTechnicalTitle byId1 = tTechnicalTitleService.getById(tUserChangeDetail.getTitleId()); - TTitleMajor byId2 = majorService.getById(tUserChangeDetail.getMajorId()); - TLevel byId3 = levelService.getById(tUserChangeDetail.getLevelId()); - lateString.add(byId.getName()+"-"+byId1.getTitileName()+"-"+byId2.getMajorName()+"-"+byId3.getName()); + TRegion region = regions.stream().filter(e -> e.getId().equals(tUserChangeDetail.getRegionId())).findFirst().orElse(null); + TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(tUserChangeDetail.getTitleId())).findFirst().orElse(null); + TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(tUserChangeDetail.getMajorId())).findFirst().orElse(null); + TLevel tLevel = levels.stream().filter(e -> e.getId().equals(tUserChangeDetail.getLevelId())).findFirst().orElse(null); + lateString.add(region.getName()+"-"+tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName()+"-"+tLevel.getName()); } } - String join = StringUtils.join(newString, "、"); - record.setNewString(join); + String end = StringUtils.join(newString, "、"); + record.setNewString(end); - String join1 = StringUtils.join(lateString, "、"); - record.setLateString(join1); + String first = StringUtils.join(lateString, "、"); + record.setLateString(first); record.setCreateTimeStr(DateUtils.localDateTimeToString(record.getCreateTime())); @@ -462,7 +490,7 @@ // tOrderMealExportExcel.setPersonCount(orderMealVO.getMealPerson()); // orderMeals.add(tOrderMealExportExcel); // } - Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TAppUser.class,page.getRecords() ); + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TAppUser.class,page); HttpServletResponse response = WebUtils.response(); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); @@ -494,28 +522,33 @@ @ApiOperation(value = "详情",tags = "后台-用户管理") @PostMapping(value = "/detail") public R<TAppUser> detail(Long id){ - TAppUser byId = appUserService.getById(id); - List<TUserChange> list = userChangeService.lambdaQuery().eq(TUserChange::getUserId, id).orderByDesc(TUserChange::getCreateTime).list(); - for (TUserChange tUserChange : list) { - List<TUserChangeDetail> list1 = userChangeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, tUserChange.getId()).list(); - for (TUserChangeDetail tUserChangeDetail : list1) { - TRegion byId1 = regionService.getById(tUserChangeDetail.getRegionId()); - tUserChangeDetail.setRegion(byId1.getProvinceName()+"-"+byId1.getName()); - TTechnicalTitle byId2 = tTechnicalTitleService.getById(tUserChangeDetail.getTitleId()); - tUserChangeDetail.setTitleName(byId2.getTitileName()); - TTitleMajor byId3 = majorService.getById(tUserChangeDetail.getMajorId()); - tUserChangeDetail.setMajorName(byId3.getMajorName()); - TLevel byId4 = levelService.getById(tUserChangeDetail.getLevelId()); - tUserChangeDetail.setLevelName(byId4.getName()); + TAppUser appUser = appUserService.getById(id); + List<TUserChange> userChanges = userChangeService.lambdaQuery().eq(TUserChange::getUserId, id).orderByDesc(TUserChange::getCreateTime).list(); + List<TUserChangeDetail> tUserChangeDetails = userChangeDetailService.lambdaQuery() + .in(TUserChangeDetail::getChangeId,userChanges.stream().map(TUserChange::getId).collect(Collectors.toList())).list(); + List<TRegion> regions = regionService.lambdaQuery().list(); + List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().list(); + List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().list(); + List<TLevel> levels = levelService.lambdaQuery().list(); + for (TUserChange tUserChange : userChanges) { + for (TUserChangeDetail tUserChangeDetail : tUserChangeDetails) { + TRegion region = regions.stream().filter(e -> e.getId().equals(tUserChangeDetail.getRegionId())).findFirst().orElse(null); + TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(tUserChangeDetail.getTitleId())).findFirst().orElse(null); + TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(tUserChangeDetail.getMajorId())).findFirst().orElse(null); + TLevel tLevel = levels.stream().filter(e -> e.getId().equals(tUserChangeDetail.getLevelId())).findFirst().orElse(null); + tUserChangeDetail.setRegion(region.getProvinceName()+"-"+region.getName()); + tUserChangeDetail.setTitleName(tTechnicalTitle.getTitileName()); + tUserChangeDetail.setMajorName(tTitleMajor.getMajorName()); + tUserChangeDetail.setLevelName(tLevel.getName()); } - tUserChange.setUserChangeDetails(list1); + tUserChange.setUserChangeDetails(tUserChangeDetails); } - TRegion byId2 = regionService.getById(byId.getCityCode()); - if(Objects.nonNull(byId2)){ - byId.setCityStr(byId2.getProvinceName()+"-"+byId2.getName()); + TRegion region = regionService.getById(appUser.getCityCode()); + if(Objects.nonNull(region)){ + appUser.setCityStr(region.getProvinceName()+"-"+region.getName()); } - byId.setChanges(list); - return R.ok(byId) ; + appUser.setChanges(userChanges); + return R.ok(appUser) ; } -- Gitblit v1.7.1