Commit 4199d49e by yw

项目初始化

parent 2fdf14dd
package cn.datax.common.mapstruct;
import java.util.List;
/**
*
* Mapper文件基类
* 更多的用法需自行实现
* @param <D> 目标对象,一般为DTO对象
* @param <E> 源对象,一般为需要转换的对象
* @param <V> 目标对象,一般为VO对象
*/
public interface EntityMapper<D, E, V> {
/**
* 将源对象转换为DTO对象
* @param e
* @return D
*/
D toDTO(E e);
/**
* 将源对象集合转换为DTO对象集合
* @param es
* @return List<D>
*/
List<D> toDTO(List<E> es);
/**
* 将源对象转换为VO对象
* @param e
* @return D
*/
V toVO(E e);
/**
* 将源对象集合转换为VO对象集合
* @param es
* @return List<D>
*/
List<V> toVO(List<E> es);
/**
* 将目标对象转换为源对象
* @param d
* @return E
*/
E toEntity(D d);
/**
* 将目标对象集合转换为源对象集合
* @param ds
* @return List<E>
*/
List<E> toEntity(List<D> ds);
}
......@@ -26,6 +26,11 @@
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${dynamic-datasource.version}</version>
</dependency>
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>${p6spy.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
# 数据源配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 1234@abcd
type: com.zaxxer.hikari.HikariDataSource
hikari:
auto-commit: false
connection-timeout: 30000
idle-timeout: 25000
login-timeout: 5
max-lifetime: 30000
read-only: false
validation-timeout: 3000
maximum-pool-size: 15
minimum-idle: 5
pool-name: ExpendHikariCP
connection-test-query: SELECT 1 FROM DUAL
data-source-properties:
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
useLocalSessionState: true
rewriteBatchedStatements: true
cacheResultSetMetadata: true
cacheServerConfiguration: true
elideSetAutoCommits: true
maintainTimeStats: false
#data:
# file-server:
# type: fastdfs
# fdfs:
# web-url: ${data.fdfs.web-url}
#oss配置
#oss:
# access-key: tpi8mObnfzZi4ggBX8Bw7zydjoTQ0WeML3RkPKsX
# accessKeySecret: HZBXmSyUTy-haYp0KbBTtsil-GoKjVS2kDKT8Yow
# endpoint: http://pkqtmn0p1.bkt.clouddn.com
# bucketName: public-oss
# domain:
#fastDFS配置
#fdfs:
# soTimeout: 1500
# connectTimeout: 600
# trackerList: ${data.fdfs.trackerList}
mybatis-plus:
mapper-locations: classpath*:mapper/*Mapper.xml
type-aliases-package: cn.data.cloud.service.file.api.entity
global-config:
db-config:
id-type: ID_WORKER_STR
logic-delete-value: -1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 1 # 逻辑未删除值(默认为 0)
banner: false
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
# 数据源配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 1234@abcd
type: com.zaxxer.hikari.HikariDataSource
hikari:
auto-commit: false
connection-timeout: 30000
idle-timeout: 25000
login-timeout: 5
max-lifetime: 30000
read-only: false
validation-timeout: 3000
maximum-pool-size: 15
minimum-idle: 5
pool-name: ExpendHikariCP
connection-test-query: SELECT 1 FROM DUAL
data-source-properties:
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
useLocalSessionState: true
rewriteBatchedStatements: true
cacheResultSetMetadata: true
cacheServerConfiguration: true
elideSetAutoCommits: true
maintainTimeStats: false
\ No newline at end of file
......@@ -41,8 +41,8 @@ spring:
primary: mysql
datasource:
mysql:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
url: jdbc:p6spy:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 1234@abcd
......
......@@ -2,57 +2,74 @@
spring:
redis:
database: 1
host: x.x.x.x
host: 127.0.0.1
port: 6379
password: # 密码(默认为空)
timeout: 6000ms # 连接超时时长(毫秒)
password: # 密码(默认为空)
timeout: 6000ms # 连接超时时长(毫秒)
lettuce:
pool:
max-active: 1000 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 10 # 连接池中的最大空闲连接
min-idle: 5 # 连接池中的最小空闲连接
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://x.x.x.x:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: x.x.x.x
password: x.x.x.x
type: com.zaxxer.hikari.HikariDataSource
hikari:
auto-commit: false
connection-timeout: 30000
idle-timeout: 25000
login-timeout: 5
max-lifetime: 30000
read-only: false
validation-timeout: 3000
maximum-pool-size: 15
minimum-idle: 5
pool-name: ExpendHikariCP
connection-test-query: SELECT 1 FROM DUAL
data-source-properties:
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
useLocalSessionState: true
rewriteBatchedStatements: true
cacheResultSetMetadata: true
cacheServerConfiguration: true
elideSetAutoCommits: true
maintainTimeStats: false
dynamic:
type: com.zaxxer.hikari.HikariDataSource
hikari:
auto-commit: false
connection-timeout: 30000
idle-timeout: 25000
login-timeout: 5
max-lifetime: 30000
read-only: false
validation-timeout: 3000
maximum-pool-size: 15
minimum-idle: 5
pool-name: DataxHikariCP
connection-test-query: SELECT 1 FROM DUAL
data-source-properties:
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
useLocalSessionState: true
rewriteBatchedStatements: true
cacheResultSetMetadata: true
cacheServerConfiguration: true
elideSetAutoCommits: true
maintainTimeStats: false
primary: mysql
datasource:
mysql:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 1234@abcd
mybatis-plus:
mapper-locations: classpath*:mapper/*Mapper.xml
type-aliases-package: cn.data.cloud.service.system.api.entity
type-aliases-package: cn.datax.system.api.entity
global-config:
db-config:
id-type: ID_WORKER_STR
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
logic-delete-value: 0 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 1 # 逻辑未删除值(默认为 0)
banner: false
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# spring security 配置
security:
oauth2:
client:
access-token-uri: http://localhost:8612/auth/oauth/token
user-authorization-uri: http://localhost:8612/auth/oauth/authorize
client-id: datax
client-secret: 123456
scope: all
resource:
loadBalanced: true
token-info-uri: http://localhost:8612/auth/oauth/check_token
\ No newline at end of file
......@@ -38,6 +38,17 @@
<version>${swagger-bootstrap.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>cn.datax</groupId>
<artifactId>datax-common-mybatis</artifactId>
<version>${app.version}</version>
......
......@@ -5,7 +5,10 @@ import cn.datax.common.validate.ValidateGroupForSave;
import cn.datax.common.validate.ValidateGroupForUpdate;
import cn.datax.service.system.api.dto.UserDto;
import cn.datax.service.system.api.entity.UserEntity;
import cn.datax.service.system.mapstruct.UserMapper;
import cn.datax.service.system.service.UserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -33,6 +36,9 @@ public class UserController extends BaseController {
@Autowired
private UserService userService;
@Autowired
private UserMapper userMapper;
@GetMapping("/token")
public Principal tokenUser() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
......@@ -41,12 +47,18 @@ public class UserController extends BaseController {
@GetMapping("/{id}")
public R getUserById(@PathVariable String id) {
return R.ok().setData(userService.getById(id));
UserEntity userEntity = userService.getById(id);
return R.ok().setData(userMapper.toVO(userEntity));
}
@GetMapping("/page")
public R getUserPage(Page page, UserEntity user) {
return R.ok().setData(userService.page(page, Wrappers.query(user)));
public R getUserPage(@RequestParam(value="pageNum", defaultValue="1") Integer pageNum,
@RequestParam(value="pageSize", defaultValue="20") Integer pageSize,
UserDto user) {
QueryWrapper<UserEntity> queryWrapper = Wrappers.emptyWrapper();
IPage<UserEntity> page = userService.page(new Page<>(pageNum, pageSize), queryWrapper);
page.getRecords().stream().map(userMapper::toVO);
return R.ok().setData(page);
}
@PostMapping()
......
package cn.datax.service.system.mapper;
package cn.datax.service.system.dao;
import cn.datax.common.base.BaseDao;
import cn.datax.service.system.api.entity.DeptEntity;
......@@ -11,6 +11,6 @@ import cn.datax.service.system.api.entity.DeptEntity;
* @author yuwei
* @since 2019-09-04
*/
public interface DeptMapper extends BaseDao<DeptEntity> {
public interface DeptDao extends BaseDao<DeptEntity> {
}
package cn.datax.service.system.mapper;
package cn.datax.service.system.dao;
import cn.datax.service.system.api.entity.MenuEntity;
import cn.datax.common.base.BaseDao;
......@@ -11,6 +11,6 @@ import cn.datax.common.base.BaseDao;
* @author yuwei
* @since 2019-09-11
*/
public interface MenuMapper extends BaseDao<MenuEntity> {
public interface MenuDao extends BaseDao<MenuEntity> {
}
package cn.datax.service.system.mapper;
package cn.datax.service.system.dao;
import cn.datax.service.system.api.entity.PostEntity;
import cn.datax.common.base.BaseDao;
......@@ -11,6 +11,6 @@ import cn.datax.common.base.BaseDao;
* @author yuwei
* @since 2019-09-11
*/
public interface PostMapper extends BaseDao<PostEntity> {
public interface PostDao extends BaseDao<PostEntity> {
}
package cn.datax.service.system.mapper;
package cn.datax.service.system.dao;
import cn.datax.common.base.BaseDao;
import cn.datax.service.system.api.entity.RoleEntity;
......@@ -11,6 +11,6 @@ import cn.datax.service.system.api.entity.RoleEntity;
* @author yuwei
* @since 2019-09-04
*/
public interface RoleMapper extends BaseDao<RoleEntity> {
public interface RoleDao extends BaseDao<RoleEntity> {
}
package cn.datax.service.system.mapper;
package cn.datax.service.system.dao;
import cn.datax.service.system.api.entity.RoleMenuEntity;
import cn.datax.common.base.BaseDao;
......@@ -13,7 +13,7 @@ import java.util.List;
* @author yuwei
* @since 2019-09-11
*/
public interface RoleMenuMapper extends BaseDao<RoleMenuEntity> {
public interface RoleMenuDao extends BaseDao<RoleMenuEntity> {
void insertBatch(List<RoleMenuEntity> list);
}
package cn.datax.service.system.mapper;
package cn.datax.service.system.dao;
import cn.datax.common.base.BaseDao;
import cn.datax.service.system.api.entity.UserEntity;
......@@ -11,6 +11,6 @@ import cn.datax.service.system.api.entity.UserEntity;
* @author yuwei
* @since 2019-09-04
*/
public interface UserMapper extends BaseDao<UserEntity> {
public interface UserDao extends BaseDao<UserEntity> {
}
package cn.datax.service.system.mapper;
package cn.datax.service.system.dao;
import cn.datax.service.system.api.entity.UserDeptEntity;
import cn.datax.common.base.BaseDao;
......@@ -13,7 +13,7 @@ import java.util.List;
* @author yuwei
* @since 2019-09-11
*/
public interface UserDeptMapper extends BaseDao<UserDeptEntity> {
public interface UserDeptDao extends BaseDao<UserDeptEntity> {
void insertBatch(List<UserDeptEntity> list);
}
package cn.datax.service.system.mapper;
package cn.datax.service.system.dao;
import cn.datax.service.system.api.entity.UserPostEntity;
import cn.datax.common.base.BaseDao;
......@@ -13,7 +13,7 @@ import java.util.List;
* @author yuwei
* @since 2019-09-11
*/
public interface UserPostMapper extends BaseDao<UserPostEntity> {
public interface UserPostDao extends BaseDao<UserPostEntity> {
void insertBatch(List<UserPostEntity> list);
}
package cn.datax.service.system.mapper;
package cn.datax.service.system.dao;
import cn.datax.common.base.BaseDao;
import cn.datax.service.system.api.entity.UserRoleEntity;
......@@ -13,7 +13,7 @@ import java.util.List;
* @author yuwei
* @since 2019-09-04
*/
public interface UserRoleMapper extends BaseDao<UserRoleEntity> {
public interface UserRoleDao extends BaseDao<UserRoleEntity> {
void insertBatch(List<UserRoleEntity> list);
}
package cn.datax.service.system.mapstruct;
import cn.datax.common.mapstruct.EntityMapper;
import cn.datax.service.system.api.dto.DeptDto;
import cn.datax.service.system.api.entity.DeptEntity;
import cn.datax.service.system.api.vo.DeptVo;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring")
public interface DeptMapper extends EntityMapper<DeptDto, DeptEntity, DeptVo> {
}
package cn.datax.service.system.mapstruct;
import cn.datax.common.mapstruct.EntityMapper;
import cn.datax.service.system.api.dto.MenuDto;
import cn.datax.service.system.api.entity.MenuEntity;
import cn.datax.service.system.api.vo.MenuVo;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring")
public interface MenuMapper extends EntityMapper<MenuDto, MenuEntity, MenuVo> {
}
package cn.datax.service.system.mapstruct;
import cn.datax.common.mapstruct.EntityMapper;
import cn.datax.service.system.api.dto.PostDto;
import cn.datax.service.system.api.entity.PostEntity;
import cn.datax.service.system.api.vo.PostVo;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring")
public interface PostMapper extends EntityMapper<PostDto, PostEntity, PostVo> {
}
package cn.datax.service.system.mapstruct;
import cn.datax.common.mapstruct.EntityMapper;
import cn.datax.service.system.api.dto.RoleDto;
import cn.datax.service.system.api.entity.RoleEntity;
import cn.datax.service.system.api.vo.RoleVo;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring")
public interface RoleMapper extends EntityMapper<RoleDto, RoleEntity, RoleVo> {
}
package cn.datax.service.system.mapstruct;
import cn.datax.common.mapstruct.EntityMapper;
import cn.datax.service.system.api.dto.UserDto;
import cn.datax.service.system.api.entity.UserEntity;
import cn.datax.service.system.api.vo.UserVo;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring")
public interface UserMapper extends EntityMapper<UserDto, UserEntity, UserVo> {
}
package cn.datax.service.system.service.impl;
import cn.datax.common.exception.DataException;
import cn.datax.service.system.api.dto.DeptDto;
import cn.datax.service.system.api.entity.DeptEntity;
import cn.datax.service.system.mapper.DeptMapper;
import cn.datax.service.system.dao.DeptDao;
import cn.datax.service.system.mapstruct.DeptMapper;
import cn.datax.service.system.service.DeptService;
import cn.datax.common.base.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
......@@ -20,27 +23,32 @@ import org.springframework.transaction.annotation.Transactional;
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptEntity> implements DeptService {
public class DeptServiceImpl extends BaseServiceImpl<DeptDao, DeptEntity> implements DeptService {
@Autowired
private DeptMapper deptMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void saveDept(DeptDto deptDto) {
DeptEntity dept = new DeptEntity();
BeanUtils.copyProperties(deptDto, dept);
DeptEntity dept = deptMapper.toEntity(deptDto);
baseMapper.insert(dept);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateDept(DeptDto deptDto) {
DeptEntity dept = new DeptEntity();
BeanUtils.copyProperties(deptDto, dept);
DeptEntity dept = deptMapper.toEntity(deptDto);
baseMapper.updateById(dept);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteDeptById(String id) {
int n = baseMapper.selectCount(Wrappers.<DeptEntity>lambdaQuery().eq(DeptEntity::getParentId, id));
if(n > 0){
throw new DataException("该部门下存在子部门数据");
}
baseMapper.deleteById(id);
}
}
package cn.datax.service.system.service.impl;
import cn.datax.common.exception.DataException;
import cn.datax.service.system.api.dto.MenuDto;
import cn.datax.service.system.api.entity.MenuEntity;
import cn.datax.service.system.mapper.MenuMapper;
import cn.datax.service.system.dao.MenuDao;
import cn.datax.service.system.mapstruct.MenuMapper;
import cn.datax.service.system.service.MenuService;
import cn.datax.common.base.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
......@@ -20,27 +23,32 @@ import org.springframework.transaction.annotation.Transactional;
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuEntity> implements MenuService {
public class MenuServiceImpl extends BaseServiceImpl<MenuDao, MenuEntity> implements MenuService {
@Autowired
private MenuMapper menuMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void saveMenu(MenuDto menuDto) {
MenuEntity menu = new MenuEntity();
BeanUtils.copyProperties(menuDto, menu);
MenuEntity menu = menuMapper.toEntity(menuDto);
baseMapper.insert(menu);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateMenu(MenuDto menuDto) {
MenuEntity menu = new MenuEntity();
BeanUtils.copyProperties(menuDto, menu);
MenuEntity menu = menuMapper.toEntity(menuDto);
baseMapper.updateById(menu);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteMenuById(String id) {
int n = baseMapper.selectCount(Wrappers.<MenuEntity>lambdaQuery().eq(MenuEntity::getParentId, id));
if(n > 0){
throw new DataException("该菜单下存在子菜单数据");
}
baseMapper.deleteById(id);
}
}
......@@ -2,10 +2,11 @@ package cn.datax.service.system.service.impl;
import cn.datax.service.system.api.dto.PostDto;
import cn.datax.service.system.api.entity.PostEntity;
import cn.datax.service.system.mapper.PostMapper;
import cn.datax.service.system.dao.PostDao;
import cn.datax.service.system.mapstruct.PostMapper;
import cn.datax.service.system.service.PostService;
import cn.datax.common.base.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
......@@ -20,21 +21,22 @@ import org.springframework.transaction.annotation.Transactional;
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class PostServiceImpl extends BaseServiceImpl<PostMapper, PostEntity> implements PostService {
public class PostServiceImpl extends BaseServiceImpl<PostDao, PostEntity> implements PostService {
@Autowired
private PostMapper postMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void savePost(PostDto postDto) {
PostEntity post = new PostEntity();
BeanUtils.copyProperties(postDto, post);
PostEntity post = postMapper.toEntity(postDto);
baseMapper.insert(post);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updatePost(PostDto postDto) {
PostEntity post = new PostEntity();
BeanUtils.copyProperties(postDto, post);
PostEntity post = postMapper.toEntity(postDto);
baseMapper.updateById(post);
}
......
......@@ -2,10 +2,11 @@ package cn.datax.service.system.service.impl;
import cn.datax.service.system.api.dto.RoleDto;
import cn.datax.service.system.api.entity.RoleEntity;
import cn.datax.service.system.mapper.RoleMapper;
import cn.datax.service.system.dao.RoleDao;
import cn.datax.service.system.mapstruct.RoleMapper;
import cn.datax.service.system.service.RoleService;
import cn.datax.common.base.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
......@@ -20,21 +21,22 @@ import org.springframework.transaction.annotation.Transactional;
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleEntity> implements RoleService {
public class RoleServiceImpl extends BaseServiceImpl<RoleDao, RoleEntity> implements RoleService {
@Autowired
private RoleMapper roleMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void saveRole(RoleDto roleDto) {
RoleEntity role = new RoleEntity();
BeanUtils.copyProperties(roleDto, role);
RoleEntity role = roleMapper.toEntity(roleDto);
baseMapper.insert(role);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateRole(RoleDto roleDto) {
RoleEntity role = new RoleEntity();
BeanUtils.copyProperties(roleDto, role);
RoleEntity role = roleMapper.toEntity(roleDto);
baseMapper.updateById(role);
}
......
......@@ -5,14 +5,14 @@ import cn.datax.service.system.api.entity.UserDeptEntity;
import cn.datax.service.system.api.entity.UserEntity;
import cn.datax.service.system.api.entity.UserPostEntity;
import cn.datax.service.system.api.entity.UserRoleEntity;
import cn.datax.service.system.mapper.UserDeptMapper;
import cn.datax.service.system.mapper.UserMapper;
import cn.datax.service.system.mapper.UserPostMapper;
import cn.datax.service.system.mapper.UserRoleMapper;
import cn.datax.service.system.dao.UserDao;
import cn.datax.service.system.dao.UserDeptDao;
import cn.datax.service.system.dao.UserPostDao;
import cn.datax.service.system.dao.UserRoleDao;
import cn.datax.service.system.mapstruct.UserMapper;
import cn.datax.service.system.service.UserService;
import cn.datax.common.base.BaseServiceImpl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
......@@ -31,53 +31,54 @@ import java.util.stream.Collectors;
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserEntity> implements UserService {
public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implements UserService {
@Autowired
private UserDeptMapper userDeptMapper;
private UserDeptDao userDeptMapper;
@Autowired
private UserPostMapper userPostMapper;
private UserPostDao userPostMapper;
@Autowired
private UserRoleMapper userRoleMapper;
private UserRoleDao userRoleMapper;
@Autowired
private UserMapper userMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void saveUser(UserDto userDto) {
UserEntity user = new UserEntity();
BeanUtils.copyProperties(userDto, user);
UserEntity user = userMapper.toEntity(userDto);
baseMapper.insert(user);
insertBatchRole(userDto, user);
insertBatchDept(userDto, user);
insertBatchPost(userDto, user);
insertBatchRole(userDto.getRoles(), user.getId());
insertBatchDept(userDto.getDepts(), user.getId());
insertBatchPost(userDto.getPosts(), user.getId());
}
private void insertBatchPost(UserDto userDto, UserEntity user) {
List<UserPostEntity> userPostList = userDto.getPosts()
private void insertBatchPost(List<String> posts, String userId) {
List<UserPostEntity> userPostList = posts
.stream().map(postId -> {
UserPostEntity userPost = new UserPostEntity();
userPost.setUserId(user.getId());
userPost.setUserId(userId);
userPost.setPostId(postId);
return userPost;
}).collect(Collectors.toList());
userPostMapper.insertBatch(userPostList);
}
private void insertBatchDept(UserDto userDto, UserEntity user) {
List<UserDeptEntity> userDeptList = userDto.getDepts()
private void insertBatchDept(List<String> deptss, String userId) {
List<UserDeptEntity> userDeptList = deptss
.stream().map(deptId -> {
UserDeptEntity userDept = new UserDeptEntity();
userDept.setUserId(user.getId());
userDept.setUserId(userId);
userDept.setDeptId(deptId);
return userDept;
}).collect(Collectors.toList());
userDeptMapper.insertBatch(userDeptList);
}
private void insertBatchRole(UserDto userDto, UserEntity user) {
List<UserRoleEntity> userRoleList = userDto.getRoles()
private void insertBatchRole(List<String> roles, String userId) {
List<UserRoleEntity> userRoleList = roles
.stream().map(roleId -> {
UserRoleEntity userRole = new UserRoleEntity();
userRole.setUserId(user.getId());
userRole.setUserId(userId);
userRole.setRoleId(roleId);
return userRole;
}).collect(Collectors.toList());
......@@ -87,18 +88,17 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserEntity> imp
@Override
@Transactional(rollbackFor = Exception.class)
public void updateUser(UserDto userDto) {
UserEntity user = new UserEntity();
BeanUtils.copyProperties(userDto, user);
UserEntity user = userMapper.toEntity(userDto);
baseMapper.updateById(user);
userRoleMapper.delete(Wrappers.<UserRoleEntity>lambdaQuery()
.eq(UserRoleEntity::getUserId, userDto.getId()));
insertBatchRole(userDto, user);
insertBatchRole(userDto.getRoles(), user.getId());
userDeptMapper.delete(Wrappers.<UserDeptEntity>lambdaQuery()
.eq(UserDeptEntity::getUserId, userDto.getId()));
insertBatchDept(userDto, user);
insertBatchDept(userDto.getDepts(), user.getId());
userPostMapper.delete(Wrappers.<UserPostEntity>lambdaQuery()
.eq(UserPostEntity::getUserId, userDto.getId()));
insertBatchPost(userDto, user);
insertBatchPost(userDto.getPosts(), user.getId());
}
@Override
......
<?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="cn.datax.service.system.mapper.DeptMapper">
<mapper namespace="cn.datax.service.system.dao.DeptDao">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.datax.service.system.api.entity.DeptEntity">
......
<?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="cn.datax.service.system.mapper.MenuMapper">
<mapper namespace="cn.datax.service.system.dao.MenuDao">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.datax.service.system.api.entity.MenuEntity">
......
<?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="cn.datax.service.system.mapper.PostMapper">
<mapper namespace="cn.datax.service.system.dao.PostDao">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.datax.service.system.api.entity.PostEntity">
......
<?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="cn.datax.service.system.mapper.RoleMapper">
<mapper namespace="cn.datax.service.system.dao.RoleDao">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.datax.service.system.api.entity.RoleEntity">
......
<?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="cn.datax.service.system.mapper.RoleMenuMapper">
<mapper namespace="cn.datax.service.system.dao.RoleMenuDao">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.datax.service.system.api.entity.RoleMenuEntity">
......
<?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="cn.datax.service.system.mapper.UserMapper">
<mapper namespace="cn.datax.service.system.dao.UserDao">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.datax.service.system.api.entity.UserEntity">
......
<?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="cn.datax.service.system.mapper.UserDeptMapper">
<mapper namespace="cn.datax.service.system.dao.UserDeptDao">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.datax.service.system.api.entity.UserDeptEntity">
......
<?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="cn.datax.service.system.mapper.UserPostMapper">
<mapper namespace="cn.datax.service.system.dao.UserPostDao">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.datax.service.system.api.entity.UserPostEntity">
......
<?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="cn.datax.service.system.mapper.UserRoleMapper">
<mapper namespace="cn.datax.service.system.dao.UserRoleDao">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.datax.service.system.api.entity.UserRoleEntity">
......
module.log=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
# 自定义日志打印
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
#日志输出到控制台
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
# 使用日志系统记录 sql
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
# 设置 p6spy driver 代理
deregisterdrivers=true
# 取消JDBC URL前缀
useprefix=true
# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
excludecategories=info,debug,result,batch,resultset
# 日期格式
dateformat=yyyy-MM-dd HH:mm:ss
# 实际驱动可多个
#driverlist=org.h2.Driver
# 是否开启慢SQL记录
outagedetection=true
# 慢SQL记录标准 2 秒
outagedetectioninterval=2
\ No newline at end of file
......@@ -33,7 +33,7 @@ public class CodeGenerator {
// 开启 baseColumnList
gc.setBaseColumnList(true);
gc.setEntityName("%sEntity");
gc.setMapperName("%sMapper");
gc.setMapperName("%sDao");
gc.setXmlName("%sMapper");
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
......
......@@ -27,6 +27,7 @@
<hutool.version>5.0.3</hutool.version>
<mybatis-plus.version>3.2.0</mybatis-plus.version>
<dynamic-datasource.version>2.5.7</dynamic-datasource.version>
<p6spy.version>3.8.6</p6spy.version>
<velocity.version>2.1</velocity.version>
<commons.io.version>2.6</commons.io.version>
<commons.fileupload.version>1.4</commons.fileupload.version>
......@@ -36,6 +37,7 @@
<common-pool.version>2.7.0</common-pool.version>
<swagger2.version>2.9.2</swagger2.version>
<swagger-bootstrap.version>1.9.6</swagger-bootstrap.version>
<mapstruct.version>1.3.1.Final</mapstruct.version>
</properties>
<modules>
......
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