修复管理员只能有一个的bug
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
package com.fjy.spring.controller;
|
||||
|
||||
import com.fjy.spring.domain.TbAdmin;
|
||||
import com.fjy.spring.domain.TbLog;
|
||||
import com.fjy.spring.domain.TbUser;
|
||||
import com.fjy.spring.properties.ServerProperties;
|
||||
import com.fjy.spring.service.AdminService;
|
||||
import com.fjy.spring.service.LogService;
|
||||
import com.fjy.spring.service.UserService;
|
||||
import com.fjy.spring.untils.CodingUtil;
|
||||
@@ -10,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -19,6 +22,7 @@ import java.math.BigInteger;
|
||||
import java.sql.Timestamp;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Optional;
|
||||
|
||||
import static com.fjy.spring.constant.GlobalConstant.USER_SESSION_KEY;
|
||||
|
||||
|
||||
@@ -1,21 +1,40 @@
|
||||
package com.fjy.spring.interceptor;
|
||||
|
||||
import com.fjy.spring.constant.GlobalConstant;
|
||||
import com.fjy.spring.domain.TbAdmin;
|
||||
import com.fjy.spring.domain.TbUser;
|
||||
import com.fjy.spring.service.AdminService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.web.context.support.WebApplicationContextUtils;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Optional;
|
||||
|
||||
@Slf4j
|
||||
public class AdminInterceptor implements HandlerInterceptor {
|
||||
@Autowired
|
||||
private AdminService adminService;
|
||||
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
TbUser user = (TbUser)request.getSession().getAttribute(GlobalConstant.USER_SESSION_KEY);
|
||||
if (!user.getColname().equals("root")){
|
||||
response.sendRedirect("/cms/home");
|
||||
return false;
|
||||
log.info(user.getColuserid()+"");
|
||||
if (adminService == null) {//解决service为null无法注入问题
|
||||
BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
|
||||
adminService = (AdminService) factory.getBean("adminService");
|
||||
}
|
||||
return true;
|
||||
Optional<TbAdmin> admin = adminService.findAdminById(user.getColuserid());
|
||||
|
||||
if (!admin.isPresent()){
|
||||
response.sendRedirect("/cms/home");
|
||||
return false;
|
||||
}else
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.fjy.spring.interceptor;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.fjy.spring.repository;
|
||||
import com.fjy.spring.domain.TbAdmin;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface TbAdminRepository extends JpaRepository<TbAdmin,Integer> {
|
||||
import java.util.Optional;
|
||||
|
||||
public interface TbAdminRepository extends JpaRepository<TbAdmin,Integer> {
|
||||
Optional<TbAdmin> findByUserid(Integer userid);
|
||||
}
|
||||
|
||||
18
src/main/java/com/fjy/spring/service/AdminService.java
Normal file
18
src/main/java/com/fjy/spring/service/AdminService.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package com.fjy.spring.service;
|
||||
|
||||
import com.fjy.spring.domain.TbAdmin;
|
||||
import com.fjy.spring.repository.TbAdminRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
public class AdminService {
|
||||
@Autowired
|
||||
private TbAdminRepository adminRepository;
|
||||
|
||||
public Optional<TbAdmin> findAdminById(Integer id){
|
||||
return adminRepository.findByUserid(id);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user