Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
aa8917f6
提交
aa8917f6
authored
5月 16, 2019
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
- 后端:重构 oauth2 模块,方便后续 User 接入。
- 后端:重写 Admin 安全拦截器,实现类似 Shiro 的效果。
上级
b14169a7
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
100 行增加
和
262 行删除
+100
-262
SystemApplication.java
.../cn/iocoder/mall/admin/application/SystemApplication.java
+1
-9
DataDictController.java
...min/application/controller/admins/DataDictController.java
+12
-48
DataDictConvert.java
...coder/mall/admin/application/convert/DataDictConvert.java
+2
-16
DataDictEnumVO.java
...er/mall/admin/application/vo/datadict/DataDictEnumVO.java
+15
-1
DataDictVO.java
...ocoder/mall/admin/application/vo/datadict/DataDictVO.java
+0
-26
DataDictValueVO.java
...r/mall/admin/application/vo/datadict/DataDictValueVO.java
+0
-18
DataDictService.java
.../main/java/cn/iocoder/mall/admin/api/DataDictService.java
+5
-4
DataDictAddDTO.java
...n/iocoder/mall/admin/api/dto/datadict/DataDictAddDTO.java
+12
-18
DataDictUpdateDTO.java
...ocoder/mall/admin/api/dto/datadict/DataDictUpdateDTO.java
+15
-16
DataDictMapper.java
...c/main/java/cn/iocoder/mall/admin/dao/DataDictMapper.java
+6
-7
OAuth2AccessTokenMapper.java
...va/cn/iocoder/mall/admin/dao/OAuth2AccessTokenMapper.java
+6
-2
OAuth2RefreshTokenMapper.java
...a/cn/iocoder/mall/admin/dao/OAuth2RefreshTokenMapper.java
+6
-2
ResourceMapper.java
...c/main/java/cn/iocoder/mall/admin/dao/ResourceMapper.java
+1
-1
DataDictDO.java
...ain/java/cn/iocoder/mall/admin/dataobject/DataDictDO.java
+2
-0
DataDictServiceImpl.java
...va/cn/iocoder/mall/admin/service/DataDictServiceImpl.java
+16
-18
DataDictMapper.xml
...service-impl/src/main/resources/mapper/DataDictMapper.xml
+1
-52
OAuth2AccessTokenMapper.xml
...mpl/src/main/resources/mapper/OAuth2AccessTokenMapper.xml
+0
-12
OAuth2RefreshTokenMapper.xml
...pl/src/main/resources/mapper/OAuth2RefreshTokenMapper.xml
+0
-12
没有找到文件。
system/system-application/src/main/java/cn/iocoder/mall/admin/application/SystemApplication.java
浏览文件 @
aa8917f6
...
...
@@ -2,7 +2,6 @@ package cn.iocoder.mall.admin.application;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.scheduling.annotation.EnableAsync
;
@SpringBootApplication
(
scanBasePackages
=
{
"cn.iocoder.mall.admin"
})
...
...
@@ -10,14 +9,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
public
class
SystemApplication
{
public
static
void
main
(
String
[]
args
)
{
ConfigurableApplicationContext
ctx
=
SpringApplication
.
run
(
SystemApplication
.
class
,
args
);
// Object bean = ctx.getBean("test");
// System.out.println(AopUtils.getTargetClass(bean));
// System.out.println(bean);
// ConfigurableApplicationContext ctx =
// System.out.println(); // TODO 后面去掉,这里是临时的
SpringApplication
.
run
(
SystemApplication
.
class
,
args
);
}
}
system/system-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/DataDictController.java
浏览文件 @
aa8917f6
...
...
@@ -7,14 +7,12 @@ import cn.iocoder.mall.admin.api.dto.datadict.DataDictAddDTO;
import
cn.iocoder.mall.admin.api.dto.datadict.DataDictUpdateDTO
;
import
cn.iocoder.mall.admin.application.convert.DataDictConvert
;
import
cn.iocoder.mall.admin.application.vo.datadict.DataDictEnumVO
;
import
cn.iocoder.mall.admin.application.vo.datadict.DataDictVO
;
import
cn.iocoder.mall.admin.sdk.annotation.RequiresPermissions
;
import
cn.iocoder.mall.admin.sdk.context.AdminSecurityContextHolder
;
import
com.google.common.collect.ImmutableListMultimap
;
import
com.google.common.collect.Multimaps
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.dubbo.config.annotation.Reference
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -22,6 +20,8 @@ import org.springframework.web.bind.annotation.*;
import
java.util.ArrayList
;
import
java.util.List
;
import
static
cn
.
iocoder
.
common
.
framework
.
vo
.
CommonResult
.
success
;
@RestController
@RequestMapping
(
"admins/data_dict"
)
@Api
(
"数据字典模块"
)
...
...
@@ -33,9 +33,8 @@ public class DataDictController {
@GetMapping
(
"/list"
)
@ApiOperation
(
value
=
"数据字典全列表"
)
@RequiresPermissions
(
"system.dataDict.list"
)
public
CommonResult
<
List
<
DataDictVO
>>
list
()
{
CommonResult
<
List
<
DataDictBO
>>
result
=
dataDictService
.
selectDataDictList
();
return
DataDictConvert
.
INSTANCE
.
convert
(
result
);
public
CommonResult
<
List
<
DataDictBO
>>
list
()
{
return
success
(
dataDictService
.
selectDataDictList
());
}
@GetMapping
(
"/tree"
)
...
...
@@ -43,12 +42,9 @@ public class DataDictController {
@ApiOperation
(
value
=
"数据字典树结构"
,
notes
=
"该接口返回的信息更为精简。一般用于前端缓存数据字典到本地。"
)
public
CommonResult
<
List
<
DataDictEnumVO
>>
tree
()
{
// 查询数据字典全列表
CommonResult
<
List
<
DataDictBO
>>
result
=
dataDictService
.
selectDataDictList
();
if
(
result
.
isError
())
{
return
CommonResult
.
error
(
result
);
}
List
<
DataDictBO
>
dataDicts
=
dataDictService
.
selectDataDictList
();
// 构建基于 enumValue 聚合的 Multimap
ImmutableListMultimap
<
String
,
DataDictBO
>
dataDictMap
=
Multimaps
.
index
(
result
.
getData
()
,
DataDictBO:
:
getEnumValue
);
// KEY 是 enumValue ,VALUE 是 DataDictBO 数组
ImmutableListMultimap
<
String
,
DataDictBO
>
dataDictMap
=
Multimaps
.
index
(
dataDicts
,
DataDictBO:
:
getEnumValue
);
// KEY 是 enumValue ,VALUE 是 DataDictBO 数组
// 构建返回结果
List
<
DataDictEnumVO
>
dataDictEnumVOs
=
new
ArrayList
<>(
dataDictMap
.
size
());
dataDictMap
.
keys
().
forEach
(
enumValue
->
{
...
...
@@ -56,53 +52,21 @@ public class DataDictController {
.
setValues
(
DataDictConvert
.
INSTANCE
.
convert2
(
dataDictMap
.
get
(
enumValue
)));
dataDictEnumVOs
.
add
(
dataDictEnumVO
);
});
return
CommonResult
.
success
(
dataDictEnumVOs
);
return
success
(
dataDictEnumVOs
);
}
@PostMapping
(
"/add"
)
@RequiresPermissions
(
"system.dataDict.add"
)
@ApiOperation
(
value
=
"创建数据字典"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"enumValue"
,
value
=
"大类枚举值"
,
required
=
true
,
example
=
"gender"
),
@ApiImplicitParam
(
name
=
"value"
,
value
=
"小类数值"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"displayName"
,
value
=
"展示名"
,
required
=
true
,
example
=
"男"
),
@ApiImplicitParam
(
name
=
"sort"
,
required
=
true
,
value
=
"排序值"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"memo"
,
value
=
"备注"
,
example
=
"你猜我猜不猜"
),
})
public
CommonResult
<
DataDictVO
>
add
(
@RequestParam
(
"enumValue"
)
String
enumValue
,
@RequestParam
(
"value"
)
String
value
,
@RequestParam
(
"displayName"
)
String
displayName
,
@RequestParam
(
"sort"
)
Integer
sort
,
@RequestParam
(
value
=
"memo"
,
required
=
false
)
String
memo
)
{
// 创建 DataDictAddDTO 对象
DataDictAddDTO
dataDictAddDTO
=
new
DataDictAddDTO
().
setEnumValue
(
enumValue
).
setValue
(
value
).
setDisplayName
(
displayName
)
.
setSort
(
sort
).
setMemo
(
memo
);
// 保存数据字典
CommonResult
<
DataDictBO
>
result
=
dataDictService
.
addDataDict
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
dataDictAddDTO
);
// 返回结果
return
DataDictConvert
.
INSTANCE
.
convert2
(
result
);
public
CommonResult
<
DataDictBO
>
add
(
DataDictAddDTO
dataDictAddDTO
)
{
return
success
(
dataDictService
.
addDataDict
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
dataDictAddDTO
));
}
@PostMapping
(
"/update"
)
@RequiresPermissions
(
"system.dataDict.update"
)
@ApiOperation
(
value
=
"更新数据字典"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"编号"
,
required
=
true
,
example
=
"100"
),
@ApiImplicitParam
(
name
=
"value"
,
value
=
"小类数值"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"displayName"
,
value
=
"展示名"
,
required
=
true
,
example
=
"男"
),
@ApiImplicitParam
(
name
=
"sort"
,
required
=
true
,
value
=
"排序值"
,
defaultValue
=
"10"
),
@ApiImplicitParam
(
name
=
"memo"
,
value
=
"备注"
,
example
=
"你猜我猜不猜"
),
})
public
CommonResult
<
Boolean
>
update
(
@RequestParam
(
"id"
)
Integer
id
,
@RequestParam
(
"value"
)
String
value
,
@RequestParam
(
"displayName"
)
String
displayName
,
@RequestParam
(
"sort"
)
Integer
sort
,
@RequestParam
(
value
=
"memo"
,
required
=
false
)
String
memo
)
{
// 创建 DataDictAddDTO 对象
DataDictUpdateDTO
dataDictUpdateDTO
=
new
DataDictUpdateDTO
().
setId
(
id
).
setValue
(
value
).
setDisplayName
(
displayName
)
.
setSort
(
sort
).
setMemo
(
memo
);
// 更新数据字典
return
dataDictService
.
updateDataDict
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
dataDictUpdateDTO
);
public
CommonResult
<
Boolean
>
update
(
DataDictUpdateDTO
dataDictUpdateDTO
)
{
return
success
(
dataDictService
.
updateDataDict
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
dataDictUpdateDTO
));
}
@PostMapping
(
"/delete"
)
...
...
@@ -110,7 +74,7 @@ public class DataDictController {
@ApiOperation
(
value
=
"删除数据字典"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"编号"
,
required
=
true
,
example
=
"100"
)
public
CommonResult
<
Boolean
>
delete
(
@RequestParam
(
"id"
)
Integer
id
)
{
return
dataDictService
.
deleteDataDict
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
id
);
return
success
(
dataDictService
.
deleteDataDict
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
id
)
);
}
}
system/system-application/src/main/java/cn/iocoder/mall/admin/application/convert/DataDictConvert.java
浏览文件 @
aa8917f6
package
cn
.
iocoder
.
mall
.
admin
.
application
.
convert
;
import
cn.iocoder.common.framework.vo.CommonResult
;
import
cn.iocoder.mall.admin.api.bo.datadict.DataDictBO
;
import
cn.iocoder.mall.admin.application.vo.datadict.DataDictVO
;
import
cn.iocoder.mall.admin.application.vo.datadict.DataDictValueVO
;
import
cn.iocoder.mall.admin.application.vo.datadict.DataDictEnumVO
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mappings
;
import
org.mapstruct.factory.Mappers
;
...
...
@@ -16,18 +14,6 @@ public interface DataDictConvert {
DataDictConvert
INSTANCE
=
Mappers
.
getMapper
(
DataDictConvert
.
class
);
@Mappings
({})
DataDictVO
convert
(
DataDictBO
dataDictBO
);
@Mappings
({})
List
<
DataDictVO
>
convert
(
List
<
DataDictBO
>
dataDictBOs
);
@Mappings
({})
CommonResult
<
List
<
DataDictVO
>>
convert
(
CommonResult
<
List
<
DataDictBO
>>
result
);
@Mappings
({})
CommonResult
<
DataDictVO
>
convert2
(
CommonResult
<
DataDictBO
>
result
);
@Mappings
({})
List
<
DataDictValueVO
>
convert2
(
List
<
DataDictBO
>
dataDictBOs
);
List
<
DataDictEnumVO
.
Value
>
convert2
(
List
<
DataDictBO
>
dataDictBOs
);
}
system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictEnumVO.java
浏览文件 @
aa8917f6
...
...
@@ -14,7 +14,21 @@ public class DataDictEnumVO {
@ApiModelProperty
(
value
=
"大类枚举值"
,
required
=
true
,
example
=
"gender"
)
private
String
enumValue
;
@ApiModelProperty
(
value
=
"小类数值数组"
,
required
=
true
)
private
List
<
DataDictValueVO
>
values
;
private
List
<
Value
>
values
;
@ApiModel
(
"数据字典枚举值 VO"
)
@Data
@Accessors
(
chain
=
true
)
public
static
class
Value
{
@ApiModelProperty
(
value
=
"小类数值"
,
required
=
true
,
example
=
"1"
)
private
String
value
;
@ApiModelProperty
(
value
=
"展示名"
,
required
=
true
,
example
=
"男"
)
private
String
displayName
;
}
}
system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictVO.java
deleted
100644 → 0
浏览文件 @
b14169a7
package
cn
.
iocoder
.
mall
.
admin
.
application
.
vo
.
datadict
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
@ApiModel
(
"数据字典 VO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
DataDictVO
{
@ApiModelProperty
(
value
=
"编号"
,
required
=
true
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"大类枚举值"
,
required
=
true
,
example
=
"gender"
)
private
String
enumValue
;
@ApiModelProperty
(
value
=
"小类数值"
,
required
=
true
,
example
=
"1"
)
private
String
value
;
@ApiModelProperty
(
value
=
"展示名"
,
required
=
true
,
example
=
"男"
)
private
String
displayName
;
@ApiModelProperty
(
value
=
"排序值"
,
required
=
true
,
example
=
"10"
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"备注"
,
example
=
"你猜"
)
private
String
memo
;
}
system/system-application/src/main/java/cn/iocoder/mall/admin/application/vo/datadict/DataDictValueVO.java
deleted
100644 → 0
浏览文件 @
b14169a7
package
cn
.
iocoder
.
mall
.
admin
.
application
.
vo
.
datadict
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
@ApiModel
(
"数据字典枚举值 VO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
DataDictValueVO
{
@ApiModelProperty
(
value
=
"小类数值"
,
required
=
true
,
example
=
"1"
)
private
String
value
;
@ApiModelProperty
(
value
=
"展示名"
,
required
=
true
,
example
=
"男"
)
private
String
displayName
;
}
system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/DataDictService.java
浏览文件 @
aa8917f6
...
...
@@ -10,13 +10,13 @@ import java.util.List;
public
interface
DataDictService
{
CommonResult
<
List
<
DataDictBO
>
>
selectDataDictList
();
List
<
DataDictBO
>
selectDataDictList
();
CommonResult
<
DataDictBO
>
addDataDict
(
Integer
adminId
,
DataDictAddDTO
dataDictAddDTO
);
DataDictBO
addDataDict
(
Integer
adminId
,
DataDictAddDTO
dataDictAddDTO
);
CommonResult
<
Boolean
>
updateDataDict
(
Integer
adminId
,
DataDictUpdateDTO
dataDictUpdateDTO
);
Boolean
updateDataDict
(
Integer
adminId
,
DataDictUpdateDTO
dataDictUpdateDTO
);
CommonResult
<
Boolean
>
deleteDataDict
(
Integer
adminId
,
Integer
dataDictId
);
Boolean
deleteDataDict
(
Integer
adminId
,
Integer
dataDictId
);
/**
* 获取字典值 - 单个
...
...
@@ -28,6 +28,7 @@ public interface DataDictService {
* @return
*/
CommonResult
<
DataDictBO
>
getDataDict
(
String
dictKey
,
Object
dictValue
);
CommonResult
<
List
<
DataDictBO
>>
getDataDict
(
String
dictKey
);
/**
...
...
system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/datadict/DataDictAddDTO.java
浏览文件 @
aa8917f6
package
cn
.
iocoder
.
mall
.
admin
.
api
.
dto
.
datadict
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
...
...
@@ -7,36 +9,28 @@ import javax.validation.constraints.NotEmpty;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 数据字典添加 DTO
*/
@ApiModel
(
"数据字典添加 DTO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
DataDictAddDTO
implements
Serializable
{
/**
* 大类枚举值
*/
@ApiModelProperty
(
value
=
"大类枚举值"
,
required
=
true
,
example
=
"gender"
)
@NotEmpty
(
message
=
"大类枚举值不能为空"
)
private
String
enumValue
;
/**
* 小类数值
*/
@ApiModelProperty
(
value
=
"小类数值"
,
required
=
true
,
example
=
"1"
)
@NotEmpty
(
message
=
"小类数值不能为空"
)
private
String
value
;
/**
* 展示名
*/
@ApiModelProperty
(
value
=
"展示名"
,
required
=
true
,
example
=
"男"
)
@NotEmpty
(
message
=
"展示名不能为空"
)
private
String
displayName
;
/**
* 排序值
*/
@ApiModelProperty
(
required
=
true
,
value
=
"排序值"
,
example
=
"123"
)
@NotNull
(
message
=
"排序值不能为空"
)
private
Integer
sort
;
/**
* 备注
*/
@ApiModelProperty
(
value
=
"备注"
,
example
=
"你猜我猜不猜"
)
private
String
memo
;
}
system/system-service-api/src/main/java/cn/iocoder/mall/admin/api/dto/datadict/DataDictUpdateDTO.java
浏览文件 @
aa8917f6
package
cn
.
iocoder
.
mall
.
admin
.
api
.
dto
.
datadict
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
...
...
@@ -14,29 +15,27 @@ import java.io.Serializable;
@Accessors
(
chain
=
true
)
public
class
DataDictUpdateDTO
implements
Serializable
{
/**
* 编号
*/
@NotNull
(
message
=
"编号不能为空"
)
@ApiModelProperty
(
value
=
"数据字典编号"
,
required
=
true
,
example
=
"1"
)
@NotNull
(
message
=
"数据字典编号不能为空"
)
private
Integer
id
;
/**
* 小类数值
*/
@ApiModelProperty
(
value
=
"大类枚举值"
,
required
=
true
,
example
=
"gender"
)
@NotEmpty
(
message
=
"大类枚举值不能为空"
)
private
String
enumValue
;
@ApiModelProperty
(
value
=
"小类数值"
,
required
=
true
,
example
=
"1"
)
@NotEmpty
(
message
=
"小类数值不能为空"
)
private
String
value
;
/**
* 展示名
*/
@ApiModelProperty
(
value
=
"展示名"
,
required
=
true
,
example
=
"男"
)
@NotEmpty
(
message
=
"展示名不能为空"
)
private
String
displayName
;
/**
* 排序值
*/
@ApiModelProperty
(
required
=
true
,
value
=
"排序值"
,
example
=
"123"
)
@NotNull
(
message
=
"排序值不能为空"
)
private
Integer
sort
;
/**
* 备注
*/
@ApiModelProperty
(
value
=
"备注"
,
example
=
"你猜我猜不猜"
)
private
String
memo
;
}
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/DataDictMapper.java
浏览文件 @
aa8917f6
package
cn
.
iocoder
.
mall
.
admin
.
dao
;
import
cn.iocoder.mall.admin.dataobject.DataDictDO
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -8,9 +10,7 @@ import java.util.Collection;
import
java.util.List
;
@Repository
public
interface
DataDictMapper
{
DataDictDO
selectById
(
@Param
(
"id"
)
Integer
id
);
public
interface
DataDictMapper
extends
BaseMapper
<
DataDictDO
>
{
DataDictDO
selectByEnumValueAndValue
(
@Param
(
"enumValue"
)
String
enumValue
,
...
...
@@ -26,10 +26,9 @@ public interface DataDictMapper {
@Param
(
"enumValue"
)
String
enumValue
);
List
<
DataDictDO
>
selectList
();
void
insert
(
DataDictDO
dataDict
);
default
List
<
DataDictDO
>
selectList
()
{
return
selectList
(
new
QueryWrapper
<>());
}
int
update
(
DataDictDO
dataDict
);
}
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/OAuth2AccessTokenMapper.java
浏览文件 @
aa8917f6
package
cn
.
iocoder
.
mall
.
admin
.
dao
;
import
cn.iocoder.mall.admin.dataobject.OAuth2AccessTokenDO
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
@Repository
public
interface
OAuth2AccessTokenMapper
extends
BaseMapper
<
OAuth2AccessTokenDO
>
{
int
updateToInvalidByAdminId
(
@Param
(
"adminId"
)
Integer
adminId
);
default
int
updateToInvalidByAdminId
(
Integer
adminId
)
{
QueryWrapper
<
OAuth2AccessTokenDO
>
query
=
new
QueryWrapper
<
OAuth2AccessTokenDO
>()
.
eq
(
"admin_id"
,
adminId
).
eq
(
"valid"
,
true
);
return
update
(
new
OAuth2AccessTokenDO
().
setValid
(
false
),
query
);
}
}
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/OAuth2RefreshTokenMapper.java
浏览文件 @
aa8917f6
package
cn
.
iocoder
.
mall
.
admin
.
dao
;
import
cn.iocoder.mall.admin.dataobject.OAuth2RefreshTokenDO
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
@Repository
public
interface
OAuth2RefreshTokenMapper
extends
BaseMapper
<
OAuth2RefreshTokenDO
>
{
int
updateToInvalidByAdminId
(
@Param
(
"adminId"
)
Integer
adminId
);
default
int
updateToInvalidByAdminId
(
Integer
adminId
)
{
QueryWrapper
<
OAuth2RefreshTokenDO
>
query
=
new
QueryWrapper
<
OAuth2RefreshTokenDO
>()
.
eq
(
"admin_id"
,
adminId
).
eq
(
"valid"
,
true
);
return
update
(
new
OAuth2RefreshTokenDO
().
setValid
(
false
),
query
);
}
}
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dao/ResourceMapper.java
浏览文件 @
aa8917f6
...
...
@@ -13,7 +13,7 @@ import java.util.Set;
@Repository
public
interface
ResourceMapper
extends
BaseMapper
<
ResourceDO
>
{
@Deprecated
// TODO 芋艿,后续改造。
List
<
ResourceDO
>
selectListByTypeAndRoleIds
(
@Param
(
"type"
)
Integer
type
,
@Param
(
"roleIds"
)
Set
<
Integer
>
roleIds
);
...
...
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/dataobject/DataDictDO.java
浏览文件 @
aa8917f6
package
cn
.
iocoder
.
mall
.
admin
.
dataobject
;
import
cn.iocoder.common.framework.dataobject.DeletableDO
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
...
...
@@ -13,6 +14,7 @@ import lombok.experimental.Accessors;
* value:1 男
* value:2 女
*/
@TableName
(
"data_dict"
)
@Data
@Accessors
(
chain
=
true
)
public
class
DataDictDO
extends
DeletableDO
{
...
...
system/system-service-impl/src/main/java/cn/iocoder/mall/admin/service/DataDictServiceImpl.java
浏览文件 @
aa8917f6
...
...
@@ -31,16 +31,16 @@ public class DataDictServiceImpl implements DataDictService {
private
DataDictMapper
dataDictMapper
;
@Override
public
CommonResult
<
List
<
DataDictBO
>
>
selectDataDictList
()
{
public
List
<
DataDictBO
>
selectDataDictList
()
{
List
<
DataDictDO
>
dataDicts
=
dataDictMapper
.
selectList
();
return
CommonResult
.
success
(
DataDictConvert
.
INSTANCE
.
convert
(
dataDicts
)
);
return
DataDictConvert
.
INSTANCE
.
convert
(
dataDicts
);
}
@Override
public
CommonResult
<
DataDictBO
>
addDataDict
(
Integer
adminId
,
DataDictAddDTO
dataDictAddDTO
)
{
public
DataDictBO
addDataDict
(
Integer
adminId
,
DataDictAddDTO
dataDictAddDTO
)
{
// 校验数据字典重复
if
(
dataDictMapper
.
selectByEnumValueAndValue
(
dataDictAddDTO
.
getEnumValue
(),
dataDictAddDTO
.
getValue
())
!=
null
)
{
return
ServiceExceptionUtil
.
error
(
AdminErrorCodeEnum
.
DATA_DICT_EXISTS
.
getCode
());
throw
ServiceExceptionUtil
.
exception
(
AdminErrorCodeEnum
.
DATA_DICT_EXISTS
.
getCode
());
}
// 保存到数据库
DataDictDO
dataDict
=
DataDictConvert
.
INSTANCE
.
convert
(
dataDictAddDTO
);
...
...
@@ -49,45 +49,43 @@ public class DataDictServiceImpl implements DataDictService {
dataDictMapper
.
insert
(
dataDict
);
// TODO 插入操作日志
// 返回成功
return
CommonResult
.
success
(
DataDictConvert
.
INSTANCE
.
convert
(
dataDict
)
);
return
DataDictConvert
.
INSTANCE
.
convert
(
dataDict
);
}
@Override
public
CommonResult
<
Boolean
>
updateDataDict
(
Integer
adminId
,
DataDictUpdateDTO
dataDictUpdateDTO
)
{
public
Boolean
updateDataDict
(
Integer
adminId
,
DataDictUpdateDTO
dataDictUpdateDTO
)
{
// 校验数据字典不存在
DataDictDO
existsDataDict
=
dataDictMapper
.
selectById
(
dataDictUpdateDTO
.
getId
());
if
(
existsDataDict
==
null
)
{
return
ServiceExceptionUtil
.
error
(
AdminErrorCodeEnum
.
DATA_DICT_NOT_EXISTS
.
getCode
());
throw
ServiceExceptionUtil
.
exception
(
AdminErrorCodeEnum
.
DATA_DICT_NOT_EXISTS
.
getCode
());
}
// 校验数据字典重复
DataDictDO
duplicateDataDict
=
dataDictMapper
.
selectByEnumValueAndValue
(
existsDataDict
.
getEnumValue
(),
dataDictUpdateDTO
.
getValue
());
if
(
duplicateDataDict
!=
null
&&
!
duplicateDataDict
.
getId
().
equals
(
dataDictUpdateDTO
.
getId
()))
{
return
ServiceExceptionUtil
.
error
(
AdminErrorCodeEnum
.
DATA_DICT_EXISTS
.
getCode
());
throw
ServiceExceptionUtil
.
exception
(
AdminErrorCodeEnum
.
DATA_DICT_EXISTS
.
getCode
());
}
// 更新到数据库
DataDictDO
updateDataDict
=
DataDictConvert
.
INSTANCE
.
convert
(
dataDictUpdateDTO
);
dataDictMapper
.
update
(
updateDataDict
);
dataDictMapper
.
update
ById
(
updateDataDict
);
// TODO 插入操作日志
// 返回成功
return
CommonResult
.
success
(
true
)
;
return
true
;
}
// 一般情况下,不要删除数据字典。
// 因为,业务数据正在使用该数据字典,删除后,可能有不可预知的问题。
@Override
public
CommonResult
<
Boolean
>
deleteDataDict
(
Integer
adminId
,
Integer
dataDictId
)
{
public
Boolean
deleteDataDict
(
Integer
adminId
,
Integer
dataDictId
)
{
// 校验数据字典不存在
DataDictDO
existsDataDict
=
dataDictMapper
.
selectById
(
dataDictId
);
if
(
existsDataDict
==
null
)
{
return
ServiceExceptionUtil
.
error
(
AdminErrorCodeEnum
.
DATA_DICT_NOT_EXISTS
.
getCode
());
throw
ServiceExceptionUtil
.
exception
(
AdminErrorCodeEnum
.
DATA_DICT_NOT_EXISTS
.
getCode
());
}
// 更新到数据库
DataDictDO
updateDataDict
=
new
DataDictDO
().
setId
(
dataDictId
);
updateDataDict
.
setDeleted
(
DeletedStatusEnum
.
DELETED_YES
.
getValue
());
dataDictMapper
.
update
(
updateDataDict
);
// 标记删除
dataDictMapper
.
deleteById
(
dataDictId
);
// TODO 插入操作日志
// 返回成功
return
CommonResult
.
success
(
true
)
;
return
true
;
}
@Override
...
...
@@ -106,7 +104,7 @@ public class DataDictServiceImpl implements DataDictService {
@Override
public
CommonResult
<
List
<
DataDictBO
>>
getDataDictList
(
String
dictKey
,
Collection
<?>
dictValueList
)
{
Set
<
String
>
convertDictValueList
=
dictValueList
.
stream
().
map
(
o
->
String
.
valueOf
(
o
)
).
collect
(
Collectors
.
toSet
());
Set
<
String
>
convertDictValueList
=
dictValueList
.
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
toSet
());
List
<
DataDictDO
>
dataDictDOList
=
dataDictMapper
.
selectByEnumValueAndValues
(
dictKey
,
convertDictValueList
);
List
<
DataDictBO
>
dataDictBOList
=
DataDictConvert
.
INSTANCE
.
convert
(
dataDictDOList
);
return
CommonResult
.
success
(
dataDictBOList
);
...
...
system/system-service-impl/src/main/resources/mapper/DataDictMapper.xml
浏览文件 @
aa8917f6
...
...
@@ -29,21 +29,6 @@
</foreach>
</select>
<select
id=
"selectById"
resultType=
"DataDictDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM data_dict
WHERE id = #{id}
AND deleted = 0
</select>
<select
id=
"selectList"
resultType=
"DataDictDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM data_dict
WHERE deleted = 0
</select>
<select
id=
"selectByEnumValue"
resultType=
"cn.iocoder.mall.admin.dataobject.DataDictDO"
>
SELECT
<include
refid=
"FIELDS"
/>
...
...
@@ -52,39 +37,4 @@
AND enum_value = #{enumValue}
</select>
<insert
id=
"insert"
parameterType=
"DataDictDO"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO data_dict (
id, enum_value, value, display_name, sort,
memo, create_time, deleted
) VALUES (
#{id}, #{enumValue}, #{value}, #{displayName}, #{sort},
#{memo}, #{createTime}, #{deleted}
)
</insert>
<update
id=
"update"
parameterType=
"DataDictDO"
>
UPDATE data_dict
<set>
<if
test=
"enumValue != null"
>
enum_value = #{enumValue},
</if>
<if
test=
"value != null"
>
value = #{value},
</if>
<if
test=
"displayName != null"
>
display_name = #{displayName},
</if>
<if
test=
"sort != null"
>
sort = #{sort},
</if>
<if
test=
"memo != null"
>
memo = #{memo},
</if>
<if
test=
"deleted != null"
>
deleted = #{deleted}
</if>
</set>
WHERE id = #{id}
</update>
</mapper>
\ No newline at end of file
</mapper>
system/system-service-impl/src/main/resources/mapper/OAuth2AccessTokenMapper.xml
deleted
100644 → 0
浏览文件 @
b14169a7
<?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.iocoder.mall.admin.dao.OAuth2AccessTokenMapper"
>
<update
id=
"updateToInvalidByAdminId"
parameterType=
"Integer"
>
UPDATE oauth2_access_token
SET valid = 0
WHERE admin_id = #{adminId}
AND valid = 1
</update>
</mapper>
system/system-service-impl/src/main/resources/mapper/OAuth2RefreshTokenMapper.xml
deleted
100644 → 0
浏览文件 @
b14169a7
<?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.iocoder.mall.admin.dao.OAuth2RefreshTokenMapper"
>
<update
id=
"updateToInvalidByAdminId"
parameterType=
"Integer"
>
UPDATE oauth2_refresh_token
SET valid = 0
WHERE admin_id = #{adminId}
AND valid = 1
</update>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论