From 4a9a9fa60f52be1e7c91f01df54b3cbae8c11d6c Mon Sep 17 00:00:00 2001 From: baizonghao <1719256278@qq.com> Date: 星期日, 23 四月 2023 13:11:21 +0800 Subject: [PATCH] 用户导出 --- src/main/java/com/example/jz/controller/UserController.java | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 154 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/example/jz/controller/UserController.java b/src/main/java/com/example/jz/controller/UserController.java index eb3c7ec..5b4cf3b 100644 --- a/src/main/java/com/example/jz/controller/UserController.java +++ b/src/main/java/com/example/jz/controller/UserController.java @@ -1,23 +1,31 @@ package com.example.jz.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.api.ApiController; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.example.jz.modle.R; -import com.example.jz.modle.entity.User; -import com.example.jz.service.UserService; +import com.example.jz.modle.dto.ManagerDto; +import com.example.jz.modle.dto.UserExpDto; +import com.example.jz.modle.entity.*; +import com.example.jz.service.*; +import com.example.jz.utils.EasyExcelUtils; import com.example.jz.utils.Md5Utils; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import java.io.Serializable; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 鐢ㄦ埛琛�(User)琛ㄦ帶鍒跺眰 @@ -30,6 +38,15 @@ @Api(tags = "鐢ㄦ埛绠$悊") public class UserController extends ApiController { private UserService userService; + + @Autowired + ReportService reportService; + @Autowired + GroupUserService groupUserService; + @Autowired + MessageService messageService; + @Autowired + CauseService causeService; @Autowired public void setUserService(UserService userService) { @@ -47,9 +64,16 @@ @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�") public R selectAll(Page<User> page, User user) { return R.ok(this.userService.page(page, new QueryWrapper<User>() - .like(StringUtils.isNotBlank(user.getNickName()),"nick_name",user.getNickName()) + .eq("role", 0) + .and(StringUtils.isNotBlank(user.getNickName()) && StringUtils.isNotBlank(user.getRealName()), new Consumer<QueryWrapper<User>>() { + @Override + public void accept(QueryWrapper<User> userQueryWrapper) { + userQueryWrapper.like("real_name", user.getRealName()).or().like("nick_name", user.getNickName()); + } + }) + .like(StringUtils.isNotBlank(user.getNickName()) && StringUtils.isBlank(user.getRealName()), "nick_name", user.getNickName()) .or() - .like(StringUtils.isNotBlank(user.getRealName()),"real_name",user.getRealName()) + .like(StringUtils.isNotBlank(user.getRealName()) && StringUtils.isBlank(user.getNickName()), "real_name", user.getRealName()) .orderByDesc("ctime"))); } @@ -80,32 +104,108 @@ /** * 鍒犻櫎鏁版嵁 * - * @param idList 涓婚敭缁撳悎 + * @param id 涓婚敭缁撳悎 * @return 鍒犻櫎缁撴灉 */ @DeleteMapping @ApiOperation("鍒犻櫎鐢ㄦ埛鏁版嵁") public R delete(@RequestParam("id") Integer id) { + reportService + .list(new LambdaQueryWrapper<Report>().eq(Report::getUserId, id)) + .stream() + .forEach(item -> { + groupUserService.remove(new LambdaQueryWrapper<GroupUser>().eq(GroupUser::getUserId, item.getId())); + messageService.remove(new LambdaQueryWrapper<Message>().eq(Message::getUserId, item.getId())); + }); + reportService.remove(new LambdaQueryWrapper<Report>().eq(Report::getUserId, id)); return R.ok(this.userService.removeById(id)); } - /** - * 娣诲姞绠$悊鍛� - * - * @param id 鐢ㄦ埛id - * @param username 绠$悊鍛樼敤鎴峰悕 - * @param password 绠$悊鍛樺瘑鐮� - * @return - */ - @PostMapping("/addAdmin/{id}") - @ApiOperation("娣诲姞绠$悊鍛�") - @ApiImplicitParams({ - @ApiImplicitParam(name = "password", value = "瀵嗙爜", required = true, dataType = "String"), - @ApiImplicitParam(name = "username", value = "鐢ㄦ埛鍚�", required = true, dataType = "String") - }) - public R addAdmin(@PathVariable Serializable id, String username, String password) { - User user = userService.getById(id).setLoginUsername(username).setLoginPassword(Md5Utils.md5(password)).setRole(1); - return R.ok(userService.updateById(user)); + + @GetMapping("/status") + @ApiOperation("绂佺敤/鍚敤鐢ㄦ埛") + public R updateStatus(Integer id, Integer status) { + int newStatus = 0; + if (status != null) { + if (status == 1) { + newStatus = 0; + } else { + newStatus = 1; + } + } + userService.update(new UpdateWrapper<User>().set("status", newStatus).eq("id", id)); + return R.ok(); + } + + @PostMapping("/manager") + @ApiOperation("娣诲姞绠$悊") + public R addManager(@RequestBody ManagerDto managerDto) { + User user = new User().setRealName(managerDto.getRealName()) + .setLoginUsername(managerDto.getRealName()) + .setUserMobile(managerDto.getPhoneNumber()) + .setLoginPassword(Md5Utils.md5(managerDto.getPassword())) + .setRole(1) + .setCtime(new Date()); + return R.ok(userService.save(user)); + } + + @DeleteMapping("/manager") + @ApiOperation("鍒犻櫎绠$悊浜哄憳") + public R removeManager(@RequestParam Integer id) { + List<Cause> list = causeService.list(new LambdaQueryWrapper<Cause>().eq(Cause::getUserId, id)); + if (!Objects.isNull(list) && list.size() != 0){ + ArrayList<Map> maps = new ArrayList<>(); + for (Cause cause : list) { + HashMap<String, String> map = new HashMap<>(); + map.put("caseName", cause.getName()); + map.put("caseNumber", cause.getNumber()); + maps.add(map); + } + return R.failed(maps, "璇ヨ鍛樿繕鏈夋浠跺叧鑱�,鑻ヨ鍒犻櫎璇峰厛淇敼瀵瑰簲妗堜欢鍏宠仈鐨勮鍛�"); + } +// causeService.list(new LambdaQueryWrapper<Cause>().eq(Cause::getUserId, id)).forEach(item -> { +// causeService.deleteCause(item.getId()); +// }); +// userService.remove(new LambdaQueryWrapper<User>().eq(User::getId, id)); + messageService.remove(new LambdaQueryWrapper<Message>().eq(Message::getCopId, id)); + return R.ok(userService.removeById(id)); + } + + @DeleteMapping("/crowd") + @ApiOperation("鍒犻櫎鏅�氱敤鎴�") + public R removeCrowd(@RequestParam Integer id){ + List<Report> list = reportService.list(Wrappers.<Report>lambdaQuery().eq(Report::getUserId, id)); + for (Report report : list) { + groupUserService.remove(new LambdaQueryWrapper<GroupUser>().eq(GroupUser::getUserId, report.getId())); + messageService.remove(new LambdaQueryWrapper<Message>().eq(Message::getUserId, report.getId())); + reportService.removeById(report.getId()); + } + userService.remove(Wrappers.<User>lambdaQuery().eq(User::getId, id)); + return R.ok(); + } + + @GetMapping("/manager") + @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�") + public R selectManager(Page<User> page, User user) { + return R.ok(userService.page(page, new QueryWrapper<User>() + .eq("role", 1) + .and(StringUtils.isNotBlank(user.getUserMobile()) && StringUtils.isNotBlank(user.getRealName()), new Consumer<QueryWrapper<User>>() { + @Override + public void accept(QueryWrapper<User> userQueryWrapper) { + userQueryWrapper.like("real_name", user.getRealName()).or().like("user_mobile", user.getUserMobile()); + } + }) + .like(StringUtils.isNotBlank(user.getUserMobile()) && StringUtils.isBlank(user.getRealName()), "user_mobile", user.getUserMobile()) + .or() + .like(StringUtils.isNotBlank(user.getRealName()) && StringUtils.isBlank(user.getUserMobile()), "real_name", user.getRealName()) + .orderByDesc("ctime"))); + } + + @PutMapping("/manager") + @ApiOperation("淇敼绠$悊鍛樺瘑鐮�") + public R modify(@RequestBody ManagerDto managerDto) { + User user = new User().setLoginPassword(Md5Utils.md5(managerDto.getPassword())); + return R.ok(userService.update(user, new UpdateWrapper<User>().eq("user_mobile", managerDto.getPhoneNumber()).eq("real_name", managerDto.getRealName()))); } @PostMapping("/add") @@ -130,4 +230,32 @@ user.setLoginPassword(Md5Utils.md5(user.getUserIdcard().substring(user.getUserIdcard().length() - 6))); return R.ok(userService.updateById(user)); } + + /** + * 杞负绠$悊鍛� + * + * @param id 鐢ㄦ埛id + * @return + */ + @GetMapping("/toManager/{id}") + @ApiOperation("杞负绠$悊鍛�") + public R toManager(@PathVariable Serializable id) { + User user = userService.getById(id); + user.setRole(1); + return R.ok(userService.updateById(user)); + } + + + @ApiOperation("鐢ㄦ埛淇℃伅瀵煎嚭") + @PostMapping("/exp") + public void UserExp(HttpServletResponse response){ + List<User> list = userService.list(Wrappers.<User>lambdaQuery().eq(User::getRole, 0).eq(User::getStatus, 1)); + List<UserExpDto> userExpDtos = list.stream().map(user -> { + UserExpDto userExpDto = new UserExpDto(); + BeanUtils.copyProperties(user, userExpDto); + return userExpDto; + }).collect(Collectors.toList()); + String sheetName = "鐢ㄦ埛瀵煎嚭"; + EasyExcelUtils.export1(response, sheetName, UserExpDto.class, userExpDtos, "鐢ㄦ埛瀵煎嚭"); + } } -- Gitblit v1.8.0