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 43d1eb96..27b20e07 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 @@ -1,46 +1,44 @@ package cn.ysk.cashier.config.security.rest; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import cn.ysk.cashier.annotation.rest.AnonymousDeleteMapping; +import cn.ysk.cashier.annotation.rest.AnonymousGetMapping; +import cn.ysk.cashier.annotation.rest.AnonymousPostMapping; +import cn.ysk.cashier.config.RsaProperties; import cn.ysk.cashier.config.security.config.bean.LoginCodeEnum; +import cn.ysk.cashier.config.security.config.bean.LoginProperties; +import cn.ysk.cashier.config.security.config.bean.SecurityProperties; import cn.ysk.cashier.config.security.security.TokenProvider; +import cn.ysk.cashier.config.security.service.OnlineUserService; +import cn.ysk.cashier.config.security.service.dto.AuthUserDto; +import cn.ysk.cashier.config.security.service.dto.JwtUserDto; +import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mybatis.mapper.MpShopInfoMapper; import cn.ysk.cashier.mybatis.mapper.TbMerchantAccountMapper; import cn.ysk.cashier.mybatis.service.MpShopUserService; -import cn.ysk.cashier.pojo.TbToken; import cn.ysk.cashier.pojo.shop.TbMerchantAccount; import cn.ysk.cashier.pojo.shop.TbPlussShopStaff; +import cn.ysk.cashier.pojo.shop.TbShopInfo; import cn.ysk.cashier.repository.TbTokenRepository; import cn.ysk.cashier.repository.shop.TbMerchantAccountRepository; import cn.ysk.cashier.repository.shop.TbPlussShopStaffRepository; -import cn.ysk.cashier.utils.*; +import cn.ysk.cashier.repository.shop.TbShopInfoRepository; +import cn.ysk.cashier.utils.RedisUtils; +import cn.ysk.cashier.utils.RsaUtils; +import cn.ysk.cashier.utils.SecurityUtils; +import cn.ysk.cashier.utils.StringUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.wf.captcha.base.Captcha; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import cn.ysk.cashier.annotation.Log; -import cn.ysk.cashier.annotation.rest.AnonymousDeleteMapping; -import cn.ysk.cashier.annotation.rest.AnonymousGetMapping; -import cn.ysk.cashier.annotation.rest.AnonymousPostMapping; -import cn.ysk.cashier.config.RsaProperties; -import cn.ysk.cashier.exception.BadRequestException; - -import cn.ysk.cashier.config.security.config.bean.LoginProperties; -import cn.ysk.cashier.config.security.config.bean.SecurityProperties; -import cn.ysk.cashier.config.security.service.dto.AuthUserDto; -import cn.ysk.cashier.config.security.service.dto.JwtUserDto; -import cn.ysk.cashier.config.security.service.OnlineUserService; -import cn.ysk.cashier.pojo.shop.TbShopInfo; -import cn.ysk.cashier.repository.shop.TbShopInfoRepository; -import org.springframework.data.repository.query.Param; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.core.Authentication; @@ -50,10 +48,9 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.Set; import java.util.concurrent.TimeUnit; /** @@ -99,8 +96,8 @@ public class AuthorizationController { if (authUser.isChecked() && StringUtils.isBlank(authUser.getCode()) || authUser.isChecked() && !authUser.getCode().equalsIgnoreCase(code)) { throw new BadRequestException("验证码错误"); } - String loginpre=""; - String shopId=""; + String loginpre = ""; + String shopId = ""; // 判断是否是员工登录 if (authUser.getLoginType() != null && "staff".equals(authUser.getLoginType())) { if (StrUtil.isBlank(authUser.getMerchantName())) { @@ -117,7 +114,7 @@ public class AuthorizationController { //生成token UsernamePasswordAuthenticationToken authenticationToken = - new UsernamePasswordAuthenticationToken(loginpre+authUser.getUsername(), password); + new UsernamePasswordAuthenticationToken(loginpre + authUser.getUsername(), password); Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken); SecurityContextHolder.getContext().setAuthentication(authentication); // 生成令牌与第三方系统获取令牌方式 @@ -128,7 +125,7 @@ public class AuthorizationController { // TbShopInfo byAccount = tbShopInfoRepository.findByAccount(jwtUserDto.getUsername()); TbPlussShopStaff tbPlussShopStaff; if (authUser.getLoginType() != null && "staff".equals(authUser.getLoginType())) { - tbPlussShopStaff = staffRepository.queryByAccount(authUser.getUsername(),shopId); + tbPlussShopStaff = staffRepository.queryByAccount(authUser.getUsername(), shopId); } else { tbPlussShopStaff = staffRepository.queryByAccount(authUser.getUsername()); } @@ -151,8 +148,8 @@ public class AuthorizationController { put("user", jwtUserDto); if (byAccount != null) { put("shopId", byAccount.getId()); - put("mainId", org.apache.commons.lang3.StringUtils.isNotBlank(byAccount.getMainId())?byAccount.getMainId():byAccount.getId()); - put("loginType", org.apache.commons.lang3.StringUtils.isNotBlank(authUser.getLoginType())?authUser.getLoginType():"merchant"); + put("mainId", org.apache.commons.lang3.StringUtils.isNotBlank(byAccount.getMainId()) ? byAccount.getMainId() : byAccount.getId()); + put("loginType", org.apache.commons.lang3.StringUtils.isNotBlank(authUser.getLoginType()) ? authUser.getLoginType() : "merchant"); put("shopName", byAccount.getShopName()); put("logo", byAccount.getLogo()); } @@ -165,6 +162,16 @@ public class AuthorizationController { //踢掉之前已经登录的token onlineUserService.checkLoginOnUser(authUser.getUsername(), token); } + // 店铺使用有效期是否过期 + authInfo.put("expireDate", null); + if (StrUtil.isNotEmpty(shopId)) { + TbShopInfo shopInfo = shopInfoMapper.selectById(shopId); + if (shopInfo != null) { + Long expireAt = shopInfo.getExpireAt(); + Date time = DateUtil.calendar(expireAt).getTime(); + authInfo.put("expireDate", DateUtil.formatDate(time)); + } + } return ResponseEntity.ok(authInfo); } @@ -188,7 +195,7 @@ public class AuthorizationController { // Integer staffId = shopStaff.getId(); // List onlineUserList = tbTokenRepository.findListByAccountIdAndStaffId(accountId, staffId); shopStaff.setPassword(null); - return ResponseEntity.ok(new HashMap(){{ + return ResponseEntity.ok(new HashMap() {{ put("shopInfo", shopInfo); put("shopStaff", shopStaff); }}); @@ -231,6 +238,16 @@ public class AuthorizationController { //踢掉之前已经登录的token onlineUserService.checkLoginOnUser(authUser.getUsername(), token); } + // 店铺使用有效期是否过期 + authInfo.put("expireDate", null); + if (byAccount != null) { + TbShopInfo shopInfo = shopInfoMapper.selectById(byAccount.getId()); + if (shopInfo != null) { + Long expireAt = shopInfo.getExpireAt(); + Date time = DateUtil.calendar(expireAt).getTime(); + authInfo.put("expireDate", DateUtil.formatDate(time)); + } + } return ResponseEntity.ok(authInfo); } @@ -275,4 +292,5 @@ public class AuthorizationController { onlineUserService.logout(tokenProvider.getToken(request)); return new ResponseEntity<>(HttpStatus.OK); } + }