From 1cad14bca191807e18705c3a5526eda8151be439 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 14 四月 2025 23:10:22 +0800
Subject: [PATCH] 批量审核和图片保存bug

---
 ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java |  148 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 133 insertions(+), 15 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java b/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java
index f3d12e7..84a37de 100644
--- a/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java
+++ b/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java
@@ -1,18 +1,31 @@
 package com.ycl.controller.user;
 
 import cn.hutool.core.collection.CollUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.read.listener.ReadListener;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ycl.annotation.LogSave;
 import com.ycl.api.CommonResult;
+import com.ycl.bo.AdminUserDetails;
 import com.ycl.controller.BaseController;
-import com.ycl.dto.UmsAdminLoginParam;
-import com.ycl.dto.UmsAdminParam;
-import com.ycl.dto.UpdateAdminPasswordParam;
+import com.ycl.dto.*;
+import com.ycl.dto.user.UmsAdminParamDto;
+import com.ycl.dto.user.UmsUserDto1;
+import com.ycl.entity.depart.UmsDepart;
+import com.ycl.entity.dict.DataDictionary;
 import com.ycl.entity.user.UmsAdmin;
 import com.ycl.entity.user.UmsRole;
+import com.ycl.mapper.depart.UmsDepartMapper;
+import com.ycl.mapper.dict.DataDictionary2Mapper;
+import com.ycl.mapper.user.UmsAdminMapper;
+import com.ycl.mapper.user.UmsRoleMapper;
 import com.ycl.service.redis.RedisService;
 import com.ycl.service.user.UmsAdminService;
-import com.ycl.service.user.UmsRoleService;
+import com.ycl.service.user.UmsMenuService;
+import com.ycl.utils.AesEncryptUtil;
+import com.ycl.utils.EasyExcelUtils;
 import com.ycl.utils.redis.RedisKey;
 import com.ycl.vo.user.UserVO;
 import io.swagger.annotations.Api;
@@ -21,16 +34,18 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Controller;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.security.Principal;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -47,7 +62,7 @@
     @Autowired
     private UmsAdminService adminService;
     @Autowired
-    private UmsRoleService roleService;
+    UmsMenuService umsMenuService;
     @Resource
     private RedisService redisService;
 
@@ -66,8 +81,10 @@
     @ApiOperation(value = "鐧诲綍浠ュ悗杩斿洖token")
     @RequestMapping(value = "/login", method = RequestMethod.POST)
     @ResponseBody
-    public CommonResult login(@Validated @RequestBody UmsAdminLoginParam umsAdminLoginParam) {
-        String token = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword());
+    public CommonResult login(@Validated @RequestBody UmsAdminLoginParam umsAdminLoginParam) throws Exception {
+        String password = AesEncryptUtil.desEncrypt(umsAdminLoginParam.getPassword());
+//        String password = umsAdminLoginParam.getPassword();
+        String token = adminService.login(umsAdminLoginParam.getUsername(), password);
         if (token == null) {
             return CommonResult.validateFailed("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
         }
@@ -101,11 +118,10 @@
         }
         String username = principal.getName();
         UmsAdmin umsAdmin = adminService.getAdminByUsername(username);
+        AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
         Map<String, Object> data = new HashMap<>();
-        data.put("userId", umsAdmin.getId());
-        data.put("username", umsAdmin.getUsername());
-        data.put("menus", roleService.getMenuList(umsAdmin.getId()));
-        data.put("icon", umsAdmin.getIcon());
+        data.put("user", umsAdmin);
+        data.put("menus", umsMenuService.ListTreeMyself(user.getUserId()));
         List<UmsRole> roleList = adminService.getRoleList(umsAdmin.getId());
         if (CollUtil.isNotEmpty(roleList)) {
             List<String> roles = roleList.stream().map(UmsRole::getName).collect(Collectors.toList());
@@ -130,6 +146,99 @@
         IPage<UmsAdmin> page = adminService.pageUser(pageUserVO);
         return CommonResult.success(page);
     }
+
+
+    @ApiOperation("鐢ㄦ埛瀵煎嚭")
+    @PostMapping("/export")
+    public void exportUser(HttpServletResponse response) {
+        List<UmsUserDto1> umsUserDtos = adminService.userExp();
+        String sheetName = "鐢ㄦ埛瀵煎嚭";
+        EasyExcelUtils.export1(response, sheetName, UmsUserDto1.class, umsUserDtos, "鐢ㄦ埛瀵煎嚭");
+    }
+
+    @Resource
+    private UmsRoleMapper umsRoleMapper;
+    @Resource
+    private UmsAdminMapper umsAdminMapper;
+    @Resource
+    private DataDictionary2Mapper dataDictionary2Mapper;
+    @Resource
+    private UmsDepartMapper umsDepartMapper;
+
+    @ApiOperation("鐢ㄦ埛瀵煎叆")
+    @PostMapping("/import")
+    public CommonResult importUser(MultipartFile file) throws IOException {
+        EasyExcel.read(file.getInputStream())
+                .head(UmsAdminParamDto.class)
+                .registerReadListener(new ReadListener<UmsAdminParamDto>() {
+                    @Override
+                    public void invoke(UmsAdminParamDto item, AnalysisContext analysisContext) {
+                        UmsAdminParam param = new UmsAdminParam();
+                        param.setUsername(item.getUsername());
+                        param.setPassword(item.getPassword());
+                        param.setNickName(item.getNickName());
+
+                        String sex = item.getSex();
+                        if (sex.equals("鐢�")) {
+                            param.setSex((byte) 1);
+                        } else if (sex.equals("濂�")) {
+                            param.setSex((byte) 0);
+                        } else {
+                            throw new RuntimeException("鎬у埆杈撳叆鏈夎");
+                        }
+
+                        String isDy = item.getIsDy();
+                        if (isDy.equals("鏄�")) {
+                            param.setSex((byte) 1);
+                        } else if (isDy.equals("鍚�")) {
+                            param.setSex((byte) 0);
+                        } else {
+                            throw new RuntimeException("鍏氬憳杈撳叆鏈夎");
+                        }
+
+                        param.setMobile(item.getMobile());
+                        param.setEmail(item.getEmail());
+
+                        String role = item.getRole();
+                        UmsRole umsRole = umsRoleMapper.selectOne(new LambdaQueryWrapper<UmsRole>().eq(UmsRole::getName, role));
+                        if (Objects.isNull(umsRole)) {
+                            param.setRoleIds(null);
+                        } else {
+                            List list = new ArrayList<>();
+                            list.add(umsRole.getId());
+                            param.setRoleIds(list);
+                        }
+
+                        String userType = item.getUserType();
+                        DataDictionary dataDictionary = dataDictionary2Mapper.selectOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, userType));
+                        if (Objects.isNull(dataDictionary)) {
+                            throw new RuntimeException("鐢ㄦ埛绫诲瀷涓嶅瓨鍦�");
+                        } else {
+                            param.setUserType(dataDictionary.getId().intValue());
+                        }
+
+                        String department = item.getDepartment();
+                        UmsDepart umsDepart = umsDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getDepartName, department));
+                        if (Objects.isNull(umsDepart)) {
+                            throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�");
+                        } else {
+                            param.setDepartmentId(umsDepart.getId());
+                        }
+
+                        param.setJobTitle(item.getJobTitle());
+
+                        adminService.importExcl(param);
+
+                    }
+
+                    @Override
+                    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+
+                    }
+                }).sheet().doRead();
+        return CommonResult.success(true, "瀵煎叆鎴愬姛");
+    }
+
 
     @ApiOperation("鑾峰彇鎸囧畾鐢ㄦ埛淇℃伅")
     @RequestMapping(value = "/{id}", method = RequestMethod.GET)
@@ -160,11 +269,13 @@
         if (status > 0) {
             return CommonResult.success(status);
         } else if (status == -1) {
-            return CommonResult.failed("鎻愪氦鍙傛暟涓嶅悎娉�");
+            return CommonResult.failed("瀵嗙爜闀垮害8鍒�16浣嶄笖瀵嗙爜涓殑瀛楃蹇呴』鍖呭惈瀛楁瘝锛堝ぇ鍐欐垨鑰呭皬鍐欙級鍜屽繀椤诲寘鍚暟瀛楋紝涓嶈兘鍖呭惈绌烘牸");
         } else if (status == -2) {
             return CommonResult.failed("鎵句笉鍒拌鐢ㄦ埛");
         } else if (status == -3) {
             return CommonResult.failed("鏃у瘑鐮侀敊璇�");
+        } else if (status == -4) {
+            return CommonResult.failed("瀵嗙爜涓嶈兘鍜岀櫥褰曞悕瀹屽叏涓�鑷�");
         } else {
             return CommonResult.failed();
         }
@@ -253,4 +364,11 @@
     public CommonResult<List<UmsAdmin>> getDepartUser(@PathVariable Long departId) {
         return CommonResult.success(adminService.getDepartUser(departId));
     }
+
+    @GetMapping(value = "/systemInfo")
+    @ResponseBody
+    public String getImages(HttpServletRequest request, HttpServletResponse response) {
+        return "閬傛槍缁煎悎鎵ф硶骞冲彴";
+
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0