员工账号 唯一问题

登录
This commit is contained in:
wangw 2024-07-30 15:29:19 +08:00
parent 4655786218
commit a2844da331
2 changed files with 6 additions and 10 deletions

View File

@ -98,7 +98,7 @@ public class AuthorizationController {
if (authUser.isChecked() && StringUtils.isBlank(authUser.getCode()) || authUser.isChecked() && !authUser.getCode().equalsIgnoreCase(code)) {
throw new BadRequestException("验证码错误");
}
String loginpre="";
// 判断是否是员工登录
if (authUser.getLoginType() != null && "staff".equals(authUser.getLoginType())) {
if (StrUtil.isBlank(authUser.getMerchantName())) {
@ -109,13 +109,12 @@ public class AuthorizationController {
if (merchant == null) {
throw new BadRequestException("商户不存在");
}
authUser.setUsername(merchant.getShopId() + "@" + authUser.getUsername());
loginpre=merchant.getShopId() + "@";
}
//生成token
UsernamePasswordAuthenticationToken authenticationToken =
new UsernamePasswordAuthenticationToken(authUser.getUsername(), password);
new UsernamePasswordAuthenticationToken(loginpre+authUser.getUsername(), password);
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication);
// 生成令牌与第三方系统获取令牌方式

View File

@ -115,9 +115,6 @@ public class TbPlussShopStaffServiceImpl implements TbPlussShopStaffService {
if (resources.getMaxDiscountAmount().compareTo(new BigDecimal(100000000L)) > 0) {
throw new BadRequestException("最大优惠金额过大");
}
resources.setAccount(resources.getShopId() + "@" + resources.getAccount());
resources.setCreatedAt(Instant.now().toEpochMilli());
//添加收银系统后台账号
@ -129,7 +126,7 @@ public class TbPlussShopStaffServiceImpl implements TbPlussShopStaffService {
user.setPassword(passwordEncoder.encode(resources.getPassword()));
resources.setPassword(MD5Utils.md5(resources.getPassword()));
}
user.setUsername(resources.getAccount());
user.setUsername(resources.getShopId() + "@" +resources.getAccount());
user.setNickName(resources.getName());
user.setPhone(resources.getPhone());
user.setEnabled(true);
@ -164,7 +161,7 @@ public class TbPlussShopStaffServiceImpl implements TbPlussShopStaffService {
throw new BadRequestException("员工编号不能包含中文");
}
TbPlussShopStaff tbPlussShopStaff = tbPlussShopStaffRepository.findById(resources.getId()).orElseGet(TbPlussShopStaff::new);
User sysUser = userRepository.findByUsername(tbPlussShopStaff.getAccount());
User sysUser = userRepository.findByUsername(resources.getShopId()+"@"+tbPlussShopStaff.getAccount());
if(!tbPlussShopStaff.getAccount().equals(resources.getAccount())){
if (userRepository.findByUsername(resources.getAccount()) != null) {
throw new BadRequestException("员工账号不可重复");
@ -182,7 +179,7 @@ public class TbPlussShopStaffServiceImpl implements TbPlussShopStaffService {
Role role = new Role();
role.setId(resources.getRoleId());
roles.add(role);
sysUser.setUsername(resources.getAccount());
sysUser.setUsername(resources.getShopId()+"@"+resources.getAccount());
sysUser.setRoles(roles);
sysUser.setNickName(resources.getName());
if (StringUtils.isNotBlank(resources.getPassword())) {