Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
23acc40d
提交
23acc40d
authored
3月 30, 2019
作者:
YunaiV
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
前端:管理后台增加 Banner CRUD 功能
上级
4595db1d
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
392 行增加
和
18 行删除
+392
-18
proxy.dev.js
admin-web/config/proxy/proxy.dev.js
+7
-1
router.config.js
admin-web/config/router.config.js
+23
-0
admin.js
admin-web/mock/admin.js
+5
-5
menu.js
admin-web/src/locales/zh-CN/menu.js
+2
-0
bannerList.js
admin-web/src/models/promotion/bannerList.js
+256
-0
ProductCategoryList.js
admin-web/src/pages/Product/ProductCategoryList.js
+0
-1
BannerList.js
admin-web/src/pages/Promotion/BannerList.js
+0
-0
BannerList.less
admin-web/src/pages/Promotion/BannerList.less
+48
-0
promotion.js
admin-web/src/services/promotion.js
+35
-0
ResourceController.java
...min/application/controller/admins/ResourceController.java
+4
-4
BannerVO.java
...va/cn/iocoder/mall/promotion/application/vo/BannerVO.java
+1
-1
BannerAddDTO.java
.../java/cn/iocoder/mall/promotion/api/dto/BannerAddDTO.java
+3
-1
BannerUpdateDTO.java
...va/cn/iocoder/mall/promotion/api/dto/BannerUpdateDTO.java
+4
-1
BannerServiceImpl.java
...iocoder/mall/promotion/biz/service/BannerServiceImpl.java
+1
-1
BannerMapper.xml
...n-service-impl/src/main/resources/mapper/BannerMapper.xml
+3
-3
没有找到文件。
admin-web/config/proxy/proxy.dev.js
浏览文件 @
23acc40d
...
@@ -2,7 +2,8 @@
...
@@ -2,7 +2,8 @@
export
default
{
export
default
{
'/admin-api/'
:
{
'/admin-api/'
:
{
target
:
'http://180.167.213.26:18083/'
,
// target: 'http://180.167.213.26:18083/',
target
:
'http://127.0.0.1:18083/'
,
changeOrigin
:
true
,
changeOrigin
:
true
,
pathRewrite
:
{},
pathRewrite
:
{},
},
},
...
@@ -11,4 +12,9 @@ export default {
...
@@ -11,4 +12,9 @@ export default {
changeOrigin
:
true
,
changeOrigin
:
true
,
pathRewrite
:
{},
pathRewrite
:
{},
},
},
'/promotion-api/'
:
{
target
:
'http://127.0.0.1:18085/'
,
changeOrigin
:
true
,
pathRewrite
:
{},
},
};
};
admin-web/config/router.config.js
浏览文件 @
23acc40d
...
@@ -94,6 +94,29 @@ export default [
...
@@ -94,6 +94,29 @@ export default [
},
},
],
],
},
},
// promotion
{
path
:
'/promotion'
,
name
:
'promotion'
,
icon
:
'user'
,
routes
:
[
{
path
:
'/promotion/banner-list'
,
name
:
'promotion-banner-list'
,
component
:
'./Promotion/BannerList'
,
},
// {
// path: '/product/product-spu-add',
// name: 'product-spu-add',
// component: './Product/ProductSpuAddOrUpdate',
// },
// {
// path: '/product/product-category-list',
// name: 'product-category-list',
// component: './Product/ProductCategoryList',
// },
],
},
{
{
path
:
'/dashboard'
,
path
:
'/dashboard'
,
name
:
'dashboard'
,
name
:
'dashboard'
,
...
...
admin-web/mock/admin.js
浏览文件 @
23acc40d
...
@@ -49,10 +49,10 @@ function getDictionaryTree(req, res) {
...
@@ -49,10 +49,10 @@ function getDictionaryTree(req, res) {
}
}
export
default
{
export
default
{
'GET /admin-api/admins/admin/menu_resource_tree'
:
getAdminMenuAll
,
//
'GET /admin-api/admins/admin/menu_resource_tree': getAdminMenuAll,
'GET /admin-api/admins/admin/url_resource_list'
:
getAdminUrls
,
//
'GET /admin-api/admins/admin/url_resource_list': getAdminUrls,
'GET /admin-api/admins/resource/tree'
:
getResourceTree
,
//
'GET /admin-api/admins/resource/tree': getResourceTree,
'GET /admin-api/admins/role/page'
:
getQueryRole
,
//
'GET /admin-api/admins/role/page': getQueryRole,
// 'GET /admin-api/admins/admin/page': getQueryRole,
// 'GET /admin-api/admins/admin/page': getQueryRole,
'GET /admin-api/admins/data_dict/tree'
:
getDictionaryTree
,
//
'GET /admin-api/admins/data_dict/tree': getDictionaryTree,
};
};
admin-web/src/locales/zh-CN/menu.js
浏览文件 @
23acc40d
...
@@ -52,4 +52,6 @@ export default {
...
@@ -52,4 +52,6 @@ export default {
// 订单
// 订单
'menu.order'
:
'订单管理'
,
'menu.order'
:
'订单管理'
,
'menu.order.order-list'
:
'订单管理'
,
'menu.order.order-list'
:
'订单管理'
,
// 营销相关
'menu.promotion.promotion-banner-list'
:
'Banner 管理'
};
};
admin-web/src/models/promotion/bannerList.js
0 → 100644
浏览文件 @
23acc40d
import
{
message
}
from
'antd'
;
import
{
buildTreeNode
,
findCheckedKeys
}
from
'../../utils/tree.utils'
;
import
{
addBanner
,
adminRoleAssign
,
deleteBanner
,
queryBanner
,
queryBannerRoleList
,
updateBanner
,
updateBannerStatus
,
}
from
'../../services/promotion'
;
import
{
arrayToStringParams
}
from
'../../utils/request.qs'
;
import
PaginationHelper
from
'../../../helpers/PaginationHelper'
;
const
SEARCH_PARAMS_DEFAULT
=
{
title
:
''
,
};
export
default
{
namespace
:
'bannerList'
,
state
:
{
// 分页列表相关
list
:
[],
listLoading
:
false
,
pagination
:
PaginationHelper
.
defaultPaginationConfig
,
searchParams
:
SEARCH_PARAMS_DEFAULT
,
// 添加 or 修改表单相关
modalVisible
:
false
,
modalType
:
undefined
,
// 'add' or 'update' 表单
formVals
:
{},
// 当前表单值
modalLoading
:
false
,
// 分配角色表单相关
roleList
:
[],
roleModalVisible
:
false
,
roleCheckedKeys
:
[],
// 此处的 Key ,就是角色编号
roleAssignLoading
:
false
,
},
effects
:
{
// 查询列表
*
query
({
payload
},
{
call
,
put
})
{
// 显示加载中
yield
put
({
type
:
'changeListLoading'
,
payload
:
true
,
});
// 请求
const
response
=
yield
call
(
queryBanner
,
payload
);
// 响应
yield
put
({
type
:
'setAll'
,
payload
:
{
list
:
response
.
data
.
list
,
pagination
:
PaginationHelper
.
formatPagination
(
response
.
data
,
payload
),
searchParams
:
{
title
:
payload
.
title
||
''
}
},
});
// 隐藏加载中
yield
put
({
type
:
'changeListLoading'
,
payload
:
false
,
});
},
*
add
({
payload
},
{
call
,
put
})
{
const
{
callback
,
body
}
=
payload
;
// 显示加载中
yield
put
({
type
:
'changeModalLoading'
,
payload
:
true
,
});
// 请求
const
response
=
yield
call
(
addBanner
,
body
);
// 响应
if
(
response
.
code
===
0
)
{
if
(
callback
)
{
callback
(
response
);
}
// 刷新列表
yield
put
({
type
:
'query'
,
payload
:
{
...
PaginationHelper
.
defaultPayload
},
});
}
// 隐藏加载中
yield
put
({
type
:
'changeModalLoading'
,
payload
:
false
,
});
},
*
update
({
payload
},
{
call
,
put
})
{
const
{
callback
,
body
}
=
payload
;
// 显示加载中
yield
put
({
type
:
'changeModalLoading'
,
payload
:
true
,
});
// 请求
const
response
=
yield
call
(
updateBanner
,
body
);
// 响应
if
(
response
.
code
===
0
)
{
if
(
callback
)
{
callback
(
response
);
}
// 刷新列表
yield
put
({
type
:
'query'
,
payload
:
{
...
PaginationHelper
.
defaultPayload
},
});
}
// 隐藏加载中
yield
put
({
type
:
'changeModalLoading'
,
payload
:
false
,
});
},
*
updateStatus
({
payload
},
{
call
,
put
})
{
// 请求
const
response
=
yield
call
(
updateBannerStatus
,
payload
);
// 响应
if
(
response
.
code
===
0
)
{
message
.
info
(
'更新状态成功!'
);
// 刷新列表
yield
put
({
type
:
'query'
,
payload
:
{
...
PaginationHelper
.
defaultPayload
},
});
}
},
*
delete
({
payload
},
{
call
,
put
})
{
// 请求
const
response
=
yield
call
(
deleteBanner
,
payload
);
// 响应
if
(
response
.
code
===
0
)
{
message
.
info
(
'删除成功!'
);
// 刷新列表
yield
put
({
type
:
'query'
,
payload
:
{
...
PaginationHelper
.
defaultPayload
},
});
}
},
*
queryRoleList
({
payload
},
{
call
,
put
})
{
// 显示加载中
yield
put
({
type
:
'changeRoleAssignLoading'
,
payload
:
true
,
});
// 请求
const
response
=
yield
call
(
queryBannerRoleList
,
payload
);
// 响应
if
(
response
.
code
===
0
)
{
const
roleList
=
response
.
data
;
const
roleTreeData
=
buildTreeNode
(
roleList
,
'name'
,
'id'
);
const
roleCheckedKeys
=
findCheckedKeys
(
roleList
);
yield
put
({
type
:
'setAll'
,
payload
:
{
roleList
:
roleTreeData
,
roleCheckedKeys
,
},
});
}
// 隐藏加载中
yield
put
({
type
:
'changeRoleAssignLoading'
,
payload
:
false
,
});
},
*
roleAssign
({
payload
},
{
call
,
put
})
{
const
{
callback
,
body
}
=
payload
;
// 显示加载中
yield
put
({
type
:
'changeRoleAssignLoading'
,
payload
:
true
,
});
// 请求
const
response
=
yield
call
(
adminRoleAssign
,
{
id
:
body
.
id
,
roleIds
:
arrayToStringParams
(
body
.
roleIds
),
});
// 响应
if
(
response
.
code
===
0
)
{
if
(
callback
)
{
callback
(
response
);
}
}
// 隐藏加载中
yield
put
({
type
:
'changeRoleAssignLoading'
,
payload
:
false
,
});
},
},
reducers
:
{
changeRoleCheckedKeys
(
state
,
{
payload
})
{
return
{
...
state
,
roleCheckedKeys
:
payload
,
};
},
// 修改加载中的状态
changeRoleAssignLoading
(
state
,
{
payload
})
{
return
{
...
state
,
roleAssignLoading
:
payload
,
};
},
changeModalLoading
(
state
,
{
payload
})
{
return
{
...
state
,
modalLoading
:
payload
,
};
},
changeListLoading
(
state
,
{
payload
})
{
return
{
...
state
,
listLoading
:
payload
,
};
},
// 设置所有属性
setAll
(
state
,
{
payload
})
{
return
{
...
state
,
...
payload
,
};
}
},
};
admin-web/src/pages/Product/ProductCategoryList.js
浏览文件 @
23acc40d
...
@@ -209,7 +209,6 @@ class ProductCategoryList extends PureComponent {
...
@@ -209,7 +209,6 @@ class ProductCategoryList extends PureComponent {
{
{
title
:
'排序值'
,
title
:
'排序值'
,
dataIndex
:
'sort'
,
dataIndex
:
'sort'
,
render
:
sort
=>
<
span
>
{
sort
}
<
/span>
,
},
},
{
{
title
:
'创建时间'
,
title
:
'创建时间'
,
...
...
admin-web/src/pages/Promotion/BannerList.js
0 → 100644
浏览文件 @
23acc40d
差异被折叠。
点击展开。
admin-web/src/pages/Promotion/BannerList.less
0 → 100644
浏览文件 @
23acc40d
@import '~antd/lib/style/themes/default.less';
@import '~@/utils/utils.less';
.tableList {
.tableListOperator {
margin-bottom: 16px;
button {
margin-right: 8px;
}
}
}
.tableDelete {
color: red;
}
.tableListForm {
:global {
.ant-form-item {
display: flex;
margin-right: 0;
margin-bottom: 24px;
> .ant-form-item-label {
width: auto;
padding-right: 8px;
line-height: 32px;
}
.ant-form-item-control {
line-height: 32px;
}
}
.ant-form-item-control-wrapper {
flex: 1;
}
}
.submitButtons {
display: block;
margin-bottom: 24px;
white-space: nowrap;
}
}
@media screen and (max-width: @screen-lg) {
.tableListForm :global(.ant-form-item) {
margin-right: 24px;
}
}
\ No newline at end of file
admin-web/src/services/promotion.js
0 → 100644
浏览文件 @
23acc40d
import
{
stringify
}
from
'@/utils/request.qs'
;
import
request
from
'@/utils/request'
;
// banner
export
async
function
queryBanner
(
params
)
{
return
request
(
`/promotion-api/admins/banner/page?
${
stringify
(
params
)}
`
,
{
method
:
'GET'
,
});
}
export
async
function
addBanner
(
params
)
{
return
request
(
`/promotion-api/admins/banner/add?
${
stringify
(
params
)}
`
,
{
method
:
'POST'
,
});
}
export
async
function
updateBanner
(
params
)
{
return
request
(
`/promotion-api/admins/banner/update?
${
stringify
(
params
)}
`
,
{
method
:
'POST'
,
});
}
export
async
function
updateBannerStatus
(
params
)
{
return
request
(
`/promotion-api/admins/banner/update_status?
${
stringify
(
params
)}
`
,
{
method
:
'POST'
,
});
}
export
async
function
deleteBanner
(
params
)
{
return
request
(
`/promotion-api/admins/banner/delete?
${
stringify
(
params
)}
`
,
{
method
:
'POST'
,
});
}
\ No newline at end of file
admin/admin-application/src/main/java/cn/iocoder/mall/admin/application/controller/admins/ResourceController.java
浏览文件 @
23acc40d
...
@@ -66,14 +66,14 @@ public class ResourceController {
...
@@ -66,14 +66,14 @@ public class ResourceController {
@ApiImplicitParam
(
name
=
"sort"
,
value
=
"排序"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"sort"
,
value
=
"排序"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"displayName"
,
value
=
"菜单展示名"
,
required
=
true
,
example
=
"商品管理"
),
@ApiImplicitParam
(
name
=
"displayName"
,
value
=
"菜单展示名"
,
required
=
true
,
example
=
"商品管理"
),
@ApiImplicitParam
(
name
=
"pid"
,
value
=
"父级资源编号"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pid"
,
value
=
"父级资源编号"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"handler"
,
value
=
"操作"
,
required
=
true
,
example
=
"/order/list"
),
@ApiImplicitParam
(
name
=
"handler"
,
value
=
"操作"
,
example
=
"/order/list"
),
})
})
public
CommonResult
<
ResourceVO
>
add
(
@RequestParam
(
"name"
)
String
name
,
public
CommonResult
<
ResourceVO
>
add
(
@RequestParam
(
"name"
)
String
name
,
@RequestParam
(
"type"
)
Integer
type
,
@RequestParam
(
"type"
)
Integer
type
,
@RequestParam
(
"sort"
)
Integer
sort
,
@RequestParam
(
"sort"
)
Integer
sort
,
@RequestParam
(
"displayName"
)
String
displayName
,
@RequestParam
(
"displayName"
)
String
displayName
,
@RequestParam
(
"pid"
)
Integer
pid
,
@RequestParam
(
"pid"
)
Integer
pid
,
@RequestParam
(
"handler"
)
String
handler
)
{
@RequestParam
(
value
=
"handler"
,
required
=
false
)
String
handler
)
{
ResourceAddDTO
resourceAddDTO
=
new
ResourceAddDTO
().
setName
(
name
).
setType
(
type
).
setSort
(
sort
)
ResourceAddDTO
resourceAddDTO
=
new
ResourceAddDTO
().
setName
(
name
).
setType
(
type
).
setSort
(
sort
)
.
setDisplayName
(
displayName
).
setPid
(
pid
).
setHandler
(
handler
);
.
setDisplayName
(
displayName
).
setPid
(
pid
).
setHandler
(
handler
);
return
ResourceConvert
.
INSTANCE
.
convert3
(
resourceService
.
addResource
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
resourceAddDTO
));
return
ResourceConvert
.
INSTANCE
.
convert3
(
resourceService
.
addResource
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
resourceAddDTO
));
...
@@ -87,14 +87,14 @@ public class ResourceController {
...
@@ -87,14 +87,14 @@ public class ResourceController {
@ApiImplicitParam
(
name
=
"sort"
,
value
=
"排序"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"sort"
,
value
=
"排序"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"displayName"
,
value
=
"菜单展示名"
,
required
=
true
,
example
=
"商品管理"
),
@ApiImplicitParam
(
name
=
"displayName"
,
value
=
"菜单展示名"
,
required
=
true
,
example
=
"商品管理"
),
@ApiImplicitParam
(
name
=
"pid"
,
value
=
"父级资源编号"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"pid"
,
value
=
"父级资源编号"
,
required
=
true
,
example
=
"1"
),
@ApiImplicitParam
(
name
=
"handler"
,
value
=
"操作"
,
required
=
true
,
example
=
"/order/list"
),
@ApiImplicitParam
(
name
=
"handler"
,
value
=
"操作"
,
example
=
"/order/list"
),
})
})
public
CommonResult
<
Boolean
>
update
(
@RequestParam
(
"id"
)
Integer
id
,
public
CommonResult
<
Boolean
>
update
(
@RequestParam
(
"id"
)
Integer
id
,
@RequestParam
(
"name"
)
String
name
,
@RequestParam
(
"name"
)
String
name
,
@RequestParam
(
"sort"
)
Integer
sort
,
@RequestParam
(
"sort"
)
Integer
sort
,
@RequestParam
(
"displayName"
)
String
displayName
,
@RequestParam
(
"displayName"
)
String
displayName
,
@RequestParam
(
"pid"
)
Integer
pid
,
@RequestParam
(
"pid"
)
Integer
pid
,
@RequestParam
(
"handler"
)
String
handler
)
{
@RequestParam
(
value
=
"handler"
,
required
=
false
)
String
handler
)
{
ResourceUpdateDTO
resourceUpdateDTO
=
new
ResourceUpdateDTO
().
setId
(
id
).
setName
(
name
).
setSort
(
sort
).
setDisplayName
(
displayName
).
setPid
(
pid
).
setHandler
(
handler
);
ResourceUpdateDTO
resourceUpdateDTO
=
new
ResourceUpdateDTO
().
setId
(
id
).
setName
(
name
).
setSort
(
sort
).
setDisplayName
(
displayName
).
setPid
(
pid
).
setHandler
(
handler
);
return
resourceService
.
updateResource
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
resourceUpdateDTO
);
return
resourceService
.
updateResource
(
AdminSecurityContextHolder
.
getContext
().
getAdminId
(),
resourceUpdateDTO
);
}
}
...
...
promotion/promotion-application/src/main/java/cn/iocoder/mall/promotion/application/vo/BannerVO.java
浏览文件 @
23acc40d
...
@@ -14,7 +14,7 @@ public class BannerVO {
...
@@ -14,7 +14,7 @@ public class BannerVO {
private
String
title
;
private
String
title
;
@ApiModelProperty
(
value
=
"跳转链接"
,
required
=
true
,
example
=
"http://www.baidu.com"
)
@ApiModelProperty
(
value
=
"跳转链接"
,
required
=
true
,
example
=
"http://www.baidu.com"
)
private
String
url
;
private
String
url
;
@ApiModelProperty
(
value
=
"
突脸
链接"
,
required
=
true
,
example
=
"http://www.iocoder.cn/01.jpg"
)
@ApiModelProperty
(
value
=
"
图片
链接"
,
required
=
true
,
example
=
"http://www.iocoder.cn/01.jpg"
)
private
String
picUrl
;
private
String
picUrl
;
@ApiModelProperty
(
value
=
"排序"
,
required
=
true
,
example
=
"10"
)
@ApiModelProperty
(
value
=
"排序"
,
required
=
true
,
example
=
"10"
)
private
Integer
sort
;
private
Integer
sort
;
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/BannerAddDTO.java
浏览文件 @
23acc40d
...
@@ -12,13 +12,15 @@ import javax.validation.constraints.NotNull;
...
@@ -12,13 +12,15 @@ import javax.validation.constraints.NotNull;
public
class
BannerAddDTO
{
public
class
BannerAddDTO
{
@NotEmpty
(
message
=
"标题不能为空"
)
@NotEmpty
(
message
=
"标题不能为空"
)
@Length
(
min
=
6
,
max
=
32
,
message
=
"标题长度为 6
-32 位"
)
@Length
(
min
=
2
,
max
=
32
,
message
=
"标题长度为 2
-32 位"
)
private
String
title
;
private
String
title
;
@NotEmpty
(
message
=
"跳转链接不能为空"
)
@NotEmpty
(
message
=
"跳转链接不能为空"
)
@URL
(
message
=
"跳转链接格式不正确"
)
@URL
(
message
=
"跳转链接格式不正确"
)
@Length
(
max
=
255
,
message
=
"跳转链接最大长度为 255 位"
)
private
String
url
;
private
String
url
;
@NotEmpty
(
message
=
"图片链接不能为空"
)
@NotEmpty
(
message
=
"图片链接不能为空"
)
@URL
(
message
=
"图片链接格式不正确"
)
@URL
(
message
=
"图片链接格式不正确"
)
@Length
(
max
=
255
,
message
=
"图片链接最大长度为 255 位"
)
private
String
picUrl
;
private
String
picUrl
;
@NotNull
(
message
=
"排序不能为空"
)
@NotNull
(
message
=
"排序不能为空"
)
private
Integer
sort
;
private
Integer
sort
;
...
...
promotion/promotion-service-api/src/main/java/cn/iocoder/mall/promotion/api/dto/BannerUpdateDTO.java
浏览文件 @
23acc40d
...
@@ -14,12 +14,15 @@ public class BannerUpdateDTO {
...
@@ -14,12 +14,15 @@ public class BannerUpdateDTO {
@NotNull
(
message
=
"编号不能为空"
)
@NotNull
(
message
=
"编号不能为空"
)
private
Integer
id
;
private
Integer
id
;
@NotEmpty
(
message
=
"标题不能为空"
)
@NotEmpty
(
message
=
"标题不能为空"
)
@Length
(
min
=
6
,
max
=
32
,
message
=
"标题长度为 6
-32 位"
)
@Length
(
min
=
2
,
max
=
32
,
message
=
"标题长度为 2
-32 位"
)
private
String
title
;
private
String
title
;
@NotEmpty
(
message
=
"跳转链接不能为空"
)
@NotEmpty
(
message
=
"跳转链接不能为空"
)
@URL
(
message
=
"跳转链接格式不正确"
)
@URL
(
message
=
"跳转链接格式不正确"
)
@Length
(
max
=
255
,
message
=
"跳转链接最大长度为 255 位"
)
private
String
url
;
private
String
url
;
@NotEmpty
(
message
=
"图片链接不能为空"
)
@URL
(
message
=
"图片链接格式不正确"
)
@URL
(
message
=
"图片链接格式不正确"
)
@Length
(
max
=
255
,
message
=
"图片链接最大长度为 255 位"
)
private
String
picUrl
;
private
String
picUrl
;
@NotNull
(
message
=
"排序不能为空"
)
@NotNull
(
message
=
"排序不能为空"
)
private
Integer
sort
;
private
Integer
sort
;
...
...
promotion/promotion-service-impl/src/main/java/cn/iocoder/mall/promotion/biz/service/BannerServiceImpl.java
浏览文件 @
23acc40d
...
@@ -42,7 +42,7 @@ public class BannerServiceImpl implements BannerService {
...
@@ -42,7 +42,7 @@ public class BannerServiceImpl implements BannerService {
@Override
@Override
public
CommonResult
<
BannerBO
>
addBanner
(
Integer
adminId
,
BannerAddDTO
bannerAddDTO
)
{
public
CommonResult
<
BannerBO
>
addBanner
(
Integer
adminId
,
BannerAddDTO
bannerAddDTO
)
{
// 保存到数据库
// 保存到数据库
BannerDO
banner
=
BannerConvert
.
INSTANCE
.
convert
(
bannerAddDTO
);
BannerDO
banner
=
BannerConvert
.
INSTANCE
.
convert
(
bannerAddDTO
)
.
setStatus
(
CommonStatusEnum
.
ENABLE
.
getValue
())
;
banner
.
setDeleted
(
DeletedStatusEnum
.
DELETED_NO
.
getValue
()).
setCreateTime
(
new
Date
());
banner
.
setDeleted
(
DeletedStatusEnum
.
DELETED_NO
.
getValue
()).
setCreateTime
(
new
Date
());
bannerMapper
.
insert
(
banner
);
bannerMapper
.
insert
(
banner
);
// 返回成功
// 返回成功
...
...
promotion/promotion-service-impl/src/main/resources/mapper/BannerMapper.xml
浏览文件 @
23acc40d
...
@@ -76,7 +76,7 @@
...
@@ -76,7 +76,7 @@
<if
test=
"url != null"
>
<if
test=
"url != null"
>
url = #{url},
url = #{url},
</if>
</if>
<if
test=
"pic
_u
rl != null"
>
<if
test=
"pic
U
rl != null"
>
pic_url = #{picUrl} ,
pic_url = #{picUrl} ,
</if>
</if>
<if
test=
"sort != null"
>
<if
test=
"sort != null"
>
...
@@ -85,8 +85,8 @@
...
@@ -85,8 +85,8 @@
<if
test=
"status != null"
>
<if
test=
"status != null"
>
status = #{status},
status = #{status},
</if>
</if>
<if
test=
"
VALUES
!= null"
>
<if
test=
"
memo
!= null"
>
VALUES = #{VALUES
},
memo = #{memo
},
</if>
</if>
<if
test=
"deleted != null"
>
<if
test=
"deleted != null"
>
deleted = #{deleted}
deleted = #{deleted}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论