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

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

...@@ -104,9 +104,10 @@ public class UserController { ...@@ -104,9 +104,10 @@ public class UserController {
@ApiImplicitParam(name = "id", value = "用户ID", required = true, paramType = "path", dataType = "Long") @ApiImplicitParam(name = "id", value = "用户ID", required = true, paramType = "path", dataType = "Long")
@PatchMapping(value = "/{id}") @PatchMapping(value = "/{id}")
public Result patch(@PathVariable Long id, @RequestBody SysUser user) { 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); LambdaUpdateWrapper<SysUser> updateWrapper = new LambdaUpdateWrapper<SysUser>().eq(SysUser::getId, id);
updateWrapper.set(user.getStatus() != null, SysUser::getStatus, user.getStatus()); 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); boolean status = iSysUserService.update(updateWrapper);
return Result.judge(status); 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; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.admin.dto.UserAuthDTO; import com.youlai.admin.dto.UserAuthDTO;
import com.youlai.admin.pojo.entity.SysUser; import com.youlai.admin.pojo.entity.SysUser;
import com.youlai.common.mybatis.handler.InterceptorIgnore;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List; import java.util.List;
...@@ -11,6 +12,7 @@ import java.util.List; ...@@ -11,6 +12,7 @@ import java.util.List;
@Mapper @Mapper
public interface SysUserMapper extends BaseMapper<SysUser> { public interface SysUserMapper extends BaseMapper<SysUser> {
@InterceptorIgnore(storeAlias = "d")
List<SysUser> list(Page<SysUser> page, SysUser user); List<SysUser> list(Page<SysUser> page, SysUser user);
UserAuthDTO getByUsername(String username); UserAuthDTO getByUsername(String username);
......
...@@ -52,4 +52,8 @@ public class SysUser extends BaseEntity { ...@@ -52,4 +52,8 @@ public class SysUser extends BaseEntity {
private List<String> roles; private List<String> roles;
@TableField(exist = false)
private String keywords;
} }
...@@ -9,17 +9,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -9,17 +9,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.admin.common.constant.SystemConstants; import com.youlai.admin.common.constant.SystemConstants;
import com.youlai.admin.mapper.SysDeptMapper; import com.youlai.admin.mapper.SysDeptMapper;
import com.youlai.admin.pojo.entity.SysDept; 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.DeptVO;
import com.youlai.admin.pojo.vo.TreeSelectVO; import com.youlai.admin.pojo.vo.TreeSelectVO;
import com.youlai.admin.service.ISysDeptService; import com.youlai.admin.service.ISysDeptService;
import com.youlai.admin.service.ISysRolePermissionService;
import com.youlai.admin.service.ISysUserService; import com.youlai.admin.service.ISysUserService;
import com.youlai.common.constant.GlobalConstants; import com.youlai.common.constant.GlobalConstants;
import com.youlai.common.web.util.JwtUtils; import com.youlai.common.web.util.JwtUtils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.apache.logging.log4j.util.Strings; import org.apache.logging.log4j.util.Strings;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -120,8 +119,8 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl ...@@ -120,8 +119,8 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
.eq(SysDept::getStatus, GlobalConstants.STATUS_YES) .eq(SysDept::getStatus, GlobalConstants.STATUS_YES)
.orderByAsc(SysDept::getSort) .orderByAsc(SysDept::getSort)
); );
SysDept sysDept = this.getById(JwtUtils.getJwtPayload().getLong("deptId"));
List<TreeSelectVO> deptSelectList = recursionTreeSelectList(JwtUtils.getJwtPayload().getLong("deptId"), deptList); List<TreeSelectVO> deptSelectList = recursionTreeSelectList(sysDept.getParentId(), deptList);
return deptSelectList; return deptSelectList;
} }
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id id
,username,nickname, ,username,nickname,
gender,password,dept_id, gender,password,dept_id,
avatar,mobile,status, avatar,mobile,status,
email,gmt_create,gmt_modified, email,gmt_create,gmt_modified,
...@@ -44,23 +44,23 @@ ...@@ -44,23 +44,23 @@
</resultMap> </resultMap>
<select id="getByUsername" resultMap="UserAuthMap"> <select id="getByUsername" resultMap="UserAuthMap">
select t1.id userId, t1.username, t1.nickname, t1.password, t1.status, t1.dept_id deptId,t3.code roleCode select t1.id userId, t1.username, t1.nickname, t1.password, t1.status, t1.dept_id deptId, t3.code roleCode
from sys_user t1, from sys_user t1,
sys_user_role t2, sys_user_role t2,
sys_role t3 sys_role t3
where t1.username = #{username} where t1.username = #{username}
and t1.deleted = 0 and t1.deleted = 0
and t1.id = t2.user_id and t1.id = t2.user_id
and t2.role_id = t3.id and t2.role_id = t3.id
</select> </select>
<select id="list" resultType="com.youlai.admin.pojo.entity.SysUser"> <select id="list" resultType="com.youlai.admin.pojo.entity.SysUser">
select u.*,d.name as dept_name , GROUP_CONCAT(r.name) as roleNames select u.*,d.name as dept_name , GROUP_CONCAT(r.name) as roleNames
from sys_user u from sys_user u
left join sys_dept d on u.dept_id= d.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_user_role ur on u.id=ur.user_id
left join sys_role r on ur.role_id=r.id left join sys_role r on ur.role_id=r.id
where 1=1 where 1=1
<if test='user.username!=null and user.username.trim() neq ""'> <if test='user.username!=null and user.username.trim() neq ""'>
and u.username like concat('%',#{user.username},'%') and u.username like concat('%',#{user.username},'%')
...@@ -74,6 +74,11 @@ ...@@ -74,6 +74,11 @@
<if test='user.deptId!=null'> <if test='user.deptId!=null'>
and concat(',',concat(d.tree_path,',',d.id),',') like concat('%,',#{user.deptId},',%') and concat(',',concat(d.tree_path,',',d.id),',') like concat('%,',#{user.deptId},',%')
</if> </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 GROUP BY u.id
</select> </select>
</mapper> </mapper>
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
<dependency> <dependency>
<groupId>com.youlai</groupId> <groupId>com.youlai</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<optional>true</optional>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>
package com.youlai.common.mybatis.handler; package com.youlai.common.mybatis.handler;
import cn.hutool.json.JSONObject; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler; import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
import com.youlai.common.constant.GlobalConstants; import com.youlai.common.constant.GlobalConstants;
import com.youlai.common.web.util.JwtUtils; 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 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.*;
import net.sf.jsqlparser.expression.operators.arithmetic.Concat;
import net.sf.jsqlparser.expression.operators.conditional.AndExpression; import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
import net.sf.jsqlparser.expression.operators.conditional.OrExpression; import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
import net.sf.jsqlparser.expression.operators.relational.EqualsTo; import net.sf.jsqlparser.expression.operators.relational.EqualsTo;
import net.sf.jsqlparser.expression.operators.relational.ExpressionList; import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
import net.sf.jsqlparser.expression.operators.relational.LikeExpression; 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.Column;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.select.*;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
...@@ -56,7 +42,7 @@ public class DataPermissionHandlerImpl implements DataPermissionHandler { ...@@ -56,7 +42,7 @@ public class DataPermissionHandlerImpl implements DataPermissionHandler {
// 如果是超级管理员则放行 // 如果是超级管理员则放行
return where; return where;
}else{ }else{
return dataScopeFilter(annotation.dataPermission(), where); return dataScopeFilter(annotation.dataPermission(),annotation.storeAlias(), where);
} }
} }
} }
...@@ -72,12 +58,12 @@ public class DataPermissionHandlerImpl implements DataPermissionHandler { ...@@ -72,12 +58,12 @@ public class DataPermissionHandlerImpl implements DataPermissionHandler {
* @param where 当前查询条件 * @param where 当前查询条件
* @return 构建后查询条件 * @return 构建后查询条件
*/ */
public static Expression dataScopeFilter(String dataPermission, Expression where) { public static Expression dataScopeFilter(String dataPermission,String storeAlias, Expression where) {
Expression expression = null; Expression expression = null;
if(dataPermission.equals("1")){ if(dataPermission.equals("1")){
return where; return where;
}else{ }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; expression = ObjectUtils.isNotEmpty(expression) ? new AndExpression(expression, equalsTo) : equalsTo;
LikeExpression likeExpression = new LikeExpression(); LikeExpression likeExpression = new LikeExpression();
Function left = new Function(); Function left = new Function();
......
...@@ -19,5 +19,7 @@ public @interface InterceptorIgnore { ...@@ -19,5 +19,7 @@ public @interface InterceptorIgnore {
* 默认打开,需要注解关闭 * 默认打开,需要注解关闭
*/ */
String dataPermission() default "0"; String dataPermission() default "0";
String storeAlias() default "";
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册