From 23855599412c4d61b38d78f0f3abd3430a48b5b1 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期三, 25 六月 2025 11:51:38 +0800 Subject: [PATCH] Merge branch 'mdc_hyjs_master' --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java | 1591 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,591 insertions(+), 0 deletions(-) diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java new file mode 100644 index 0000000..ba318e0 --- /dev/null +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -0,0 +1,1591 @@ +package org.jeecg.modules.system.controller; + + +import cn.hutool.core.util.RandomUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +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.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authz.annotation.RequiresRoles; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.aspect.annotation.PermissionData; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.SymbolConstant; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.*; +import org.jeecg.modules.base.service.BaseCommonService; +import org.jeecg.modules.system.entity.*; +import org.jeecg.modules.system.model.DepartIdModel; +import org.jeecg.modules.system.model.ProductionIdModel; +import org.jeecg.modules.system.model.SysUserSysDepartModel; +import org.jeecg.modules.system.service.*; +import org.jeecg.modules.system.vo.SysDepartUsersVO; +import org.jeecg.modules.system.vo.SysUserRoleVO; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.*; +import java.util.stream.Collectors; + +/** + * <p> + * 鐢ㄦ埛琛� 鍓嶇鎺у埗鍣� + * </p> + * + * @Author scott + * @since 2018-12-20 + */ +@Slf4j +@Api(tags = "鐢ㄦ埛琛�") +@RestController +@RequestMapping("/sys/user") +public class SysUserController { + + @Autowired + private ISysUserService sysUserService; + + @Autowired + private ISysDepartService sysDepartService; + + @Autowired + private ISysUserRoleService sysUserRoleService; + + @Autowired + private ISysUserDepartService sysUserDepartService; + + @Autowired + private ISysUserRoleService userRoleService; + + @Autowired + private ISysDepartRoleUserService departRoleUserService; + + @Autowired + private ISysDepartRoleService departRoleService; + + @Autowired + private RedisUtil redisUtil; + + @Value("${jeecg.path.upload}") + private String upLoadPath; + + @Autowired + private BaseCommonService baseCommonService; + + @Resource + private IMdcUserProductionService userProductionService; + + /** + * 鑾峰彇鐢ㄦ埛鍒楄〃鏁版嵁 + * + * @param user + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @PermissionData(pageComponent = "system/UserList") + @RequestMapping(value = "/list", method = RequestMethod.GET) + public Result<IPage<SysUser>> queryPageList(SysUser user, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { + Result<IPage<SysUser>> result = new Result<IPage<SysUser>>(); + QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap()); + + //update-begin-Author:wangshuai--Date:20211119--for:銆恦ue3銆戦�氳繃閮ㄩ棬id鏌ヨ鐢ㄦ埛锛岄�氳繃code鏌ヨid + //閮ㄩ棬ID + String departId = req.getParameter("departId"); + if (oConvertUtils.isNotEmpty(departId)) { + LambdaQueryWrapper<SysUserDepart> query = new LambdaQueryWrapper<>(); + query.eq(SysUserDepart::getDepId, departId); + List<SysUserDepart> list = sysUserDepartService.list(query); + List<String> userIds = list.stream().map(SysUserDepart::getUserId).collect(Collectors.toList()); + //update-begin---author:wangshuai ---date:20220322 for锛歔issues/I4XTYB]鏌ヨ鐢ㄦ埛鏃讹紝褰撻儴闂╥d 涓嬫病鏈夊垎閰嶇敤鎴锋椂鎺ュ彛鎶ラ敊------------ + if (oConvertUtils.listIsNotEmpty(userIds)) { + queryWrapper.in("id", userIds); + } else { + return Result.OK(); + } + //update-end---author:wangshuai ---date:20220322 for锛歔issues/I4XTYB]鏌ヨ鐢ㄦ埛鏃讹紝褰撻儴闂╥d 涓嬫病鏈夊垎閰嶇敤鎴锋椂鎺ュ彛鎶ラ敊------------ + } + //鐢ㄦ埛ID + String code = req.getParameter("code"); + if (oConvertUtils.isNotEmpty(code)) { + queryWrapper.in("id", Arrays.asList(code.split(","))); + pageSize = code.split(",").length; + } + //update-end-Author:wangshuai--Date:20211119--for:銆恦ue3銆戦�氳繃閮ㄩ棬id鏌ヨ鐢ㄦ埛锛岄�氳繃code鏌ヨid + + //update-begin-author:taoyan--date:20220104--for: JTC-372 銆愮敤鎴峰喕缁撻棶棰樸�� online鎺堟潈銆佺敤鎴风粍浠讹紝閫夋嫨鐢ㄦ埛閮借兘鐪嬪埌琚喕缁撶殑鐢ㄦ埛 + String status = req.getParameter("status"); + if (oConvertUtils.isNotEmpty(status)) { + queryWrapper.eq("status", Integer.parseInt(status)); + } + //update-end-author:taoyan--date:20220104--for: JTC-372 銆愮敤鎴峰喕缁撻棶棰樸�� online鎺堟潈銆佺敤鎴风粍浠讹紝閫夋嫨鐢ㄦ埛閮借兘鐪嬪埌琚喕缁撶殑鐢ㄦ埛 + + //TODO 澶栭儴妯℃嫙鐧婚檰涓存椂璐﹀彿锛屽垪琛ㄤ笉鏄剧ず + queryWrapper.ne("username", "_reserve_user_external"); + Page<SysUser> page = new Page<SysUser>(pageNo, pageSize); + IPage<SysUser> pageList = sysUserService.page(page, queryWrapper); + + //鎵归噺鏌ヨ鐢ㄦ埛鐨勬墍灞為儴闂ㄥ拰浜х嚎 + //step.1 鍏堟嬁鍒板叏閮ㄧ殑 useids + //step.2 閫氳繃 useids锛屼竴娆℃�ф煡璇㈢敤鎴风殑鎵�灞為儴闂ㄥ拰浜х嚎鍚嶅瓧 + List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList()); + if (userIds != null && userIds.size() > 0) { + Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds); + Map<String, String> useProNames = sysUserService.getProNamesByUserIds(userIds); + pageList.getRecords().forEach(item -> { + item.setOrgCodeTxt(useDepNames.get(item.getId())); + item.setProductionName(useProNames.get(item.getId())); + }); + } + result.setSuccess(true); + result.setResult(pageList); + log.info(pageList.toString()); + return result; + } + + /** + * 鑾峰彇鐢ㄦ埛鍒楄〃鏁版嵁 + * @param user + * @param req + * @return + */ + @RequestMapping(value = "/listAll", method = RequestMethod.GET) + public Result<List<SysUser>> listAll(SysUser user,HttpServletRequest req) { + Result<List<SysUser>> result = new Result<List<SysUser>>(); + QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap()); + + //update-begin-Author:wangshuai--Date:20211119--for:銆恦ue3銆戦�氳繃閮ㄩ棬id鏌ヨ鐢ㄦ埛锛岄�氳繃code鏌ヨid + //閮ㄩ棬ID + String departId = req.getParameter("departId"); + if(oConvertUtils.isNotEmpty(departId)){ + LambdaQueryWrapper<SysUserDepart> query = new LambdaQueryWrapper<>(); + query.eq(SysUserDepart::getDepId,departId); + List<SysUserDepart> list = sysUserDepartService.list(query); + List<String> userIds = list.stream().map(SysUserDepart::getUserId).collect(Collectors.toList()); + //update-begin---author:wangshuai ---date:20220322 for锛歔issues/I4XTYB]鏌ヨ鐢ㄦ埛鏃讹紝褰撻儴闂╥d 涓嬫病鏈夊垎閰嶇敤鎴锋椂鎺ュ彛鎶ラ敊------------ + if(oConvertUtils.listIsNotEmpty(userIds)){ + queryWrapper.in("id",userIds); + }else{ + return Result.OK(); + } + //update-end---author:wangshuai ---date:20220322 for锛歔issues/I4XTYB]鏌ヨ鐢ㄦ埛鏃讹紝褰撻儴闂╥d 涓嬫病鏈夊垎閰嶇敤鎴锋椂鎺ュ彛鎶ラ敊------------ + } + //鐢ㄦ埛ID + String code = req.getParameter("code"); + if(oConvertUtils.isNotEmpty(code)){ + queryWrapper.in("id",Arrays.asList(code.split(","))); + } + //update-end-Author:wangshuai--Date:20211119--for:銆恦ue3銆戦�氳繃閮ㄩ棬id鏌ヨ鐢ㄦ埛锛岄�氳繃code鏌ヨid + + //update-begin-author:taoyan--date:20220104--for: JTC-372 銆愮敤鎴峰喕缁撻棶棰樸�� online鎺堟潈銆佺敤鎴风粍浠讹紝閫夋嫨鐢ㄦ埛閮借兘鐪嬪埌琚喕缁撶殑鐢ㄦ埛 + String status = req.getParameter("status"); + if(oConvertUtils.isNotEmpty(status)){ + queryWrapper.eq("status", Integer.parseInt(status)); + } + //update-end-author:taoyan--date:20220104--for: JTC-372 銆愮敤鎴峰喕缁撻棶棰樸�� online鎺堟潈銆佺敤鎴风粍浠讹紝閫夋嫨鐢ㄦ埛閮借兘鐪嬪埌琚喕缁撶殑鐢ㄦ埛 + + //TODO 澶栭儴妯℃嫙鐧婚檰涓存椂璐﹀彿锛屽垪琛ㄤ笉鏄剧ず + queryWrapper.ne("username","_reserve_user_external"); + List<SysUser> list = sysUserService.list(queryWrapper); + //鎵归噺鏌ヨ鐢ㄦ埛鐨勬墍灞為儴闂� + //step.1 鍏堟嬁鍒板叏閮ㄧ殑 useids + //step.2 閫氳繃 useids锛屼竴娆℃�ф煡璇㈢敤鎴风殑鎵�灞為儴闂ㄥ悕瀛� + List<String> userIds = list.stream().map(SysUser::getId).collect(Collectors.toList()); + Map<String, String> useProNames = sysUserService.getProNamesByUserIds(userIds); + if(userIds!=null && userIds.size()>0){ + Map<String,String> useDepNames = sysUserService.getDepNamesByUserIds(userIds); + list.forEach(item->{ + item.setOrgCodeTxt(useDepNames.get(item.getId())); + item.setProductionName(useProNames.get(item.getId())); + }); + } + result.setSuccess(true); + result.setResult(list); + log.info(list.toString()); + return result; + } + + //@RequiresRoles({"admin"}) + //Permissions("system:user:add") + @RequestMapping(value = "/add", method = RequestMethod.POST) + public Result<SysUser> add(@RequestBody JSONObject jsonObject) { + Result<SysUser> result = new Result<SysUser>(); + String selectedRoles = jsonObject.getString("selectedroles"); + String selectedDeparts = jsonObject.getString("selecteddeparts"); + String selectedProductions = jsonObject.getString("selectedProduction"); + try { + SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class); + user.setCreateTime(new Date());//璁剧疆鍒涘缓鏃堕棿 + user.setPasswordTime(new Date());//璁剧疆瀵嗙爜鏃堕棿 + user.setPasswordFlag(CommonConstant.DEL_FLAG_1);//璁剧疆瀵嗙爜棣栨鏍囪瘑 + String salt = oConvertUtils.randomGen(8); + user.setSalt(salt); + String passwordEncode = PasswordUtil.encrypt(user.getUsername(), user.getPassword(), salt); + user.setPassword(passwordEncode); + user.setStatus(1); + user.setDelFlag(CommonConstant.DEL_FLAG_0); + //鐢ㄦ埛琛ㄥ瓧娈祇rg_code涓嶈兘鍦ㄨ繖閲岃缃粬鐨勫�� + user.setOrgCode(null); + // 淇濆瓨鐢ㄦ埛璧颁竴涓猻ervice 淇濊瘉浜嬪姟 + sysUserService.saveUser(user, selectedRoles, selectedDeparts, selectedProductions); + baseCommonService.addLog("娣诲姞鐢ㄦ埛锛寀sername锛� " + user.getUsername(), CommonConstant.LOG_TYPE_2, 2); + result.success("娣诲姞鎴愬姛锛�"); + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("鎿嶄綔澶辫触"); + } + return result; + } + + //@RequiresRoles({"admin"}) + //Permissions("system:user:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<SysUser> edit(@RequestBody JSONObject jsonObject) { + Result<SysUser> result = new Result<SysUser>(); + try { + SysUser sysUser = sysUserService.getById(jsonObject.getString("id")); + baseCommonService.addLog("缂栬緫鐢ㄦ埛锛寀sername锛� " + sysUser.getUsername(), CommonConstant.LOG_TYPE_2, 2); + if (sysUser == null) { + result.error500("鏈壘鍒板搴斿疄浣�"); + } else { + SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class); + user.setUpdateTime(new Date()); + //String passwordEncode = PasswordUtil.encrypt(user.getUsername(), user.getPassword(), sysUser.getSalt()); + user.setPassword(sysUser.getPassword()); + String roles = jsonObject.getString("selectedroles"); + String departs = jsonObject.getString("selecteddeparts"); + String productions = jsonObject.getString("selectedProduction"); + if (oConvertUtils.isEmpty(departs)) { + //vue3.0鍓嶇鍙紶閫掍簡departIds + departs = user.getDepartIds(); + } + if (oConvertUtils.isNotEmpty(productions)) { + productions = user.getProductionIds(); + } + //鐢ㄦ埛琛ㄥ瓧娈祇rg_code涓嶈兘鍦ㄨ繖閲岃缃粬鐨勫�� + user.setOrgCode(null); + // 淇敼鐢ㄦ埛璧颁竴涓猻ervice 淇濊瘉浜嬪姟 + sysUserService.editUser(user, roles, departs, productions); + result.success("淇敼鎴愬姛!"); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("鎿嶄綔澶辫触"); + } + return result; + } + + /** + * 鍒犻櫎鐢ㄦ埛 + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/delete", method = RequestMethod.DELETE) + public Result<?> delete(@RequestParam(name = "id", required = true) String id) { + baseCommonService.addLog("鍒犻櫎鐢ㄦ埛锛宨d锛� " + id, CommonConstant.LOG_TYPE_2, 3); + this.sysUserService.deleteUser(id); + return Result.ok("鍒犻櫎鐢ㄦ埛鎴愬姛"); + } + + /** + * 鎵归噺鍒犻櫎鐢ㄦ埛 + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE) + public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + baseCommonService.addLog("鎵归噺鍒犻櫎鐢ㄦ埛锛� ids锛� " + ids, CommonConstant.LOG_TYPE_2, 3); + this.sysUserService.deleteBatchUsers(ids); + return Result.ok("鎵归噺鍒犻櫎鐢ㄦ埛鎴愬姛"); + } + + /** + * 鍐荤粨&瑙e喕鐢ㄦ埛 + * + * @param jsonObject + * @return + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/frozenBatch", method = RequestMethod.PUT) + public Result<SysUser> frozenBatch(@RequestBody JSONObject jsonObject) { + Result<SysUser> result = new Result<SysUser>(); + try { + String ids = jsonObject.getString("ids"); + String status = jsonObject.getString("status"); + String[] arr = ids.split(","); + for (String id : arr) { + if (oConvertUtils.isNotEmpty(id)) { + this.sysUserService.update(new SysUser().setStatus(Integer.parseInt(status)), + new UpdateWrapper<SysUser>().lambda().eq(SysUser::getId, id)); + } + } + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("鎿嶄綔澶辫触" + e.getMessage()); + } + result.success("鎿嶄綔鎴愬姛!"); + return result; + + } + + @RequestMapping(value = "/queryById", method = RequestMethod.GET) + public Result<SysUser> queryById(@RequestParam(name = "id", required = true) String id) { + Result<SysUser> result = new Result<SysUser>(); + SysUser sysUser = sysUserService.getById(id); + if (sysUser == null) { + result.error500("鏈壘鍒板搴斿疄浣�"); + } else { + result.setResult(sysUser); + result.setSuccess(true); + } + return result; + } + + @RequestMapping(value = "/queryUserRole", method = RequestMethod.GET) + public Result<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) { + Result<List<String>> result = new Result<>(); + List<String> list = new ArrayList<String>(); + List<SysUserRole> userRole = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, userid)); + if (userRole == null || userRole.size() <= 0) { + result.error500("鏈壘鍒扮敤鎴风浉鍏宠鑹蹭俊鎭�"); + } else { + for (SysUserRole sysUserRole : userRole) { + list.add(sysUserRole.getRoleId()); + } + result.setSuccess(true); + result.setResult(list); + } + return result; + } + + + /** + * 鏍¢獙鐢ㄦ埛璐﹀彿鏄惁鍞竴<br> + * 鍙互鏍¢獙鍏朵粬 闇�瑕佹楠屼粈涔堝氨浼犱粈涔堛�傘�傘�� + * + * @param sysUser + * @return + */ + @RequestMapping(value = "/checkOnlyUser", method = RequestMethod.GET) + public Result<Boolean> checkOnlyUser(SysUser sysUser) { + Result<Boolean> result = new Result<>(); + //濡傛灉姝ゅ弬鏁颁负false鍒欑▼搴忓彂鐢熷紓甯� + result.setResult(true); + try { + //閫氳繃浼犲叆淇℃伅鏌ヨ鏂扮殑鐢ㄦ埛淇℃伅 + sysUser.setPassword(null); + SysUser user = sysUserService.getOne(new QueryWrapper<SysUser>(sysUser)); + if (user != null) { + result.setSuccess(false); + result.setMessage("鐢ㄦ埛璐﹀彿宸插瓨鍦�"); + return result; + } + + } catch (Exception e) { + result.setSuccess(false); + result.setMessage(e.getMessage()); + return result; + } + result.setSuccess(true); + return result; + } + + /** + * 淇敼瀵嗙爜 + */ + @RequiresRoles({"admin"}) + @RequestMapping(value = "/changePassword", method = RequestMethod.PUT) + public Result<?> changePassword(@RequestBody SysUser sysUser) { + SysUser u = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, sysUser.getUsername())); + if (u == null) { + return Result.error("鐢ㄦ埛涓嶅瓨鍦紒"); + } + sysUser.setId(u.getId()); + //update-begin---author:wangshuai ---date:20220316 for锛歔VUEN-234]淇敼瀵嗙爜娣诲姞鏁忔劅鏃ュ織------------ + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + baseCommonService.addLog("淇敼鐢ㄦ埛 " + sysUser.getUsername() + " 鐨勫瘑鐮侊紝鎿嶄綔浜猴細 " + loginUser.getUsername(), CommonConstant.LOG_TYPE_2, 2); + //update-end---author:wangshuai ---date:20220316 for锛歔VUEN-234]淇敼瀵嗙爜娣诲姞鏁忔劅鏃ュ織------------ + return sysUserService.changePassword(sysUser); + } + + /** + * 鏌ヨ鎸囧畾鐢ㄦ埛鍜岄儴闂ㄥ叧鑱旂殑鏁版嵁 + * + * @param userId + * @return + */ + @RequestMapping(value = "/userDepartList", method = RequestMethod.GET) + public Result<List<DepartIdModel>> getUserDepartsList(@RequestParam(name = "userId", required = true) String userId) { + Result<List<DepartIdModel>> result = new Result<>(); + try { + List<DepartIdModel> depIdModelList = this.sysUserDepartService.queryDepartIdsOfUser(userId); + if (depIdModelList != null && depIdModelList.size() > 0) { + result.setSuccess(true); + result.setMessage("鏌ユ壘鎴愬姛"); + result.setResult(depIdModelList); + } else { + result.setSuccess(false); + result.setMessage("鏌ユ壘澶辫触"); + } + return result; + } catch (Exception e) { + log.error(e.getMessage(), e); + result.setSuccess(false); + result.setMessage("鏌ユ壘杩囩▼涓嚭鐜颁簡寮傚父: " + e.getMessage()); + return result; + } + + } + + @AutoLog(value = "鐢ㄦ埛琛�-鏌ヨ鎸囧畾鐢ㄦ埛鍜屼骇绾垮叧鑱旂殑鏁版嵁") + @ApiOperation(value = "鐢ㄦ埛琛�-鏌ヨ鎸囧畾鐢ㄦ埛鍜屼骇绾垮叧鑱旂殑鏁版嵁", notes = "鐢ㄦ埛琛�-鏌ヨ鎸囧畾鐢ㄦ埛鍜屼骇绾垮叧鑱旂殑鏁版嵁") + @GetMapping(value = "/userProductionList") + public Result<List<ProductionIdModel>> getUserProductionsList(@RequestParam(name = "userId", required = true) String userId) { + Result<List<ProductionIdModel>> result = new Result<>(); + try { + List<ProductionIdModel> proIdModelList = this.userProductionService.queryProductionIdsOfUser(userId); + if (proIdModelList != null && !proIdModelList.isEmpty()) { + result.setSuccess(true); + result.setMessage("鏌ユ壘鎴愬姛"); + result.setResult(proIdModelList); + } else { + result.setSuccess(false); + result.setMessage("鏌ユ壘澶辫触"); + } + return result; + } catch (Exception e) { + log.error(e.getMessage(), e); + result.setSuccess(false); + result.setMessage("鏌ユ壘杩囩▼涓嚭鐜颁簡寮傚父: " + e.getMessage()); + return result; + } + } + + /** + * 鐢熸垚鍦ㄦ坊鍔犵敤鎴锋儏鍐典笅娌℃湁涓婚敭鐨勯棶棰�,杩斿洖缁欏墠绔�,鏍规嵁璇d缁戝畾閮ㄩ棬鏁版嵁 + * + * @return + */ + @RequestMapping(value = "/generateUserId", method = RequestMethod.GET) + public Result<String> generateUserId() { + Result<String> result = new Result<>(); + System.out.println("鎴戞墽琛屼簡,鐢熸垚鐢ㄦ埛ID=============================="); + String userId = UUID.randomUUID().toString().replace("-", ""); + result.setSuccess(true); + result.setResult(userId); + return result; + } + + /** + * 鏍规嵁閮ㄩ棬id鏌ヨ鐢ㄦ埛淇℃伅 + * + * @param id + * @return + */ + @RequestMapping(value = "/queryUserByDepId", method = RequestMethod.GET) + public Result<List<SysUser>> queryUserByDepId(@RequestParam(name = "id", required = true) String id, @RequestParam(name = "realname", required = false) String realname) { + Result<List<SysUser>> result = new Result<>(); + //List<SysUser> userList = sysUserDepartService.queryUserByDepId(id); + SysDepart sysDepart = sysDepartService.getById(id); + List<SysUser> userList = sysUserDepartService.queryUserByDepCode(sysDepart.getOrgCode(), realname); + + //鎵归噺鏌ヨ鐢ㄦ埛鐨勬墍灞為儴闂� + //step.1 鍏堟嬁鍒板叏閮ㄧ殑 useids + //step.2 閫氳繃 useids锛屼竴娆℃�ф煡璇㈢敤鎴风殑鎵�灞為儴闂ㄥ悕瀛� + List<String> userIds = userList.stream().map(SysUser::getId).collect(Collectors.toList()); + if (userIds != null && userIds.size() > 0) { + Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds); + userList.forEach(item -> { + //TODO 涓存椂鍊熺敤杩欎釜瀛楁鐢ㄤ簬椤甸潰灞曠ず + item.setOrgCodeTxt(useDepNames.get(item.getId())); + }); + } + + try { + result.setSuccess(true); + result.setResult(userList); + return result; + } catch (Exception e) { + log.error(e.getMessage(), e); + result.setSuccess(false); + return result; + } + } + + /** + * 鐢ㄦ埛閫夋嫨缁勪欢 涓撶敤 鏍规嵁鐢ㄦ埛璐﹀彿鎴栭儴闂ㄥ垎椤垫煡璇� + * + * @param departId + * @param username + * @return + */ + @RequestMapping(value = "/queryUserComponentData", method = RequestMethod.GET) + public Result<IPage<SysUser>> queryUserComponentData( + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(name = "departId", required = false) String departId, + @RequestParam(name = "realname", required = false) String realname, + @RequestParam(name = "username", required = false) String username, + @RequestParam(name = "id", required = false) String id) { + //update-begin-author:taoyan date:2022-7-14 for: VUEN-1702銆愮姝㈤棶棰樸�憇ql娉ㄥ叆婕忔礊 + String[] arr = new String[]{departId, realname, username, id}; + SqlInjectionUtil.filterContent(arr, SymbolConstant.SINGLE_QUOTATION_MARK); + //update-end-author:taoyan date:2022-7-14 for: VUEN-1702銆愮姝㈤棶棰樸�憇ql娉ㄥ叆婕忔礊 + IPage<SysUser> pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize, pageNo, id); + return Result.OK(pageList); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param sysUser + */ + //@RequiresRoles({"admin"}) + //@RequiresPermissions("system:user:export") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(SysUser sysUser, HttpServletRequest request) { + // Step.1 缁勮鏌ヨ鏉′欢 + QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(sysUser, request.getParameterMap()); + //Step.2 AutoPoi 瀵煎嚭Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //update-begin--Author:kangxiaolin Date:20180825 for锛歔03]鐢ㄦ埛瀵煎嚭锛屽鏋滈�夋嫨鏁版嵁鍒欏彧瀵煎嚭鐩稿叧鏁版嵁-------------------- + String selections = request.getParameter("selections"); + if (!oConvertUtils.isEmpty(selections)) { + queryWrapper.in("id", selections.split(",")); + } + //update-end--Author:kangxiaolin Date:20180825 for锛歔03]鐢ㄦ埛瀵煎嚭锛屽鏋滈�夋嫨鏁版嵁鍒欏彧瀵煎嚭鐩稿叧鏁版嵁---------------------- + List<SysUser> pageList = sysUserService.list(queryWrapper); + + //瀵煎嚭鏂囦欢鍚嶇О + mv.addObject(NormalExcelConstants.FILE_NAME, "鐢ㄦ埛鍒楄〃"); + mv.addObject(NormalExcelConstants.CLASS, SysUser.class); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + ExportParams exportParams = new ExportParams("鐢ㄦ埛鍒楄〃鏁版嵁", "瀵煎嚭浜�:" + user.getRealname(), "瀵煎嚭淇℃伅"); + exportParams.setImageBasePath(upLoadPath); + mv.addObject(NormalExcelConstants.PARAMS, exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, pageList); + return mv; + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + //@RequiresRoles({"admin"}) + //Permissions("system:user:import") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + // 閿欒淇℃伅 + List<String> errorMessage = new ArrayList<>(); + int successLines = 0, errorLines = 0; + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue();// 鑾峰彇涓婁紶鏂囦欢瀵硅薄 + ImportParams params = new ImportParams(); + params.setTitleRows(2); + params.setHeadRows(1); + params.setNeedSave(true); + try { + List<SysUser> listSysUsers = ExcelImportUtil.importExcel(file.getInputStream(), SysUser.class, params); + for (int i = 0; i < listSysUsers.size(); i++) { + SysUser sysUserExcel = listSysUsers.get(i); + if (StringUtils.isBlank(sysUserExcel.getPassword())) { + // 瀵嗙爜榛樿涓� 鈥�123456鈥� + sysUserExcel.setPassword("123456"); + } + // 瀵嗙爜鍔犲瘑鍔犵洂 + String salt = oConvertUtils.randomGen(8); + sysUserExcel.setSalt(salt); + String passwordEncode = PasswordUtil.encrypt(sysUserExcel.getUsername(), sysUserExcel.getPassword(), salt); + sysUserExcel.setPassword(passwordEncode); + try { + sysUserService.save(sysUserExcel); + successLines++; + } catch (Exception e) { + errorLines++; + String message = e.getMessage().toLowerCase(); + int lineNumber = i + 1; + // 閫氳繃绱㈠紩鍚嶅垽鏂嚭閿欎俊鎭� + if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_USERNAME)) { + errorMessage.add("绗� " + lineNumber + " 琛岋細鐢ㄦ埛鍚嶅凡缁忓瓨鍦紝蹇界暐瀵煎叆銆�"); + } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_WORK_NO)) { + errorMessage.add("绗� " + lineNumber + " 琛岋細宸ュ彿宸茬粡瀛樺湪锛屽拷鐣ュ鍏ャ��"); + } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_PHONE)) { + errorMessage.add("绗� " + lineNumber + " 琛岋細鎵嬫満鍙峰凡缁忓瓨鍦紝蹇界暐瀵煎叆銆�"); + } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_EMAIL)) { + errorMessage.add("绗� " + lineNumber + " 琛岋細鐢靛瓙閭欢宸茬粡瀛樺湪锛屽拷鐣ュ鍏ャ��"); + } else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER)) { + errorMessage.add("绗� " + lineNumber + " 琛岋細杩濆弽琛ㄥ敮涓�鎬х害鏉熴��"); + } else { + errorMessage.add("绗� " + lineNumber + " 琛岋細鏈煡閿欒锛屽拷鐣ュ鍏�"); + log.error(e.getMessage(), e); + } + } + // 鎵归噺灏嗛儴闂ㄥ拰鐢ㄦ埛淇℃伅寤虹珛鍏宠仈鍏崇郴 + String departIds = sysUserExcel.getDepartIds(); + if (StringUtils.isNotBlank(departIds)) { + String userId = sysUserExcel.getId(); + String[] departIdArray = departIds.split(","); + List<SysUserDepart> userDepartList = new ArrayList<>(departIdArray.length); + for (String departId : departIdArray) { + userDepartList.add(new SysUserDepart(userId, departId)); + } + sysUserDepartService.saveBatch(userDepartList); + } + + } + } catch (Exception e) { + errorMessage.add("鍙戠敓寮傚父锛�" + e.getMessage()); + log.error(e.getMessage(), e); + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + log.error(e.getMessage(), e); + } + } + } + return ImportExcelUtil.imporReturnRes(errorLines, successLines, errorMessage); + } + + /** + * @param userIds + * @return + * @鍔熻兘锛氭牴鎹甶d 鎵归噺鏌ヨ + */ + @RequestMapping(value = "/queryByIds", method = RequestMethod.GET) + public Result<Collection<SysUser>> queryByIds(@RequestParam String userIds) { + Result<Collection<SysUser>> result = new Result<>(); + String[] userId = userIds.split(","); + Collection<String> idList = Arrays.asList(userId); + Collection<SysUser> userRole = sysUserService.listByIds(idList); + result.setSuccess(true); + result.setResult(userRole); + return result; + } + + /** + * 棣栭〉鐢ㄦ埛閲嶇疆瀵嗙爜 + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/updatePassword", method = RequestMethod.PUT) + public Result<?> updatePassword(@RequestBody JSONObject json) { + String username = json.getString("username"); + String oldpassword = json.getString("oldpassword"); + String password = json.getString("password"); + String confirmpassword = json.getString("confirmpassword"); + //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //if (!sysUser.getUsername().equals(username)) { + // return Result.error("鍙厑璁镐慨鏀硅嚜宸辩殑瀵嗙爜锛�"); + //} + SysUser user = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, username)); + if (user == null) { + return Result.error("鐢ㄦ埛涓嶅瓨鍦紒"); + } + //update-begin---author:wangshuai ---date:20220316 for锛歔VUEN-234]淇敼瀵嗙爜娣诲姞鏁忔劅鏃ュ織------------ + //LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + baseCommonService.addLog("淇敼瀵嗙爜锛寀sername锛� " + username, CommonConstant.LOG_TYPE_2, 2); + //update-end---author:wangshuai ---date:20220316 for锛歔VUEN-234]淇敼瀵嗙爜娣诲姞鏁忔劅鏃ュ織------------ + return sysUserService.resetPassword(username, oldpassword, password, confirmpassword); + } + + @RequestMapping(value = "/userRoleList", method = RequestMethod.GET) + public Result<IPage<SysUser>> userRoleList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { + Result<IPage<SysUser>> result = new Result<IPage<SysUser>>(); + Page<SysUser> page = new Page<SysUser>(pageNo, pageSize); + String roleId = req.getParameter("roleId"); + String username = req.getParameter("username"); + IPage<SysUser> pageList = sysUserService.getUserByRoleId(page, roleId, username); + result.setSuccess(true); + result.setResult(pageList); + return result; + } + + /** + * 缁欐寚瀹氳鑹叉坊鍔犵敤鎴� + * + * @param + * @return + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/addSysUserRole", method = RequestMethod.POST) + public Result<String> addSysUserRole(@RequestBody SysUserRoleVO sysUserRoleVO) { + Result<String> result = new Result<String>(); + try { + String sysRoleId = sysUserRoleVO.getRoleId(); + for (String sysUserId : sysUserRoleVO.getUserIdList()) { + SysUserRole sysUserRole = new SysUserRole(sysUserId, sysRoleId); + QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>(); + queryWrapper.eq("role_id", sysRoleId).eq("user_id", sysUserId); + SysUserRole one = sysUserRoleService.getOne(queryWrapper); + if (one == null) { + sysUserRoleService.save(sysUserRole); + } + + } + result.setMessage("娣诲姞鎴愬姛!"); + result.setSuccess(true); + return result; + } catch (Exception e) { + log.error(e.getMessage(), e); + result.setSuccess(false); + result.setMessage("鍑洪敊浜�: " + e.getMessage()); + return result; + } + } + + /** + * 鍒犻櫎鎸囧畾瑙掕壊鐨勭敤鎴峰叧绯� + * + * @param + * @return + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/deleteUserRole", method = RequestMethod.DELETE) + public Result<SysUserRole> deleteUserRole(@RequestParam(name = "roleId") String roleId, + @RequestParam(name = "userId", required = true) String userId + ) { + Result<SysUserRole> result = new Result<SysUserRole>(); + try { + QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>(); + queryWrapper.eq("role_id", roleId).eq("user_id", userId); + sysUserRoleService.remove(queryWrapper); + result.success("鍒犻櫎鎴愬姛!"); + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("鍒犻櫎澶辫触锛�"); + } + return result; + } + + /** + * 鎵归噺鍒犻櫎鎸囧畾瑙掕壊鐨勭敤鎴峰叧绯� + * + * @param + * @return + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/deleteUserRoleBatch", method = RequestMethod.DELETE) + public Result<SysUserRole> deleteUserRoleBatch( + @RequestParam(name = "roleId") String roleId, + @RequestParam(name = "userIds", required = true) String userIds) { + Result<SysUserRole> result = new Result<SysUserRole>(); + try { + QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<SysUserRole>(); + queryWrapper.eq("role_id", roleId).in("user_id", Arrays.asList(userIds.split(","))); + sysUserRoleService.remove(queryWrapper); + result.success("鍒犻櫎鎴愬姛!"); + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("鍒犻櫎澶辫触锛�"); + } + return result; + } + + /** + * 閮ㄩ棬鐢ㄦ埛鍒楄〃 + */ + @RequestMapping(value = "/departUserList", method = RequestMethod.GET) + public Result<IPage<SysUser>> departUserList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { + Result<IPage<SysUser>> result = new Result<IPage<SysUser>>(); + Page<SysUser> page = new Page<SysUser>(pageNo, pageSize); + String depId = req.getParameter("depId"); + String username = req.getParameter("username"); + //鏍规嵁閮ㄩ棬ID鏌ヨ,褰撳墠鍜屼笅绾ф墍鏈夌殑閮ㄩ棬IDS + List<String> subDepids = new ArrayList<>(); + //閮ㄩ棬id涓虹┖鏃讹紝鏌ヨ鎴戠殑閮ㄩ棬涓嬫墍鏈夌敤鎴� + if (oConvertUtils.isEmpty(depId)) { + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + int userIdentity = user.getUserIdentity() != null ? user.getUserIdentity() : CommonConstant.USER_IDENTITY_1; + if (oConvertUtils.isNotEmpty(userIdentity) && userIdentity == CommonConstant.USER_IDENTITY_2) { + subDepids = sysDepartService.getMySubDepIdsByDepId(user.getDepartIds()); + } + } else { + subDepids = sysDepartService.getSubDepIdsByDepId(depId); + } + if (subDepids != null && subDepids.size() > 0) { + IPage<SysUser> pageList = sysUserService.getUserByDepIds(page, subDepids, username); + //鎵归噺鏌ヨ鐢ㄦ埛鐨勬墍灞為儴闂� + //step.1 鍏堟嬁鍒板叏閮ㄧ殑 useids + //step.2 閫氳繃 useids锛屼竴娆℃�ф煡璇㈢敤鎴风殑鎵�灞為儴闂ㄥ悕瀛� + List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList()); + if (userIds != null && userIds.size() > 0) { + Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds); + pageList.getRecords().forEach(item -> { + //鎵归噺鏌ヨ鐢ㄦ埛鐨勬墍灞為儴闂� + item.setOrgCode(useDepNames.get(item.getId())); + }); + } + result.setSuccess(true); + result.setResult(pageList); + } else { + result.setSuccess(true); + result.setResult(null); + } + return result; + } + + + /** + * 鏍规嵁 orgCode 鏌ヨ鐢ㄦ埛锛屽寘鎷瓙閮ㄩ棬涓嬬殑鐢ㄦ埛 + * 鑻ユ煇涓敤鎴峰寘鍚涓儴闂紝鍒欎細鏄剧ず澶氭潯璁板綍锛屽彲鑷澶勭悊鎴愬崟鏉¤褰� + */ + @GetMapping("/queryByOrgCode") + public Result<?> queryByDepartId( + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(name = "orgCode") String orgCode, + SysUser userParams + ) { + IPage<SysUserSysDepartModel> pageList = sysUserService.queryUserByOrgCode(orgCode, userParams, new Page(pageNo, pageSize)); + return Result.ok(pageList); + } + + /** + * 鏍规嵁 orgCode 鏌ヨ鐢ㄦ埛锛屽寘鎷瓙閮ㄩ棬涓嬬殑鐢ㄦ埛 + * 閽堝閫氳褰曟ā鍧楀仛鐨勬帴鍙o紝灏嗗涓儴闂ㄧ殑鐢ㄦ埛鍚堝苟鎴愪竴鏉¤褰曪紝骞惰浆鎴愬鍓嶇鍙嬪ソ鐨勬牸寮� + */ + @GetMapping("/queryByOrgCodeForAddressList") + public Result<?> queryByOrgCodeForAddressList( + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(name = "orgCode", required = false) String orgCode, + SysUser userParams + ) { + IPage page = new Page(pageNo, pageSize); + IPage<SysUserSysDepartModel> pageList = sysUserService.queryUserByOrgCode(orgCode, userParams, page); + List<SysUserSysDepartModel> list = pageList.getRecords(); + + // 璁板綍鎵�鏈夊嚭鐜拌繃鐨� user, key = userId + Map<String, JSONObject> hasUser = new HashMap<>(list.size()); + + JSONArray resultJson = new JSONArray(list.size()); + + for (SysUserSysDepartModel item : list) { + String userId = item.getId(); + // userId + JSONObject getModel = hasUser.get(userId); + // 涔嬪墠宸插瓨鍦ㄨ繃璇ョ敤鎴凤紝鐩存帴鍚堝苟鏁版嵁 + if (getModel != null) { + String departName = getModel.get("departName").toString(); + getModel.put("departName", (departName + " | " + item.getDepartName())); + } else { + // 灏嗙敤鎴峰璞¤浆鎹负json鏍煎紡锛屽苟灏嗛儴闂ㄤ俊鎭悎骞跺埌 json 涓� + JSONObject json = JSON.parseObject(JSON.toJSONString(item)); + json.remove("id"); + json.put("userId", userId); + json.put("departId", item.getDepartId()); + json.put("departName", item.getDepartName()); +// json.put("avatar", item.getSysUser().getAvatar()); + resultJson.add(json); + hasUser.put(userId, json); + } + } + + IPage<JSONObject> result = new Page<>(pageNo, pageSize, pageList.getTotal()); + result.setRecords(resultJson.toJavaList(JSONObject.class)); + return Result.ok(result); + } + + /** + * 缁欐寚瀹氶儴闂ㄦ坊鍔犲搴旂殑鐢ㄦ埛 + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/editSysDepartWithUser", method = RequestMethod.POST) + public Result<String> editSysDepartWithUser(@RequestBody SysDepartUsersVO sysDepartUsersVO) { + Result<String> result = new Result<String>(); + try { + String sysDepId = sysDepartUsersVO.getDepId(); + for (String sysUserId : sysDepartUsersVO.getUserIdList()) { + SysUserDepart sysUserDepart = new SysUserDepart(null, sysUserId, sysDepId); + QueryWrapper<SysUserDepart> queryWrapper = new QueryWrapper<SysUserDepart>(); + queryWrapper.eq("dep_id", sysDepId).eq("user_id", sysUserId); + SysUserDepart one = sysUserDepartService.getOne(queryWrapper); + if (one == null) { + sysUserDepartService.save(sysUserDepart); + } + } + result.setMessage("娣诲姞鎴愬姛!"); + result.setSuccess(true); + return result; + } catch (Exception e) { + log.error(e.getMessage(), e); + result.setSuccess(false); + result.setMessage("鍑洪敊浜�: " + e.getMessage()); + return result; + } + } + + /** + * 鍒犻櫎鎸囧畾鏈烘瀯鐨勭敤鎴峰叧绯� + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/deleteUserInDepart", method = RequestMethod.DELETE) + public Result<SysUserDepart> deleteUserInDepart(@RequestParam(name = "depId") String depId, + @RequestParam(name = "userId", required = true) String userId + ) { + Result<SysUserDepart> result = new Result<SysUserDepart>(); + try { + QueryWrapper<SysUserDepart> queryWrapper = new QueryWrapper<SysUserDepart>(); + queryWrapper.eq("dep_id", depId).eq("user_id", userId); + boolean b = sysUserDepartService.remove(queryWrapper); + if (b) { + List<SysDepartRole> sysDepartRoleList = departRoleService.list(new QueryWrapper<SysDepartRole>().eq("depart_id", depId)); + List<String> roleIds = sysDepartRoleList.stream().map(SysDepartRole::getId).collect(Collectors.toList()); + if (roleIds != null && roleIds.size() > 0) { + QueryWrapper<SysDepartRoleUser> query = new QueryWrapper<>(); + query.eq("user_id", userId).in("drole_id", roleIds); + departRoleUserService.remove(query); + } + result.success("鍒犻櫎鎴愬姛!"); + } else { + result.error500("褰撳墠閫変腑閮ㄩ棬涓庣敤鎴锋棤鍏宠仈鍏崇郴!"); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("鍒犻櫎澶辫触锛�"); + } + return result; + } + + /** + * 鎵归噺鍒犻櫎鎸囧畾鏈烘瀯鐨勭敤鎴峰叧绯� + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/deleteUserInDepartBatch", method = RequestMethod.DELETE) + public Result<SysUserDepart> deleteUserInDepartBatch( + @RequestParam(name = "depId") String depId, + @RequestParam(name = "userIds", required = true) String userIds) { + Result<SysUserDepart> result = new Result<SysUserDepart>(); + try { + QueryWrapper<SysUserDepart> queryWrapper = new QueryWrapper<SysUserDepart>(); + queryWrapper.eq("dep_id", depId).in("user_id", Arrays.asList(userIds.split(","))); + boolean b = sysUserDepartService.remove(queryWrapper); + if (b) { + departRoleUserService.removeDeptRoleUser(Arrays.asList(userIds.split(",")), depId); + } + result.success("鍒犻櫎鎴愬姛!"); + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("鍒犻櫎澶辫触锛�"); + } + return result; + } + + /** + * 鏌ヨ褰撳墠鐢ㄦ埛鐨勬墍鏈夐儴闂�/褰撳墠閮ㄩ棬缂栫爜 + * + * @return + */ + @RequestMapping(value = "/getCurrentUserDeparts", method = RequestMethod.GET) + public Result<Map<String, Object>> getCurrentUserDeparts() { + Result<Map<String, Object>> result = new Result<Map<String, Object>>(); + try { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List<SysDepart> list = this.sysDepartService.queryUserDeparts(sysUser.getId()); + Map<String, Object> map = new HashMap(5); + map.put("list", list); + map.put("orgCode", sysUser.getOrgCode()); + result.setSuccess(true); + result.setResult(map); + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("鏌ヨ澶辫触锛�"); + } + return result; + } + + + /** + * 鐢ㄦ埛娉ㄥ唽鎺ュ彛 + * + * @param jsonObject + * @param user + * @return + */ + @PostMapping("/register") + public Result<JSONObject> userRegister(@RequestBody JSONObject jsonObject, SysUser user) { + Result<JSONObject> result = new Result<JSONObject>(); + String phone = jsonObject.getString("phone"); + String smscode = jsonObject.getString("smscode"); + + //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 銆愭紡娲炪�戝彂鐜版柊婕忔礊寰呭鐞�20220906 + String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE + phone; + Object code = redisUtil.get(redisKey); + //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 銆愭紡娲炪�戝彂鐜版柊婕忔礊寰呭鐞�20220906 + + String username = jsonObject.getString("username"); + //鏈缃敤鎴峰悕锛屽垯鐢ㄦ墜鏈哄彿浣滀负鐢ㄦ埛鍚� + if (oConvertUtils.isEmpty(username)) { + username = phone; + } + //鏈缃瘑鐮侊紝鍒欓殢鏈虹敓鎴愪竴涓瘑鐮� + String password = jsonObject.getString("password"); + if (oConvertUtils.isEmpty(password)) { + password = RandomUtil.randomString(8); + } + String email = jsonObject.getString("email"); + SysUser sysUser1 = sysUserService.getUserByName(username); + if (sysUser1 != null) { + result.setMessage("鐢ㄦ埛鍚嶅凡娉ㄥ唽"); + result.setSuccess(false); + return result; + } + SysUser sysUser2 = sysUserService.getUserByPhone(phone); + if (sysUser2 != null) { + result.setMessage("璇ユ墜鏈哄彿宸叉敞鍐�"); + result.setSuccess(false); + return result; + } + + if (oConvertUtils.isNotEmpty(email)) { + SysUser sysUser3 = sysUserService.getUserByEmail(email); + if (sysUser3 != null) { + result.setMessage("閭宸茶娉ㄥ唽"); + result.setSuccess(false); + return result; + } + } + if (null == code) { + result.setMessage("鎵嬫満楠岃瘉鐮佸け鏁堬紝璇烽噸鏂拌幏鍙�"); + result.setSuccess(false); + return result; + } + if (!smscode.equals(code.toString())) { + result.setMessage("鎵嬫満楠岃瘉鐮侀敊璇�"); + result.setSuccess(false); + return result; + } + + try { + user.setCreateTime(new Date());// 璁剧疆鍒涘缓鏃堕棿 + String salt = oConvertUtils.randomGen(8); + String passwordEncode = PasswordUtil.encrypt(username, password, salt); + user.setSalt(salt); + user.setUsername(username); + user.setRealname(username); + user.setPassword(passwordEncode); + user.setEmail(email); + user.setPhone(phone); + user.setStatus(CommonConstant.USER_UNFREEZE); + user.setDelFlag(CommonConstant.DEL_FLAG_0); + user.setActivitiSync(CommonConstant.ACT_SYNC_0); + sysUserService.addUserWithRole(user, "ee8626f80f7c2619917b6236f3a7f02b");//榛樿涓存椂瑙掕壊 test + result.success("娉ㄥ唽鎴愬姛"); + } catch (Exception e) { + result.error500("娉ㄥ唽澶辫触"); + } + return result; + } + +// /** +// * 鏍规嵁鐢ㄦ埛鍚嶆垨鎵嬫満鍙锋煡璇㈢敤鎴蜂俊鎭� +// * @param +// * @return +// */ +// @GetMapping("/querySysUser") +// public Result<Map<String, Object>> querySysUser(SysUser sysUser) { +// String phone = sysUser.getPhone(); +// String username = sysUser.getUsername(); +// Result<Map<String, Object>> result = new Result<Map<String, Object>>(); +// Map<String, Object> map = new HashMap<String, Object>(); +// if (oConvertUtils.isNotEmpty(phone)) { +// SysUser user = sysUserService.getUserByPhone(phone); +// if(user!=null) { +// map.put("username",user.getUsername()); +// map.put("phone",user.getPhone()); +// result.setSuccess(true); +// result.setResult(map); +// return result; +// } +// } +// if (oConvertUtils.isNotEmpty(username)) { +// SysUser user = sysUserService.getUserByName(username); +// if(user!=null) { +// map.put("username",user.getUsername()); +// map.put("phone",user.getPhone()); +// result.setSuccess(true); +// result.setResult(map); +// return result; +// } +// } +// result.setSuccess(false); +// result.setMessage("楠岃瘉澶辫触"); +// return result; +// } + + /** + * 鐢ㄦ埛鎵嬫満鍙烽獙璇� + */ + @PostMapping("/phoneVerification") + public Result<Map<String, String>> phoneVerification(@RequestBody JSONObject jsonObject) { + Result<Map<String, String>> result = new Result<Map<String, String>>(); + String phone = jsonObject.getString("phone"); + String smscode = jsonObject.getString("smscode"); + //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 銆愭紡娲炪�戝彂鐜版柊婕忔礊寰呭鐞�20220906 + String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE + phone; + Object code = redisUtil.get(redisKey); + if (!smscode.equals(code)) { + result.setMessage("鎵嬫満楠岃瘉鐮侀敊璇�"); + result.setSuccess(false); + return result; + } + //璁剧疆鏈夋晥鏃堕棿 + redisUtil.set(redisKey, smscode, 600); + //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 銆愭紡娲炪�戝彂鐜版柊婕忔礊寰呭鐞�20220906 + + //鏂板鏌ヨ鐢ㄦ埛鍚� + LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<>(); + query.eq(SysUser::getPhone, phone); + SysUser user = sysUserService.getOne(query); + Map<String, String> map = new HashMap(5); + map.put("smscode", smscode); + map.put("username", user.getUsername()); + result.setResult(map); + result.setSuccess(true); + return result; + } + + /** + * 鐢ㄦ埛鏇存敼瀵嗙爜 + */ + @GetMapping("/passwordChange") + public Result<SysUser> passwordChange(@RequestParam(name = "username") String username, + @RequestParam(name = "password") String password, + @RequestParam(name = "smscode") String smscode, + @RequestParam(name = "phone") String phone) { + Result<SysUser> result = new Result<SysUser>(); + if (oConvertUtils.isEmpty(username) || oConvertUtils.isEmpty(password) || oConvertUtils.isEmpty(smscode) || oConvertUtils.isEmpty(phone)) { + result.setMessage("閲嶇疆瀵嗙爜澶辫触锛�"); + result.setSuccess(false); + return result; + } + + SysUser sysUser = new SysUser(); + //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 銆愭紡娲炪�戝彂鐜版柊婕忔礊寰呭鐞�20220906 + String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE + phone; + Object object = redisUtil.get(redisKey); + //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 銆愭紡娲炪�戝彂鐜版柊婕忔礊寰呭鐞�20220906 + if (null == object) { + result.setMessage("鐭俊楠岃瘉鐮佸け鏁堬紒"); + result.setSuccess(false); + return result; + } + if (!smscode.equals(object.toString())) { + result.setMessage("鐭俊楠岃瘉鐮佷笉鍖归厤锛�"); + result.setSuccess(false); + return result; + } + sysUser = this.sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, username).eq(SysUser::getPhone, phone)); + if (sysUser == null) { + result.setMessage("鏈壘鍒扮敤鎴凤紒"); + result.setSuccess(false); + return result; + } else { + String salt = oConvertUtils.randomGen(8); + sysUser.setSalt(salt); + String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, salt); + sysUser.setPassword(passwordEncode); + this.sysUserService.updateById(sysUser); + //update-begin---author:wangshuai ---date:20220316 for锛歔VUEN-234]瀵嗙爜閲嶇疆娣诲姞鏁忔劅鏃ュ織------------ + baseCommonService.addLog("閲嶇疆 " + username + " 鐨勫瘑鐮侊紝鎿嶄綔浜猴細 " + sysUser.getUsername(), CommonConstant.LOG_TYPE_2, 2); + //update-end---author:wangshuai ---date:20220316 for锛歔VUEN-234]瀵嗙爜閲嶇疆娣诲姞鏁忔劅鏃ュ織------------ + result.setSuccess(true); + result.setMessage("瀵嗙爜閲嶇疆瀹屾垚锛�"); + return result; + } + } + + + /** + * 鏍规嵁TOKEN鑾峰彇鐢ㄦ埛鐨勯儴鍒嗕俊鎭紙杩斿洖鐨勬暟鎹槸鍙緵琛ㄥ崟璁捐鍣ㄤ娇鐢ㄧ殑鏁版嵁锛� + * + * @return + */ + @GetMapping("/getUserSectionInfoByToken") + public Result<?> getUserSectionInfoByToken(HttpServletRequest request, @RequestParam(name = "token", required = false) String token) { + try { + String username = null; + // 濡傛灉娌℃湁浼犻�抰oken锛屽氨浠巋eader涓幏鍙杢oken骞惰幏鍙栫敤鎴蜂俊鎭� + if (oConvertUtils.isEmpty(token)) { + username = JwtUtil.getUserNameByToken(request); + } else { + username = JwtUtil.getUsername(token); + } + + log.debug(" ------ 閫氳繃浠ょ墝鑾峰彇閮ㄥ垎鐢ㄦ埛淇℃伅锛屽綋鍓嶇敤鎴凤細 " + username); + + // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴蜂俊鎭� + SysUser sysUser = sysUserService.getUserByName(username); + Map<String, Object> map = new HashMap<String, Object>(); + map.put("sysUserId", sysUser.getId()); + map.put("sysUserCode", sysUser.getUsername()); // 褰撳墠鐧诲綍鐢ㄦ埛鐧诲綍璐﹀彿 + map.put("sysUserName", sysUser.getRealname()); // 褰撳墠鐧诲綍鐢ㄦ埛鐪熷疄鍚嶇О + map.put("sysOrgCode", sysUser.getOrgCode()); // 褰撳墠鐧诲綍鐢ㄦ埛閮ㄩ棬缂栧彿 + + log.debug(" ------ 閫氳繃浠ょ墝鑾峰彇閮ㄥ垎鐢ㄦ埛淇℃伅锛屽凡鑾峰彇鐨勭敤鎴蜂俊鎭細 " + map); + + return Result.ok(map); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.error(500, "鏌ヨ澶辫触:" + e.getMessage()); + } + } + + /** + * 銆怉PP绔帴鍙c�戣幏鍙栫敤鎴峰垪琛� 鏍规嵁鐢ㄦ埛鍚嶅拰鐪熷疄鍚� 妯$硦鍖归厤 + * + * @param keyword + * @param pageNo + * @param pageSize + * @return + */ + @GetMapping("/appUserList") + public Result<?> appUserList(@RequestParam(name = "keyword", required = false) String keyword, + @RequestParam(name = "username", required = false) String username, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(name = "syncFlow", required = false) String syncFlow) { + try { + //TODO 浠庢煡璇㈡晥鐜囦笂灏嗕笉瑕佺敤mp鐨勫皝瑁呯殑page鍒嗛〉鏌ヨ 寤鸿鑷繁鍐欏垎椤佃鍙� + LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<SysUser>(); + if (oConvertUtils.isNotEmpty(syncFlow)) { + query.eq(SysUser::getActivitiSync, CommonConstant.ACT_SYNC_1); + } + query.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0); + if (oConvertUtils.isNotEmpty(username)) { + if (username.contains(",")) { + query.in(SysUser::getUsername, username.split(",")); + } else { + query.eq(SysUser::getUsername, username); + } + } else { + query.and(i -> i.like(SysUser::getUsername, keyword).or().like(SysUser::getRealname, keyword)); + } + Page<SysUser> page = new Page<>(pageNo, pageSize); + IPage<SysUser> res = this.sysUserService.page(page, query); + return Result.ok(res); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.error(500, "鏌ヨ澶辫触:" + e.getMessage()); + } + + } + + /** + * 鑾峰彇琚�昏緫鍒犻櫎鐨勭敤鎴峰垪琛紝鏃犲垎椤� + * + * @return logicDeletedUserList + */ + @GetMapping("/recycleBin") + public Result getRecycleBin() { + List<SysUser> logicDeletedUserList = sysUserService.queryLogicDeleted(); + if (logicDeletedUserList.size() > 0) { + // 鎵归噺鏌ヨ鐢ㄦ埛鐨勬墍灞為儴闂� + // step.1 鍏堟嬁鍒板叏閮ㄧ殑 userIds + List<String> userIds = logicDeletedUserList.stream().map(SysUser::getId).collect(Collectors.toList()); + // step.2 閫氳繃 userIds锛屼竴娆℃�ф煡璇㈢敤鎴风殑鎵�灞為儴闂ㄥ悕瀛� + Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds); + Map<String, String> useProNames = sysUserService.getProNamesByUserIds(userIds); + logicDeletedUserList.forEach(item -> { + item.setOrgCode(useDepNames.get(item.getId())); + item.setProductionName(useProNames.get(item.getId())); + }); + } + return Result.ok(logicDeletedUserList); + } + + /** + * 杩樺師琚�昏緫鍒犻櫎鐨勭敤鎴� + * + * @param jsonObject + * @return + */ + @RequestMapping(value = "/putRecycleBin", method = RequestMethod.PUT) + public Result putRecycleBin(@RequestBody JSONObject jsonObject, HttpServletRequest request) { + String userIds = jsonObject.getString("userIds"); + if (StringUtils.isNotBlank(userIds)) { + SysUser updateUser = new SysUser(); + updateUser.setUpdateBy(JwtUtil.getUserNameByToken(request)); + updateUser.setUpdateTime(new Date()); + sysUserService.revertLogicDeleted(Arrays.asList(userIds.split(",")), updateUser); + } + return Result.ok("杩樺師鎴愬姛"); + } + + /** + * 褰诲簳鍒犻櫎鐢ㄦ埛 + * + * @param userIds 琚垹闄ょ殑鐢ㄦ埛ID锛屽涓猧d鐢ㄥ崐瑙掗�楀彿鍒嗗壊 + * @return + */ + //@RequiresRoles({"admin"}) + @RequestMapping(value = "/deleteRecycleBin", method = RequestMethod.DELETE) + public Result deleteRecycleBin(@RequestParam("userIds") String userIds) { + if (StringUtils.isNotBlank(userIds)) { + sysUserService.removeLogicDeleted(Arrays.asList(userIds.split(","))); + } + return Result.ok("鍒犻櫎鎴愬姛"); + } + + + /** + * 绉诲姩绔慨鏀圭敤鎴蜂俊鎭� + * + * @param jsonObject + * @return + */ + @RequestMapping(value = "/appEdit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<SysUser> appEdit(HttpServletRequest request, @RequestBody JSONObject jsonObject) { + Result<SysUser> result = new Result<SysUser>(); + try { + String username = JwtUtil.getUserNameByToken(request); + SysUser sysUser = sysUserService.getUserByName(username); + baseCommonService.addLog("绉诲姩绔紪杈戠敤鎴凤紝id锛� " + jsonObject.getString("id"), CommonConstant.LOG_TYPE_2, 2); + String realname = jsonObject.getString("realname"); + String avatar = jsonObject.getString("avatar"); + String sex = jsonObject.getString("sex"); + String phone = jsonObject.getString("phone"); + String email = jsonObject.getString("email"); + Date birthday = jsonObject.getDate("birthday"); + SysUser userPhone = sysUserService.getUserByPhone(phone); + if (sysUser == null) { + result.error500("鏈壘鍒板搴旂敤鎴�!"); + } else { + if (userPhone != null) { + String userPhonename = userPhone.getUsername(); + if (!userPhonename.equals(username)) { + result.error500("鎵嬫満鍙峰凡瀛樺湪!"); + return result; + } + } + if (StringUtils.isNotBlank(realname)) { + sysUser.setRealname(realname); + } + if (StringUtils.isNotBlank(avatar)) { + sysUser.setAvatar(avatar); + } + if (StringUtils.isNotBlank(sex)) { + sysUser.setSex(Integer.parseInt(sex)); + } + if (StringUtils.isNotBlank(phone)) { + sysUser.setPhone(phone); + } + if (StringUtils.isNotBlank(email)) { + //update-begin---author:wangshuai ---date:20220708 for锛歔VUEN-1528]绉湪瀹樼綉閭閲嶅锛屽簲璇ユ彁绀哄噯纭�------------ + LambdaQueryWrapper<SysUser> emailQuery = new LambdaQueryWrapper<>(); + emailQuery.eq(SysUser::getEmail, email); + long count = sysUserService.count(emailQuery); + if (!email.equals(sysUser.getEmail()) && count != 0) { + result.error500("淇濆瓨澶辫触锛岄偖绠卞凡瀛樺湪!"); + return result; + } + //update-end---author:wangshuai ---date:20220708 for锛歔VUEN-1528]绉湪瀹樼綉閭閲嶅锛屽簲璇ユ彁绀哄噯纭�-------------- + sysUser.setEmail(email); + } + if (null != birthday) { + sysUser.setBirthday(birthday); + } + sysUser.setUpdateTime(new Date()); + sysUserService.updateById(sysUser); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("淇濆瓨澶辫触!"); + } + return result; + } + + /** + * 绉诲姩绔繚瀛樿澶囦俊鎭� + * + * @param clientId + * @return + */ + @RequestMapping(value = "/saveClientId", method = RequestMethod.GET) + public Result<SysUser> saveClientId(HttpServletRequest request, @RequestParam("clientId") String clientId) { + Result<SysUser> result = new Result<SysUser>(); + try { + String username = JwtUtil.getUserNameByToken(request); + SysUser sysUser = sysUserService.getUserByName(username); + if (sysUser == null) { + result.error500("鏈壘鍒板搴旂敤鎴�!"); + } else { + sysUser.setClientId(clientId); + sysUserService.updateById(sysUser); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + result.error500("鎿嶄綔澶辫触!"); + } + return result; + } + + /** + * 鏍规嵁userid鑾峰彇鐢ㄦ埛淇℃伅鍜岄儴闂ㄥ憳宸ヤ俊鎭� + * + * @return Result + */ + @GetMapping("/queryChildrenByUsername") + public Result queryChildrenByUsername(@RequestParam("userId") String userId) { + //鑾峰彇鐢ㄦ埛淇℃伅 + Map<String, Object> map = new HashMap(5); + SysUser sysUser = sysUserService.getById(userId); + String username = sysUser.getUsername(); + Integer identity = sysUser.getUserIdentity(); + map.put("sysUser", sysUser); + if (identity != null && identity == 2) { + //鑾峰彇閮ㄩ棬鐢ㄦ埛淇℃伅 + String departIds = sysUser.getDepartIds(); + if (StringUtils.isNotBlank(departIds)) { + List<String> departIdList = Arrays.asList(departIds.split(",")); + List<SysUser> childrenUser = sysUserService.queryByDepIds(departIdList, username); + map.put("children", childrenUser); + } + } + return Result.ok(map); + } + + /** + * 绉诲姩绔煡璇㈤儴闂ㄧ敤鎴蜂俊鎭� + * + * @param departId + * @return + */ + @GetMapping("/appQueryByDepartId") + public Result<List<SysUser>> appQueryByDepartId(@RequestParam(name = "departId", required = false) String departId) { + Result<List<SysUser>> result = new Result<List<SysUser>>(); + List<String> list = new ArrayList<String>(); + list.add(departId); + List<SysUser> childrenUser = sysUserService.queryByDepIds(list, null); + result.setResult(childrenUser); + return result; + } + + /** + * 绉诲姩绔煡璇㈢敤鎴蜂俊鎭�(閫氳繃鐢ㄦ埛鍚嶆ā绯婃煡璇�) + * + * @param keyword + * @return + */ + @GetMapping("/appQueryUser") + public Result<List<SysUser>> appQueryUser(@RequestParam(name = "keyword", required = false) String keyword, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + Result<List<SysUser>> result = new Result<List<SysUser>>(); + LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<SysUser>(); + //TODO 澶栭儴妯℃嫙鐧婚檰涓存椂璐﹀彿锛屽垪琛ㄤ笉鏄剧ず + queryWrapper.ne(SysUser::getUsername, "_reserve_user_external"); + if (StringUtils.isNotBlank(keyword)) { + queryWrapper.and(i -> i.like(SysUser::getUsername, keyword).or().like(SysUser::getRealname, keyword)); + } + Page<SysUser> page = new Page<>(pageNo, pageSize); + IPage<SysUser> pageList = this.sysUserService.page(page, queryWrapper); + //鎵归噺鏌ヨ鐢ㄦ埛鐨勬墍灞為儴闂� + //step.1 鍏堟嬁鍒板叏閮ㄧ殑 useids + //step.2 閫氳繃 useids锛屼竴娆℃�ф煡璇㈢敤鎴风殑鎵�灞為儴闂ㄥ悕瀛� + List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList()); + if (userIds != null && userIds.size() > 0) { + Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds); + pageList.getRecords().forEach(item -> { + item.setOrgCodeTxt(useDepNames.get(item.getId())); + }); + } + result.setResult(pageList.getRecords()); + return result; + } + + /** + * 鏍规嵁鐢ㄦ埛鍚嶄慨鏀规墜鏈哄彿[璇ユ柟娉曟湭浣跨敤] + * + * @param json + * @return + */ + @RequestMapping(value = "/updateMobile", method = RequestMethod.PUT) + public Result<?> changMobile(@RequestBody JSONObject json, HttpServletRequest request) { + String smscode = json.getString("smscode"); + String phone = json.getString("phone"); + Result<SysUser> result = new Result<SysUser>(); + //鑾峰彇鐧诲綍鐢ㄦ埛鍚� + String username = JwtUtil.getUserNameByToken(request); + if (oConvertUtils.isEmpty(username) || oConvertUtils.isEmpty(smscode) || oConvertUtils.isEmpty(phone)) { + result.setMessage("淇敼鎵嬫満鍙峰け璐ワ紒"); + result.setSuccess(false); + return result; + } + //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 銆愭紡娲炪�戝彂鐜版柊婕忔礊寰呭鐞�20220906 + String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE + phone; + Object object = redisUtil.get(redisKey); + //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 銆愭紡娲炪�戝彂鐜版柊婕忔礊寰呭鐞�20220906 + if (null == object) { + result.setMessage("鐭俊楠岃瘉鐮佸け鏁堬紒"); + result.setSuccess(false); + return result; + } + if (!smscode.equals(object.toString())) { + result.setMessage("鐭俊楠岃瘉鐮佷笉鍖归厤锛�"); + result.setSuccess(false); + return result; + } + SysUser user = sysUserService.getUserByName(username); + if (user == null) { + return Result.error("鐢ㄦ埛涓嶅瓨鍦紒"); + } + user.setPhone(phone); + sysUserService.updateById(user); + return Result.ok("鎵嬫満鍙疯缃垚鍔�!"); + } + + + /** + * 鏍规嵁瀵硅薄閲岄潰鐨勫睘鎬у�间綔in鏌ヨ 灞炴�у彲鑳戒細鍙� 鐢ㄦ埛缁勪欢鐢ㄥ埌 + * + * @param sysUser + * @return + */ + @GetMapping("/getMultiUser") + public List<SysUser> getMultiUser(SysUser sysUser) { + QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(sysUser, null); + //update-begin---author:wangshuai ---date:20220104 for锛歔JTC-297]宸插喕缁撶敤鎴蜂粛鍙缃负浠g悊浜�------------ + queryWrapper.eq("status", Integer.parseInt(CommonConstant.STATUS_1)); + //update-end---author:wangshuai ---date:20220104 for锛歔JTC-297]宸插喕缁撶敤鎴蜂粛鍙缃负浠g悊浜�------------ + List<SysUser> ls = this.sysUserService.list(queryWrapper); + for (SysUser user : ls) { + user.setPassword(null); + user.setSalt(null); + } + return ls; + } + +} -- Gitblit v1.9.3