oss 单点
This commit is contained in:
@@ -3,10 +3,7 @@ package com.ruoyi.web.controller.system;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.domain.entity.SysMenu;
|
import com.ruoyi.common.core.domain.entity.SysMenu;
|
||||||
@@ -91,4 +88,15 @@ public class SysLoginController
|
|||||||
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
|
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
|
||||||
return AjaxResult.success(menuService.buildMenus(menus));
|
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;
|
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.Company;
|
||||||
import com.ruoyi.cms.domain.Job;
|
import com.ruoyi.cms.domain.Job;
|
||||||
import com.ruoyi.cms.domain.JobFair;
|
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.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
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.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -50,7 +50,7 @@ public class AppUserController extends BaseController
|
|||||||
@BussinessLog(title = "保存简历")
|
@BussinessLog(title = "保存简历")
|
||||||
public AjaxResult saveResume(@RequestBody AppUser appUser)
|
public AjaxResult saveResume(@RequestBody AppUser appUser)
|
||||||
{
|
{
|
||||||
appUser.setUserId(SecurityUtils.getUserId());
|
appUser.setUserId(SiteSecurityUtils.getUserId());
|
||||||
appUserService.updateAppUser(appUser);
|
appUserService.updateAppUser(appUser);
|
||||||
return AjaxResult.success();
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
@@ -58,7 +58,7 @@ public class AppUserController extends BaseController
|
|||||||
@GetMapping("/resume")
|
@GetMapping("/resume")
|
||||||
public AjaxResult getResume()
|
public AjaxResult getResume()
|
||||||
{
|
{
|
||||||
AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
|
AppUser appUser = appUserService.selectAppUserByUserId(SiteSecurityUtils.getUserId());
|
||||||
return AjaxResult.success(appUser);
|
return AjaxResult.success(appUser);
|
||||||
}
|
}
|
||||||
@ApiOperation("我的浏览")
|
@ApiOperation("我的浏览")
|
||||||
|
@@ -18,7 +18,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
|
|||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
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.cms.service.IAppUserService;
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
package com.ruoyi.cms.domain.vo;
|
package com.ruoyi.cms.domain.vo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.ruoyi.cms.domain.AppUser;
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@@ -2,7 +2,7 @@ package com.ruoyi.cms.mapper;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.ruoyi.cms.domain.AppUser;
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* APP用户Mapper接口
|
* APP用户Mapper接口
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
package com.ruoyi.cms.service;
|
package com.ruoyi.cms.service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.ruoyi.cms.domain.AppUser;
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* APP用户Service接口
|
* APP用户Service接口
|
||||||
|
@@ -6,11 +6,11 @@ import com.ruoyi.cms.domain.*;
|
|||||||
import com.ruoyi.cms.mapper.*;
|
import com.ruoyi.cms.mapper.*;
|
||||||
import com.ruoyi.cms.service.IAppNoticeService;
|
import com.ruoyi.cms.service.IAppNoticeService;
|
||||||
import com.ruoyi.cms.util.StringUtil;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -154,14 +154,14 @@ public class AppNoticeServiceImpl implements IAppNoticeService
|
|||||||
@Override
|
@Override
|
||||||
public List<Notice> listNotRead(Integer isRead) {
|
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));
|
List<Notice> sysNoticeList = noticeInfoMapper.selectList(Wrappers.<Notice>lambdaQuery().eq(Notice::getUserId, userId).eq(Notice::getRemark,"notice_bar").orderByDesc(Notice::getCreateTime));
|
||||||
return sysNoticeList;
|
return sysNoticeList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Job> recommend(String jobTitle) {
|
public List<Job> recommend(String jobTitle) {
|
||||||
return appNoticeMapper.recommend(jobTitle,SecurityUtils.getUserId());
|
return appNoticeMapper.recommend(jobTitle,SiteSecurityUtils.getUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -172,7 +172,7 @@ public class AppNoticeServiceImpl implements IAppNoticeService
|
|||||||
notice.setIsRead(1);
|
notice.setIsRead(1);
|
||||||
noticeInfoMapper.updateById(notice);
|
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 notice = notices1.get(0);
|
||||||
notice.setNotReadCount(notice.getNotReadCount() - longs.size());
|
notice.setNotReadCount(notice.getNotReadCount() - longs.size());
|
||||||
if(notice.getNotReadCount()==0){
|
if(notice.getNotReadCount()==0){
|
||||||
@@ -194,7 +194,7 @@ public class AppNoticeServiceImpl implements IAppNoticeService
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Notice> sysNoticeList() {
|
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));
|
List<Notice> sysNoticeList = noticeInfoMapper.selectList(Wrappers.<Notice>lambdaQuery().eq(Notice::getUserId, userId).isNotNull(Notice::getNoticeType).notIn(Notice::getNoticeType,"").orderByDesc(Notice::getCreateTime));
|
||||||
return sysNoticeList;
|
return sysNoticeList;
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,7 @@ import com.ruoyi.cms.domain.Job;
|
|||||||
import com.ruoyi.cms.domain.query.MineJobQuery;
|
import com.ruoyi.cms.domain.query.MineJobQuery;
|
||||||
import com.ruoyi.cms.mapper.AppReviewJobMapper;
|
import com.ruoyi.cms.mapper.AppReviewJobMapper;
|
||||||
import com.ruoyi.cms.service.IAppReviewJobService;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -91,13 +91,13 @@ public class AppReviewJobServiceImpl extends ServiceImpl<AppReviewJobMapper, App
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Job> review(MineJobQuery jobQuery) {
|
public List<Job> review(MineJobQuery jobQuery) {
|
||||||
List<Job> jobs = appReviewJobMapper.review(SecurityUtils.getUserId(),jobQuery);
|
List<Job> jobs = appReviewJobMapper.review(SiteSecurityUtils.getUserId(),jobQuery);
|
||||||
return jobs;
|
return jobs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> reviewArray() {
|
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());
|
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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.ruoyi.cms.mapper.AppUserMapper;
|
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;
|
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.domain.vo.CompanyCardVO;
|
||||||
import com.ruoyi.cms.mapper.CompanyCardCollectionMapper;
|
import com.ruoyi.cms.mapper.CompanyCardCollectionMapper;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
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 org.springframework.beans.factory.annotation.Autowired;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -100,9 +100,9 @@ public class CompanyCardServiceImpl extends ServiceImpl<CompanyCardMapper,Compan
|
|||||||
CompanyCard companyCard = new CompanyCard();
|
CompanyCard companyCard = new CompanyCard();
|
||||||
companyCard.setStatus(1);
|
companyCard.setStatus(1);
|
||||||
List<CompanyCardVO> companyCards = companyCardMapper.selectCompanyCardListVO(companyCard);
|
List<CompanyCardVO> companyCards = companyCardMapper.selectCompanyCardListVO(companyCard);
|
||||||
if(SecurityUtils.isLogin()){
|
if(SiteSecurityUtils.isLogin()){
|
||||||
CompanyCardCollection companyCardCollection = new CompanyCardCollection();
|
CompanyCardCollection companyCardCollection = new CompanyCardCollection();
|
||||||
companyCardCollection.setUserId(SecurityUtils.getUserId());
|
companyCardCollection.setUserId(SiteSecurityUtils.getUserId());
|
||||||
List<CompanyCardCollection> companyCardCollections = companyCardCollectionMapper.selectCompanyCardCollectionList(companyCardCollection);
|
List<CompanyCardCollection> companyCardCollections = companyCardCollectionMapper.selectCompanyCardCollectionList(companyCardCollection);
|
||||||
for (CompanyCardVO item:companyCards){
|
for (CompanyCardVO item:companyCards){
|
||||||
for(CompanyCardCollection collection:companyCardCollections){
|
for(CompanyCardCollection collection:companyCardCollections){
|
||||||
@@ -119,7 +119,7 @@ public class CompanyCardServiceImpl extends ServiceImpl<CompanyCardMapper,Compan
|
|||||||
public void cardCollection(Long companyCardId) {
|
public void cardCollection(Long companyCardId) {
|
||||||
CompanyCardCollection companyCardCollection = new CompanyCardCollection();
|
CompanyCardCollection companyCardCollection = new CompanyCardCollection();
|
||||||
companyCardCollection.setCompanyCardId(companyCardId);
|
companyCardCollection.setCompanyCardId(companyCardId);
|
||||||
companyCardCollection.setUserId(SecurityUtils.getUserId());
|
companyCardCollection.setUserId(SiteSecurityUtils.getUserId());
|
||||||
companyCardCollectionService.save(companyCardCollection);
|
companyCardCollectionService.save(companyCardCollection);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -127,8 +127,8 @@ public class CompanyCardServiceImpl extends ServiceImpl<CompanyCardMapper,Compan
|
|||||||
public void cardCancel(Long companyCardId) {
|
public void cardCancel(Long companyCardId) {
|
||||||
CompanyCardCollection companyCardCollection = new CompanyCardCollection();
|
CompanyCardCollection companyCardCollection = new CompanyCardCollection();
|
||||||
companyCardCollection.setCompanyCardId(companyCardId);
|
companyCardCollection.setCompanyCardId(companyCardId);
|
||||||
companyCardCollection.setUserId(SecurityUtils.getUserId());
|
companyCardCollection.setUserId(SiteSecurityUtils.getUserId());
|
||||||
List<CompanyCardCollection> companyCardCollections = companyCardCollectionMapper.selectList(Wrappers.<CompanyCardCollection>lambdaQuery().eq(CompanyCardCollection::getCompanyCardId, companyCardId).eq(CompanyCardCollection::getUserId, SecurityUtils.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()));
|
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.Company;
|
||||||
import com.ruoyi.cms.domain.Job;
|
import com.ruoyi.cms.domain.Job;
|
||||||
import com.ruoyi.cms.mapper.JobMapper;
|
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 org.springframework.beans.factory.annotation.Autowired;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -93,7 +93,7 @@ public class CompanyCollectionServiceImpl extends ServiceImpl<CompanyCollectionM
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int companyCancel(Long companyId) {
|
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){
|
if(companyCollections.size()>0){
|
||||||
companyCollectionMapper.deleteBatchIds(companyCollections.stream().map(CompanyCollection::getId).collect(Collectors.toList()));
|
companyCollectionMapper.deleteBatchIds(companyCollections.stream().map(CompanyCollection::getId).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
@@ -104,7 +104,7 @@ public class CompanyCollectionServiceImpl extends ServiceImpl<CompanyCollectionM
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int companyCollection(Long companyId) {
|
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));
|
List<CompanyCollection> companyCollections = companyCollectionMapper.selectList(Wrappers.<CompanyCollection>lambdaQuery().eq(CompanyCollection::getCompanyId, companyId).eq(CompanyCollection::getUserId, userId));
|
||||||
if(companyCollections.size()>0){
|
if(companyCollections.size()>0){
|
||||||
companyCollectionMapper.deleteBatchIds(companyCollections.stream().map(CompanyCollection::getId).collect(Collectors.toList()));
|
companyCollectionMapper.deleteBatchIds(companyCollections.stream().map(CompanyCollection::getId).collect(Collectors.toList()));
|
||||||
@@ -118,7 +118,7 @@ public class CompanyCollectionServiceImpl extends ServiceImpl<CompanyCollectionM
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Company> collectionCompany() {
|
public List<Company> collectionCompany() {
|
||||||
List<Company> companies = companyCollectionMapper.collectionJob(SecurityUtils.getUserId());
|
List<Company> companies = companyCollectionMapper.collectionJob(SiteSecurityUtils.getUserId());
|
||||||
return companies;
|
return companies;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@ import com.ruoyi.cms.domain.query.LabelQuery;
|
|||||||
import com.ruoyi.cms.mapper.*;
|
import com.ruoyi.cms.mapper.*;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
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.Cell;
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
@@ -53,8 +53,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper,Company> imple
|
|||||||
public Company selectCompanyByCompanyId(Long companyId)
|
public Company selectCompanyByCompanyId(Long companyId)
|
||||||
{
|
{
|
||||||
Company company = companyMapper.selectById(companyId);
|
Company company = companyMapper.selectById(companyId);
|
||||||
if(SecurityUtils.isLogin()){
|
if(SiteSecurityUtils.isLogin()){
|
||||||
Long l = companyCollectionMapper.selectCount(Wrappers.<CompanyCollection>lambdaQuery().eq(CompanyCollection::getCompanyId, companyId).eq(CompanyCollection::getUserId, SecurityUtils.getUserId()));
|
Long l = companyCollectionMapper.selectCount(Wrappers.<CompanyCollection>lambdaQuery().eq(CompanyCollection::getCompanyId, companyId).eq(CompanyCollection::getUserId, SiteSecurityUtils.getUserId()));
|
||||||
company.setIsCollection(l>0?1:0);
|
company.setIsCollection(l>0?1:0);
|
||||||
}else {
|
}else {
|
||||||
company.setIsCollection(0);
|
company.setIsCollection(0);
|
||||||
@@ -241,7 +241,7 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper,Company> imple
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void register(Company company) {
|
public void register(Company company) {
|
||||||
Long userId = SecurityUtils.getUserId();
|
Long userId = SiteSecurityUtils.getUserId();
|
||||||
company.setUserId(userId);
|
company.setUserId(userId);
|
||||||
if(companyMapper.selectCount(Wrappers.<Company>lambdaQuery().eq(Company::getName, company.getName()).in(Company::getStatus,Arrays.asList(0,1)))>0){
|
if(companyMapper.selectCount(Wrappers.<Company>lambdaQuery().eq(Company::getName, company.getName()).in(Company::getStatus,Arrays.asList(0,1)))>0){
|
||||||
throw new ServiceException(company.getName()+"已经存在");
|
throw new ServiceException(company.getName()+"已经存在");
|
||||||
@@ -251,7 +251,7 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper,Company> imple
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Company registerStatus() {
|
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));
|
Company company = companyMapper.selectOne(Wrappers.<Company>lambdaQuery().eq(Company::getUserId, userId).orderByDesc(Company::getUpdateTime));
|
||||||
return company;
|
return company;
|
||||||
}
|
}
|
||||||
|
@@ -1,18 +1,16 @@
|
|||||||
package com.ruoyi.cms.service.impl;
|
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.ESJobDocument;
|
||||||
import com.ruoyi.cms.domain.Job;
|
import com.ruoyi.cms.domain.Job;
|
||||||
import com.ruoyi.cms.domain.query.ESJobSearch;
|
import com.ruoyi.cms.domain.query.ESJobSearch;
|
||||||
import com.ruoyi.cms.mapper.es.EsJobDocumentMapper;
|
import com.ruoyi.cms.mapper.es.EsJobDocumentMapper;
|
||||||
import com.ruoyi.cms.mapper.JobMapper;
|
import com.ruoyi.cms.mapper.JobMapper;
|
||||||
import com.ruoyi.cms.service.IESJobSearchService;
|
import com.ruoyi.cms.service.IESJobSearchService;
|
||||||
import com.ruoyi.cms.util.Base64Util;
|
|
||||||
import com.ruoyi.cms.util.ListUtil;
|
import com.ruoyi.cms.util.ListUtil;
|
||||||
import com.ruoyi.cms.util.StringUtil;
|
import com.ruoyi.cms.util.StringUtil;
|
||||||
import com.ruoyi.common.core.text.Convert;
|
import com.ruoyi.common.core.text.Convert;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
|
||||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||||
import org.dromara.easyes.core.biz.EsPageInfo;
|
import org.dromara.easyes.core.biz.EsPageInfo;
|
||||||
import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
|
import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
|
||||||
@@ -140,8 +138,8 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
ESJobSearch newSearch = new ESJobSearch();
|
ESJobSearch newSearch = new ESJobSearch();
|
||||||
BeanUtils.copyProperties(esJobSearch,newSearch);
|
BeanUtils.copyProperties(esJobSearch,newSearch);
|
||||||
//查询
|
//查询
|
||||||
if(SecurityUtils.isLogin()){
|
if(SiteSecurityUtils.isLogin()){
|
||||||
AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
|
AppUser appUser = appUserService.selectAppUserByUserId(SiteSecurityUtils.getUserId());
|
||||||
if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){
|
if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){
|
||||||
List<String> jobTitle = appUser.getJobTitle();
|
List<String> jobTitle = appUser.getJobTitle();
|
||||||
newSearch.setJobTitle(String.join(",", jobTitle));
|
newSearch.setJobTitle(String.join(",", jobTitle));
|
||||||
@@ -424,8 +422,8 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
Integer pageNum = jobQuery.getCurrent();
|
Integer pageNum = jobQuery.getCurrent();
|
||||||
Integer pageSize = jobQuery.getPageSize();
|
Integer pageSize = jobQuery.getPageSize();
|
||||||
LambdaEsQueryWrapper<ESJobDocument> wrapper = new LambdaEsQueryWrapper<>();
|
LambdaEsQueryWrapper<ESJobDocument> wrapper = new LambdaEsQueryWrapper<>();
|
||||||
// if(SecurityUtils.isLogin()){
|
// if(SiteSecurityUtils.isLogin()){
|
||||||
// AppUser appUser = appUserService.selectAppUserByUserId(SecurityUtils.getUserId());
|
// AppUser appUser = appUserService.selectAppUserByUserId(SiteSecurityUtils.getUserId());
|
||||||
// if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){
|
// if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){
|
||||||
// List<String> jobTitle = appUser.getJobTitle();
|
// List<String> jobTitle = appUser.getJobTitle();
|
||||||
// jobQuery.setJobTitle(String.join(",", jobTitle));
|
// 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.FairCollectionMapper;
|
||||||
import com.ruoyi.cms.mapper.JobFairMapper;
|
import com.ruoyi.cms.mapper.JobFairMapper;
|
||||||
import com.ruoyi.cms.service.IFairCollectionService;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -50,7 +50,7 @@ public class FairCollectionServiceImpl extends ServiceImpl<FairCollectionMapper,
|
|||||||
@Override
|
@Override
|
||||||
public List<FairCollection> selectFairCollectionList(FairCollection fairCollection)
|
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;
|
return fairCollections;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ public class FairCollectionServiceImpl extends ServiceImpl<FairCollectionMapper,
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public int fairCollection(Long fairId) {
|
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));
|
List<FairCollection> fairCollections = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getFairId, fairId).eq(FairCollection::getUserId, userId));
|
||||||
if(fairCollections.size()>0){
|
if(fairCollections.size()>0){
|
||||||
fairCollectionMapper.deleteBatchIds(fairCollections.stream().map(FairCollection::getId).collect(Collectors.toList()));
|
fairCollectionMapper.deleteBatchIds(fairCollections.stream().map(FairCollection::getId).collect(Collectors.toList()));
|
||||||
@@ -111,7 +111,7 @@ public class FairCollectionServiceImpl extends ServiceImpl<FairCollectionMapper,
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int cancel(Long fairId) {
|
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));
|
List<FairCollection> fairCollections = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getFairId, fairId).eq(FairCollection::getUserId, userId));
|
||||||
if(fairCollections.size()>0){
|
if(fairCollections.size()>0){
|
||||||
fairCollectionMapper.deleteBatchIds(fairCollections.stream().map(FairCollection::getId).collect(Collectors.toList()));
|
fairCollectionMapper.deleteBatchIds(fairCollections.stream().map(FairCollection::getId).collect(Collectors.toList()));
|
||||||
@@ -123,6 +123,6 @@ public class FairCollectionServiceImpl extends ServiceImpl<FairCollectionMapper,
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<JobFair> appCollectionFair(Integer type) {
|
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.cms.service.IFileService;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
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.IdUtils;
|
||||||
import com.ruoyi.common.utils.uuid.UUID;
|
import com.ruoyi.common.utils.uuid.UUID;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.domain.query.MineJobQuery;
|
||||||
import com.ruoyi.cms.mapper.*;
|
import com.ruoyi.cms.mapper.*;
|
||||||
import com.ruoyi.cms.service.IJobApplyService;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -98,17 +98,17 @@ public class JobApplyServiceImpl extends ServiceImpl<JobApplyMapper,JobApply> im
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Job> applyJob() {
|
public List<Job> applyJob() {
|
||||||
List<Job> jobs = jobApplyMapper.applyJob(SecurityUtils.getUserId());
|
List<Job> jobs = jobApplyMapper.applyJob(SiteSecurityUtils.getUserId());
|
||||||
return jobs;
|
return jobs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HashMap<String, Integer> statistics() {
|
public HashMap<String, Integer> statistics() {
|
||||||
Integer applyCount = jobApplyMapper.applyJob(SecurityUtils.getUserId()).size();
|
Integer applyCount = jobApplyMapper.applyJob(SiteSecurityUtils.getUserId()).size();
|
||||||
Integer collectionJobCount = jobCollectionMapper.collectionJob(SecurityUtils.getUserId()).size();
|
Integer collectionJobCount = jobCollectionMapper.collectionJob(SiteSecurityUtils.getUserId()).size();
|
||||||
Integer collectionCompanyCount = companyCollectionMapper.collectionJob(SecurityUtils.getUserId()).size();
|
Integer collectionCompanyCount = companyCollectionMapper.collectionJob(SiteSecurityUtils.getUserId()).size();
|
||||||
Integer jobReviewCount = appReviewJobMapper.review(SecurityUtils.getUserId(),new MineJobQuery()).size();
|
Integer jobReviewCount = appReviewJobMapper.review(SiteSecurityUtils.getUserId(),new MineJobQuery()).size();
|
||||||
Integer fairCollecitonCount = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getUserId, SecurityUtils.getUserId())).size();
|
Integer fairCollecitonCount = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getUserId, SiteSecurityUtils.getUserId())).size();
|
||||||
HashMap<String, Integer> map = new HashMap<>();
|
HashMap<String, Integer> map = new HashMap<>();
|
||||||
map.put("applyCount", applyCount);
|
map.put("applyCount", applyCount);
|
||||||
map.put("collectionCount", collectionJobCount+collectionCompanyCount);
|
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.JobApplyMapper;
|
||||||
import com.ruoyi.cms.mapper.JobMapper;
|
import com.ruoyi.cms.mapper.JobMapper;
|
||||||
import com.ruoyi.cms.service.IBussinessDictTypeService;
|
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 org.springframework.beans.factory.annotation.Autowired;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -106,7 +107,7 @@ public class JobCollectionServiceImpl extends ServiceImpl<JobCollectionMapper,Jo
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public int jobCollection(Long jobId) {
|
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));
|
List<JobCollection> jobCollections = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, userId));
|
||||||
if(jobCollections.size()>0){
|
if(jobCollections.size()>0){
|
||||||
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
||||||
@@ -122,7 +123,7 @@ public class JobCollectionServiceImpl extends ServiceImpl<JobCollectionMapper,Jo
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int cancel(Long jobId) {
|
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));
|
List<JobCollection> jobCollections = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, userId));
|
||||||
if(jobCollections.size()>0){
|
if(jobCollections.size()>0){
|
||||||
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
||||||
@@ -132,7 +133,7 @@ public class JobCollectionServiceImpl extends ServiceImpl<JobCollectionMapper,Jo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int apply(Long jobId) {
|
public int apply(Long jobId) {
|
||||||
Long userId = SecurityUtils.getUserId();
|
Long userId = SiteSecurityUtils.getUserId();
|
||||||
JobApply jobApply = new JobApply();
|
JobApply jobApply = new JobApply();
|
||||||
jobApply.setJobId(jobId);
|
jobApply.setJobId(jobId);
|
||||||
jobApply.setUserId(userId);
|
jobApply.setUserId(userId);
|
||||||
@@ -149,7 +150,7 @@ public class JobCollectionServiceImpl extends ServiceImpl<JobCollectionMapper,Jo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Job> collectionJob() {
|
public List<Job> collectionJob() {
|
||||||
List<Job> jobs = jobCollectionMapper.collectionJob(SecurityUtils.getUserId());
|
List<Job> jobs = jobCollectionMapper.collectionJob(SiteSecurityUtils.getUserId());
|
||||||
return jobs;
|
return jobs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -10,7 +10,7 @@ import com.ruoyi.cms.mapper.FairCollectionMapper;
|
|||||||
import com.ruoyi.cms.mapper.FairCompanyMapper;
|
import com.ruoyi.cms.mapper.FairCompanyMapper;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
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 org.springframework.beans.factory.annotation.Autowired;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -148,8 +148,8 @@ public class JobFairServiceImpl extends ServiceImpl<JobFairMapper,JobFair> imple
|
|||||||
List<Company> companyList = companyMapper.selectBatchIds(companyIds);
|
List<Company> companyList = companyMapper.selectBatchIds(companyIds);
|
||||||
jobFair.setCompanyList(companyList);
|
jobFair.setCompanyList(companyList);
|
||||||
}
|
}
|
||||||
if(SecurityUtils.isLogin()){
|
if(SiteSecurityUtils.isLogin()){
|
||||||
Long count = fairCollectionMapper.selectCount(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getFairId, fairId).eq(FairCollection::getUserId, SecurityUtils.getUserId()));
|
Long count = fairCollectionMapper.selectCount(Wrappers.<FairCollection>lambdaQuery().eq(FairCollection::getFairId, fairId).eq(FairCollection::getUserId, SiteSecurityUtils.getUserId()));
|
||||||
jobFair.setIsCollection(count>0?1:null);
|
jobFair.setIsCollection(count>0?1:null);
|
||||||
}
|
}
|
||||||
return jobFair;
|
return jobFair;
|
||||||
@@ -159,10 +159,10 @@ public class JobFairServiceImpl extends ServiceImpl<JobFairMapper,JobFair> imple
|
|||||||
public List<JobFair> appList(JobFair jobFair) {
|
public List<JobFair> appList(JobFair jobFair) {
|
||||||
List<JobFair> fairCompanies = jobFairMapper.appList(jobFair);
|
List<JobFair> fairCompanies = jobFairMapper.appList(jobFair);
|
||||||
if(fairCompanies.isEmpty()){return new ArrayList<>();}
|
if(fairCompanies.isEmpty()){return new ArrayList<>();}
|
||||||
if(SecurityUtils.isLogin()){
|
if(SiteSecurityUtils.isLogin()){
|
||||||
//收藏
|
//收藏
|
||||||
Set<Long> collectionIds = fairCollectionMapper.selectList(Wrappers.<FairCollection>lambdaQuery()
|
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())))
|
.in(FairCollection::getFairId, fairCompanies.stream().map(JobFair::getJobFairId).collect(Collectors.toList())))
|
||||||
.stream().map(FairCollection::getFairId).collect(Collectors.toSet());
|
.stream().map(FairCollection::getFairId).collect(Collectors.toSet());
|
||||||
for (JobFair j : fairCompanies) {
|
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.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.Job;
|
||||||
import com.ruoyi.cms.domain.JobApply;
|
import com.ruoyi.cms.domain.JobApply;
|
||||||
import com.ruoyi.cms.domain.JobCollection;
|
import com.ruoyi.cms.domain.JobCollection;
|
||||||
import com.ruoyi.cms.mapper.AppUserMapper;
|
import com.ruoyi.cms.mapper.AppUserMapper;
|
||||||
import com.ruoyi.cms.mapper.JobApplyMapper;
|
import com.ruoyi.cms.mapper.JobApplyMapper;
|
||||||
import com.ruoyi.cms.mapper.JobCollectionMapper;
|
import com.ruoyi.cms.mapper.JobCollectionMapper;
|
||||||
import com.ruoyi.cms.service.IJobCollectionService;
|
|
||||||
import com.ruoyi.cms.service.IJobRecommentService;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -100,7 +99,7 @@ public class JobRecommentServiceImpl extends ServiceImpl<JobCollectionMapper,Job
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public int jobCollection(Long jobId) {
|
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));
|
List<JobCollection> jobCollections = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, userId));
|
||||||
if(jobCollections.size()>0){
|
if(jobCollections.size()>0){
|
||||||
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
||||||
@@ -116,7 +115,7 @@ public class JobRecommentServiceImpl extends ServiceImpl<JobCollectionMapper,Job
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int cancel(Long jobId) {
|
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));
|
List<JobCollection> jobCollections = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery().eq(JobCollection::getJobId, jobId).eq(JobCollection::getUserId, userId));
|
||||||
if(jobCollections.size()>0){
|
if(jobCollections.size()>0){
|
||||||
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
jobCollectionMapper.deleteBatchIds(jobCollections.stream().map(JobCollection::getId).collect(Collectors.toList()));
|
||||||
@@ -126,7 +125,7 @@ public class JobRecommentServiceImpl extends ServiceImpl<JobCollectionMapper,Job
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int apply(Long jobId) {
|
public int apply(Long jobId) {
|
||||||
Long userId = SecurityUtils.getUserId();
|
Long userId = SiteSecurityUtils.getUserId();
|
||||||
JobApply jobApply = new JobApply();
|
JobApply jobApply = new JobApply();
|
||||||
jobApply.setJobId(jobId);
|
jobApply.setJobId(jobId);
|
||||||
jobApply.setUserId(userId);
|
jobApply.setUserId(userId);
|
||||||
@@ -143,13 +142,13 @@ public class JobRecommentServiceImpl extends ServiceImpl<JobCollectionMapper,Job
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Job> collectionJob() {
|
public List<Job> collectionJob() {
|
||||||
List<Job> jobs = jobCollectionMapper.collectionJob(SecurityUtils.getUserId());
|
List<Job> jobs = jobCollectionMapper.collectionJob(SiteSecurityUtils.getUserId());
|
||||||
return jobs;
|
return jobs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String competitiveness(Long jobId) {
|
public String competitiveness(Long jobId) {
|
||||||
AppUser appUser = appUserMapper.selectById(SecurityUtils.getUserId());
|
AppUser appUser = appUserMapper.selectById(SiteSecurityUtils.getUserId());
|
||||||
String education = appUser.getEducation();
|
String education = appUser.getEducation();
|
||||||
return "90.5";
|
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.domain.entity.JobTitle;
|
||||||
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
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 com.ruoyi.common.utils.spring.SpringUtils;
|
||||||
import org.dromara.easyes.core.biz.EsPageInfo;
|
import org.dromara.easyes.core.biz.EsPageInfo;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -369,22 +369,22 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
|||||||
Company company = companyMapper.selectById(job.getCompanyId());
|
Company company = companyMapper.selectById(job.getCompanyId());
|
||||||
job.setCompany(company);
|
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);
|
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);
|
job.setIsCollection(collectionCount>0?1:0);
|
||||||
//todo asyn
|
//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()){
|
if(!appReviewJobs.isEmpty()){
|
||||||
appReviewJobMapper.deleteBatchIds(appReviewJobs.stream().map(AppReviewJob::getId).collect(Collectors.toList()));
|
appReviewJobMapper.deleteBatchIds(appReviewJobs.stream().map(AppReviewJob::getId).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
AppReviewJob appReviewJob = new AppReviewJob();
|
AppReviewJob appReviewJob = new AppReviewJob();
|
||||||
appReviewJob.setUserId(SecurityUtils.getUserId());
|
appReviewJob.setUserId(SiteSecurityUtils.getUserId());
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
String formattedDate = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
String formattedDate = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
appReviewJob.setReviewDate(formattedDate);
|
appReviewJob.setReviewDate(formattedDate);
|
||||||
@@ -749,10 +749,10 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
|||||||
|
|
||||||
private List<ESJobDocument> userCollection(List<ESJobDocument> jobs){
|
private List<ESJobDocument> userCollection(List<ESJobDocument> jobs){
|
||||||
if(jobs.isEmpty()){return new ArrayList<>();}
|
if(jobs.isEmpty()){return new ArrayList<>();}
|
||||||
if(SecurityUtils.isLogin()){
|
if(SiteSecurityUtils.isLogin()){
|
||||||
//收藏
|
//收藏
|
||||||
Set<Long> collectionIds = jobCollectionMapper.selectList(Wrappers.<JobCollection>lambdaQuery()
|
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())))
|
.in(JobCollection::getJobId, jobs.stream().map(ESJobDocument::getJobId).collect(Collectors.toList())))
|
||||||
.stream().map(JobCollection::getJobId).collect(Collectors.toSet());
|
.stream().map(JobCollection::getJobId).collect(Collectors.toSet());
|
||||||
for (ESJobDocument j : jobs) {
|
for (ESJobDocument j : jobs) {
|
||||||
@@ -767,7 +767,7 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
|||||||
@Override
|
@Override
|
||||||
public void publishJob(Job job) {
|
public void publishJob(Job job) {
|
||||||
job.setIsPublish(0);
|
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));
|
Company company = companyMapper.selectOne(Wrappers.<Company>lambdaQuery().eq(Company::getUserId, userId).eq(Company::getStatus, 1));
|
||||||
if(Objects.isNull(company)){
|
if(Objects.isNull(company)){
|
||||||
throw new ServiceException("请先完成招聘企业登记");
|
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>
|
<if test="idCard != null and idCard != ''"> and id_card like concat('%', CAST(#{idCard} AS VARCHAR), '%')</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</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 * FROM app_user WHERE user_id IN (
|
||||||
select DISTINCT au.USER_ID from APP_USER au
|
select DISTINCT au.USER_ID from APP_USER au
|
||||||
INNER JOIN JOB_APPLY ja ON ja.USER_ID = au.USER_ID
|
INNER JOIN JOB_APPLY ja ON ja.USER_ID = au.USER_ID
|
||||||
|
@@ -2,7 +2,7 @@ package com.ruoyi.common.constant;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 缓存的key 常量
|
* 缓存的key 常量
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class CacheConstants
|
public class CacheConstants
|
||||||
@@ -11,11 +11,12 @@ public class CacheConstants
|
|||||||
* 登录用户 redis key
|
* 登录用户 redis key
|
||||||
*/
|
*/
|
||||||
public static final String LOGIN_TOKEN_KEY = "login_tokens:";
|
public static final String LOGIN_TOKEN_KEY = "login_tokens:";
|
||||||
|
public static final String SITE_LOGIN_TOKEN_KEY = "site_login_tokens:";
|
||||||
/**
|
/**
|
||||||
* 验证码 redis key
|
* 验证码 redis key
|
||||||
*/
|
*/
|
||||||
public static final String CAPTCHA_CODE_KEY = "captcha_codes:";
|
public static final String CAPTCHA_CODE_KEY = "captcha_codes:";
|
||||||
|
public static final String SMG_CODE_KEY = "smg_codes:";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 参数管理 cache key
|
* 参数管理 cache key
|
||||||
@@ -42,4 +43,5 @@ public class CacheConstants
|
|||||||
* 登录账户密码错误次数 redis key
|
* 登录账户密码错误次数 redis key
|
||||||
*/
|
*/
|
||||||
public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
|
public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
|
||||||
|
public static final String PWD_ERR_CNT_KEY_SITE = "site:pwd_err_cnt:";
|
||||||
}
|
}
|
||||||
|
@@ -5,7 +5,7 @@ import io.jsonwebtoken.Claims;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用常量信息
|
* 通用常量信息
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class Constants
|
public class Constants
|
||||||
@@ -109,6 +109,10 @@ public class Constants
|
|||||||
* 令牌前缀
|
* 令牌前缀
|
||||||
*/
|
*/
|
||||||
public static final String LOGIN_USER_KEY = "login_user_key";
|
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
|
* 用户ID
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
package com.ruoyi.cms.domain;
|
package com.ruoyi.common.core.domain.entity;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -109,4 +109,8 @@ public class AppUser extends BaseEntity
|
|||||||
|
|
||||||
@ApiModelProperty("是否企业用户 0是,1否")
|
@ApiModelProperty("是否企业用户 0是,1否")
|
||||||
private String isCompanyUser;
|
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.ServletException;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||||
import org.springframework.security.core.context.SecurityContextHolder;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
@@ -27,11 +31,14 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
|
|||||||
@Autowired
|
@Autowired
|
||||||
private TokenService tokenService;
|
private TokenService tokenService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TokenSiteService tokenSiteService;
|
||||||
@Override
|
@Override
|
||||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
|
||||||
throws ServletException, IOException
|
throws ServletException, IOException
|
||||||
{
|
{
|
||||||
LoginUser loginUser = tokenService.getLoginUser(request);
|
LoginUser loginUser = tokenService.getLoginUser(request);
|
||||||
|
LoginSiteUser loginSiteUser = tokenSiteService.getLoginSiteUser(request);
|
||||||
if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication()))
|
if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication()))
|
||||||
{
|
{
|
||||||
tokenService.verifyToken(loginUser);
|
tokenService.verifyToken(loginUser);
|
||||||
@@ -39,6 +46,13 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
|
|||||||
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
|
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
|
||||||
SecurityContextHolder.getContext().setAuthentication(authenticationToken);
|
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);
|
chain.doFilter(request, response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -4,6 +4,9 @@ import java.io.IOException;
|
|||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
@@ -29,7 +32,8 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler
|
|||||||
{
|
{
|
||||||
@Autowired
|
@Autowired
|
||||||
private TokenService tokenService;
|
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")));
|
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"))));
|
ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.success(MessageUtils.message("user.logout.success"))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
package com.ruoyi.framework.web.service;
|
package com.ruoyi.framework.web.service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.authentication.AuthenticationManager;
|
import org.springframework.security.authentication.AuthenticationManager;
|
||||||
import org.springframework.security.authentication.BadCredentialsException;
|
import org.springframework.security.authentication.BadCredentialsException;
|
||||||
@@ -52,6 +55,8 @@ public class SysLoginService
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISysConfigService configService;
|
private ISysConfigService configService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TokenSiteService tokenSiteService;
|
||||||
/**
|
/**
|
||||||
* 登录验证
|
* 登录验证
|
||||||
*
|
*
|
||||||
@@ -99,41 +104,24 @@ public class SysLoginService
|
|||||||
// 生成token
|
// 生成token
|
||||||
return tokenService.createToken(loginUser);
|
return tokenService.createToken(loginUser);
|
||||||
}
|
}
|
||||||
|
//模拟登录
|
||||||
public String loginApp(String username, String password)
|
public String loginApp(String username, String password)
|
||||||
{
|
{
|
||||||
// 登录前置校验
|
|
||||||
loginPreCheck(username, password);
|
AppUser appUser = userService.selectAppUserById(1L);
|
||||||
// 用户验证
|
LoginSiteUser loginSiteUser = new LoginSiteUser();
|
||||||
Authentication authentication = null;
|
loginSiteUser.setUserId(appUser.getUserId());
|
||||||
try
|
loginSiteUser.setUser(appUser);
|
||||||
{
|
recordLoginInfo(appUser);
|
||||||
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();
|
|
||||||
}
|
|
||||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
||||||
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
|
recordLoginInfo(appUser);
|
||||||
recordLoginInfo(loginUser.getUserId());
|
|
||||||
// 生成token
|
// 生成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 用户名
|
* @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 java.util.List;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
|
|
||||||
@@ -126,4 +127,6 @@ public interface SysUserMapper
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public SysUser checkEmailUnique(String email);
|
public SysUser checkEmailUnique(String email);
|
||||||
|
|
||||||
|
AppUser selectAppUserById(long id);
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
package com.ruoyi.system.service;
|
package com.ruoyi.system.service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -203,4 +205,6 @@ public interface ISysUserService
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
|
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.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import javax.validation.Validator;
|
import javax.validation.Validator;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.entity.AppUser;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -547,4 +549,9 @@ public class SysUserServiceImpl implements ISysUserService
|
|||||||
}
|
}
|
||||||
return successMsg.toString();
|
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 id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
|
||||||
select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
|
select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectAppUserById" resultType="com.ruoyi.common.core.domain.entity.AppUser">
|
||||||
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
|
select * from app_user where user_id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
|
||||||
insert into sys_user(
|
insert into sys_user(
|
||||||
<if test="userId != null and userId != 0">user_id,</if>
|
<if test="userId != null and userId != 0">user_id,</if>
|
||||||
<if test="deptId != null and deptId != 0">dept_id,</if>
|
<if test="deptId != null and deptId != 0">dept_id,</if>
|
||||||
|
Reference in New Issue
Block a user