diff --git a/pom.xml b/pom.xml
index 3acd436..716c55f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,18 +19,6 @@
-
- org.springframework.cloud
- spring-cloud-starter-openfeign
- 2.2.3.RELEASE
-
-
- org.springframework.cloud
- spring-cloud-dependencies
- ${spring.cloud.version}
- pom
- import
-
com.alibaba.cloud
spring-cloud-alibaba-dependencies
@@ -64,6 +52,7 @@
com.amazonaws
aws-java-sdk-s3
+ 1.11.358
@@ -73,9 +62,9 @@
- com.aliyun
+ com.aliyun.oss
aliyun-sdk-oss
- 3.10.2
+ 3.17.4
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 750f04f..aaca972 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
@@ -7,6 +7,7 @@ import com.coscoshipping.ebtp.system.login.common.CaptchaGenerator;
import com.coscoshipping.ebtp.system.login.entity.BaseSelf;
import com.coscoshipping.ebtp.system.login.service.BaseUserService;
+import com.coscoshipping.ebtp.system.login.vo.ChangePasswordVo;
import com.coscoshipping.ebtp.system.login.vo.LoginUserVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -97,4 +98,10 @@ public class LoginController {
public BaseResponse resetPassword(@RequestBody LoginUserVo vo) {
return BaseResponse.success(iBaseUserService.resetPassword(vo.getAccount()));
}
+
+ @ApiOperation("供应商首次登录强制修改密码")
+ @PostMapping("/supplier/changePasswordOnFirstLogin")
+ public BaseResponse changePasswordOnFirstLogin(@RequestBody ChangePasswordVo vo) {
+ return BaseResponse.success(iBaseUserService.changeSupplierPasswordOnFirstLogin(vo.getUserId(), vo.getNewPassword()));
+ }
}
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 8655a5f..a01c547 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
@@ -46,4 +46,9 @@ public class BaseSelf {
* 所属机构
*/
private List orgnList;
+
+ /**
+ * 是否首次登录
+ */
+ private boolean firstLogin;
}
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 d0901dd..f93dd62 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
@@ -35,4 +35,12 @@ public interface BaseUserService extends IBaseService {
* @return 是否重置成功
*/
boolean resetPassword(String account);
+
+ /**
+ * 供应商首次登录强制修改密码
+ * @param userId 用户ID
+ * @param newPassword 新密码
+ * @return 是否修改成功
+ */
+ boolean changeSupplierPasswordOnFirstLogin(Long userId, String newPassword);
}
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 2b1d032..cebea8f 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
@@ -39,6 +39,7 @@ 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.user.service.SysSupplierUserService;
import com.coscoshipping.ebtp.system.login.common.Constants;
import com.coscoshipping.ebtp.system.login.common.RSA;
import com.coscoshipping.ebtp.system.login.dao.BaseUserMapper;
@@ -90,6 +91,8 @@ public class BaseUserServiceImpl extends BaseServiceImpl redisTemplate;
@@ -126,7 +129,11 @@ public class BaseUserServiceImpl extends BaseServiceImpl authorityList = baseUserMapper.selectRoleByUserId(user.getUserId());
- // 2. 组装BaseCacheUser
+ // 2. 查询部门信息
+ String orgId = user.getOrgId();
+ SysOrg sysOrg = sysOrgService.getById(orgId); // 通过orgId查询sys_org
+
+ // 3. 组装BaseCacheUser
BaseCacheUser baseCacheUser = new BaseCacheUser();
baseCacheUser.setUserId(user.getUserId());
baseCacheUser.setFullName(user.getName());
@@ -136,8 +143,10 @@ public class BaseUserServiceImpl extends BaseServiceImpl children;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(String parentId) {
+ this.parentId = parentId;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public Integer getWeight() {
+ return weight;
+ }
+
+ public void setWeight(Integer weight) {
+ this.weight = weight;
+ }
+
+ public List getChildren() {
+ return children;
+ }
+
+ public void setChildren(List children) {
+ this.children = children;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/coscoshipping/ebtp/system/org/service/impl/SysOrgServiceImpl.java b/src/main/java/com/coscoshipping/ebtp/system/org/service/impl/SysOrgServiceImpl.java
index 78c5d3f..d1ff073 100644
--- a/src/main/java/com/coscoshipping/ebtp/system/org/service/impl/SysOrgServiceImpl.java
+++ b/src/main/java/com/coscoshipping/ebtp/system/org/service/impl/SysOrgServiceImpl.java
@@ -55,6 +55,30 @@ public class SysOrgServiceImpl extends BaseServiceImpl imp
// 1. 先查询出所有的组织数据
List allOrgList = this.list();
+ /*// 1. 先查询当前本级
+ LambdaQueryWrapper currentOrgQuery = new LambdaQueryWrapper<>();
+ if (StringUtils.isNotBlank(org.getOrgId())) {
+ currentOrgQuery.eq(SysOrg::getOrgId, org.getOrgId());
+ } else if (StringUtils.isNotBlank(org.getUpOrgId())) {
+ currentOrgQuery.eq(SysOrg::getUpOrgId, org.getUpOrgId());
+ } else {
+ // 没有指定orgId或upOrgId,直接返回空
+ return new ArrayList<>();
+ }
+ SysOrg currentOrg = this.getOne(currentOrgQuery, false);
+ if (currentOrg == null) {
+ return new ArrayList<>();
+ }
+
+ // 2. 获取FullId
+ String fullId = currentOrg.getOrgFullId();
+
+ // 3. 用FullId模糊匹配查询本级及下级
+ LambdaQueryWrapper allOrgQuery = new LambdaQueryWrapper<>();
+ allOrgQuery.likeRight(SysOrg::getOrgFullId, fullId);
+ List allOrgList = this.list(allOrgQuery);*/
+
+
// 如果没有数据,直接返回空列表
if (CollectionUtils.isEmpty(allOrgList)) {
return new ArrayList<>();
diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/controller/SysSupplierUserController.java b/src/main/java/com/coscoshipping/ebtp/system/user/controller/SysSupplierUserController.java
new file mode 100644
index 0000000..d4e7cc6
--- /dev/null
+++ b/src/main/java/com/coscoshipping/ebtp/system/user/controller/SysSupplierUserController.java
@@ -0,0 +1,120 @@
+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.SysSupplierUser;
+import com.coscoshipping.ebtp.system.user.service.SysSupplierUserService;
+import com.coscoshipping.ebtp.system.user.vo.SupplierRegistrationVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+
+@Slf4j
+@RestController
+@Api(value = "供应商用户管理")
+@RequestMapping("/v1/supplieruser")
+public class SysSupplierUserController {
+
+ @Resource
+ private SysSupplierUserService sysSupplierUserService;
+
+ /**
+ * 供应商注册(自动生成账号并设置统一重置密码)
+ *
+ * @param registrationVO 注册信息
+ * @return 生成的账号信息(包含重置密码)
+ */
+ @ApiOperation("供应商注册(自动生成账号并设置统一重置密码)")
+ @PostMapping("/register")
+ public BaseResponse register(@ApiParam(value = "注册信息", required = true) @RequestBody @Valid SupplierRegistrationVO registrationVO) {
+ try {
+ SysSupplierUser supplierUser = sysSupplierUserService.createSupplierAccount(
+ registrationVO.getSupplierName(),
+ registrationVO.getCreditCode(),
+ registrationVO.getMobile(),
+ registrationVO.getEmail()
+ );
+
+ if (supplierUser != null) {
+ log.info("供应商注册成功,供应商:{},登录名:{}", registrationVO.getSupplierName(), supplierUser.getUsername());
+ return BaseResponse.success(supplierUser);
+ } else {
+ return BaseResponse.success(null);
+ }
+ } catch (Exception e) {
+ log.error("供应商注册异常", e);
+ return BaseResponse.success(null);
+ }
+ }
+
+ /**
+ * 供应商用户分页查询
+ *
+ * @param sysSupplierUser 查询条件
+ * @return 分页结果
+ */
+ @ApiOperation("供应商用户分页查询")
+ @PostMapping("/getPage")
+ public BaseResponse> getPage(@ApiParam(value = "查询条件", required = true) @RequestBody SysSupplierUser sysSupplierUser) {
+ return BaseResponse.success(sysSupplierUserService.getPage(sysSupplierUser));
+ }
+
+ /**
+ * 根据用户ID查询供应商用户
+ *
+ * @param userId 用户ID
+ * @return 供应商用户信息
+ */
+ @ApiOperation("根据用户ID查询供应商用户")
+ @GetMapping("/{userId}")
+ public BaseResponse getById(@ApiParam(value = "用户ID", required = true) @PathVariable Long userId) {
+ SysSupplierUser supplierUser = sysSupplierUserService.getById(userId);
+ if (supplierUser != null) {
+ // 隐藏密码
+ supplierUser.setPassword("***");
+ }
+ return BaseResponse.success(supplierUser);
+ }
+
+ /**
+ * 修改供应商用户信息
+ *
+ * @param sysSupplierUser 供应商用户信息
+ * @return 修改结果
+ */
+ @ApiOperation("修改供应商用户信息")
+ @PostMapping("/update")
+ public BaseResponse update(@ApiParam(value = "供应商用户信息", required = true) @RequestBody SysSupplierUser sysSupplierUser) {
+ return BaseResponse.success(sysSupplierUserService.updateSupplierUser(sysSupplierUser));
+ }
+
+ /**
+ * 删除供应商用户
+ *
+ * @param userId 用户ID
+ * @return 删除结果
+ */
+ @ApiOperation("删除供应商用户")
+ @DeleteMapping("/{userId}")
+ public BaseResponse delete(@ApiParam(value = "用户ID", required = true) @PathVariable Long userId) {
+ return BaseResponse.success(sysSupplierUserService.deleteSupplierUserById(userId));
+ }
+
+ /**
+ * 检查用户名是否唯一
+ *
+ * @param username 用户名
+ * @return 是否唯一
+ */
+ @ApiOperation("检查用户名是否唯一")
+ @GetMapping("/checkUsername")
+ public BaseResponse checkUsername(@ApiParam(value = "用户名", required = true) @RequestParam String username) {
+ return BaseResponse.success(sysSupplierUserService.checkUsernameUnique(username));
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/entity/SysSupplierUser.java b/src/main/java/com/coscoshipping/ebtp/system/user/entity/SysSupplierUser.java
index 66117ba..770998e 100644
--- a/src/main/java/com/coscoshipping/ebtp/system/user/entity/SysSupplierUser.java
+++ b/src/main/java/com/coscoshipping/ebtp/system/user/entity/SysSupplierUser.java
@@ -9,6 +9,7 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
+import java.time.LocalDateTime;
/**
* 实体类 SysSupplierUser-供应商用户表
@@ -48,5 +49,19 @@ public class SysSupplierUser extends BaseEntity implements Serializable {
@ApiModelProperty(value = "性别")
private String sex;
+ @ApiModelProperty(value = "供应商id")
+ private String supplierId;
+
+ @ApiModelProperty(value = "是否首次登录 0:否 1:是")
+ private Integer firstLogin;
+
+ @ApiModelProperty(value = "最后登录时间")
+ private LocalDateTime lastLoginTime;
+
+ @ApiModelProperty(value = "统一信用代码")
+ private String creditCode;
+
+ @ApiModelProperty(value = "供应商名称")
+ private String supplierName;
}
diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/service/SysSupplierUserService.java b/src/main/java/com/coscoshipping/ebtp/system/user/service/SysSupplierUserService.java
index f74e630..bd39c7d 100644
--- a/src/main/java/com/coscoshipping/ebtp/system/user/service/SysSupplierUserService.java
+++ b/src/main/java/com/coscoshipping/ebtp/system/user/service/SysSupplierUserService.java
@@ -38,4 +38,29 @@ public interface SysSupplierUserService extends IBaseService {
* @return 结果
*/
Boolean deleteSupplierUserById(Long userId);
+
+ /**
+ * 供应商注册成功后自动生成账号并设置统一重置密码
+ * @param supplierName 供应商名称
+ * @param creditCode 统一信用代码
+ * @param mobile 手机号
+ * @param email 邮箱
+ * @return 生成的账号信息(包含重置密码)
+ */
+ SysSupplierUser createSupplierAccount(String supplierName, String creditCode, String mobile, String email);
+
+ /**
+ * 供应商首次登录修改密码
+ * @param userId 用户ID
+ * @param newPassword 新密码
+ * @return 修改结果
+ */
+ Boolean changePasswordOnFirstLogin(Long userId, String newPassword);
+
+ /**
+ * 检查用户名是否唯一
+ * @param username 用户名
+ * @return 是否唯一
+ */
+ Boolean checkUsernameUnique(String username);
}
diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/service/impl/SysSupplierUserServiceImpl.java b/src/main/java/com/coscoshipping/ebtp/system/user/service/impl/SysSupplierUserServiceImpl.java
index 7b0d35f..d5e82e9 100644
--- a/src/main/java/com/coscoshipping/ebtp/system/user/service/impl/SysSupplierUserServiceImpl.java
+++ b/src/main/java/com/coscoshipping/ebtp/system/user/service/impl/SysSupplierUserServiceImpl.java
@@ -11,9 +11,15 @@ import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
import com.coscoshipping.ebtp.system.user.entity.SysSupplierUser;
import com.coscoshipping.ebtp.system.user.service.SysSupplierUserService;
import com.coscoshipping.ebtp.system.user.dao.SysSupplierUserMapper;
+import com.coscoshipping.ebtp.system.user.util.AccountGeneratorUtil;
import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import java.math.BigInteger;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
import java.time.LocalDateTime;
/**
@@ -24,6 +30,12 @@ import java.time.LocalDateTime;
@Service
public class SysSupplierUserServiceImpl extends BaseServiceImpl implements SysSupplierUserService {
+ @Autowired
+ private AccountGeneratorUtil accountGeneratorUtil;
+
+ @Value("${login.reset_password}")
+ private String resetPassword;
+
@Override
public IPage getPage(SysSupplierUser sysSupplierUser) {
LambdaQueryWrapper query = buildQueryWrapper(sysSupplierUser);
@@ -67,12 +79,16 @@ public class SysSupplierUserServiceImpl extends BaseServiceImpl buildQueryWrapper(SysSupplierUser entity) {
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
lqw.eq(entity.getUserId() != null, SysSupplierUser::getUserId, entity.getUserId());
+ lqw.eq(StringUtils.isNotBlank(entity.getSupplierId()), SysSupplierUser::getSupplierId, entity.getSupplierId());
lqw.like(StringUtils.isNotBlank(entity.getUsername()), SysSupplierUser::getUsername, entity.getUsername());
lqw.like(StringUtils.isNotBlank(entity.getName()), SysSupplierUser::getName, entity.getName());
lqw.eq(entity.getStatus() != null, SysSupplierUser::getStatus, entity.getStatus());
lqw.like(StringUtils.isNotBlank(entity.getMobile()), SysSupplierUser::getMobile, entity.getMobile());
lqw.like(StringUtils.isNotBlank(entity.getEmail()), SysSupplierUser::getEmail, entity.getEmail());
lqw.eq(StringUtils.isNotBlank(entity.getSex()), SysSupplierUser::getSex, entity.getSex());
+ lqw.eq(StringUtils.isNotBlank(entity.getCreditCode()), SysSupplierUser::getCreditCode, entity.getCreditCode());
+ lqw.like(StringUtils.isNotBlank(entity.getSupplierName()), SysSupplierUser::getSupplierName, entity.getSupplierName());
+ lqw.eq(entity.getFirstLogin() != null, SysSupplierUser::getFirstLogin, entity.getFirstLogin());
lqw.eq(StringUtils.isNotBlank(entity.getTenantId()), SysSupplierUser::getTenantId, entity.getTenantId());
lqw.like(StringUtils.isNotBlank(entity.getTenantName()), SysSupplierUser::getTenantName, entity.getTenantName());
lqw.eq(entity.getCreateBy() != null, SysSupplierUser::getCreateBy, entity.getCreateBy());
@@ -80,4 +96,90 @@ public class SysSupplierUserServiceImpl extends BaseServiceImpl 0;
+ if (result) {
+ // 返回包含明文密码的用户信息(仅用于通知)
+ SysSupplierUser resultUser = new SysSupplierUser();
+ resultUser.setUserId(userId);
+ resultUser.setUsername(username);
+ resultUser.setPassword(tempPassword); // 返回明文密码用于通知
+ resultUser.setName(supplierName);
+ resultUser.setSupplierName(supplierName);
+ resultUser.setCreditCode(creditCode);
+ resultUser.setSupplierId(creditCode);
+ resultUser.setMobile(mobile);
+ resultUser.setEmail(email);
+
+ return resultUser;
+ }
+
+ return null;
+ }
+
+ @Override
+ public Boolean changePasswordOnFirstLogin(Long userId, String newPassword) {
+ SysSupplierUser user = baseMapper.selectById(userId);
+ if (user == null) {
+ return false;
+ }
+
+ // 更新密码和首次登录标识
+ user.setPassword(encode(newPassword));
+ user.setFirstLogin(0); // 取消首次登录标识
+ user.setLastLoginTime(LocalDateTime.now());
+ user.setUpdateDate(LocalDateTime.now());
+
+ return baseMapper.updateById(user) > 0;
+ }
+
+ @Override
+ public Boolean checkUsernameUnique(String username) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(SysSupplierUser::getUsername, username);
+ return baseMapper.selectCount(queryWrapper) == 0;
+ }
+
+ /**
+ * MD5加密
+ */
+ private String encode(String password) {
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ md.update(password.getBytes());
+ return new BigInteger(1, md.digest()).toString(16);
+ } catch (NoSuchAlgorithmException e) {
+ throw new RuntimeException("MD5加密失败", e);
+ }
+ }
}
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 0a2d2c3..934e4b5 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
@@ -117,12 +117,10 @@ public class SysUserServiceImpl extends BaseServiceImpl
public SysInnerUserInfo getInnerUserInfo(String employeeNumber) {
- if (org.apache.commons.lang3.StringUtils.isBlank(employeeNumber)
- ) {
+ if (org.apache.commons.lang3.StringUtils.isBlank(employeeNumber)) {
return null;
}
-
SysUser sysUser = this.baseMapper.selectOne(new LambdaQueryWrapper().eq(SysUser::getEmployeeNumber, employeeNumber));
if (sysUser == null) {
return null;
@@ -133,12 +131,12 @@ public class SysUserServiceImpl extends BaseServiceImpl
sysInnerUserInfo.setCompanyName(company != null ? company.getOrgName() : "");
sysInnerUserInfo.setCompanyId(company != null ? company.getOrgId() : "");
AllRolesAndAssignRoleVO allRolesAndAssignRole = sysUserRoleService.getAllRolesAndAssignRole(sysUser.getUserId());
- if ((allRolesAndAssignRole != null)&&(allRolesAndAssignRole.getAllRole() != null)){
+ if ((allRolesAndAssignRole != null) && (allRolesAndAssignRole.getAllRole() != null)) {
StringBuilder sb = new StringBuilder();
for (SysRole role : allRolesAndAssignRole.getAllRole()) {
sb.append(role.getRoleName()).append(",");
}
- sysInnerUserInfo.setRoles(sb.toString().substring(0,sb.length()-1));
+ sysInnerUserInfo.setRoles(sb.toString().substring(0, sb.length() - 1));
}
return sysInnerUserInfo;
diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/util/AccountGeneratorUtil.java b/src/main/java/com/coscoshipping/ebtp/system/user/util/AccountGeneratorUtil.java
new file mode 100644
index 0000000..2d9fcda
--- /dev/null
+++ b/src/main/java/com/coscoshipping/ebtp/system/user/util/AccountGeneratorUtil.java
@@ -0,0 +1,83 @@
+package com.coscoshipping.ebtp.system.user.util;
+
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.security.SecureRandom;
+import java.util.Random;
+
+/**
+ * 账号生成工具类
+ *
+ * @author system
+ */
+@Component
+public class AccountGeneratorUtil {
+
+ private static final String UPPERCASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ private static final SecureRandom random = new SecureRandom();
+
+ /**
+ * 生成供应商登录名
+ * 规则:SPL + 8位随机数字 + 2位字母检验码
+ *
+ * @return 生成的登录名
+ */
+ public String generateSupplierUsername() {
+ StringBuilder username = new StringBuilder();
+
+ // 添加前缀
+ username.append("SPL");
+
+ // 添加8位随机数字
+ for (int i = 0; i < 8; i++) {
+ username.append(random.nextInt(10));
+ }
+
+ // 添加2位字母检验码
+ for (int i = 0; i < 2; i++) {
+ username.append(UPPERCASE.charAt(random.nextInt(UPPERCASE.length())));
+ }
+
+ return username.toString();
+ }
+
+
+
+ /**
+ * 验证登录名格式
+ *
+ * @param username 登录名
+ * @return 是否有效
+ */
+ public boolean validateSupplierUsername(String username) {
+ if (StringUtils.isBlank(username)) {
+ return false;
+ }
+
+ // 检查长度
+ if (username.length() != 13) {
+ return false;
+ }
+
+ // 检查前缀
+ if (!username.startsWith("SPL")) {
+ return false;
+ }
+
+ // 检查中间8位是否为数字
+ String middle = username.substring(3, 11);
+ if (!middle.matches("\\d{8}")) {
+ return false;
+ }
+
+ // 检查后2位是否为字母
+ String suffix = username.substring(11);
+ if (!suffix.matches("[A-Z]{2}")) {
+ return false;
+ }
+
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/coscoshipping/ebtp/system/user/vo/SupplierRegistrationVO.java b/src/main/java/com/coscoshipping/ebtp/system/user/vo/SupplierRegistrationVO.java
new file mode 100644
index 0000000..4eb3563
--- /dev/null
+++ b/src/main/java/com/coscoshipping/ebtp/system/user/vo/SupplierRegistrationVO.java
@@ -0,0 +1,45 @@
+package com.coscoshipping.ebtp.system.user.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+
+@Data
+@ApiModel("供应商注册信息")
+public class SupplierRegistrationVO {
+
+ @ApiModelProperty(value = "供应商名称", required = true)
+ @NotBlank(message = "供应商名称不能为空")
+ private String supplierName;
+
+ @ApiModelProperty(value = "统一信用代码", required = true)
+ @NotBlank(message = "统一信用代码不能为空")
+ @Pattern(regexp = "^[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}$", message = "统一信用代码格式不正确")
+ private String creditCode;
+
+ @ApiModelProperty(value = "手机号", required = true)
+ @NotBlank(message = "手机号不能为空")
+ @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
+ private String mobile;
+
+ @ApiModelProperty(value = "邮箱", required = true)
+ @NotBlank(message = "邮箱不能为空")
+ @Email(message = "邮箱格式不正确")
+ private String email;
+
+ @ApiModelProperty(value = "联系人")
+ private String contactName;
+
+ @ApiModelProperty(value = "联系人职务")
+ private String contactTitle;
+
+ @ApiModelProperty(value = "企业地址")
+ private String address;
+
+ @ApiModelProperty(value = "企业简介")
+ private String description;
+}
\ No newline at end of file
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 1ddbe21..30c3eeb 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
@@ -92,6 +92,24 @@ public class UserInfoController {
}
+ /**
+ * 获取用户信息
+ * 通过ID查询用户信息
+ * @param token (认证token)
+ * @return
+ */
+ @GetMapping("getU")
+ public ResponseEntity getU(
+ @RequestHeader(name = "Authorization", required = false) String token) {
+ if (StringUtils.isEmpty(token)) {
+ log.error("access token is empty");
+ return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
+ }
+ return ResponseEntity.ok(cacheUserService.getCacheUser());
+// return ResponseEntity.ok(userInfoService.getUserInfo(token));
+ }
+
+
/**
* 刷新redis缓存的信息
*