oss 单点
This commit is contained in:
@@ -3,10 +3,7 @@ package com.ruoyi.web.controller.system;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.ruoyi.common.constant.Constants;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.SysMenu;
|
||||
@@ -91,4 +88,15 @@ public class SysLoginController
|
||||
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
|
||||
return AjaxResult.success(menuService.buildMenus(menus));
|
||||
}
|
||||
@GetMapping("/sso/callback")
|
||||
public String ssoCallback(@RequestParam("ticket") String ticket) {
|
||||
String frontendIndexUrl = "http://domain.com";
|
||||
|
||||
String ruoyiJwtToken = loginService.loginOss(ticket);
|
||||
|
||||
String redirectUrl = frontendIndexUrl + "/index?token=" + ruoyiJwtToken;
|
||||
|
||||
// 返回 "redirect:" 即可触发 302 重定向
|
||||
return "redirect:" + redirectUrl;
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.cms.domain.Company;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.JobFair;
|
||||
@@ -10,7 +10,7 @@ import com.ruoyi.common.annotation.BussinessLog;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -50,7 +50,7 @@ public class AppUserController extends BaseController
|
||||
@BussinessLog(title = "保存简历")
|
||||
public AjaxResult saveResume(@RequestBody AppUser appUser)
|
||||
{
|
||||
appUser.setUserId(SecurityUtils.getUserId());
|
||||
appUser.setUserId(SiteSecurityUtils.getUserId());
|
||||
appUserService.updateAppUser(appUser);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
@@ -58,7 +58,7 @@ public class AppUserController extends BaseController
|
||||
@GetMapping("/resume")
|
||||
public AjaxResult getResume()
|
||||
{
|
||||
AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
|
||||
AppUser appUser = appUserService.selectAppUserByUserId(SiteSecurityUtils.getUserId());
|
||||
return AjaxResult.success(appUser);
|
||||
}
|
||||
@ApiOperation("我的浏览")
|
||||
|
@@ -18,7 +18,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.cms.service.IAppUserService;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
@@ -2,7 +2,7 @@ package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
|
||||
/**
|
||||
* APP用户Mapper接口
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.ruoyi.cms.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
|
||||
/**
|
||||
* APP用户Service接口
|
||||
|
@@ -6,11 +6,11 @@ import com.ruoyi.cms.domain.*;
|
||||
import com.ruoyi.cms.mapper.*;
|
||||
import com.ruoyi.cms.service.IAppNoticeService;
|
||||
import com.ruoyi.cms.util.StringUtil;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@@ -154,14 +154,14 @@ public class AppNoticeServiceImpl implements IAppNoticeService
|
||||
@Override
|
||||
public List<Notice> listNotRead(Integer isRead) {
|
||||
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
List<Notice> sysNoticeList = noticeInfoMapper.selectList(Wrappers.<Notice>lambdaQuery().eq(Notice::getUserId, userId).eq(Notice::getRemark,"notice_bar").orderByDesc(Notice::getCreateTime));
|
||||
return sysNoticeList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Job> recommend(String jobTitle) {
|
||||
return appNoticeMapper.recommend(jobTitle,SecurityUtils.getUserId());
|
||||
return appNoticeMapper.recommend(jobTitle,SiteSecurityUtils.getUserId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -172,7 +172,7 @@ public class AppNoticeServiceImpl implements IAppNoticeService
|
||||
notice.setIsRead(1);
|
||||
noticeInfoMapper.updateById(notice);
|
||||
});
|
||||
List<Notice> notices1 = noticeInfoMapper.selectList(Wrappers.<Notice>lambdaQuery().eq(Notice::getUserId, SecurityUtils.getUserId()).eq(Notice::getRemark, "notice_bar").eq(Notice::getTitle, "系统通知").orderByDesc(Notice::getCreateTime).last("limit 1"));
|
||||
List<Notice> notices1 = noticeInfoMapper.selectList(Wrappers.<Notice>lambdaQuery().eq(Notice::getUserId, SiteSecurityUtils.getUserId()).eq(Notice::getRemark, "notice_bar").eq(Notice::getTitle, "系统通知").orderByDesc(Notice::getCreateTime).last("limit 1"));
|
||||
Notice notice = notices1.get(0);
|
||||
notice.setNotReadCount(notice.getNotReadCount() - longs.size());
|
||||
if(notice.getNotReadCount()==0){
|
||||
@@ -194,7 +194,7 @@ public class AppNoticeServiceImpl implements IAppNoticeService
|
||||
|
||||
@Override
|
||||
public List<Notice> sysNoticeList() {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
List<Notice> sysNoticeList = noticeInfoMapper.selectList(Wrappers.<Notice>lambdaQuery().eq(Notice::getUserId, userId).isNotNull(Notice::getNoticeType).notIn(Notice::getNoticeType,"").orderByDesc(Notice::getCreateTime));
|
||||
return sysNoticeList;
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@ import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.query.MineJobQuery;
|
||||
import com.ruoyi.cms.mapper.AppReviewJobMapper;
|
||||
import com.ruoyi.cms.service.IAppReviewJobService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -91,13 +91,13 @@ public class AppReviewJobServiceImpl extends ServiceImpl<AppReviewJobMapper, App
|
||||
|
||||
@Override
|
||||
public List<Job> review(MineJobQuery jobQuery) {
|
||||
List<Job> jobs = appReviewJobMapper.review(SecurityUtils.getUserId(),jobQuery);
|
||||
List<Job> jobs = appReviewJobMapper.review(SiteSecurityUtils.getUserId(),jobQuery);
|
||||
return jobs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> reviewArray() {
|
||||
List<AppReviewJob> appReviewJobs = appReviewJobMapper.reviewArray(SecurityUtils.getUserId());
|
||||
List<AppReviewJob> appReviewJobs = appReviewJobMapper.reviewArray(SiteSecurityUtils.getUserId());
|
||||
return appReviewJobs.stream().map(x -> formatter.format(x.getReviewDate())).collect(Collectors.toList());
|
||||
}
|
||||
}
|
@@ -12,7 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.cms.mapper.AppUserMapper;
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.cms.service.IAppUserService;
|
||||
|
||||
/**
|
||||
|
@@ -11,7 +11,7 @@ import com.ruoyi.cms.domain.CompanyCardCollection;
|
||||
import com.ruoyi.cms.domain.vo.CompanyCardVO;
|
||||
import com.ruoyi.cms.mapper.CompanyCardCollectionMapper;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -100,9 +100,9 @@ public class CompanyCardServiceImpl extends ServiceImpl<CompanyCardMapper,Compan
|
||||
CompanyCard companyCard = new CompanyCard();
|
||||
companyCard.setStatus(1);
|
||||
List<CompanyCardVO> companyCards = companyCardMapper.selectCompanyCardListVO(companyCard);
|
||||
if(SecurityUtils.isLogin()){
|
||||
if(SiteSecurityUtils.isLogin()){
|
||||
CompanyCardCollection companyCardCollection = new CompanyCardCollection();
|
||||
companyCardCollection.setUserId(SecurityUtils.getUserId());
|
||||
companyCardCollection.setUserId(SiteSecurityUtils.getUserId());
|
||||
List<CompanyCardCollection> companyCardCollections = companyCardCollectionMapper.selectCompanyCardCollectionList(companyCardCollection);
|
||||
for (CompanyCardVO item:companyCards){
|
||||
for(CompanyCardCollection collection:companyCardCollections){
|
||||
@@ -119,7 +119,7 @@ public class CompanyCardServiceImpl extends ServiceImpl<CompanyCardMapper,Compan
|
||||
public void cardCollection(Long companyCardId) {
|
||||
CompanyCardCollection companyCardCollection = new CompanyCardCollection();
|
||||
companyCardCollection.setCompanyCardId(companyCardId);
|
||||
companyCardCollection.setUserId(SecurityUtils.getUserId());
|
||||
companyCardCollection.setUserId(SiteSecurityUtils.getUserId());
|
||||
companyCardCollectionService.save(companyCardCollection);
|
||||
}
|
||||
|
||||
@@ -127,8 +127,8 @@ public class CompanyCardServiceImpl extends ServiceImpl<CompanyCardMapper,Compan
|
||||
public void cardCancel(Long companyCardId) {
|
||||
CompanyCardCollection companyCardCollection = new CompanyCardCollection();
|
||||
companyCardCollection.setCompanyCardId(companyCardId);
|
||||
companyCardCollection.setUserId(SecurityUtils.getUserId());
|
||||
List<CompanyCardCollection> companyCardCollections = companyCardCollectionMapper.selectList(Wrappers.<CompanyCardCollection>lambdaQuery().eq(CompanyCardCollection::getCompanyCardId, companyCardId).eq(CompanyCardCollection::getUserId, SecurityUtils.getUserId()));
|
||||
companyCardCollection.setUserId(SiteSecurityUtils.getUserId());
|
||||
List<CompanyCardCollection> companyCardCollections = companyCardCollectionMapper.selectList(Wrappers.<CompanyCardCollection>lambdaQuery().eq(CompanyCardCollection::getCompanyCardId, companyCardId).eq(CompanyCardCollection::getUserId, SiteSecurityUtils.getUserId()));
|
||||
companyCardCollectionMapper.deleteBatchIds(companyCardCollections.stream().map(CompanyCardCollection::getCompanyCardCollectionId).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.cms.domain.Company;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.mapper.JobMapper;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -93,7 +93,7 @@ public class CompanyCollectionServiceImpl extends ServiceImpl<CompanyCollectionM
|
||||
*/
|
||||
@Override
|
||||
public int companyCancel(Long companyId) {
|
||||
List<CompanyCollection> companyCollections = companyCollectionMapper.selectList(Wrappers.<CompanyCollection>lambdaQuery().eq(CompanyCollection::getCompanyId, companyId).eq(CompanyCollection::getUserId, SecurityUtils.getUserId()));
|
||||
List<CompanyCollection> companyCollections = companyCollectionMapper.selectList(Wrappers.<CompanyCollection>lambdaQuery().eq(CompanyCollection::getCompanyId, companyId).eq(CompanyCollection::getUserId, SiteSecurityUtils.getUserId()));
|
||||
if(companyCollections.size()>0){
|
||||
companyCollectionMapper.deleteBatchIds(companyCollections.stream().map(CompanyCollection::getId).collect(Collectors.toList()));
|
||||
}
|
||||
@@ -104,7 +104,7 @@ public class CompanyCollectionServiceImpl extends ServiceImpl<CompanyCollectionM
|
||||
*/
|
||||
@Override
|
||||
public int companyCollection(Long companyId) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
List<CompanyCollection> companyCollections = companyCollectionMapper.selectList(Wrappers.<CompanyCollection>lambdaQuery().eq(CompanyCollection::getCompanyId, companyId).eq(CompanyCollection::getUserId, userId));
|
||||
if(companyCollections.size()>0){
|
||||
companyCollectionMapper.deleteBatchIds(companyCollections.stream().map(CompanyCollection::getId).collect(Collectors.toList()));
|
||||
@@ -118,7 +118,7 @@ public class CompanyCollectionServiceImpl extends ServiceImpl<CompanyCollectionM
|
||||
|
||||
@Override
|
||||
public List<Company> collectionCompany() {
|
||||
List<Company> companies = companyCollectionMapper.collectionJob(SecurityUtils.getUserId());
|
||||
List<Company> companies = companyCollectionMapper.collectionJob(SiteSecurityUtils.getUserId());
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
@@ -11,7 +11,7 @@ import com.ruoyi.cms.domain.query.LabelQuery;
|
||||
import com.ruoyi.cms.mapper.*;
|
||||
import com.ruoyi.common.constant.Constants;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
@@ -53,8 +53,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper,Company> imple
|
||||
public Company selectCompanyByCompanyId(Long companyId)
|
||||
{
|
||||
Company company = companyMapper.selectById(companyId);
|
||||
if(SecurityUtils.isLogin()){
|
||||
Long l = companyCollectionMapper.selectCount(Wrappers.<CompanyCollection>lambdaQuery().eq(CompanyCollection::getCompanyId, companyId).eq(CompanyCollection::getUserId, SecurityUtils.getUserId()));
|
||||
if(SiteSecurityUtils.isLogin()){
|
||||
Long l = companyCollectionMapper.selectCount(Wrappers.<CompanyCollection>lambdaQuery().eq(CompanyCollection::getCompanyId, companyId).eq(CompanyCollection::getUserId, SiteSecurityUtils.getUserId()));
|
||||
company.setIsCollection(l>0?1:0);
|
||||
}else {
|
||||
company.setIsCollection(0);
|
||||
@@ -241,7 +241,7 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper,Company> imple
|
||||
|
||||
@Override
|
||||
public void register(Company company) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
company.setUserId(userId);
|
||||
if(companyMapper.selectCount(Wrappers.<Company>lambdaQuery().eq(Company::getName, company.getName()).in(Company::getStatus,Arrays.asList(0,1)))>0){
|
||||
throw new ServiceException(company.getName()+"已经存在");
|
||||
@@ -251,7 +251,7 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper,Company> imple
|
||||
|
||||
@Override
|
||||
public Company registerStatus() {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
Company company = companyMapper.selectOne(Wrappers.<Company>lambdaQuery().eq(Company::getUserId, userId).orderByDesc(Company::getUpdateTime));
|
||||
return company;
|
||||
}
|
||||
|
@@ -1,18 +1,16 @@
|
||||
package com.ruoyi.cms.service.impl;
|
||||
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.cms.domain.ESJobDocument;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.query.ESJobSearch;
|
||||
import com.ruoyi.cms.mapper.es.EsJobDocumentMapper;
|
||||
import com.ruoyi.cms.mapper.JobMapper;
|
||||
import com.ruoyi.cms.service.IESJobSearchService;
|
||||
import com.ruoyi.cms.util.Base64Util;
|
||||
import com.ruoyi.cms.util.ListUtil;
|
||||
import com.ruoyi.cms.util.StringUtil;
|
||||
import com.ruoyi.common.core.text.Convert;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import org.dromara.easyes.core.biz.EsPageInfo;
|
||||
import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
|
||||
@@ -140,8 +138,8 @@ public class ESJobSearchImpl implements IESJobSearchService
|
||||
ESJobSearch newSearch = new ESJobSearch();
|
||||
BeanUtils.copyProperties(esJobSearch,newSearch);
|
||||
//查询
|
||||
if(SecurityUtils.isLogin()){
|
||||
AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
|
||||
if(SiteSecurityUtils.isLogin()){
|
||||
AppUser appUser = appUserService.selectAppUserByUserId(SiteSecurityUtils.getUserId());
|
||||
if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){
|
||||
List<String> jobTitle = appUser.getJobTitle();
|
||||
newSearch.setJobTitle(String.join(",", jobTitle));
|
||||
@@ -424,8 +422,8 @@ public class ESJobSearchImpl implements IESJobSearchService
|
||||
Integer pageNum = jobQuery.getCurrent();
|
||||
Integer pageSize = jobQuery.getPageSize();
|
||||
LambdaEsQueryWrapper<ESJobDocument> wrapper = new LambdaEsQueryWrapper<>();
|
||||
// if(SecurityUtils.isLogin()){
|
||||
// AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
|
||||
// if(SiteSecurityUtils.isLogin()){
|
||||
// AppUser appUser = appUserService.selectAppUserByUserId(SiteSecurityUtils.getUserId());
|
||||
// if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){
|
||||
// List<String> jobTitle = appUser.getJobTitle();
|
||||
// jobQuery.setJobTitle(String.join(",", jobTitle));
|
||||
|
@@ -8,7 +8,7 @@ import com.ruoyi.cms.domain.JobFair;
|
||||
import com.ruoyi.cms.mapper.FairCollectionMapper;
|
||||
import com.ruoyi.cms.mapper.JobFairMapper;
|
||||
import com.ruoyi.cms.service.IFairCollectionService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -50,7 +50,7 @@ public class FairCollectionServiceImpl extends ServiceImpl<FairCollectionMapper,
|
||||
@Override
|
||||
public List<FairCollection> selectFairCollectionList(FairCollection fairCollection)
|
||||
{
|
||||
List<FairCollection> fairCollections = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getUserId, SecurityUtils.getUserId()));
|
||||
List<FairCollection> fairCollections = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getUserId, SiteSecurityUtils.getUserId()));
|
||||
return fairCollections;
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ public class FairCollectionServiceImpl extends ServiceImpl<FairCollectionMapper,
|
||||
@Override
|
||||
@Transactional
|
||||
public int fairCollection(Long fairId) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
List<FairCollection> fairCollections = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getFairId, fairId).eq(FairCollection::getUserId, userId));
|
||||
if(fairCollections.size()>0){
|
||||
fairCollectionMapper.deleteBatchIds(fairCollections.stream().map(FairCollection::getId).collect(Collectors.toList()));
|
||||
@@ -111,7 +111,7 @@ public class FairCollectionServiceImpl extends ServiceImpl<FairCollectionMapper,
|
||||
*/
|
||||
@Override
|
||||
public int cancel(Long fairId) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
List<FairCollection> fairCollections = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getFairId, fairId).eq(FairCollection::getUserId, userId));
|
||||
if(fairCollections.size()>0){
|
||||
fairCollectionMapper.deleteBatchIds(fairCollections.stream().map(FairCollection::getId).collect(Collectors.toList()));
|
||||
@@ -123,6 +123,6 @@ public class FairCollectionServiceImpl extends ServiceImpl<FairCollectionMapper,
|
||||
*/
|
||||
@Override
|
||||
public List<JobFair> appCollectionFair(Integer type) {
|
||||
return jobFairMapper.selectAppList(SecurityUtils.getUserId(),type);
|
||||
return jobFairMapper.selectAppList(SiteSecurityUtils.getUserId(),type);
|
||||
}
|
||||
}
|
||||
|
@@ -12,7 +12,7 @@ import com.ruoyi.cms.mapper.FileMapper;
|
||||
import com.ruoyi.cms.service.IFileService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||
import com.ruoyi.common.utils.uuid.UUID;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@@ -8,7 +8,7 @@ import com.ruoyi.cms.domain.JobApply;
|
||||
import com.ruoyi.cms.domain.query.MineJobQuery;
|
||||
import com.ruoyi.cms.mapper.*;
|
||||
import com.ruoyi.cms.service.IJobApplyService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -98,17 +98,17 @@ public class JobApplyServiceImpl extends ServiceImpl<JobApplyMapper,JobApply> im
|
||||
|
||||
@Override
|
||||
public List<Job> applyJob() {
|
||||
List<Job> jobs = jobApplyMapper.applyJob(SecurityUtils.getUserId());
|
||||
List<Job> jobs = jobApplyMapper.applyJob(SiteSecurityUtils.getUserId());
|
||||
return jobs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<String, Integer> statistics() {
|
||||
Integer applyCount = jobApplyMapper.applyJob(SecurityUtils.getUserId()).size();
|
||||
Integer collectionJobCount = jobCollectionMapper.collectionJob(SecurityUtils.getUserId()).size();
|
||||
Integer collectionCompanyCount = companyCollectionMapper.collectionJob(SecurityUtils.getUserId()).size();
|
||||
Integer jobReviewCount = appReviewJobMapper.review(SecurityUtils.getUserId(),new MineJobQuery()).size();
|
||||
Integer fairCollecitonCount = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getUserId, SecurityUtils.getUserId())).size();
|
||||
Integer applyCount = jobApplyMapper.applyJob(SiteSecurityUtils.getUserId()).size();
|
||||
Integer collectionJobCount = jobCollectionMapper.collectionJob(SiteSecurityUtils.getUserId()).size();
|
||||
Integer collectionCompanyCount = companyCollectionMapper.collectionJob(SiteSecurityUtils.getUserId()).size();
|
||||
Integer jobReviewCount = appReviewJobMapper.review(SiteSecurityUtils.getUserId(),new MineJobQuery()).size();
|
||||
Integer fairCollecitonCount = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getUserId, SiteSecurityUtils.getUserId())).size();
|
||||
HashMap<String, Integer> map = new HashMap<>();
|
||||
map.put("applyCount", applyCount);
|
||||
map.put("collectionCount", collectionJobCount+collectionCompanyCount);
|
||||
|
@@ -14,7 +14,8 @@ import com.ruoyi.cms.mapper.AppUserMapper;
|
||||
import com.ruoyi.cms.mapper.JobApplyMapper;
|
||||
import com.ruoyi.cms.mapper.JobMapper;
|
||||
import com.ruoyi.cms.service.IBussinessDictTypeService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -106,7 +107,7 @@ public class JobCollectionServiceImpl extends ServiceImpl<JobCollectionMapper,Jo
|
||||
@Override
|
||||
@Transactional
|
||||
public int jobCollection(Long jobId) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
List<JobCollection> jobCollections = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, userId));
|
||||
if(jobCollections.size()>0){
|
||||
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
||||
@@ -122,7 +123,7 @@ public class JobCollectionServiceImpl extends ServiceImpl<JobCollectionMapper,Jo
|
||||
*/
|
||||
@Override
|
||||
public int cancel(Long jobId) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
List<JobCollection> jobCollections = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, userId));
|
||||
if(jobCollections.size()>0){
|
||||
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
||||
@@ -132,7 +133,7 @@ public class JobCollectionServiceImpl extends ServiceImpl<JobCollectionMapper,Jo
|
||||
|
||||
@Override
|
||||
public int apply(Long jobId) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
JobApply jobApply = new JobApply();
|
||||
jobApply.setJobId(jobId);
|
||||
jobApply.setUserId(userId);
|
||||
@@ -149,7 +150,7 @@ public class JobCollectionServiceImpl extends ServiceImpl<JobCollectionMapper,Jo
|
||||
|
||||
@Override
|
||||
public List<Job> collectionJob() {
|
||||
List<Job> jobs = jobCollectionMapper.collectionJob(SecurityUtils.getUserId());
|
||||
List<Job> jobs = jobCollectionMapper.collectionJob(SiteSecurityUtils.getUserId());
|
||||
return jobs;
|
||||
}
|
||||
|
||||
|
@@ -10,7 +10,7 @@ import com.ruoyi.cms.mapper.FairCollectionMapper;
|
||||
import com.ruoyi.cms.mapper.FairCompanyMapper;
|
||||
import com.ruoyi.common.constant.Constants;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -148,8 +148,8 @@ public class JobFairServiceImpl extends ServiceImpl<JobFairMapper,JobFair> imple
|
||||
List<Company> companyList = companyMapper.selectBatchIds(companyIds);
|
||||
jobFair.setCompanyList(companyList);
|
||||
}
|
||||
if(SecurityUtils.isLogin()){
|
||||
Long count = fairCollectionMapper.selectCount(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getFairId, fairId).eq(FairCollection::getUserId, SecurityUtils.getUserId()));
|
||||
if(SiteSecurityUtils.isLogin()){
|
||||
Long count = fairCollectionMapper.selectCount(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getFairId, fairId).eq(FairCollection::getUserId, SiteSecurityUtils.getUserId()));
|
||||
jobFair.setIsCollection(count>0?1:null);
|
||||
}
|
||||
return jobFair;
|
||||
@@ -159,10 +159,10 @@ public class JobFairServiceImpl extends ServiceImpl<JobFairMapper,JobFair> imple
|
||||
public List<JobFair> appList(JobFair jobFair) {
|
||||
List<JobFair> fairCompanies = jobFairMapper.appList(jobFair);
|
||||
if(fairCompanies.isEmpty()){return new ArrayList<>();}
|
||||
if(SecurityUtils.isLogin()){
|
||||
if(SiteSecurityUtils.isLogin()){
|
||||
//收藏
|
||||
Set<Long> collectionIds = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery()
|
||||
.eq(FairCollection::getUserId, SecurityUtils.getUserId())
|
||||
.eq(FairCollection::getUserId, SiteSecurityUtils.getUserId())
|
||||
.in(FairCollection::getFairId, fairCompanies.stream().map(JobFair::getJobFairId).collect(Collectors.toList())))
|
||||
.stream().map(FairCollection::getFairId).collect(Collectors.toSet());
|
||||
for (JobFair j : fairCompanies) {
|
||||
|
@@ -2,16 +2,15 @@ package com.ruoyi.cms.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cms.domain.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.cms.domain.Job;
|
||||
import com.ruoyi.cms.domain.JobApply;
|
||||
import com.ruoyi.cms.domain.JobCollection;
|
||||
import com.ruoyi.cms.mapper.AppUserMapper;
|
||||
import com.ruoyi.cms.mapper.JobApplyMapper;
|
||||
import com.ruoyi.cms.mapper.JobCollectionMapper;
|
||||
import com.ruoyi.cms.service.IJobCollectionService;
|
||||
import com.ruoyi.cms.service.IJobRecommentService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -100,7 +99,7 @@ public class JobRecommentServiceImpl extends ServiceImpl<JobCollectionMapper,Job
|
||||
@Override
|
||||
@Transactional
|
||||
public int jobCollection(Long jobId) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
List<JobCollection> jobCollections = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, userId));
|
||||
if(jobCollections.size()>0){
|
||||
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
||||
@@ -116,7 +115,7 @@ public class JobRecommentServiceImpl extends ServiceImpl<JobCollectionMapper,Job
|
||||
*/
|
||||
@Override
|
||||
public int cancel(Long jobId) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
List<JobCollection> jobCollections = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, userId));
|
||||
if(jobCollections.size()>0){
|
||||
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
||||
@@ -126,7 +125,7 @@ public class JobRecommentServiceImpl extends ServiceImpl<JobCollectionMapper,Job
|
||||
|
||||
@Override
|
||||
public int apply(Long jobId) {
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
JobApply jobApply = new JobApply();
|
||||
jobApply.setJobId(jobId);
|
||||
jobApply.setUserId(userId);
|
||||
@@ -143,13 +142,13 @@ public class JobRecommentServiceImpl extends ServiceImpl<JobCollectionMapper,Job
|
||||
|
||||
@Override
|
||||
public List<Job> collectionJob() {
|
||||
List<Job> jobs = jobCollectionMapper.collectionJob(SecurityUtils.getUserId());
|
||||
List<Job> jobs = jobCollectionMapper.collectionJob(SiteSecurityUtils.getUserId());
|
||||
return jobs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String competitiveness(Long jobId) {
|
||||
AppUser appUser = appUserMapper.selectById(SecurityUtils.getUserId());
|
||||
AppUser appUser = appUserMapper.selectById(SiteSecurityUtils.getUserId());
|
||||
String education = appUser.getEducation();
|
||||
return "90.5";
|
||||
}
|
||||
|
@@ -19,7 +19,7 @@ import com.ruoyi.common.core.domain.TreeSelect;
|
||||
import com.ruoyi.common.core.domain.entity.JobTitle;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
import org.dromara.easyes.core.biz.EsPageInfo;
|
||||
import org.slf4j.Logger;
|
||||
@@ -369,22 +369,22 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
||||
Company company = companyMapper.selectById(job.getCompanyId());
|
||||
job.setCompany(company);
|
||||
}
|
||||
if(SecurityUtils.isLogin()){
|
||||
if(SiteSecurityUtils.isLogin()){
|
||||
//查询申请信息
|
||||
Long applyCount = jobApplyMapper.selectCount(Wrappers.<JobApply>lambdaQuery().eq(JobApply::getJobId, jobId).eq(JobApply::getUserId, SecurityUtils.getUserId()));
|
||||
Long applyCount = jobApplyMapper.selectCount(Wrappers.<JobApply>lambdaQuery().eq(JobApply::getJobId, jobId).eq(JobApply::getUserId, SiteSecurityUtils.getUserId()));
|
||||
job.setIsApply(applyCount>0?1:0);
|
||||
//查询收藏信息
|
||||
Long collectionCount = jobCollectionMapper.selectCount(Wrappers.<JobCollection>lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, SecurityUtils.getUserId()));
|
||||
Long collectionCount = jobCollectionMapper.selectCount(Wrappers.<JobCollection>lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, SiteSecurityUtils.getUserId()));
|
||||
job.setIsCollection(collectionCount>0?1:0);
|
||||
//todo asyn
|
||||
//保存浏览记录
|
||||
List<AppReviewJob> appReviewJobs = appReviewJobMapper.selectList(Wrappers.<AppReviewJob>lambdaQuery().eq(AppReviewJob::getUserId, SecurityUtils.getUserId()).eq(AppReviewJob::getJobId, jobId));
|
||||
List<AppReviewJob> appReviewJobs = appReviewJobMapper.selectList(Wrappers.<AppReviewJob>lambdaQuery().eq(AppReviewJob::getUserId, SiteSecurityUtils.getUserId()).eq(AppReviewJob::getJobId, jobId));
|
||||
//之前相同岗位的记录删除 保存最新的浏览记录
|
||||
if(!appReviewJobs.isEmpty()){
|
||||
appReviewJobMapper.deleteBatchIds(appReviewJobs.stream().map(AppReviewJob::getId).collect(Collectors.toList()));
|
||||
}
|
||||
AppReviewJob appReviewJob = new AppReviewJob();
|
||||
appReviewJob.setUserId(SecurityUtils.getUserId());
|
||||
appReviewJob.setUserId(SiteSecurityUtils.getUserId());
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
String formattedDate = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
appReviewJob.setReviewDate(formattedDate);
|
||||
@@ -749,10 +749,10 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
||||
|
||||
private List<ESJobDocument> userCollection(List<ESJobDocument> jobs){
|
||||
if(jobs.isEmpty()){return new ArrayList<>();}
|
||||
if(SecurityUtils.isLogin()){
|
||||
if(SiteSecurityUtils.isLogin()){
|
||||
//收藏
|
||||
Set<Long> collectionIds = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery()
|
||||
.eq(JobCollection::getUserId, SecurityUtils.getUserId())
|
||||
.eq(JobCollection::getUserId, SiteSecurityUtils.getUserId())
|
||||
.in(JobCollection::getJobId, jobs.stream().map(ESJobDocument::getJobId).collect(Collectors.toList())))
|
||||
.stream().map(JobCollection::getJobId).collect(Collectors.toSet());
|
||||
for (ESJobDocument j : jobs) {
|
||||
@@ -767,7 +767,7 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
||||
@Override
|
||||
public void publishJob(Job job) {
|
||||
job.setIsPublish(0);
|
||||
Long userId = SecurityUtils.getUserId();
|
||||
Long userId = SiteSecurityUtils.getUserId();
|
||||
Company company = companyMapper.selectOne(Wrappers.<Company>lambdaQuery().eq(Company::getUserId, userId).eq(Company::getStatus, 1));
|
||||
if(Objects.isNull(company)){
|
||||
throw new ServiceException("请先完成招聘企业登记");
|
||||
|
@@ -57,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="idCard != null and idCard != ''"> and id_card like concat('%', CAST(#{idCard} AS VARCHAR), '%')</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="selectByJobId" resultType="com.ruoyi.cms.domain.AppUser" parameterType="java.lang.Long">
|
||||
<select id="selectByJobId" resultType="com.ruoyi.common.core.domain.entity.AppUser" parameterType="java.lang.Long">
|
||||
SELECT * FROM app_user WHERE user_id IN (
|
||||
select DISTINCT au.USER_ID from APP_USER au
|
||||
INNER JOIN JOB_APPLY ja ON ja.USER_ID = au.USER_ID
|
||||
|
@@ -11,11 +11,12 @@ public class CacheConstants
|
||||
* 登录用户 redis key
|
||||
*/
|
||||
public static final String LOGIN_TOKEN_KEY = "login_tokens:";
|
||||
|
||||
public static final String SITE_LOGIN_TOKEN_KEY = "site_login_tokens:";
|
||||
/**
|
||||
* 验证码 redis key
|
||||
*/
|
||||
public static final String CAPTCHA_CODE_KEY = "captcha_codes:";
|
||||
public static final String SMG_CODE_KEY = "smg_codes:";
|
||||
|
||||
/**
|
||||
* 参数管理 cache key
|
||||
@@ -42,4 +43,5 @@ public class CacheConstants
|
||||
* 登录账户密码错误次数 redis key
|
||||
*/
|
||||
public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
|
||||
public static final String PWD_ERR_CNT_KEY_SITE = "site:pwd_err_cnt:";
|
||||
}
|
||||
|
@@ -109,6 +109,10 @@ public class Constants
|
||||
* 令牌前缀
|
||||
*/
|
||||
public static final String LOGIN_USER_KEY = "login_user_key";
|
||||
public static final String APP_LOGIN_USER_KEY = "app_login_user_key";
|
||||
public static final String LOGIN_USER_ID = "login_user_id";
|
||||
public static final String APP_LOGIN_USER_ID = "login_user_id";
|
||||
public static final String EXP = "exp";
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
package com.ruoyi.common.core.domain.entity;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -109,4 +109,8 @@ public class AppUser extends BaseEntity
|
||||
|
||||
@ApiModelProperty("是否企业用户 0是,1否")
|
||||
private String isCompanyUser;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("密码")
|
||||
private String password;
|
||||
}
|
@@ -0,0 +1,226 @@
|
||||
package com.ruoyi.common.core.domain.model;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 登录用户身份权限
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class LoginSiteUser implements UserDetails
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户唯一标识
|
||||
*/
|
||||
private String token;
|
||||
|
||||
/**
|
||||
* 登录时间
|
||||
*/
|
||||
private Long loginTime;
|
||||
|
||||
/**
|
||||
* 过期时间
|
||||
*/
|
||||
private Long expireTime;
|
||||
|
||||
/**
|
||||
* 登录IP地址
|
||||
*/
|
||||
private String ipaddr;
|
||||
|
||||
/**
|
||||
* 登录地点
|
||||
*/
|
||||
private String loginLocation;
|
||||
|
||||
/**
|
||||
* 浏览器类型
|
||||
*/
|
||||
private String browser;
|
||||
|
||||
/**
|
||||
* 操作系统
|
||||
*/
|
||||
private String os;
|
||||
|
||||
/**
|
||||
* 用户信息
|
||||
*/
|
||||
private AppUser user;
|
||||
|
||||
public LoginSiteUser(){
|
||||
|
||||
}
|
||||
public LoginSiteUser(Long userId, AppUser user){
|
||||
this.userId = userId;
|
||||
this.user = user;
|
||||
}
|
||||
public Long getUserId()
|
||||
{
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(Long userId)
|
||||
{
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getToken()
|
||||
{
|
||||
return token;
|
||||
}
|
||||
|
||||
public void setToken(String token)
|
||||
{
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
@JSONField(serialize = false)
|
||||
@Override
|
||||
public String getPassword()
|
||||
{
|
||||
return user.getPassword();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsername()
|
||||
{
|
||||
return user.getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* 账户是否未过期,过期无法验证
|
||||
*/
|
||||
@JSONField(serialize = false)
|
||||
@Override
|
||||
public boolean isAccountNonExpired()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定用户是否解锁,锁定的用户无法进行身份验证
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@JSONField(serialize = false)
|
||||
@Override
|
||||
public boolean isAccountNonLocked()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 指示是否已过期的用户的凭据(密码),过期的凭据防止认证
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@JSONField(serialize = false)
|
||||
@Override
|
||||
public boolean isCredentialsNonExpired()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否可用 ,禁用的用户不能身份验证
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@JSONField(serialize = false)
|
||||
@Override
|
||||
public boolean isEnabled()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public Long getLoginTime()
|
||||
{
|
||||
return loginTime;
|
||||
}
|
||||
|
||||
public void setLoginTime(Long loginTime)
|
||||
{
|
||||
this.loginTime = loginTime;
|
||||
}
|
||||
|
||||
public String getIpaddr()
|
||||
{
|
||||
return ipaddr;
|
||||
}
|
||||
|
||||
public void setIpaddr(String ipaddr)
|
||||
{
|
||||
this.ipaddr = ipaddr;
|
||||
}
|
||||
|
||||
public String getLoginLocation()
|
||||
{
|
||||
return loginLocation;
|
||||
}
|
||||
|
||||
public void setLoginLocation(String loginLocation)
|
||||
{
|
||||
this.loginLocation = loginLocation;
|
||||
}
|
||||
|
||||
public String getBrowser()
|
||||
{
|
||||
return browser;
|
||||
}
|
||||
|
||||
public void setBrowser(String browser)
|
||||
{
|
||||
this.browser = browser;
|
||||
}
|
||||
|
||||
public String getOs()
|
||||
{
|
||||
return os;
|
||||
}
|
||||
|
||||
public void setOs(String os)
|
||||
{
|
||||
this.os = os;
|
||||
}
|
||||
|
||||
public Long getExpireTime()
|
||||
{
|
||||
return expireTime;
|
||||
}
|
||||
|
||||
public void setExpireTime(Long expireTime)
|
||||
{
|
||||
this.expireTime = expireTime;
|
||||
}
|
||||
|
||||
|
||||
public AppUser getUser()
|
||||
{
|
||||
return user;
|
||||
}
|
||||
|
||||
public void setUser(AppUser user)
|
||||
{
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<? extends GrantedAuthority> getAuthorities()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
@@ -0,0 +1,122 @@
|
||||
package com.ruoyi.common.utils;
|
||||
|
||||
import com.ruoyi.common.constant.HttpStatus;
|
||||
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
|
||||
/**
|
||||
* 安全服务工具类
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class SiteSecurityUtils
|
||||
{
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
**/
|
||||
public static Long getUserId()
|
||||
{
|
||||
try
|
||||
{
|
||||
return getLoginSiteUser().getUserId();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取用户账户
|
||||
**/
|
||||
public static String getUsername()
|
||||
{
|
||||
try
|
||||
{
|
||||
return getLoginSiteUser().getUsername();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ServiceException("获取用户账户异常", HttpStatus.UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户
|
||||
**/
|
||||
public static LoginSiteUser getLoginSiteUser()
|
||||
{
|
||||
try
|
||||
{
|
||||
return (LoginSiteUser) getAuthentication().getPrincipal();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取Authentication
|
||||
*/
|
||||
public static Authentication getAuthentication()
|
||||
{
|
||||
return SecurityContextHolder.getContext().getAuthentication();
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成BCryptPasswordEncoder密码
|
||||
*
|
||||
* @param password 密码
|
||||
* @return 加密字符串
|
||||
*/
|
||||
public static String encryptPassword(String password)
|
||||
{
|
||||
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
||||
return passwordEncoder.encode(password);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断密码是否相同
|
||||
*
|
||||
* @param rawPassword 真实密码
|
||||
* @param encodedPassword 加密后字符
|
||||
* @return 结果
|
||||
*/
|
||||
public static boolean matchesPassword(String rawPassword, String encodedPassword)
|
||||
{
|
||||
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
||||
return passwordEncoder.matches(rawPassword, encodedPassword);
|
||||
}
|
||||
|
||||
public static Boolean isLogin(){
|
||||
try
|
||||
{
|
||||
Object principal = getAuthentication().getPrincipal();
|
||||
if(principal.toString().equals("anonymousUser")){
|
||||
return false;
|
||||
}else {
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static LoginSiteUser getLoginUser() {
|
||||
try
|
||||
{
|
||||
return (LoginSiteUser) getAuthentication().getPrincipal();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
}
|
@@ -5,6 +5,10 @@ import javax.servlet.FilterChain;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import com.ruoyi.framework.web.service.TokenSiteService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
@@ -27,11 +31,14 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
|
||||
@Autowired
|
||||
private TokenService tokenService;
|
||||
|
||||
@Autowired
|
||||
private TokenSiteService tokenSiteService;
|
||||
@Override
|
||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
|
||||
throws ServletException, IOException
|
||||
{
|
||||
LoginUser loginUser = tokenService.getLoginUser(request);
|
||||
LoginSiteUser loginSiteUser = tokenSiteService.getLoginSiteUser(request);
|
||||
if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication()))
|
||||
{
|
||||
tokenService.verifyToken(loginUser);
|
||||
@@ -39,6 +46,13 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
|
||||
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
|
||||
SecurityContextHolder.getContext().setAuthentication(authenticationToken);
|
||||
}
|
||||
if (StringUtils.isNotNull(loginSiteUser) && StringUtils.isNull(SiteSecurityUtils.getAuthentication()))
|
||||
{
|
||||
tokenSiteService.verifyToken(loginSiteUser);
|
||||
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginSiteUser, null,loginSiteUser.getAuthorities());
|
||||
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
|
||||
SecurityContextHolder.getContext().setAuthentication(authenticationToken);
|
||||
}
|
||||
chain.doFilter(request, response);
|
||||
}
|
||||
}
|
||||
|
@@ -4,6 +4,9 @@ import java.io.IOException;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
||||
import com.ruoyi.framework.web.service.TokenSiteService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.core.Authentication;
|
||||
@@ -29,7 +32,8 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler
|
||||
{
|
||||
@Autowired
|
||||
private TokenService tokenService;
|
||||
|
||||
@Autowired
|
||||
private TokenSiteService tokenSiteService;
|
||||
/**
|
||||
* 退出处理
|
||||
*
|
||||
@@ -48,6 +52,15 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler
|
||||
// 记录用户退出日志
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, MessageUtils.message("user.logout.success")));
|
||||
}
|
||||
LoginSiteUser loginSiteUser = tokenSiteService.getLoginSiteUser(request);
|
||||
if (StringUtils.isNotNull(loginSiteUser))
|
||||
{
|
||||
String userName = loginSiteUser.getUsername();
|
||||
// 删除用户缓存记录
|
||||
tokenSiteService.delLoginSiteUser(loginSiteUser.getToken());
|
||||
// 记录用户退出日志
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, MessageUtils.message("user.logout.success")));
|
||||
}
|
||||
ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.success(MessageUtils.message("user.logout.success"))));
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,9 @@
|
||||
package com.ruoyi.framework.web.service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.authentication.AuthenticationManager;
|
||||
import org.springframework.security.authentication.BadCredentialsException;
|
||||
@@ -52,6 +55,8 @@ public class SysLoginService
|
||||
@Autowired
|
||||
private ISysConfigService configService;
|
||||
|
||||
@Autowired
|
||||
private TokenSiteService tokenSiteService;
|
||||
/**
|
||||
* 登录验证
|
||||
*
|
||||
@@ -99,41 +104,24 @@ public class SysLoginService
|
||||
// 生成token
|
||||
return tokenService.createToken(loginUser);
|
||||
}
|
||||
//模拟登录
|
||||
public String loginApp(String username, String password)
|
||||
{
|
||||
// 登录前置校验
|
||||
loginPreCheck(username, password);
|
||||
// 用户验证
|
||||
Authentication authentication = null;
|
||||
try
|
||||
{
|
||||
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
|
||||
AuthenticationContextHolder.setContext(authenticationToken);
|
||||
// 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
|
||||
authentication = authenticationManager.authenticate(authenticationToken);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (e instanceof BadCredentialsException)
|
||||
{
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
|
||||
throw new UserPasswordNotMatchException();
|
||||
}
|
||||
else
|
||||
{
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
|
||||
throw new ServiceException(e.getMessage());
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
AuthenticationContextHolder.clearContext();
|
||||
}
|
||||
|
||||
AppUser appUser = userService.selectAppUserById(1L);
|
||||
LoginSiteUser loginSiteUser = new LoginSiteUser();
|
||||
loginSiteUser.setUserId(appUser.getUserId());
|
||||
loginSiteUser.setUser(appUser);
|
||||
recordLoginInfo(appUser);
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
||||
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
|
||||
recordLoginInfo(loginUser.getUserId());
|
||||
recordLoginInfo(appUser);
|
||||
// 生成token
|
||||
return tokenService.createToken(loginUser);
|
||||
return tokenSiteService.createToken(loginSiteUser);
|
||||
}
|
||||
//单点登录
|
||||
public String loginOss(String ticket)
|
||||
{
|
||||
return "tokenService.createToken(loginUser)";
|
||||
}
|
||||
/**
|
||||
* 校验验证码
|
||||
@@ -163,7 +151,15 @@ public class SysLoginService
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void recordLoginInfo(AppUser user)
|
||||
{
|
||||
AppUser sysUser = new AppUser();
|
||||
sysUser.setUserId(user.getUserId());
|
||||
sysUser.setLoginIp(IpUtils.getIpAddr());
|
||||
sysUser.setLoginDate(DateUtils.getNowDate());
|
||||
sysUser.setUpdateBy(user.getName());
|
||||
// userService.updateSiteUser(sysUser);
|
||||
}
|
||||
/**
|
||||
* 登录前置校验
|
||||
* @param username 用户名
|
||||
|
@@ -0,0 +1,242 @@
|
||||
package com.ruoyi.framework.web.service;
|
||||
|
||||
import com.ruoyi.common.constant.CacheConstants;
|
||||
import com.ruoyi.common.constant.Constants;
|
||||
import com.ruoyi.common.core.domain.model.LoginSiteUser;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.utils.ServletUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.ip.AddressUtils;
|
||||
import com.ruoyi.common.utils.ip.IpUtils;
|
||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||
import eu.bitwalker.useragentutils.UserAgent;
|
||||
import io.jsonwebtoken.Claims;
|
||||
import io.jsonwebtoken.Jwts;
|
||||
import io.jsonwebtoken.SignatureAlgorithm;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* token验证处理
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Component
|
||||
public class TokenSiteService
|
||||
{
|
||||
private static final Logger log = LoggerFactory.getLogger(TokenSiteService.class);
|
||||
|
||||
// 令牌自定义标识
|
||||
@Value("${token.header}")
|
||||
private String header;
|
||||
|
||||
// 令牌秘钥
|
||||
@Value("${token.secret}")
|
||||
private String secret;
|
||||
|
||||
@Value("${token.expireTime}")
|
||||
private int expireTime;
|
||||
|
||||
protected static final long MILLIS_SECOND = 1000;
|
||||
|
||||
protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
|
||||
|
||||
private static final Long MILLIS_MINUTE_TEN = 20 * 60 * 1000L;
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
/**
|
||||
* 获取用户身份信息
|
||||
*
|
||||
* @return 用户信息
|
||||
*/
|
||||
public LoginSiteUser getLoginSiteUser(HttpServletRequest request)
|
||||
{
|
||||
// 获取请求携带的令牌
|
||||
String token = getToken(request);
|
||||
if (StringUtils.isNotEmpty(token))
|
||||
{
|
||||
try
|
||||
{
|
||||
Claims claims = parseToken(token);
|
||||
// 解析对应的权限以及用户信息
|
||||
String uuid = (String) claims.get(Constants.APP_LOGIN_USER_KEY);
|
||||
Integer userID = (Integer) claims.get(Constants.APP_LOGIN_USER_ID);
|
||||
String userKey = getTokenKey(uuid, String.valueOf(userID));
|
||||
LoginSiteUser user = redisCache.getCacheObject(userKey);
|
||||
return user;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
log.error("获取用户信息异常'{}'", e.getMessage());
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户身份信息
|
||||
*/
|
||||
public void setLoginSiteUser(LoginSiteUser LoginSiteUser)
|
||||
{
|
||||
if (StringUtils.isNotNull(LoginSiteUser) && StringUtils.isNotEmpty(LoginSiteUser.getToken()))
|
||||
{
|
||||
refreshToken(LoginSiteUser);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户身份信息
|
||||
*/
|
||||
public void delLoginSiteUser(String token)
|
||||
{
|
||||
if (StringUtils.isNotEmpty(token))
|
||||
{
|
||||
String userKey = getTokenKey(token);
|
||||
redisCache.deleteObject(userKey);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建令牌
|
||||
*
|
||||
* @param LoginSiteUser 用户信息
|
||||
* @return 令牌
|
||||
*/
|
||||
public String createToken(LoginSiteUser LoginSiteUser)
|
||||
{
|
||||
String token = IdUtils.fastUUID();
|
||||
LoginSiteUser.setToken(token);
|
||||
setUserAgent(LoginSiteUser);
|
||||
refreshToken(LoginSiteUser);
|
||||
|
||||
Map<String, Object> claims = new HashMap<>();
|
||||
claims.put(Constants.APP_LOGIN_USER_KEY, token);
|
||||
claims.put(Constants.APP_LOGIN_USER_ID, LoginSiteUser.getUserId());
|
||||
// 当前时间 + 30 分钟
|
||||
long currentTimeMillis = System.currentTimeMillis();
|
||||
long expireTimeMillis = currentTimeMillis + ((long) expireTime * 60 * 1000); // 30分钟 = 1800000 毫秒
|
||||
long expireTimeSeconds = expireTimeMillis / 1000; // 转换为秒(时间戳)
|
||||
claims.put(Constants.EXP, expireTimeSeconds);
|
||||
return createToken(claims);
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证令牌有效期,相差不足20分钟,自动刷新缓存
|
||||
*
|
||||
* @param LoginSiteUser
|
||||
* @return 令牌
|
||||
*/
|
||||
public void verifyToken(LoginSiteUser LoginSiteUser)
|
||||
{
|
||||
long expireTime = LoginSiteUser.getExpireTime();
|
||||
long currentTime = System.currentTimeMillis();
|
||||
if (expireTime - currentTime <= MILLIS_MINUTE_TEN)
|
||||
{
|
||||
refreshToken(LoginSiteUser);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新令牌有效期
|
||||
*
|
||||
* @param LoginSiteUser 登录信息
|
||||
*/
|
||||
public void refreshToken(LoginSiteUser LoginSiteUser)
|
||||
{
|
||||
LoginSiteUser.setLoginTime(System.currentTimeMillis());
|
||||
LoginSiteUser.setExpireTime(LoginSiteUser.getLoginTime() + expireTime * MILLIS_MINUTE);
|
||||
// 根据uuid将LoginSiteUser缓存
|
||||
String userKey = getTokenKey(LoginSiteUser.getToken(), String.valueOf(LoginSiteUser.getUserId()));
|
||||
redisCache.setCacheObject(userKey, LoginSiteUser, expireTime, TimeUnit.MINUTES);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户代理信息
|
||||
*
|
||||
* @param LoginSiteUser 登录信息
|
||||
*/
|
||||
public void setUserAgent(LoginSiteUser LoginSiteUser)
|
||||
{
|
||||
UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
|
||||
String ip = IpUtils.getIpAddr();
|
||||
LoginSiteUser.setIpaddr(ip);
|
||||
LoginSiteUser.setLoginLocation(AddressUtils.getRealAddressByIP(ip));
|
||||
LoginSiteUser.setBrowser(userAgent.getBrowser().getName());
|
||||
LoginSiteUser.setOs(userAgent.getOperatingSystem().getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* 从数据声明生成令牌
|
||||
*
|
||||
* @param claims 数据声明
|
||||
* @return 令牌
|
||||
*/
|
||||
private String createToken(Map<String, Object> claims)
|
||||
{
|
||||
String token = Jwts.builder()
|
||||
.setClaims(claims)
|
||||
.signWith(SignatureAlgorithm.HS512, secret).compact();
|
||||
return token;
|
||||
}
|
||||
|
||||
/**
|
||||
* 从令牌中获取数据声明
|
||||
*
|
||||
* @param token 令牌
|
||||
* @return 数据声明
|
||||
*/
|
||||
private Claims parseToken(String token)
|
||||
{
|
||||
return Jwts.parser()
|
||||
.setSigningKey(secret)
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
}
|
||||
|
||||
/**
|
||||
* 从令牌中获取用户名
|
||||
*
|
||||
* @param token 令牌
|
||||
* @return 用户名
|
||||
*/
|
||||
public String getUsernameFromToken(String token)
|
||||
{
|
||||
Claims claims = parseToken(token);
|
||||
return claims.getSubject();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取请求token
|
||||
*
|
||||
* @param request
|
||||
* @return token
|
||||
*/
|
||||
private String getToken(HttpServletRequest request)
|
||||
{
|
||||
String token = request.getHeader(header);
|
||||
if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX))
|
||||
{
|
||||
token = token.replace(Constants.TOKEN_PREFIX, "");
|
||||
}
|
||||
return token;
|
||||
}
|
||||
|
||||
private String getTokenKey(String uuid,String userId)
|
||||
{
|
||||
return CacheConstants.SITE_LOGIN_TOKEN_KEY +userId+":" +uuid;
|
||||
}
|
||||
private String getTokenKey(String uuid)
|
||||
{
|
||||
return CacheConstants.SITE_LOGIN_TOKEN_KEY + uuid;
|
||||
}
|
||||
}
|
@@ -3,6 +3,7 @@ package com.ruoyi.system.mapper;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
|
||||
@@ -126,4 +127,6 @@ public interface SysUserMapper
|
||||
* @return 结果
|
||||
*/
|
||||
public SysUser checkEmailUnique(String email);
|
||||
|
||||
AppUser selectAppUserById(long id);
|
||||
}
|
||||
|
@@ -1,6 +1,8 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
|
||||
/**
|
||||
@@ -203,4 +205,6 @@ public interface ISysUserService
|
||||
* @return 结果
|
||||
*/
|
||||
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
|
||||
|
||||
AppUser selectAppUserById(long id);
|
||||
}
|
||||
|
@@ -4,6 +4,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.validation.Validator;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -547,4 +549,9 @@ public class SysUserServiceImpl implements ISysUserService
|
||||
}
|
||||
return successMsg.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AppUser selectAppUserById(long id) {
|
||||
return userMapper.selectAppUserById(id);
|
||||
}
|
||||
}
|
||||
|
@@ -141,8 +141,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
|
||||
select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
|
||||
</select>
|
||||
<select id="selectAppUserById" resultType="com.ruoyi.common.core.domain.entity.AppUser">
|
||||
select * from app_user where user_id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
|
||||
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
|
||||
insert into sys_user(
|
||||
<if test="userId != null and userId != 0">user_id,</if>
|
||||
<if test="deptId != null and deptId != 0">dept_id,</if>
|
||||
|
Reference in New Issue
Block a user