From 84802d508f7d14d55ad1121629dcd292c45dc4d9 Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Tue, 30 Jul 2024 15:14:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E5=90=8C=E5=BA=97=E9=93=BA=E4=B9=8B?= =?UTF-8?q?=E9=97=B4=E5=91=98=E5=B7=A5=E8=B4=A6=E6=88=B7=E5=8F=AF=E9=87=8D?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rest/AuthorizationController.java | 20 +++++++++++++++++++ .../security/service/dto/AuthUserDto.java | 4 ++++ .../shopimpl/TbPlussShopStaffServiceImpl.java | 2 ++ 3 files changed, 26 insertions(+) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java index 3080fe98..5030dcd1 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/rest/AuthorizationController.java @@ -16,9 +16,12 @@ package cn.ysk.cashier.config.security.rest; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.config.security.config.bean.LoginCodeEnum; import cn.ysk.cashier.config.security.security.TokenProvider; +import cn.ysk.cashier.pojo.shop.TbMerchantAccount; import cn.ysk.cashier.pojo.shop.TbPlussShopStaff; +import cn.ysk.cashier.repository.shop.TbMerchantAccountRepository; import cn.ysk.cashier.repository.shop.TbPlussShopStaffRepository; import cn.ysk.cashier.utils.*; import com.wf.captcha.base.Captcha; @@ -75,6 +78,8 @@ public class AuthorizationController { private final AuthenticationManagerBuilder authenticationManagerBuilder; private final TbShopInfoRepository tbShopInfoRepository; private final TbPlussShopStaffRepository staffRepository; + private final TbMerchantAccountRepository tbMerchantAccountRepository; + @Resource private LoginProperties loginProperties; @@ -93,6 +98,21 @@ public class AuthorizationController { if (authUser.isChecked() && StringUtils.isBlank(authUser.getCode()) || authUser.isChecked() && !authUser.getCode().equalsIgnoreCase(code)) { throw new BadRequestException("验证码错误"); } + + // 判断是否是员工登录 + if (authUser.getLoginType() != null && "staff".equals(authUser.getLoginType())) { + if (StrUtil.isBlank(authUser.getMerchantName())) { + throw new BadRequestException("商户名称不能为空"); + } + + TbMerchantAccount merchant = tbMerchantAccountRepository.findByAccount(authUser.getMerchantName()); + if (merchant == null) { + throw new BadRequestException("商户不存在"); + } + + authUser.setUsername(merchant.getShopId() + "@" + authUser.getUsername()); + } + //生成token UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(authUser.getUsername(), password); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/service/dto/AuthUserDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/service/dto/AuthUserDto.java index 147abc97..305d7e60 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/config/security/service/dto/AuthUserDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/config/security/service/dto/AuthUserDto.java @@ -33,6 +33,10 @@ public class AuthUserDto { @NotBlank private String password; + private String merchantName; + + private String loginType = "merchant"; + private String code; private String uuid = ""; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbPlussShopStaffServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbPlussShopStaffServiceImpl.java index 1691e564..be5d3cc9 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbPlussShopStaffServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbPlussShopStaffServiceImpl.java @@ -116,6 +116,8 @@ public class TbPlussShopStaffServiceImpl implements TbPlussShopStaffService { throw new BadRequestException("最大优惠金额过大"); } + resources.setAccount(resources.getShopId() + "@" + resources.getAccount()); + resources.setCreatedAt(Instant.now().toEpochMilli()); //添加收银系统后台账号