记得上下班打卡 | 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
da9e36ed
Commit
da9e36ed
authored
Nov 02, 2021
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
+会员码管理;
parent
49aedc47
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
251 additions
and
208 deletions
+251
-208
AdamMemberCodeListParam.java
...idnet/service/adam/dto/admin/AdamMemberCodeListParam.java
+1
-3
AdamMemberCodeAdminController.java
...ntroller/zhengzai/adam/AdamMemberCodeAdminController.java
+28
-12
code.html
...n/resources/templates/zhengzai/adam/member/code/code.html
+25
-78
code_creation.html
...es/templates/zhengzai/adam/member/code/code_creation.html
+0
-63
code_mgt.html
...sources/templates/zhengzai/adam/member/code/code_mgt.html
+100
-12
member.html
...main/resources/templates/zhengzai/adam/member/member.html
+5
-4
detail.html
...urces/templates/zhengzai/adam/order/orderList/detail.html
+2
-2
AdamMemberCodeExcelDto.java
...lient/admin/zhengzai/adam/dto/AdamMemberCodeExcelDto.java
+11
-17
IAdamMemberCodeBatchAdminService.java
...engzai/adam/service/IAdamMemberCodeBatchAdminService.java
+2
-0
AdamMemberCodeAdminServiceImpl.java
...zai/adam/service/impl/AdamMemberCodeAdminServiceImpl.java
+57
-12
AdamMemberCodeBatchAdminServiceImpl.java
...dam/service/impl/AdamMemberCodeBatchAdminServiceImpl.java
+8
-0
AdamMemberCode.java
...ava/com/liquidnet/service/adam/entity/AdamMemberCode.java
+4
-5
AdamMemberCodeBatchMapper.java
...uidnet/service/adam/mapper/AdamMemberCodeBatchMapper.java
+8
-0
No files found.
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/dto/admin/AdamMemberCodeListParam.java
View file @
da9e36ed
...
@@ -4,12 +4,10 @@ import lombok.Data;
...
@@ -4,12 +4,10 @@ import lombok.Data;
import
java.io.Serializable
;
import
java.io.Serializable
;
//@ApiModel(value = "AdamMemberCodeListParam", description = "会员码列表入参")
@Data
@Data
public
class
AdamMemberCodeListParam
implements
Serializable
{
public
class
AdamMemberCodeListParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
8454342033562304457L
;
private
static
final
long
serialVersionUID
=
-
8454342033562304457L
;
// @ApiModelProperty(required = false, value = "会员码批次号[64]")
private
String
batchNo
;
private
String
batchNo
;
// @ApiModelProperty(required = false, value = "状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]")
private
String
code
;
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/adam/AdamMemberCodeAdminController.java
View file @
da9e36ed
...
@@ -18,6 +18,9 @@ import com.liquidnet.service.adam.dto.admin.AdamMemberCodeListParam;
...
@@ -18,6 +18,9 @@ import com.liquidnet.service.adam.dto.admin.AdamMemberCodeListParam;
import
com.liquidnet.service.adam.entity.AdamMemberCode
;
import
com.liquidnet.service.adam.entity.AdamMemberCode
;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
import
com.liquidnet.service.adam.entity.AdamMemberPrice
;
import
com.liquidnet.service.adam.entity.AdamMemberPrice
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang3.StringUtils
;
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
;
...
@@ -28,7 +31,7 @@ import org.springframework.web.bind.annotation.*;
...
@@ -28,7 +31,7 @@ import org.springframework.web.bind.annotation.*;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
//
@Api(tags = "会员码管理")
@Api
(
tags
=
"会员码管理"
)
@Controller
@Controller
@RequestMapping
(
"adam/mcode"
)
@RequestMapping
(
"adam/mcode"
)
public
class
AdamMemberCodeAdminController
extends
BaseController
{
public
class
AdamMemberCodeAdminController
extends
BaseController
{
...
@@ -43,6 +46,18 @@ public class AdamMemberCodeAdminController extends BaseController {
...
@@ -43,6 +46,18 @@ public class AdamMemberCodeAdminController extends BaseController {
@GetMapping
(
"mgt"
)
@GetMapping
(
"mgt"
)
public
String
viewCodeMgt
(
@RequestParam
String
memberId
,
ModelMap
mmap
)
{
public
String
viewCodeMgt
(
@RequestParam
String
memberId
,
ModelMap
mmap
)
{
mmap
.
put
(
"memberId"
,
memberId
);
mmap
.
put
(
"memberId"
,
memberId
);
AdamMemberPrice
memberPrice
=
adamMemberPriceAdminService
.
getOne
(
Wrappers
.
lambdaQuery
(
AdamMemberPrice
.
class
)
.
eq
(
AdamMemberPrice:
:
getState
,
1
)
.
eq
(
AdamMemberPrice:
:
getMemberId
,
memberId
)
.
select
(
AdamMemberPrice:
:
getMemberPriceId
,
AdamMemberPrice:
:
getPrice
,
AdamMemberPrice:
:
getPriceFixed
,
AdamMemberPrice:
:
getPriceSpecial
,
AdamMemberPrice:
:
getDays
)
);
mmap
.
put
(
"memberPrice"
,
memberPrice
);
return
prefix
+
"/code_mgt"
;
return
prefix
+
"/code_mgt"
;
}
}
...
@@ -67,10 +82,13 @@ public class AdamMemberCodeAdminController extends BaseController {
...
@@ -67,10 +82,13 @@ public class AdamMemberCodeAdminController extends BaseController {
);
);
queryWrapper
.
orderByDesc
(
AdamMemberCodeBatch:
:
getCreatedAt
);
queryWrapper
.
orderByDesc
(
AdamMemberCodeBatch:
:
getCreatedAt
);
logger
.
info
(
"update member_code_batch.use_num:{}"
,
adamMemberCodeBatchAdminService
.
updateBatchUseNum
());
this
.
startPage
();
return
getDataTable
(
adamMemberCodeBatchAdminService
.
list
(
queryWrapper
));
return
getDataTable
(
adamMemberCodeBatchAdminService
.
list
(
queryWrapper
));
}
}
//
@ApiOperation(value = "会员码:创建")
@ApiOperation
(
value
=
"会员码:创建"
)
@RequiresPermissions
(
"adam:member:code:creation"
)
@RequiresPermissions
(
"adam:member:code:creation"
)
@Log
(
title
=
"会员管理:会员码:创建"
,
businessType
=
BusinessType
.
INSERT
)
@Log
(
title
=
"会员管理:会员码:创建"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
(
"mgt/creation"
)
@PostMapping
(
"mgt/creation"
)
...
@@ -89,18 +107,19 @@ public class AdamMemberCodeAdminController extends BaseController {
...
@@ -89,18 +107,19 @@ public class AdamMemberCodeAdminController extends BaseController {
return
this
.
toAjax
(
adamMemberCodeAdminService
.
createGiftCode
(
parameter
));
return
this
.
toAjax
(
adamMemberCodeAdminService
.
createGiftCode
(
parameter
));
}
}
@GetMapping
(
"
view
"
)
@GetMapping
(
"
mgt/code
"
)
public
String
viewCode
(
@RequestParam
String
batchNo
,
ModelMap
mmap
)
{
public
String
viewCode
(
@RequestParam
String
batchNo
,
ModelMap
mmap
)
{
mmap
.
put
(
"batchNo"
,
batchNo
);
mmap
.
put
(
"batchNo"
,
batchNo
);
return
prefix
+
"/code"
;
return
prefix
+
"/code"
;
}
}
//
@ApiOperation(value = "会员码:列表")
@ApiOperation
(
value
=
"会员码:列表"
)
@RequiresPermissions
(
"adam:member:code:list"
)
@RequiresPermissions
(
"adam:member:code:list"
)
@Log
(
title
=
"会员管理:会员码:列表"
,
businessType
=
BusinessType
.
LIST
)
@Log
(
title
=
"会员管理:会员码:列表"
,
businessType
=
BusinessType
.
LIST
)
@PostMapping
(
"list"
)
@PostMapping
(
"list"
)
@ResponseBody
@ResponseBody
public
TableDataInfo
listCode
(
AdamMemberCodeListParam
parameter
)
{
public
TableDataInfo
listCode
(
AdamMemberCodeListParam
parameter
)
{
this
.
startPage
();
return
getDataTable
(
codeListQuery
(
parameter
));
return
getDataTable
(
codeListQuery
(
parameter
));
}
}
...
@@ -109,19 +128,16 @@ public class AdamMemberCodeAdminController extends BaseController {
...
@@ -109,19 +128,16 @@ public class AdamMemberCodeAdminController extends BaseController {
queryWrapper
.
eq
(
AdamMemberCode:
:
getBatchNo
,
parameter
.
getBatchNo
());
queryWrapper
.
eq
(
AdamMemberCode:
:
getBatchNo
,
parameter
.
getBatchNo
());
queryWrapper
.
eq
(
AdamMemberCode:
:
getType
,
2
);
queryWrapper
.
eq
(
AdamMemberCode:
:
getType
,
2
);
queryWrapper
.
ne
(
AdamMemberCode:
:
getState
,
2
);
queryWrapper
.
ne
(
AdamMemberCode:
:
getState
,
2
);
if
(
StringUtils
.
isNotBlank
(
parameter
.
getCode
()))
{
queryWrapper
.
eq
(
AdamMemberCode:
:
getCode
,
parameter
.
getCode
());
}
if
(
null
!=
parameter
.
getState
())
{
if
(
null
!=
parameter
.
getState
())
{
queryWrapper
.
eq
(
AdamMemberCode:
:
getState
,
parameter
.
getState
());
queryWrapper
.
eq
(
AdamMemberCode:
:
getState
,
parameter
.
getState
());
}
}
queryWrapper
.
select
(
queryWrapper
.
select
(
AdamMemberCode:
:
getMemberNo
,
AdamMemberCode:
:
getCode
,
AdamMemberCode:
:
getCode
,
AdamMemberCode:
:
getState
,
AdamMemberCode:
:
getState
,
AdamMemberCode:
:
getOperator
,
AdamMemberCode:
:
getCreatedAt
,
AdamMemberCode:
:
getValidity
,
AdamMemberCode:
:
getEffectAt
,
AdamMemberCode:
:
getExpireAt
,
AdamMemberCode:
:
getUseOrderNo
,
AdamMemberCode:
:
getUseUid
,
AdamMemberCode:
:
getUseAt
AdamMemberCode:
:
getUseAt
);
);
queryWrapper
.
orderByDesc
(
AdamMemberCode:
:
getMemberNo
);
queryWrapper
.
orderByDesc
(
AdamMemberCode:
:
getMemberNo
);
...
@@ -129,7 +145,7 @@ public class AdamMemberCodeAdminController extends BaseController {
...
@@ -129,7 +145,7 @@ public class AdamMemberCodeAdminController extends BaseController {
return
adamMemberCodeAdminService
.
list
(
queryWrapper
);
return
adamMemberCodeAdminService
.
list
(
queryWrapper
);
}
}
//
@ApiOperation(value = "会员码:导出")
@ApiOperation
(
value
=
"会员码:导出"
)
@RequiresPermissions
(
"adam:member:code:export"
)
@RequiresPermissions
(
"adam:member:code:export"
)
@Log
(
title
=
"会员管理:会员码:导出"
,
businessType
=
BusinessType
.
EXPORT
)
@Log
(
title
=
"会员管理:会员码:导出"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"export"
)
@PostMapping
(
"export"
)
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/member/code/code.html
View file @
da9e36ed
...
@@ -11,9 +11,12 @@
...
@@ -11,9 +11,12 @@
<form
id=
"data-form"
>
<form
id=
"data-form"
>
<div
class=
"select-list"
>
<div
class=
"select-list"
>
<ul>
<ul>
<input
type=
"text"
name=
"memberId"
hidden=
"hidden"
th:value=
"${memberId}"
readonly
/>
<li>
<li>
状态:
<select
name=
"state"
th:with=
"type=${@dict.getType('zhengzai_coupon_code_state')}"
>
<label>
会员码:
</label>
<input
type=
"text"
name=
"code"
/>
</li>
<li>
状态:
<select
name=
"state"
th:with=
"type=${@dict.getType('zhengzai_member_code_state')}"
>
<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>
...
@@ -28,15 +31,9 @@
...
@@ -28,15 +31,9 @@
</div>
</div>
<div
class=
"btn-group-sm"
id=
"toolbar"
role=
"group"
>
<div
class=
"btn-group-sm"
id=
"toolbar"
role=
"group"
>
<a
class=
"btn btn-warning"
onclick=
"$.table.exportExcel()"
shiro:hasPermission=
"adam:member:
export:code
"
>
<a
class=
"btn btn-warning"
onclick=
"$.table.exportExcel()"
shiro:hasPermission=
"adam:member:
code:export
"
>
<i
class=
"fa fa-download"
></i>
导出
<i
class=
"fa fa-download"
></i>
导出
</a>
</a>
<!-- <a class="btn btn-primary multiple disabled" onclick="invalidHandler()" shiro:hasPermission="adam:member:invalid:code">-->
<!-- <i class="fa fa-edit"></i> 批量失效-->
<!-- </a>-->
<!-- <a class="btn btn-danger multiple disabled" onclick="recoverHandler()" shiro:hasPermission="adam:member:recover:code">-->
<!-- <i class="fa fa-remove"></i> 批量退回-->
<!-- </a>-->
</div>
</div>
<div
class=
"col-sm-12 select-table table-striped"
>
<div
class=
"col-sm-12 select-table table-striped"
>
...
@@ -47,70 +44,44 @@
...
@@ -47,70 +44,44 @@
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: select2-js"
/>
<th:block
th:include=
"include :: select2-js"
/>
<script
th:inline=
"javascript"
>
<script
th:inline=
"javascript"
>
// var invalidFlag = [[${@permission.hasPermi('adam:member:code:invalid')}]];
var
datas
=
[[
$
{@
dict
.
getType
(
'zhengzai_member_code_state'
)}]];
// 样例:[{"dictLabel":"未支付","dictValue":"0"},{"dictLabel":"已支付","dictValue":"1"},{"dictLabel":"已关闭","dictValue":"2"}]
// var recoverFlag = [[${@permission.hasPermi('adam:member:code:recover')}]];
var
batchNo
=
[[
$
{
batchNo
}]];
var
datas
=
[[
$
{@
dict
.
getType
(
'zhengzai_coupon_code_state'
)}]];
// 样例:[{"dictLabel":"未支付","dictValue":"0"},{"dictLabel":"已支付","dictValue":"1"},{"dictLabel":"已关闭","dictValue":"2"}]
var
memberId
=
[[
$
{
memberId
}]];
var
prefix
=
ctx
+
"adam/mcode"
;
var
prefix
=
ctx
+
"adam/mcode"
;
$
(
function
()
{
$
(
function
()
{
var
options
=
{
var
options
=
{
url
:
prefix
+
"/list
"
,
url
:
prefix
+
"/list
?batchNo="
+
batchNo
,
exportUrl
:
prefix
+
"/export
"
,
exportUrl
:
prefix
+
"/export
?batchNo="
+
batchNo
,
sortName
:
"
code
"
,
sortName
:
"
memberNo
"
,
sortOrder
:
"
a
sc"
,
sortOrder
:
"
de
sc"
,
modalName
:
"会员码"
,
modalName
:
"会员码
列表
"
,
columns
:
[
columns
:
[
{
{
checkbox
:
true
checkbox
:
true
},
},
{
{
field
:
'code'
,
field
:
'memberNo'
,
title
:
'会员码'
title
:
'卡号'
},
{
field
:
'expireAt'
,
title
:
'到期时间'
},
{
field
:
'useAt'
,
title
:
'使用时间'
},
},
{
{
field
:
'useOrderNo'
,
field
:
'code'
,
title
:
'兑换订单号'
,
title
:
'会员码'
formatter
:
function
(
value
,
row
,
index
)
{
var
actions
=
[];
if
(
$
.
common
.
isEmpty
(
value
))
{
actions
.
push
(
'<a href="javascript:void(0)">-</a>'
);
}
else
{
actions
.
push
(
'<a href="javascript:void(0)" onclick="$.operate.detailTab(
\'
'
+
value
+
'
\'
)">'
+
value
+
'</a>'
);
}
return
actions
.
join
(
''
);
}
},
},
{
{
field
:
'state'
,
field
:
'state'
,
title
:
'状态'
,
title
:
'
使用
状态'
,
align
:
'center'
,
align
:
'center'
,
formatter
:
function
(
value
,
row
,
index
)
{
formatter
:
function
(
value
,
row
,
index
)
{
return
$
.
table
.
selectDictLabel
(
datas
,
value
);
return
$
.
table
.
selectDictLabel
(
datas
,
value
);
}
}
},
},
// {
{
// title: '操作',
field
:
'useAt'
,
// align: 'center',
title
:
'使用时间'
,
// formatter: function(value, row, index) {
formatter
:
function
(
value
,
row
,
index
)
{
// var actions = [];
return
$
.
common
.
sprintf
(
"<span>%s</span>"
,
null
!=
value
?
value
.
replace
(
"T"
,
" "
).
substring
(
0
,
19
)
:
value
);
// if (row.state === 0) {
}
// actions.push('
<
a
class
=
"btn btn-primary btn-xs ' + (invalidFlag && row.state===0) + '"
href
=
"javascript:void(0)"
onclick
=
"invalidHandler(
\
'' + row.code + '
\
')"
><
i
class
=
"fa fa-edit"
><
/i>失效</
a
>
');
}
// } else if (row.state === 1) {
// // actions.push('
<
a
class
=
"btn btn-danger btn-xs ' + (recoverFlag && row.state==0) + '"
href
=
"javascript:void(0)"
onclick
=
"recoverHandler(
\
'' + row.code + '
\
')"
><
i
class
=
"fa fa-remove"
><
/i>退回</
a
>
');
// }
// return actions.join('');
// }
// }
]
]
};
};
$
.
table
.
init
(
options
);
$
.
table
.
init
(
options
);
...
@@ -119,30 +90,6 @@
...
@@ -119,30 +90,6 @@
function
resetPre
()
{
function
resetPre
()
{
$
.
form
.
reset
();
$
.
form
.
reset
();
}
}
// function invalidHandler(code) {
// let invalidCodeUrl = prefix + '
/
invalid_code
';
// if (code !== null && code !== undefined) {
// var data = {"memberId": memberId,"codes": code};
// $.operate.submit(invalidCodeUrl, "post", "json", data);
// } else {
// var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
// var data = {"memberId": memberId, "codes": rows.join()};
// $.operate.batchProcessing(invalidCodeUrl, '
失效
', data);
// }
// }
//
// function recoverHandler(code) {
// let recoverCodeUrl = prefix + '
/
recover_code
';
// if (code !== null && code !== undefined) {
// var data = {"memberId": memberId,"codes": code};
// $.operate.submit(recoverCodeUrl, "post", "json", data);
// } else {
// var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
// var data = {"memberId": memberId, "codes": rows.join()};
// $.operate.batchProcessing(recoverCodeUrl, '
失效
', data);
// }
// }
</script>
</script>
</body>
</body>
</html>
</html>
\ No newline at end of file
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/member/code/code_creation.html
deleted
100644 → 0
View file @
49aedc47
<!DOCTYPE html>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
>
<head>
<th:block
th:include=
"include :: header('创建会员码')"
/>
</head>
<body
class=
"white-bg"
>
<div
class=
"wrapper wrapper-content animated fadeInRight ibox-content"
>
<form
class=
"form-horizontal m"
id=
"form-code-add"
>
<input
>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label is-required"
>
生产数量:
</label>
<div
class=
"col-sm-8"
>
<input
class=
"form-control"
type=
"text"
name=
"genNum"
id=
"genNum"
required
>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label"
>
备注:
</label>
<div
class=
"col-sm-8"
>
<textarea
id=
"remark"
name=
"detail"
class=
"form-control"
></textarea>
</div>
</div>
</form>
</div>
<th:block
th:include=
"include :: footer"
/>
<script
type=
"text/javascript"
>
var
prefix
=
ctx
+
"system/dict"
;
$
(
"#form-code-add"
).
validate
({
onkeyup
:
false
,
rules
:{
dictType
:{
minlength
:
5
,
remote
:
{
url
:
prefix
+
"/checkDictTypeUnique"
,
type
:
"post"
,
dataType
:
"json"
,
data
:
{
name
:
function
()
{
return
$
.
common
.
trim
(
$
(
"#dictType"
).
val
());
}
},
dataFilter
:
function
(
data
,
type
)
{
return
$
.
validate
.
unique
(
data
);
}
}
},
},
messages
:
{
"dictType"
:
{
remote
:
"该字典类型已经存在"
}
},
focusCleanup
:
true
});
function
submitHandler
()
{
if
(
$
.
validate
.
form
())
{
$
.
operate
.
save
(
prefix
+
"/add"
,
$
(
'#form-code-add'
).
serialize
());
}
}
</script>
</body>
</html>
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/member/code/code_mgt.html
View file @
da9e36ed
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
<div
class=
"container-div"
>
<div
class=
"container-div"
>
<div
class=
"row"
>
<div
class=
"row"
>
<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=
"adam:member:code:creation"
>
<a
class=
"btn btn-success"
href=
"#member-gencode-form"
data-toggle=
"modal
"
shiro:hasPermission=
"adam:member:code:creation"
>
<i
class=
"fa fa-plus"
></i>
创建
<i
class=
"fa fa-plus"
></i>
创建
</a>
</a>
</div>
</div>
...
@@ -16,59 +16,97 @@
...
@@ -16,59 +16,97 @@
<div
class=
"col-sm-12 select-table table-striped"
>
<div
class=
"col-sm-12 select-table table-striped"
>
<table
id=
"bootstrap-table"
></table>
<table
id=
"bootstrap-table"
></table>
</div>
</div>
<div
id=
"member-gencode-form"
class=
"modal fade"
aria-hidden=
"true"
>
<div
class=
"modal-dialog"
style=
"width:33%;"
>
<div
class=
"modal-content modal-body row"
>
<h3
class=
"m-t-none m-b text-center"
>
创建会员码
</h3>
<form
role=
"form"
id=
"form-member-code-generate"
>
<input
name=
"memberId"
type=
"hidden"
th:value=
"${memberId}"
readonly
>
<input
name=
"memberPriceId"
type=
"hidden"
th:value=
"${memberPrice.memberPriceId}"
readonly
>
<div
class=
"form-group"
>
<label
class=
"pull-left"
>
生产数量:
</label>
<input
type=
"number"
name=
"genNum"
class=
"form-control"
style=
"width: 30%;height: 20px;"
placeholder=
"生产数量"
>
</div>
<div
class=
"form-group"
>
<!-- <label>备注:</label>-->
<textarea
rows=
"3"
name=
"detail"
placeholder=
"备注描述"
class=
"form-control"
></textarea>
</div>
<div
class=
"text-center"
style=
"margin-bottom: -15px;margin-top: 10px;"
>
<button
class=
"btn btn-sm btn-primary m-t-n-xs"
type=
"button"
onclick=
"memberCodeGenerate()"
>
<strong>
确认创建
</strong>
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: select2-js"
/>
<th:block
th:include=
"include :: select2-js"
/>
<script
th:inline=
"javascript"
>
<script
th:inline=
"javascript"
>
var
viewMemberCodeListFlg
=
[[
$
{@
permission
.
hasPermi
(
'adam:member:code:list'
)}]];
var
memberId
=
[[
$
{
memberId
}]];
var
memberId
=
[[
$
{
memberId
}]];
var
prefix
=
ctx
+
"adam/mcode"
;
var
prefix
=
ctx
+
"adam/mcode"
;
$
(
function
()
{
$
(
function
()
{
var
options
=
{
var
options
=
{
url
:
prefix
+
"/mgt/list?memberId="
+
memberId
,
url
:
prefix
+
"/mgt/list?memberId="
+
memberId
,
createUrl
:
prefix
+
"/mgt/creation/{id}"
,
exportUrl
:
prefix
+
"/export_code"
,
exportUrl
:
prefix
+
"/export_code"
,
detailUrl
:
ctx
+
"adam/order/orderList/detail/{id}"
,
detailUrl
:
ctx
+
"adam/order/orderList/detail/{id}"
,
sortName
:
"c
ode
"
,
sortName
:
"c
reatedAt
"
,
sortOrder
:
"
a
sc"
,
sortOrder
:
"
de
sc"
,
modalName
:
"会员码创建记录"
,
modalName
:
"会员码创建记录"
,
columns
:
[{
columns
:
[{
checkbox
:
true
checkbox
:
true
},
},
{
{
field
:
'memberName'
,
field
:
'memberName'
,
title
:
'会员名称'
title
:
'会员名称'
,
width
:
220
},
},
{
{
field
:
'memberCombo'
,
field
:
'memberCombo'
,
title
:
'会员套餐名称'
title
:
'会员套餐名称'
,
width
:
180
},
},
{
{
field
:
'genNum'
,
field
:
'genNum'
,
title
:
'生产数量'
title
:
'生产数量'
,
width
:
80
},
},
{
{
field
:
'useNum'
,
field
:
'useNum'
,
title
:
'使用数量'
title
:
'使用数量'
,
width
:
80
},
},
{
{
field
:
'detail'
,
field
:
'detail'
,
title
:
'备注'
title
:
'备注'
,
width
:
280
},
},
{
{
field
:
'operator'
,
field
:
'operator'
,
title
:
'创建人'
title
:
'创建人'
,
width
:
100
},
},
{
{
field
:
'createdAt'
,
field
:
'createdAt'
,
title
:
'创建时间'
title
:
'创建时间'
,
width
:
150
,
formatter
:
function
(
value
,
row
,
index
)
{
return
$
.
common
.
sprintf
(
"<span>%s</span>"
,
null
!=
value
?
value
.
replace
(
"T"
,
" "
).
substring
(
0
,
19
)
:
value
);
}
},
},
{
{
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-primary btn-xs '
+
(
invalidFlag
&&
row
.
state
===
0
)
+
'" href="javascript:void(0)" onclick="memberCodeList(
\'
'
+
row
.
batchNo
+
'
\'
)"><i class="fa fa-edit
"></i>查看码列表</a> '
);
actions
.
push
(
'<a class="btn btn-primary btn-xs '
+
viewMemberCodeListFlg
+
'" href="javascript:void(0)" onclick="memberCodeList(
\'
'
+
row
.
batchNo
+
'
\'
)"><i class="fa fa-list-ul
"></i>查看码列表</a> '
);
return
actions
.
join
(
''
);
return
actions
.
join
(
''
);
}
}
}]
}]
...
@@ -78,7 +116,57 @@
...
@@ -78,7 +116,57 @@
/* 会员码列表 */
/* 会员码列表 */
function
memberCodeList
(
batchNo
)
{
function
memberCodeList
(
batchNo
)
{
$
.
modal
.
openTab
(
"会员码列表"
,
'adam/mcode/view?batchNo='
+
batchNo
);
$
.
modal
.
openTab
(
"会员码列表"
,
prefix
+
'/mgt/code?batchNo='
+
batchNo
);
}
$
(
"#form-member-code-generate"
).
validate
({
onkeyup
:
false
,
rules
:{
genNum
:
{
required
:
true
,
number
:
true
,
min
:
1
,
max
:
100
},
detail
:
{
required
:
true
,
minlength
:
2
,
maxlength
:
100
}
},
messages
:
{
genNum
:
{
required
:
"请输入生产数量"
,
number
:
"生产数量必须为数字"
,
min
:
"生产数量不能小于1"
,
max
:
"生产数量不能大于100"
},
detail
:
{
required
:
"请输入备注描述"
,
minlength
:
"备注描述不得少于2个字符"
,
maxlength
:
"备注描述不得大于100个字符"
}
},
focusCleanup
:
true
});
function
memberCodeGenerate
()
{
if
(
$
.
validate
.
form
(
"form-member-code-generate"
))
{
$
.
operate
.
saveModal
(
prefix
+
"/mgt/creation"
,
$
(
'#form-member-code-generate'
).
serialize
(),
memberCodeGenerateCallback
);
}
}
function
memberCodeGenerateCallback
(
result
)
{
if
(
typeof
callback
==
"function"
)
{
callback
(
result
);
}
if
(
result
.
code
==
web_status
.
SUCCESS
)
{
$
.
modal
.
alertSuccess
(
result
.
msg
);
setTimeout
(
"refreshTab()"
,
1500
);
}
else
if
(
result
.
code
==
web_status
.
WARNING
)
{
$
.
modal
.
alertWarning
(
result
.
msg
);
}
else
{
$
.
modal
.
alertError
(
result
.
msg
);
}
}
}
</script>
</script>
</body>
</body>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/member/member.html
View file @
da9e36ed
...
@@ -39,9 +39,10 @@
...
@@ -39,9 +39,10 @@
field
:
'icon'
,
field
:
'icon'
,
title
:
'ICON'
,
title
:
'ICON'
,
formatter
:
function
(
value
,
row
,
index
)
{
formatter
:
function
(
value
,
row
,
index
)
{
var
actions
=
[];
// var actions = [];
actions
.
push
(
$
.
common
.
sprintf
(
"<img class='img-circle img-xs' src='%s' />"
,
value
));
// actions.push($.common.sprintf("
<
img
class
=
'img-circle img-xs'
src
=
'%s'
/>
", value));
return
actions
;
// return actions;
return $.table.imageView(value);
}
}
},
},
{
{
...
@@ -77,7 +78,7 @@
...
@@ -77,7 +78,7 @@
formatter
:
function
(
value
,
row
,
index
)
{
formatter
:
function
(
value
,
row
,
index
)
{
var
actions
=
[];
var
actions
=
[];
actions
.
push
(
'<a class="btn btn-success btn-xs '
+
editFlag
+
'" href="javascript:void(0)" onclick="$.operate.editTab(
\'
'
+
row
.
memberId
+
'
\'
); setVipTabs()"><i class="fa fa-edit"></i>编辑</a> '
);
actions
.
push
(
'<a class="btn btn-success btn-xs '
+
editFlag
+
'" href="javascript:void(0)" onclick="$.operate.editTab(
\'
'
+
row
.
memberId
+
'
\'
); setVipTabs()"><i class="fa fa-edit"></i>编辑</a> '
);
// actions.push('
<
a
class
=
"btn btn-success btn-xs ' + viewMemberCodeMgtFlag + '"
href
=
"javascript:void(0)"
onclick
=
"memberCodeMgt(
\
'' + row.memberId + '
\
')"
><
i
class
=
"fa fa-edit
"
><
/i>会员码管理</
a
>
');
actions
.
push
(
'<a class="btn btn-warning btn-xs '
+
viewMemberCodeMgtFlag
+
'" href="javascript:void(0)" onclick="memberCodeMgt(
\'
'
+
row
.
memberId
+
'
\'
)"><i class="fa fa-barcode
"></i>会员码管理</a> '
);
return
actions
.
join
(
''
);
return
actions
.
join
(
''
);
}
}
}]
}]
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/order/orderList/detail.html
View file @
da9e36ed
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
xmlns:shiro=
"http://www.pollix.at/thymeleaf/shiro"
>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
xmlns:shiro=
"http://www.pollix.at/thymeleaf/shiro"
>
<head>
<head>
<th:block
th:include=
"include :: header('会员订单详情')"
/>
<th:block
th:include=
"include :: header('会员订单详情')"
/>
<style
type=
"text/css"
>
.user-info-head
{
position
:
relative
;
display
:
inline-block
;}
.user-info-head
:hover:after
{
content
:
'\f030'
;
position
:
absolute
;
left
:
0
;
right
:
0
;
top
:
0
;
bottom
:
0
;
color
:
#eee
;
background
:
rgba
(
0
,
0
,
0
,
0.5
);
font-family
:
FontAwesome
;
font-size
:
24px
;
font-style
:
normal
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
;
cursor
:
pointer
;
line-height
:
110px
;
border-radius
:
50%
;}
</style
>
<!-- <style type="text/css">.user-info-head{position:relative;display:inline-block;}.user-info-head:hover:after{content:'\f030';position:absolute;left:0;right:0;top:0;bottom:0;color:#eee;background:rgba(0,0,0,0.5);font-family:FontAwesome;font-size:24px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:pointer;line-height:110px;border-radius:50%;}</style>--
>
</head>
</head>
<body
class=
"gray-bg"
style=
"font: 14px Helvetica Neue, Helvetica, PingFang SC, 微软雅黑, Tahoma, Arial, sans-serif !important;"
>
<body
class=
"gray-bg"
style=
"font: 14px Helvetica Neue, Helvetica, PingFang SC, 微软雅黑, Tahoma, Arial, sans-serif !important;"
>
...
@@ -185,7 +185,7 @@
...
@@ -185,7 +185,7 @@
var
pricePaid
=
[[
$
{
orderDetailsVo
.
adamMemberOrderVo
.
pricePaid
}]];
var
pricePaid
=
[[
$
{
orderDetailsVo
.
adamMemberOrderVo
.
pricePaid
}]];
$
(
"#form-member-order-refund"
).
validate
({
$
(
"#form-member-order-refund"
).
validate
({
onkeyup
:
tru
e
,
onkeyup
:
fals
e
,
rules
:{
rules
:{
refundAmt
:
{
refundAmt
:
{
required
:
true
,
required
:
true
,
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/dto/AdamMemberCodeExcelDto.java
View file @
da9e36ed
...
@@ -10,18 +10,14 @@ import java.io.Serializable;
...
@@ -10,18 +10,14 @@ import java.io.Serializable;
@Data
@Data
public
class
AdamMemberCodeExcelDto
implements
Serializable
,
Cloneable
{
public
class
AdamMemberCodeExcelDto
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
-
6775626480969657499L
;
private
static
final
long
serialVersionUID
=
-
6775626480969657499L
;
@Excel
(
name
=
"会员码"
)
@Excel
(
name
=
"卡号"
)
private
String
memberNo
;
@Excel
(
name
=
"会员码"
,
width
=
30
)
private
String
code
;
private
String
code
;
@Excel
(
name
=
"状态"
)
@Excel
(
name
=
"使用状态"
)
private
Integer
state
;
private
String
state
;
@Excel
(
name
=
"用户UID"
)
@Excel
(
name
=
"使用时间"
,
width
=
30
)
private
String
useUid
;
private
String
useAt
;
@Excel
(
name
=
"生效时间"
,
width
=
30
)
private
String
effectAt
;
@Excel
(
name
=
"过期时间"
,
width
=
30
)
private
String
expireAt
;
@Excel
(
name
=
"批次号"
)
private
String
memberId
;
private
static
final
AdamMemberCodeExcelDto
obj
=
new
AdamMemberCodeExcelDto
();
private
static
final
AdamMemberCodeExcelDto
obj
=
new
AdamMemberCodeExcelDto
();
...
@@ -35,12 +31,10 @@ public class AdamMemberCodeExcelDto implements Serializable, Cloneable {
...
@@ -35,12 +31,10 @@ public class AdamMemberCodeExcelDto implements Serializable, Cloneable {
public
AdamMemberCodeExcelDto
copy
(
AdamMemberCode
source
)
{
public
AdamMemberCodeExcelDto
copy
(
AdamMemberCode
source
)
{
if
(
null
==
source
)
return
this
;
if
(
null
==
source
)
return
this
;
this
.
setMemberNo
(
source
.
getMemberNo
());
this
.
setCode
(
source
.
getCode
());
this
.
setCode
(
source
.
getCode
());
this
.
setState
(
source
.
getState
());
this
.
setState
(
source
.
getState
()
==
0
?
"可用"
:
"已用"
);
this
.
setUseUid
(
source
.
getUseUid
());
this
.
setUseAt
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
source
.
getUseAt
()));
this
.
setEffectAt
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
source
.
getEffectAt
()));
this
.
setExpireAt
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
source
.
getExpireAt
()));
this
.
setMemberId
(
source
.
getMemberId
());
return
this
;
return
this
;
}
}
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/IAdamMemberCodeBatchAdminService.java
View file @
da9e36ed
...
@@ -4,4 +4,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
...
@@ -4,4 +4,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
public
interface
IAdamMemberCodeBatchAdminService
extends
IService
<
AdamMemberCodeBatch
>
{
public
interface
IAdamMemberCodeBatchAdminService
extends
IService
<
AdamMemberCodeBatch
>
{
int
updateBatchUseNum
();
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/impl/AdamMemberCodeAdminServiceImpl.java
View file @
da9e36ed
...
@@ -2,16 +2,24 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl;
...
@@ -2,16 +2,24 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.client.admin.common.utils.ShiroUtils
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService
;
import
com.liquidnet.common.cache.redis.util.AbstractRedisUtil
;
import
com.liquidnet.common.cache.redis.util.AbstractRedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.common.exception.LiquidnetServiceException
;
import
com.liquidnet.common.exception.LiquidnetServiceException
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.adam.dto.admin.AdamMemberCodeGenParam
;
import
com.liquidnet.service.adam.dto.admin.AdamMemberCodeGenParam
;
import
com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo
;
import
com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo
;
import
com.liquidnet.service.adam.entity.AdamMember
;
import
com.liquidnet.service.adam.entity.AdamMemberCode
;
import
com.liquidnet.service.adam.entity.AdamMemberCode
;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
import
com.liquidnet.service.adam.entity.AdamMemberPrice
;
import
com.liquidnet.service.adam.mapper.AdamMemberCodeBatchMapper
;
import
com.liquidnet.service.adam.mapper.AdamMemberCodeMapper
;
import
com.liquidnet.service.adam.mapper.AdamMemberCodeMapper
;
import
com.liquidnet.service.adam.mapper.AdamMemberMapper
;
import
com.liquidnet.service.adam.mapper.AdamMemberPriceMapper
;
import
com.liquidnet.service.adam.util.MemberUtil
;
import
com.liquidnet.service.adam.util.MemberUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -26,16 +34,24 @@ import java.util.regex.Pattern;
...
@@ -26,16 +34,24 @@ import java.util.regex.Pattern;
@Service
@Service
public
class
AdamMemberCodeAdminServiceImpl
extends
ServiceImpl
<
AdamMemberCodeMapper
,
AdamMemberCode
>
implements
IAdamMemberCodeAdminService
{
public
class
AdamMemberCodeAdminServiceImpl
extends
ServiceImpl
<
AdamMemberCodeMapper
,
AdamMemberCode
>
implements
IAdamMemberCodeAdminService
{
@Autowired
@Autowired
AdamMemberCodeMapper
m
emberCodeMapper
;
AdamMemberCodeMapper
adamM
emberCodeMapper
;
@Autowired
@Autowired
RedisDataSourceUtil
redisDataSourceUtil
;
RedisDataSourceUtil
redisDataSourceUtil
;
@Autowired
AdamMemberMapper
adamMemberMapper
;
@Autowired
AdamMemberPriceMapper
adamMemberPriceMapper
;
@Autowired
AdamMemberCodeBatchMapper
adamMemberCodeBatchMapper
;
@Override
@Override
public
boolean
createGiftCode
(
AdamMemberCodeGenParam
param
)
{
public
boolean
createGiftCode
(
AdamMemberCodeGenParam
param
)
{
String
loginName
=
ShiroUtils
.
getLoginName
();
List
<
AdamMemberCode
>
memberCodeList
=
new
ArrayList
<>();
List
<
AdamMemberCode
>
memberCodeList
=
new
ArrayList
<>();
ArrayList
<
String
>
codeList
=
CollectionUtil
.
arrayListString
();
ArrayList
<
String
>
codeList
=
CollectionUtil
.
arrayListString
();
Integer
genNum
=
param
.
getGenNum
();
Integer
genNum
=
param
.
getGenNum
();
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
now
=
LocalDateTime
.
now
();
String
batchNo
=
IDGenerator
.
nextMilliId2
();
AbstractRedisUtil
redisAdamUtil
=
redisDataSourceUtil
.
getRedisAdamUtil
();
AbstractRedisUtil
redisAdamUtil
=
redisDataSourceUtil
.
getRedisAdamUtil
();
for
(
int
i
=
0
;
i
<
genNum
;
i
++)
{
for
(
int
i
=
0
;
i
<
genNum
;
i
++)
{
String
mCode
;
String
mCode
;
...
@@ -48,15 +64,17 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
...
@@ -48,15 +64,17 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
AdamMemberCode
initMemberCode
=
new
AdamMemberCode
();
AdamMemberCode
initMemberCode
=
new
AdamMemberCode
();
initMemberCode
.
setCode
(
mCode
);
initMemberCode
.
setCode
(
mCode
);
initMemberCode
.
setType
(
1
);
initMemberCode
.
setType
(
2
);
initMemberCode
.
setBatchNo
(
batchNo
);
initMemberCode
.
setMemberId
(
param
.
getMemberId
());
initMemberCode
.
setMemberId
(
param
.
getMemberId
());
initMemberCode
.
setMemberPriceId
(
param
.
getMemberPriceId
());
initMemberCode
.
setMemberPriceId
(
param
.
getMemberPriceId
());
// 需要主动生成会员编号
// 需要主动生成会员编号
,这里暂不生产,待数据记录成功同步RDS时生产
//
initMemberCode.setMemberNo(getNextMemberNo(param.getMemberId()));
//
initMemberCode.setMemberNo(getNextMemberNo(param.getMemberId()));
initMemberCode
.
setState
(
0
);
//
状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]
initMemberCode
.
setState
(
0
);
//
0-可用|1-已用
// initMemberCode.setValidity(param.getValidity());
// initMemberCode.setValidity(param.getValidity());
// initMemberCode.setEffectAt(now);
// initMemberCode.setEffectAt(now);
// initMemberCode.setExpireAt(now.plusDays(param.getValidity()).withHour(23).withMinute(59).withSecond(59));
// initMemberCode.setExpireAt(now.plusDays(param.getValidity()).withHour(23).withMinute(59).withSecond(59));
initMemberCode
.
setOperator
(
loginName
);
initMemberCode
.
setCreatedAt
(
now
);
initMemberCode
.
setCreatedAt
(
now
);
memberCodeList
.
add
(
initMemberCode
);
memberCodeList
.
add
(
initMemberCode
);
...
@@ -65,16 +83,43 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
...
@@ -65,16 +83,43 @@ public class AdamMemberCodeAdminServiceImpl extends ServiceImpl<AdamMemberCodeMa
//redisDataSourceUtil.getRedisAdamUtil().set(AdamRedisConst.INFO_MEMBER_CODE.concat(mCode), AdamMemberCodeVo.getNew().copy(initMemberCode));
//redisDataSourceUtil.getRedisAdamUtil().set(AdamRedisConst.INFO_MEMBER_CODE.concat(mCode), AdamMemberCodeVo.getNew().copy(initMemberCode));
}
}
if
(
this
.
saveBatch
(
memberCodeList
,
memberCodeList
.
size
()))
{
AdamMember
member
=
adamMemberMapper
.
selectOne
(
Wrappers
.
lambdaQuery
(
AdamMember
.
class
).
eq
(
AdamMember:
:
getMemberId
,
param
.
getMemberId
())
.
select
(
AdamMember:
:
getName
)
);
AdamMemberPrice
memberPrice
=
adamMemberPriceMapper
.
selectOne
(
Wrappers
.
lambdaQuery
(
AdamMemberPrice
.
class
)
.
eq
(
AdamMemberPrice:
:
getMemberPriceId
,
param
.
getMemberPriceId
())
.
eq
(
AdamMemberPrice:
:
getMemberId
,
param
.
getMemberId
())
.
eq
(
AdamMemberPrice:
:
getState
,
1
)
.
select
(
AdamMemberPrice:
:
getName
)
);
AdamMemberCodeBatch
memberCodeBatch
=
new
AdamMemberCodeBatch
();
memberCodeBatch
.
setBatchNo
(
batchNo
);
memberCodeBatch
.
setMemberId
(
param
.
getMemberId
());
memberCodeBatch
.
setMemberPriceId
(
param
.
getMemberPriceId
());
memberCodeBatch
.
setMemberName
(
member
.
getName
());
memberCodeBatch
.
setMemberCombo
(
memberPrice
.
getName
());
memberCodeBatch
.
setGenNum
(
genNum
);
memberCodeBatch
.
setUseNum
(
0
);
memberCodeBatch
.
setDetail
(
param
.
getDetail
());
memberCodeBatch
.
setState
(
1
);
memberCodeBatch
.
setOperator
(
loginName
);
memberCodeBatch
.
setCreatedAt
(
now
);
if
(
adamMemberCodeBatchMapper
.
insert
(
memberCodeBatch
)
>
0
&&
this
.
saveBatch
(
memberCodeList
,
memberCodeList
.
size
()))
{
List
<
AdamMemberCode
>
list
=
this
.
list
(
List
<
AdamMemberCode
>
list
=
this
.
list
(
Wrappers
.
lambdaQuery
(
AdamMemberCode
.
class
).
in
(
AdamMemberCode:
:
getCode
,
codeList
)
Wrappers
.
lambdaQuery
(
AdamMemberCode
.
class
)
.
eq
(
AdamMemberCode:
:
getState
,
0
).
eq
(
AdamMemberCode:
:
getCreatedAt
,
now
)
.
in
(
AdamMemberCode:
:
getCode
,
codeList
)
.
eq
(
AdamMemberCode:
:
getState
,
0
)
.
eq
(
AdamMemberCode:
:
getBatchNo
,
batchNo
)
// .select(AdamMemberCode::getMid, AdamMemberCode::getCode)
);
);
list
.
forEach
(
r
->
{
for
(
AdamMemberCode
memberCode
:
list
)
{
r
.
setMemberNo
(
getNextMemberNo
(
param
.
getMemberId
()));
memberCode
.
setMemberNo
(
getNextMemberNo
(
param
.
getMemberId
()));
redisAdamUtil
.
set
(
AdamRedisConst
.
INFO_MEMBER_CODE
.
concat
(
r
.
getCode
()),
AdamMemberCodeVo
.
getNew
().
copy
(
r
));
redisAdamUtil
.
set
(
AdamRedisConst
.
INFO_MEMBER_CODE
.
concat
(
memberCode
.
getCode
()),
AdamMemberCodeVo
.
getNew
().
copy
(
memberCode
));
}
);
}
this
.
updateBatchById
(
list
,
list
.
size
());
this
.
updateBatchById
(
list
,
list
.
size
());
return
true
;
return
true
;
}
}
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/impl/AdamMemberCodeBatchAdminServiceImpl.java
View file @
da9e36ed
...
@@ -5,9 +5,17 @@ import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeBatchAdmi
...
@@ -5,9 +5,17 @@ import com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeBatchAdmi
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
import
com.liquidnet.service.adam.mapper.AdamMemberCodeBatchMapper
;
import
com.liquidnet.service.adam.mapper.AdamMemberCodeBatchMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Slf4j
@Service
@Service
public
class
AdamMemberCodeBatchAdminServiceImpl
extends
ServiceImpl
<
AdamMemberCodeBatchMapper
,
AdamMemberCodeBatch
>
implements
IAdamMemberCodeBatchAdminService
{
public
class
AdamMemberCodeBatchAdminServiceImpl
extends
ServiceImpl
<
AdamMemberCodeBatchMapper
,
AdamMemberCodeBatch
>
implements
IAdamMemberCodeBatchAdminService
{
@Autowired
AdamMemberCodeBatchMapper
adamMemberCodeBatchMapper
;
@Override
public
int
updateBatchUseNum
()
{
return
adamMemberCodeBatchMapper
.
updateUseNum
();
}
}
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/entity/AdamMemberCode.java
View file @
da9e36ed
...
@@ -16,11 +16,6 @@ public class AdamMemberCode {
...
@@ -16,11 +16,6 @@ public class AdamMemberCode {
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
private
Long
mid
;
/**
* 会员码批次号
*/
private
String
batchNo
;
/**
/**
* 会员码
* 会员码
*/
*/
...
@@ -29,6 +24,10 @@ public class AdamMemberCode {
...
@@ -29,6 +24,10 @@ public class AdamMemberCode {
* 类型:1-购买,2-赠送(后台生成)
* 类型:1-购买,2-赠送(后台生成)
*/
*/
private
Integer
type
;
private
Integer
type
;
/**
* 会员码批次号
*/
private
String
batchNo
;
/**
/**
* 会员类型id
* 会员类型id
*/
*/
...
...
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/mapper/AdamMemberCodeBatchMapper.java
View file @
da9e36ed
...
@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.mapper;
...
@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.mapper;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Update
;
/**
/**
* <p>
* <p>
...
@@ -13,4 +14,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
...
@@ -13,4 +14,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
*/
public
interface
AdamMemberCodeBatchMapper
extends
BaseMapper
<
AdamMemberCodeBatch
>
{
public
interface
AdamMemberCodeBatchMapper
extends
BaseMapper
<
AdamMemberCodeBatch
>
{
@Update
(
"update adam_member_code_batch amcb\n"
+
" inner join (\n"
+
" select batch_no, count(1) ct from adam_member_code where batch_no is not null and state = 1 group by batch_no\n"
+
" ) t on amcb.batch_no = t.batch_no\n"
+
"set amcb.use_num=t.ct, amcb.updated_at=sysdate()\n"
+
"where amcb.state = 1 and amcb.gen_num <> amcb.use_num"
)
int
updateUseNum
();
}
}
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