记得上下班打卡 | 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
e8d899ad
Commit
e8d899ad
authored
Sep 24, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/new_member' into new_member
parents
fb9f5279
ce9834af
Changes
29
Show whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
1948 additions
and
243 deletions
+1948
-243
20210927_member_voucher_refund.sql
docu/20210927_member_voucher_refund.sql
+33
-3
IReportPerformanceService.java
...dnet/service/kylin/service/IReportPerformanceService.java
+47
-0
AdamMemberAdminController.java
...b/controller/zhengzai/adam/AdamMemberAdminController.java
+3
-150
AdamMemberCodeAdminController.java
...ntroller/zhengzai/adam/AdamMemberCodeAdminController.java
+199
-0
ReportPerformanceController.java
...ontroller/zhengzai/kylin/ReportPerformanceController.java
+143
-0
code_mgt.html
...sources/templates/zhengzai/adam/member/code/code_mgt.html
+147
-0
info.html
...c/main/resources/templates/zhengzai/adam/member/info.html
+138
-64
performanceData.html
...rces/templates/zhengzai/kylin/report/performanceData.html
+676
-0
IAdamMemberCodeBatchAdminService.java
...engzai/adam/service/IAdamMemberCodeBatchAdminService.java
+7
-0
AdamMemberCodeBatchAdminServiceImpl.java
...dam/service/impl/AdamMemberCodeBatchAdminServiceImpl.java
+13
-0
AdamMemberRightsAdminServiceImpl.java
...i/adam/service/impl/AdamMemberRightsAdminServiceImpl.java
+16
-7
CandyMgtCouponAdminServiceImpl.java
...ai/candy/service/impl/CandyMgtCouponAdminServiceImpl.java
+6
-4
ReportPerformanceServiceImpl.java
...gzai/kylin/service/impl/ReportPerformanceServiceImpl.java
+48
-0
AdamMemberCodeBatch.java
...om/liquidnet/service/adam/entity/AdamMemberCodeBatch.java
+99
-0
AdamMemberRights.java
...a/com/liquidnet/service/adam/entity/AdamMemberRights.java
+11
-0
AdamMemberCodeBatchMapper.java
...uidnet/service/adam/mapper/AdamMemberCodeBatchMapper.java
+16
-0
AdamMemberCodeBatchMapper.xml
...quidnet/service/adam/mapper/AdamMemberCodeBatchMapper.xml
+5
-0
PerformanceAgeDataDto.java
...idnet/service/kylin/dao/report/PerformanceAgeDataDto.java
+31
-0
PerformanceCityDataDto.java
...dnet/service/kylin/dao/report/PerformanceCityDataDto.java
+31
-0
PerformanceProvinceDataDto.java
.../service/kylin/dao/report/PerformanceProvinceDataDto.java
+31
-0
PerformanceSexDataDto.java
...idnet/service/kylin/dao/report/PerformanceSexDataDto.java
+30
-0
ReportPerformanceMapper.java
...quidnet/service/kylin/mapper/ReportPerformanceMapper.java
+49
-0
ReportPerformanceMapper.xml
...iquidnet.service.kylin.mapper/ReportPerformanceMapper.xml
+96
-0
db_ln_adam_initialdata.sql
...quidnet-service-adam-impl/docu/db_ln_adam_initialdata.sql
+34
-5
AdamLoginController.java
...iquidnet/service/adam/controller/AdamLoginController.java
+22
-1
AdamUserServiceImpl.java
...uidnet/service/adam/service/impl/AdamUserServiceImpl.java
+10
-6
errors.properties
...et-service-adam-impl/src/main/resources/errors.properties
+1
-0
sqlmap.properties
...et-service-adam-impl/src/main/resources/sqlmap.properties
+2
-1
KylinOrderTicketsServiceImpl.java
...vice/order/service/impl/KylinOrderTicketsServiceImpl.java
+4
-2
No files found.
docu/member_voucher_refund.sql
→
docu/
20210927_
member_voucher_refund.sql
View file @
e8d899ad
...
@@ -58,7 +58,7 @@ alter table adam_member_price add price_special decimal(8, 2) null comment '特
...
@@ -58,7 +58,7 @@ alter table adam_member_price add price_special decimal(8, 2) null comment '特
#
会员码表调整
#
会员码表调整
alter
table
adam_member_code
modify
state
tinyint
null
comment
'状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]'
;
alter
table
adam_member_code
modify
state
tinyint
null
comment
'状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]'
;
create
index
idx_amember_code_id
on
adam_member_code
(
code
);
create
index
idx_amember_code_id
on
adam_member_code
(
code
);
alter
table
adam_member_code
add
validity
tiny
int
null
comment
'有效期(单位天)'
after
state
;
alter
table
adam_member_code
add
validity
int
null
comment
'有效期(单位天)'
after
state
;
alter
table
adam_member_code
add
effect_at
datetime
(
3
)
null
comment
'生效时间'
after
validity
;
alter
table
adam_member_code
add
effect_at
datetime
(
3
)
null
comment
'生效时间'
after
validity
;
alter
table
adam_member_code
add
expire_at
datetime
(
3
)
null
comment
'过期时间'
after
effect_at
;
alter
table
adam_member_code
add
expire_at
datetime
(
3
)
null
comment
'过期时间'
after
effect_at
;
alter
table
adam_member_code
add
operator
varchar
(
64
)
null
comment
'type=2时记录创建人'
after
expire_at
;
alter
table
adam_member_code
add
operator
varchar
(
64
)
null
comment
'type=2时记录创建人'
after
expire_at
;
...
@@ -111,6 +111,11 @@ create table adam_member_rights
...
@@ -111,6 +111,11 @@ create table adam_member_rights
label
varchar
(
50
)
comment
'标注'
,
label
varchar
(
50
)
comment
'标注'
,
cover
varchar
(
255
)
comment
'图片标识'
,
cover
varchar
(
255
)
comment
'图片标识'
,
detail
text
comment
'详情内容'
,
detail
text
comment
'详情内容'
,
operator
varchar
(
64
)
comment
'操作人'
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
(
3
),
comment
varchar
(
255
)
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'会员权益配置'
;
)
engine
=
InnoDB
comment
'会员权益配置'
;
create
unique
index
uidx_adam_member_rights_id
on
adam_member_rights
(
mrights_id
);
create
unique
index
uidx_adam_member_rights_id
on
adam_member_rights
(
mrights_id
);
...
@@ -126,11 +131,36 @@ create table adam_user_busi_acct
...
@@ -126,11 +131,36 @@ create table adam_user_busi_acct
work
varchar
(
64
)
comment
'业务服务模块'
,
work
varchar
(
64
)
comment
'业务服务模块'
,
ppwd
varchar
(
64
)
comment
'业务服务密码'
,
ppwd
varchar
(
64
)
comment
'业务服务密码'
,
state
tinyint
comment
'1-NORMAL,2-INVALID'
,
state
tinyint
comment
'1-NORMAL,2-INVALID'
,
created_at
datetime
not
null
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
,
updated_at
datetime
(
3
)
,
comment
text
comment
text
)
engine
=
InnoDB
comment
'用户业务服务账号表'
;
)
engine
=
InnoDB
comment
'用户业务服务账号表'
;
create
index
idx_adam_user_busi_acct_uid
on
adam_user_busi_acct
(
uid
);
create
index
idx_adam_user_busi_acct_uid
on
adam_user_busi_acct
(
uid
);
-- >>------------------------------------------------------------------------------------|20210924会员码管理
drop
table
if
exists
adam_member_code_batch
;
create
table
adam_member_code_batch
(
mid
bigint
unsigned
auto_increment
primary
key
,
batch_no
varchar
(
64
)
not
null
comment
'会员码批次号'
,
member_id
varchar
(
64
)
not
null
comment
'~`adam_member.member_id`'
,
member_price_id
varchar
(
64
)
not
null
comment
'~`adam_member_price.member_price_id`'
,
member_name
varchar
(
80
)
comment
'会员卡名称~`adam_member.name`'
,
member_combo
varchar
(
80
)
comment
'套餐包名称'
,
gen_num
int
comment
'生成数量'
,
use_num
int
comment
'使用数量'
,
`describe`
varchar
(
64
)
comment
'描述'
,
validity
int
comment
'有效期(单位天)'
,
effect_at
datetime
(
3
)
null
comment
'生效时间'
,
expire_at
datetime
(
3
)
null
comment
'失效时间'
,
state
tinyint
comment
'状态[0-INIT|1-NORMAL|2-INVALID]'
,
operator
varchar
(
64
)
comment
'操作人'
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
(
3
),
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'会员码批次记录'
;
create
index
idx_adam_member_code_batch_no
on
adam_member_code_batch
(
batch_no
);
#
-- >>------------------------------------------------------------------------------------ |20210817会员与券改版
#
-- >>------------------------------------------------------------------------------------ |20210817会员与券改版
#
券发放管理
#
券发放管理
drop
table
if
exists
candy_mgt_coupon
;
drop
table
if
exists
candy_mgt_coupon
;
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/IReportPerformanceService.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
service
.
kylin
.
service
;
import
com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: IReportPerformanceService
* @Package com.liquidnet.service.kylin.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 11:27
*/
public
interface
IReportPerformanceService
{
/**
* 获取按省统计数据
* @param performanceId
* @return
*/
List
<
PerformanceProvinceDataDto
>
getProvinceDataList
(
String
performanceId
);
/**
* 获取按城市统计数据
* @param performanceId
* @return
*/
List
<
PerformanceCityDataDto
>
getCityDataList
(
String
performanceId
);
/**
* 获取按年龄统计数据
* @param performanceId
* @return
*/
List
<
PerformanceAgeDataDto
>
getAgeDataList
(
String
performanceId
);
/**
* 获取按性别统计数据
* @param performanceId
* @return
*/
List
<
PerformanceSexDataDto
>
getSexDataList
(
String
performanceId
);
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/adam/AdamMemberAdminController.java
View file @
e8d899ad
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
adam
;
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
adam
;
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.annotation.Log
;
import
com.liquidnet.client.admin.common.annotation.Log
;
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.AjaxResult
;
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.enums.BusinessType
;
import
com.liquidnet.client.admin.common.enums.BusinessType
;
import
com.liquidnet.client.admin.common.utils.ShiroUtils
;
import
com.liquidnet.client.admin.common.utils.poi.ExcelUtil
;
import
com.liquidnet.client.admin.zhengzai.adam.dto.AdamMemberCodeExcelDto
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberAdminService
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberAdminService
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService
;
import
com.liquidnet.client.admin.zhengzai.candy.service.ICandyMgtCouponAdminService
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.service.adam.dto.admin.AdamMemberBuildParam
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.service.adam.dto.admin.AdamMemberPriceBuildParam
;
import
com.liquidnet.service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.adam.dto.admin.AdamMemberRightsBuildParam
;
import
com.liquidnet.service.adam.dto.admin.*
;
import
com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo
;
import
com.liquidnet.service.adam.entity.AdamMember
;
import
com.liquidnet.service.adam.entity.AdamMember
;
import
com.liquidnet.service.adam.entity.AdamMemberCode
;
import
com.liquidnet.service.adam.entity.AdamMemberPrice
;
import
com.liquidnet.service.adam.entity.AdamMemberPrice
;
import
com.liquidnet.service.adam.entity.AdamMemberRights
;
import
com.liquidnet.service.adam.entity.AdamMemberRights
;
import
com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam
;
import
com.liquidnet.service.candy.dto.admin.CandyCouponRuleBuildParam
;
...
@@ -41,8 +32,6 @@ import org.springframework.validation.annotation.Validated;
...
@@ -41,8 +32,6 @@ import org.springframework.validation.annotation.Validated;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -60,27 +49,15 @@ public class AdamMemberAdminController extends BaseController {
...
@@ -60,27 +49,15 @@ public class AdamMemberAdminController extends BaseController {
@Autowired
@Autowired
IAdamMemberRightsAdminService
adamMemberRightsAdminService
;
IAdamMemberRightsAdminService
adamMemberRightsAdminService
;
@Autowired
@Autowired
IAdamMemberCodeAdminService
adamMemberCodeAdminService
;
@Autowired
ICandyMgtCouponAdminService
candyMgtCouponAdminService
;
ICandyMgtCouponAdminService
candyMgtCouponAdminService
;
@Autowired
@Autowired
ICandyCouponAdminService
candyCouponAdminService
;
ICandyCouponAdminService
candyCouponAdminService
;
@Autowired
private
RedisUtil
redisUtil
;
@GetMapping
()
@GetMapping
()
public
String
view
()
{
public
String
view
()
{
return
prefix
+
"/member"
;
return
prefix
+
"/member"
;
}
}
@RequiresPermissions
(
"adam:member:view:code"
)
@GetMapping
(
"code/{memberId}"
)
public
String
viewCode
(
@PathVariable
(
"memberId"
)
String
memberId
,
ModelMap
mmap
)
{
mmap
.
put
(
"memberId"
,
memberId
);
return
prefix
+
"/code"
;
}
@RequiresPermissions
(
"adam:member:view:list"
)
@RequiresPermissions
(
"adam:member:view:list"
)
@Log
(
title
=
"会员管理:会员卡:列表"
,
businessType
=
BusinessType
.
LIST
)
@Log
(
title
=
"会员管理:会员卡:列表"
,
businessType
=
BusinessType
.
LIST
)
@PostMapping
(
"list"
)
@PostMapping
(
"list"
)
...
@@ -249,128 +226,4 @@ public class AdamMemberAdminController extends BaseController {
...
@@ -249,128 +226,4 @@ public class AdamMemberAdminController extends BaseController {
return
this
.
toAjax
(
candyMgtCouponAdminService
.
editMgtCouponForMemberRights
(
parameter
));
return
this
.
toAjax
(
candyMgtCouponAdminService
.
editMgtCouponForMemberRights
(
parameter
));
}
}
}
}
@ApiOperation
(
value
=
"会员码:列表"
)
@RequiresPermissions
(
"adam:member:list:code"
)
@Log
(
title
=
"会员管理:会员码:列表"
,
businessType
=
BusinessType
.
LIST
)
@PostMapping
(
"list_code"
)
@ResponseBody
public
TableDataInfo
listCode
(
AdamMemberCodeListParam
parameter
)
{
return
getDataTable
(
codeListQuery
(
parameter
));
}
private
List
<
AdamMemberCode
>
codeListQuery
(
AdamMemberCodeListParam
parameter
)
{
LambdaQueryWrapper
<
AdamMemberCode
>
queryWrapper
=
Wrappers
.
lambdaQuery
(
AdamMemberCode
.
class
).
orderByDesc
(
AdamMemberCode:
:
getCreatedAt
);
queryWrapper
.
eq
(
AdamMemberCode:
:
getMemberId
,
parameter
.
getMemberId
());
queryWrapper
.
eq
(
AdamMemberCode:
:
getType
,
2
);
queryWrapper
.
ne
(
AdamMemberCode:
:
getState
,
2
);
if
(
null
!=
parameter
.
getState
())
{
queryWrapper
.
eq
(
AdamMemberCode:
:
getState
,
parameter
.
getState
());
}
queryWrapper
.
select
(
AdamMemberCode:
:
getCode
,
AdamMemberCode:
:
getState
,
AdamMemberCode:
:
getOperator
,
AdamMemberCode:
:
getCreatedAt
,
AdamMemberCode:
:
getValidity
,
AdamMemberCode:
:
getEffectAt
,
AdamMemberCode:
:
getExpireAt
,
AdamMemberCode:
:
getUseOrderNo
,
AdamMemberCode:
:
getUseUid
,
AdamMemberCode:
:
getUseAt
);
queryWrapper
.
orderByDesc
(
AdamMemberCode:
:
getMemberNo
);
return
adamMemberCodeAdminService
.
list
(
queryWrapper
);
}
@ApiOperation
(
value
=
"会员码:导出"
)
@RequiresPermissions
(
"adam:member:export:code"
)
@Log
(
title
=
"会员管理:会员码:导出"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"export_code"
)
@ResponseBody
public
AjaxResult
exportCode
(
AdamMemberCodeListParam
parameter
)
{
List
<
AdamMemberCode
>
list
=
codeListQuery
(
parameter
);
ExcelUtil
<
AdamMemberCodeExcelDto
>
excelUtil
=
new
ExcelUtil
<>(
AdamMemberCodeExcelDto
.
class
);
List
<
AdamMemberCodeExcelDto
>
excelList
=
new
ArrayList
<>();
list
.
forEach
(
r
->
{
excelList
.
add
(
AdamMemberCodeExcelDto
.
getNew
().
copy
(
r
));
});
return
excelUtil
.
exportExcel
(
excelList
,
"会员码数据"
);
}
@ApiOperation
(
value
=
"会员码:生成"
)
@RequiresPermissions
(
"adam:member:gen:code"
)
@Log
(
title
=
"会员管理:会员码:生成"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
(
"gen_code"
)
@ResponseBody
public
AjaxResult
genCode
(
@Validated
AdamMemberCodeGenParam
parameter
)
{
int
count
=
adamMemberPriceAdminService
.
count
(
Wrappers
.
lambdaQuery
(
AdamMemberPrice
.
class
)
.
eq
(
AdamMemberPrice:
:
getMemberPriceId
,
parameter
.
getMemberPriceId
())
.
eq
(
AdamMemberPrice:
:
getMemberId
,
parameter
.
getMemberId
())
.
eq
(
AdamMemberPrice:
:
getState
,
1
)
);
if
(
count
<=
0
)
{
logger
.
warn
(
"会员卡ID/价格ID无效[{}]"
,
parameter
);
return
this
.
error
(
"会员卡ID/价格ID无效"
);
}
return
this
.
toAjax
(
adamMemberCodeAdminService
.
createGiftCode
(
parameter
));
}
@RequiresPermissions
(
"adam:member:invalid:code"
)
@Log
(
title
=
"会员管理:会员码:失效"
,
businessType
=
BusinessType
.
UPDATE
)
@PostMapping
(
"invalid_code"
)
@ResponseBody
public
AjaxResult
invalid
(
AdamMemberCodeOptParam
optParam
)
{
return
toAjax
(
this
.
invalidRecoverCode
(
optParam
,
4
));
}
/**
* 失效|退回会员兑换码
*
* @param optParam AdamMemberCodeOptParam
* @param state 状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]
* @return boolean
*/
private
boolean
invalidRecoverCode
(
AdamMemberCodeOptParam
optParam
,
int
state
)
{
String
loginName
=
ShiroUtils
.
getLoginName
();
LocalDateTime
now
=
LocalDateTime
.
now
();
logger
.
info
(
"by:{},optParam:{},state:{}"
,
loginName
,
optParam
,
state
);
int
beforeState
=
state
==
4
?
0
:
(
state
==
5
?
1
:
-
1
);
ArrayList
<
String
>
updateCodeList
=
CollectionUtil
.
arrayListString
();
optParam
.
getCodes
().
forEach
(
r
->
{
String
key
=
AdamRedisConst
.
INFO_MEMBER_CODE
.
concat
(
r
);
AdamMemberCodeVo
vo
=
(
AdamMemberCodeVo
)
redisUtil
.
get
(
key
);
if
(
null
!=
vo
&&
vo
.
getState
()
==
beforeState
)
{
redisUtil
.
del
(
key
);
updateCodeList
.
add
(
vo
.
getCode
());
}
});
if
(!
CollectionUtils
.
isEmpty
(
updateCodeList
))
{
LambdaUpdateWrapper
<
AdamMemberCode
>
memberCodeUpdateWrapper
=
Wrappers
.
lambdaUpdate
(
AdamMemberCode
.
class
);
memberCodeUpdateWrapper
.
eq
(
AdamMemberCode:
:
getMemberId
,
optParam
.
getMemberId
());
memberCodeUpdateWrapper
.
eq
(
AdamMemberCode:
:
getState
,
beforeState
);
memberCodeUpdateWrapper
.
in
(
AdamMemberCode:
:
getCode
,
updateCodeList
);
memberCodeUpdateWrapper
.
set
(
AdamMemberCode:
:
getState
,
state
);
memberCodeUpdateWrapper
.
set
(
AdamMemberCode:
:
getOperator
,
loginName
);
memberCodeUpdateWrapper
.
set
(
AdamMemberCode:
:
getUpdatedAt
,
now
);
return
adamMemberCodeAdminService
.
update
(
memberCodeUpdateWrapper
);
}
return
false
;
}
@RequiresPermissions
(
"adam:member:recover:code"
)
@Log
(
title
=
"会员管理:会员码:退回"
,
businessType
=
BusinessType
.
UPDATE
)
@PostMapping
(
"recover_code"
)
@ResponseBody
public
AjaxResult
recover
(
AdamMemberCodeOptParam
optParam
)
{
return
toAjax
(
this
.
invalidRecoverCode
(
optParam
,
5
));
}
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/adam/AdamMemberCodeAdminController.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
adam
;
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.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.ShiroUtils
;
import
com.liquidnet.client.admin.common.utils.poi.ExcelUtil
;
import
com.liquidnet.client.admin.zhengzai.adam.dto.AdamMemberCodeExcelDto
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeAdminService
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberPriceAdminService
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.adam.dto.admin.AdamMemberCodeGenParam
;
import
com.liquidnet.service.adam.dto.admin.AdamMemberCodeListParam
;
import
com.liquidnet.service.adam.dto.admin.AdamMemberCodeOptParam
;
import
com.liquidnet.service.adam.dto.vo.AdamMemberCodeVo
;
import
com.liquidnet.service.adam.entity.AdamMemberCode
;
import
com.liquidnet.service.adam.entity.AdamMemberPrice
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
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.util.CollectionUtils
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
@Api
(
tags
=
"会员码管理"
)
@Controller
@RequestMapping
(
"adam/mcode"
)
public
class
AdamMemberCodeAdminController
extends
BaseController
{
private
final
String
prefix
=
"zhengzai/adam/member/code"
;
@Autowired
IAdamMemberCodeAdminService
adamMemberCodeAdminService
;
@Autowired
IAdamMemberPriceAdminService
adamMemberPriceAdminService
;
@Autowired
RedisUtil
redisUtil
;
@GetMapping
(
"code/mgt"
)
public
String
viewCodeMgt
(
@RequestParam
String
memberId
,
ModelMap
mmap
)
{
mmap
.
put
(
"memberId"
,
memberId
);
return
prefix
+
"/code_mgt"
;
}
@ApiOperation
(
value
=
"会员码:管理"
)
@RequiresPermissions
(
"adam:member:code:mgt:list"
)
@Log
(
title
=
"会员管理:会员码:管理"
,
businessType
=
BusinessType
.
LIST
)
@PostMapping
(
"code/mgt/list"
)
@ResponseBody
public
TableDataInfo
listCodeMgt
(
@RequestParam
String
memberId
)
{
// TODO: 2021/9/23 码生成记录
return
getDataTable
(
null
);
}
@GetMapping
(
"code/view"
)
public
String
viewCode
(
@RequestParam
String
memberId
,
@RequestParam
String
batchNo
,
ModelMap
mmap
)
{
mmap
.
put
(
"memberId"
,
memberId
);
mmap
.
put
(
"batchNo"
,
batchNo
);
return
prefix
+
"/code"
;
}
@ApiOperation
(
value
=
"会员码:列表"
)
@RequiresPermissions
(
"adam:member:code:list"
)
@Log
(
title
=
"会员管理:会员码:列表"
,
businessType
=
BusinessType
.
LIST
)
@PostMapping
(
"code/list"
)
@ResponseBody
public
TableDataInfo
listCode
(
AdamMemberCodeListParam
parameter
)
{
return
getDataTable
(
codeListQuery
(
parameter
));
}
private
List
<
AdamMemberCode
>
codeListQuery
(
AdamMemberCodeListParam
parameter
)
{
LambdaQueryWrapper
<
AdamMemberCode
>
queryWrapper
=
Wrappers
.
lambdaQuery
(
AdamMemberCode
.
class
).
orderByDesc
(
AdamMemberCode:
:
getCreatedAt
);
queryWrapper
.
eq
(
AdamMemberCode:
:
getMemberId
,
parameter
.
getMemberId
());
queryWrapper
.
eq
(
AdamMemberCode:
:
getType
,
2
);
queryWrapper
.
ne
(
AdamMemberCode:
:
getState
,
2
);
if
(
null
!=
parameter
.
getState
())
{
queryWrapper
.
eq
(
AdamMemberCode:
:
getState
,
parameter
.
getState
());
}
queryWrapper
.
select
(
AdamMemberCode:
:
getCode
,
AdamMemberCode:
:
getState
,
AdamMemberCode:
:
getOperator
,
AdamMemberCode:
:
getCreatedAt
,
AdamMemberCode:
:
getValidity
,
AdamMemberCode:
:
getEffectAt
,
AdamMemberCode:
:
getExpireAt
,
AdamMemberCode:
:
getUseOrderNo
,
AdamMemberCode:
:
getUseUid
,
AdamMemberCode:
:
getUseAt
);
queryWrapper
.
orderByDesc
(
AdamMemberCode:
:
getMemberNo
);
return
adamMemberCodeAdminService
.
list
(
queryWrapper
);
}
@ApiOperation
(
value
=
"会员码:导出"
)
@RequiresPermissions
(
"adam:member:code:export"
)
@Log
(
title
=
"会员管理:会员码:导出"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"code/export"
)
@ResponseBody
public
AjaxResult
exportCode
(
AdamMemberCodeListParam
parameter
)
{
List
<
AdamMemberCode
>
list
=
codeListQuery
(
parameter
);
ExcelUtil
<
AdamMemberCodeExcelDto
>
excelUtil
=
new
ExcelUtil
<>(
AdamMemberCodeExcelDto
.
class
);
List
<
AdamMemberCodeExcelDto
>
excelList
=
new
ArrayList
<>();
list
.
forEach
(
r
->
{
excelList
.
add
(
AdamMemberCodeExcelDto
.
getNew
().
copy
(
r
));
});
return
excelUtil
.
exportExcel
(
excelList
,
"会员码数据"
);
}
@ApiOperation
(
value
=
"会员码:生成"
)
@RequiresPermissions
(
"adam:member:code:gen"
)
@Log
(
title
=
"会员管理:会员码:生成"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
(
"code/gen"
)
@ResponseBody
public
AjaxResult
genCode
(
@Validated
AdamMemberCodeGenParam
parameter
)
{
int
count
=
adamMemberPriceAdminService
.
count
(
Wrappers
.
lambdaQuery
(
AdamMemberPrice
.
class
)
.
eq
(
AdamMemberPrice:
:
getMemberPriceId
,
parameter
.
getMemberPriceId
())
.
eq
(
AdamMemberPrice:
:
getMemberId
,
parameter
.
getMemberId
())
.
eq
(
AdamMemberPrice:
:
getState
,
1
)
);
if
(
count
<=
0
)
{
logger
.
warn
(
"会员卡ID/价格ID无效[{}]"
,
parameter
);
return
this
.
error
(
"会员卡ID/价格ID无效"
);
}
return
this
.
toAjax
(
adamMemberCodeAdminService
.
createGiftCode
(
parameter
));
}
@RequiresPermissions
(
"adam:member:code:invalid"
)
@Log
(
title
=
"会员管理:会员码:失效"
,
businessType
=
BusinessType
.
UPDATE
)
@PostMapping
(
"invalid_code"
)
@ResponseBody
public
AjaxResult
invalid
(
AdamMemberCodeOptParam
optParam
)
{
return
toAjax
(
this
.
invalidRecoverCode
(
optParam
,
4
));
}
/**
* 失效|退回会员兑换码
*
* @param optParam AdamMemberCodeOptParam
* @param state 状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]
* @return boolean
*/
private
boolean
invalidRecoverCode
(
AdamMemberCodeOptParam
optParam
,
int
state
)
{
String
loginName
=
ShiroUtils
.
getLoginName
();
LocalDateTime
now
=
LocalDateTime
.
now
();
logger
.
info
(
"by:{},optParam:{},state:{}"
,
loginName
,
optParam
,
state
);
int
beforeState
=
state
==
4
?
0
:
(
state
==
5
?
1
:
-
1
);
ArrayList
<
String
>
updateCodeList
=
CollectionUtil
.
arrayListString
();
optParam
.
getCodes
().
forEach
(
r
->
{
String
key
=
AdamRedisConst
.
INFO_MEMBER_CODE
.
concat
(
r
);
AdamMemberCodeVo
vo
=
(
AdamMemberCodeVo
)
redisUtil
.
get
(
key
);
if
(
null
!=
vo
&&
vo
.
getState
()
==
beforeState
)
{
redisUtil
.
del
(
key
);
updateCodeList
.
add
(
vo
.
getCode
());
}
});
if
(!
CollectionUtils
.
isEmpty
(
updateCodeList
))
{
LambdaUpdateWrapper
<
AdamMemberCode
>
memberCodeUpdateWrapper
=
Wrappers
.
lambdaUpdate
(
AdamMemberCode
.
class
);
memberCodeUpdateWrapper
.
eq
(
AdamMemberCode:
:
getMemberId
,
optParam
.
getMemberId
());
memberCodeUpdateWrapper
.
eq
(
AdamMemberCode:
:
getState
,
beforeState
);
memberCodeUpdateWrapper
.
in
(
AdamMemberCode:
:
getCode
,
updateCodeList
);
memberCodeUpdateWrapper
.
set
(
AdamMemberCode:
:
getState
,
state
);
memberCodeUpdateWrapper
.
set
(
AdamMemberCode:
:
getOperator
,
loginName
);
memberCodeUpdateWrapper
.
set
(
AdamMemberCode:
:
getUpdatedAt
,
now
);
return
adamMemberCodeAdminService
.
update
(
memberCodeUpdateWrapper
);
}
return
false
;
}
@RequiresPermissions
(
"adam:member:code:recover"
)
@Log
(
title
=
"会员管理:会员码:退回"
,
businessType
=
BusinessType
.
UPDATE
)
@PostMapping
(
"recover_code"
)
@ResponseBody
public
AjaxResult
recover
(
AdamMemberCodeOptParam
optParam
)
{
return
toAjax
(
this
.
invalidRecoverCode
(
optParam
,
5
));
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/kylin/ReportPerformanceController.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
kylin
;
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.enums.BusinessType
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto
;
import
com.liquidnet.service.kylin.dto.param.PerformancePartnerVo
;
import
com.liquidnet.service.kylin.service.IReportPerformanceService
;
import
com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.ModelMap
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.time.LocalDate
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ReportPerformanceController
* @Package com.liquidnet.client.admin.web.controller.zhengzai.kylin
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 11:33
*/
@Slf4j
@Controller
@RequestMapping
(
"/kylin/report"
)
public
class
ReportPerformanceController
extends
BaseController
{
private
String
prefix
=
"zhengzai/kylin/report"
;
@Autowired
private
IReportPerformanceService
reportPerformanceService
;
@Autowired
private
IKylinPerformancesAdminService
kylinPerformancesAdminService
;
@Autowired
private
MongoTemplate
mongoTemplate
;
// @RequiresPermissions("kylin:report:getPerformanceData:view")
@GetMapping
(
"/getPerformanceData"
)
public
String
getPerformanceDataView
(
String
performanceId
,
ModelMap
mmap
)
{
mmap
.
put
(
"currentDate"
,
LocalDate
.
now
());
mmap
.
put
(
"performanceId"
,
""
);
return
prefix
+
"/performanceData"
;
}
/**
* 查询演出列表
*/
@Log
(
title
=
"演出报表"
,
businessType
=
BusinessType
.
LIST
)
@RequiresPermissions
(
"kylin:report:getPerformanceData:list"
)
@PostMapping
(
"/getPerformanceData/list"
)
@ResponseBody
public
AjaxResult
provincelist
(
@RequestParam
(
value
=
"performanceId"
)
@Validated
String
performanceId
,
ModelMap
mmap
)
{
//获取演出详情
// KylinPerformanceMisVo kylinPerformanceMisVo = kylinPerformancesAdminService.performanceDetails(performanceId);
PerformancePartnerVo
performanceData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
if
(
StringUtil
.
isNull
(
performanceData
)||
StringUtil
.
isNull
(
performanceData
.
getPerformancesId
())){
return
AjaxResult
.
error
(
"演出Id:"
+
performanceId
+
"对应演出不存在!"
,
performanceId
);
}
HashMap
<
String
,
Object
>
hashMap
=
new
HashMap
();
log
.
info
(
"ReportPerformanceController.getPerformanceData performanceId:{}"
,
performanceId
);
//获取按省统计数据
List
<
PerformanceProvinceDataDto
>
provinceDataList
=
reportPerformanceService
.
getProvinceDataList
(
performanceId
);
List
<
PerformanceCityDataDto
>
cityDataList
=
reportPerformanceService
.
getCityDataList
(
performanceId
);
List
<
PerformanceAgeDataDto
>
ageDataList
=
reportPerformanceService
.
getAgeDataList
(
performanceId
);
List
<
PerformanceSexDataDto
>
sexDataList
=
reportPerformanceService
.
getSexDataList
(
performanceId
);
//按年龄
// PerformanceAgeDataDto ageDataDto = PerformanceAgeDataDto.getNew();
// ageDataDto.setAge("19");
// ageDataDto.setTotalNumber(34555);
// ageDataList.add(ageDataDto);
// ageDataDto = PerformanceAgeDataDto.getNew();
// ageDataDto.setAge("20");
// ageDataDto.setTotalNumber(33444);
// ageDataList.add(ageDataDto);
//
// //按性别
// PerformanceSexDataDto sexDataDto = PerformanceSexDataDto.getNew();
// sexDataDto.setSex("男");
// sexDataDto.setTotalNumber(12345);
// sexDataList.add(sexDataDto);
// sexDataDto = PerformanceSexDataDto.getNew();
// sexDataDto.setSex("女");
// sexDataDto.setTotalNumber(99885);
// sexDataList.add(sexDataDto);
String
perTitle
=
performanceData
.
getTitle
();
hashMap
.
put
(
"currentDate"
,
LocalDate
.
now
());
hashMap
.
put
(
"performanceId"
,
performanceId
);
hashMap
.
put
(
"perTitle"
,
perTitle
);
hashMap
.
put
(
"provinceDataList"
,
provinceDataList
);
hashMap
.
put
(
"cityDataList"
,
cityDataList
);
hashMap
.
put
(
"ageDataList"
,
ageDataList
);
hashMap
.
put
(
"sexDataList"
,
sexDataList
);
return
AjaxResult
.
success
(
hashMap
);
}
// /**
// * 查询演出列表
// */
//// @Log(title = "演出报表", businessType = BusinessType.LIST)
//// @RequiresPermissions("kylin:report:getPerformanceData:list")
// @PostMapping("/getPerformanceData/list")
// public String getPerformanceData(@RequestParam(value = "performanceId") @Validated String performanceId, ModelMap mmap)
// {
// log.info("ReportPerformanceController.getPerformanceData performanceId:{}",performanceId);
// //获取按省统计数据
// List<PerformanceProvinceDataDto> provinceDataList= reportPerformanceService.getProvinceDataList(performanceId);
// //
// List<PerformanceCityDataDto> cityDataList= reportPerformanceService.getCityDataList(performanceId);
// List<PerformanceAgeDataDto> ageDataList= reportPerformanceService.getAgeDataList(performanceId);
// List<PerformanceSexDataDto> sexDataDtos= reportPerformanceService.getSexDataList(performanceId);
//
// mmap.put("currentDate", LocalDate.now());
// mmap.put("performanceId", performanceId);
// mmap.put("provinceDataList",provinceDataList);
// mmap.put("cityDataList",cityDataList);
// mmap.put("ageDataList",ageDataList);
// mmap.put("sexDataDtos",sexDataDtos);
// return prefix + "/performanceData";
// }
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/member/code/code_mgt.html
0 → 100644
View file @
e8d899ad
<!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('会员码管理')"
/>
<th:block
th:include=
"include :: select2-css"
/>
</head>
<body
class=
"gray-bg"
>
<div
class=
"container-div"
>
<div
class=
"row"
>
<div
class=
"col-sm-12 search-collapse"
>
<form
id=
"data-form"
>
<div
class=
"select-list"
>
<ul>
<input
type=
"text"
name=
"memberId"
hidden=
"hidden"
th:value=
"${memberId}"
readonly
/>
<li>
状态:
<select
name=
"state"
th:with=
"type=${@dict.getType('zhengzai_coupon_code_state')}"
>
<option
value=
""
>
所有
</option>
<option
th:each=
"dict : ${type}"
th:text=
"${dict.dictLabel}"
th:value=
"${dict.dictValue}"
></option>
</select>
</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=
"resetPre()"
><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-warning"
onclick=
"$.table.exportExcel()"
shiro:hasPermission=
"adam:member:export:code"
>
<i
class=
"fa fa-download"
></i>
导出
</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
class=
"col-sm-12 select-table table-striped"
>
<table
id=
"bootstrap-table"
></table>
</div>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: select2-js"
/>
<script
th:inline=
"javascript"
>
var
invalidFlag
=
[[
$
{@
permission
.
hasPermi
(
'adam:member:invalid:code'
)}]];
var
recoverFlag
=
[[
$
{@
permission
.
hasPermi
(
'adam:member:recover:code'
)}]];
var
datas
=
[[
$
{@
dict
.
getType
(
'zhengzai_coupon_code_state'
)}]];
// 样例:[{"dictLabel":"未支付","dictValue":"0"},{"dictLabel":"已支付","dictValue":"1"},{"dictLabel":"已关闭","dictValue":"2"}]
var
memberId
=
[[
$
{
memberId
}]];
var
prefix
=
ctx
+
"adam/member"
;
$
(
function
()
{
var
options
=
{
url
:
prefix
+
"/list_code"
,
exportUrl
:
prefix
+
"/export_code"
,
detailUrl
:
ctx
+
"adam/order/orderList/detail/{id}"
,
sortName
:
"code"
,
sortOrder
:
"asc"
,
modalName
:
"会员码"
,
columns
:
[{
checkbox
:
true
},
{
field
:
'code'
,
title
:
'会员码'
},
{
field
:
'expireAt'
,
title
:
'到期时间'
},
{
field
:
'useAt'
,
title
:
'使用时间'
},
{
field
:
'useOrderNo'
,
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'
,
title
:
'状态'
,
align
:
'center'
,
formatter
:
function
(
value
,
row
,
index
)
{
return
$
.
table
.
selectDictLabel
(
datas
,
value
);
}
},
{
title
:
'操作'
,
align
:
'center'
,
formatter
:
function
(
value
,
row
,
index
)
{
var
actions
=
[];
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);
});
function resetPre() {
$.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>
</body>
</html>
\ No newline at end of file
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/adam/member/info.html
View file @
e8d899ad
...
@@ -322,7 +322,17 @@
...
@@ -322,7 +322,17 @@
<ul
th:each=
"mrc:${couponMemberDtoListMap.get(mr.mrightsId)}"
>
<ul
th:each=
"mrc:${couponMemberDtoListMap.get(mr.mrightsId)}"
>
<div
class=
"member-coupes-inner"
>
<div
class=
"member-coupes-inner"
>
<div
class=
"member-coupes-detail"
>
<div
class=
"member-coupes-detail"
>
<input
type=
"hidden"
th:value=
"${mrc.mcouponId}"
/>
<input
type=
"hidden"
id=
"mrcmcouponId"
th:value=
"${mrc.mcouponId}"
/>
<input
type=
"hidden"
id=
"mrccouponId"
th:value=
"${mrc.couponId}"
/>
<input
type=
"hidden"
id=
"mrcbusiType"
th:value=
"${mrc.busiType}"
/>
<input
type=
"hidden"
id=
"mrccouType"
th:value=
"${mrc.couType}"
/>
<input
type=
"hidden"
id=
"mrctitle"
th:value=
"${mrc.title}"
/>
<input
type=
"hidden"
id=
"mrceventAmt"
th:value=
"${mrc.eventAmt}"
/>
<input
type=
"hidden"
id=
"mrcdays"
th:value=
"${memberPrice.days}"
/>
<input
type=
"hidden"
id=
"mrvalFace"
th:value=
"${mrc.valFace}"
/>
<input
type=
"hidden"
id=
"mrcoverlay"
th:value=
"${mrc.overlay}"
/>
<input
type=
"hidden"
id=
"mrcvalMinus"
th:value=
"${mrc.valMinus}"
/>
<input
type=
"hidden"
id=
"mrcvalOver"
th:value=
"${mrc.valOver}"
/>
<span
class=
"member-coupes-mcouponId"
th:text=
"${mrc.mcouponId}"
hidden
></span>
<span
class=
"member-coupes-mcouponId"
th:text=
"${mrc.mcouponId}"
hidden
></span>
<span
class=
"member-coupes-busiType"
th:if=
"${mrc.busiType == 0}"
>
全场
</span>
<span
class=
"member-coupes-busiType"
th:if=
"${mrc.busiType == 0}"
>
全场
</span>
<span
class=
"member-coupes-busiType"
th:if=
"${mrc.busiType == 1}"
>
演出
</span>
<span
class=
"member-coupes-busiType"
th:if=
"${mrc.busiType == 1}"
>
演出
</span>
...
@@ -455,21 +465,21 @@
...
@@ -455,21 +465,21 @@
<input
type=
"text"
id=
"eventAmt"
value=
"1"
/>
张
<input
type=
"text"
id=
"eventAmt"
value=
"1"
/>
张
</div>
</div>
</div>
</div>
<div
class=
"form-group alltrack_limit"
>
<!-- <div class="form-group alltrack_limit">--
>
<label
class=
"col-sm-2 control-label"
>
使用限制:
</label
>
<!-- <label class="col-sm-2 control-label">使用限制:</label>--
>
<div
class=
"col-sm-10"
>
<!-- <div class="col-sm-10">--
>
<div
class=
"radio-box"
>
<!-- <div class="radio-box">--
>
<label
for=
"radio1"
onclick=
"limitType(this)"
>
<!-- <label for="radio1" onclick="limitType(this)">--
>
<input
type=
"radio"
id=
"limittypr1"
name=
"limit_type"
value=
"0"
/>
叠加
<!-- <input type="radio" id="limittypr1" name="limit_type" value="0"/> 叠加-->
</label
>
<!-- </label>--
>
</div
>
<!-- </div>--
>
<div
class=
"radio-box"
>
<!-- <div class="radio-box">--
>
<label
for=
"radio2"
onclick=
"limitType(this)"
>
<!-- <label for="radio2" onclick="limitType(this)">--
>
<input
type=
"radio"
id=
"limittypr2"
name=
"limit_type"
value=
"1"
/>
限制
<!-- <input type="radio" id="limittypr2" name="limit_type" value="1"/> 限制-->
</label
>
<!-- </label>--
>
</div
>
<!-- </div>--
>
</div
>
<!-- </div>--
>
</div
>
<!-- </div>--
>
<div
class=
"pop_btns"
>
<div
class=
"pop_btns"
>
<div
class=
"confirm_btn"
onclick=
"popBtn(1)"
>
确认
</div>
<div
class=
"confirm_btn"
onclick=
"popBtn(1)"
>
确认
</div>
<div
class=
"confirm_btn confirm_cancel"
onclick=
"popBtn(0)"
>
取消
</div>
<div
class=
"confirm_btn confirm_cancel"
onclick=
"popBtn(0)"
>
取消
</div>
...
@@ -570,16 +580,19 @@
...
@@ -570,16 +580,19 @@
label
:
"标注"
,
label
:
"标注"
,
memberId
:
member
.
memberId
,
memberId
:
member
.
memberId
,
mrightsId
:
memberRightsList
[
itemIndex
].
mrightsId
?
memberRightsList
[
itemIndex
].
mrightsId
:
'string'
,
mrightsId
:
memberRightsList
[
itemIndex
].
mrightsId
?
memberRightsList
[
itemIndex
].
mrightsId
:
'string'
,
overlay
:
overlay
?
overlay
:
0
,
// overlay: overlay ? overlay : 0,
overlay
:
1
,
title
:
coupeTitle
,
title
:
coupeTitle
,
valFace
:
valFace
?
valFace
:
1
,
valFace
:
valFace
?
valFace
:
1
,
valOver
:
valOver
?
valOver
:
1
,
valOver
:
valOver
?
valOver
:
1
,
valMinus
:
valMinus
?
valMinus
:
1
,
valMinus
:
valMinus
?
valMinus
:
1
,
state
:
1
state
:
1
};
};
console
.
log
(
MembercoupenData
);
$
.
operate
.
saveModalBody
(
prefix
+
"/edit_coupon"
,
JSON
.
stringify
(
MembercoupenData
),
function
()
{
$
.
operate
.
saveModalBody
(
prefix
+
"/edit_coupon"
,
JSON
.
stringify
(
MembercoupenData
)
);
$
(
'.coupe_pop'
).
hide
(
);
$
(
'.cover_pop'
).
hide
();
$
(
'.cover_pop'
).
hide
();
window
.
location
.
reload
();
});
}
}
}
}
...
@@ -613,6 +626,7 @@
...
@@ -613,6 +626,7 @@
}
}
}
}
// 权益图片上传
function
icon
(
obj
,
num
)
{
function
icon
(
obj
,
num
)
{
$
(
'.coverFunNum'
).
val
(
num
);
$
(
'.coverFunNum'
).
val
(
num
);
var
addIconIndex
=
$
(
'.vip_icon'
).
index
(
$
(
obj
));
var
addIconIndex
=
$
(
'.vip_icon'
).
index
(
$
(
obj
));
...
@@ -620,29 +634,127 @@
...
@@ -620,29 +634,127 @@
$
(
'.cover_pop'
).
show
();
$
(
'.cover_pop'
).
show
();
}
}
// 删除券
function
delCoupes
(
obj
)
{
function
delCoupes
(
obj
)
{
if
(
$
(
obj
).
parents
(
'.member-coupes-item'
).
find
(
'.member-coupes-inner'
).
length
>
1
)
{
var
thisVal
=
$
(
obj
).
parents
(
'ul'
);
$
(
obj
).
parents
(
'.member-coupes-inner'
).
remove
();
var
busiType
=
Number
(
thisVal
.
find
(
'#mrcbusiType'
).
val
());
var
couType
=
Number
(
thisVal
.
find
(
'#mrccouType'
).
val
());
var
couponId
=
thisVal
.
find
(
'#mrccouponId'
).
val
();
var
mrightsId
=
thisVal
.
find
(
'#mrcmcouponId'
).
val
();
var
eventAmt
=
thisVal
.
find
(
'#mrceventAmt'
).
val
();
var
memberId
=
member
.
memberId
;
// var overlay = thisVal.find('#mrcoverlay').val();
var
titleDel
=
thisVal
.
find
(
'#mrctitle'
).
val
();
var
valFace
=
thisVal
.
find
(
'#mrvalFace'
).
val
();
var
valOver
=
thisVal
.
find
(
'#mrcvalOver'
).
val
();
var
valMinus
=
thisVal
.
find
(
'#mrcvalMinus'
).
val
();
// var mrightsId =
if
(
busiType
==
0
||
busiType
==
1
||
busiType
==
3
)
{
var
couponRuleList
=
[{
useScope
:
100
,
busiName
:
'全部演出'
}]
}
else
{
var
couponRuleList
=
[{
useScope
:
100
,
busiName
:
'全部商品'
}]
}
}
var
MembercoupenData
=
{
busiType
:
busiType
,
couType
:
couType
==
3
?
101
:
couType
,
couponId
:
couponId
,
couponRuleList
:
couponRuleList
,
eventAmt
:
eventAmt
,
label
:
"标注"
,
memberId
:
memberId
,
mrightsId
:
mrightsId
,
// overlay: overlay ? overlay : 0,
overlay
:
1
,
title
:
titleDel
,
valFace
:
valFace
?
valFace
:
1
,
valOver
:
valOver
?
valOver
:
1
,
valMinus
:
valMinus
?
valMinus
:
1
,
state
:
2
};
$
.
operate
.
saveModalBody
(
prefix
+
"/edit_coupon"
,
JSON
.
stringify
(
MembercoupenData
));
thisVal
.
remove
();
}
}
// 添加券
function
addCoupes
(
obj
)
{
function
addCoupes
(
obj
)
{
var
addItemIndex
=
$
(
'.member-coupes'
).
index
(
$
(
obj
));
var
addItemIndex
=
$
(
'.member-coupes'
).
index
(
$
(
obj
));
$
(
'.parentsIndex'
).
val
(
addItemIndex
);
$
(
'.parentsIndex'
).
val
(
addItemIndex
);
$
(
'.coupe_pop'
).
show
();
$
(
'.coupe_pop'
).
show
();
}
}
// 编辑券
function
editCoupes
(
obj
,
dataObj
)
{
function
editCoupes
(
obj
,
dataObj
)
{
var
coupenObj
=
dataObj
;
var
coupenObj
=
dataObj
;
$
(
'.coupe_pop'
).
show
();
$
(
'.coupe_pop'
).
show
();
}
}
// 添加权益
function
addColumn
(
obj
)
{
function
addColumn
(
obj
)
{
let
appendDom
=
$
(
obj
).
parents
(
'.interests_column'
);
let
appendDom
=
$
(
obj
).
parents
(
'.interests_column
:last
'
);
appendDom
.
append
(
appendDom
.
find
(
'.interests_item'
).
prop
(
'outerHTML'
));
appendDom
.
append
(
appendDom
.
find
(
'.interests_item'
).
prop
(
'outerHTML'
));
let
newDom
=
$
(
'.interests_item:last'
);
newDom
.
find
(
'.interestsIcon'
).
attr
(
'src'
,
''
);
newDom
.
find
(
'#interestsTitle'
).
val
(
''
);
newDom
.
find
(
'#interestsSubTitle'
).
val
(
''
);
newDom
.
find
(
'#interestsDesc'
).
val
(
''
);
newDom
.
find
(
'.member-coupes-item'
).
html
(
''
);
// $.operate.save(prefix + "/create", data);
// $.operate.save(prefix + "/create", data);
}
}
// 保存权益/删除权益
function
saveColumn
(
obj
,
num
)
{
var
objDom
=
$
(
obj
).
parent
().
parent
();
var
domIndex
=
$
(
'.interests_item'
).
index
(
objDom
);
var
postData
=
[];
postData
.
push
({
"name"
:
"cover"
,
"value"
:
objDom
.
find
(
'#interestsIcon'
).
attr
(
'src'
)
},
{
"name"
:
"detail"
,
"value"
:
objDom
.
find
(
'#interestsDesc'
).
val
()
},
{
"name"
:
"memberId"
,
"value"
:
member
.
memberId
},
{
"name"
:
"seqNo"
,
"value"
:
domIndex
},
{
"name"
:
"state"
,
"value"
:
num
},
{
"name"
:
"subTitle"
,
"value"
:
objDom
.
find
(
'#interestsSubTitle'
).
val
()
},
{
"name"
:
"title"
,
"value"
:
objDom
.
find
(
'#interestsTitle'
).
val
()
});
if
(
num
==
2
)
{
if
(
objDom
.
parent
().
prop
(
"className"
).
indexOf
(
'interests_inner'
)
!=
-
1
)
{
postData
.
push
({
"name"
:
"mrightsId"
,
"value"
:
memberRightsList
[
domIndex
].
mrightsId
});
objDom
.
remove
();
$
.
operate
.
saveModal
(
prefix
+
"/edit_rights"
,
postData
,
function
()
{
window
.
location
.
reload
();
});
}
else
{
objDom
.
remove
();
}
}
else
{
if
(
memberRightsList
[
domIndex
])
{
postData
.
push
({
"name"
:
"mrightsId"
,
"value"
:
memberRightsList
[
domIndex
].
mrightsId
});
}
$
.
operate
.
saveModal
(
prefix
+
"/edit_rights"
,
postData
,
function
()
{
window
.
location
.
reload
();
});
}
}
/*基础信息-修改*/
/*基础信息-修改*/
$
(
"#form-member-edit"
).
validate
({
$
(
"#form-member-edit"
).
validate
({
onkeyup
:
false
,
onkeyup
:
false
,
...
@@ -683,7 +795,7 @@
...
@@ -683,7 +795,7 @@
required
:
"请选择是否限购"
,
required
:
"请选择是否限购"
,
},
},
"onsale"
:
{
"onsale"
:
{
required
:
"请选择是否
限购
"
,
required
:
"请选择是否
开售
"
,
},
},
},
},
focusCleanup
:
true
focusCleanup
:
true
...
@@ -708,45 +820,7 @@
...
@@ -708,45 +820,7 @@
$
.
operate
.
saveModal
(
prefix
+
"/edit_price"
,
MemberShipData
);
$
.
operate
.
saveModal
(
prefix
+
"/edit_price"
,
MemberShipData
);
}
}
// 保存权益
function
saveColumn
(
obj
,
num
)
{
var
objDom
=
$
(
obj
).
parent
().
parent
();
var
domIndex
=
$
(
'.interests_item'
).
index
(
objDom
);
var
postData
=
[];
postData
.
push
({
"name"
:
"cover"
,
"value"
:
objDom
.
find
(
'#interestsIcon'
).
attr
(
'src'
)
},
{
"name"
:
"detail"
,
"value"
:
objDom
.
find
(
'#interestsDesc'
).
val
()
},
{
"name"
:
"memberId"
,
"value"
:
member
.
memberId
},
{
"name"
:
"seqNo"
,
"value"
:
domIndex
},
{
"name"
:
"state"
,
"value"
:
num
},
{
"name"
:
"subTitle"
,
"value"
:
objDom
.
find
(
'#interestsSubTitle'
).
val
()
},
{
"name"
:
"title"
,
"value"
:
objDom
.
find
(
'#interestsTitle'
).
val
()
});
if
(
num
==
2
)
{
postData
.
push
({
"name"
:
"mrightsId"
,
"value"
:
memberRightsList
[
domIndex
].
mrightsId
});
objDom
.
remove
();
}
else
{
if
(
memberRightsList
[
domIndex
])
{
postData
.
push
({
"name"
:
"mrightsId"
,
"value"
:
memberRightsList
[
domIndex
].
mrightsId
});
}
}
console
.
log
(
postData
)
$
.
operate
.
saveModal
(
prefix
+
"/edit_rights"
,
postData
);
}
</script>
</script>
</body>
</body>
</html>
</html>
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/kylin/report/performanceData.html
0 → 100644
View file @
e8d899ad
<!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=
"row border-bottom white-bg dashboard-header"
>
<div
class=
"col-sm-12 search-collapse"
>
<form
id=
"formId"
>
<div
class=
"select-list"
>
<ul>
<li>
<label>
演出id:
</label>
<input
th:field=
"${performanceId}"
type=
"text"
id=
"performanceId"
placeholder=
"演出ID"
name=
"performanceId"
required
/>
</li>
<li>
<a
class=
"btn btn-primary btn-rounded btn-sm"
onclick=
"submit()"
><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>
<form
id=
"formId2"
>
<div
class=
"select-list"
style=
"text-align: right"
>
<ul>
<li>
<label>
演出id:
</label>
<input
type=
"text"
name=
"perId"
id =
"perId"
readonly
/>
</li>
<li>
<label>
演出名称:
</label>
<input
type=
"text"
name=
"perName"
id =
"perTitle"
readonly
/>
</li>
</ul>
</div>
</form>
</div>
</div>
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"row"
>
<div
class=
"col-sm-12"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
按省份统计购票数量
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
</a>
<a
class=
"dropdown-toggle"
data-toggle=
"dropdown"
href=
"#"
>
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
选项1
</a>
</li>
<li><a
href=
"#"
>
选项2
</a>
</li>
</ul>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<div
class=
"echarts"
id=
"provinceDataChart"
></div>
</div>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-12"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
按城市统计购票数量
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
</a>
<a
class=
"dropdown-toggle"
data-toggle=
"dropdown"
href=
"#"
>
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
选项1
</a>
</li>
<li><a
href=
"#"
>
选项2
</a>
</li>
</ul>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<div
class=
"echarts"
id=
"cityDataChart"
></div>
</div>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-12"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
按年龄统计购票数量
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
</a>
<a
class=
"dropdown-toggle"
data-toggle=
"dropdown"
href=
"#"
>
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
选项1
</a>
</li>
<li><a
href=
"#"
>
选项2
</a>
</li>
</ul>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<div
class=
"echarts"
id=
"ageDataChart"
></div>
</div>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-12"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
按性别统计购票数量
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
</a>
<a
class=
"dropdown-toggle"
data-toggle=
"dropdown"
href=
"#"
>
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
选项1
</a>
</li>
<li><a
href=
"#"
>
选项2
</a>
</li>
</ul>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<div
class=
"echarts"
id=
"sexDataChart"
></div>
</div>
</div>
</div>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: echarts-js"
/>
<script
type=
"text/javascript"
>
var
prefix
=
ctx
+
"kylin/report/getPerformanceData"
;
var
selectListUrl
=
prefix
+
"/list"
;
function
submit
()
{
var
performanceId
=
$
(
"#performanceId"
).
val
();
var
param
=
{
performanceId
:
performanceId
}
if
(
performanceId
==
""
)
{
alert
(
"演出ID不能为空"
);
}
else
{
// $.post(selectListUrl,param,function (res) {
// console.log(res.msg);
// initProvinceData(res.data);
// });
$
.
operate
.
post
(
selectListUrl
,
param
,
function
(
res
)
{
if
(
res
==
null
){
alert
(
"演出查询异常!"
);
return
;
}
if
(
res
.
code
!=
null
&&
res
.
code
==
0
){
debugger
;
initProvinceData
(
res
.
data
);
initCityData
(
res
.
data
);
initAgeData
(
res
.
data
);
initSexData
(
res
.
data
);
$
(
"#perId"
).
attr
(
"value"
,
res
.
data
.
performanceId
);
$
(
"#perTitle"
).
attr
(
"value"
,
res
.
data
.
perTitle
);
}
else
{
// alert(res.msg);
}
});
}
}
function
submit2
(){
var
form
=
$
(
"#formId"
);
console
.
log
(
selectListUrl
);
form
.
action
=
selectListUrl
;
form
.
method
=
"post"
;
form
.
submit
();
// if ($.validate.form()) {
// var form = $("#formId");
// console.log(selectListUrl);
// form.action = selectListUrl;
// form.submit();
// }
}
var
validate
=
$
(
"#formId"
).
validate
({
onkeyup
:
false
,
rules
:{
performanceId
:{
required
:
true
}
},
messages
:{
performanceId
:
{
required
:
"演出id不能为空!"
}
}
});
//按省份统计
function
initProvinceData
(
data
){
let
settingObj
=
data
.
provinceDataList
;
// 对象转化为数组
let
settingArr
=
Object
.
keys
(
settingObj
).
map
(
key
=>
{
return
settingObj
[
key
];
})
// 给数组附键值
let
value
=
settingArr
.
map
(
item
=>
{
return
item
.
totalNumber
;
})
// console.log("value.length==="+value.length);
// console.log("value[0]==="+value[0]);
let
name
=
settingArr
.
map
(
item
=>
{
return
item
.
province
;
})
// console.log("name.length==="+name.length);
// console.log("name[0]==="+name[0]);
var
barChart
=
echarts
.
init
(
document
.
getElementById
(
"provinceDataChart"
));
var
baroption
=
{
title
:
{
text
:
'按省份统计购票数量'
,
x
:
'center'
},
toolbox
:
{
//可视化的工具箱
show
:
true
,
feature
:
{
dataView
:
{
//数据视图
show
:
true
},
restore
:
{
//重置
show
:
true
},
dataZoom
:
{
//数据缩放视图
show
:
true
},
saveAsImage
:
{
//保存图片
show
:
true
},
magicType
:
{
//动态类型切换
type
:
[
'bar'
,
'line'
]
}
}
},
tooltip
:
{
trigger
:
'axis'
},
legend
:
{
data
:[
'购票数量'
]
},
grid
:{
x
:
30
,
x2
:
40
,
y2
:
24
},
calculable
:
true
,
xAxis
:
[
{
type
:
'category'
,
// data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
data
:
name
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'开票量'
,
type
:
'bar'
,
// data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
data
:
value
,
markPoint
:
{
data
:
[
{
type
:
'max'
,
name
:
'最大值'
},
{
type
:
'min'
,
name
:
'最小值'
}
]
},
markLine
:
{
data
:
[
{
type
:
'average'
,
name
:
'平均值'
}
]
},
itemStyle
:
{
normal
:
{
//这里是重点
color
:
function
(
params
)
{
//注意,如果颜色太少的话,后面颜色不会自动循环,最好多定义几个颜色
var
colorList
=
[
'#c23531'
,
'#2f4554'
,
'#61a0a8'
,
'#d48265'
,
'#91c7ae'
,
'#749f83'
,
'#ca8622'
];
//给大于颜色数量的柱体添加循环颜色的判断
var
index
=
params
.
dataIndex
;
if
(
params
.
dataIndex
>=
colorList
.
length
)
{
index
=
params
.
dataIndex
-
colorList
.
length
;
}
return
colorList
[
index
]
}
}
}
}
]
};
barChart
.
setOption
(
baroption
);
window
.
onresize
=
barChart
.
resize
;
}
//按城市统计
function
initCityData
(
data
){
let
settingObj
=
data
.
cityDataList
;
// 对象转化为数组
let
settingArr
=
Object
.
keys
(
settingObj
).
map
(
key
=>
{
return
settingObj
[
key
];
})
// 给数组附键值
let
value
=
settingArr
.
map
(
item
=>
{
return
item
.
totalNumber
;
})
// console.log("value.length==="+value.length);
// console.log("value[0]==="+value[0]);
let
name
=
settingArr
.
map
(
item
=>
{
return
item
.
cityName
;
})
// console.log("name.length==="+name.length);
// console.log("name[0]==="+name[0]);
var
barChart
=
echarts
.
init
(
document
.
getElementById
(
"cityDataChart"
));
var
baroption
=
{
title
:
{
text
:
'按城市统计购票数量'
,
x
:
'center'
},
toolbox
:
{
//可视化的工具箱
show
:
true
,
feature
:
{
dataView
:
{
//数据视图
show
:
true
},
restore
:
{
//重置
show
:
true
},
dataZoom
:
{
//数据缩放视图
show
:
true
},
saveAsImage
:
{
//保存图片
show
:
true
},
magicType
:
{
//动态类型切换
type
:
[
'bar'
,
'line'
]
}
}
},
tooltip
:
{
trigger
:
'axis'
},
legend
:
{
data
:[
'购票数量'
]
},
grid
:{
x
:
30
,
x2
:
40
,
y2
:
24
},
calculable
:
true
,
xAxis
:
[
{
type
:
'category'
,
// data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
data
:
name
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'开票量'
,
type
:
'bar'
,
// data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
data
:
value
,
markPoint
:
{
data
:
[
{
type
:
'max'
,
name
:
'最大值'
},
{
type
:
'min'
,
name
:
'最小值'
}
]
},
markLine
:
{
data
:
[
{
type
:
'average'
,
name
:
'平均值'
}
]
},
itemStyle
:
{
normal
:
{
//这里是重点
color
:
function
(
params
)
{
//注意,如果颜色太少的话,后面颜色不会自动循环,最好多定义几个颜色
var
colorList
=
[
'#c23531'
,
'#2f4554'
,
'#61a0a8'
,
'#d48265'
,
'#91c7ae'
,
'#749f83'
,
'#ca8622'
];
//给大于颜色数量的柱体添加循环颜色的判断
var
index
=
params
.
dataIndex
;
if
(
params
.
dataIndex
>=
colorList
.
length
)
{
index
=
params
.
dataIndex
-
colorList
.
length
;
}
return
colorList
[
index
]
}
}
}
}
]
};
barChart
.
setOption
(
baroption
);
window
.
onresize
=
barChart
.
resize
;
}
//按年龄统计
function
initAgeData
(
data
){
let
settingObj
=
data
.
ageDataList
;
// 对象转化为数组
let
settingArr
=
Object
.
keys
(
settingObj
).
map
(
key
=>
{
return
settingObj
[
key
];
})
// 给数组附键值
let
value
=
settingArr
.
map
(
item
=>
{
return
item
.
totalNumber
;
})
// console.log("value.length==="+value.length);
// console.log("value[0]==="+value[0]);
let
name
=
settingArr
.
map
(
item
=>
{
return
item
.
age
;
})
// console.log("name.length==="+name.length);
// console.log("name[0]==="+name[0]);
var
barChart
=
echarts
.
init
(
document
.
getElementById
(
"ageDataChart"
));
var
baroption
=
{
title
:
{
text
:
'按年龄统计购票数量'
,
x
:
'center'
},
toolbox
:
{
//可视化的工具箱
show
:
true
,
feature
:
{
dataView
:
{
//数据视图
show
:
true
},
restore
:
{
//重置
show
:
true
},
dataZoom
:
{
//数据缩放视图
show
:
true
},
saveAsImage
:
{
//保存图片
show
:
true
},
magicType
:
{
//动态类型切换
type
:
[
'bar'
,
'line'
]
}
}
},
tooltip
:
{
trigger
:
'axis'
},
legend
:
{
data
:[
'购票数量'
]
},
grid
:{
x
:
30
,
x2
:
40
,
y2
:
24
},
calculable
:
true
,
xAxis
:
[
{
type
:
'category'
,
data
:
name
,
minInterval
:
1
//去掉小数
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'开票量'
,
type
:
'bar'
,
// data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
data
:
value
,
markPoint
:
{
data
:
[
{
type
:
'max'
,
name
:
'最大值'
},
{
type
:
'min'
,
name
:
'最小值'
}
]
},
markLine
:
{
data
:
[
{
type
:
'average'
,
name
:
'平均值'
}
]
},
itemStyle
:
{
normal
:
{
//这里是重点
color
:
function
(
params
)
{
//注意,如果颜色太少的话,后面颜色不会自动循环,最好多定义几个颜色
var
colorList
=
[
'#c23531'
,
'#2f4554'
,
'#61a0a8'
,
'#d48265'
,
'#91c7ae'
,
'#749f83'
,
'#ca8622'
];
//给大于颜色数量的柱体添加循环颜色的判断
var
index
=
params
.
dataIndex
;
if
(
params
.
dataIndex
>=
colorList
.
length
)
{
index
=
params
.
dataIndex
-
colorList
.
length
;
}
return
colorList
[
index
]
}
}
}
}
]
};
barChart
.
setOption
(
baroption
);
window
.
onresize
=
barChart
.
resize
;
}
/**
* 按性别统计
* @param data
*/
function
initSexData
(
data
){
debugger
;
let
settingObj
=
data
.
sexDataList
;
// 对象转化为数组
let
settingArr
=
Object
.
keys
(
settingObj
).
map
(
key
=>
{
return
settingObj
[
key
];
})
// 给数组附键值
let
value
=
settingArr
.
map
(
item
=>
{
return
{
"value"
:
item
.
totalNumber
};
})
// console.log("value.length==="+value.length);
// console.log("value[0]==="+value[0].value);
let
name
=
settingArr
.
map
(
item
=>
{
return
{
"name"
:
item
.
sex
};
})
// console.log("name.length==="+name.length);
// console.log("name[0]==="+name[0].name);
// 合并数组或者对象在数组或对象前面加...,是es6的新写法,然后数组的map方法会返回数组.
let
objArr
=
value
.
map
((
value
,
index
)
=>
{
return
{
...
value
,...
name
[
index
]};
});
console
.
log
(
objArr
[
0
]);
var
pieChart
=
echarts
.
init
(
document
.
getElementById
(
"sexDataChart"
));
var
pieoption
=
{
title
:
{
text
:
'按性别统计购票数量'
,
// subtext: '纯属虚构',
x
:
'center'
},
toolbox
:
{
//可视化的工具箱
show
:
true
,
feature
:
{
dataView
:
{
//数据视图
show
:
true
},
restore
:
{
//重置
show
:
true
},
dataZoom
:
{
//数据缩放视图
show
:
true
},
saveAsImage
:
{
//保存图片
show
:
true
}
}
},
tooltip
:
{
trigger
:
'item'
,
formatter
:
"{a} <br/>{b} : {c} ({d}%)"
},
legend
:
{
orient
:
'vertical'
,
left
:
'left'
,
data
:
[{
name
:
'dde'
},{
name
:
'222'
}]
},
calculable
:
true
,
series
:
[
{
name
:
'性别'
,
type
:
'pie'
,
radius
:
'55%'
,
center
:
[
'50%'
,
'60%'
],
data
:
objArr
,
itemStyle
:
{
normal
:{
label
:{
show
:
true
,
formatter
:
"{b} :
\n
{c}
\n
({d}%)"
,
position
:
"inner"
}
}
}
}
]
};
pieChart
.
setOption
(
pieoption
);
$
(
window
).
resize
(
pieChart
.
resize
);
}
function
downloadImpByChart
(
chartId
,
name
)
{
var
url
=
getFullCanvasDataURL
(
chartId
);
var
link
=
document
.
createElement
(
'a'
);
link
.
href
=
url
;
link
.
download
=
name
+
".png"
;
link
.
click
();
};
//将图形转成base64的图片
function
getFullCanvasDataURL
(
divId
){
//将第一个画布作为基准。
var
baseCanvas
=
$
(
"#"
+
divId
).
find
(
"canvas"
).
first
()[
0
];
if
(
!
baseCanvas
){
return
false
;
};
var
width
=
baseCanvas
.
width
;
var
height
=
baseCanvas
.
height
;
var
ctx
=
baseCanvas
.
getContext
(
"2d"
);
//遍历,将后续的画布添加到在第一个上
$
(
"#"
+
divId
).
find
(
"canvas"
).
each
(
function
(
i
,
canvasObj
){
if
(
i
>
0
){
var
canvasTmp
=
$
(
canvasObj
)[
0
];
ctx
.
drawImage
(
canvasTmp
,
0
,
0
,
width
,
height
);
}
});
//获取base64位的url
return
baseCanvas
.
toDataURL
();
}
</script>
</body>
</html>
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/IAdamMemberCodeBatchAdminService.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
adam
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
public
interface
IAdamMemberCodeBatchAdminService
extends
IService
<
AdamMemberCodeBatch
>
{
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/impl/AdamMemberCodeBatchAdminServiceImpl.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
adam
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberCodeBatchAdminService
;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
import
com.liquidnet.service.adam.mapper.AdamMemberCodeBatchMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
public
class
AdamMemberCodeBatchAdminServiceImpl
extends
ServiceImpl
<
AdamMemberCodeBatchMapper
,
AdamMemberCodeBatch
>
implements
IAdamMemberCodeBatchAdminService
{
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/adam/service/impl/AdamMemberRightsAdminServiceImpl.java
View file @
e8d899ad
...
@@ -3,6 +3,7 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl;
...
@@ -3,6 +3,7 @@ package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
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.IAdamMemberRightsAdminService
;
import
com.liquidnet.client.admin.zhengzai.adam.service.IAdamMemberRightsAdminService
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
...
@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.IntStream
;
import
java.util.stream.IntStream
;
...
@@ -29,6 +31,8 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
...
@@ -29,6 +31,8 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
@Override
@Override
public
boolean
edit
(
AdamMemberRightsBuildParam
param
)
{
public
boolean
edit
(
AdamMemberRightsBuildParam
param
)
{
String
loginName
=
ShiroUtils
.
getLoginName
();
LocalDateTime
now
=
LocalDateTime
.
now
();
String
mrightsId
=
param
.
getMrightsId
();
String
mrightsId
=
param
.
getMrightsId
();
boolean
saveOrUpadateRst
,
isAddFlag
=
StringUtils
.
isEmpty
(
mrightsId
);
boolean
saveOrUpadateRst
,
isAddFlag
=
StringUtils
.
isEmpty
(
mrightsId
);
...
@@ -44,6 +48,8 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
...
@@ -44,6 +48,8 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
saveOrUpdateInfo
.
setLabel
(
param
.
getLabel
());
saveOrUpdateInfo
.
setLabel
(
param
.
getLabel
());
saveOrUpdateInfo
.
setCover
(
param
.
getCover
());
saveOrUpdateInfo
.
setCover
(
param
.
getCover
());
saveOrUpdateInfo
.
setDetail
(
param
.
getDetail
());
saveOrUpdateInfo
.
setDetail
(
param
.
getDetail
());
saveOrUpdateInfo
.
setOperator
(
loginName
);
saveOrUpdateInfo
.
setCreatedAt
(
now
);
saveOrUpadateRst
=
adamMemberRightsMapper
.
insert
(
saveOrUpdateInfo
)
>
0
;
saveOrUpadateRst
=
adamMemberRightsMapper
.
insert
(
saveOrUpdateInfo
)
>
0
;
}
else
{
}
else
{
...
@@ -52,12 +58,16 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
...
@@ -52,12 +58,16 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
.
eq
(
AdamMemberRights:
:
getMrightsId
,
param
.
getMrightsId
());
.
eq
(
AdamMemberRights:
:
getMrightsId
,
param
.
getMrightsId
());
saveOrUpdateInfo
.
setState
(
param
.
getState
());
saveOrUpdateInfo
.
setState
(
param
.
getState
());
saveOrUpdateInfo
.
setOperator
(
loginName
);
saveOrUpdateInfo
.
setUpdatedAt
(
now
);
if
(
param
.
getState
()
!=
2
)
{
saveOrUpdateInfo
.
setSeqNo
(
param
.
getSeqNo
());
saveOrUpdateInfo
.
setSeqNo
(
param
.
getSeqNo
());
saveOrUpdateInfo
.
setTitle
(
param
.
getTitle
());
saveOrUpdateInfo
.
setTitle
(
param
.
getTitle
());
saveOrUpdateInfo
.
setSubTitle
(
param
.
getSubTitle
());
saveOrUpdateInfo
.
setSubTitle
(
param
.
getSubTitle
());
saveOrUpdateInfo
.
setLabel
(
param
.
getLabel
());
saveOrUpdateInfo
.
setLabel
(
param
.
getLabel
());
saveOrUpdateInfo
.
setCover
(
param
.
getCover
());
saveOrUpdateInfo
.
setCover
(
param
.
getCover
());
saveOrUpdateInfo
.
setDetail
(
param
.
getDetail
());
saveOrUpdateInfo
.
setDetail
(
param
.
getDetail
());
}
saveOrUpadateRst
=
adamMemberRightsMapper
.
update
(
saveOrUpdateInfo
,
updateWrapper
)
>
0
;
saveOrUpadateRst
=
adamMemberRightsMapper
.
update
(
saveOrUpdateInfo
,
updateWrapper
)
>
0
;
}
}
...
@@ -98,7 +108,6 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
...
@@ -98,7 +108,6 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
redisUtil
.
set
(
AdamRedisConst
.
INFO_MEMBER_RIGHTS
.
concat
(
param
.
getMemberId
()),
vos
);
redisUtil
.
set
(
AdamRedisConst
.
INFO_MEMBER_RIGHTS
.
concat
(
param
.
getMemberId
()),
vos
);
}
}
return
saveOrUpadateRst
;
return
saveOrUpadateRst
;
}
}
}
}
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 @
e8d899ad
...
@@ -171,7 +171,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
...
@@ -171,7 +171,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
// CandyMgtCoupon updateMgtCoupon = new CandyMgtCoupon();
// CandyMgtCoupon updateMgtCoupon = new CandyMgtCoupon();
updateMgtCoupon
.
setMcouponId
(
parameter
.
getMrightsId
());
updateMgtCoupon
.
setMcouponId
(
parameter
.
getMrightsId
());
updateMgtCoupon
.
setCouponId
(
couponId
);
updateMgtCoupon
.
setEventAmt
(
parameter
.
getEventAmt
());
updateMgtCoupon
.
setEventAmt
(
parameter
.
getEventAmt
());
updateMgtCoupon
.
setOperator
(
operator
);
updateMgtCoupon
.
setOperator
(
operator
);
updateMgtCoupon
.
setUpdatedAt
(
nowTime
);
updateMgtCoupon
.
setUpdatedAt
(
nowTime
);
...
@@ -184,6 +184,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
...
@@ -184,6 +184,7 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
updateCoupon
.
setExclusive
(
1
);
updateCoupon
.
setExclusive
(
1
);
updateMgtCoupon
.
setMcouponId
(
parameter
.
getMrightsId
());
updateMgtCoupon
.
setMcouponId
(
parameter
.
getMrightsId
());
updateMgtCoupon
.
setCouponId
(
couponId
);
updateMgtCoupon
.
setOperator
(
operator
);
updateMgtCoupon
.
setOperator
(
operator
);
updateMgtCoupon
.
setUpdatedAt
(
nowTime
);
updateMgtCoupon
.
setUpdatedAt
(
nowTime
);
updateMgtCoupon
.
setState
(
2
);
updateMgtCoupon
.
setState
(
2
);
...
@@ -302,9 +303,10 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
...
@@ -302,9 +303,10 @@ public class CandyMgtCouponAdminServiceImpl extends ServiceImpl<CandyMgtCouponMa
.
eq
(
CandyCoupon:
:
getExclusive
,
updateCoupon
.
getExclusive
());
.
eq
(
CandyCoupon:
:
getExclusive
,
updateCoupon
.
getExclusive
());
int
updateCt
=
candyCouponMapper
.
update
(
updateCoupon
,
couponLambdaUpdateWrapper
);
int
updateCt
=
candyCouponMapper
.
update
(
updateCoupon
,
couponLambdaUpdateWrapper
);
LambdaUpdateWrapper
<
CandyMgtCoupon
>
mgtCouponLambdaUpdateWrapper
=
Wrappers
.
lambdaUpdate
(
CandyMgtCoupon
.
class
)
LambdaUpdateWrapper
<
CandyMgtCoupon
>
mgtCouponLambdaUpdateWrapper
=
Wrappers
.
lambdaUpdate
(
CandyMgtCoupon
.
class
);
.
eq
(
CandyMgtCoupon:
:
getMcouponId
,
updateMgtCoupon
.
getMcouponId
())
mgtCouponLambdaUpdateWrapper
.
eq
(
CandyMgtCoupon:
:
getMcouponId
,
updateMgtCoupon
.
getMcouponId
());
.
eq
(
CandyMgtCoupon:
:
getState
,
updateCoupon
.
getExclusive
()
==
1
?
10
:
0
);
mgtCouponLambdaUpdateWrapper
.
eq
(
CandyMgtCoupon:
:
getCouponId
,
updateMgtCoupon
.
getCouponId
());
mgtCouponLambdaUpdateWrapper
.
eq
(
CandyMgtCoupon:
:
getState
,
updateCoupon
.
getExclusive
()
==
1
?
10
:
0
);
updateCt
+=
candyMgtCouponMapper
.
update
(
updateMgtCoupon
,
mgtCouponLambdaUpdateWrapper
);
updateCt
+=
candyMgtCouponMapper
.
update
(
updateMgtCoupon
,
mgtCouponLambdaUpdateWrapper
);
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/ReportPerformanceServiceImpl.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
kylin
.
service
.
impl
;
import
com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto
;
import
com.liquidnet.service.kylin.mapper.ReportPerformanceMapper
;
import
com.liquidnet.service.kylin.service.IReportPerformanceService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ReportPerformanceServiceImpl
* @Package com.liquidnet.client.admin.zhengzai.kylin.service.impl
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 11:30
*/
@Slf4j
@Service
public
class
ReportPerformanceServiceImpl
implements
IReportPerformanceService
{
@Autowired
private
ReportPerformanceMapper
reportPerformanceMapper
;
@Override
public
List
<
PerformanceProvinceDataDto
>
getProvinceDataList
(
String
performanceId
)
{
return
reportPerformanceMapper
.
getProvinceDataList
(
performanceId
);
}
@Override
public
List
<
PerformanceCityDataDto
>
getCityDataList
(
String
performanceId
)
{
return
reportPerformanceMapper
.
getCityDataList
(
performanceId
);
}
@Override
public
List
<
PerformanceAgeDataDto
>
getAgeDataList
(
String
performanceId
)
{
return
reportPerformanceMapper
.
getAgeDataList
(
performanceId
);
}
@Override
public
List
<
PerformanceSexDataDto
>
getSexDataList
(
String
performanceId
)
{
return
reportPerformanceMapper
.
getSexDataList
(
performanceId
);
}
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/entity/AdamMemberCodeBatch.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
service
.
adam
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.time.LocalDateTime
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 会员码批次记录
* </p>
*
* @author liquidnet
* @since 2021-09-24
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
AdamMemberCodeBatch
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* 会员码批次号
*/
private
String
batchNo
;
/**
* ~`adam_member.member_id`
*/
private
String
memberId
;
/**
* ~`adam_member_price.member_price_id`
*/
private
String
memberPriceId
;
/**
* 会员卡名称~`adam_member.name`
*/
private
String
memberName
;
/**
* 套餐包名称
*/
private
String
memberCombo
;
/**
* 生成数量
*/
private
Integer
genNum
;
/**
* 使用数量
*/
private
Integer
useNum
;
/**
* 描述
*/
private
String
describe
;
/**
* 有效期(单位天)
*/
private
Integer
validity
;
/**
* 生效时间
*/
private
LocalDateTime
effectAt
;
/**
* 失效时间
*/
private
LocalDateTime
expireAt
;
/**
* 状态:0-INIT,1-NORMAL,2-INVALID
*/
private
Integer
state
;
/**
* 操作人
*/
private
String
operator
;
private
LocalDateTime
createdAt
;
private
LocalDateTime
updatedAt
;
private
String
comment
;
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/entity/AdamMemberRights.java
View file @
e8d899ad
...
@@ -3,6 +3,8 @@ package com.liquidnet.service.adam.entity;
...
@@ -3,6 +3,8 @@ package com.liquidnet.service.adam.entity;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
...
@@ -65,6 +67,15 @@ public class AdamMemberRights implements Serializable {
...
@@ -65,6 +67,15 @@ public class AdamMemberRights implements Serializable {
*/
*/
private
String
detail
;
private
String
detail
;
/**
* 操作人
*/
private
String
operator
;
private
LocalDateTime
createdAt
;
private
LocalDateTime
updatedAt
;
private
String
comment
;
private
String
comment
;
...
...
liquidnet-bus-do/liquidnet-service-adam-do/src/main/java/com/liquidnet/service/adam/mapper/AdamMemberCodeBatchMapper.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
service
.
adam
.
mapper
;
import
com.liquidnet.service.adam.entity.AdamMemberCodeBatch
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* 会员码批次记录 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2021-09-24
*/
public
interface
AdamMemberCodeBatchMapper
extends
BaseMapper
<
AdamMemberCodeBatch
>
{
}
liquidnet-bus-do/liquidnet-service-adam-do/src/main/resources/com/liquidnet/service/adam/mapper/AdamMemberCodeBatchMapper.xml
0 → 100644
View file @
e8d899ad
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.liquidnet.service.adam.mapper.AdamMemberCodeBatchMapper"
>
</mapper>
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/report/PerformanceAgeDataDto.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
service
.
kylin
.
dao
.
report
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceAgeDataDto
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:58
*/
@Data
public
class
PerformanceAgeDataDto
implements
Serializable
{
private
String
performanceId
;
private
String
age
;
private
long
totalNumber
;
private
static
final
PerformanceAgeDataDto
obj
=
new
PerformanceAgeDataDto
();
public
static
PerformanceAgeDataDto
getNew
()
{
try
{
return
(
PerformanceAgeDataDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
PerformanceAgeDataDto
();
}
}
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/report/PerformanceCityDataDto.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
service
.
kylin
.
dao
.
report
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceCityDataDto
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:58
*/
@Data
public
class
PerformanceCityDataDto
implements
Serializable
{
private
String
performanceId
;
private
String
cityName
;
private
long
totalNumber
;
private
static
final
PerformanceCityDataDto
obj
=
new
PerformanceCityDataDto
();
public
static
PerformanceCityDataDto
getNew
()
{
try
{
return
(
PerformanceCityDataDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
PerformanceCityDataDto
();
}
}
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/report/PerformanceProvinceDataDto.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
service
.
kylin
.
dao
.
report
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceProvinceData
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:57
*/
@Data
public
class
PerformanceProvinceDataDto
implements
Serializable
{
private
String
performanceId
;
private
String
province
;
private
long
totalNumber
;
private
static
final
PerformanceProvinceDataDto
obj
=
new
PerformanceProvinceDataDto
();
public
static
PerformanceProvinceDataDto
getNew
()
{
try
{
return
(
PerformanceProvinceDataDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
PerformanceProvinceDataDto
();
}
}
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/report/PerformanceSexDataDto.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
service
.
kylin
.
dao
.
report
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceSexDataDto
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:58
*/
@Data
public
class
PerformanceSexDataDto
implements
Serializable
{
private
String
sex
;
private
long
totalNumber
;
private
static
final
PerformanceSexDataDto
obj
=
new
PerformanceSexDataDto
();
public
static
PerformanceSexDataDto
getNew
()
{
try
{
return
(
PerformanceSexDataDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
PerformanceSexDataDto
();
}
}
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/mapper/ReportPerformanceMapper.java
0 → 100644
View file @
e8d899ad
package
com
.
liquidnet
.
service
.
kylin
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto
;
import
com.liquidnet.service.kylin.entity.KylinPerformances
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ReportPerformanceMapper
* @Package com.liquidnet.service.kylin.mapper
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:54
*/
public
interface
ReportPerformanceMapper
extends
BaseMapper
<
KylinPerformances
>
{
/**
* 获取按省统计数据
* @param performanceId
* @return
*/
List
<
PerformanceProvinceDataDto
>
getProvinceDataList
(
String
performanceId
);
/**
* 获取按城市统计数据
* @param performanceId
* @return
*/
List
<
PerformanceCityDataDto
>
getCityDataList
(
String
performanceId
);
/**
* 获取按年龄统计数据
* @param performanceId
* @return
*/
List
<
PerformanceAgeDataDto
>
getAgeDataList
(
String
performanceId
);
/**
* 获取按性别统计数据
* @param performanceId
* @return
*/
List
<
PerformanceSexDataDto
>
getSexDataList
(
String
performanceId
);
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/resources/com.liquidnet.service.kylin.mapper/ReportPerformanceMapper.xml
0 → 100644
View file @
e8d899ad
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.liquidnet.service.kylin.mapper.ReportPerformanceMapper"
>
<resultMap
id=
"getProvinceDataListResult"
type=
"com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto"
>
<result
column=
"performance_id"
property=
"performanceId"
/>
<result
column=
"province"
property=
"province"
/>
<result
column=
"total_number"
property=
"totalNumber"
/>
</resultMap>
<resultMap
id=
"getCityDataListResult"
type=
"com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto"
>
<result
column=
"performance_id"
property=
"performanceId"
/>
<result
column=
"city_name"
property=
"cityName"
/>
<result
column=
"total_number"
property=
"totalNumber"
/>
</resultMap>
<resultMap
id=
"getAgeDataListResult"
type=
"com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto"
>
<result
column=
"performance_id"
property=
"performanceId"
/>
<result
column=
"age"
property=
"age"
/>
<result
column=
"total_number"
property=
"totalNumber"
/>
</resultMap>
<resultMap
id=
"getSexDataListResult"
type=
"com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto"
>
<result
column=
"sex"
property=
"sex"
/>
<result
column=
"total_number"
property=
"totalNumber"
/>
</resultMap>
<!-- 演出按省统计-->
<select
id=
"getProvinceDataList"
parameterType=
"java.lang.String"
resultMap=
"getProvinceDataListResult"
>
select x.* from (
SELECT kotr.performance_id AS 'performance_id',
ifnull(ca.province, '未知') province,
count(1) total_number
FROM kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
left join sys_dict_id_card_area ca
on substr(kote.enter_id_code, 1, 6)= ca.code
WHERE 1 > 0
and kotr.performance_id = ${performanceId}
and kots.`status` in (1, 3, 6)
and kot.coupon_type = 'no'
group by kotr.performance_id,ca.province
) x order by x.total_number desc
</select>
<!-- 演出按城市统计-->
<select
id=
"getCityDataList"
parameterType=
"java.lang.String"
resultMap=
"getCityDataListResult"
>
select x.* from (
SELECT
kotr.performance_id AS 'performance_id',
ifnull(ca.pre_city,'未知') city_name,
count(1) total_number
FROM
kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
left join sys_dict_id_card_area ca on substr(kote.enter_id_code,1,6) = ca.code
WHERE 1>0 and kotr.performance_id = #{performanceId}
and kots.`status` in(1,3,6)
and kot.coupon_type ='no'
group by kotr.performance_id,ca.pre_city
) x order by x.total_number desc
</select>
<!-- 演出按年龄统计-->
<select
id=
"getAgeDataList"
parameterType=
"java.lang.String"
resultMap=
"getAgeDataListResult"
>
select * from (
SELECT kotr.performance_id AS 'performance_id',
substr(curdate(), 1, 4) - substr(kote.enter_id_code, 7, 4) age,
count(1) total_number
FROM kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
WHERE 1 > 0
and kotr.performance_id = #{performanceId}
and kots.`status` in (1, 3, 6)
and kot.coupon_type = 'no'
and length(kote.enter_id_code)=18
group by kotr.performance_id, substr(curdate(), 1, 4) - substr(kote.enter_id_code, 7, 4)
)x order by x.age
</select>
<!-- 演出按性别统计-->
<select
id=
"getSexDataList"
parameterType=
"java.lang.String"
resultMap=
"getSexDataListResult"
>
select x.sex,count(1) total_number from (
SELECT kotr.performance_id AS 'performance_id',
case when substr(kote.enter_id_code,17,1)%2=0 then '女' else '男' end sex
FROM kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
WHERE 1 > 0
and kotr.performance_id = ${performanceId}
and kots.`status` in (1, 3, 6)
and kot.coupon_type = 'no'
and length(kote.enter_id_code)=18
)x group by x.sex
</select>
</mapper>
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/docu/db_ln_adam_initialdata.sql
View file @
e8d899ad
...
@@ -356,7 +356,7 @@ alter table adam_member_price add price_special decimal(8, 2) null comment '特
...
@@ -356,7 +356,7 @@ alter table adam_member_price add price_special decimal(8, 2) null comment '特
#
会员码表调整
#
会员码表调整
alter
table
adam_member_code
modify
state
tinyint
null
comment
'状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]'
;
alter
table
adam_member_code
modify
state
tinyint
null
comment
'状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]'
;
create
index
idx_amember_code_id
on
adam_member_code
(
code
);
create
index
idx_amember_code_id
on
adam_member_code
(
code
);
alter
table
adam_member_code
add
validity
tiny
int
null
comment
'有效期(单位天)'
after
state
;
alter
table
adam_member_code
add
validity
int
null
comment
'有效期(单位天)'
after
state
;
alter
table
adam_member_code
add
effect_at
datetime
(
3
)
null
comment
'生效时间'
after
validity
;
alter
table
adam_member_code
add
effect_at
datetime
(
3
)
null
comment
'生效时间'
after
validity
;
alter
table
adam_member_code
add
expire_at
datetime
(
3
)
null
comment
'过期时间'
after
effect_at
;
alter
table
adam_member_code
add
expire_at
datetime
(
3
)
null
comment
'过期时间'
after
effect_at
;
alter
table
adam_member_code
add
operator
varchar
(
64
)
null
comment
'type=2时记录创建人'
after
expire_at
;
alter
table
adam_member_code
add
operator
varchar
(
64
)
null
comment
'type=2时记录创建人'
after
expire_at
;
...
@@ -409,6 +409,11 @@ create table adam_member_rights
...
@@ -409,6 +409,11 @@ create table adam_member_rights
label
varchar
(
50
)
comment
'标注'
,
label
varchar
(
50
)
comment
'标注'
,
cover
varchar
(
255
)
comment
'图片标识'
,
cover
varchar
(
255
)
comment
'图片标识'
,
detail
text
comment
'详情内容'
,
detail
text
comment
'详情内容'
,
operator
varchar
(
64
)
comment
'操作人'
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
(
3
),
comment
varchar
(
255
)
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'会员权益配置'
;
)
engine
=
InnoDB
comment
'会员权益配置'
;
create
unique
index
uidx_adam_member_rights_id
on
adam_member_rights
(
mrights_id
);
create
unique
index
uidx_adam_member_rights_id
on
adam_member_rights
(
mrights_id
);
...
@@ -424,11 +429,35 @@ create table adam_user_busi_acct
...
@@ -424,11 +429,35 @@ create table adam_user_busi_acct
work
varchar
(
64
)
comment
'业务服务模块'
,
work
varchar
(
64
)
comment
'业务服务模块'
,
ppwd
varchar
(
64
)
comment
'业务服务密码'
,
ppwd
varchar
(
64
)
comment
'业务服务密码'
,
state
tinyint
comment
'1-NORMAL,2-INVALID'
,
state
tinyint
comment
'1-NORMAL,2-INVALID'
,
created_at
datetime
not
null
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
,
updated_at
datetime
(
3
)
,
comment
text
comment
text
)
engine
=
InnoDB
comment
'用户业务服务账号表'
;
)
engine
=
InnoDB
comment
'用户业务服务账号表'
;
create
index
idx_adam_user_busi_acct_uid
on
adam_user_busi_acct
(
uid
);
create
index
idx_adam_user_busi_acct_uid
on
adam_user_busi_acct
(
uid
);
-- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------|20210924会员码管理
drop
table
if
exists
adam_member_code_batch
;
create
table
adam_member_code_batch
(
mid
bigint
unsigned
auto_increment
primary
key
,
batch_no
varchar
(
64
)
not
null
comment
'会员码批次号'
,
member_id
varchar
(
64
)
not
null
comment
'~`adam_member.member_id`'
,
member_price_id
varchar
(
64
)
not
null
comment
'~`adam_member_price.member_price_id`'
,
member_name
varchar
(
80
)
comment
'会员卡名称~`adam_member.name`'
,
member_combo
varchar
(
80
)
comment
'套餐包名称'
,
gen_num
int
comment
'生成数量'
,
use_num
int
comment
'使用数量'
,
`describe`
varchar
(
64
)
comment
'描述'
,
validity
int
comment
'有效期(单位天)'
,
effect_at
datetime
(
3
)
null
comment
'生效时间'
,
expire_at
datetime
(
3
)
null
comment
'失效时间'
,
state
tinyint
comment
'状态[0-INIT|1-NORMAL|2-INVALID]'
,
operator
varchar
(
64
)
comment
'操作人'
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
(
3
),
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'会员码批次记录'
;
create
index
idx_adam_member_code_batch_no
on
adam_member_code_batch
(
batch_no
);
-- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/controller/AdamLoginController.java
View file @
e8d899ad
...
@@ -129,6 +129,11 @@ public class AdamLoginController {
...
@@ -129,6 +129,11 @@ public class AdamLoginController {
}
}
AdamUserInfoVo
userInfoVo
=
adamRdmService
.
getUserInfoVoByUid
(
uid
);
AdamUserInfoVo
userInfoVo
=
adamRdmService
.
getUserInfoVoByUid
(
uid
);
if
(
null
==
userInfoVo
)
{
log
.
warn
(
"Cancelled mobile:{}"
,
mobile
);
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10024"
));
}
String
passwdMd5
=
DigestUtils
.
md5DigestAsHex
(
password
.
toLowerCase
().
concat
(
passwdSalt
).
getBytes
(
StandardCharsets
.
UTF_8
));
String
passwdMd5
=
DigestUtils
.
md5DigestAsHex
(
password
.
toLowerCase
().
concat
(
passwdSalt
).
getBytes
(
StandardCharsets
.
UTF_8
));
if
(!
passwdMd5
.
equals
(
userInfoVo
.
getPasswd
()))
{
// 密码校验
if
(!
passwdMd5
.
equals
(
userInfoVo
.
getPasswd
()))
{
// 密码校验
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10013"
));
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10013"
));
...
@@ -164,6 +169,11 @@ public class AdamLoginController {
...
@@ -164,6 +169,11 @@ public class AdamLoginController {
AdamUserInfoVo
userInfoVo
=
toRegister
?
adamUserService
.
register
(
mobile
)
:
adamRdmService
.
getUserInfoVoByUid
(
uid
);
AdamUserInfoVo
userInfoVo
=
toRegister
?
adamUserService
.
register
(
mobile
)
:
adamRdmService
.
getUserInfoVoByUid
(
uid
);
if
(!
toRegister
&&
null
==
userInfoVo
)
{
log
.
warn
(
"Cancelled mobile:{}"
,
mobile
);
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10024"
));
}
if
(
0
==
userInfoVo
.
getIsComplete
()
&&
null
!=
skip
&&
1
==
skip
)
{
if
(
0
==
userInfoVo
.
getIsComplete
()
&&
null
!=
skip
&&
1
==
skip
)
{
// 根据skip值,设置IsComplete(考虑到已存在用户未完善信息的情况,这里只对返回数据单独设置IsComplete)
// 根据skip值,设置IsComplete(考虑到已存在用户未完善信息的情况,这里只对返回数据单独设置IsComplete)
userInfoVo
.
setIsComplete
(
1
);
userInfoVo
.
setIsComplete
(
1
);
...
@@ -196,6 +206,11 @@ public class AdamLoginController {
...
@@ -196,6 +206,11 @@ public class AdamLoginController {
AdamUserInfoVo
userInfoVo
=
toRegister
?
adamUserService
.
register
(
mobile
)
:
adamRdmService
.
getUserInfoVoByUid
(
uid
);
AdamUserInfoVo
userInfoVo
=
toRegister
?
adamUserService
.
register
(
mobile
)
:
adamRdmService
.
getUserInfoVoByUid
(
uid
);
if
(!
toRegister
&&
null
==
userInfoVo
)
{
log
.
warn
(
"Cancelled mobile:{}"
,
mobile
);
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10024"
));
}
AdamLoginInfoVo
loginInfoVo
=
AdamLoginInfoVo
.
getNew
();
AdamLoginInfoVo
loginInfoVo
=
AdamLoginInfoVo
.
getNew
();
loginInfoVo
.
setToken
(
this
.
ssoProcess
(
userInfoVo
));
loginInfoVo
.
setToken
(
this
.
ssoProcess
(
userInfoVo
));
loginInfoVo
.
setUserInfo
(
userInfoVo
);
loginInfoVo
.
setUserInfo
(
userInfoVo
);
...
@@ -269,7 +284,13 @@ public class AdamLoginController {
...
@@ -269,7 +284,13 @@ public class AdamLoginController {
String
uid
=
adamRdmService
.
getUidByPlatformOpenId
(
parameter
.
getPlatform
(),
parameter
.
getOpenId
());
String
uid
=
adamRdmService
.
getUidByPlatformOpenId
(
parameter
.
getPlatform
(),
parameter
.
getOpenId
());
if
(
StringUtils
.
isEmpty
(
uid
))
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10006"
));
if
(
StringUtils
.
isEmpty
(
uid
))
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10006"
));
loginInfoVo
.
setUserInfo
(
adamRdmService
.
getUserInfoVoByUid
(
uid
));
AdamUserInfoVo
userInfoVo
=
adamRdmService
.
getUserInfoVoByUid
(
uid
);
if
(
null
==
userInfoVo
)
{
log
.
warn
(
"Cancelled openId:{}"
,
parameter
.
getOpenId
());
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10024"
));
}
loginInfoVo
.
setUserInfo
(
userInfoVo
);
loginInfoVo
.
setUserMemberVo
(
adamRdmService
.
getUserMemberVoByUid
(
uid
));
loginInfoVo
.
setUserMemberVo
(
adamRdmService
.
getUserMemberVoByUid
(
uid
));
}
else
{
// 新账号注册
}
else
{
// 新账号注册
ResponseDto
<
AdamLoginInfoVo
>
checkSmsCodeDto
=
this
.
checkSmsCode
(
parameter
.
getMobile
(),
parameter
.
getCode
());
ResponseDto
<
AdamLoginInfoVo
>
checkSmsCodeDto
=
this
.
checkSmsCode
(
parameter
.
getMobile
(),
parameter
.
getCode
());
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamUserServiceImpl.java
View file @
e8d899ad
...
@@ -114,7 +114,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
...
@@ -114,7 +114,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
LinkedList
<
Object
[]>
initUserObjs
=
CollectionUtil
.
linkedListObjectArr
(),
LinkedList
<
Object
[]>
initUserObjs
=
CollectionUtil
.
linkedListObjectArr
(),
initUserInfoObjs
=
CollectionUtil
.
linkedListObjectArr
(),
initUserInfoObjs
=
CollectionUtil
.
linkedListObjectArr
(),
initThirdPartObjs
=
CollectionUtil
.
linkedListObjectArr
();
initThirdPartObjs
=
CollectionUtil
.
linkedListObjectArr
();
if
(
StringUtils
.
isEmpty
(
uid
))
{
// 手机号未注册
if
(
StringUtils
.
isEmpty
(
uid
))
{
//
不存在UID,
手机号未注册
userInfoVo
=
AdamUserInfoVo
.
getNew
();
userInfoVo
=
AdamUserInfoVo
.
getNew
();
userInfoVo
.
setUid
(
IDGenerator
.
nextSnowId
()
+
""
);
userInfoVo
.
setUid
(
IDGenerator
.
nextSnowId
()
+
""
);
...
@@ -154,12 +154,16 @@ public class AdamUserServiceImpl implements IAdamUserService {
...
@@ -154,12 +154,16 @@ public class AdamUserServiceImpl implements IAdamUserService {
);
);
log
.
debug
(
"#MQ耗时:{}ms"
,
System
.
currentTimeMillis
()
-
s
);
log
.
debug
(
"#MQ耗时:{}ms"
,
System
.
currentTimeMillis
()
-
s
);
}
else
{
// 手机号已注册
}
else
{
//
存在UID,
手机号已注册
// 判断已注册用户是否绑定同平台的第三方账号
// 判断已注册用户是否绑定同平台的第三方账号
AdamThirdPartInfoVo
thirdPartVo
=
adamRdmService
.
getThirdPartVoByUidPlatform
(
uid
,
param
.
getPlatform
());
AdamThirdPartInfoVo
thirdPartVo
=
adamRdmService
.
getThirdPartVoByUidPlatform
(
uid
,
param
.
getPlatform
());
if
(
null
==
thirdPartVo
)
{
// 未绑定
if
(
null
==
thirdPartVo
)
{
// 未绑定
this
.
bindTpa
(
uid
,
param
);
userInfoVo
=
adamRdmService
.
getUserInfoVoByUid
(
uid
);
userInfoVo
=
adamRdmService
.
getUserInfoVoByUid
(
uid
);
if
(
null
==
userInfoVo
)
{
log
.
warn
(
"Cancelled mobile:{}"
,
param
.
getMobile
());
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"10024"
));
}
this
.
bindTpa
(
uid
,
param
);
}
else
if
(
thirdPartVo
.
getOpenId
().
equals
(
param
.
getOpenId
()))
{
}
else
if
(
thirdPartVo
.
getOpenId
().
equals
(
param
.
getOpenId
()))
{
userInfoVo
=
adamRdmService
.
getUserInfoVoByUid
(
uid
);
userInfoVo
=
adamRdmService
.
getUserInfoVoByUid
(
uid
);
}
else
{
}
else
{
...
@@ -273,9 +277,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
...
@@ -273,9 +277,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
objsAddresses
=
CollectionUtil
.
linkedListObjectArr
();
objsAddresses
=
CollectionUtil
.
linkedListObjectArr
();
long
s
=
System
.
currentTimeMillis
();
long
s
=
System
.
currentTimeMillis
();
AdamUserInfoVo
userInfoVo
=
adamRdmService
.
getUserInfoVoByUid
(
uid
);
//
AdamUserInfoVo userInfoVo = adamRdmService.getUserInfoVoByUid(uid);
//
adamRdmService
.
delUidByMobile
(
userInfoVo
.
getMobile
());
//
adamRdmService.delUidByMobile(userInfoVo.getMobile());
List
<
AdamThirdPartInfoVo
>
thirdPartInfoVos
=
adamRdmService
.
getThirdPartVoListByUid
(
uid
);
List
<
AdamThirdPartInfoVo
>
thirdPartInfoVos
=
adamRdmService
.
getThirdPartVoListByUid
(
uid
);
if
(!
CollectionUtils
.
isEmpty
(
thirdPartInfoVos
))
{
if
(!
CollectionUtils
.
isEmpty
(
thirdPartInfoVos
))
{
thirdPartInfoVos
.
forEach
(
r
->
{
thirdPartInfoVos
.
forEach
(
r
->
{
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/resources/errors.properties
View file @
e8d899ad
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
10021
=
签名不合规
10021
=
签名不合规
10022
=
头像不合规
10022
=
头像不合规
10023
=
背景图不合规
10023
=
背景图不合规
10024
=
该账号已被主动注销
10101
=
姓名或身份证件号无效
10101
=
姓名或身份证件号无效
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/resources/sqlmap.properties
View file @
e8d899ad
adam_user.add
=
INSERT INTO adam_user (`uid`, mobile, `state`, is_complete, created_at) VALUES (?,?,?,?,?)
adam_user.add
=
INSERT INTO adam_user (`uid`, mobile, `state`, is_complete, created_at) VALUES (?,?,?,?,?)
adam_user.complete
=
UPDATE adam_user SET is_complete=?, updated_at=? WHERE `uid`=?
adam_user.complete
=
UPDATE adam_user SET is_complete=?, updated_at=? WHERE `uid`=?
adam_user.edit.mobile
=
UPDATE adam_user SET mobile=?, updated_at=? WHERE `uid`=?
adam_user.edit.mobile
=
UPDATE adam_user SET mobile=?, updated_at=? WHERE `uid`=?
adam_user.close
=
UPDATE adam_user SET `state`=2, mobile=concat(mobile,'_',curtime()), updated_at=?, closed_at=? WHERE `uid`=?
#adam_user.close=UPDATE adam_user SET `state`=2, mobile=concat(mobile,'_',curtime()), updated_at=?, closed_at=? WHERE `uid`=?
adam_user.close
=
UPDATE adam_user SET `state`=2, updated_at=?, closed_at=? WHERE `uid`=?
# ----------------------------------------------------
# ----------------------------------------------------
adam_user_info.add
=
INSERT INTO adam_user_info (`uid`, nickname, avatar, qr_code) VALUES (?,?,?,?)
adam_user_info.add
=
INSERT INTO adam_user_info (`uid`, nickname, avatar, qr_code) VALUES (?,?,?,?)
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/KylinOrderTicketsServiceImpl.java
View file @
e8d899ad
...
@@ -172,8 +172,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
...
@@ -172,8 +172,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
if
(!
isMember
)
{
if
(!
isMember
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20009"
));
//没有会员权限
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20009"
));
//没有会员权限
}
}
}
}
else
{
else
{
if
(
DateUtil
.
compareStrDay
(
DateUtil
.
getNowTime
(),
memberTimeStart
)
==
1
&&
DateUtil
.
compareStrDay
(
DateUtil
.
getNowTime
(),
timeStart
)
==
-
1
&&
ticketData
.
getIsMember
()
==
1
)
{
if
(
DateUtil
.
compareStrDay
(
DateUtil
.
getNowTime
(),
memberTimeStart
)
==
1
&&
DateUtil
.
compareStrDay
(
DateUtil
.
getNowTime
(),
timeStart
)
==
-
1
&&
ticketData
.
getIsMember
()
==
1
)
{
// 会员购买逻辑
// 会员购买逻辑
memberType
=
1
;
memberType
=
1
;
...
@@ -266,6 +265,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
...
@@ -266,6 +265,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
if
(
isTrueName
==
1
)
{
if
(
isTrueName
==
1
)
{
for
(
String
enterId
:
payOrderParam
.
getEnterIdList
())
{
for
(
String
enterId
:
payOrderParam
.
getEnterIdList
())
{
AdamEntersVo
adamEnters
=
orderUtils
.
getEnters
(
uid
,
enterId
);
//feignAdamBaseClient.queryEnters(enterId, uid).getData();
AdamEntersVo
adamEnters
=
orderUtils
.
getEnters
(
uid
,
enterId
);
//feignAdamBaseClient.queryEnters(enterId, uid).getData();
if
(
adamEnters
==
null
)
{
return
ResponseDto
.
failure
(
"入场人数据错误"
);
}
entersVoList
.
add
(
adamEnters
);
entersVoList
.
add
(
adamEnters
);
if
(
isStudent
==
1
)
{
if
(
isStudent
==
1
)
{
int
age
=
IDCard
.
getAgeByIdCard
(
adamEnters
.
getIdCard
());
int
age
=
IDCard
.
getAgeByIdCard
(
adamEnters
.
getIdCard
());
...
...
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