记得上下班打卡 | 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
22605f86
Commit
22605f86
authored
Aug 23, 2021
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
+我的券后台功能;
parent
61410dee
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
507 additions
and
186 deletions
+507
-186
CandyMgtCouponBuildParam.java
...net/service/candy/dto/admin/CandyMgtCouponBuildParam.java
+1
-1
CandyCouponCodeAdminController.java
...roller/zhengzai/candy/CandyCouponCodeAdminController.java
+105
-10
CandyMgtCoupon1AdminController.java
...roller/zhengzai/candy/CandyMgtCoupon1AdminController.java
+150
-0
ry-ui.js
...ent-admin-web/src/main/resources/static/ruoyi/js/ry-ui.js
+29
-0
code.html
.../resources/templates/zhengzai/candy/coupon/code/code.html
+117
-152
coupon1.html
...esources/templates/zhengzai/candy/coupon/mgt/coupon1.html
+17
-20
CandyCouponCodeExcelDto.java
...ent/admin/zhengzai/candy/dto/CandyCouponCodeExcelDto.java
+55
-0
CandyCouponCodeOptParam.java
...dnet/service/candy/dto/admin/CandyCouponCodeOptParam.java
+17
-0
CandyMgtCouponMapper.xml
...m/liquidnet/service/candy/mapper/CandyMgtCouponMapper.xml
+16
-3
No files found.
liquidnet-bus-api/liquidnet-service-candy-api/src/main/java/com/liquidnet/service/candy/dto/admin/CandyMgtCouponBuildParam.java
View file @
22605f86
...
@@ -60,7 +60,7 @@ public class CandyMgtCouponBuildParam {
...
@@ -60,7 +60,7 @@ public class CandyMgtCouponBuildParam {
//private String comment;
//private String comment;
@ApiModelProperty
(
required
=
true
,
value
=
"适用规则列表"
,
dataType
=
"List"
)
@ApiModelProperty
(
required
=
true
,
value
=
"适用规则列表"
,
dataType
=
"List"
,
example
=
"[{\"useScope\": 100,\"busiName\": \"适用名称1\",\"busiId\": \"IDIDIDIDIDIDID1\"},{\"useScope\": 100,\"busiName\": \"适用名称2\",\"busiId\": \"IDIDIDIDIDIDID2\"}]"
)
private
List
<
CandyCouponRuleBuildParam
>
couponRuleList
;
private
List
<
CandyCouponRuleBuildParam
>
couponRuleList
;
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/candy/CandyCouponCodeAdminController.java
View file @
22605f86
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
candy
;
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
candy
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.client.admin.common.core.controller.BaseController
;
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.domain.
AjaxResult
;
import
com.liquidnet.client.admin.common.core.page.TableDataInfo
;
import
com.liquidnet.client.admin.common.core.page.TableDataInfo
;
import
com.liquidnet.client.admin.common.utils.poi.ExcelUtil
;
import
com.liquidnet.client.admin.zhengzai.candy.dto.CandyCouponCodeExcelDto
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponCodeAdminService
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponCodeAdminService
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.candy.constant.CandyRedisConst
;
import
com.liquidnet.service.candy.dto.CandyCouponCodeDto
;
import
com.liquidnet.service.candy.dto.admin.CandyCouponCodeListParam
;
import
com.liquidnet.service.candy.dto.admin.CandyCouponCodeListParam
;
import
com.liquidnet.service.candy.dto.admin.CandyCouponCodeOptParam
;
import
com.liquidnet.service.candy.entity.CandyCouponCode
;
import
com.liquidnet.service.candy.entity.CandyCouponCode
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.ui.ModelMap
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
@Api
(
tags
=
"券码管理"
)
@Api
(
tags
=
"券码管理"
)
@Slf4j
@Controller
@Controller
@RequestMapping
(
"candy/coupon/code"
)
@RequestMapping
(
"candy/coupon/code"
)
public
class
CandyCouponCodeAdminController
extends
BaseController
{
public
class
CandyCouponCodeAdminController
extends
BaseController
{
private
String
prefix
=
"zhengzai/candy/coupon/code"
;
private
String
prefix
=
"zhengzai/candy/coupon/code"
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
@Autowired
private
ICandyCouponCodeAdminService
candyCouponCodeAdminService
;
private
ICandyCouponCodeAdminService
candyCouponCodeAdminService
;
@RequiresPermissions
(
"candy:coupon:code:view"
)
@RequiresPermissions
(
"candy:coupon:code:view"
)
@GetMapping
()
@GetMapping
()
public
String
role
()
public
String
role
(
@RequestParam
String
couponId
,
ModelMap
mmap
)
{
{
mmap
.
put
(
"couponId"
,
couponId
);
return
prefix
+
"/code"
;
return
prefix
+
"/code"
;
}
}
...
@@ -42,10 +52,95 @@ public class CandyCouponCodeAdminController extends BaseController {
...
@@ -42,10 +52,95 @@ public class CandyCouponCodeAdminController extends BaseController {
@ResponseBody
@ResponseBody
public
TableDataInfo
list
(
CandyCouponCodeListParam
listParam
)
public
TableDataInfo
list
(
CandyCouponCodeListParam
listParam
)
{
{
LambdaQueryWrapper
<
CandyCouponCode
>
lambdaQuery
=
Wrappers
.
lambdaQuery
(
CandyCouponCode
.
class
).
orderByAsc
(
CandyCouponCode:
:
getCcode
);
lambdaQuery
.
eq
(
CandyCouponCode:
:
getCouponId
,
listParam
.
getCouponId
())
.
select
(
CandyCouponCode:
:
getCcode
,
CandyCouponCode:
:
getCouponId
,
CandyCouponCode:
:
getRedeemMobile
,
CandyCouponCode:
:
getState
);
if
(
null
!=
listParam
.
getState
())
{
lambdaQuery
.
eq
(
CandyCouponCode:
:
getState
,
listParam
.
getState
());
}
startPage
();
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
);
List
<
CandyCouponCode
>
list
=
candyCouponCodeAdminService
.
list
(
lambdaQuery
);
return
getDataTable
(
list
);
return
getDataTable
(
list
);
}
}
@RequiresPermissions
(
"candy:coupon:code:export"
)
@PostMapping
(
"export"
)
@ResponseBody
public
AjaxResult
export
(
CandyCouponCodeListParam
listParam
)
{
LambdaQueryWrapper
<
CandyCouponCode
>
lambdaQuery
=
Wrappers
.
lambdaQuery
(
CandyCouponCode
.
class
);
lambdaQuery
.
eq
(
CandyCouponCode:
:
getCouponId
,
listParam
.
getCouponId
())
.
select
(
CandyCouponCode:
:
getCcode
,
CandyCouponCode:
:
getCouponId
,
CandyCouponCode:
:
getRedeemMobile
,
CandyCouponCode:
:
getState
);
if
(
null
!=
listParam
.
getState
())
{
lambdaQuery
.
eq
(
CandyCouponCode:
:
getState
,
listParam
.
getState
());
}
List
<
CandyCouponCode
>
list
=
candyCouponCodeAdminService
.
list
(
lambdaQuery
);
ExcelUtil
<
CandyCouponCodeExcelDto
>
excelUtil
=
new
ExcelUtil
<>(
CandyCouponCodeExcelDto
.
class
);
List
<
CandyCouponCodeExcelDto
>
excelList
=
new
ArrayList
<>();
list
.
forEach
(
r
->
{
excelList
.
add
(
CandyCouponCodeExcelDto
.
getNew
().
copy
(
r
));
});
return
excelUtil
.
exportExcel
(
excelList
,
"券码数据"
);
}
@RequiresPermissions
(
"candy:coupon:code:invalid"
)
@PostMapping
(
"invalid"
)
@ResponseBody
public
AjaxResult
invalid
(
CandyCouponCodeOptParam
optParam
)
{
logger
.
debug
(
"optParam:{}"
,
JsonUtils
.
toJson
(
optParam
));
optParam
.
getCcodes
().
forEach
(
r
->
{
String
key
=
CandyRedisConst
.
BASIC_COUPON_CODE
.
concat
(
r
);
CandyCouponCodeDto
dto
=
(
CandyCouponCodeDto
)
redisUtil
.
get
(
key
);
if
(
null
!=
dto
)
{
dto
.
setState
(
2
);
redisUtil
.
set
(
key
,
dto
);
}
});
LambdaUpdateWrapper
<
CandyCouponCode
>
couponCodeUpdateWrapper
=
Wrappers
.
lambdaUpdate
(
CandyCouponCode
.
class
);
couponCodeUpdateWrapper
.
in
(
CandyCouponCode:
:
getCcode
,
optParam
.
getCcodes
()).
eq
(
CandyCouponCode:
:
getCouponId
,
optParam
.
getCouponId
());
CandyCouponCode
updateCouponCode
=
new
CandyCouponCode
();
updateCouponCode
.
setState
(
2
);
updateCouponCode
.
setUpdatedAt
(
LocalDateTime
.
now
());
return
toAjax
(
candyCouponCodeAdminService
.
update
(
updateCouponCode
,
couponCodeUpdateWrapper
));
}
@RequiresPermissions
(
"candy:coupon:code:recover"
)
@PostMapping
(
"recover"
)
@ResponseBody
public
AjaxResult
recover
(
CandyCouponCodeOptParam
optParam
)
{
logger
.
debug
(
"optParam:{}"
,
JsonUtils
.
toJson
(
optParam
));
optParam
.
getCcodes
().
forEach
(
r
->
{
String
key
=
CandyRedisConst
.
BASIC_COUPON_CODE
.
concat
(
r
);
CandyCouponCodeDto
dto
=
(
CandyCouponCodeDto
)
redisUtil
.
get
(
key
);
if
(
null
!=
dto
)
{
dto
.
setState
(
3
);
redisUtil
.
set
(
key
,
dto
);
}
});
LambdaUpdateWrapper
<
CandyCouponCode
>
couponCodeUpdateWrapper
=
Wrappers
.
lambdaUpdate
(
CandyCouponCode
.
class
);
couponCodeUpdateWrapper
.
in
(
CandyCouponCode:
:
getCcode
,
optParam
.
getCcodes
()).
eq
(
CandyCouponCode:
:
getCouponId
,
optParam
.
getCouponId
());
CandyCouponCode
updateCouponCode
=
new
CandyCouponCode
();
updateCouponCode
.
setState
(
3
);
updateCouponCode
.
setUpdatedAt
(
LocalDateTime
.
now
());
return
toAjax
(
candyCouponCodeAdminService
.
update
(
updateCouponCode
,
couponCodeUpdateWrapper
));
}
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/candy/CandyMgtCoupon1AdminController.java
0 → 100644
View file @
22605f86
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
=
"券发放管理"
)
@Controller
@RequestMapping
(
"candy/coupon1/mgt"
)
public
class
CandyMgtCoupon1AdminController
extends
BaseController
{
private
final
String
prefix
=
"zhengzai/candy/coupon/mgt"
;
@Autowired
private
ICandyMgtCouponAdminService
candyMgtCouponAdminService
;
@Autowired
private
ICandyCouponAdminService
candyCouponAdminService
;
@RequiresPermissions
(
"candy:coupon1:mgt:view"
)
@GetMapping
()
public
String
coupon
()
{
return
prefix
+
"/coupon1"
;
}
@RequiresPermissions
(
"candy:coupon1:mgt:list"
)
@PostMapping
(
"list"
)
@ResponseBody
public
TableDataInfo
list
(
CandyMgtCouponListParam
listParam
)
{
listParam
.
setCouType
(
1
);
startPage
();
List
<
CandyMgtCouponInfoDto
>
list
=
candyMgtCouponAdminService
.
listForMgtCouponInfoDto
(
listParam
);
return
getDataTable
(
list
);
}
@GetMapping
(
"add"
)
public
String
add
()
{
return
prefix
+
"/add1"
;
}
@ApiOperation
(
value
=
"新建券"
)
@RequiresPermissions
(
"candy:coupon1: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
:
logger
.
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
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/static/ruoyi/js/ry-ui.js
View file @
22605f86
...
@@ -1057,6 +1057,35 @@ var table = {
...
@@ -1057,6 +1057,35 @@ var table = {
$
.
operate
.
submit
(
url
,
"post"
,
"json"
,
data
);
$
.
operate
.
submit
(
url
,
"post"
,
"json"
,
data
);
});
});
},
},
// 批量失效
batchProcessingForCouponCode
:
function
(
couponId
,
opt
)
{
table
.
set
();
var
url
,
message
,
uniqueId
,
optName
;
if
(
uniqueId
)
{
var
rows
=
$
.
table
.
selectColumns
(
uniqueId
);
}
else
{
var
rows
=
$
.
common
.
isEmpty
(
table
.
options
.
uniqueId
)
?
$
.
table
.
selectFirstColumns
()
:
$
.
table
.
selectColumns
(
table
.
options
.
uniqueId
);
}
if
(
opt
===
1
)
{
url
=
'code/invalid'
;
optName
=
'失效'
;
}
else
if
(
opt
===
2
)
{
url
=
'code/recover'
;
optName
=
'退回'
;
}
else
{
$
.
modal
.
alertWarning
(
"选择有误"
);
return
;
}
message
=
message
??
"确认要"
+
optName
+
"选中的"
+
rows
.
length
+
"条数据吗?"
;
if
(
rows
.
length
==
0
)
{
$
.
modal
.
alertWarning
(
"请至少选择一条记录"
);
return
;
}
$
.
modal
.
confirm
(
message
,
function
()
{
var
data
=
{
"couponId"
:
couponId
,
"ccodes"
:
rows
.
join
()
};
$
.
operate
.
submit
(
url
,
"post"
,
"json"
,
data
);
});
},
// 清空信息
// 清空信息
clean
:
function
()
{
clean
:
function
()
{
table
.
set
();
table
.
set
();
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/candy/coupon/code/code.html
View file @
22605f86
This diff is collapsed.
Click to expand it.
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/candy/coupon/mgt/coupon1.html
View file @
22605f86
...
@@ -7,27 +7,24 @@
...
@@ -7,27 +7,24 @@
<div
class=
"container-div"
>
<div
class=
"container-div"
>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-sm-12 search-collapse"
>
<div
class=
"col-sm-12 search-collapse"
>
<form
id=
"
role
-form"
>
<form
id=
"
coupon
-form"
>
<div
class=
"select-list"
>
<div
class=
"select-list"
>
<ul>
<ul>
<li>
<li>
角色名称:
<input
type=
"text"
name=
"roleName
"
/>
<input
type=
"text"
name=
"keyword"
placeholder=
"搜索
"
/>
</li>
</li>
<li>
<li>
权限字符:
<input
type=
"text"
name=
"roleKey"
/>
类型:
<select
name=
"bindType"
th:with=
"type=${@dict.getType('zhengzai_coupon_bind_type')}"
>
<option
value=
""
>
所有
</option>
<option
th:each=
"dict : ${type}"
th:text=
"${dict.dictLabel}"
th:value=
"${dict.dictValue}"
></option>
</select>
</li>
</li>
<li>
<li>
角色状态:
<select
name=
"status"
th:with=
"type=${@dict.getType('sys_normal_disabl
e')}"
>
适用范围:
<select
name=
"busiType"
th:with=
"type=${@dict.getType('zhengzai_coupon_busi_typ
e')}"
>
<option
value=
""
>
所有
</option>
<option
value=
""
>
所有
</option>
<option
th:each=
"dict : ${type}"
th:text=
"${dict.dictLabel}"
th:value=
"${dict.dictValue}"
></option>
<option
th:each=
"dict : ${type}"
th:text=
"${dict.dictLabel}"
th:value=
"${dict.dictValue}"
></option>
</select>
</select>
</li>
</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>
<li>
<a
class=
"btn btn-primary btn-rounded btn-sm"
onclick=
"$.table.search()"
><i
class=
"fa fa-search"
></i>
搜索
</a>
<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>
<a
class=
"btn btn-warning btn-rounded btn-sm"
onclick=
"$.form.reset()"
><i
class=
"fa fa-refresh"
></i>
重置
</a>
...
@@ -38,7 +35,7 @@
...
@@ -38,7 +35,7 @@
</div>
</div>
<div
class=
"btn-group-sm"
id=
"toolbar"
role=
"group"
>
<div
class=
"btn-group-sm"
id=
"toolbar"
role=
"group"
>
<a
class=
"btn btn-success"
onclick=
"$.operate.add
(
)"
shiro:hasPermission=
"candy:coupon:mgt:add"
>
<a
class=
"btn btn-success"
onclick=
"$.operate.add
Tab(''
)"
shiro:hasPermission=
"candy:coupon:mgt:add"
>
<i
class=
"fa fa-plus"
></i>
新增
<i
class=
"fa fa-plus"
></i>
新增
</a>
</a>
</div>
</div>
...
@@ -51,7 +48,7 @@
...
@@ -51,7 +48,7 @@
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: footer"
/>
<script
th:inline=
"javascript"
>
<script
th:inline=
"javascript"
>
var
couponCodeListFlag
=
[[
$
{@
permission
.
hasPermi
(
'system:role:edit'
)}]];
var
couponCodeListFlag
=
[[
$
{@
permission
.
hasPermi
(
'system:role:edit'
)}]];
var
prefix
=
ctx
+
"candy/coupon/mgt"
;
var
prefix
=
ctx
+
"candy/coupon
1
/mgt"
;
$
(
function
()
{
$
(
function
()
{
var
options
=
{
var
options
=
{
...
@@ -107,20 +104,20 @@
...
@@ -107,20 +104,20 @@
},
},
{
{
title
:
'操作'
,
title
:
'操作'
,
align
:
'center'
,
align
:
'center'
,
formatter
:
function
(
value
,
row
,
index
)
{
formatter
:
function
(
value
,
row
,
index
)
{
var
actions
=
[];
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>"
);
actions
.
push
(
'<a class="btn btn-info btn-xs" href="javascript:void(0)" onclick="couponCodeList(
\'
'
+
row
.
couponId
+
'
\'
)"><i class="fa fa-list-ul"></i>查看码列表</a> '
);
return
actions
.
join
(
''
);
return
actions
.
join
(
''
);
}
}
}]
}]
};
};
$
.
table
.
init
(
options
);
$
.
table
.
init
(
options
);
});
});
/*
券
码列表 */
/*
查看
码列表 */
function
couponCodeList
(
couponId
)
{
function
couponCodeList
(
couponId
)
{
var
url
=
prefix
+
'/code/
'
+
couponId
;
var
url
=
'candy/coupon/code?couponId=
'
+
couponId
;
$
.
modal
.
openTab
(
"查看码列表"
,
url
);
$
.
modal
.
openTab
(
"查看码列表"
,
url
);
}
}
</script>
</script>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/candy/dto/CandyCouponCodeExcelDto.java
0 → 100644
View file @
22605f86
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
candy
.
dto
;
import
com.liquidnet.client.admin.common.annotation.Excel
;
import
com.liquidnet.service.candy.entity.CandyCouponCode
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
CandyCouponCodeExcelDto
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
2420844668059161869L
;
@Excel
(
name
=
"券码"
)
private
String
ccode
;
@Excel
(
name
=
"券码"
)
private
String
redeemMobile
;
@Excel
(
name
=
"状态"
)
private
String
state
;
@Excel
(
name
=
"批次号"
)
private
String
couponId
;
private
static
final
CandyCouponCodeExcelDto
obj
=
new
CandyCouponCodeExcelDto
();
public
static
CandyCouponCodeExcelDto
getNew
()
{
try
{
return
(
CandyCouponCodeExcelDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
CandyCouponCodeExcelDto
();
}
}
public
CandyCouponCodeExcelDto
copy
(
CandyCouponCode
source
)
{
if
(
null
==
source
)
return
this
;
this
.
setCcode
(
source
.
getCcode
());
this
.
setRedeemMobile
(
source
.
getRedeemMobile
());
switch
(
source
.
getState
())
{
case
0
:
this
.
setState
(
"未使用"
);
break
;
case
1
:
this
.
setState
(
"已使用"
);
break
;
case
2
:
this
.
setState
(
"失效"
);
break
;
case
3
:
this
.
setState
(
"退回"
);
break
;
default
:
this
.
setState
(
String
.
valueOf
(
source
.
getState
()));
break
;
}
this
.
setCouponId
(
source
.
getCouponId
());
return
this
;
}
}
liquidnet-bus-do/liquidnet-service-candy-do/src/main/java/com/liquidnet/service/candy/dto/admin/CandyCouponCodeOptParam.java
0 → 100644
View file @
22605f86
package
com
.
liquidnet
.
service
.
candy
.
dto
.
admin
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
CandyCouponCodeOptParam
{
/**
* ~candy_coupon.coupon_id
*/
private
String
couponId
;
/**
* 多个以,分隔
*/
private
List
<
String
>
ccodes
;
}
liquidnet-bus-do/liquidnet-service-candy-do/src/main/resources/com/liquidnet/service/candy/mapper/CandyMgtCouponMapper.xml
View file @
22605f86
...
@@ -32,7 +32,7 @@
...
@@ -32,7 +32,7 @@
<result
column=
"mcoupon_id"
jdbcType=
"VARCHAR"
property=
"mcouponId"
/>
<result
column=
"mcoupon_id"
jdbcType=
"VARCHAR"
property=
"mcouponId"
/>
<!-- <result column="coupon_id" jdbcType="VARCHAR" property="couponId" />-->
<!-- <result column="coupon_id" jdbcType="VARCHAR" property="couponId" />-->
<result
column=
"state"
jdbcType=
"TINYINT"
property=
"state"
/>
<result
column=
"state"
jdbcType=
"TINYINT"
property=
"state"
/>
<result
column=
"bind_type"
jdbcType=
"SMALLINT"
property=
"bindType"
/
>
<!-- <result column="bind_type" jdbcType="SMALLINT" property="bindType"/>--
>
<result
column=
"event_amt"
jdbcType=
"INTEGER"
property=
"eventAmt"
/>
<result
column=
"event_amt"
jdbcType=
"INTEGER"
property=
"eventAmt"
/>
<result
column=
"event_type"
jdbcType=
"TINYINT"
property=
"eventType"
/>
<result
column=
"event_type"
jdbcType=
"TINYINT"
property=
"eventType"
/>
<result
column=
"event_limit"
jdbcType=
"VARCHAR"
property=
"eventLimit"
/>
<result
column=
"event_limit"
jdbcType=
"VARCHAR"
property=
"eventLimit"
/>
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
<!-- <result column="comment" jdbcType="VARCHAR" property="comment" />-->
<!-- <result column="comment" jdbcType="VARCHAR" property="comment" />-->
</resultMap>
</resultMap>
<select
id=
"selectMultiForMgtCouponInfoDto"
resultMap=
"Rst_MgtCouponInfoDto"
>
<select
id=
"selectMultiForMgtCouponInfoDto"
parameterType=
"com.liquidnet.service.candy.dto.admin.CandyMgtCouponListParam"
resultMap=
"Rst_MgtCouponInfoDto"
>
SELECT cc.coupon_id,
SELECT cc.coupon_id,
cc.title,
cc.title,
cc.`label`,
cc.`label`,
...
@@ -68,7 +68,6 @@
...
@@ -68,7 +68,6 @@
cmc.mcoupon_id,
cmc.mcoupon_id,
cmc.coupon_id,
cmc.coupon_id,
cmc.`state`,
cmc.`state`,
cmc.bind_type,
cmc.event_amt,
cmc.event_amt,
cmc.event_type,
cmc.event_type,
cmc.event_limit,
cmc.event_limit,
...
@@ -79,6 +78,20 @@
...
@@ -79,6 +78,20 @@
FROM candy_mgt_coupon cmc
FROM candy_mgt_coupon cmc
LEFT JOIN candy_coupon cc ON cmc.coupon_id = cc.coupon_id
LEFT JOIN candy_coupon cc ON cmc.coupon_id = cc.coupon_id
WHERE cmc.state
<![CDATA[<>]]>
2
WHERE cmc.state
<![CDATA[<>]]>
2
<if
test=
"couType != null"
>
AND cc.cou_type = #{couType,jdbcType=SMALLINT}
</if>
<if
test=
"keyword != null and keyword != ''"
>
AND INSTR(CONCAT(cc.title, cc.notice), #{keyword,jdbcType=VARCHAR})
</if>
<if
test=
"bindType != null"
>
AND cc.bind_type = #{bindType,jdbcType=SMALLINT}
</if>
<if
test=
"busiType != null"
>
AND cc.busi_type = #{busiType,jdbcType=SMALLINT}
</if>
ORDER BY cmc.created_at DESC
ORDER BY cmc.created_at DESC
</select>
</select>
</mapper>
</mapper>
\ No newline at end of file
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