记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
61410dee
Commit
61410dee
authored
Aug 20, 2021
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Sql调整;
添加券、列表、码表API;
parent
6bad8042
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
587 additions
and
2 deletions
+587
-2
member_voucher_refund.sql
docu/member_voucher_refund.sql
+1
-1
CandyCouponRuleBuildParam.java
...et/service/candy/dto/admin/CandyCouponRuleBuildParam.java
+16
-0
CandyMgtCouponBuildParam.java
...net/service/candy/dto/admin/CandyMgtCouponBuildParam.java
+5
-0
CandyCouponCodeAdminController.java
...roller/zhengzai/candy/CandyCouponCodeAdminController.java
+51
-0
CandyMgtCouponController.java
...b/controller/zhengzai/candy/CandyMgtCouponController.java
+164
-0
code.html
.../resources/templates/zhengzai/candy/coupon/code/code.html
+165
-0
coupon1.html
...esources/templates/zhengzai/candy/coupon/mgt/coupon1.html
+128
-0
ICandyCouponAdminService.java
...dmin/zhengzai/candy/service/ICandyCouponAdminService.java
+7
-0
ICandyCouponCodeAdminService.java
.../zhengzai/candy/service/ICandyCouponCodeAdminService.java
+8
-0
ICandyMgtCouponAdminService.java
...n/zhengzai/candy/service/ICandyMgtCouponAdminService.java
+3
-0
CandyCouponAdminServiceImpl.java
...ngzai/candy/service/impl/CandyCouponAdminServiceImpl.java
+12
-0
CandyCouponCodeAdminServiceImpl.java
...i/candy/service/impl/CandyCouponCodeAdminServiceImpl.java
+13
-0
CandyMgtCouponAdminServiceImpl.java
...ai/candy/service/impl/CandyMgtCouponAdminServiceImpl.java
+13
-0
db_ln_candy_initialdata.sql
...idnet-service-candy-impl/docu/db_ln_candy_initialdata.sql
+1
-1
No files found.
docu/member_voucher_refund.sql
View file @
61410dee
...
@@ -124,7 +124,7 @@ create table candy_coupon_code
...
@@ -124,7 +124,7 @@ create table candy_coupon_code
comment
varchar
(
255
)
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'券码信息'
;
)
engine
=
InnoDB
comment
'券码信息'
;
create
unique
index
uidx_candy_coupon_code_id
on
candy_coupon_code
(
ccode
);
create
unique
index
uidx_candy_coupon_code_id
on
candy_coupon_code
(
ccode
,
coupon_id
);
#
用户券信息
#
用户券信息
...
...
liquidnet-bus-api/liquidnet-service-candy-api/src/main/java/com/liquidnet/service/candy/dto/admin/CandyCouponRuleBuildParam.java
0 → 100644
View file @
61410dee
package
com
.
liquidnet
.
service
.
candy
.
dto
.
admin
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@ApiModel
(
value
=
"CandyCouponRuleBuildParam"
,
description
=
"添加券规则入参"
)
@Data
public
class
CandyCouponRuleBuildParam
{
@ApiModelProperty
(
required
=
true
,
value
=
"适用范围[100-全场|90-演出|91-场次|92-票|80-商品|81-款式]"
,
allowableValues
=
"100,90,91,92,80,81"
)
private
Integer
useScope
;
@ApiModelProperty
(
required
=
true
,
value
=
"适用名称"
,
allowableValues
=
"适用名称"
)
private
String
busiName
;
@ApiModelProperty
(
required
=
false
,
value
=
"适用ID"
,
allowableValues
=
"适用ID"
)
private
String
busiId
;
}
liquidnet-bus-api/liquidnet-service-candy-api/src/main/java/com/liquidnet/service/candy/dto/admin/CandyMgtCouponBuildParam.java
View file @
61410dee
...
@@ -7,6 +7,7 @@ import lombok.Data;
...
@@ -7,6 +7,7 @@ import lombok.Data;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.List
;
@ApiModel
(
value
=
"CandyMgtCouponBuildParam"
,
description
=
"新建券入参"
)
@ApiModel
(
value
=
"CandyMgtCouponBuildParam"
,
description
=
"新建券入参"
)
@Data
@Data
...
@@ -59,6 +60,10 @@ public class CandyMgtCouponBuildParam {
...
@@ -59,6 +60,10 @@ public class CandyMgtCouponBuildParam {
//private String comment;
//private String comment;
@ApiModelProperty
(
required
=
true
,
value
=
"适用规则列表"
,
dataType
=
"List"
)
private
List
<
CandyCouponRuleBuildParam
>
couponRuleList
;
//private String mcouponId;
//private String mcouponId;
//private String couponId;
//private String couponId;
//private Integer state;
//private Integer state;
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/candy/CandyCouponCodeAdminController.java
0 → 100644
View file @
61410dee
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
candy
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.client.admin.common.core.controller.BaseController
;
import
com.liquidnet.client.admin.common.core.domain.entity.SysRole
;
import
com.liquidnet.client.admin.common.core.page.TableDataInfo
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponCodeAdminService
;
import
com.liquidnet.service.candy.dto.admin.CandyCouponCodeListParam
;
import
com.liquidnet.service.candy.entity.CandyCouponCode
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
java.util.List
;
@Api
(
tags
=
"券码管理"
)
@Slf4j
@Controller
@RequestMapping
(
"candy/coupon/code"
)
public
class
CandyCouponCodeAdminController
extends
BaseController
{
private
String
prefix
=
"zhengzai/candy/coupon/code"
;
@Autowired
private
ICandyCouponCodeAdminService
candyCouponCodeAdminService
;
@RequiresPermissions
(
"candy:coupon:code:view"
)
@GetMapping
()
public
String
role
()
{
return
prefix
+
"/code"
;
}
@RequiresPermissions
(
"candy:coupon:code:list"
)
@PostMapping
(
"list"
)
@ResponseBody
public
TableDataInfo
list
(
CandyCouponCodeListParam
listParam
)
{
startPage
();
LambdaQueryWrapper
<
CandyCouponCode
>
lambdaQuery
=
Wrappers
.
lambdaQuery
(
CandyCouponCode
.
class
);
lambdaQuery
.
eq
(
CandyCouponCode:
:
getCouponId
,
listParam
.
getCouponId
()).
eq
(
CandyCouponCode:
:
getState
,
listParam
.
getState
());
List
<
CandyCouponCode
>
list
=
candyCouponCodeAdminService
.
list
(
lambdaQuery
);
return
getDataTable
(
list
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/candy/CandyMgtCouponController.java
0 → 100644
View file @
61410dee
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
candy
;
import
com.liquidnet.client.admin.common.annotation.Log
;
import
com.liquidnet.client.admin.common.core.controller.BaseController
;
import
com.liquidnet.client.admin.common.core.domain.AjaxResult
;
import
com.liquidnet.client.admin.common.core.page.TableDataInfo
;
import
com.liquidnet.client.admin.common.enums.BusinessType
;
import
com.liquidnet.client.admin.common.utils.DateUtils
;
import
com.liquidnet.client.admin.common.utils.ShiroUtils
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponBuildParam
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
import
com.liquidnet.service.candy.entity.CandyMgtCoupon
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.ModelMap
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.List
;
@Api
(
tags
=
"券发放管理"
)
@Slf4j
@Controller
@RequestMapping
(
"candy/coupon/mgt"
)
public
class
CandyMgtCouponController
extends
BaseController
{
private
final
String
prefix
=
"zhengzai/candy/coupon/mgt"
;
@Autowired
private
ICandyMgtCouponAdminService
candyMgtCouponAdminService
;
@Autowired
private
ICandyCouponAdminService
candyCouponAdminService
;
@RequiresPermissions
(
"candy:coupon:mgt:view"
)
@GetMapping
()
public
String
coupon
(
@RequestParam
Integer
couType
)
{
return
prefix
+
"/coupon"
+
couType
;
}
@RequiresPermissions
(
"candy:coupon:mgt:list"
)
@PostMapping
(
"list"
)
@ResponseBody
public
TableDataInfo
list
(
CandyMgtCouponListParam
listParam
)
{
startPage
();
List
<
CandyMgtCouponInfoDto
>
list
=
candyMgtCouponAdminService
.
listForMgtCouponInfoDto
(
listParam
);
return
getDataTable
(
list
);
}
@GetMapping
(
"add"
)
public
String
add
()
{
return
prefix
+
"/add"
;
}
@ApiOperation
(
value
=
"新建券"
)
@RequiresPermissions
(
"candy:coupon:mgt:add"
)
@Log
(
title
=
"券发放管理"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
(
"add"
)
@ResponseBody
public
AjaxResult
addSave
(
@Validated
CandyMgtCouponBuildParam
buildParam
)
{
BigDecimal
discount
=
null
,
valFace
=
null
,
valOver
=
null
,
valMinus
=
null
;
Integer
couType
=
buildParam
.
getCouType
(),
validity
=
buildParam
.
getValidity
(),
redeemValidity
=
buildParam
.
getRedeemValidity
();
LocalDateTime
nowTime
=
LocalDateTime
.
now
(),
redeemStart
=
null
,
redeemStop
=
null
,
effectAt
,
expireAt
,
eventAt
=
LocalDateTime
.
parse
(
buildParam
.
getEventAt
(),
DateTimeFormatter
.
ofPattern
(
DateUtils
.
YYYY_MM_DD_HH_MM_SS
));
switch
(
couType
)
{
// TODO: 2021/8/20 校验
case
1
:
// 代金券
valFace
=
buildParam
.
getValFace
();
break
;
case
2
:
// 满减券
valOver
=
buildParam
.
getValOver
();
valMinus
=
buildParam
.
getValMinus
();
break
;
case
3
:
// 兑换券
redeemStart
=
eventAt
.
with
(
LocalTime
.
MIN
);
redeemStop
=
eventAt
.
plusDays
(
redeemValidity
).
withHour
(
23
).
withMinute
(
59
).
withSecond
(
59
);
break
;
case
4
:
// 折扣券
discount
=
buildParam
.
getDiscount
();
break
;
default
:
log
.
warn
(
"Invalid operation[buildParam.couType={}]"
,
couType
);
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
"券类型无效"
);
}
effectAt
=
eventAt
.
with
(
LocalTime
.
MIN
);
expireAt
=
eventAt
.
plusDays
(
validity
).
withHour
(
23
).
withMinute
(
59
).
withSecond
(
59
);
String
eventLimit
=
null
,
operator
=
ShiroUtils
.
getLoginName
();
if
(
buildParam
.
getEventType
()
==
2
)
{
// 指定用户手机号
eventLimit
=
buildParam
.
getEventLimit
().
trim
();
// TODO: 2021/8/20 正则校验手机号字符串
if
(
StringUtils
.
isEmpty
(
eventLimit
))
{
return
this
.
error
(
AjaxResult
.
Type
.
WARN
,
"请指定手机号"
);
}
}
CandyCoupon
initCoupon
=
new
CandyCoupon
();
initCoupon
.
setCouponId
(
IDGenerator
.
nextMilliId
());
initCoupon
.
setState
(
1
);
initCoupon
.
setTitle
(
buildParam
.
getTitle
());
initCoupon
.
setLabel
(
buildParam
.
getLabel
());
initCoupon
.
setNotice
(
buildParam
.
getNotice
());
initCoupon
.
setExclusive
(
0
);
initCoupon
.
setBusiType
(
buildParam
.
getBusiType
());
initCoupon
.
setCouType
(
couType
);
initCoupon
.
setBindType
(
buildParam
.
getBindType
());
initCoupon
.
setDiscount
(
discount
);
initCoupon
.
setValFace
(
valFace
);
initCoupon
.
setValOver
(
valOver
);
initCoupon
.
setValMinus
(
valMinus
);
initCoupon
.
setOverlay
(
buildParam
.
getOverlay
());
initCoupon
.
setValidity
(
validity
);
initCoupon
.
setRedeemValidity
(
redeemValidity
);
initCoupon
.
setRedeemStart
(
redeemStart
);
initCoupon
.
setRedeemStop
(
redeemStop
);
initCoupon
.
setEffectAt
(
effectAt
);
initCoupon
.
setExpireAt
(
expireAt
);
initCoupon
.
setOperator
(
operator
);
initCoupon
.
setCreatedAt
(
nowTime
);
CandyMgtCoupon
initMgtCoupon
=
new
CandyMgtCoupon
();
initMgtCoupon
.
setMcouponId
(
IDGenerator
.
nextMilliId
());
initMgtCoupon
.
setCouponId
(
initCoupon
.
getCouponId
());
initMgtCoupon
.
setState
(
0
);
initMgtCoupon
.
setEventAmt
(
buildParam
.
getEventAmt
());
initMgtCoupon
.
setEventType
(
buildParam
.
getEventType
());
initMgtCoupon
.
setEventLimit
(
eventLimit
);
initMgtCoupon
.
setEventAt
(
eventAt
);
initMgtCoupon
.
setOperator
(
operator
);
initMgtCoupon
.
setCreatedAt
(
nowTime
);
candyMgtCouponAdminService
.
saveMgtCouponInfo
(
initCoupon
,
initMgtCoupon
);
return
toAjax
(
true
);
}
@GetMapping
(
"code/{couponId}"
)
public
String
code
(
@PathVariable
(
"couponId"
)
String
couponId
,
ModelMap
mmap
)
{
mmap
.
put
(
"couponId"
,
couponId
);
return
prefix
+
"/code"
;
}
@RequiresPermissions
(
"candy:coupon:mgt:code:list"
)
@PostMapping
(
"codeList"
)
@ResponseBody
public
TableDataInfo
codeList
(
CandyMgtCouponListParam
listParam
)
{
startPage
();
return
getDataTable
(
null
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/candy/coupon/code/code.html
0 → 100644
View file @
61410dee
<!DOCTYPE html>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
xmlns:shiro=
"http://www.pollix.at/thymeleaf/shiro"
>
<head>
<th:block
th:include=
"include :: header('角色列表')"
/>
</head>
<body
class=
"gray-bg"
>
<div
class=
"container-div"
>
<div
class=
"row"
>
<div
class=
"col-sm-12 search-collapse"
>
<form
id=
"role-form"
>
<div
class=
"select-list"
>
<ul>
<li>
角色名称:
<input
type=
"text"
name=
"roleName"
/>
</li>
<li>
权限字符:
<input
type=
"text"
name=
"roleKey"
/>
</li>
<li>
角色状态:
<select
name=
"status"
th:with=
"type=${@dict.getType('sys_normal_disable')}"
>
<option
value=
""
>
所有
</option>
<option
th:each=
"dict : ${type}"
th:text=
"${dict.dictLabel}"
th:value=
"${dict.dictValue}"
></option>
</select>
</li>
<li
class=
"select-time"
>
<label>
创建时间:
</label>
<input
type=
"text"
class=
"time-input"
id=
"startTime"
placeholder=
"开始时间"
name=
"params[beginTime]"
/>
<span>
-
</span>
<input
type=
"text"
class=
"time-input"
id=
"endTime"
placeholder=
"结束时间"
name=
"params[endTime]"
/>
</li>
<li>
<a
class=
"btn btn-primary btn-rounded btn-sm"
onclick=
"$.table.search()"
><i
class=
"fa fa-search"
></i>
搜索
</a>
<a
class=
"btn btn-warning btn-rounded btn-sm"
onclick=
"$.form.reset()"
><i
class=
"fa fa-refresh"
></i>
重置
</a>
</li>
</ul>
</div>
</form>
</div>
<div
class=
"btn-group-sm"
id=
"toolbar"
role=
"group"
>
<a
class=
"btn btn-success"
onclick=
"$.operate.add()"
shiro:hasPermission=
"system:role:add"
>
<i
class=
"fa fa-plus"
></i>
新增
</a>
<a
class=
"btn btn-primary single disabled"
onclick=
"$.operate.edit()"
shiro:hasPermission=
"system:role:edit"
>
<i
class=
"fa fa-edit"
></i>
修改
</a>
<a
class=
"btn btn-danger multiple disabled"
onclick=
"$.operate.removeAll()"
shiro:hasPermission=
"system:role:remove"
>
<i
class=
"fa fa-remove"
></i>
删除
</a>
<a
class=
"btn btn-warning"
onclick=
"$.table.exportExcel()"
shiro:hasPermission=
"system:role:export"
>
<i
class=
"fa fa-download"
></i>
导出
</a>
</div>
<div
class=
"col-sm-12 select-table table-striped"
>
<table
id=
"bootstrap-table"
></table>
</div>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<script
th:inline=
"javascript"
>
var
editFlag
=
[[
$
{@
permission
.
hasPermi
(
'system:role:edit'
)}]];
var
removeFlag
=
[[
$
{@
permission
.
hasPermi
(
'system:role:remove'
)}]];
var
prefix
=
ctx
+
"system/role"
;
$
(
function
()
{
var
options
=
{
url
:
prefix
+
"/list"
,
createUrl
:
prefix
+
"/add"
,
updateUrl
:
prefix
+
"/edit/{id}"
,
removeUrl
:
prefix
+
"/remove"
,
exportUrl
:
prefix
+
"/export"
,
sortName
:
"roleSort"
,
modalName
:
"角色"
,
columns
:
[{
checkbox
:
true
},
{
field
:
'roleId'
,
title
:
'角色编号'
},
{
field
:
'roleName'
,
title
:
'角色名称'
,
sortable
:
true
},
{
field
:
'roleKey'
,
title
:
'权限字符'
,
sortable
:
true
},
{
field
:
'roleSort'
,
title
:
'显示顺序'
,
sortable
:
true
},
{
visible
:
editFlag
==
'hidden'
?
false
:
true
,
title
:
'角色状态'
,
align
:
'center'
,
formatter
:
function
(
value
,
row
,
index
)
{
return
statusTools
(
row
);
}
},
{
field
:
'createTime'
,
title
:
'创建时间'
,
sortable
:
true
},
{
title
:
'操作'
,
align
:
'center'
,
formatter
:
function
(
value
,
row
,
index
)
{
var
actions
=
[];
actions
.
push
(
'<a class="btn btn-success btn-xs '
+
editFlag
+
'" href="javascript:void(0)" onclick="$.operate.edit(
\'
'
+
row
.
roleId
+
'
\'
)"><i class="fa fa-edit"></i>编辑</a> '
);
actions
.
push
(
'<a class="btn btn-danger btn-xs '
+
removeFlag
+
'" href="javascript:void(0)" onclick="$.operate.remove(
\'
'
+
row
.
roleId
+
'
\'
)"><i class="fa fa-remove"></i>删除</a> '
);
var
more
=
[];
more
.
push
(
"<a class='btn btn-default btn-xs "
+
editFlag
+
"' href='javascript:void(0)' onclick='authDataScope("
+
row
.
roleId
+
")'><i class='fa fa-check-square-o'></i>数据权限</a> "
);
more
.
push
(
"<a class='btn btn-default btn-xs "
+
editFlag
+
"' href='javascript:void(0)' onclick='authUser("
+
row
.
roleId
+
")'><i class='fa fa-user'></i>分配用户</a>"
);
actions
.
push
(
'<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="'
+
more
.
join
(
''
)
+
'"><i class="fa fa-chevron-circle-right"></i>更多操作</a>'
);
return
actions
.
join
(
''
);
}
}]
};
$
.
table
.
init
(
options
);
});
/* 角色管理-分配数据权限 */
function
authDataScope
(
roleId
)
{
var
url
=
prefix
+
'/authDataScope/'
+
roleId
;
$
.
modal
.
open
(
"分配数据权限"
,
url
);
}
/* 角色管理-分配用户 */
function
authUser
(
roleId
)
{
var
url
=
prefix
+
'/authUser/'
+
roleId
;
$
.
modal
.
openTab
(
"分配用户"
,
url
);
}
/* 角色状态显示 */
function
statusTools
(
row
)
{
if
(
row
.
status
==
1
)
{
return
'<i class=
\
"fa fa-toggle-off text-info fa-2x
\
" onclick="enable(
\'
'
+
row
.
roleId
+
'
\'
)"></i> '
;
}
else
{
return
'<i class=
\
"fa fa-toggle-on text-info fa-2x
\
" onclick="disable(
\'
'
+
row
.
roleId
+
'
\'
)"></i> '
;
}
}
/* 角色管理-停用 */
function
disable
(
roleId
)
{
$
.
modal
.
confirm
(
"确认要停用角色吗?"
,
function
()
{
$
.
operate
.
post
(
prefix
+
"/changeStatus"
,
{
"roleId"
:
roleId
,
"status"
:
1
});
})
}
/* 角色管理启用 */
function
enable
(
roleId
)
{
$
.
modal
.
confirm
(
"确认要启用角色吗?"
,
function
()
{
$
.
operate
.
post
(
prefix
+
"/changeStatus"
,
{
"roleId"
:
roleId
,
"status"
:
0
});
})
}
</script>
</body>
</html>
\ No newline at end of file
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/candy/coupon/mgt/coupon1.html
0 → 100644
View file @
61410dee
<!DOCTYPE html>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
xmlns:shiro=
"http://www.pollix.at/thymeleaf/shiro"
>
<head>
<th:block
th:include=
"include :: header('代金券')"
/>
</head>
<body
class=
"gray-bg"
>
<div
class=
"container-div"
>
<div
class=
"row"
>
<div
class=
"col-sm-12 search-collapse"
>
<form
id=
"role-form"
>
<div
class=
"select-list"
>
<ul>
<li>
角色名称:
<input
type=
"text"
name=
"roleName"
/>
</li>
<li>
权限字符:
<input
type=
"text"
name=
"roleKey"
/>
</li>
<li>
角色状态:
<select
name=
"status"
th:with=
"type=${@dict.getType('sys_normal_disable')}"
>
<option
value=
""
>
所有
</option>
<option
th:each=
"dict : ${type}"
th:text=
"${dict.dictLabel}"
th:value=
"${dict.dictValue}"
></option>
</select>
</li>
<li
class=
"select-time"
>
<label>
创建时间:
</label>
<input
type=
"text"
class=
"time-input"
id=
"startTime"
placeholder=
"开始时间"
name=
"params[beginTime]"
/>
<span>
-
</span>
<input
type=
"text"
class=
"time-input"
id=
"endTime"
placeholder=
"结束时间"
name=
"params[endTime]"
/>
</li>
<li>
<a
class=
"btn btn-primary btn-rounded btn-sm"
onclick=
"$.table.search()"
><i
class=
"fa fa-search"
></i>
搜索
</a>
<a
class=
"btn btn-warning btn-rounded btn-sm"
onclick=
"$.form.reset()"
><i
class=
"fa fa-refresh"
></i>
重置
</a>
</li>
</ul>
</div>
</form>
</div>
<div
class=
"btn-group-sm"
id=
"toolbar"
role=
"group"
>
<a
class=
"btn btn-success"
onclick=
"$.operate.add()"
shiro:hasPermission=
"candy:coupon:mgt:add"
>
<i
class=
"fa fa-plus"
></i>
新增
</a>
</div>
<div
class=
"col-sm-12 select-table table-striped"
>
<table
id=
"bootstrap-table"
></table>
</div>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<script
th:inline=
"javascript"
>
var
couponCodeListFlag
=
[[
$
{@
permission
.
hasPermi
(
'system:role:edit'
)}]];
var
prefix
=
ctx
+
"candy/coupon/mgt"
;
$
(
function
()
{
var
options
=
{
url
:
prefix
+
"/list"
,
createUrl
:
prefix
+
"/add"
,
// updateUrl: prefix + "/edit/{id}",
// removeUrl: prefix + "/remove",
// exportUrl: prefix + "/export",
sortName
:
"createdAt"
,
modalName
:
"发放记录"
,
columns
:
[{
checkbox
:
true
},
{
field
:
'valFace'
,
title
:
'金额'
},
{
field
:
'eventAmt'
,
title
:
'数量'
,
},
{
field
:
'bindType'
,
title
:
'类型'
,
sortable
:
true
},
{
field
:
'busiType'
,
title
:
'适用范围'
,
sortable
:
true
},
{
field
:
'title'
,
title
:
'标题'
,
},
{
field
:
'notice'
,
title
:
'描述'
,
},
{
field
:
'operator'
,
title
:
'创建人'
,
},
{
field
:
'createdAt'
,
title
:
'生成时间'
,
sortable
:
true
},
{
field
:
'expireAt'
,
title
:
'失效时间'
,
sortable
:
true
},
{
title
:
'操作'
,
align
:
'center'
,
formatter
:
function
(
value
,
row
,
index
)
{
var
actions
=
[];
actions
.
push
(
"<a class='btn btn-default btn-xs "
+
couponCodeListFlag
+
"' href='javascript:void(0)' onclick='authUser("
+
row
.
roleId
+
")'><i class='fa fa-user'></i></a>"
);
return
actions
.
join
(
''
);
}
}]
};
$
.
table
.
init
(
options
);
});
/* 券码列表 */
function
couponCodeList
(
couponId
)
{
var
url
=
prefix
+
'/code/'
+
couponId
;
$
.
modal
.
openTab
(
"查看码列表"
,
url
);
}
</script>
</body>
</html>
\ No newline at end of file
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/candy/service/ICandyCouponAdminService.java
0 → 100644
View file @
61410dee
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
candy
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
public
interface
ICandyCouponAdminService
extends
IService
<
CandyCoupon
>
{
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/candy/service/ICandyCouponCodeAdminService.java
0 → 100644
View file @
61410dee
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
candy
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.candy.entity.CandyCouponCode
;
public
interface
ICandyCouponCodeAdminService
extends
IService
<
CandyCouponCode
>
{
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/candy/service/ICandyMgtCouponAdminService.java
View file @
61410dee
...
@@ -3,11 +3,14 @@ package com.liquidnet.client.admin.zhengzai.candy.service;
...
@@ -3,11 +3,14 @@ package com.liquidnet.client.admin.zhengzai.candy.service;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
import
com.liquidnet.service.candy.entity.CandyMgtCoupon
;
import
com.liquidnet.service.candy.entity.CandyMgtCoupon
;
import
java.util.List
;
import
java.util.List
;
public
interface
ICandyMgtCouponAdminService
extends
IService
<
CandyMgtCoupon
>
{
public
interface
ICandyMgtCouponAdminService
extends
IService
<
CandyMgtCoupon
>
{
void
saveMgtCouponInfo
(
CandyCoupon
initCoupon
,
CandyMgtCoupon
initMgtCoupon
);
List
<
CandyMgtCouponInfoDto
>
listForMgtCouponInfoDto
(
CandyMgtCouponListParam
listParam
);
List
<
CandyMgtCouponInfoDto
>
listForMgtCouponInfoDto
(
CandyMgtCouponListParam
listParam
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/candy/service/impl/CandyCouponAdminServiceImpl.java
0 → 100644
View file @
61410dee
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
candy
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
import
com.liquidnet.service.candy.mapper.CandyCouponMapper
;
import
org.springframework.stereotype.Service
;
@Service
public
class
CandyCouponAdminServiceImpl
extends
ServiceImpl
<
CandyCouponMapper
,
CandyCoupon
>
implements
ICandyCouponAdminService
{
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/candy/service/impl/CandyCouponCodeAdminServiceImpl.java
0 → 100644
View file @
61410dee
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
candy
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponCodeAdminService
;
import
com.liquidnet.service.candy.entity.CandyCouponCode
;
import
com.liquidnet.service.candy.mapper.CandyCouponCodeMapper
;
import
org.springframework.stereotype.Service
;
@Service
public
class
CandyCouponCodeAdminServiceImpl
extends
ServiceImpl
<
CandyCouponCodeMapper
,
CandyCouponCode
>
implements
ICandyCouponCodeAdminService
{
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/candy/service/impl/CandyMgtCouponAdminServiceImpl.java
View file @
61410dee
...
@@ -2,14 +2,17 @@ package com.liquidnet.client.admin.zhengzai.candy.service.impl;
...
@@ -2,14 +2,17 @@ package com.liquidnet.client.admin.zhengzai.candy.service.impl;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService
;
import
com.liquidnet.common.exception.LiquidnetServiceException
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponInfoDto
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam
;
import
com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
import
com.liquidnet.service.candy.entity.CandyMgtCoupon
;
import
com.liquidnet.service.candy.entity.CandyMgtCoupon
;
import
com.liquidnet.service.candy.mapper.CandyCouponMapper
;
import
com.liquidnet.service.candy.mapper.CandyCouponMapper
;
import
com.liquidnet.service.candy.mapper.CandyMgtCouponMapper
;
import
com.liquidnet.service.candy.mapper.CandyMgtCouponMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.List
;
...
@@ -21,6 +24,16 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
...
@@ -21,6 +24,16 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
@Autowired
@Autowired
private
CandyCouponMapper
candyCouponMapper
;
private
CandyCouponMapper
candyCouponMapper
;
@Override
@Transactional
public
void
saveMgtCouponInfo
(
CandyCoupon
initCoupon
,
CandyMgtCoupon
initMgtCoupon
)
{
int
insert
=
candyCouponMapper
.
insert
(
initCoupon
);
insert
+=
candyMgtCouponMapper
.
insert
(
initMgtCoupon
);
if
(
insert
<
2
)
{
throw
new
LiquidnetServiceException
();
}
}
@Override
@Override
public
List
<
CandyMgtCouponInfoDto
>
listForMgtCouponInfoDto
(
CandyMgtCouponListParam
listParam
)
{
public
List
<
CandyMgtCouponInfoDto
>
listForMgtCouponInfoDto
(
CandyMgtCouponListParam
listParam
)
{
return
candyMgtCouponMapper
.
selectMultiForMgtCouponInfoDto
(
listParam
);
return
candyMgtCouponMapper
.
selectMultiForMgtCouponInfoDto
(
listParam
);
...
...
liquidnet-bus-service/liquidnet-service-candy/liquidnet-service-candy-impl/docu/db_ln_candy_initialdata.sql
View file @
61410dee
...
@@ -99,7 +99,7 @@ create table candy_coupon_code
...
@@ -99,7 +99,7 @@ create table candy_coupon_code
comment
varchar
(
255
)
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'券码信息'
;
)
engine
=
InnoDB
comment
'券码信息'
;
create
unique
index
uidx_candy_coupon_code_id
on
candy_coupon_code
(
ccode
);
create
unique
index
uidx_candy_coupon_code_id
on
candy_coupon_code
(
ccode
,
coupon_id
);
#
用户券信息
#
用户券信息
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment