Commit 40c29256 authored by 王夏晖's avatar 王夏晖

用户与项目权限配置

parent b1b2c6ab
...@@ -22,8 +22,8 @@ public interface BusDeviceRepository extends BaseMapper<BusDevice> { ...@@ -22,8 +22,8 @@ public interface BusDeviceRepository extends BaseMapper<BusDevice> {
* 分页查询 busDevice * 分页查询 busDevice
* *
*/ */
@Select("<script>select * from bus_device where 1=1 and pro_id = #{proId} " + @Select("<script>select a.*,b.FAC_NM from bus_device a left join bus_factory b on a.fac_id = b.fac_id where 1=1 and a.pro_id = #{proId} " +
"<if test='devTpId != null'> and dev_tp_id = #{devTpId}</if>" "<if test='devTpId != null'> and a.dev_tp_id = #{devTpId}</if>"
+ "</script>") + "</script>")
List<Map<String,Object>> queryBusDevices(BusDevice busDevice); List<Map<String,Object>> queryBusDevices(BusDevice busDevice);
......
...@@ -2,20 +2,32 @@ package org.rcisoft.business.manage.controller; ...@@ -2,20 +2,32 @@ package org.rcisoft.business.manage.controller;
/*固定导入*/ /*固定导入*/
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import io.jsonwebtoken.Claims;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.rcisoft.business.manage.entity.BusProject; import org.rcisoft.business.manage.entity.BusProject;
import org.rcisoft.business.manage.service.BusProjectService; import org.rcisoft.business.manage.service.BusProjectService;
import org.rcisoft.business.system.user.entity.SysUser;
import org.rcisoft.core.constant.MessageConstant; import org.rcisoft.core.constant.MessageConstant;
import org.rcisoft.core.controller.PaginationController; import org.rcisoft.core.controller.PaginationController;
import org.rcisoft.core.model.GridModel; import org.rcisoft.core.model.GridModel;
import org.rcisoft.core.model.PersistModel; import org.rcisoft.core.model.PersistModel;
import org.rcisoft.core.result.Result; import org.rcisoft.core.result.Result;
import org.rcisoft.core.util.JwtUtil;
import org.rcisoft.core.util.UserUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* Created by on 2018-5-2 16:09:30. * Created by on 2018-5-2 16:09:30.
...@@ -76,4 +88,16 @@ public class BusProjectController extends PaginationController<BusProject> { ...@@ -76,4 +88,16 @@ public class BusProjectController extends PaginationController<BusProject> {
busProjectServiceImpl.findAllByPagination(getPaginationUtility(), busProject); busProjectServiceImpl.findAllByPagination(getPaginationUtility(), busProject);
return getGridModelResponse(); return getGridModelResponse();
} }
@ApiOperation(value="查询用户权限项目", notes="查询用户权限项目")
@GetMapping(value = "/queryBusProjectByUser")
public Result queryBusProjectByUser() {
String userId = UserUtil.getUserInfoProp(getToken(),UserUtil.USER_ID);
Map<String,Object> map = new HashMap<>();
map.put("user_id",userId);
return Result.builder(new PersistModel(1),
MessageConstant.MESSAGE_ALERT_SUCCESS,
MessageConstant.MESSAGE_ALERT_ERROR,
busProjectServiceImpl.queryBusProjectByUser(map));
}
} }
package org.rcisoft.business.manage.controller;
/*固定导入*/
import io.swagger.annotations.ApiOperation;
import org.rcisoft.business.manage.entity.SysUserProject;
import org.rcisoft.business.manage.service.SysUserProjectService;
import org.rcisoft.core.constant.MessageConstant;
import org.rcisoft.core.controller.PaginationController;
import org.rcisoft.core.model.PersistModel;
import org.rcisoft.core.result.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* Created by on 2018-5-10 13:29:46.
*/
@RestController
@RequestMapping("sysuserproject")
public class SysUserProjectController extends PaginationController<SysUserProject> {
@Autowired
private SysUserProjectService sysUserProjectServiceImpl;
@ApiOperation(value="配置用户与项目关联关系", notes="配置用户与项目关联关系")
@PostMapping(value = "/add")
public Result add(@RequestParam String userId,@RequestParam String proIds) {
String[] proArr = proIds.split(",");
PersistModel data = sysUserProjectServiceImpl.save(userId,proArr);
return Result.builder(data,
MessageConstant.MESSAGE_ALERT_SUCCESS,
MessageConstant.MESSAGE_ALERT_ERROR,
null);
}
@ApiOperation(value="查询用户与项目关联关系", notes="查询用户与项目关联关系")
@PostMapping(value = "/detail")
public List<Map<String,Object>> detail(@RequestParam String userId) {
SysUserProject sup = new SysUserProject();
sup.setUserId(userId);
return sysUserProjectServiceImpl.querySysUserPro(sup);
}
}
...@@ -33,5 +33,15 @@ public interface ProjectRepository extends BaseMapper<BusProject> { ...@@ -33,5 +33,15 @@ public interface ProjectRepository extends BaseMapper<BusProject> {
@Select("<script>select * from bus_device where pro_id = #{pro_id}" + @Select("<script>select * from bus_device where pro_id = #{pro_id}" +
"</script>") "</script>")
List<Map<String,Object>> queryDeivceByProject(Map<String,Object> map); List<Map<String,Object>> queryDeivceByProject(Map<String,Object> map);
/**
* 查询用户权限项目
* @param map
* @return
*/
@Select("<script>select a.* from bus_project a left join sys_user_project b on a.PRO_ID = b.PRO_ID\n" +
"where b.USER_ID = #{user_id}" +
"</script>")
List<Map<String,Object>> queryBusProjectByUser(Map<String,Object> map);
} }
package org.rcisoft.business.manage.dao;
import org.rcisoft.business.manage.entity.SysUserProject;
import org.rcisoft.core.base.BaseMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* Created with on 2018-5-10 13:29:46.
*/
@Repository
public interface SysUserProjectRepository extends BaseMapper<SysUserProject> {
/**
* 查询用户关联项目
* @param sysUserProject
* @return
*/
List<Map<String,Object>> querySysUserPro(SysUserProject sysUserProject);
}
package org.rcisoft.business.manage.entity;
import lombok.*;
import org.rcisoft.core.entity.IdNotDataEntity;
import javax.persistence.*;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* Created with on 2018-5-10 13:29:45.
*/
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "sys_user_project")
public class SysUserProject{
private String userId;
private String proId;
}
...@@ -50,6 +50,6 @@ public interface BusProjectService { ...@@ -50,6 +50,6 @@ public interface BusProjectService {
BusProject busProject); BusProject busProject);
List<Map<String,Object>> queryBusProjectByUser(Map<String,Object> map);
} }
package org.rcisoft.business.manage.service;
import org.rcisoft.business.manage.entity.SysUserProject;
import org.rcisoft.core.model.PersistModel;
import java.util.List;
import java.util.Map;
/**
* Created by on 2018-5-10 13:29:46.
*/
public interface SysUserProjectService {
/**
* 配置用户与项目的关联关系
* @return
*/
PersistModel save(String userId,String[] proIds);
/**
* 查询用户关联项目
* @param sysUserProject
* @return
*/
List<Map<String,Object>> querySysUserPro(SysUserProject sysUserProject);
}
...@@ -99,4 +99,9 @@ public class BusProjectServiceImpl implements BusProjectService { ...@@ -99,4 +99,9 @@ public class BusProjectServiceImpl implements BusProjectService {
return projectRepository.queryBusProjects(busProject); return projectRepository.queryBusProjects(busProject);
} }
@Override
public List<Map<String, Object>> queryBusProjectByUser(Map<String, Object> map) {
return projectRepository.queryBusProjectByUser(map);
}
} }
package org.rcisoft.business.manage.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.rcisoft.business.manage.dao.SysUserProjectRepository;
import org.rcisoft.business.manage.entity.SysUserProject;
import org.rcisoft.business.manage.service.SysUserProjectService;
import org.rcisoft.core.model.PersistModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
import java.util.Map;
/**
* Created by on 2018-5-10 13:29:46.
*/
@Service
@Transactional(readOnly = true,propagation = Propagation.NOT_SUPPORTED)
@Slf4j
public class SysUserProjectServiceImpl implements SysUserProjectService {
@Autowired
private SysUserProjectRepository sysUserProjectRepository;
/**
* 配置用户与项目关联关系
* @return
*/
@Transactional
@Override
public PersistModel save(String userId,String[] proIds) {
int line = 1;
try{
//先删除关系后重新配置
Example example = new Example(SysUserProject.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId",userId);
sysUserProjectRepository.deleteByExample(example);
if(proIds.length>0){
for(String proId : proIds){
SysUserProject sup = new SysUserProject();
sup.setUserId(userId);
sup.setProId(proId);
sysUserProjectRepository.insertSelective(sup);
}
}
}catch(Exception e){
e.printStackTrace();
line = 0;
}
return new PersistModel(line);
}
@Override
public List<Map<String, Object>> querySysUserPro(SysUserProject sysUserProject) {
return sysUserProjectRepository.querySysUserPro(sysUserProject);
}
}
...@@ -12,6 +12,7 @@ import org.springframework.security.core.context.SecurityContextHolder; ...@@ -12,6 +12,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.support.JstlUtils;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
......
...@@ -51,6 +51,8 @@ public class JwtUtil { ...@@ -51,6 +51,8 @@ public class JwtUtil {
JwtUser jwtUser = (JwtUser)userDetails; JwtUser jwtUser = (JwtUser)userDetails;
Map<String,Object> map = new HashedMap(); Map<String,Object> map = new HashedMap();
map.put(userDetails.getUsername(),userDetails); map.put(userDetails.getUsername(),userDetails);
map.put(UserUtil.USER_ID,jwtUser.getBusinessId());
map.put(UserUtil.USER_USERNAME,jwtUser.getUsername());
map.put("role",jwtUser.getAuthorities()); map.put("role",jwtUser.getAuthorities());
String token = jwtBean.generateToken(userDetails.getUsername(),map); String token = jwtBean.generateToken(userDetails.getUsername(),map);
return token; return token;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment