From 5cc71ce7da0d9412e034e0a2a0148b232f80ca8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=80=A1?= Date: Thu, 10 Jul 2025 14:48:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=83=A8=E5=88=86=E6=96=B9?= =?UTF-8?q?=E6=B3=95,=E8=B0=83=E6=95=B4=E4=BF=AE=E6=94=B9=E5=8C=85?= =?UTF-8?q?=E5=90=8D=E5=90=8E=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 14 + .../login/controller/LoginController.java | 5 + .../ebtp/system/login/entity/BaseSelf.java | 2 +- .../system/login/service/BaseUserService.java | 7 + .../service/impl/BaseUserServiceImpl.java | 277 +++++++++++------- .../user/controller/SysUserController.java | 13 +- .../system/user/dao/SysExpertUserMapper.java | 9 +- .../user/dao/SysSupplierUserMapper.java | 2 +- .../ebtp/system/user/dao/SysUserMapper.java | 7 + .../system/user/dao/mapper/SysUserMapper.xml | 9 +- .../system/user/service/SysUserService.java | 9 +- .../user/service/impl/SysUserServiceImpl.java | 14 + .../controller/UserInfoController.java | 4 +- src/main/resources/application-master.yml | 4 +- src/main/resources/application.yml | 11 +- 15 files changed, 260 insertions(+), 127 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cc7ed9b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +# 使用官方Java基础镜像 +FROM openjdk:8-jdk-alpine + +# 设置工作目录 +WORKDIR /app + +# 复制构建好的jar包到容器中 +COPY target/sys_manager_ebtp_project-0.0.1.jar app.jar + +# 暴露应用端口(与application.yml中的server.port一致) +EXPOSE 18030 + +# 启动应用 +ENTRYPOINT ["java","-jar","app.jar"] diff --git a/src/main/java/com/coscoshipping/ebtp/system/login/controller/LoginController.java b/src/main/java/com/coscoshipping/ebtp/system/login/controller/LoginController.java index 60f751d..750f04f 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/login/controller/LoginController.java +++ b/src/main/java/com/coscoshipping/ebtp/system/login/controller/LoginController.java @@ -92,4 +92,9 @@ public class LoginController { } } + @ApiOperation("重置密码") + @PostMapping("/resetPassword") + public BaseResponse resetPassword(@RequestBody LoginUserVo vo) { + return BaseResponse.success(iBaseUserService.resetPassword(vo.getAccount())); + } } diff --git a/src/main/java/com/coscoshipping/ebtp/system/login/entity/BaseSelf.java b/src/main/java/com/coscoshipping/ebtp/system/login/entity/BaseSelf.java index 6238aba..8655a5f 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/login/entity/BaseSelf.java +++ b/src/main/java/com/coscoshipping/ebtp/system/login/entity/BaseSelf.java @@ -1,9 +1,9 @@ package com.coscoshipping.ebtp.system.login.entity; -import com.coscoshipping.ebtp.system.org.entity.SysOrg; import com.coscoshipping.ebtp.system.user.entity.SysExpertUser; import com.coscoshipping.ebtp.system.user.entity.SysSupplierUser; +import com.coscoshipping.ebtp.system.org.entity.SysOrg; import com.coscoshipping.ebtp.system.user.entity.SysUser; import lombok.Data; diff --git a/src/main/java/com/coscoshipping/ebtp/system/login/service/BaseUserService.java b/src/main/java/com/coscoshipping/ebtp/system/login/service/BaseUserService.java index 63e4363..d0901dd 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/login/service/BaseUserService.java +++ b/src/main/java/com/coscoshipping/ebtp/system/login/service/BaseUserService.java @@ -28,4 +28,11 @@ public interface BaseUserService extends IBaseService { SecurityEntity bdCheckToken(String token); Boolean logout(HttpServletRequest request); + + /** + * 重置用户密码 + * @param account 用户账号(工号) + * @return 是否重置成功 + */ + boolean resetPassword(String account); } diff --git a/src/main/java/com/coscoshipping/ebtp/system/login/service/impl/BaseUserServiceImpl.java b/src/main/java/com/coscoshipping/ebtp/system/login/service/impl/BaseUserServiceImpl.java index 962e7f1..2b1d032 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/login/service/impl/BaseUserServiceImpl.java +++ b/src/main/java/com/coscoshipping/ebtp/system/login/service/impl/BaseUserServiceImpl.java @@ -1,5 +1,30 @@ package com.coscoshipping.ebtp.system.login.service.impl; +import static com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants.REDIS_USER_KEY; + +import java.math.BigInteger; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.time.LocalDateTime; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +import javax.annotation.Resource; +import javax.crypto.BadPaddingException; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -11,44 +36,25 @@ import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser; import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService; import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum; + +import com.coscoshipping.ebtp.system.user.entity.SysExpertUser; +import com.coscoshipping.ebtp.system.user.entity.SysSupplierUser; import com.coscoshipping.ebtp.system.login.common.Constants; import com.coscoshipping.ebtp.system.login.common.RSA; import com.coscoshipping.ebtp.system.login.dao.BaseUserMapper; -import com.coscoshipping.ebtp.system.login.entity.*; +import com.coscoshipping.ebtp.system.login.entity.BaseSelf; +import com.coscoshipping.ebtp.system.login.entity.BaseUserToken; import com.coscoshipping.ebtp.system.login.service.BaseUserService; import com.coscoshipping.ebtp.system.login.service.BaseUserTokenService; import com.coscoshipping.ebtp.system.org.entity.SysOrg; import com.coscoshipping.ebtp.system.org.service.SysOrgService; import com.coscoshipping.ebtp.system.user.dao.SysExpertUserMapper; import com.coscoshipping.ebtp.system.user.dao.SysSupplierUserMapper; -import com.coscoshipping.ebtp.system.user.entity.SysExpertUser; -import com.coscoshipping.ebtp.system.user.entity.SysSupplierUser; import com.coscoshipping.ebtp.system.user.entity.SysUser; + import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.stereotype.Service; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; -import javax.annotation.Resource; -import javax.crypto.BadPaddingException; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.math.BigInteger; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.time.LocalDateTime; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.TimeUnit; - -import static com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants.REDIS_USER_KEY; +; /** * 对数据表 base_user 操作的 serviceImpl @@ -72,6 +78,8 @@ public class BaseUserServiceImpl extends BaseServiceImpl userinfoRedisTemplate; - @Override public BaseSelf idcardLogin(String account, String password) { try { - List userList = this.list(new LambdaQueryWrapper().eq(SysUser::getEmployeeNumber, account).eq(SysUser::getStatus, Integer.parseInt(Constants.USER_STATUS_LIVE))); + List userList = this.list(new LambdaQueryWrapper().eq(SysUser::getEmployeeNumber, account) + .eq(SysUser::getStatus, Integer.parseInt(Constants.USER_STATUS_LIVE))); if (userList == null || userList.size() == 0) { throw new RuntimeException("无效用户!"); } @@ -109,12 +117,10 @@ public class BaseUserServiceImpl extends BaseServiceImpl 0) roleIds.append(","); + if (roleIds.length() > 0) + roleIds.append(","); roleIds.append(ae.getRoleId()); } baseCacheUser.setRoleIds(roleIds.toString()); @@ -147,11 +154,10 @@ public class BaseUserServiceImpl extends BaseServiceImpl userList = sysSupplierUserMapper.selectList(new LambdaQueryWrapper().eq(SysSupplierUser::getUsername, account).eq(SysSupplierUser::getStatus, Integer.parseInt(Constants.USER_STATUS_LIVE))); + List userList = sysSupplierUserMapper + .selectList(new LambdaQueryWrapper().eq(SysSupplierUser::getUsername, account) + .eq(SysSupplierUser::getStatus, Integer.parseInt(Constants.USER_STATUS_LIVE))); if (userList == null || userList.size() == 0) { throw new RuntimeException("无效用户!"); } @@ -182,23 +191,21 @@ public class BaseUserServiceImpl extends BaseServiceImpl userList = sysExpertUserMapper.selectList(new LambdaQueryWrapper().eq(SysExpertUser::getUsername, account).eq(SysExpertUser::getStatus, Integer.parseInt(Constants.USER_STATUS_LIVE))); + List userList = sysExpertUserMapper + .selectList(new LambdaQueryWrapper().eq(SysExpertUser::getUsername, account) + .eq(SysExpertUser::getStatus, Integer.parseInt(Constants.USER_STATUS_LIVE))); if (userList == null || userList.size() == 0) { throw new RuntimeException("无效用户!"); } @@ -228,23 +238,21 @@ public class BaseUserServiceImpl extends BaseServiceImpl tokenList = baseUserTokenService.list((new LambdaQueryWrapper().eq(BaseUserToken::getUserId, userId) - .gt(BaseUserToken::getValidTime, LocalDateTime.now()).eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E).orderByDesc(BaseUserToken::getValidTime))); + List tokenList = baseUserTokenService.list((new LambdaQueryWrapper() + .eq(BaseUserToken::getUserId, userId) + .gt(BaseUserToken::getValidTime, LocalDateTime.now()) + .eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E).orderByDesc(BaseUserToken::getValidTime))); String token = UUID.randomUUID().toString(); BaseUserToken tokenObj = new BaseUserToken(); if (tokenList != null && tokenList.size() > 0) { @@ -325,10 +338,13 @@ public class BaseUserServiceImpl extends BaseServiceImpl tokenList = baseUserTokenService.list((new LambdaQueryWrapper().eq(BaseUserToken::getUserId, userId) - .gt(BaseUserToken::getValidTime, LocalDateTime.now()).eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E).orderByDesc(BaseUserToken::getValidTime))); + List tokenList = baseUserTokenService.list((new LambdaQueryWrapper() + .eq(BaseUserToken::getUserId, userId) + .gt(BaseUserToken::getValidTime, LocalDateTime.now()) + .eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E).orderByDesc(BaseUserToken::getValidTime))); String token = UUID.randomUUID().toString(); BaseUserToken tokenObj = new BaseUserToken(); if (tokenList != null && tokenList.size() > 0) { @@ -346,10 +362,13 @@ public class BaseUserServiceImpl extends BaseServiceImpl tokenList = baseUserTokenService.list((new LambdaQueryWrapper().eq(BaseUserToken::getUserId, userId) - .gt(BaseUserToken::getValidTime, LocalDateTime.now()).eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E).orderByDesc(BaseUserToken::getValidTime))); + List tokenList = baseUserTokenService.list((new LambdaQueryWrapper() + .eq(BaseUserToken::getUserId, userId) + .gt(BaseUserToken::getValidTime, LocalDateTime.now()) + .eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E).orderByDesc(BaseUserToken::getValidTime))); String token = UUID.randomUUID().toString(); BaseUserToken tokenObj = new BaseUserToken(); if (tokenList != null && tokenList.size() > 0) { @@ -410,7 +429,8 @@ public class BaseUserServiceImpl extends BaseServiceImpl baseUserList = this.list((new LambdaQueryWrapper().eq(SysUser::getEmployeeNumber, user.getUserId()))); + CommonExceptionEnum.LOGIN_EXPIRATION.customValidName("账号不存在", + user == null || StringUtils.isBlank(user.getUserId())); + List baseUserList = this + .list((new LambdaQueryWrapper().eq(SysUser::getEmployeeNumber, user.getUserId()))); if (baseUserList != null && baseUserList.size() > 0) { self = userLogin(baseUserList.get(0)); self.setToken(token); @@ -447,18 +469,20 @@ public class BaseUserServiceImpl extends BaseServiceImpl authorityList =this.baseUserMapper.selectRoleByUserId(baseUser.getUserId());; + securityEntity.setUserSource("0");// 账号类型中远 + List authorityList = this.baseUserMapper.selectRoleByUserId(baseUser.getUserId()); + ; securityEntity.setAuthorityList(authorityList); return securityEntity; } + public SecurityEntity getUserObjectByExpertUserId(String userId) { SecurityEntity securityEntity = new SecurityEntity(); @@ -467,18 +491,21 @@ public class BaseUserServiceImpl extends BaseServiceImpl authorityList =this.sysExpertUserMapper.selectRoleByUserId(String.valueOf(baseUser.getUserId()));; + // securityEntity.setOu(baseUser.getOrgId());//部门id + // securityEntity.setOuName(baseUser.getOrgName()); + // SysOrg company = sysOrgService.getCompanyByOrgId(baseUser.getOrgId()); + // if (company != null) { + // securityEntity.setOrgId(company.getOrgId());//公司id + // securityEntity.setOrgName(company.getOrgName()); + // } + securityEntity.setUserSource("1");// 账号类型专家库 + List authorityList = this.sysExpertUserMapper + .selectRoleByUserId(String.valueOf(baseUser.getUserId())); + ; securityEntity.setAuthorityList(authorityList); return securityEntity; } + public SecurityEntity getUserObjectBySupplierUserId(String userId) { SecurityEntity securityEntity = new SecurityEntity(); @@ -487,15 +514,17 @@ public class BaseUserServiceImpl extends BaseServiceImpl authorityList =this.sysSupplierUserMapper.selectRoleByUserId(String.valueOf(baseUser.getUserId().longValue()));; + // securityEntity.setOu(baseUser.getOrgId());//部门id + // securityEntity.setOuName(baseUser.getOrgName()); + // SysOrg company = sysOrgService.getCompanyByOrgId(baseUser.getOrgId()); + // if (company != null) { + // securityEntity.setOrgId(company.getOrgId());//公司id + // securityEntity.setOrgName(company.getOrgName()); + // } + securityEntity.setUserSource("2");// 账号类型供应商 + List authorityList = this.sysSupplierUserMapper + .selectRoleByUserId(String.valueOf(baseUser.getUserId().longValue())); + ; securityEntity.setAuthorityList(authorityList); return securityEntity; } @@ -508,8 +537,10 @@ public class BaseUserServiceImpl extends BaseServiceImpl tokenList = baseUserTokenService.list((new LambdaQueryWrapper().eq(BaseUserToken::getToken, token) - .gt(BaseUserToken::getValidTime, LocalDateTime.now()).eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E).orderByDesc(BaseUserToken::getValidTime))); + List tokenList = baseUserTokenService.list((new LambdaQueryWrapper() + .eq(BaseUserToken::getToken, token) + .gt(BaseUserToken::getValidTime, LocalDateTime.now()) + .eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E).orderByDesc(BaseUserToken::getValidTime))); CommonExceptionEnum.LOGIN_EXPIRATION.assertListNotNullByName("", tokenList); BaseUserToken userToken = tokenList.get(0); CommonExceptionEnum.LOGIN_EXPIRATION.assertStringNotNullByKey("", tokenList.get(0).getUserObject()); @@ -525,12 +556,11 @@ public class BaseUserServiceImpl extends BaseServiceImpl tokenList = baseUserTokenService.list( new LambdaQueryWrapper() @@ -539,11 +569,11 @@ public class BaseUserServiceImpl extends BaseServiceImpl().eq(SysUser::getEmployeeNumber, account)); + if (user == null) { + throw new RuntimeException("无效用户!"); + } + // 加密新密码 + String encodedPassword = this.encode(resetPassword); + + // 更新数据库 + SysUser updateUser = new SysUser(); + updateUser.setPassword(encodedPassword); + updateUser.setUserId(user.getUserId()); + + return this.updateById(updateUser); + } + public static void main(String args[]) throws Exception { -// String rsa = "ObMojRm4G31O91lJDyV7rT7fmkJ0x/tMz+t2gZa1M5RtZm6cTiaAT6eblAQzjuMbNNU6DoD/YloITzn2jnQH4g2nMj1Y8TXdSEK/q8QSoLb8QVb26SuMt1xuv1hklU0yzkqCtGW7GnRArMMlgQjh04GwAcj6TikEFjKvEGGETm4="; - // String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCThndxa2d5wd1XgZw/OoRHyqqhEKn2Vj8esINcPHRDKz/eDxrHT874ssYfRdkQPU4d13yLhywu30D0J/IusB1Aay0Kl7fszYztP1Yg7Y8Gmiwynj4bFooIFZk5l0wJdxciXA4FgjK+oD4Un/LhP20k5OSQ+QLMDBHBJTD/uk9cxQIDAQAB"; + // String rsa = + // "ObMojRm4G31O91lJDyV7rT7fmkJ0x/tMz+t2gZa1M5RtZm6cTiaAT6eblAQzjuMbNNU6DoD/YloITzn2jnQH4g2nMj1Y8TXdSEK/q8QSoLb8QVb26SuMt1xuv1hklU0yzkqCtGW7GnRArMMlgQjh04GwAcj6TikEFjKvEGGETm4="; + // String publicKey = + // "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCThndxa2d5wd1XgZw/OoRHyqqhEKn2Vj8esINcPHRDKz/eDxrHT874ssYfRdkQPU4d13yLhywu30D0J/IusB1Aay0Kl7fszYztP1Yg7Y8Gmiwynj4bFooIFZk5l0wJdxciXA4FgjK+oD4Un/LhP20k5OSQ+QLMDBHBJTD/uk9cxQIDAQAB"; String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvLBkALIYR/x9Rv5TiXQGWAXTzraN/He80r9gQovSQ5oTP8qllL9+Oc1LdTijPFRsddHWg37umvFliwhmukU1NT+o2loGcKpyMHFkc/UPNjQLvd+YFR4nYhgP8l+dmRNOtQWawOt5dbksRKTghMjA+FKT2+itMsawSs1+Ic+zoIwIDAQAB"; - // String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJOGd3FrZ3nB3VeBnD86hEfKqqEQqfZWPx6wg1w8dEMrP94PGsdPzviyxh9F2RA9Th3XfIuHLC7fQPQn8i6wHUBrLQqXt+zNjO0/ViDtjwaaLDKePhsWiggVmTmXTAl3FyJcDgWCMr6gPhSf8uE/bSTk5JD5AswMEcElMP+6T1zFAgMBAAECgYAk2fsuTukbRi03db4FIWX31Q2IjHQYf/TmgqtduBBG0x/yJY3H6gzGnUnWeAlAAEBqPfDzncGQt94u32ek+ANmN161r22eBqoihHJQsCD3n3uFw8fdCRzpP9fiJVUFf3Yf/Di2G6cHKJ1Bs8H2GtmajeUUgjNNvJdQXLsTU2DBoQJBAPV9Luzcb62BO9GsL/C6nrxOEPnfTOvpQpBDjb4JnnS8G4CRoEERB8y0p/npD7wrhwG1aEpOj/6XUUz8yAqrA50CQQCZ139/lX0W6TGxZF5RQu9PlKW5/K74Ysd6tvuom93bwLG4zpCgfIoH3mSkWtKENvob7CV07T/irYppa/bIpRlJAkARnsqfdbMOYRhKFHHcdYivO2s8hCqhRDzi3fZujYIyHs5ajBlUkkRdDRqBdZkLiJRIKx0xODJds77CJ+Kz4VKBAkAUf14Bhc1w7Aku9YyLjzuLgubB7STy+1ZQx2iognwA95+2W+9xMqbBfaQzMdayvxB7/+7NsX69mRnEChqLiVPhAkEA6W9YOoZQlL6yCYE4GE3W38g0m7lq68XuVFgCpULEfR3s5bsPcqxC4xM29Ry80cEv6fAE+jht7JUq0ar/tRqfNA=="; + // String privateKey = + // "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJOGd3FrZ3nB3VeBnD86hEfKqqEQqfZWPx6wg1w8dEMrP94PGsdPzviyxh9F2RA9Th3XfIuHLC7fQPQn8i6wHUBrLQqXt+zNjO0/ViDtjwaaLDKePhsWiggVmTmXTAl3FyJcDgWCMr6gPhSf8uE/bSTk5JD5AswMEcElMP+6T1zFAgMBAAECgYAk2fsuTukbRi03db4FIWX31Q2IjHQYf/TmgqtduBBG0x/yJY3H6gzGnUnWeAlAAEBqPfDzncGQt94u32ek+ANmN161r22eBqoihHJQsCD3n3uFw8fdCRzpP9fiJVUFf3Yf/Di2G6cHKJ1Bs8H2GtmajeUUgjNNvJdQXLsTU2DBoQJBAPV9Luzcb62BO9GsL/C6nrxOEPnfTOvpQpBDjb4JnnS8G4CRoEERB8y0p/npD7wrhwG1aEpOj/6XUUz8yAqrA50CQQCZ139/lX0W6TGxZF5RQu9PlKW5/K74Ysd6tvuom93bwLG4zpCgfIoH3mSkWtKENvob7CV07T/irYppa/bIpRlJAkARnsqfdbMOYRhKFHHcdYivO2s8hCqhRDzi3fZujYIyHs5ajBlUkkRdDRqBdZkLiJRIKx0xODJds77CJ+Kz4VKBAkAUf14Bhc1w7Aku9YyLjzuLgubB7STy+1ZQx2iognwA95+2W+9xMqbBfaQzMdayvxB7/+7NsX69mRnEChqLiVPhAkEA6W9YOoZQlL6yCYE4GE3W38g0m7lq68XuVFgCpULEfR3s5bsPcqxC4xM29Ry80cEv6fAE+jht7JUq0ar/tRqfNA=="; String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAK8sGQAshhH/H1G/lOJdAZYBdPOto38d7zSv2BCi9JDmhM/yqWUv345zUt1OKM8VGx10daDfu6a8WWLCGa6RTU1P6jaWgZwqnIwcWRz9Q82NAu935gVHidiGA/yX52ZE061BZrA63l1uSxEpOCEyMD4UpPb6K0yxrBKzX4hz7OgjAgMBAAECgYAT/jx8QJisxSmV8v/TNjpQHKp0hYT7pTcAFHHctDylrSnLci7TVbt2TsNObvVJbWdC3V/vlJmeVjD9jJnRytO/pgc+p8I3Q3pfF7ACiBAz1+4VZM40vFz0RfQKJ/kZB3DiGohprOw60kRR0eMtHuaA07luhBCbne6700Paf+OOAQJBAP9THm3KEcnChnRBC6yPdNHLN/XplgGaIJU2Wo0biI8Oz2bM3eJGPSwrVCqObOwVPNYJIfEQRhlWlB9kpBS0ECECQQCvorUUJwJhV+Fx6bhUK5aa1/rDTODPmS1MycvLtjOp7ig1sGcb4g9Vl8uRPzsvQZ6Z+sNTD4mFFnYFneCvPL/DAkAMZo4QyQKqKO98z/fwLpt+4P7by7eEZmb0uEoXlmHAiPibxpF0PvMTpRsWYgp6QOHOh20Fl0PAUUsqZyns833hAkBEzV9UIqfrDCsTnbQIvP6FcAAay53xlRbK0u5Twe9hLRtxVMY/hQHuzMUBBB0iOPlxZmtnuVls2kynjJ4853ZTAkEAu+lLTmM7DBV9jDEc9sNM7UNa0MvAUb6r9DsTKHGLLRqB7ljQ1R2RiLRknFaegUPEVsvdMszH2rdy3CaIWkC5OQ=="; - // String p = "jxsnmqYTsskthlKdpffZ/q/gKfPp9kQpmiNaLg2LqNvyoTnsm+cu7q1ZhmcuK/QH6BKV38dXFgqw3kmEu4X/CKoMHP83vwBSxZhF/uk0SQixRBtpvIIJ/M7XFzyZnUD1u3beEiwbuoWjhtjqq/ImWn7nB54ldc3T/S/lyMS4+Jc="; -// String p2 ="jxsnmqYTsskthlKdpffZ/q/gKfPp9kQpmiNaLg2LqNvyoTnsm+cu7q1ZhmcuK/QH6BKV38dXFgqw3kmEu4X/CKoMHP83vwBSxZhF/uk0SQixRBtpvIIJ/M7XFzyZnUD1u3beEiwbuoWjhtjqq/ImWn7nB54ldc3T/S/lyMS4+Jc="; -// System.out.println(URLEncoder.encode(p,"utf-8")); -// System.out.println(RSA.decrypt(p2,privateKey)); + // String p = + // "jxsnmqYTsskthlKdpffZ/q/gKfPp9kQpmiNaLg2LqNvyoTnsm+cu7q1ZhmcuK/QH6BKV38dXFgqw3kmEu4X/CKoMHP83vwBSxZhF/uk0SQixRBtpvIIJ/M7XFzyZnUD1u3beEiwbuoWjhtjqq/ImWn7nB54ldc3T/S/lyMS4+Jc="; + // String p2 + // ="jxsnmqYTsskthlKdpffZ/q/gKfPp9kQpmiNaLg2LqNvyoTnsm+cu7q1ZhmcuK/QH6BKV38dXFgqw3kmEu4X/CKoMHP83vwBSxZhF/uk0SQixRBtpvIIJ/M7XFzyZnUD1u3beEiwbuoWjhtjqq/ImWn7nB54ldc3T/S/lyMS4+Jc="; + // System.out.println(URLEncoder.encode(p,"utf-8")); + // System.out.println(RSA.decrypt(p2,privateKey)); BaseUserServiceImpl baseUserService = new BaseUserServiceImpl(); String mm = baseUserService.encode("cosco2025"); diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/controller/SysUserController.java b/src/main/java/com/coscoshipping/ebtp/system/user/controller/SysUserController.java index e16fd7d..651ec42 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/user/controller/SysUserController.java +++ b/src/main/java/com/coscoshipping/ebtp/system/user/controller/SysUserController.java @@ -3,7 +3,6 @@ package com.coscoshipping.ebtp.system.user.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; -import com.coscoshipping.ebtp.system.user.entity.dto.SysInnerUserInfo; import com.coscoshipping.ebtp.system.user.entity.vo.SysUserVO; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PathVariable; @@ -129,4 +128,16 @@ public class SysUserController{ return BaseResponse.success(iSysUserService.getInnerUserInfo(employeeNumber)); } + + /** + * 根据用户ID集合查询所有用户信息 + * @param ids 用户ID集合 + * @return 用户信息列表 + */ + @ApiOperation("根据用户ID集合查询所有用户信息") + @PostMapping("/getUsersByIds") + public BaseResponse> getUsersByIds(@RequestBody List ids) { + List users = iSysUserService.getUsersByIds(ids); + return BaseResponse.success(users); + } } diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysExpertUserMapper.java b/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysExpertUserMapper.java index ef38b7c..358e99b 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysExpertUserMapper.java +++ b/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysExpertUserMapper.java @@ -1,12 +1,13 @@ package com.coscoshipping.ebtp.system.user.dao; +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.AuthorityEntity; import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper; import com.coscoshipping.ebtp.system.user.entity.SysExpertUser; -import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Repository; - -import java.util.List; @Repository public interface SysExpertUserMapper extends IBaseMapper { diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysSupplierUserMapper.java b/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysSupplierUserMapper.java index 7ba14b9..22858da 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysSupplierUserMapper.java +++ b/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysSupplierUserMapper.java @@ -2,9 +2,9 @@ package com.coscoshipping.ebtp.system.user.dao; import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.AuthorityEntity; import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper; -import com.coscoshipping.ebtp.system.user.entity.SysSupplierUser; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import com.coscoshipping.ebtp.system.user.entity.SysSupplierUser; import java.util.List; diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysUserMapper.java b/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysUserMapper.java index a2547d8..2c62312 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysUserMapper.java +++ b/src/main/java/com/coscoshipping/ebtp/system/user/dao/SysUserMapper.java @@ -4,7 +4,14 @@ package com.coscoshipping.ebtp.system.user.dao; import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper; import org.springframework.stereotype.Repository; import com.coscoshipping.ebtp.system.user.entity.SysUser; +import java.util.List; @Repository public interface SysUserMapper extends IBaseMapper { + /** + * 根据用户ID集合查询所有用户信息 + * @param ids 用户ID集合 + * @return 用户信息列表 + */ + List getUsersByIds(List ids); } diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/dao/mapper/SysUserMapper.xml b/src/main/java/com/coscoshipping/ebtp/system/user/dao/mapper/SysUserMapper.xml index c328397..3452797 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/user/dao/mapper/SysUserMapper.xml +++ b/src/main/java/com/coscoshipping/ebtp/system/user/dao/mapper/SysUserMapper.xml @@ -34,4 +34,11 @@ delete_flag="1" where ID=#{id } - \ No newline at end of file + + + diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/service/SysUserService.java b/src/main/java/com/coscoshipping/ebtp/system/user/service/SysUserService.java index f5012f1..c834a1b 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/user/service/SysUserService.java +++ b/src/main/java/com/coscoshipping/ebtp/system/user/service/SysUserService.java @@ -7,6 +7,8 @@ import com.coscoshipping.ebtp.system.user.entity.SysUser; import com.coscoshipping.ebtp.system.user.entity.dto.SysInnerUserInfo; import com.coscoshipping.ebtp.system.user.entity.vo.SysUserVO; +import java.util.List; + /** * 对数据表 sys_user 操作的 service * @author yss @@ -36,5 +38,10 @@ public interface SysUserService extends IBaseService{ public SysInnerUserInfo getInnerUserInfo(String employeeNumber); - + /** + * 根据用户ID集合查询所有用户信息 + * @param ids 用户ID集合 + * @return 用户信息列表 + */ + List getUsersByIds(List ids); } diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/service/impl/SysUserServiceImpl.java b/src/main/java/com/coscoshipping/ebtp/system/user/service/impl/SysUserServiceImpl.java index 3506f08..0a2d2c3 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/user/service/impl/SysUserServiceImpl.java +++ b/src/main/java/com/coscoshipping/ebtp/system/user/service/impl/SysUserServiceImpl.java @@ -24,6 +24,7 @@ import com.coscoshipping.ebtp.system.user.entity.SysUser; import com.coscoshipping.ebtp.system.user.service.SysUserService; import java.time.LocalDateTime; +import java.util.List; /** * 对数据表 sys_user 操作的 serviceImpl @@ -49,6 +50,10 @@ public class SysUserServiceImpl extends BaseServiceImpl //查询 IPage result = new Page<>(sysUserVO.getBasePageRequest().getPageNo(), sysUserVO.getBasePageRequest().getPageSize()); result = this.page(result, query); + + // 处理分页结果中的 password 字段(置空) + result.getRecords().forEach(user -> user.setPassword(null)); + return result; } @@ -74,6 +79,15 @@ public class SysUserServiceImpl extends BaseServiceImpl return this.removeById(userId); } + @Override + public List getUsersByIds(List ids) { + // 查询原始用户列表 + List userList = baseMapper.getUsersByIds(ids); + // 处理 password + userList.forEach(user -> user.setPassword(null)); + return userList; + } + /** * 保存前的数据校验 */ diff --git a/src/main/java/com/coscoshipping/ebtp/system/userinfo/controller/UserInfoController.java b/src/main/java/com/coscoshipping/ebtp/system/userinfo/controller/UserInfoController.java index b2ef576..1ddbe21 100644 --- a/src/main/java/com/coscoshipping/ebtp/system/userinfo/controller/UserInfoController.java +++ b/src/main/java/com/coscoshipping/ebtp/system/userinfo/controller/UserInfoController.java @@ -87,8 +87,8 @@ public class UserInfoController { log.error("access token is empty"); return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build(); } -// return ResponseEntity.ok(cacheUserService.getCacheUser()); - return ResponseEntity.ok(userInfoService.getUserInfo(token)); + return ResponseEntity.ok(cacheUserService.getCacheUser()); +// return ResponseEntity.ok(userInfoService.getUserInfo(token)); } diff --git a/src/main/resources/application-master.yml b/src/main/resources/application-master.yml index c213c91..77949a6 100644 --- a/src/main/resources/application-master.yml +++ b/src/main/resources/application-master.yml @@ -13,8 +13,7 @@ spring: writeTimeout: 35000 nacos: discovery: - server-addr: 127.0.0.1:18848 - group: EBTP_GROUP # 例如:EBTP_GROUP + server-addr: 192.168.110.109:8848 aop: auto: true #开启spring的aop配置 proxy-target-class: true @@ -263,6 +262,7 @@ login: privateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAK8sGQAshhH/H1G/lOJdAZYBdPOto38d7zSv2BCi9JDmhM/yqWUv345zUt1OKM8VGx10daDfu6a8WWLCGa6RTU1P6jaWgZwqnIwcWRz9Q82NAu935gVHidiGA/yX52ZE061BZrA63l1uSxEpOCEyMD4UpPb6K0yxrBKzX4hz7OgjAgMBAAECgYAT/jx8QJisxSmV8v/TNjpQHKp0hYT7pTcAFHHctDylrSnLci7TVbt2TsNObvVJbWdC3V/vlJmeVjD9jJnRytO/pgc+p8I3Q3pfF7ACiBAz1+4VZM40vFz0RfQKJ/kZB3DiGohprOw60kRR0eMtHuaA07luhBCbne6700Paf+OOAQJBAP9THm3KEcnChnRBC6yPdNHLN/XplgGaIJU2Wo0biI8Oz2bM3eJGPSwrVCqObOwVPNYJIfEQRhlWlB9kpBS0ECECQQCvorUUJwJhV+Fx6bhUK5aa1/rDTODPmS1MycvLtjOp7ig1sGcb4g9Vl8uRPzsvQZ6Z+sNTD4mFFnYFneCvPL/DAkAMZo4QyQKqKO98z/fwLpt+4P7by7eEZmb0uEoXlmHAiPibxpF0PvMTpRsWYgp6QOHOh20Fl0PAUUsqZyns833hAkBEzV9UIqfrDCsTnbQIvP6FcAAay53xlRbK0u5Twe9hLRtxVMY/hQHuzMUBBB0iOPlxZmtnuVls2kynjJ4853ZTAkEAu+lLTmM7DBV9jDEc9sNM7UNa0MvAUb6r9DsTKHGLLRqB7ljQ1R2RiLRknFaegUPEVsvdMszH2rdy3CaIWkC5OQ== publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvLBkALIYR/x9Rv5TiXQGWAXTzraN/He80r9gQovSQ5oTP8qllL9+Oc1LdTijPFRsddHWg37umvFliwhmukU1NT+o2loGcKpyMHFkc/UPNjQLvd+YFR4nYhgP8l+dmRNOtQWawOt5dbksRKTghMjA+FKT2+itMsawSs1+Ic+zoIwIDAQAB time_limit: 2 #Minutes + reset_password: cosco2025 user: auth: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c060b09..830472d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -28,10 +28,13 @@ check: unifast: sso: getCode: - url: 1 - redirectUrl: 1 - clientId: 1 - public-key: 1 + url: http://sso.example.com/getCode # 示例获取授权码URL,需替换为实际地址 + redirectUrl: http://client.example.com/callback # 示例回调URL,需替换为下游系统回调地址 + clientId: sso-client-123 # SSO客户端ID + clientSecret: encrypted:${jasypt.encryptor.bean} # 使用jasypt加密的客户端密钥(实际值需通过jasypt加密后配置) + public-key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQE # 用于JWT验签的公钥(示例,需替换为实际公钥) + signing-key: classpath:keystore.jks # 签名密钥库路径(需放置在resources目录下) + token-validity-seconds: 3600 # access token有效时间(单位:秒,示例为1小时) jury: loginCheck: