nispgithub.github.io

数据库

建表

CREATE TABLE `custom` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户姓名',
  `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '电话号码',
  `source` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户来源 电话 上门等',
  `type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '意向级别,A B C D',
  `user_id` int(20) NOT NULL COMMENT '所属用户id',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户信息表';

前端

增删改查

Custom.vue

customApi.js

后端

增删改查接口

查询添加分角色过滤数据,管理员查看所有数据,领导查看自己和下属员工的数据,员工查看自己的数据

//查询
        LambdaQueryWrapper<Custom> queryWrapper = new LambdaQueryWrapper<>();
        //根据登录用户的角色不同看到的数据权限不同
        User loginUser = SecurityUtils.getUserInfo();
        QueryWrapper<RoleUser> qw = new QueryWrapper<>();
        qw.lambda().eq(RoleUser::getUserId,loginUser.getId());
        List<RoleUser> roleUserList = roleUserMapper.selectList(qw);
        if(roleUserList != null && roleUserList.size()>0){
            //角色id 集合
            Set<Integer> ids = roleUserList.stream().map(RoleUser::getRoleId).collect(Collectors.toSet());
            //#role 角色信息
//        select * from role where id in (1);
            QueryWrapper<Role> wrapper = new QueryWrapper<>();
            wrapper.lambda().in(Role::getId,ids);
            Set<Role> roleSet = new HashSet<>(roleMapper.selectList(wrapper));
            //登录用户的全部角色信息
            if(roleSet.size()>0) {
                //领导角色
                long countLead = roleSet.stream().filter(i->i.getRoleCode().equals("ROLE_LEADER")).count();
                //员工角色
                long countUser = roleSet.stream().filter(i->i.getRoleCode().equals("ROLE_USER")).count();
                if(countLead > 0){
                    QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
                    userQueryWrapper.lambda().eq(User::getLeaderId,loginUser.getId());
                    List<User> Staffs = userMapper.selectList(userQueryWrapper);
                    //下属员工ids
                    Set<Integer> staffIds = Staffs.stream().map(User::getId).collect(Collectors.toSet());
                    //领导id
                    staffIds.add(loginUser.getId());
                    //添加查询条件
                    queryWrapper.in(Custom::getUserId,staffIds);
                }else if(countUser > 0){
                    //添加查询条件
                    queryWrapper.eq(Custom::getUserId,loginUser.getId());
                }else{
                    //管理员查看所有数据
                }
            }
        }

新增 所属用户和添加时间

 //所属用户
        custom.setUserId(SecurityUtils.getUserInfo().getId());
        //注册时间
        custom.setCreateTime(LocalDateTime.now());