Commit f5273af5 by zzrdark

1.增加登陆,等

parent 1cfe83c4
...@@ -92,9 +92,9 @@ CREATE TABLE `sys_dept` ( ...@@ -92,9 +92,9 @@ CREATE TABLE `sys_dept` (
`dept_id` bigint(20) NOT NULL, `dept_id` bigint(20) NOT NULL,
`parent_id` bigint(20) DEFAULT NULL COMMENT '上级部门ID,一级部门为0', `parent_id` bigint(20) DEFAULT NULL COMMENT '上级部门ID,一级部门为0',
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门名称', `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门名称',
`order_num` int(11) DEFAULT NULL COMMENT '排序',
`del_flag` int(11) DEFAULT NULL COMMENT '是否删除 -1:已删除 0:正常', `del_flag` int(11) DEFAULT NULL COMMENT '是否删除 -1:已删除 0:正常',
`distributor_num` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '渠道商号', `distributor_num` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '渠道商号',
`remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '描述',
PRIMARY KEY (`dept_id`) USING BTREE PRIMARY KEY (`dept_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '部门表' ROW_FORMAT = Dynamic; ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '部门表' ROW_FORMAT = Dynamic;
......
...@@ -5,6 +5,7 @@ import com.mx.cneeds.server.entity.SysDeptEntity; ...@@ -5,6 +5,7 @@ import com.mx.cneeds.server.entity.SysDeptEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 部门表 * 部门表
...@@ -16,6 +17,12 @@ import java.util.List; ...@@ -16,6 +17,12 @@ import java.util.List;
@Mapper @Mapper
public interface SysDeptDao extends BaseMapper<SysDeptEntity> { public interface SysDeptDao extends BaseMapper<SysDeptEntity> {
List<SysDeptEntity> queryListByPage(Map<String, Object> params);
List<SysDeptEntity> queryList(Map<String, Object> params);
Long queryCount(Map<String, Object> params);
/** /**
* 查询子部门ID列表 * 查询子部门ID列表
......
...@@ -21,4 +21,5 @@ public interface SysUserRoleDao extends BaseMapper<SysUserRoleEntity> { ...@@ -21,4 +21,5 @@ public interface SysUserRoleDao extends BaseMapper<SysUserRoleEntity> {
*/ */
List<Long> queryRoleIdList(Long userId); List<Long> queryRoleIdList(Long userId);
} }
package com.mx.cneeds.server.entity; package com.mx.cneeds.server.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
...@@ -33,10 +34,6 @@ public class SysDeptEntity implements Serializable { ...@@ -33,10 +34,6 @@ public class SysDeptEntity implements Serializable {
*/ */
private String name; private String name;
/** /**
* 排序
*/
private Integer orderNum;
/**
* 是否删除 -1:已删除 0:正常 * 是否删除 -1:已删除 0:正常
*/ */
private Integer delFlag; private Integer delFlag;
...@@ -44,5 +41,14 @@ public class SysDeptEntity implements Serializable { ...@@ -44,5 +41,14 @@ public class SysDeptEntity implements Serializable {
* 渠道商号 * 渠道商号
*/ */
private String distributorNum; private String distributorNum;
/**
* 描述
*/
private String remark;
/**
* 上级部门名称
*/
@TableField(exist=false)
private String parentName;
} }
...@@ -8,14 +8,41 @@ ...@@ -8,14 +8,41 @@
<result property="deptId" column="dept_id"/> <result property="deptId" column="dept_id"/>
<result property="parentId" column="parent_id"/> <result property="parentId" column="parent_id"/>
<result property="name" column="name"/> <result property="name" column="name"/>
<result property="orderNum" column="order_num"/>
<result property="delFlag" column="del_flag"/> <result property="delFlag" column="del_flag"/>
<result property="distributorNum" column="distributor_num"/> <result property="distributorNum" column="distributor_num"/>
<result property="remark" column="remark"/>
</resultMap> </resultMap>
<select id="queryListByPage" resultType="com.mx.cneeds.server.entity.SysDeptEntity">
select t1.* from sys_dept t1 where
t1.del_flag = 0
<if test="sql_filter != null">
and ${sql_filter}
</if>
limit ${startIndex},${limit}
</select>
<select id="queryList" resultType="com.mx.cneeds.server.entity.SysDeptEntity">
select t1.* from sys_dept t1 where
t1.del_flag = 0
<if test="sql_filter != null">
and ${sql_filter}
</if>
</select>
<select id="queryCount" resultType="long">
select count(1) from sys_dept t1 where
t1.del_flag = 0
<if test="sql_filter != null">
and ${sql_filter}
</if>
</select>
<select id="queryDetpIdList" resultType="long"> <select id="queryDetpIdList" resultType="long">
select dept_id from sys_dept where parent_id = #{value} and del_flag = 0 select dept_id from sys_dept where parent_id = #{value} and del_flag = 0
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -14,4 +14,6 @@ ...@@ -14,4 +14,6 @@
select role_id from sys_user_role where user_id = #{value} select role_id from sys_user_role where user_id = #{value}
</select> </select>
</mapper> </mapper>
\ No newline at end of file
package com.mx.cneeds.common.dto;
import lombok.Data;
/**
* @ClassName DepartmentVO
* @Author zzrdark
* @Date 2020-03-10 20:14
* @Description TODO
**/
@Data
public class DepartmentDto {
private Long deptId;
/**
* 上级部门ID,一级部门为0
*/
private Long parentId;
private String name;
/**
* 是否删除 -1:已删除 0:正常
*/
private Integer delFlag;
/**
* 渠道商号
*/
private String distributorNum;
/**
* 描述
*/
private String remark;
}
package com.mx.cneeds.common.vo;
import lombok.Data;
import java.util.List;
/**
* @ClassName CascaderVo
* @Author zzrdark
* @Date 2020-03-11 19:44
* @Description TODO
**/
@Data
public class CascaderVo {
private Long value;
private String label;
private Long pid;
private List<CascaderVo> children;
public CascaderVo(Long value, String label, Long pid) {
this.value = value;
this.label = label;
this.pid = pid;
}
}
...@@ -10,6 +10,23 @@ import lombok.Data; ...@@ -10,6 +10,23 @@ import lombok.Data;
**/ **/
@Data @Data
public class DepartmentVo { public class DepartmentVo {
private String deptName; private Long deptId;
/**
* 上级部门ID,一级部门为0
*/
private Long parentId;
private String name;
/**
* 是否删除 -1:已删除 0:正常
*/
private Integer delFlag;
/**
* 渠道商号
*/
private String distributorNum;
/**
* 描述
*/
private String remark; private String remark;
} }
package com.mx.cneeds.common.generate;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.mx.cneeds.common.vo.CascaderVo;
import java.util.List;
import java.util.Map;
public class TreeToolUtils {
/**
* 根节点对象存放到这里
*/
private List<CascaderVo> rootList;
/**
* 其他节点存放到这里,可以包含根节点
*/
private List<CascaderVo> bodyList;
public TreeToolUtils(List<CascaderVo> rootList, List<CascaderVo> bodyList) {
this.rootList = rootList;
this.bodyList = bodyList;
}
public List<CascaderVo> getTree(){ //调用的方法入口
if(bodyList != null && !bodyList.isEmpty()){
//声明一个map,用来过滤已操作过的数据
Map<Long,Long> map = Maps.newHashMapWithExpectedSize(bodyList.size());
rootList.forEach(beanTree -> getChild(beanTree,map));
return rootList;
}
return null;
}
public void getChild(CascaderVo treeDto,Map<Long,Long> map){
List<CascaderVo> childList = Lists.newArrayList();
bodyList.stream()
.filter(c -> !map.containsKey(c.getValue()))
.filter(c ->c.getPid().equals(treeDto.getValue()))
.forEach(c ->{
map.put(c.getValue(),c.getPid());
getChild(c,map);
childList.add(c);
});
treeDto.setChildren(childList);
}
}
\ No newline at end of file
...@@ -15,7 +15,8 @@ package com.mx.cneeds.common.pager; ...@@ -15,7 +15,8 @@ package com.mx.cneeds.common.pager;
*/ */
public class Constant { public class Constant {
/** 超级管理员ID */ /** 超级管理员ID */
public static final int SUPER_ADMIN = 1; public static final int INT_SUPER_ADMIN = 1;
public static final String STRING_SUPER_ADMIN = "admin";
/** 数据权限过滤 */ /** 数据权限过滤 */
public static final String SQL_FILTER = "sql_filter"; public static final String SQL_FILTER = "sql_filter";
/** /**
......
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
<artifactId>cneeds-server-authorization</artifactId> <artifactId>cneeds-server-authorization</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<properties>
<mysql.version>8.0.16</mysql.version>
</properties>
<dependencies> <dependencies>
<!-- eureka-client --> <!-- eureka-client -->
...@@ -37,6 +41,18 @@ ...@@ -37,6 +41,18 @@
<artifactId>spring-security-jwt</artifactId> <artifactId>spring-security-jwt</artifactId>
<version>1.0.8.RELEASE</version> <version>1.0.8.RELEASE</version>
</dependency> </dependency>
<dependency>
<groupId>com.mx.cneeds</groupId>
<artifactId>cneeds-common-data</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.mx.cneeds.server.anthorization; package com.mx.cneeds.server.anthorization;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
...@@ -12,6 +13,7 @@ import org.springframework.cloud.netflix.eureka.EnableEurekaClient; ...@@ -12,6 +13,7 @@ import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
**/ **/
@SpringBootApplication @SpringBootApplication
@EnableEurekaClient @EnableEurekaClient
@MapperScan("com.mx.cneeds.server.dao")
public class AuthorizaitonApplication { public class AuthorizaitonApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
package com.mx.cneeds.server.anthorization.service; package com.mx.cneeds.server.anthorization.service;
import com.mx.cneeds.server.entity.SysUserEntity;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.User;
...@@ -15,12 +16,20 @@ public class MyUserDetailsService implements UserDetailsService { ...@@ -15,12 +16,20 @@ public class MyUserDetailsService implements UserDetailsService {
@Autowired @Autowired
private PasswordEncoder passwordEncoder; private PasswordEncoder passwordEncoder;
@Autowired
private SysUserService sysUserService;
/** (non-Javadoc) /** (non-Javadoc)
* @see UserDetailsService#loadUserByUsername(String) * @see UserDetailsService#loadUserByUsername(String)
*/ */
@Override @Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return new User(username, passwordEncoder.encode("123456"),
SysUserEntity sysUserEntity = sysUserService.queryUserByUsername(username);
if (sysUserEntity == null){
return null;
}
return new User(username, sysUserEntity.getPassword(),
AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_admin")); AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_admin"));
} }
......
package com.mx.cneeds.server.anthorization.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mx.cneeds.common.pager.PageUtils;
import com.mx.cneeds.server.entity.SysUserEntity;
import java.util.Map;
/**
* 用户信息表
*
* @author Mark
* @email sunlightcs@gmail.com
* @date 2020-01-09 15:09:01
*/
public interface SysUserService extends IService<SysUserEntity> {
PageUtils queryPage(Map<String, Object> params);
SysUserEntity queryUserByUsername(String username);
}
package com.mx.cneeds.server.anthorization.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mx.cneeds.common.pager.PageUtils;
import com.mx.cneeds.common.pager.Query;
import com.mx.cneeds.server.anthorization.service.SysUserService;
import com.mx.cneeds.server.dao.SysUserDao;
import com.mx.cneeds.server.entity.SysUserEntity;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service("sysUserService")
public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> implements SysUserService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
IPage<SysUserEntity> page = this.page(
new Query<SysUserEntity>().getPage(params),
new QueryWrapper<SysUserEntity>()
);
return new PageUtils(page);
}
@Override
public SysUserEntity queryUserByUsername(String username) {
return getBaseMapper().selectOne(
new QueryWrapper<SysUserEntity>()
.eq("username",username));
}
}
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.2.244:3306/cneeds_server?useUnicode=true&characterEncoding=UTF-8&useSSL=false
password: cneeds!QAZ1qaz
username: root
eureka: eureka:
client: client:
service-url: service-url:
......
package utils;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
/**
* @ClassName PasswordEncode
* @Author zzrdark
* @Date 2020-03-11 17:53
* @Description TODO
**/
public class PasswordEncode {
public static void main(String[] args) {
String password = "admin";
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
String enPassword1 = encoder.encode(password);
String enPassword2 = encoder.encode(password);
System.out.println(enPassword1);
System.out.println(encoder.matches(password,enPassword1));
System.out.println(encoder.matches(password,enPassword2));
}
}
...@@ -47,6 +47,12 @@ ...@@ -47,6 +47,12 @@
<artifactId>spring-security-jwt</artifactId> <artifactId>spring-security-jwt</artifactId>
<version>1.0.8.RELEASE</version> <version>1.0.8.RELEASE</version>
</dependency> </dependency>
<dependency>
<groupId>com.mx.cneeds</groupId>
<artifactId>cneeds-common-utils</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.mx.cneeds.server.datashow.client; package com.mx.cneeds.server.datashow.client;
import com.mx.cneeds.common.dto.DepartmentDto;
import com.mx.cneeds.common.dto.JwtToken; import com.mx.cneeds.common.dto.JwtToken;
import com.mx.cneeds.common.dto.PageDto; import com.mx.cneeds.common.dto.PageDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
...@@ -7,6 +8,8 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -7,6 +8,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/** /**
* @ClassName UserClient * @ClassName UserClient
* @Author zzrdark * @Author zzrdark
...@@ -71,4 +74,7 @@ public interface UserClient { ...@@ -71,4 +74,7 @@ public interface UserClient {
@RequestParam("limit") Integer pageSize, @RequestParam("limit") Integer pageSize,
@RequestParam("sidx") String orderField, @RequestParam("sidx") String orderField,
@RequestParam("order") String order); @RequestParam("order") String order);
@PostMapping("/sys/dept/listAll")
List<DepartmentDto> deptListAll();
} }
...@@ -5,7 +5,7 @@ import feign.RequestInterceptor; ...@@ -5,7 +5,7 @@ import feign.RequestInterceptor;
import feign.RequestTemplate; import feign.RequestTemplate;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestAttributes; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
...@@ -23,8 +23,10 @@ public class FeignInterceptor implements RequestInterceptor { ...@@ -23,8 +23,10 @@ public class FeignInterceptor implements RequestInterceptor {
@Override @Override
public void apply(RequestTemplate requestTemplate) { public void apply(RequestTemplate requestTemplate) {
//只支持 servlet //只支持 servlet
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
String username = (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if(requestAttributes == null){ if(requestAttributes == null){
return; return;
...@@ -34,6 +36,9 @@ public class FeignInterceptor implements RequestInterceptor { ...@@ -34,6 +36,9 @@ public class FeignInterceptor implements RequestInterceptor {
if (request.getRequestURL().toString().contains("/user/login")){ if (request.getRequestURL().toString().contains("/user/login")){
String authString = RequestParamterConverter.authorizationConverter("clientapp","112233"); String authString = RequestParamterConverter.authorizationConverter("clientapp","112233");
requestTemplate.header("Authorization",authString); requestTemplate.header("Authorization",authString);
}else{
requestTemplate.query("username",username);
} }
} }
} }
package com.mx.cneeds.server.datashow.web.system; package com.mx.cneeds.server.datashow.web.system;
import com.mx.cneeds.common.converter.RequestParamterConverter; import com.mx.cneeds.common.converter.RequestParamterConverter;
import com.mx.cneeds.common.dto.DepartmentDto;
import com.mx.cneeds.common.dto.PageDto; import com.mx.cneeds.common.dto.PageDto;
import com.mx.cneeds.common.generate.TreeToolUtils;
import com.mx.cneeds.common.result.R; import com.mx.cneeds.common.result.R;
import com.mx.cneeds.common.vo.CascaderVo;
import com.mx.cneeds.common.vo.DepartmentVo; import com.mx.cneeds.common.vo.DepartmentVo;
import com.mx.cneeds.server.datashow.client.UserClient; import com.mx.cneeds.server.datashow.client.UserClient;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import java.util.ArrayList;
import org.springframework.web.bind.annotation.RestController; import java.util.List;
/** /**
* @ClassName SystemController * @ClassName SystemController
...@@ -161,6 +164,42 @@ public class SystemController { ...@@ -161,6 +164,42 @@ public class SystemController {
} }
@PostMapping("/dept/edit")
public R editDept(DepartmentVo departmentVo){
return R.ok();
}
@PostMapping("/dept/delete")
public R deleteDept(@RequestParam(value = "ids",required = false) List<Long> ids,String e){
return R.ok();
}
@PostMapping("/dept/listAll")
public R selectDeptParent(){
List<DepartmentDto> dtos = userClient.deptListAll();
List<CascaderVo> rootList = new ArrayList<>();
List<CascaderVo> bodyList = new ArrayList<>();
dtos.forEach(dto -> {
CascaderVo vo = new CascaderVo(
dto.getDeptId(),
dto.getName(),
dto.getParentId());
//TODO 这里应该是自己的部门Id
if (dto.getParentId()==0){
rootList.add(vo);
}else{
bodyList.add(vo);
}
});
TreeToolUtils utils = new TreeToolUtils(rootList,bodyList);
List<CascaderVo> result = utils.getTree();
return new R().put("data",result);
}
} }
...@@ -13,9 +13,11 @@ package com.mx.cneeds.server.user.common; ...@@ -13,9 +13,11 @@ package com.mx.cneeds.server.user.common;
import com.mx.cneeds.common.annotation.DataFilter; import com.mx.cneeds.common.annotation.DataFilter;
import com.mx.cneeds.common.exception.RRException; import com.mx.cneeds.common.exception.RRException;
import com.mx.cneeds.common.pager.Constant; import com.mx.cneeds.common.pager.Constant;
import com.mx.cneeds.server.entity.SysUserEntity;
import com.mx.cneeds.server.user.service.SysDeptService; import com.mx.cneeds.server.user.service.SysDeptService;
import com.mx.cneeds.server.user.service.SysRoleDeptService; import com.mx.cneeds.server.user.service.SysRoleDeptService;
import com.mx.cneeds.server.user.service.SysUserRoleService; import com.mx.cneeds.server.user.service.SysUserRoleService;
import com.mx.cneeds.server.user.service.SysUserService;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
...@@ -38,6 +40,9 @@ import java.util.Set; ...@@ -38,6 +40,9 @@ import java.util.Set;
@Aspect @Aspect
@Component @Component
public class DataFilterAspect { public class DataFilterAspect {
@Autowired
private SysUserService sysUserService;
@Autowired @Autowired
private SysDeptService sysDeptService; private SysDeptService sysDeptService;
@Autowired @Autowired
...@@ -51,15 +56,14 @@ public class DataFilterAspect { ...@@ -51,15 +56,14 @@ public class DataFilterAspect {
} }
@Before("dataFilterCut()") @Before("dataFilterCut()")
public void dataFilter(JoinPoint point) throws Throwable { public void dataFilter(JoinPoint point){
Object params = point.getArgs()[0]; Object params = point.getArgs()[0];
if(params != null && params instanceof Map){ if(params != null && params instanceof Map){
// SysUserEntity user = ShiroUtils.getUserEntity(); String username = (String) ((Map) params).get("username");
Long userId = (Long) ((Map) params).get("userId");
//如果不是超级管理员,则进行数据过滤 //如果不是超级管理员,则进行数据过滤
if(userId != Constant.SUPER_ADMIN){ if(!Constant.STRING_SUPER_ADMIN.equals(username)){
Map map = (Map)params; Map map = (Map)params;
map.put(Constant.SQL_FILTER, getSQLFilter(userId, point)); map.put(Constant.SQL_FILTER, getSQLFilter(username, point));
} }
return ; return ;
} }
...@@ -70,7 +74,7 @@ public class DataFilterAspect { ...@@ -70,7 +74,7 @@ public class DataFilterAspect {
/** /**
* 获取数据过滤的SQL * 获取数据过滤的SQL
*/ */
private String getSQLFilter(Long userId, JoinPoint point){ private String getSQLFilter(String username, JoinPoint point){
MethodSignature signature = (MethodSignature) point.getSignature(); MethodSignature signature = (MethodSignature) point.getSignature();
DataFilter dataFilter = signature.getMethod().getAnnotation(DataFilter.class); DataFilter dataFilter = signature.getMethod().getAnnotation(DataFilter.class);
//获取表的别名 //获取表的别名
...@@ -82,8 +86,10 @@ public class DataFilterAspect { ...@@ -82,8 +86,10 @@ public class DataFilterAspect {
//部门ID列表 //部门ID列表
Set<Long> deptIdList = new HashSet<>(); Set<Long> deptIdList = new HashSet<>();
SysUserEntity sysUserEntity = sysUserService.queryUserByUsername(username);
//用户角色对应的部门ID列表 //用户角色对应的部门ID列表
List<Long> roleIdList = sysUserRoleService.queryRoleIdList(userId); List<Long> roleIdList = sysUserRoleService.queryRoleIdList(sysUserEntity.getUserId());
if(roleIdList.size() > 0){ if(roleIdList.size() > 0){
List<Long> userDeptIdList = sysRoleDeptService.queryDeptIdList(roleIdList.toArray(new Long[roleIdList.size()])); List<Long> userDeptIdList = sysRoleDeptService.queryDeptIdList(roleIdList.toArray(new Long[roleIdList.size()]));
deptIdList.addAll(userDeptIdList); deptIdList.addAll(userDeptIdList);
...@@ -91,7 +97,7 @@ public class DataFilterAspect { ...@@ -91,7 +97,7 @@ public class DataFilterAspect {
//用户子部门ID列表 //用户子部门ID列表
if(dataFilter.subDept()){ if(dataFilter.subDept()){
List<Long> subDeptIdList = sysDeptService.getSubDeptIdList(userId); List<Long> subDeptIdList = sysDeptService.getSubDeptIdList(sysUserEntity.getUserId());
deptIdList.addAll(subDeptIdList); deptIdList.addAll(subDeptIdList);
} }
...@@ -107,7 +113,7 @@ public class DataFilterAspect { ...@@ -107,7 +113,7 @@ public class DataFilterAspect {
if(deptIdList.size() > 0){ if(deptIdList.size() > 0){
sqlFilter.append(" or "); sqlFilter.append(" or ");
} }
sqlFilter.append(tableAlias).append(dataFilter.userId()).append("=").append(userId); sqlFilter.append(tableAlias).append(dataFilter.userId()).append("=").append(sysUserEntity.getUserId());
} }
sqlFilter.append(")"); sqlFilter.append(")");
......
package com.mx.cneeds.server.user.service; package com.mx.cneeds.server.user.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.mx.cneeds.common.annotation.DataFilter;
import com.mx.cneeds.common.pager.PageUtils; import com.mx.cneeds.common.pager.PageUtils;
import com.mx.cneeds.server.entity.SysDeptEntity; import com.mx.cneeds.server.entity.SysDeptEntity;
...@@ -16,6 +17,11 @@ import java.util.Map; ...@@ -16,6 +17,11 @@ import java.util.Map;
*/ */
public interface SysDeptService extends IService<SysDeptEntity> { public interface SysDeptService extends IService<SysDeptEntity> {
List<SysDeptEntity> queryListByPage(Map<String, Object> params);
List<SysDeptEntity> queryList(Map<String, Object> params);
PageUtils queryPage(Map<String, Object> params); PageUtils queryPage(Map<String, Object> params);
/** /**
...@@ -24,6 +30,10 @@ public interface SysDeptService extends IService<SysDeptEntity> { ...@@ -24,6 +30,10 @@ public interface SysDeptService extends IService<SysDeptEntity> {
List<Long> getSubDeptIdList(Long deptId); List<Long> getSubDeptIdList(Long deptId);
List<Long> queryDetpIdList(Long parentId); List<Long> queryDetpIdList(Long parentId);
List<SysDeptEntity> queryDeptIdsBydeptName(List<Long> Ids); List<SysDeptEntity> queryDeptIdsBydeptName(List<Long> Ids);
Long queryDeptCount(Map<String, Object> params);
} }
...@@ -23,5 +23,6 @@ public interface SysUserRoleService extends IService<SysUserRoleEntity> { ...@@ -23,5 +23,6 @@ public interface SysUserRoleService extends IService<SysUserRoleEntity> {
* @param userId * @param userId
*/ */
List<Long> queryRoleIdList(Long userId); List<Long> queryRoleIdList(Long userId);
} }
...@@ -16,5 +16,7 @@ import java.util.Map; ...@@ -16,5 +16,7 @@ import java.util.Map;
public interface SysUserService extends IService<SysUserEntity> { public interface SysUserService extends IService<SysUserEntity> {
PageUtils queryPage(Map<String, Object> params); PageUtils queryPage(Map<String, Object> params);
SysUserEntity queryUserByUsername(String username);
} }
package com.mx.cneeds.server.user.service.impl; package com.mx.cneeds.server.user.service.impl;
import com.mx.cneeds.common.annotation.DataFilter;
import com.mx.cneeds.common.pager.Constant;
import com.mx.cneeds.common.pager.PageUtils; import com.mx.cneeds.common.pager.PageUtils;
import com.mx.cneeds.common.pager.Query; import com.mx.cneeds.common.pager.Query;
import com.mx.cneeds.server.dao.SysDeptDao; import com.mx.cneeds.server.dao.SysDeptDao;
...@@ -19,6 +21,41 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -19,6 +21,41 @@ import org.springframework.transaction.annotation.Transactional;
@Service("sysDeptService") @Service("sysDeptService")
public class SysDeptServiceImpl extends ServiceImpl<SysDeptDao, SysDeptEntity> implements SysDeptService { public class SysDeptServiceImpl extends ServiceImpl<SysDeptDao, SysDeptEntity> implements SysDeptService {
@Override
@DataFilter(subDept = true, user = false, tableAlias = "t1")
public List<SysDeptEntity> queryListByPage(Map<String, Object> params){
long curPage = 1;
long limit = 10;
if(params.get(Constant.PAGE) != null){
curPage = Long.parseLong((String)params.get(Constant.PAGE));
}
if(params.get(Constant.LIMIT) != null){
limit = Long.parseLong((String)params.get(Constant.LIMIT));
}
params.put(Constant.PAGE,curPage);
params.put(Constant.LIMIT,limit);
Long startIndex = curPage>1? 0 : (curPage-1)*limit;
params.put("startIndex",startIndex);
return baseMapper.queryListByPage(params);
}
@Override
@DataFilter(subDept = true, user = false, tableAlias = "t1")
public List<SysDeptEntity> queryList(Map<String, Object> params) {
return baseMapper.queryList(params);
}
@Override
@DataFilter(subDept = true, user = false, tableAlias = "t1")
public Long queryDeptCount(Map<String, Object> params) {
Long count = baseMapper.queryCount(params);
return count;
}
@Override @Override
public PageUtils queryPage(Map<String, Object> params) { public PageUtils queryPage(Map<String, Object> params) {
IPage<SysDeptEntity> page = this.page( IPage<SysDeptEntity> page = this.page(
...@@ -54,6 +91,8 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptDao, SysDeptEntity> i ...@@ -54,6 +91,8 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptDao, SysDeptEntity> i
.select("dept_id","name").in("dept_id",Ids)); .select("dept_id","name").in("dept_id",Ids));
} }
/** /**
* 递归 * 递归
*/ */
......
...@@ -25,4 +25,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i ...@@ -25,4 +25,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
return new PageUtils(page); return new PageUtils(page);
} }
@Override
public SysUserEntity queryUserByUsername(String username) {
return getBaseMapper().selectOne(
new QueryWrapper<SysUserEntity>()
.eq("username",username));
}
} }
package com.mx.cneeds.server.user.web; package com.mx.cneeds.server.user.web;
import com.mx.cneeds.common.dto.DepartmentDto;
import com.mx.cneeds.common.pager.Constant;
import com.mx.cneeds.common.pager.PageUtils; import com.mx.cneeds.common.pager.PageUtils;
import com.mx.cneeds.common.result.R; import com.mx.cneeds.common.result.R;
import com.mx.cneeds.common.validator.ValidatorUtils; import com.mx.cneeds.common.validator.ValidatorUtils;
import com.mx.cneeds.server.entity.SysDeptEntity; import com.mx.cneeds.server.entity.SysDeptEntity;
import com.mx.cneeds.server.user.service.SysDeptService; import com.mx.cneeds.server.user.service.SysDeptService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Arrays; import java.util.*;
import java.util.Map;
//import org.apache.shiro.authz.annotation.RequiresPermissions; //import org.apache.shiro.authz.annotation.RequiresPermissions;
...@@ -31,12 +33,31 @@ public class SysDeptController { ...@@ -31,12 +33,31 @@ public class SysDeptController {
* 列表 * 列表
*/ */
@RequestMapping("/list") @RequestMapping("/list")
// @RequiresPermissions("sys:sysdept:list")
public PageUtils list(@RequestParam Map<String, Object> params){ public PageUtils list(@RequestParam Map<String, Object> params){
PageUtils page = sysDeptService.queryPage(params); // PageUtils page = sysDeptService.queryPage(params);
List<SysDeptEntity> sysDeptEntityList = sysDeptService.queryListByPage(params);
long count = sysDeptService.queryDeptCount(params);
long limit = (long) params.get(Constant.LIMIT);
long Curpage = (long) params.get(Constant.PAGE);
PageUtils page = new PageUtils(sysDeptEntityList,
(int) count,
(int)limit,
(int)Curpage);
return page; return page;
} }
@RequestMapping("/listAll")
public List<DepartmentDto> listAll(@RequestParam Map<String, Object> params){
List<SysDeptEntity> sysDeptEntityList = sysDeptService.queryList(params);
List<DepartmentDto> departmentDtoList = new ArrayList<>();
sysDeptEntityList.forEach(sysDeptEntity -> {
DepartmentDto departmentDto = new DepartmentDto();
BeanUtils.copyProperties(sysDeptEntity,departmentDto);
departmentDtoList.add(departmentDto);
});
return departmentDtoList;
}
/** /**
* 信息 * 信息
......
...@@ -50,4 +50,29 @@ eureka: ...@@ -50,4 +50,29 @@ eureka:
defaultZone: http://192.168.2.244:8761/eureka/ defaultZone: http://192.168.2.244:8761/eureka/
instance: instance:
prefer-ip-address: true prefer-ip-address: true
ip-address: 192.168.2.244 # ip-address: 192.168.2.244
\ No newline at end of file
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.mx.cneeds.server.entity
global-config:
#数据库相关配置
db-config:
#主键类型 AUTO:"数据库ID自增", INPUT:"用户输入ID", ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
id-type: AUTO
#字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断"
field-strategy: NOT_NULL
#驼峰下划线转换
column-underline: true
logic-delete-value: -1
logic-not-delete-value: 0
banner: false
#原生配置
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
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