Commit a490322d by yuwei

项目初始化

parent 85fd6d57
package cn.datax.common.base;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class BaseQueryParams implements Serializable {
private static final long serialVersionUID = 1L;
// 当前页码
private Integer pageNum;
// 分页条数
private Integer pageSize;
// 显示字段
private List<String> columnList;
// 排序
private List<OrderItem> orderList;
@Data
public class OrderItem{
private String column;
private boolean asc;
}
}
...@@ -23,7 +23,7 @@ public class GlobalExceptionHandler { ...@@ -23,7 +23,7 @@ public class GlobalExceptionHandler {
*/ */
@ExceptionHandler(DataException.class) @ExceptionHandler(DataException.class)
public R handleWithException(DataException e) { public R handleWithException(DataException e) {
log.error("自定义异常信息 ex={}", e.getMessage(), ThrowableUtil.getStackTrace(e)); log.error("自定义异常信息 ex={},StackTrace={}", e.getMessage(), ThrowableUtil.getStackTrace(e));
return R.error(e.getMessage()); return R.error(e.getMessage());
} }
...@@ -37,7 +37,7 @@ public class GlobalExceptionHandler { ...@@ -37,7 +37,7 @@ public class GlobalExceptionHandler {
.stream() .stream()
.map(FieldError::getDefaultMessage) .map(FieldError::getDefaultMessage)
.collect(Collectors.toList())); .collect(Collectors.toList()));
log.error("参数校验异常信息 ex={}", e.getMessage(), ThrowableUtil.getStackTrace(e)); log.error("参数校验异常信息 ex={},StackTrace={}", e.getMessage(), ThrowableUtil.getStackTrace(e));
return R.error(message); return R.error(message);
} }
...@@ -51,13 +51,13 @@ public class GlobalExceptionHandler { ...@@ -51,13 +51,13 @@ public class GlobalExceptionHandler {
.stream() .stream()
.map(ConstraintViolation::getMessage) .map(ConstraintViolation::getMessage)
.collect(Collectors.toList())); .collect(Collectors.toList()));
log.error("参数校验异常信息 ex={}", e.getMessage(), ThrowableUtil.getStackTrace(e)); log.error("参数校验异常信息 ex={},StackTrace={}", e.getMessage(), ThrowableUtil.getStackTrace(e));
return R.error(message); return R.error(message);
} }
@ExceptionHandler(Exception.class) @ExceptionHandler(Exception.class)
public R handleException(Exception e) { public R handleException(Exception e) {
log.error("全局异常信息 ex={}", e.getMessage(), ThrowableUtil.getStackTrace(e)); log.error("全局异常信息ex={},StackTrace={}", e.getMessage(), ThrowableUtil.getStackTrace(e));
return R.error(e.getMessage()); return R.error(e.getMessage());
} }
......
...@@ -11,15 +11,6 @@ import org.springframework.context.annotation.Import; ...@@ -11,15 +11,6 @@ import org.springframework.context.annotation.Import;
* @since 2019/10/30 * @since 2019/10/30
*/ */
@ComponentScan({"cn.datax.common.log"}) @ComponentScan({"cn.datax.common.log"})
@Import({LogAspect.class, LogAsyncConfig.class})
public class AutoConfiguration { public class AutoConfiguration {
@Bean
public LogAspect logAspect() {
return new LogAspect();
}
@Bean
public LogAsyncConfig logAsyncConfig() {
return new LogAsyncConfig();
}
} }
...@@ -2,6 +2,7 @@ package cn.datax.common.mybatis.config; ...@@ -2,6 +2,7 @@ package cn.datax.common.mybatis.config;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
/** /**
* 扫描注入bean * 扫描注入bean
...@@ -9,15 +10,6 @@ import org.springframework.context.annotation.ComponentScan; ...@@ -9,15 +10,6 @@ import org.springframework.context.annotation.ComponentScan;
* @since 2019/10/25 * @since 2019/10/25
*/ */
@ComponentScan({"cn.datax.common.mybatis"}) @ComponentScan({"cn.datax.common.mybatis"})
@Import({DataBatisPlusConfig.class, DataMetaObjectHandler.class})
public class AutoConfiguration { public class AutoConfiguration {
@Bean
public DataBatisPlusConfig dataBatisPlusConfig() {
return new DataBatisPlusConfig();
}
@Bean
public DataMetaObjectHandler dataMetaObjectHandler() {
return new DataMetaObjectHandler();
}
} }
package cn.datax.common.redis.config; package cn.datax.common.redis.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
/** /**
* 扫描注入bean * 扫描注入bean
...@@ -9,10 +9,6 @@ import org.springframework.context.annotation.ComponentScan; ...@@ -9,10 +9,6 @@ import org.springframework.context.annotation.ComponentScan;
* @since 2019/10/25 * @since 2019/10/25
*/ */
@ComponentScan({"cn.datax.common.redis"}) @ComponentScan({"cn.datax.common.redis"})
@Import({RedisConfig.class})
public class AutoConfiguration { public class AutoConfiguration {
@Bean
public RedisConfig redisConfig() {
return new RedisConfig();
}
} }
package cn.datax.service.system.api.query;
import cn.datax.common.base.BaseQueryParams;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class UserQuery extends BaseQueryParams {
private static final long serialVersionUID=1L;
/**
* 用户名
*/
private String username;
/**
* 部门ID
*/
private String deptId;
}
...@@ -51,7 +51,7 @@ public class LogController extends BaseController { ...@@ -51,7 +51,7 @@ public class LogController extends BaseController {
public R getPostPage(@RequestParam(value="pageNum", defaultValue="1") Integer pageNum, public R getPostPage(@RequestParam(value="pageNum", defaultValue="1") Integer pageNum,
@RequestParam(value="pageSize", defaultValue="20") Integer pageSize, @RequestParam(value="pageSize", defaultValue="20") Integer pageSize,
LogDto log) { LogDto log) {
QueryWrapper<LogEntity> queryWrapper = Wrappers.emptyWrapper(); QueryWrapper<LogEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StrUtil.isNotBlank(log.getTitle()), "title", log.getTitle()); queryWrapper.like(StrUtil.isNotBlank(log.getTitle()), "title", log.getTitle());
IPage<LogEntity> page = logService.page(new Page<>(pageNum, pageSize), queryWrapper); IPage<LogEntity> page = logService.page(new Page<>(pageNum, pageSize), queryWrapper);
return R.ok().setData(page); return R.ok().setData(page);
......
...@@ -59,7 +59,7 @@ public class PostController extends BaseController { ...@@ -59,7 +59,7 @@ public class PostController extends BaseController {
public R getPostPage(@RequestParam(value="pageNum", defaultValue="1") Integer pageNum, public R getPostPage(@RequestParam(value="pageNum", defaultValue="1") Integer pageNum,
@RequestParam(value="pageSize", defaultValue="20") Integer pageSize, @RequestParam(value="pageSize", defaultValue="20") Integer pageSize,
PostDto post) { PostDto post) {
QueryWrapper<PostEntity> queryWrapper = Wrappers.emptyWrapper(); QueryWrapper<PostEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StrUtil.isNotBlank(post.getPostName()), "post_name", post.getPostName()); queryWrapper.like(StrUtil.isNotBlank(post.getPostName()), "post_name", post.getPostName());
IPage<PostEntity> page = postService.page(new Page<>(pageNum, pageSize), queryWrapper); IPage<PostEntity> page = postService.page(new Page<>(pageNum, pageSize), queryWrapper);
return R.ok().setData(page); return R.ok().setData(page);
......
...@@ -8,6 +8,7 @@ import cn.datax.service.system.api.entity.RoleEntity; ...@@ -8,6 +8,7 @@ import cn.datax.service.system.api.entity.RoleEntity;
import cn.datax.service.system.mapstruct.RoleMapper; import cn.datax.service.system.mapstruct.RoleMapper;
import cn.datax.service.system.service.RoleService; import cn.datax.service.system.service.RoleService;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
...@@ -71,7 +72,7 @@ public class RoleController extends BaseController { ...@@ -71,7 +72,7 @@ public class RoleController extends BaseController {
public R getRolePage(@RequestParam(value="pageNum", defaultValue="1") Integer pageNum, public R getRolePage(@RequestParam(value="pageNum", defaultValue="1") Integer pageNum,
@RequestParam(value="pageSize", defaultValue="20") Integer pageSize, @RequestParam(value="pageSize", defaultValue="20") Integer pageSize,
RoleDto role) { RoleDto role) {
QueryWrapper<RoleEntity> queryWrapper = Wrappers.emptyWrapper(); QueryWrapper<RoleEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StrUtil.isNotBlank(role.getRoleName()), "role_name", role.getRoleName()); queryWrapper.like(StrUtil.isNotBlank(role.getRoleName()), "role_name", role.getRoleName());
IPage<RoleEntity> page = roleService.page(new Page<>(pageNum, pageSize), queryWrapper); IPage<RoleEntity> page = roleService.page(new Page<>(pageNum, pageSize), queryWrapper);
return R.ok().setData(page); return R.ok().setData(page);
......
...@@ -7,12 +7,15 @@ import cn.datax.common.validate.ValidateGroupForUpdate; ...@@ -7,12 +7,15 @@ import cn.datax.common.validate.ValidateGroupForUpdate;
import cn.datax.service.system.api.dto.UserDto; import cn.datax.service.system.api.dto.UserDto;
import cn.datax.service.system.api.dto.UserPasswordDto; import cn.datax.service.system.api.dto.UserPasswordDto;
import cn.datax.service.system.api.entity.UserEntity; import cn.datax.service.system.api.entity.UserEntity;
import cn.datax.service.system.api.query.UserQuery;
import cn.datax.service.system.mapstruct.UserMapper; import cn.datax.service.system.mapstruct.UserMapper;
import cn.datax.service.system.service.UserService; import cn.datax.service.system.service.UserService;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
...@@ -57,18 +60,23 @@ public class UserController extends BaseController { ...@@ -57,18 +60,23 @@ public class UserController extends BaseController {
@ApiOperation(value = "用户分页查询", notes = "") @ApiOperation(value = "用户分页查询", notes = "")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "当前页码", required = true, dataType = "int", example = "1"), @ApiImplicitParam(name = "userQuery", value = "用户查询实体userQuery", required = true, dataTypeClass = UserQuery.class)
@ApiImplicitParam(name = "pageSize", value = "分页条数", required = true, dataType = "int", example = "20"),
@ApiImplicitParam(name = "user", value = "用户详细实体user", required = false, dataTypeClass = UserDto.class)
}) })
@GetMapping("/page") @GetMapping("/page")
public R getUserPage(@RequestParam(value="pageNum", defaultValue="1") Integer pageNum, public R getUserPage(UserQuery userQuery) {
@RequestParam(value="pageSize", defaultValue="20") Integer pageSize, QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();
UserDto user) { if(CollUtil.isNotEmpty(userQuery.getColumnList())){
QueryWrapper<UserEntity> queryWrapper = Wrappers.emptyWrapper(); queryWrapper.select(ArrayUtil.toArray(userQuery.getColumnList(), String.class));
queryWrapper.like(StrUtil.isNotBlank(user.getUsername()), "username", user.getUsername()); }
IPage<UserEntity> page = userService.page(new Page<>(pageNum, pageSize), queryWrapper); queryWrapper.like(StrUtil.isNotBlank(userQuery.getUsername()), "username", userQuery.getUsername());
page.getRecords().stream().map(userMapper::toVO); queryWrapper.apply(StrUtil.isNotBlank(userQuery.getDeptId()), "(select dept_id from sys_user_dept where user_id = id) = {0}", userQuery.getDeptId());
if(CollUtil.isNotEmpty(userQuery.getOrderList())){
userQuery.getOrderList().stream().forEach(orderItem -> {
queryWrapper.orderBy(StrUtil.isNotBlank(orderItem.getColumn()), orderItem.isAsc(), orderItem.getColumn());
});
}
IPage<UserEntity> page = userService.page(new Page<>(userQuery.getPageNum(), userQuery.getPageSize()), queryWrapper);
System.out.println(JSON.toJSONString(page));
return R.ok().setData(page); return R.ok().setData(page);
} }
......
...@@ -17,6 +17,8 @@ import cn.hutool.core.util.ArrayUtil; ...@@ -17,6 +17,8 @@ import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
...@@ -35,6 +37,7 @@ import java.util.stream.Collectors; ...@@ -35,6 +37,7 @@ import java.util.stream.Collectors;
* @author yuwei * @author yuwei
* @since 2019-09-04 * @since 2019-09-04
*/ */
@CacheConfig(cacheNames = {"users"})
@Service @Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implements UserService { public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implements UserService {
...@@ -137,6 +140,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem ...@@ -137,6 +140,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
userDao.updateUserPassword(passwordEncode, userPasswordDto.getId()); userDao.updateUserPassword(passwordEncode, userPasswordDto.getId());
} }
@Cacheable(key = "#username")
@Override @Override
public UserInfo getUserByUsername(String username) { public UserInfo getUserByUsername(String username) {
UserInfo userInfo = new UserInfo(); UserInfo userInfo = new UserInfo();
......
...@@ -31,13 +31,13 @@ ...@@ -31,13 +31,13 @@
</sql> </sql>
<select id="selectMenuByRoleIds" parameterType="java.util.List" resultMap="BaseResultMap"> <select id="selectMenuByRoleIds" parameterType="java.util.List" resultMap="BaseResultMap">
select SELECT
m.id, m.create_by, m.create_time, m.update_by, m.update_time, m.id, m.create_by, m.create_time, m.update_by, m.update_time,
m.parent_id, m.menu_name, m.menu_path, m.menu_component, m.menu_perms, m.menu_icon, m.menu_type, m.menu_sort, m.status m.parent_id, m.menu_name, m.menu_path, m.menu_component, m.menu_perms, m.menu_icon, m.menu_type, m.menu_sort, m.status
from FROM
sys_menu m sys_menu m
left join sys_role_menu rm om m.id = rm.menu_id LEFT JOIN sys_role_menu rm ON m.id = rm.menu_id
where m.status = 1 and rm.role_id in WHERE m.status = 1 AND rm.role_id IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")"> <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
......
...@@ -32,45 +32,45 @@ ...@@ -32,45 +32,45 @@
</sql> </sql>
<update id="updateUserPassword"> <update id="updateUserPassword">
update sys_user set password = #{password} where id = #{id} UPDATE sys_user SET password = #{password} WHERE id = #{id}
</update> </update>
<select id="getDeptList" resultType="cn.datax.service.system.api.entity.DeptEntity"> <select id="getDeptList" resultType="cn.datax.service.system.api.entity.DeptEntity">
select SELECT
<include refid="cn.datax.service.system.dao.DeptDao.Dept_Column_List"> <include refid="cn.datax.service.system.dao.DeptDao.Dept_Column_List">
<property name="alias" value="d"/> <property name="alias" value="d"/>
</include> </include>
from sys_dept d FROM sys_dept d
left join sys_user_dept ud on d.id = ud.dept_id LEFT JOIN sys_user_dept ud ON d.id = ud.dept_id
where 1 = 1 and d.status = 1 WHERE 1 = 1 AND d.status = 1
<if test="null != userId and '' != userId"> <if test="null != userId and '' != userId">
and ud.user_id = #{userId} AND ud.user_id = #{userId}
</if> </if>
</select> </select>
<select id="getRoleList" resultType="cn.datax.service.system.api.entity.RoleEntity"> <select id="getRoleList" resultType="cn.datax.service.system.api.entity.RoleEntity">
select SELECT
<include refid="cn.datax.service.system.dao.RoleDao.Role_Column_List"> <include refid="cn.datax.service.system.dao.RoleDao.Role_Column_List">
<property name="alias" value="r"/> <property name="alias" value="r"/>
</include> </include>
from sys_role r FROM sys_role r
left join sys_user_role ur on r.id = ur.role_id LEFT JOIN sys_user_role ur ON r.id = ur.role_id
where 1 = 1 and r.status = 1 WHERE 1 = 1 AND r.status = 1
<if test="null != userId and '' != userId"> <if test="null != userId and '' != userId">
and ur.user_id = #{userId} AND ur.user_id = #{userId}
</if> </if>
</select> </select>
<select id="getPostList" resultType="cn.datax.service.system.api.entity.PostEntity"> <select id="getPostList" resultType="cn.datax.service.system.api.entity.PostEntity">
select SELECT
<include refid="cn.datax.service.system.dao.PostDao.Post_Column_List"> <include refid="cn.datax.service.system.dao.PostDao.Post_Column_List">
<property name="alias" value="p"/> <property name="alias" value="p"/>
</include> </include>
from sys_post p FROM sys_post p
left join sys_user_post up on p.id = up.post_id LEFT JOIN sys_user_post up ON p.id = up.post_id
where 1 = 1 and p.status = 1 WHERE 1 = 1 AND p.status = 1
<if test="null != userId and '' != userId"> <if test="null != userId and '' != userId">
and up.user_id = #{userId} AND up.user_id = #{userId}
</if> </if>
</select> </select>
</mapper> </mapper>
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