Initial commit
This commit is contained in:
38
service-oa/.gitignore
vendored
Normal file
38
service-oa/.gitignore
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
!**/src/main/**/target/
|
||||
!**/src/test/**/target/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea/modules.xml
|
||||
.idea/jarRepositories.xml
|
||||
.idea/compiler.xml
|
||||
.idea/libraries/
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
build/
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
53
service-oa/pom.xml
Normal file
53
service-oa/pom.xml
Normal file
@@ -0,0 +1,53 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<artifactId>guigu-oa-parent</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>service-oa</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<artifactId>model</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.atguigu</groupId>
|
||||
<artifactId>service-util</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- 代码生成器-->
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-generator</artifactId>
|
||||
<version>3.4.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.velocity</groupId>
|
||||
<artifactId>velocity-engine-core</artifactId>
|
||||
<version>2.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
@@ -0,0 +1,20 @@
|
||||
package com.atguigu.auth;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
|
||||
/**
|
||||
* ClassName: ServiceAuthApplication
|
||||
* Package: com.atguigu.auth
|
||||
*
|
||||
* @author yovinchen
|
||||
* @Create 2023/6/1 23:03
|
||||
*/
|
||||
@SpringBootApplication
|
||||
@ComponentScan("com.atguigu")
|
||||
public class ServiceAuthApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(ServiceAuthApplication.class, args);
|
||||
}
|
||||
}
|
@@ -0,0 +1,67 @@
|
||||
package com.atguigu.auth.controller;
|
||||
|
||||
import com.atguigu.common.result.Result;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* ClassName: IndexController
|
||||
* Package: com.atguigu.auth.controller
|
||||
*
|
||||
* @author yovinchen
|
||||
* @Create 2023/6/8 20:32
|
||||
* 后台登录登出
|
||||
*/
|
||||
@Api(tags = "后台登录管理")
|
||||
@RestController
|
||||
@RequestMapping("/admin/system/index")
|
||||
public class IndexController {
|
||||
|
||||
|
||||
/**
|
||||
* 登录
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("登陆")
|
||||
@PostMapping("login")
|
||||
public Result login() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("token", "admin");
|
||||
return Result.ok(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("获取用户信息")
|
||||
@GetMapping("info")
|
||||
public Result info() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("roles", "[admin]");
|
||||
map.put("name", "admin");
|
||||
map.put("avatar", "https://oss.aliyuncs.com/aliyun_id_photo_bucket/default_handsome.jpg");
|
||||
return Result.ok(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("登出")
|
||||
@PostMapping("logout")
|
||||
public Result logout() {
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,185 @@
|
||||
package com.atguigu.auth.controller;
|
||||
|
||||
import com.atguigu.auth.service.SysRoleService;
|
||||
import com.atguigu.common.result.Result;
|
||||
import com.atguigu.model.system.SysRole;
|
||||
import com.atguigu.vo.system.AssginRoleVo;
|
||||
import com.atguigu.vo.system.SysRoleQueryVo;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* ClassName: SysRoleService
|
||||
* Package: com.atguigu.auth.controller
|
||||
*
|
||||
* @author yovinchen
|
||||
* @Create 2023/6/6 17:19
|
||||
*/
|
||||
@Api(tags = "角色管理接口")
|
||||
@RestController
|
||||
@RequestMapping("/admin/system/sysRole")
|
||||
public class SysRoleController {
|
||||
|
||||
@Autowired
|
||||
private SysRoleService sysRoleService;
|
||||
|
||||
/**
|
||||
* 查询所有角色和当前用户所属角色
|
||||
*
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "根据用户获取角色数据")
|
||||
@GetMapping("/toAssign/{userId}")
|
||||
public Result toAssign(@PathVariable Long userId) {
|
||||
Map<String, Object> roleMap = sysRoleService.findRoleByUserId(userId);
|
||||
return Result.ok(roleMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 为用户分配角色
|
||||
*
|
||||
* @param assginRoleVo
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "根据用户分配角色")
|
||||
@PostMapping("/doAssign")
|
||||
public Result doAssign(@RequestBody AssginRoleVo assginRoleVo) {
|
||||
sysRoleService.doAssign(assginRoleVo);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询所有角色
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("查询所有角色")
|
||||
@GetMapping("findAll")
|
||||
public Result findAll() {
|
||||
return Result.ok(sysRoleService.list());
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件分页查询
|
||||
* page 当前页
|
||||
* limit 每页显示记录数
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("条件分页查询")
|
||||
@GetMapping("{page}/{limit}")
|
||||
public Result pageQueryRole(@PathVariable Long page,
|
||||
@PathVariable Long limit,
|
||||
SysRoleQueryVo sysRoleQueryVo) {
|
||||
//调用service的方法实现
|
||||
//1 创建Page对象,传递分页相关参数
|
||||
//page 当前页 limit 每页显示记录数
|
||||
Page<SysRole> pageParam = new Page<>(page, limit);
|
||||
|
||||
//2 封装条件,判断条件是否为空,不为空进行封装
|
||||
LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<>();
|
||||
String roleName = sysRoleQueryVo.getRoleName();
|
||||
if (!StringUtils.isEmpty(roleName)) {
|
||||
//封装 like模糊查询
|
||||
wrapper.like(SysRole::getRoleName, roleName);
|
||||
}
|
||||
|
||||
//3 调用方法实现
|
||||
IPage<SysRole> pageModel = sysRoleService.page(pageParam, wrapper);
|
||||
return Result.ok(pageModel);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加角色
|
||||
*
|
||||
* @param role
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("添加角色")
|
||||
@PostMapping("save")
|
||||
public Result save(@RequestBody SysRole role) {
|
||||
//调用service的方法
|
||||
boolean is_success = sysRoleService.save(role);
|
||||
if (is_success) {
|
||||
return Result.ok();
|
||||
} else {
|
||||
return Result.fail();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改角色-根据id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("根据id查询")
|
||||
@GetMapping("get/{id}")
|
||||
public Result get(@PathVariable Long id) {
|
||||
SysRole sysRole = sysRoleService.getById(id);
|
||||
return Result.ok(sysRole);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改角色-最终修改
|
||||
*
|
||||
* @param role
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("修改角色")
|
||||
@PutMapping("update")
|
||||
public Result update(@RequestBody SysRole role) {
|
||||
//调用service的方法
|
||||
boolean is_success = sysRoleService.updateById(role);
|
||||
if (is_success) {
|
||||
return Result.ok();
|
||||
} else {
|
||||
return Result.fail();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("根据id删除")
|
||||
@DeleteMapping("remove/{id}")
|
||||
public Result remove(@PathVariable Long id) {
|
||||
boolean is_success = sysRoleService.removeById(id);
|
||||
if (is_success) {
|
||||
return Result.ok();
|
||||
} else {
|
||||
return Result.fail();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
* 前端数组 [1,2,3]
|
||||
*
|
||||
* @param idList
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("批量删除")
|
||||
@DeleteMapping("batchRemove")
|
||||
public Result batchRemove(@RequestBody List<Long> idList) {
|
||||
boolean is_success = sysRoleService.removeByIds(idList);
|
||||
if (is_success) {
|
||||
return Result.ok();
|
||||
} else {
|
||||
return Result.fail();
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,140 @@
|
||||
package com.atguigu.auth.controller;
|
||||
|
||||
|
||||
import com.atguigu.auth.service.SysUserService;
|
||||
import com.atguigu.common.result.Result;
|
||||
import com.atguigu.model.system.SysUser;
|
||||
import com.atguigu.vo.system.SysUserQueryVo;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author yovinchen
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
@Api(tags = "用户管理接口")
|
||||
@RestController
|
||||
@RequestMapping("/admin/system/sysUser")
|
||||
public class SysUserController {
|
||||
|
||||
@Autowired
|
||||
private SysUserService sysUserService;
|
||||
|
||||
/**
|
||||
* 更新用户状态
|
||||
*
|
||||
* @param id
|
||||
* @param status
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "更新状态")
|
||||
@GetMapping("updateStatus/{id}/{status}")
|
||||
public Result updateStatus(@PathVariable Long id, @PathVariable Integer status) {
|
||||
sysUserService.updateStatus(id, status);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户条件分页查询
|
||||
*
|
||||
* @param page
|
||||
* @param limit
|
||||
* @param sysUserQueryVo
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("用户条件分页查询")
|
||||
@GetMapping("{page}/{limit}")
|
||||
public Result index(@PathVariable Long page,
|
||||
@PathVariable Long limit,
|
||||
SysUserQueryVo sysUserQueryVo) {
|
||||
//创建page对象
|
||||
Page<SysUser> pageParam = new Page<>(page, limit);
|
||||
|
||||
//封装条件,判断条件值不为空
|
||||
LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
|
||||
//获取条件值
|
||||
String username = sysUserQueryVo.getKeyword();
|
||||
String createTimeBegin = sysUserQueryVo.getCreateTimeBegin();
|
||||
String createTimeEnd = sysUserQueryVo.getCreateTimeEnd();
|
||||
//判断条件值不为空
|
||||
//like 模糊查询
|
||||
if (!StringUtils.isEmpty(username)) {
|
||||
wrapper.like(SysUser::getUsername, username);
|
||||
}
|
||||
//ge 大于等于
|
||||
if (!StringUtils.isEmpty(createTimeBegin)) {
|
||||
wrapper.ge(SysUser::getCreateTime, createTimeBegin);
|
||||
}
|
||||
//le 小于等于
|
||||
if (!StringUtils.isEmpty(createTimeEnd)) {
|
||||
wrapper.le(SysUser::getCreateTime, createTimeEnd);
|
||||
}
|
||||
|
||||
//调用mp的方法实现条件分页查询
|
||||
IPage<SysUser> pageModel = sysUserService.page(pageParam, wrapper);
|
||||
return Result.ok(pageModel);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "获取用户")
|
||||
@GetMapping("get/{id}")
|
||||
public Result get(@PathVariable Long id) {
|
||||
SysUser user = sysUserService.getById(id);
|
||||
return Result.ok(user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存用户
|
||||
*
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "保存用户")
|
||||
@PostMapping("save")
|
||||
public Result save(@RequestBody SysUser user) {
|
||||
sysUserService.save(user);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新用户
|
||||
*
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "更新用户")
|
||||
@PutMapping("update")
|
||||
public Result updateById(@RequestBody SysUser user) {
|
||||
sysUserService.updateById(user);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "删除用户")
|
||||
@DeleteMapping("remove/{id}")
|
||||
public Result remove(@PathVariable Long id) {
|
||||
sysUserService.removeById(id);
|
||||
return Result.ok();
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,17 @@
|
||||
package com.atguigu.auth.mapper;
|
||||
|
||||
import com.atguigu.model.system.SysRole;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* ClassName: SysRoleMapper
|
||||
* Package: com.atguigu.auth.mapper
|
||||
*
|
||||
* @author yovinchen
|
||||
* @Create 2023/6/1 23:01
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysRoleMapper extends BaseMapper<SysRole> {
|
||||
|
||||
}
|
@@ -0,0 +1,18 @@
|
||||
package com.atguigu.auth.mapper;
|
||||
|
||||
import com.atguigu.model.system.SysUser;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author yovinchen
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysUserMapper extends BaseMapper<SysUser> {
|
||||
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
package com.atguigu.auth.mapper;
|
||||
|
||||
import com.atguigu.model.system.SysUserRole;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户角色 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author yovinchen
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
@Repository
|
||||
@Mapper
|
||||
public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
|
||||
|
||||
}
|
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.atguigu.auth.mapper.SysUserMapper">
|
||||
|
||||
</mapper>
|
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.atguigu.auth.mapper.SysUserRoleMapper">
|
||||
|
||||
</mapper>
|
@@ -0,0 +1,24 @@
|
||||
package com.atguigu.auth.service;
|
||||
|
||||
import com.atguigu.model.system.SysRole;
|
||||
import com.atguigu.vo.system.AssginRoleVo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* ClassName: SysRoleService
|
||||
* Package: com.atguigu.auth.service
|
||||
*
|
||||
* @author yovinchen
|
||||
* @Create 2023/6/1 23:03
|
||||
*/
|
||||
public interface SysRoleService extends IService<SysRole> {
|
||||
|
||||
//查询所有角色和当前用户所属角色
|
||||
Map<String, Object> findRoleByUserId(Long userId);
|
||||
|
||||
//为用户分配角色
|
||||
|
||||
void doAssign(AssginRoleVo assginRoleVo);
|
||||
}
|
@@ -0,0 +1,16 @@
|
||||
package com.atguigu.auth.service;
|
||||
|
||||
import com.atguigu.model.system.SysUserRole;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户角色 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author yovinchen
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
public interface SysUserRoleService extends IService<SysUserRole> {
|
||||
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
package com.atguigu.auth.service;
|
||||
|
||||
import com.atguigu.model.system.SysUser;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author yovinchen
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
public interface SysUserService extends IService<SysUser> {
|
||||
|
||||
/**
|
||||
* 更新用户状态
|
||||
*
|
||||
* @param id
|
||||
* @param status
|
||||
*/
|
||||
void updateStatus(Long id, Integer status);
|
||||
}
|
@@ -0,0 +1,81 @@
|
||||
package com.atguigu.auth.service.impl;
|
||||
|
||||
import com.atguigu.auth.mapper.SysRoleMapper;
|
||||
import com.atguigu.auth.mapper.SysUserRoleMapper;
|
||||
import com.atguigu.auth.service.SysRoleService;
|
||||
import com.atguigu.model.system.SysRole;
|
||||
import com.atguigu.model.system.SysUserRole;
|
||||
import com.atguigu.vo.system.AssginRoleVo;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* ClassName: SysRoleServiceImpl
|
||||
* Package: com.atguigu.auth.service.impl
|
||||
*
|
||||
* @author yovinchen
|
||||
* @Create 2023/6/1 23:02
|
||||
*/
|
||||
@Service
|
||||
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
|
||||
|
||||
@Autowired
|
||||
private SysUserRoleMapper sysUserRoleMapper;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> findRoleByUserId(Long userId) {
|
||||
//查询所有的角色
|
||||
List<SysRole> allRolesList = this.list();
|
||||
|
||||
//查询的角色id
|
||||
List<SysUserRole> existUserRoleList = sysUserRoleMapper.selectList(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId).select(SysUserRole::getRoleId));
|
||||
|
||||
List<Long> existRoleIdList = existUserRoleList.stream().map(c -> c.getRoleId()).collect(Collectors.toList());
|
||||
|
||||
//对角色进行分类
|
||||
List<SysRole> assginRoleList = new ArrayList<>();
|
||||
for (SysRole role : allRolesList) {
|
||||
//比较,已分配
|
||||
if (existRoleIdList.contains(role.getId())) {
|
||||
assginRoleList.add(role);
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, Object> roleMap = new HashMap<>();
|
||||
roleMap.put("assginRoleList", assginRoleList);
|
||||
roleMap.put("allRolesList", allRolesList);
|
||||
return roleMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 为用户分配角色
|
||||
*
|
||||
* @param assginRoleVo
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public void doAssign(AssginRoleVo assginRoleVo) {
|
||||
//删除用户的角色数据,在用户角色表 sys_user_role表中根据userid删除
|
||||
sysUserRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, assginRoleVo.getUserId()));
|
||||
//重新为用户分配角色
|
||||
for (Long roleId : assginRoleVo.getRoleIdList()) {
|
||||
//判空
|
||||
if (StringUtils.isEmpty(roleId)) continue;
|
||||
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
sysUserRole.setUserId(assginRoleVo.getUserId());
|
||||
sysUserRole.setRoleId(roleId);
|
||||
sysUserRoleMapper.insert(sysUserRole);
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
package com.atguigu.auth.service.impl;
|
||||
|
||||
import com.atguigu.auth.mapper.SysUserRoleMapper;
|
||||
import com.atguigu.auth.service.SysUserRoleService;
|
||||
import com.atguigu.model.system.SysUserRole;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户角色 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author yovinchen
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
@Service
|
||||
public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements SysUserRoleService {
|
||||
|
||||
}
|
@@ -0,0 +1,40 @@
|
||||
package com.atguigu.auth.service.impl;
|
||||
|
||||
import com.atguigu.auth.mapper.SysUserMapper;
|
||||
import com.atguigu.auth.service.SysUserService;
|
||||
import com.atguigu.model.system.SysUser;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author yovinchen
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
@Service
|
||||
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
|
||||
|
||||
/**
|
||||
* 更新用户状态
|
||||
*
|
||||
* @param id
|
||||
* @param status
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public void updateStatus(Long id, Integer status) {
|
||||
//根据userid查询用户对象、
|
||||
SysUser sysUser = baseMapper.selectById(id);
|
||||
//设置修改状态值
|
||||
if (status.intValue() == 1) {
|
||||
sysUser.setStatus(status);
|
||||
} else {
|
||||
sysUser.setStatus(0);
|
||||
}
|
||||
baseMapper.updateById(sysUser);
|
||||
}
|
||||
}
|
16
service-oa/src/main/resources/application-dev.yml
Normal file
16
service-oa/src/main/resources/application-dev.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
server:
|
||||
port: 8800
|
||||
mybatis-plus:
|
||||
configuration:
|
||||
# 查看日志
|
||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
spring:
|
||||
datasource:
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://localhost:3306/guigu-oa?useSSL=false&useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true
|
||||
username: root
|
||||
password: root
|
||||
jackson:
|
||||
date-format: yyyy-MM-dd HH:mm:ss
|
||||
time-zone: GMT+8
|
5
service-oa/src/main/resources/application.yml
Normal file
5
service-oa/src/main/resources/application.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
spring:
|
||||
application:
|
||||
name: service-oa
|
||||
profiles:
|
||||
active: dev
|
130
service-oa/src/test/java/com/atguigu/auth/TestMpDemo1.java
Normal file
130
service-oa/src/test/java/com/atguigu/auth/TestMpDemo1.java
Normal file
@@ -0,0 +1,130 @@
|
||||
package com.atguigu.auth;
|
||||
|
||||
import com.atguigu.auth.mapper.SysRoleMapper;
|
||||
import com.atguigu.auth.service.SysRoleService;
|
||||
import com.atguigu.model.system.SysRole;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* ClassName: TestMpDemo1
|
||||
* Package: com.atguigu.auth
|
||||
*
|
||||
* @author yovinchen
|
||||
* @Create 2023/6/1 23:04
|
||||
*/
|
||||
@SpringBootTest
|
||||
public class TestMpDemo1 {
|
||||
|
||||
/**
|
||||
* MyBatisPlus 对 service 层和 dao 层都做了很好的封装,直接调对应的CRUD方法就行
|
||||
*/
|
||||
@Autowired
|
||||
private SysRoleMapper sysRoleMapper;
|
||||
|
||||
@Autowired
|
||||
private SysRoleService sysRoleService;
|
||||
|
||||
/**
|
||||
* 使用MP 封装的 service 来操作数据库,查询所有记录
|
||||
*/
|
||||
@Test
|
||||
public void getAllByService() {
|
||||
List<SysRole> list = sysRoleService.list();
|
||||
list.forEach(System.out::println);
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用MP 封装的 mapper查询所有记录
|
||||
*/
|
||||
@Test
|
||||
public void getAllByMapper() {
|
||||
List<SysRole> sysRoles = sysRoleMapper.selectList(null);
|
||||
sysRoles.forEach(System.out::println);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加操作
|
||||
*/
|
||||
@Test
|
||||
public void insert() {
|
||||
SysRole sysRole = new SysRole();
|
||||
sysRole.setRoleName("角色管理员");
|
||||
sysRole.setRoleCode("role");
|
||||
sysRole.setDescription("角色管理员");
|
||||
int result = sysRoleMapper.insert(sysRole);
|
||||
|
||||
System.out.println(result); //影响的行数
|
||||
System.out.println(sysRole.getId()); //id自动回填
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改操作
|
||||
*/
|
||||
@Test
|
||||
public void updateById() {
|
||||
// 根据id查询
|
||||
SysRole sysRole = sysRoleMapper.selectById(9);
|
||||
// 设置修改值
|
||||
sysRole.setRoleName("角色管理员1");
|
||||
// 调用方法实现最终修改
|
||||
int update = sysRoleMapper.updateById(sysRole);
|
||||
// 受影响的行数
|
||||
System.out.println("update = " + update);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id删除
|
||||
*/
|
||||
@Test
|
||||
public void deleteById() {
|
||||
int delete = sysRoleMapper.deleteById(9);
|
||||
// 受影响的行数
|
||||
System.out.println("delete = " + delete);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*/
|
||||
@Test
|
||||
public void deleteBatchByIds() {
|
||||
// 或者下面这种写法
|
||||
int delete = sysRoleMapper.deleteBatchIds(Arrays.asList(8, 9));
|
||||
// 受影响的行数
|
||||
System.out.println("ids = " + delete);
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件查询
|
||||
*/
|
||||
@Test
|
||||
public void testQueryWrapper1() {
|
||||
|
||||
QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("role_name", "系统管理员");
|
||||
|
||||
List<SysRole> list = sysRoleMapper.selectList(queryWrapper);
|
||||
list.forEach(System.out::println);
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件查询
|
||||
*/
|
||||
@Test
|
||||
public void testQueryWrapper2() {
|
||||
|
||||
LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||
//java 8 中写法
|
||||
queryWrapper.eq(SysRole::getRoleName, "系统管理员");
|
||||
|
||||
List<SysRole> list = sysRoleMapper.selectList(queryWrapper);
|
||||
list.forEach(System.out::println);
|
||||
}
|
||||
|
||||
}
|
67
service-oa/src/test/java/com/atguigu/code/CodeGet.java
Normal file
67
service-oa/src/test/java/com/atguigu/code/CodeGet.java
Normal file
@@ -0,0 +1,67 @@
|
||||
package com.atguigu.code;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.baomidou.mybatisplus.generator.AutoGenerator;
|
||||
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
|
||||
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
|
||||
import com.baomidou.mybatisplus.generator.config.PackageConfig;
|
||||
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
|
||||
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
|
||||
|
||||
public class CodeGet {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// 1、创建代码生成器
|
||||
AutoGenerator mpg = new AutoGenerator();
|
||||
|
||||
// 2、全局配置
|
||||
// 全局配置
|
||||
GlobalConfig gc = new GlobalConfig();
|
||||
gc.setOutputDir("/Users/yovinchen/project/Java/project/guigu-oa-parent/service-oa" + "/src/main/java");
|
||||
|
||||
gc.setServiceName("%sService"); //去掉Service接口的首字母I
|
||||
gc.setAuthor("yovinchen");
|
||||
gc.setOpen(false);
|
||||
mpg.setGlobalConfig(gc);
|
||||
|
||||
// 3、数据源配置
|
||||
DataSourceConfig dsc = new DataSourceConfig();
|
||||
dsc.setUrl("jdbc:mysql://localhost:3306/guigu-oa?serverTimezone=UTC&useSSL=false");
|
||||
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
|
||||
dsc.setUsername("root");
|
||||
dsc.setPassword("root");
|
||||
dsc.setDbType(DbType.MYSQL);
|
||||
mpg.setDataSource(dsc);
|
||||
|
||||
// 4、包配置
|
||||
PackageConfig pc = new PackageConfig();
|
||||
pc.setParent("com.atguigu");
|
||||
pc.setModuleName("auth"); //模块名
|
||||
pc.setController("controller");
|
||||
pc.setService("service");
|
||||
pc.setMapper("mapper");
|
||||
mpg.setPackageInfo(pc);
|
||||
|
||||
// 5、策略配置
|
||||
StrategyConfig strategy = new StrategyConfig();
|
||||
|
||||
strategy.setInclude("sys_user_role");
|
||||
//数据库表映射到实体的命名策略
|
||||
strategy.setNaming(NamingStrategy.underline_to_camel);
|
||||
//数据库表字段映射到实体的命名策略
|
||||
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
|
||||
// lombok 模型 @Accessors(chain = true) setter链式操作
|
||||
strategy.setEntityLombokModel(true);
|
||||
//restful api风格控制器
|
||||
strategy.setRestControllerStyle(true);
|
||||
//url中驼峰转连字符¬
|
||||
strategy.setControllerMappingHyphenStyle(true);
|
||||
|
||||
mpg.setStrategy(strategy);
|
||||
|
||||
// 6、执行
|
||||
mpg.execute();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user