提交 07b6d961 编写于 作者: 有来技术

Merge branch 'develop' of gitee.com:youlaitech/youlai-mall into develop

......@@ -104,9 +104,10 @@ public class UserController {
@ApiImplicitParam(name = "id", value = "用户ID", required = true, paramType = "path", dataType = "Long")
@PatchMapping(value = "/{id}")
public Result patch(@PathVariable Long id, @RequestBody SysUser user) {
System.out.println(user.getPassword() != null);
LambdaUpdateWrapper<SysUser> updateWrapper = new LambdaUpdateWrapper<SysUser>().eq(SysUser::getId, id);
updateWrapper.set(user.getStatus() != null, SysUser::getStatus, user.getStatus());
updateWrapper.set(user.getPassword() != null, SysUser::getPassword, passwordEncoder.encode(user.getPassword()));
updateWrapper.set(user.getPassword() != null, SysUser::getPassword,user.getPassword() != null?passwordEncoder.encode(user.getPassword()):null);
boolean status = iSysUserService.update(updateWrapper);
return Result.judge(status);
}
......
package com.youlai.admin.controller.v2;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.admin.pojo.entity.SysUser;
import com.youlai.admin.service.ISysPermissionService;
import com.youlai.admin.service.ISysUserRoleService;
import com.youlai.admin.service.ISysUserService;
import com.youlai.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags = "用户接口")
@RestController
@RequestMapping("/api/v2/users")
@Slf4j
@RequiredArgsConstructor
public class V2UserController {
private final ISysUserService iSysUserService;
@ApiOperation(value = "列表分页")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "页码", paramType = "query", dataType = "Long"),
@ApiImplicitParam(name = "limit", value = "每页数量", paramType = "query", dataType = "Long"),
@ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "mobile", value = "手机号码", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "status", value = "状态", paramType = "query", dataType = "Long"),
@ApiImplicitParam(name = "deptId", value = "部门ID", paramType = "query", dataType = "Long"),
})
@GetMapping
public Result list(Integer page, Integer limit, String keywords, String mobile, Integer status, Long deptId) {
SysUser user = new SysUser();
user.setKeywords(keywords);
user.setMobile(mobile);
user.setStatus(status);
user.setDeptId(deptId);
IPage<SysUser> result = iSysUserService.list(new Page<>(page, limit), user);
return Result.success(result.getRecords(), result.getTotal());
}
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.admin.dto.UserAuthDTO;
import com.youlai.admin.pojo.entity.SysUser;
import com.youlai.common.mybatis.handler.InterceptorIgnore;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
......@@ -11,6 +12,7 @@ import java.util.List;
@Mapper
public interface SysUserMapper extends BaseMapper<SysUser> {
@InterceptorIgnore(storeAlias = "d")
List<SysUser> list(Page<SysUser> page, SysUser user);
UserAuthDTO getByUsername(String username);
......
......@@ -52,4 +52,8 @@ public class SysUser extends BaseEntity {
private List<String> roles;
@TableField(exist = false)
private String keywords;
}
......@@ -9,17 +9,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.admin.common.constant.SystemConstants;
import com.youlai.admin.mapper.SysDeptMapper;
import com.youlai.admin.pojo.entity.SysDept;
import com.youlai.admin.pojo.entity.SysUser;
import com.youlai.admin.pojo.vo.DeptVO;
import com.youlai.admin.pojo.vo.TreeSelectVO;
import com.youlai.admin.service.ISysDeptService;
import com.youlai.admin.service.ISysRolePermissionService;
import com.youlai.admin.service.ISysUserService;
import com.youlai.common.constant.GlobalConstants;
import com.youlai.common.web.util.JwtUtils;
import lombok.AllArgsConstructor;
import org.apache.logging.log4j.util.Strings;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
......@@ -120,8 +119,8 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
.eq(SysDept::getStatus, GlobalConstants.STATUS_YES)
.orderByAsc(SysDept::getSort)
);
List<TreeSelectVO> deptSelectList = recursionTreeSelectList(JwtUtils.getJwtPayload().getLong("deptId"), deptList);
SysDept sysDept = this.getById(JwtUtils.getJwtPayload().getLong("deptId"));
List<TreeSelectVO> deptSelectList = recursionTreeSelectList(sysDept.getParentId(), deptList);
return deptSelectList;
}
......
......@@ -25,7 +25,7 @@
<sql id="Base_Column_List">
id
,username,nickname,
,username,nickname,
gender,password,dept_id,
avatar,mobile,status,
email,gmt_create,gmt_modified,
......@@ -44,23 +44,23 @@
</resultMap>
<select id="getByUsername" resultMap="UserAuthMap">
select t1.id userId, t1.username, t1.nickname, t1.password, t1.status, t1.dept_id deptId,t3.code roleCode
from sys_user t1,
sys_user_role t2,
sys_role t3
where t1.username = #{username}
and t1.deleted = 0
and t1.id = t2.user_id
and t2.role_id = t3.id
select t1.id userId, t1.username, t1.nickname, t1.password, t1.status, t1.dept_id deptId, t3.code roleCode
from sys_user t1,
sys_user_role t2,
sys_role t3
where t1.username = #{username}
and t1.deleted = 0
and t1.id = t2.user_id
and t2.role_id = t3.id
</select>
<select id="list" resultType="com.youlai.admin.pojo.entity.SysUser">
select u.*,d.name as dept_name , GROUP_CONCAT(r.name) as roleNames
from sys_user u
left join sys_dept d on u.dept_id= d.id
left join sys_user_role ur on u.id=ur.user_id
left join sys_role r on ur.role_id=r.id
left join sys_dept d on u.dept_id= d.id
left join sys_user_role ur on u.id=ur.user_id
left join sys_role r on ur.role_id=r.id
where 1=1
<if test='user.username!=null and user.username.trim() neq ""'>
and u.username like concat('%',#{user.username},'%')
......@@ -74,6 +74,11 @@
<if test='user.deptId!=null'>
and concat(',',concat(d.tree_path,',',d.id),',') like concat('%,',#{user.deptId},',%')
</if>
<if test='user.keywords!=null'>
and(u.username like concat('%',#{user.keywords},'%')
OR u.nickname like concat('%',#{user.keywords},'%')
OR u.mobile like concat('%',#{user.keywords},'%'))
</if>
GROUP BY u.id
</select>
</mapper>
......@@ -39,6 +39,7 @@
<dependency>
<groupId>com.youlai</groupId>
<artifactId>common-web</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
package com.youlai.common.mybatis.handler;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
import com.youlai.common.constant.GlobalConstants;
import com.youlai.common.web.util.JwtUtils;
import jdk.nashorn.internal.ir.JoinPredecessor;
import jdk.nashorn.internal.ir.LexicalContext;
import jdk.nashorn.internal.ir.LocalVariableConversion;
import lombok.extern.slf4j.Slf4j;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.expression.*;
import net.sf.jsqlparser.expression.operators.arithmetic.Concat;
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
import net.sf.jsqlparser.expression.operators.relational.EqualsTo;
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
import net.sf.jsqlparser.expression.operators.relational.LikeExpression;
import net.sf.jsqlparser.expression.operators.relational.OldOracleJoinBinaryExpression;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.schema.Column;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.select.*;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
......@@ -56,7 +42,7 @@ public class DataPermissionHandlerImpl implements DataPermissionHandler {
// 如果是超级管理员则放行
return where;
}else{
return dataScopeFilter(annotation.dataPermission(), where);
return dataScopeFilter(annotation.dataPermission(),annotation.storeAlias(), where);
}
}
}
......@@ -72,12 +58,12 @@ public class DataPermissionHandlerImpl implements DataPermissionHandler {
* @param where 当前查询条件
* @return 构建后查询条件
*/
public static Expression dataScopeFilter(String dataPermission, Expression where) {
public static Expression dataScopeFilter(String dataPermission,String storeAlias, Expression where) {
Expression expression = null;
if(dataPermission.equals("1")){
return where;
}else{
EqualsTo equalsTo = new EqualsTo(new Column( "id"),getDeptId());
EqualsTo equalsTo = new EqualsTo(new Column(StrUtil.isEmpty(storeAlias)?"id":storeAlias+".id"),getDeptId());
expression = ObjectUtils.isNotEmpty(expression) ? new AndExpression(expression, equalsTo) : equalsTo;
LikeExpression likeExpression = new LikeExpression();
Function left = new Function();
......
......@@ -19,5 +19,7 @@ public @interface InterceptorIgnore {
* 默认打开,需要注解关闭
*/
String dataPermission() default "0";
String storeAlias() default "";
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册