diff options
| author | shizhendong <[email protected]> | 2022-06-07 17:47:57 +0800 |
|---|---|---|
| committer | shizhendong <[email protected]> | 2022-06-07 17:47:57 +0800 |
| commit | b537c7eb2da217e9220a108b217f12491becf1b9 (patch) | |
| tree | b0fc732a86cb919a7b98984df734f67e3cba8e0c | |
| parent | f5afa455521286f1668521bbcfcceb8e039a51c7 (diff) | |
feat: NEZ-1896 新增 api key 用户个人接口开发rel-22.05.01
1. 数据库表 和 接口 增加 remark 字段
2. 用户 角色发生变化时,同步修改 api key 中 roleId
8 files changed, 238 insertions, 116 deletions
diff --git a/nz-admin/src/main/java/com/nis/modules/sys/controller/SysApiKeyController.java b/nz-admin/src/main/java/com/nis/modules/sys/controller/SysApiKeyController.java index 3926eab6..e12c24d1 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/controller/SysApiKeyController.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/controller/SysApiKeyController.java @@ -14,36 +14,61 @@ import java.util.Map; @RestController @RequestMapping("/sys/apiKey") public class SysApiKeyController { - + @Autowired private SysApiKeyService sysApiKeyService; - + @GetMapping @SysLog(operation = OperationEnum.QUERY,type = TypeEnum.SYSTEMAPIKEY) public R queryCredentialList(@RequestParam Map<String,Object> params) { PageUtils page = sysApiKeyService.queryPage(params); return R.ok(page); } - + @PostMapping @SysLog(operation = OperationEnum.ADD,type = TypeEnum.SYSTEMAPIKEY) @RequiresPermissions({"sys:apiKey:save"}) public R addSysApiKey(@RequestBody SysApiKey sysApiKey) { ValidateUtils.is(sysApiKey.getName()).notNull(RCode.SYSAPIKEY_NAME_ISNULL).maxLength(64) .and(sysApiKey.getRoleId()).notNull(RCode.SYSAPIKEY_ROLEID_ISNULL); - + Integer id = sysApiKeyService.addSysApiKey(sysApiKey); return R.ok().putData("id", id); } - + @DeleteMapping @SysLog(operation = OperationEnum.DELETE,type = TypeEnum.SYSTEMAPIKEY) @RequiresPermissions({"sys:apiKey:delete"}) public R removeSysApiKey(@RequestParam String ids) { ValidateUtils.is(ids).notNull(RCode.SYSAPIKEY_ID_ISNULL); - + sysApiKeyService.removeSysApiKeys(ids); return R.ok(); } - + + @GetMapping("/self") + @SysLog(operation = OperationEnum.QUERY, type = TypeEnum.SYSTEMAPIKEY) + public R querySelfApiKeys(@RequestParam Map<String, Object> params) { + PageUtils page = sysApiKeyService.querySelfApiKeys(params); + return R.ok(page); + } + + @PostMapping("/self") + @RequiresPermissions({"sys:apiKey:save"}) + @SysLog(operation = OperationEnum.QUERY, type = TypeEnum.SYSTEMAPIKEY) + public R addSelfApiKey(@RequestBody SysApiKey sysApiKey) { + ValidateUtils.is(sysApiKey.getName()).notNull(RCode.SYSAPIKEY_NAME_ISNULL).maxLength(64); + + return R.ok(sysApiKeyService.addSelfApiKey(sysApiKey)); + } + + @DeleteMapping("/self") + @SysLog(operation = OperationEnum.DELETE, type = TypeEnum.SYSTEMAPIKEY) + @RequiresPermissions({"sys:apiKey:delete"}) + public R removeSelfApiKeys(@RequestParam String ids) { + ValidateUtils.is(ids).notNull(RCode.SYSAPIKEY_ID_ISNULL); + + sysApiKeyService.removeSelfApiKeys(ids); + return R.ok(); + } } diff --git a/nz-admin/src/main/java/com/nis/modules/sys/dao/SysApiKeyDao.java b/nz-admin/src/main/java/com/nis/modules/sys/dao/SysApiKeyDao.java index 15ee3e01..db2ba883 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/dao/SysApiKeyDao.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/dao/SysApiKeyDao.java @@ -1,18 +1,22 @@ package com.nis.modules.sys.dao; -import java.util.List; -import java.util.Map; - -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.nis.modules.sys.entity.SysApiKey; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; + +import java.util.List; +import java.util.Map; @Mapper public interface SysApiKeyDao extends BaseMapper<SysApiKey>{ List<SysApiKey> queryList(IPage page,@Param("params") Map<String, Object> params); - + + List<SysApiKey> querySelfApiKeys(IPage result, @Param("params") Map<String, Object> params); + + @Update("UPDATE sys_api_key SET role_id = #{roleId} where create_by = #{userId};") + void updateRoleIdByCreateBy(@Param("userId") Integer userId, @Param("roleId") Integer roleId); } diff --git a/nz-admin/src/main/java/com/nis/modules/sys/entity/SysApiKey.java b/nz-admin/src/main/java/com/nis/modules/sys/entity/SysApiKey.java index a62c221f..6f45a960 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/entity/SysApiKey.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/entity/SysApiKey.java @@ -1,33 +1,37 @@ package com.nis.modules.sys.entity; -import java.util.Date; - import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; - import lombok.Data; +import java.util.Date; + @Data @TableName("sys_api_key") public class SysApiKey { - + private Integer id; - + private String name; - + private String token; - + private Integer roleId; - + private Integer createBy; - + private Date createAt; - + private Date expireAt; - + + /** + * 备注 + */ + private String remark; + @TableField(exist = false) private SysUserEntity createUser; - + @TableField(exist = false) private SysRoleEntity role; } diff --git a/nz-admin/src/main/java/com/nis/modules/sys/service/SysApiKeyService.java b/nz-admin/src/main/java/com/nis/modules/sys/service/SysApiKeyService.java index d01e889a..d5c145b0 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/service/SysApiKeyService.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/service/SysApiKeyService.java @@ -1,16 +1,24 @@ package com.nis.modules.sys.service; -import java.util.Map; - import com.baomidou.mybatisplus.extension.service.IService; import com.nis.common.utils.PageUtils; import com.nis.modules.sys.entity.SysApiKey; -public interface SysApiKeyService extends IService<SysApiKey>{ - - PageUtils queryPage(Map<String,Object> params); - - Integer addSysApiKey(SysApiKey sysApiKey); - - void removeSysApiKeys(String ids); +import java.util.Map; + +public interface SysApiKeyService extends IService<SysApiKey> { + + PageUtils queryPage(Map<String, Object> params); + + Integer addSysApiKey(SysApiKey sysApiKey); + + void removeSysApiKeys(String ids); + + PageUtils querySelfApiKeys(Map<String, Object> params); + + Map<String, Object> addSelfApiKey(SysApiKey sysApiKey); + + void removeSelfApiKeys(String ids); + + void updateRoleIdByUser(Integer userId, Integer roleId); } diff --git a/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysApiKeyServiceImpl.java b/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysApiKeyServiceImpl.java index 26652e40..6962c33e 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysApiKeyServiceImpl.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysApiKeyServiceImpl.java @@ -1,33 +1,32 @@ package com.nis.modules.sys.service.impl; -import java.util.*; -import java.util.stream.Collectors; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Service; - +import cn.hutool.core.lang.UUID; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nis.common.exception.NZException; -import com.nis.common.utils.DateUtil; -import com.nis.common.utils.PageUtils; -import com.nis.common.utils.Query; -import com.nis.common.utils.RCode; -import com.nis.common.utils.ToolUtil; +import com.nis.common.utils.*; import com.nis.modules.sys.dao.SysApiKeyDao; import com.nis.modules.sys.entity.SysApiKey; +import com.nis.modules.sys.entity.SysUserRoleEntity; import com.nis.modules.sys.service.SysApiKeyService; +import com.nis.modules.sys.service.SysUserRoleService; import com.nis.modules.sys.shiro.ShiroUtils; - -import cn.hutool.core.lang.UUID; -import cn.hutool.core.util.StrUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.*; +import java.util.stream.Collectors; + @Service public class SysApiKeyServiceImpl extends ServiceImpl<SysApiKeyDao,SysApiKey> implements SysApiKeyService{ - + + @Autowired + private SysUserRoleService sysUserRoleService; + @Override public PageUtils queryPage(Map<String, Object> params) { IPage result = new Query(SysApiKey.class).getPage(params); @@ -48,10 +47,10 @@ public class SysApiKeyServiceImpl extends ServiceImpl<SysApiKeyDao,SysApiKey> im if(ToolUtil.isNotEmpty(sysApiKeys)) { throw new NZException(RCode.SYSAPIKEY_NAME_DUPLICATE); } - + // 生成唯一uuid String uuid = UUID.randomUUID().toString(); - + sysApiKey.setToken(uuid); sysApiKey.setCreateBy(ShiroUtils.getUserId().intValue()); sysApiKey.setCreateAt(new Date()); @@ -71,4 +70,67 @@ public class SysApiKeyServiceImpl extends ServiceImpl<SysApiKeyDao,SysApiKey> im this.removeByIds(Arrays.asList(ids.split(","))); } + @Override + public PageUtils querySelfApiKeys(Map<String, Object> params) { + String ids = (String) params.get("ids"); + if (StrUtil.isNotBlank(ids)) { + List<String> listIds = Arrays.asList(ids.split(",")); + params.put("ids", listIds); + } + + // 当前登录用户 + params.put("currentLoginUserID", ShiroUtils.getUserId().intValue()); + + IPage result = new Query(SysApiKey.class).getPage(params); + List<SysApiKey> rows = this.baseMapper.querySelfApiKeys(result, params); + result.setRecords(rows); + return new PageUtils(result); + } + + @Override + public Map<String, Object> addSelfApiKey(SysApiKey sysApiKey) { + // 名称唯一 + List<SysApiKey> sysApiKeys = this.list(new LambdaQueryWrapper<SysApiKey>().eq(SysApiKey::getName, sysApiKey.getName())); + if (ToolUtil.isNotEmpty(sysApiKeys)) { + throw new NZException(RCode.SYSAPIKEY_NAME_DUPLICATE); + } + + // token 唯一 + sysApiKey.setToken(UUID.randomUUID().toString()); + + // 根据当前用户 角色 补充 roleId + SysUserRoleEntity userRoleEntity = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRoleEntity>().eq(SysUserRoleEntity::getUserId, ShiroUtils.getUserId().intValue())); + sysApiKey.setRoleId(userRoleEntity.getRoleId()); + + sysApiKey.setCreateBy(ShiroUtils.getUserId().intValue()); + sysApiKey.setCreateAt(new Date()); + this.save(sysApiKey); + + Map<String, Object> resultMap = Tool.MapUtil.newHashMap(4); + resultMap.put("id", sysApiKey.getId()); + resultMap.put("token", sysApiKey.getToken()); + return resultMap; + } + + @Override + public void removeSelfApiKeys(String ids) { + // 查询当前用户创建的 API KEYS + List<SysApiKey> sysApiKeys = this.list( + new LambdaQueryWrapper<SysApiKey>().in(SysApiKey::getId, Arrays.asList(ids.split(","))) + .eq(SysApiKey::getCreateBy, ShiroUtils.getUserId().intValue()) + ); + // 删除 redis 中 api key + List<String> tokens = sysApiKeys.stream().map(k -> ShiroUtils.REDIS_KEYPREFIX + k.getToken()).collect(Collectors.toList()); + ShiroUtils.removeRedisCacheByToken(tokens); + + List<Integer> removeIds = sysApiKeys.stream().map(SysApiKey::getId).collect(Collectors.toList()); + this.removeByIds(removeIds); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateRoleIdByUser(Integer userId, Integer roleId) { + this.getBaseMapper().updateRoleIdByCreateBy(userId, roleId); + } + } diff --git a/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysUserServiceImpl.java b/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysUserServiceImpl.java index 2e33c349..6ac14273 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysUserServiceImpl.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysUserServiceImpl.java @@ -1,17 +1,24 @@ package com.nis.modules.sys.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - -import javax.servlet.http.HttpServletRequest; - +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.log.Log; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nis.common.exception.NZException; +import com.nis.common.smartvalidate.ValidateUtils; +import com.nis.common.utils.*; +import com.nis.modules.sys.dao.SysRoleDao; +import com.nis.modules.sys.dao.SysUserDao; +import com.nis.modules.sys.entity.SysRoleEntity; +import com.nis.modules.sys.entity.SysUserEntity; +import com.nis.modules.sys.entity.SysUserRoleEntity; +import com.nis.modules.sys.service.*; +import com.nis.modules.sys.shiro.ShiroUtils; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.RandomStringUtils; @@ -22,7 +29,6 @@ import org.apache.shiro.subject.SimplePrincipalCollection; import org.apache.shiro.subject.support.DefaultSubjectContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.core.ListOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; @@ -30,36 +36,10 @@ import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.nis.common.exception.NZException; -import com.nis.common.smartvalidate.ValidateUtils; -import com.nis.common.utils.CommonUtils; -import com.nis.common.utils.Constant; -import com.nis.common.utils.PageUtils; -import com.nis.common.utils.Query; -import com.nis.common.utils.RCode; -import com.nis.common.utils.Tool; -import com.nis.common.utils.ToolUtil; -import com.nis.modules.sys.dao.SysRoleDao; -import com.nis.modules.sys.dao.SysUserDao; -import com.nis.modules.sys.entity.SysRoleEntity; -import com.nis.modules.sys.entity.SysUserEntity; -import com.nis.modules.sys.entity.SysUserRoleEntity; -import com.nis.modules.sys.service.SysConfigService; -import com.nis.modules.sys.service.SysMenuService; -import com.nis.modules.sys.service.SysRoleService; -import com.nis.modules.sys.service.SysUserRoleService; -import com.nis.modules.sys.service.SysUserService; -import com.nis.modules.sys.shiro.ShiroUtils; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.log.Log; +import javax.servlet.http.HttpServletRequest; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; @Service("sysUserService") public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> implements SysUserService { @@ -83,10 +63,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i @Autowired private RedisConnectionFactory factory; - + @Autowired private SysConfigService sysConfigService; + @Autowired + private SysApiKeyService sysApiKeyService; + @Override public PageUtils queryPage(Map<String, Object> params) { String ids = (String) params.get("ids"); @@ -135,7 +118,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i if(ObjectUtil.isNotEmpty(list)) { throw new NZException(RCode.SYS_USER_NAME_DUPLICATE); } - + if(status != 0 && status != 1){ throw new NZException(RCode.SYS_USER_STATUS_INVALIDE); } @@ -155,7 +138,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i if (!roleIdList.contains(Integer.valueOf(roleId))) throw new NZException(RCode.SYS_ROLE_ISNULL); } - + if(ObjectUtil.isEmpty(user.getTheme())) { user.setTheme(1); } @@ -183,7 +166,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i // 保存用户 和 角色 关联关系 sysUserRoleService.saveOrUpdate(user.getId(), user.getRoleIds()); - + return user.getId().intValue(); } @@ -214,7 +197,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i // 处理用户角色关系 this.handleUserRoleRelation(user.getId(), user.getRoleIds()); - + return user.getId().intValue(); } @@ -241,6 +224,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i // 通过 userId 删除 redis 中记录的 登录信息 this.removeUserInfoInRedis(userId); + + // 变更 sys_api_key role_id 注:当前 用户只能关联一个角色 + String updateRoleId = Arrays.asList(roleIds.split(",")).get(0); + sysApiKeyService.updateRoleIdByUser(userId.intValue(), Integer.valueOf(updateRoleId)); } /** @@ -426,7 +413,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i } // 校验密码是否包含小写字母 if(ToolUtil.isNotEmpty(lower)&&lower.equals(1)&&!CommonUtils.checkPinCorrect(pin,2)&&!isLogin) { - throw new NZException(RCode.SYS_USER_PIN_NOT_CONTAIN_LOWERCASE_LETTERS); + throw new NZException(RCode.SYS_USER_PIN_NOT_CONTAIN_LOWERCASE_LETTERS); } // 校验密码是否包含大写字母 if(ToolUtil.isNotEmpty(upper)&&upper.equals(1)&&!CommonUtils.checkPinCorrect(pin,3)&&!isLogin) { @@ -479,13 +466,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i redisRetry+=1; opsForValue.set(redisKey, redisRetry.toString()); if(retry.equals(redisRetry)) { - redisTemplate.expire(redisKey, lockTime, TimeUnit.MINUTES); + redisTemplate.expire(redisKey, lockTime, TimeUnit.MINUTES); }else{ - redisTemplate.expire(redisKey, 5, TimeUnit.MINUTES); + redisTemplate.expire(redisKey, 5, TimeUnit.MINUTES); } }else { opsForValue.set(redisKey, "1"); - redisTemplate.expire(redisKey, 5, TimeUnit.MINUTES); + redisTemplate.expire(redisKey, 5, TimeUnit.MINUTES); } } } diff --git a/nz-admin/src/main/resources/db/V2022.06.07__modify_sys_api_key_table_structure.sql b/nz-admin/src/main/resources/db/V2022.06.07__modify_sys_api_key_table_structure.sql new file mode 100644 index 00000000..e7663c7d --- /dev/null +++ b/nz-admin/src/main/resources/db/V2022.06.07__modify_sys_api_key_table_structure.sql @@ -0,0 +1,6 @@ +/** + * 1. sys_api_key 表新增 remark 字段 + */ + +ALTER TABLE `sys_api_key` +ADD COLUMN IF NOT EXISTS `remark` VARCHAR (256) COMMENT '备注'; diff --git a/nz-admin/src/main/resources/mapper/sys/SysApiKey.xml b/nz-admin/src/main/resources/mapper/sys/SysApiKey.xml index aacd5227..7f97c42c 100644 --- a/nz-admin/src/main/resources/mapper/sys/SysApiKey.xml +++ b/nz-admin/src/main/resources/mapper/sys/SysApiKey.xml @@ -1,7 +1,7 @@ -<?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"> +<?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.nis.modules.sys.dao.SysApiKeyDao"> - + <resultMap type="com.nis.modules.sys.entity.SysApiKey" id="sysApiKey"> <result property="id" column="id"/> <result property="name" column="name"/> @@ -10,19 +10,20 @@ <result property="roleId" column="role_id"/> <result property="createAt" column="create_at"/> <result property="expireAt" column="expire_at"/> - - <association columnPrefix="u_" property="createUser" javaType="com.nis.modules.sys.entity.SysUserEntity"> + <result property="remark" column="remark"/> + + <association columnPrefix="u_" property="createUser" javaType="com.nis.modules.sys.entity.SysUserEntity"> <result column="id" property="id"/> <result column="name" property="name"/> </association> - + <association columnPrefix="r_" property="role" javaType="com.nis.modules.sys.entity.SysRoleEntity"> <result column="id" property="id"/> <result column="name" property="name"/> </association> - + </resultMap> - + <select id="queryList" resultMap="sysApiKey"> select sak.*, su.id as u_id, @@ -31,9 +32,9 @@ sr.name as r_name from sys_api_key sak left join sys_user su on sak.create_by = su.id left join sys_role sr on sak.role_id = sr.id - where 1=1 + where 1=1 <if test="params.ids != null"> - and sak.id in + and sak.id in <foreach item="id" collection="params.ids" separator="," open="(" close=")" index=""> #{id} </foreach> @@ -43,4 +44,29 @@ </if> </select> -</mapper>
\ No newline at end of file + <select id="querySelfApiKeys" resultMap="sysApiKey"> + SELECT + sak.*, + su.id AS u_id, + su.name AS u_name, + sr.id AS r_id, + sr.name AS r_name + FROM + sys_api_key sak + LEFT JOIN sys_user su ON sak.create_by = su.id + LEFT JOIN sys_role sr ON sak.role_id = sr.id + <where> + sak.create_by = #{params.currentLoginUserID} + <if test="params.ids != null"> + AND sak.id in + <foreach item="id" collection="params.ids" separator="," open="(" close=")" index=""> + #{id} + </foreach> + </if> + <if test="params.name !=null and params.name != ''"> + AND locate(#{params.name} , sak.name) + </if> + </where> + </select> + +</mapper> |
