consum-base/src/main/java/com/consum/base/BaseController.java
@@ -3,7 +3,6 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.URLEncoder; import javax.servlet.http.HttpServletResponse; @@ -50,19 +49,14 @@ } protected String downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) throws Exception { response.setCharacterEncoding("UTF-8"); response.setHeader("content-Type", "application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName + ".xls", "UTF-8")); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); workbook.write(byteArrayOutputStream); response.setHeader("Content-Length", String.valueOf(byteArrayOutputStream.size())); InputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); FileInfo fileInfo = this.uploadFileToLocal(byteArrayInputStream, fileName + ".xls", "-1", byteArrayOutputStream.size(), 0, "-1"); String fileUrl = fileInfo.getUrl(); workbook.close(); return "/file/" + fileUrl; } consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantUserCache.java
@@ -1,16 +1,17 @@ package com.consum.base.cache; import java.util.List; import com.consum.base.Constants; import com.consum.base.FinSysTenantUserCacheProvider; import com.consum.base.service.FinSysTenantUserServiceImpl; import com.consum.base.service.FinSysTenantUserService; import com.consum.model.po.FinSysTenantUser; import com.walker.cache.AbstractCacheProvider; import com.walker.cache.Cache; import com.walker.infrastructure.utils.StringUtils; import java.util.List; public class LocalFinSysTenantUserCache extends AbstractCacheProvider<FinSysTenantUser> implements FinSysTenantUserCacheProvider { public class LocalFinSysTenantUserCache extends AbstractCacheProvider<FinSysTenantUser> implements FinSysTenantUserCacheProvider { @Override public FinSysTenantUser get(String userId) { @@ -40,8 +41,8 @@ @Override protected int loadDataToCache(Cache cache) { List<FinSysTenantUser> hosts = this.finSysTenantUserService.selectAll(new FinSysTenantUser()); if(!StringUtils.isEmptyList(hosts)){ for(FinSysTenantUser h : hosts){ if (!StringUtils.isEmptyList(hosts)) { for (FinSysTenantUser h : hosts) { cache.put(String.valueOf(h.getSysUserId()), h); } return hosts.size(); @@ -59,9 +60,9 @@ return FinSysTenantUser.class; } public void setFinSysTenantUserService(FinSysTenantUserServiceImpl finSysTenantUserService) { public void setFinSysTenantUserService(FinSysTenantUserService finSysTenantUserService) { this.finSysTenantUserService = finSysTenantUserService; } private FinSysTenantUserServiceImpl finSysTenantUserService; private FinSysTenantUserService finSysTenantUserService; } consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantUserCache.java
@@ -1,20 +1,21 @@ package com.consum.base.cache; import com.consum.base.Constants; import com.consum.base.FinSysTenantUserCacheProvider; import com.consum.base.service.FinSysTenantUserServiceImpl; import com.consum.base.service.FinSysTenantUserService; import com.consum.model.po.FinSysTenantUser; import com.walker.support.redis.cache.RedisCacheProvider; /** * Redis实现的后台登录用户 * * @author 王涵 * @date 2023-07-18 */ public class RedisFinSysTenantUserCache extends RedisCacheProvider<FinSysTenantUser> implements FinSysTenantUserCacheProvider { public class RedisFinSysTenantUserCache extends RedisCacheProvider<FinSysTenantUser> implements FinSysTenantUserCacheProvider { public RedisFinSysTenantUserCache(){ public RedisFinSysTenantUserCache() { this.setUseRedis(true); this.setLoadPage(false); } @@ -22,9 +23,9 @@ @Override public FinSysTenantUser get(String userId) { FinSysTenantUser finSysTenantUser = this.getCacheData(userId); if(finSysTenantUser == null){ if (finSysTenantUser == null) { finSysTenantUser = this.finSysTenantUserService.queryOneByUserId(userId); if(finSysTenantUser == null){ if (finSysTenantUser == null) { logger.warn("从数据库未查询到用户,无法缓存,userId = {}", userId); return null; } @@ -53,9 +54,9 @@ @Override public FinSysTenantUser getByUserId(String userId) { FinSysTenantUser finSysTenantUser = this.getCacheData(userId); if(finSysTenantUser == null){ if (finSysTenantUser == null) { finSysTenantUser = this.finSysTenantUserService.queryOneById(userId); if(finSysTenantUser == null){ if (finSysTenantUser == null) { logger.warn("从数据库未查询到用户,无法缓存,userId = {}", userId); return null; } @@ -74,9 +75,9 @@ return FinSysTenantUser.class; } public void setFinSysTenantUserService(FinSysTenantUserServiceImpl finSysTenantUserService) { public void setFinSysTenantUserService(FinSysTenantUserService finSysTenantUserService) { this.finSysTenantUserService = finSysTenantUserService; } private FinSysTenantUserServiceImpl finSysTenantUserService; private FinSysTenantUserService finSysTenantUserService; } consum-base/src/main/java/com/consum/base/config/LocalFinCacheConfig.java
@@ -14,7 +14,7 @@ import com.consum.base.cache.LocalTokenCache; import com.consum.base.service.FinOrgService; import com.consum.base.service.FinSysTenantService; import com.consum.base.service.FinSysTenantUserServiceImpl; import com.consum.base.service.FinSysTenantUserService; import com.iplatform.base.config.CacheConfiguration; @Configuration @@ -23,12 +23,13 @@ /** * 配置业务机构缓存。 * * @param finOrgService * @return * @date 2023-07-05 */ @Bean public FinOrgCacheProvider finOrgCacheProvider(FinOrgService finOrgService){ public FinOrgCacheProvider finOrgCacheProvider(FinOrgService finOrgService) { LocalFinOrgCache cache = new LocalFinOrgCache(); cache.setFinOrgService(finOrgService); return cache; @@ -40,31 +41,33 @@ * @Date 2023/7/18 13:36 */ @Bean public FinSysTenantUserCacheProvider finSysTenantUserCacheProvider(FinSysTenantUserServiceImpl finSysTenantUserService){ public FinSysTenantUserCacheProvider finSysTenantUserCacheProvider(FinSysTenantUserService finSysTenantUserService) { LocalFinSysTenantUserCache cache = new LocalFinSysTenantUserCache(); cache.setFinSysTenantUserService(finSysTenantUserService); return cache; } /** * 江南登录用户缓存 * 江南登录用户缓存 * * @return */ @Bean public TokenCacheProvider tokenCacheProvider(){ public TokenCacheProvider tokenCacheProvider() { LocalTokenCache cache = new LocalTokenCache(); return cache; } /** * 配置业务机构缓存。 * * @param finSysTenantService * @return * @date 2023-07-05 */ @Bean public FinSysTenantCacheProvider finSysTenantCacheProvider(FinSysTenantService finSysTenantService){ public FinSysTenantCacheProvider finSysTenantCacheProvider(FinSysTenantService finSysTenantService) { LocalFinSysTenantCache cache = new LocalFinSysTenantCache(); cache.setFinSysTenantService(finSysTenantService); return cache; consum-base/src/main/java/com/consum/base/config/RedisFinCacheConfig.java
@@ -17,7 +17,7 @@ import com.consum.base.cache.RedisTokenCache; import com.consum.base.service.FinOrgService; import com.consum.base.service.FinSysTenantService; import com.consum.base.service.FinSysTenantUserServiceImpl; import com.consum.base.service.FinSysTenantUserService; import com.iplatform.base.config.CacheConfiguration; import com.walker.support.redis.RedisHelper; import com.walker.support.redis.cache.RedisCacheProvider; @@ -30,13 +30,14 @@ /** * Redis实现的业务机构缓存配置。 * * @param redisHelper * @param finOrgService * @return * @date 2023-07-05 */ @Bean public FinOrgCacheProvider finOrgCacheProvider(RedisHelper redisHelper, FinOrgService finOrgService){ public FinOrgCacheProvider finOrgCacheProvider(RedisHelper redisHelper, FinOrgService finOrgService) { RedisFinOrgCache cache = new RedisFinOrgCache(); cache.setRedisHelper(redisHelper); cache.setFinOrgService(finOrgService); @@ -49,7 +50,8 @@ * @Date 2023/7/18 13:38 */ @Bean public FinSysTenantUserCacheProvider finSysTenantUserCacheProvider(RedisHelper redisHelper, FinSysTenantUserServiceImpl finSysTenantUserService){ public FinSysTenantUserCacheProvider finSysTenantUserCacheProvider(RedisHelper redisHelper, FinSysTenantUserService finSysTenantUserService) { RedisFinSysTenantUserCache cache = new RedisFinSysTenantUserCache(); cache.setRedisHelper(redisHelper); cache.setFinSysTenantUserService(finSysTenantUserService); @@ -62,7 +64,7 @@ * @Date 2023/7/18 13:38 */ @Bean public TokenCacheProvider tokenCacheProvider(RedisHelper redisHelper){ public TokenCacheProvider tokenCacheProvider(RedisHelper redisHelper) { RedisTokenCache cache = new RedisTokenCache(); cache.setRedisHelper(redisHelper); return cache; @@ -70,13 +72,15 @@ /** * Redis实现的业务机构缓存配置。 * * @param redisHelper * @param finSysTenantService * @return * @date 2023-07-05 */ @Bean public FinSysTenantCacheProvider finSysTenantCacheProvider(RedisHelper redisHelper, FinSysTenantService finSysTenantService){ public FinSysTenantCacheProvider finSysTenantCacheProvider(RedisHelper redisHelper, FinSysTenantService finSysTenantService) { RedisFinSysTenantCache cache = new RedisFinSysTenantCache(); cache.setRedisHelper(redisHelper); cache.setFinSysTenantService(finSysTenantService); consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java
@@ -37,7 +37,7 @@ import com.consum.base.pojo.FinSysTenantParam; import com.consum.base.pojo.FinSysTenantSearchParam; import com.consum.base.service.FinSysTenantService; import com.consum.base.service.FinSysTenantUserServiceImpl; import com.consum.base.service.FinSysTenantUserService; import com.consum.model.po.FinSysTenant; import com.consum.model.po.FinSysTenantUser; import com.consum.model.vo.FinSysTenantUserResult; @@ -64,7 +64,7 @@ private FinSysTenantService finSysTenantService; @Autowired private FinSysTenantUserServiceImpl finSysTenantUserService; private FinSysTenantUserService finSysTenantUserService; @Autowired public FinSysTenantController(FinSysTenantService finSysTenantService) { consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java
@@ -1,7 +1,6 @@ package com.consum.base.controller; import java.io.IOException; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -40,7 +39,7 @@ import com.consum.base.pojo.response.UserVO; import com.consum.base.service.FinSysTenantDepartmentService; import com.consum.base.service.FinSysTenantService; import com.consum.base.service.FinSysTenantUserServiceImpl; import com.consum.base.service.FinSysTenantUserService; import com.consum.model.po.FinSysTenant; import com.consum.model.po.FinSysTenantDepartment; import com.consum.model.po.FinSysTenantUser; @@ -78,7 +77,7 @@ private String roleName; private FinSysTenantUserServiceImpl finSysTenantUserService; private FinSysTenantUserService finSysTenantUserService; private UserServiceImpl userService; @@ -96,7 +95,7 @@ @Autowired public FinSysTenantUserController(FinSysTenantService finSysTenantService, FinSysTenantUserServiceImpl finSysTenantUserService, RoleServiceImpl roleService) { FinSysTenantUserService finSysTenantUserService, RoleServiceImpl roleService) { this.finSysTenantUserService = finSysTenantUserService; this.finSysTenantService = finSysTenantService; this.roleService = roleService; @@ -114,75 +113,38 @@ CommonUtil.copyProperties(param, param2); param = param2; if (param.getTenantCode() == 0) { FinSysTenantUser user = new FinSysTenantUser(); Long id = this.getCurrentUser().getId(); user.setSysUserId(id); List<FinSysTenantUser> select = finSysTenantUserService.select(user); if (select.size() > 0) { param.setTenantCode(new Long(select.get(0).getTenantCode())); String tenantId = this.getSysInfo().getTenantId(); FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(tenantId)); if (finSysTenant != null) { param.setTenantCode(Long.valueOf(finSysTenant.getCode())); } } GenericPager<FinSysTenantUser> pager = this.finSysTenantUserService.queryAllPageUser(param); List<FinSysTenantUserVO> resultList = Lists.newArrayList(); List<FinSysTenantUser> datas = pager.getDatas(); if (datas.size() > 0) { for (FinSysTenantUser finSysTenantUser : datas) { FinSysTenantUserVO userVO = new FinSysTenantUserVO(); if (finSysTenantUser.getUserPhone() != null) { // 解密并脱敏 String tel = null; try { tel = AESUtils.decryptStrAES(finSysTenantUser.getUserPhone(), PlatformRSAUtils.AES_KEY); } catch (Exception e) { logger.error("解密手机号失败,原因:" + e); tel = null; } if (StringUtils.isNotEmpty(tel)) { finSysTenantUser.setUserPhone(PhoneNumberUtils.maskMobile(tel)); } else { finSysTenantUser.setUserPhone(""); } } else { finSysTenantUser.setUserPhone(""); } List<FinSysTenantUserVO> resultList = new ArrayList<>(); for (FinSysTenantUser finSysTenantUser : pager.getDatas()) { FinSysTenantUserVO userVO = new FinSysTenantUserVO(); String tel = finSysTenantUser.getUserPhone() != null ? AESUtils.decryptStrAES(finSysTenantUser.getUserPhone(), PlatformRSAUtils.AES_KEY) : null; finSysTenantUser.setUserPhone(StringUtils.isNotEmpty(tel) ? PhoneNumberUtils.maskMobile(tel) : ""); // 循环去查角色 Long sysUserId = finSysTenantUser.getSysUserId(); if (sysUserId != null) { List<S_role> list = finSysTenantUserService.getByUserId(sysUserId); String roleStr = ""; for (S_role s_role : list) { roleStr = roleStr + s_role.getRole_name() + " "; } finSysTenantUser.setRoleStr(roleStr); } List<S_role> list = finSysTenantUserService.getByUserId(finSysTenantUser.getSysUserId()); StringBuilder roleStr = new StringBuilder(); list.forEach(s_role -> roleStr.append(s_role.getRole_name()).append(" ")); finSysTenantUser.setRoleStr(roleStr.toString()); // 循环查询运维商id if (finSysTenantUser.getSupplierId() != null) { finSysTenantUser.setIsSupplier("是"); } else { finSysTenantUser.setIsSupplier("否"); } BeanUtils.copyProperties(finSysTenantUser, userVO); Long sysDeptId = finSysTenantUser.getSysDeptId(); FinSysTenantDepartment department = finSysTenantDepartmentService.getById(sysDeptId); if (Objects.nonNull(department)) { userVO.setSysDeptName(department.getName()); } resultList.add(userVO); finSysTenantUser.setIsSupplier(finSysTenantUser.getSupplierId() != null ? "是" : "否"); BeanUtils.copyProperties(finSysTenantUser, userVO); FinSysTenantDepartment department = finSysTenantDepartmentService.getById(finSysTenantUser.getSysDeptId()); if (Objects.nonNull(department)) { userVO.setSysDeptName(department.getName()); } resultList.add(userVO); } try { Field fieldDatas = GenericPager.class.getDeclaredField("datas"); // fieldDatas.setAccessible(true); // fieldDatas.set(pager, resultList); ReflectUtil.setFieldValue(pager, fieldDatas, resultList); ReflectUtil.setFieldValue(pager, "datas", resultList); } catch (Exception e) { logger.error("分页列表查询失败,原因:" + e); } return ResponseValue.success(pager); } @@ -213,25 +175,41 @@ return ResponseValue.error("参数为空"); } // 根据员工编号查询,如果存在则提示 if (finSysTenantUserService.getByUserCode(tenantUser.getUserCode()) != null && finSysTenantUserService.getByUserCode(tenantUser.getUserCode()) > 0) { FinSysTenantUser userCode = finSysTenantUserService.getByUserCode(tenantUser.getUserCode()); if (userCode != null) { return ResponseValue.error("员工编号重复"); } if (StringUtils.isEmpty(tenantUser.getTenantId()) || "0".equals(tenantUser.getTenantId())) { return ResponseValue.error("添加时请选择区县"); } if (StringUtils.isEmpty(tenantUser.getTenantCode()) || "0".equals(tenantUser.getTenantCode())) { return ResponseValue.error("添加时请选择区县"); } // 插入系统用户 buildTenantUser(tenantUser, null); this.finSysTenantUserService.insert(tenantUser); // 插入平台用户 S_user_core userCore = getsUserCore(tenantUser); this.userService.insert(userCore); // 插入平台机构 // 少角色id // 机构id 多个 List<Long> roleList = user.getRoleList(); if (!CollectionUtils.isEmpty(roleList)) { // 用户id Long sysUserId = tenantUser.getSysUserId(); this.finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId); } // this.getFinCustomerCache().remove(); return ResponseValue.success(1); } private void buildTenantUser(FinSysTenantUser tenantUser, FinSysTenantUser sysInfo) { tenantUser.setId(NumberGenerator.getLongSequenceNumber()); tenantUser.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); tenantUser.setCreateBy(this.getCurrentUser().getUser_name()); tenantUser.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); tenantUser.setUpdateBy(this.getCurrentUser().getUser_name()); // user.setStatus(1);// 0禁用 1启用 // 是否删除 0是 1否 tenantUser.setIsDelete(0); tenantUser.setSysUserId(NumberGenerator.getLongSequenceNumber()); // 加密手机号 @@ -241,32 +219,46 @@ encPhone = AESUtils.encryptStrAES(tenantUser.getUserPhone(), key); } tenantUser.setUserPhone(encPhone); // 怎么获取左侧机构树数据 // tenantUser.setSysDeptId(3L); // 对应平台机构id 默认为平台管理 this.finSysTenantUserService.insert(tenantUser); String tenantId = tenantUser.getTenantId(); FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(tenantId)); tenantUser.setTenantCode(finSysTenant.getCode()); // 插入平台用户 // 处理方法addSupplier if (sysInfo != null) { tenantUser.setIsDelete(1); tenantUser.setLv(sysInfo.getLv()); tenantUser.setTenantCode(sysInfo.getTenantCode()); tenantUser.setTenantId(sysInfo.getTenantId()); // 运维管理 tenantUser.setSysDeptId(2l); } } private S_user_core getsUserCore(FinSysTenantUser tenantUser) { S_user_core userCore = new S_user_core(); userCore.setId(tenantUser.getSysUserId()); userCore.setDept_id(3L); // 部门id,目前写死 userCore.setOrg_id(tenantUser.getSysDeptId()); // 机构id // 部门id 部门信息未同步,只填充数据 userCore.setDept_id(tenantUser.getSysDeptId()); // 机构id userCore.setOrg_id(tenantUser.getSysDeptId()); userCore.setOrg_id(1L); userCore.setUser_name(tenantUser.getUserCode()); // 用户账号 // 用户账号 userCore.setUser_name(tenantUser.getUserCode()); userCore.setNick_name(tenantUser.getUserName()); // 用户类型 先默认设置为2 userCore.setUser_type(2); userCore.setPhonenumber(encPhone); userCore.setPhonenumber(tenantUser.getUserPhone()); userCore.setSex(tenantUser.getSex().toString()); // 初始化密码 123456 String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue(); userCore.setPassword(pws); // 平台用户表和系统用户 表状态相反 if (tenantUser.getStatus() == 0) { tenantUser.setStatus(1); userCore.setStatus(1); } else { tenantUser.setStatus(0); userCore.setStatus(0); } userCore.setStatus(tenantUser.getStatus()); userCore.setDel_flag(0); userCore.setCreate_by(this.getCurrentUser().getUser_name()); userCore.setCreate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis())); @@ -289,16 +281,7 @@ userCore.setType(1); // 商户id,0-平台 userCore.setMer_id(0L); this.userService.insert(userCore); // 插入平台机构 // 少角色id List<Long> roleList = user.getRoleList(); // 机构id 多个 if (!CollectionUtils.isEmpty(roleList)) { Long sysUserId = tenantUser.getSysUserId(); // 用户id this.finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId); } // this.getFinCustomerCache().remove(); return ResponseValue.success(1); return userCore; } /** @@ -335,7 +318,7 @@ throw new ImportUserParamVerifyException("单元格不能为空!"); } // 根据员工编号查询,如果存在则提示 if (finSysTenantUserService.getByUserCode(data.getUserCode()) > 0) { if (finSysTenantUserService.getByUserCode(data.getUserCode()) != null) { throw new ImportUserParamVerifyException("员工编号为空或已存在!"); } if (data.getSex() < 1 && data.getSex() > 0) { @@ -415,49 +398,7 @@ ArrayList<S_user_core> sUserCores = new ArrayList<>(); for (FinSysTenantUser user : finSysTenantUsers) { // 插入平台用户 S_user_core userCore = new S_user_core(); userCore.setId(user.getSysUserId()); userCore.setDept_id(3L); // 部门id,目前写死 userCore.setOrg_id(user.getSysDeptId()); // 机构id userCore.setOrg_id(1L); userCore.setUser_name(user.getUserCode()); // 用户账号 userCore.setNick_name(user.getUserName()); // 用户类型 先默认设置为2 userCore.setUser_type(2); userCore.setPhonenumber(user.getUserPhone()); userCore.setSex(user.getSex().toString()); // 初始化密码 123456 String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue(); userCore.setPassword(pws); // 平台用户表和系统用户 表状态相反 if (user.getStatus() == 0) { user.setStatus(1); } else { user.setStatus(0); } userCore.setStatus(user.getStatus()); userCore.setDel_flag(0); userCore.setCreate_by(this.getCurrentUser().getUser_name()); userCore.setCreate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis())); userCore.setRemark(user.getRemark()); userCore.setType(1); userCore.setBind_client_id("0"); userCore.setBind_wechat(0); userCore.setModify_pwd(0); userCore.setBind_mobile(0); userCore.setBind_mail(0); userCore.setProfile_id(0L); userCore.setIs_wechat_public(0); userCore.setIs_wechat_routine(0); userCore.setIs_wechat_ios(0); userCore.setIs_wechat_android(0); userCore.setIs_logoff(0); userCore.setLogoff_time(0L); userCore.setIs_sms(0); // 管理员类型:1= 平台超管, 2=商户超管, 3=系统管理员,4=商户管理员 userCore.setType(1); // 商户id,0-平台 userCore.setMer_id(0L); S_user_core userCore = getsUserCore(user); sUserCores.add(userCore); } // 保存用户信息 @@ -503,17 +444,37 @@ // 1.更新系统用户 FIN_SYS_TENANT_USER finSysTenantUserService.update(tenantUser); // 2.更新平台用户 S_USER_CORE S_user_core userCore = buildUpdateUserCore(user); this.userService.update(userCore); // 3. 更新角色配置 S_ROLE_USER // 1. 根据 user.getSysUserId() 查询 // 已有的权限 Long sysUserId = user.getSysUserId(); List<S_role> list = finSysTenantUserService.getByUserId(sysUserId); // 选择的权限 List<Long> roleList = user.getRoleList(); // 先删除再添加 if (list != null && list.size() > 0) { finSysTenantUserService.execDelRoleUserList(sysUserId); } if (roleList != null && roleList.size() > 0) { finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId); } this.getFinSysTenantUserCache().remove(sysUserId.toString()); return ResponseValue.success(1); } private S_user_core buildUpdateUserCore(FinSysTenantUser user) { S_user_core userCore = new S_user_core(); userCore.setId(user.getSysUserId()); userCore.setUpdate_by(this.getCurrentUser().getUser_name()); userCore.setUpdate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis())); // 平台用户表和系统用户 表状态相反 if (user.getStatus() == 0) { user.setStatus(1); userCore.setStatus(1); } else { user.setStatus(0); userCore.setStatus(0); } userCore.setStatus(user.getStatus()); if (user.getSex() != null) { userCore.setSex(user.getSex().toString()); } @@ -521,20 +482,8 @@ userCore.setNick_name(user.getUserName()); // 加密手机号 userCore.setPhonenumber(user.getUserPhone()); this.userService.update(userCore); // 3. 更新角色配置 S_ROLE_USER // 1. 根据 user.getSysUserId() 查询 List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId()); // 已有的权限 List<Long> roleList = user.getRoleList(); // 选择的权限 // 先删除再添加 if (list != null && list.size() > 0) { finSysTenantUserService.execDelRoleUserList(user.getSysUserId()); } if (roleList != null && roleList.size() > 0) { finSysTenantUserService.execInsertRoleUserList(roleList, user.getSysUserId()); } this.getFinSysTenantUserCache().remove(user.getSysUserId() + ""); return ResponseValue.success(1); return userCore; } /** @@ -552,25 +501,14 @@ return ResponseValue.error("参数为空"); } // 1.更新系统用户 FIN_SYS_TENANT_USER 应该是查询 然后只改状态 List<FinSysTenantUser> select = finSysTenantUserService.select(new FinSysTenantUser(tenantUser.getId())); if (select == null || select.size() == 0) { FinSysTenantUser finSysTenantUser = finSysTenantUserService.queryOneById(tenantUser.getId().toString()); if (finSysTenantUser == null) { return ResponseValue.error("用户不存在"); } FinSysTenantUser finSysTenantUser = select.get(0); finSysTenantUser.setStatus(user.getStatus()); finSysTenantUserService.update(finSysTenantUser); // 2.更新平台用户 S_USER_CORE S_user_core userCore = new S_user_core(); userCore.setId(user.getSysUserId()); userCore.setUpdate_by(this.getCurrentUser().getUser_name()); userCore.setUpdate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis())); // 平台用户表和系统用户 表状态相反 if (user.getStatus() == 0) { user.setStatus(1); } else { user.setStatus(0); } userCore.setStatus(user.getStatus()); S_user_core userCore = buildUpdateUserCore(tenantUser); this.userService.update(userCore); return ResponseValue.success(1); } @@ -591,13 +529,14 @@ return ResponseValue.error("用户信息不存在"); } // 初始化密码 123456 String stringValue = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();// 密文 // 密文 String password = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue(); // 1. 修改用户表 // 用户表id Long sysUserId = user.getSysUserId(); S_user_core userCore = new S_user_core(); userCore.setId(sysUserId); userCore.setPassword(stringValue); userCore.setPassword(password); userCore.setModify_pwd(0); userService.update(userCore); // 2. 修改平台用户(不用修改) @@ -693,8 +632,10 @@ return ResponseValue.error("参数为空"); } // 1. 根据 user.getSysUserId() 查询 List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId()); // 已有的权限 List<Long> roleList = user.getRoleList(); // 选择的权限 // 已有的权限 List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId()); // 选择的权限 List<Long> roleList = user.getRoleList(); // 先删除再添加 if (list != null && list.size() > 0) { finSysTenantUserService.execDelRoleUserList(user.getSysUserId()); @@ -726,76 +667,18 @@ return ResponseValue.error(roleName + "的角色不存在"); } // 根据员工编号查询,如果存在则提示 if (finSysTenantUserService.getByUserCode(user.getUserCode()) != null && finSysTenantUserService.getByUserCode(user.getUserCode()) > 0) { if (finSysTenantUserService.getByUserCode(user.getUserCode()) != null) { return ResponseValue.error("员工编号重复"); } FinSysTenantUser sysInfo = this.getSysInfo(); // 插入系统用户 user.setId(NumberGenerator.getLongSequenceNumber()); user.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); user.setCreateBy(this.getCurrentUser().getUser_name()); user.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); user.setUpdateBy(this.getCurrentUser().getUser_name()); user.setIsDelete(0);// 是否删除 0是 1否 user.setSysUserId(NumberGenerator.getLongSequenceNumber()); user.setIsDelete(1); user.setLv(sysInfo.getLv()); user.setTenantCode(sysInfo.getTenantCode()); user.setTenantId(sysInfo.getTenantId()); user.setSysDeptId(2l); // 运维管理 // 加密手机号 String key = PlatformRSAUtils.AES_KEY; String userPhone = user.getUserPhone(); String encPhone = ""; if (userPhone != null) { encPhone = AESUtils.encryptStrAES(userPhone, key); user.setUserPhone(encPhone); } buildTenantUser(user, sysInfo); this.finSysTenantUserService.insert(user); // 插入平台用户 S_user_core userCore = new S_user_core(); userCore.setId(user.getSysUserId()); userCore.setDept_id(depts.get(0).getId()); // 部门 userCore.setOrg_id(1L); // userCore.setUser_name(); //用户账号 userCore.setUser_name(user.getUserCode()); // 用户账号 userCore.setNick_name(user.getUserName()); // 用户类型 先默认设置为2 userCore.setUser_type(2); userCore.setPhonenumber(userPhone); // 初始化密码 123456 String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue(); userCore.setPassword(pws); if (user.getStatus() == 0) { userCore.setStatus(1); } else { userCore.setStatus(0); } userCore.setDel_flag(0); userCore.setCreate_by(this.getCurrentUser().getCreate_by()); userCore.setCreate_time(DateUtils.getDateTimeNumber()); userCore.setRemark(user.getRemark()); userCore.setType(1); userCore.setBind_client_id("0"); userCore.setBind_wechat(0); userCore.setModify_pwd(0); userCore.setBind_mobile(0); userCore.setBind_mail(0); userCore.setProfile_id(0L); userCore.setIs_wechat_public(0); userCore.setIs_wechat_routine(0); userCore.setIs_wechat_ios(0); userCore.setIs_wechat_android(0); userCore.setIs_logoff(0); userCore.setLogoff_time(0L); userCore.setIs_sms(0); // 管理员类型:1= 平台超管, 2=商户超管, 3=系统管理员,4=商户管理员 S_user_core userCore = buildUpdateUserCore(user); // 部门 userCore.setDept_id(depts.get(0).getId()); userCore.setType(2); // 商户id,0-平台 userCore.setMer_id(0L); this.userService.insert(userCore); // 插入平台机构 // 少角色id consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java
@@ -27,7 +27,7 @@ import com.consum.base.pojo.response.FormInventoryDetailVO; import com.consum.base.pojo.response.FormInventoryGoodsVO; import com.consum.base.pojo.response.FormInventoryVO; import com.consum.base.service.FinSysTenantUserServiceImpl; import com.consum.base.service.FinSysTenantUserService; import com.consum.base.service.LWhFormInventoryService; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormInventory; @@ -58,7 +58,7 @@ @Autowired private LWhFormInventoryService lWhFormInventoryService; @Autowired private FinSysTenantUserServiceImpl finSysTenantUserService; private FinSysTenantUserService finSysTenantUserService; /** * @Description 新增 @@ -329,7 +329,8 @@ map.put("monitorName", monitorName); map.put("name", operatorName); Workbook workbook = ExcelExportUtil.exportExcel(params, InventoryExcelTemplate.class, exportList, map); return ResponseValue.success(downLoadExcel("低值易耗品盘点表", response, workbook)); String filePath = downLoadExcel("低值易耗品盘点表", response, workbook); return ResponseValue.success("导出成功", filePath); } } consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -215,7 +215,7 @@ @ApiOperation(value = "出库单导出", notes = "出库单导出") @ApiImplicitParam(name = "id", value = "出库单id", required = true, dataType = "Long", paramType = "query") @GetMapping("/list/export") public ResponseValue<String> export(Long id, HttpServletResponse response) throws Exception { public ResponseValue export(Long id, HttpServletResponse response) throws Exception { FinSysTenantUser sysInfo = this.getSysInfo(); if (sysInfo == null) { throw new RuntimeException("登录用户信息不存在"); @@ -251,7 +251,8 @@ map.put("totalAmount", totalAmount); Workbook workbook = ExcelExportUtil.exportExcel(params, OutputExcelTemplate.class, exportList, map); return ResponseValue.success(downLoadExcel("出库单", response, workbook)); String filePath = downLoadExcel("出库单", response, workbook); return ResponseValue.success("导出成功", filePath); } consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
@@ -1,8 +1,24 @@ package com.consum.base.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.hutool.core.util.ReflectUtil; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import org.apache.commons.compress.utils.Lists; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.consum.base.BaseController; import com.consum.base.core.utils.CommonUtil; import com.consum.base.core.utils.PageUtil; @@ -11,7 +27,11 @@ import com.consum.base.pojo.dto.GoodModelInfoDTO; import com.consum.base.pojo.excel.ProcureExcelTemplate; import com.consum.base.pojo.query.FormProcureQry; import com.consum.base.pojo.response.*; import com.consum.base.pojo.response.FormProcureVO; import com.consum.base.pojo.response.GoodsModelVO; import com.consum.base.pojo.response.GoodsTemplateCountVO; import com.consum.base.pojo.response.GoodsTemplateInfoVO; import com.consum.base.pojo.response.LWhFormProcureExtendVO; import com.consum.base.service.LWhFormProcureGoodsService; import com.consum.base.service.LWhFormProcureService; import com.consum.base.service.LWhProcureModelService; @@ -24,19 +44,14 @@ import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; import com.walker.web.ResponseValue; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.hutool.core.util.ReflectUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.compress.utils.Lists; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Field; import java.util.*; /** * @ClassName LWhFormProcureController @@ -305,7 +320,8 @@ map.put("totalAmount", totalAmount); Workbook workbook = ExcelExportUtil.exportExcel(params, ProcureExcelTemplate.class, exportList, map); return ResponseValue.success(downLoadExcel("采购入库单", response, workbook)); String filePath = downLoadExcel("采购入库单", response, workbook); return ResponseValue.success("导出成功", filePath); } } consum-base/src/main/java/com/consum/base/controller/LWhFormScrappedController.java
@@ -186,7 +186,8 @@ map.put("totalAmount", totalAmount); Workbook sheets = ExcelExportUtil.exportExcel(exportParams, ScrappedInfoExcelTemplate.class, export, map); return ResponseValue.success(downLoadExcel("报废登记单", response, sheets)); String filePath = downLoadExcel("报废登记单", response, sheets); return ResponseValue.success("导出成功", filePath); } consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -322,7 +322,8 @@ map.put("totalAmount", totalAmount); Workbook workbook = ExcelExportUtil.exportExcel(params, TransferExcelTemplate.class, export, map); return ResponseValue.success(downLoadExcel(fileName, response, workbook)); String filePath = downLoadExcel(fileName, response, workbook); return ResponseValue.success("导出成功", filePath); } consum-base/src/main/java/com/consum/base/service/FinSysTenantUserService.java
New file @@ -0,0 +1,43 @@ package com.consum.base.service; import java.util.List; import com.consum.base.pojo.FinSysTenantUserSearchParam; import com.consum.model.po.FinSysTenantUser; import com.iplatform.model.po.S_dept; import com.iplatform.model.po.S_role; import com.walker.db.page.GenericPager; import com.walker.jdbc.service.BaseService; /** * FinSysTenantUserService * * @author asus * @version 2023/12/12 14:11 **/ public interface FinSysTenantUserService extends BaseService { GenericPager<FinSysTenantUser> queryAllPageUser(FinSysTenantUserSearchParam param); FinSysTenantUser queryOneById(String id); FinSysTenantUser queryOneBySysId(String sysUserId); FinSysTenantUser queryOneByUserId(String userId); void execInsertRoleUserList(List<Long> roleIdList, Long userId); void execInsertRoleUserList(List<FinSysTenantUser> finSysTenantUsers); void execDelRoleUserList(Long userId); FinSysTenantUser getByUserCode(String userCode); List<S_role> getByUserId(Long userId); List<S_role> getRoleAll(); List<S_dept> selectDept(String deptName); List<FinSysTenantUser> getByOrgId(Long orgId); } consum-base/src/main/java/com/consum/base/service/impl/BaseWarehouseManagerServiceImpl.java
@@ -14,7 +14,7 @@ import com.consum.base.pojo.WarehouseManagerInfo; import com.consum.base.pojo.request.WarehouseManagerParam; import com.consum.base.service.BaseWarehouseManagerService; import com.consum.base.service.FinSysTenantUserServiceImpl; import com.consum.base.service.FinSysTenantUserService; import com.consum.model.po.BaseWarehouseManager; import com.consum.model.po.FinSysTenantUser; import com.iplatform.model.po.S_role; @@ -30,7 +30,7 @@ public class BaseWarehouseManagerServiceImpl extends BaseServiceImpl implements BaseWarehouseManagerService { @Autowired private FinSysTenantUserServiceImpl finSysTenantUserService; private FinSysTenantUserService finSysTenantUserService; /** * @return consum-base/src/main/java/com/consum/base/service/impl/FinSysTenantUserServiceImpl.java
File was renamed from consum-base/src/main/java/com/consum/base/service/FinSysTenantUserServiceImpl.java @@ -1,4 +1,12 @@ package com.consum.base.service; package com.consum.base.service.impl; import com.consum.base.service.FinSysTenantUserService; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.stereotype.Service; import com.consum.base.pojo.FinSysTenantUserSearchParam; import com.consum.model.po.FinSysTenantUser; @@ -9,15 +17,9 @@ import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class FinSysTenantUserServiceImpl extends BaseServiceImpl { public class FinSysTenantUserServiceImpl extends BaseServiceImpl implements FinSysTenantUserService { private static final String SQL_GET_USER = "SELECT * FROM fin_sys_tenant_user WHERE IS_DELETE = 0 AND `STATUS` = 1 AND TENANT_ID = ?"; @@ -50,6 +52,7 @@ * @Author wh * @Date 2023/7/17 14:26 */ @Override public GenericPager<FinSysTenantUser> queryAllPageUser(FinSysTenantUserSearchParam param) { Map<String, Object> parameter = new HashMap<>(5); StringBuilder sql = new StringBuilder(SQL_QH_PAGE_USER_PREFIX); @@ -118,6 +121,7 @@ return this.selectSplit(sql.toString(), parameter, new FinSysTenantUser()); } @Override public FinSysTenantUser queryOneById(String id) { FinSysTenantUser finSysTenantUser = new FinSysTenantUser(); finSysTenantUser.setId(Long.valueOf(id)); @@ -127,7 +131,9 @@ } return null; } public FinSysTenantUser queryOneBySysId(String sysUserId) { @Override public FinSysTenantUser queryOneBySysId(String sysUserId) { FinSysTenantUser finSysTenantUser = new FinSysTenantUser(); finSysTenantUser.setSysUserId(Long.valueOf(sysUserId)); List<FinSysTenantUser> finSysTenantUserList = this.select(finSysTenantUser); @@ -137,14 +143,10 @@ return null; } @Override public FinSysTenantUser queryOneByUserId(String userId) { List<FinSysTenantUser> finSysTenantUserList = this.select(SQL_TENANT_USER, new Object[] {userId}, new FinSysTenantUser()); if (finSysTenantUserList.size() > 0) { return finSysTenantUserList.get(0); } else { return null; } FinSysTenantUser finSysTenantUser = this.get(SQL_TENANT_USER, new Object[] {userId}, new FinSysTenantUser()); return finSysTenantUser; } /** @@ -153,6 +155,7 @@ * @param roleIdList * @param userId */ @Override public void execInsertRoleUserList(List<Long> roleIdList, Long userId) { List<Object[]> parameters = new ArrayList<>(); Object[] one = null; @@ -168,6 +171,7 @@ /** * 批量添加角色对应的用户。支持同时多个用户 */ @Override public void execInsertRoleUserList(List<FinSysTenantUser> finSysTenantUsers) { List<Object[]> parameters = new ArrayList<>(); for (FinSysTenantUser finSysTenantUser : finSysTenantUsers) { @@ -188,6 +192,7 @@ * * @param userId */ @Override public void execDelRoleUserList(Long userId) { List<Object[]> parameters = new ArrayList<>(); Object[] one = new Object[1]; @@ -196,19 +201,7 @@ this.execBatchUpdate(SQL_DELETE_ROLE_USER, parameters); } /** * 根据用户id和角色id删除用户角色 * * @param userId */ public void execDeleteRoleByUserIdAndRoleId(Long userId, Long roleId) { List<Object[]> parameters = new ArrayList<>(); Object[] one = new Object[2]; one[0] = userId; one[1] = roleId; parameters.add(one); this.execBatchUpdate(SQL_DELETE_ROLE_BY_USER_ID_AND_ROLE_ID, parameters); } /** * 根据userCode查询重复。 @@ -216,18 +209,14 @@ * @param userCode 用户登录标识 * @return */ public Integer getByUserCode(String userCode) { @Override public FinSysTenantUser getByUserCode(String userCode) { Map<String, Object> parameter = new HashMap<>(); StringBuilder sql = new StringBuilder(SQL_SELECT_USER_CODE); sql.append("and USER_CODE= :userCode"); sql.append("and USER_CODE= :userCode"); parameter.put("userCode", userCode); sql.append(" limit 1"); List<FinSysTenantUser> select = this.select(sql.toString(), parameter, new FinSysTenantUser()); Integer flag = 0; if (select != null && select.size() > 0) { flag = select.size(); } return flag; FinSysTenantUser finSysTenantUser = this.get(sql.toString(), parameter, new FinSysTenantUser()); return finSysTenantUser; } /** @@ -236,6 +225,7 @@ * @param userId * @return */ @Override public List<S_role> getByUserId(Long userId) { Map<String, Object> parameter = new HashMap<>(); StringBuilder sql = new StringBuilder(SQL_SELECT_USER_ID); @@ -250,6 +240,7 @@ * * @return */ @Override public List<S_role> getRoleAll() { Map<String, Object> parameter = new HashMap<>(); StringBuilder sql = new StringBuilder(SQL_SELECT_USER_ID); @@ -257,6 +248,7 @@ return select; } @Override public List<S_dept> selectDept(String deptName) { StringBuilder sqlStr = new StringBuilder(SQL_DEPT_ROLES); Map<String, Object> paramts = new HashMap<>(); @@ -271,6 +263,7 @@ * @Author wh * @Date 2023/10/4 15:49 */ @Override public List<FinSysTenantUser> getByOrgId(Long orgId) { return this.select(SQL_GET_USER, new Object[] {orgId}, new FinSysTenantUser()); }