记得上下班打卡 | 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
8206e3ed
Commit
8206e3ed
authored
Dec 23, 2021
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交 sweet 二维码 admin sweet
parent
b9d3f92f
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
223 additions
and
29 deletions
+223
-29
wechat_qrcode.sql
docu/wechat_qrcode.sql
+1
-0
CreateActiveQrCodeParam.java
...dnet/service/kylin/dto/param/CreateActiveQrCodeParam.java
+1
-0
SweetConstant.java
...a/com/liquidnet/service/sweet/constant/SweetConstant.java
+9
-0
ISweetActiveTypeService.java
...uidnet/service/sweet/service/ISweetActiveTypeService.java
+1
-3
editQrCode.html
...resources/templates/zhengzai/sweet/qrCode/editQrCode.html
+6
-0
qrcode.html
...ain/resources/templates/zhengzai/sweet/qrCode/qrcode.html
+4
-4
SweetAdminActiveTypeServiceImpl.java
...i/sweet/service/impl/SweetAdminActiveTypeServiceImpl.java
+4
-0
SweetAdminQrCodeServiceImpl.java
...ngzai/sweet/service/impl/SweetAdminQrCodeServiceImpl.java
+19
-2
SweetRedisAdminUtils.java
...ient/admin/zhengzai/sweet/utils/SweetRedisAdminUtils.java
+39
-0
CollectionUtil.java
.../java/com/liquidnet/commons/lang/util/CollectionUtil.java
+6
-0
SweetQrCode.java
.../java/com/liquidnet/service/sweet/entity/SweetQrCode.java
+7
-0
SweetQrCodeController.java
...idnet/service/sweet/controller/SweetQrCodeController.java
+39
-0
SweetActiveQrCodeServiceImpl.java
...vice/sweet/service/impl/SweetActiveQrCodeServiceImpl.java
+40
-0
SweetActiveTypeServiceImpl.java
...ervice/sweet/service/impl/SweetActiveTypeServiceImpl.java
+0
-20
RedisDataUtils.java
...ava/com/liquidnet/service/sweet/utils/RedisDataUtils.java
+47
-0
No files found.
docu/wechat_qrcode.sql
View file @
8206e3ed
...
@@ -2,6 +2,7 @@ drop table if exists sweet_qr_code;
...
@@ -2,6 +2,7 @@ drop table if exists sweet_qr_code;
create
table
sweet_qr_code
create
table
sweet_qr_code
(
(
mid
bigint
unsigned
auto_increment
primary
key
,
mid
bigint
unsigned
auto_increment
primary
key
,
qr_code_id
varchar
(
64
)
default
''
comment
'ID'
,
type
int
default
0
comment
'活动type类型'
,
type
int
default
0
comment
'活动type类型'
,
url
varchar
(
128
)
default
''
comment
'二维码地址'
,
url
varchar
(
128
)
default
''
comment
'二维码地址'
,
show_num
int
default
0
comment
'展示次数'
,
show_num
int
default
0
comment
'展示次数'
,
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/param/CreateActiveQrCodeParam.java
View file @
8206e3ed
...
@@ -8,6 +8,7 @@ import java.io.Serializable;
...
@@ -8,6 +8,7 @@ import java.io.Serializable;
@Data
@Data
public
class
CreateActiveQrCodeParam
implements
Serializable
{
public
class
CreateActiveQrCodeParam
implements
Serializable
{
private
String
qrCodeId
;
private
Integer
mid
;
private
Integer
mid
;
private
Integer
type
;
private
Integer
type
;
@NotNull
(
message
=
"二维码地址"
)
@NotNull
(
message
=
"二维码地址"
)
...
...
liquidnet-bus-api/liquidnet-service-sweet-api/src/main/java/com/liquidnet/service/sweet/constant/SweetConstant.java
View file @
8206e3ed
...
@@ -2,6 +2,7 @@ package com.liquidnet.service.sweet.constant;
...
@@ -2,6 +2,7 @@ package com.liquidnet.service.sweet.constant;
public
class
SweetConstant
{
public
class
SweetConstant
{
public
final
static
String
SWEET
=
"sweet:"
;
public
final
static
String
REDIS_KEY_SWEET_MANUAL_PUSH_LIST
=
"sweet:manual:pushList"
;
public
final
static
String
REDIS_KEY_SWEET_MANUAL_PUSH_LIST
=
"sweet:manual:pushList"
;
public
final
static
String
REDIS_KEY_SWEET_MANUAL_TIME_LIST
=
"sweet:manual:timeList:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_MANUAL_TIME_LIST
=
"sweet:manual:timeList:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_MANUAL_NOTIFY_LIST
=
"sweet:manual:notify:manual:"
;
public
final
static
String
REDIS_KEY_SWEET_MANUAL_NOTIFY_LIST
=
"sweet:manual:notify:manual:"
;
...
@@ -79,4 +80,12 @@ public class SweetConstant {
...
@@ -79,4 +80,12 @@ public class SweetConstant {
//猫登活动整体
//猫登活动整体
public
final
static
String
REDIS_KEY_SWEET_WECHAT_MAODENG_POSTER_TRANSFER
=
"sweet:maoDeng:naneAndImg:openId:transfer"
;
public
final
static
String
REDIS_KEY_SWEET_WECHAT_MAODENG_POSTER_TRANSFER
=
"sweet:maoDeng:naneAndImg:openId:transfer"
;
//二维码相关
public
final
static
String
QRCODE
=
SWEET
.
concat
(
"qrcode:"
);
public
final
static
String
REDIS_KEY_QRCODE_MAX_NUM
=
QRCODE
.
concat
(
"maxNum:"
);
//最大 :type
public
final
static
String
REDIS_KEY_QRCODE_SHOW_NUM
=
QRCODE
.
concat
(
"showNum:"
);
//展示次数 :type:mid
public
final
static
String
REDIS_KEY_QRCODE_READ_NUM
=
QRCODE
.
concat
(
"readNum:"
);
//读取次数 :type:mid
public
final
static
String
REDIS_KEY_QRCODE_LIST
=
QRCODE
.
concat
(
"list:"
);
//二维码实体类 :type
}
}
liquidnet-bus-api/liquidnet-service-sweet-api/src/main/java/com/liquidnet/service/sweet/service/ISweetActiveTypeService.java
View file @
8206e3ed
package
com
.
liquidnet
.
service
.
sweet
.
service
;
package
com
.
liquidnet
.
service
.
sweet
.
service
;
import
com.liquidnet.service.sweet.entity.SweetActiveType
;
import
java.util.List
;
/**
/**
* <p>
* <p>
...
@@ -15,5 +12,6 @@ import java.util.List;
...
@@ -15,5 +12,6 @@ import java.util.List;
*/
*/
public
interface
ISweetActiveTypeService
{
public
interface
ISweetActiveTypeService
{
String
getRandomQrCode
(
int
type
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/sweet/qrCode/editQrCode.html
View file @
8206e3ed
...
@@ -12,6 +12,12 @@
...
@@ -12,6 +12,12 @@
<input
name=
"mid"
class=
"form-control"
th:value=
"*{mid}"
type=
"text"
required
readonly
>
<input
name=
"mid"
class=
"form-control"
th:value=
"*{mid}"
type=
"text"
required
readonly
>
</div>
</div>
</div>
</div>
<div
class=
"form-group"
style=
"display: none"
>
<label
class=
"col-sm-3 control-label is-required"
>
qrCodeId:
</label>
<div
class=
"col-sm-8"
>
<input
name=
"qrCodeId"
class=
"form-control"
th:value=
"*{qrCodeId}"
type=
"text"
required
readonly
>
</div>
</div>
<div
class=
"form-group"
style=
"display: none"
>
<div
class=
"form-group"
style=
"display: none"
>
<label
class=
"col-sm-3 control-label is-required"
>
type:
</label>
<label
class=
"col-sm-3 control-label is-required"
>
type:
</label>
<div
class=
"col-sm-8"
>
<div
class=
"col-sm-8"
>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/sweet/qrCode/qrcode.html
View file @
8206e3ed
...
@@ -55,14 +55,14 @@
...
@@ -55,14 +55,14 @@
field
:
'mid'
,
field
:
'mid'
,
title
:
'序号'
title
:
'序号'
},
},
{
field
:
'type'
,
title
:
'类型'
},
{
{
field
:
'activeName'
,
field
:
'activeName'
,
title
:
'活动名称'
title
:
'活动名称'
},
},
{
field
:
'type'
,
title
:
'类型'
},
{
{
field
:
'alarmNum'
,
field
:
'alarmNum'
,
title
:
'预警个数'
title
:
'预警个数'
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/sweet/service/impl/SweetAdminActiveTypeServiceImpl.java
View file @
8206e3ed
...
@@ -2,6 +2,7 @@ package com.liquidnet.client.admin.zhengzai.sweet.service.impl;
...
@@ -2,6 +2,7 @@ package com.liquidnet.client.admin.zhengzai.sweet.service.impl;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminActiveTypeService
;
import
com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminActiveTypeService
;
import
com.liquidnet.client.admin.zhengzai.sweet.utils.SweetRedisAdminUtils
;
import
com.liquidnet.service.kylin.dto.param.CreateActiveTypeParam
;
import
com.liquidnet.service.kylin.dto.param.CreateActiveTypeParam
;
import
com.liquidnet.service.sweet.entity.SweetActiveType
;
import
com.liquidnet.service.sweet.entity.SweetActiveType
;
import
com.liquidnet.service.sweet.mapper.SweetActiveTypeMapper
;
import
com.liquidnet.service.sweet.mapper.SweetActiveTypeMapper
;
...
@@ -18,6 +19,8 @@ public class SweetAdminActiveTypeServiceImpl implements ISweetAdminActiveTypeSer
...
@@ -18,6 +19,8 @@ public class SweetAdminActiveTypeServiceImpl implements ISweetAdminActiveTypeSer
@Autowired
@Autowired
SweetActiveTypeMapper
sweetActiveTypeMapper
;
SweetActiveTypeMapper
sweetActiveTypeMapper
;
@Autowired
SweetRedisAdminUtils
sweetRedisAdminUtils
;
@Override
@Override
public
List
<
SweetActiveType
>
getList
(
int
page
,
int
size
)
{
public
List
<
SweetActiveType
>
getList
(
int
page
,
int
size
)
{
...
@@ -41,6 +44,7 @@ public class SweetAdminActiveTypeServiceImpl implements ISweetAdminActiveTypeSer
...
@@ -41,6 +44,7 @@ public class SweetAdminActiveTypeServiceImpl implements ISweetAdminActiveTypeSer
bean
.
setAlarmNum
(
createActiveTypeParam
.
getAlarmNum
());
bean
.
setAlarmNum
(
createActiveTypeParam
.
getAlarmNum
());
bean
.
setMaxCount
(
createActiveTypeParam
.
getMaxCount
());
bean
.
setMaxCount
(
createActiveTypeParam
.
getMaxCount
());
bean
.
setType
(
createActiveTypeParam
.
getType
());
bean
.
setType
(
createActiveTypeParam
.
getType
());
sweetRedisAdminUtils
.
setQrCodMaxNum
(
createActiveTypeParam
.
getType
(),
createActiveTypeParam
.
getMaxCount
());
return
sweetActiveTypeMapper
.
insert
(
bean
)
==
1
;
return
sweetActiveTypeMapper
.
insert
(
bean
)
==
1
;
}
}
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/sweet/service/impl/SweetAdminQrCodeServiceImpl.java
View file @
8206e3ed
...
@@ -3,6 +3,8 @@ package com.liquidnet.client.admin.zhengzai.sweet.service.impl;
...
@@ -3,6 +3,8 @@ package com.liquidnet.client.admin.zhengzai.sweet.service.impl;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminActiveTypeService
;
import
com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminActiveTypeService
;
import
com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminQrCodeService
;
import
com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminQrCodeService
;
import
com.liquidnet.client.admin.zhengzai.sweet.utils.SweetRedisAdminUtils
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.kylin.dto.param.CreateActiveQrCodeParam
;
import
com.liquidnet.service.kylin.dto.param.CreateActiveQrCodeParam
;
import
com.liquidnet.service.kylin.dto.param.CreateActiveTypeParam
;
import
com.liquidnet.service.kylin.dto.param.CreateActiveTypeParam
;
import
com.liquidnet.service.sweet.entity.SweetActiveType
;
import
com.liquidnet.service.sweet.entity.SweetActiveType
;
...
@@ -22,10 +24,16 @@ public class SweetAdminQrCodeServiceImpl implements ISweetAdminQrCodeService {
...
@@ -22,10 +24,16 @@ public class SweetAdminQrCodeServiceImpl implements ISweetAdminQrCodeService {
@Autowired
@Autowired
SweetQrCodeMapper
sweetQrCodeMapper
;
SweetQrCodeMapper
sweetQrCodeMapper
;
@Autowired
SweetRedisAdminUtils
sweetRedisAdminUtils
;
@Override
@Override
public
List
<
SweetQrCode
>
getList
(
String
type
)
{
public
List
<
SweetQrCode
>
getList
(
String
type
)
{
return
sweetQrCodeMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SweetQrCode
.
class
).
eq
(
SweetQrCode:
:
getType
,
type
));
List
<
SweetQrCode
>
list
=
sweetQrCodeMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SweetQrCode
.
class
).
eq
(
SweetQrCode:
:
getType
,
type
));
for
(
SweetQrCode
item
:
list
)
{
item
.
setShowNum
(
sweetRedisAdminUtils
.
getQrCodeShowNum
(
Integer
.
parseInt
(
type
),
item
.
getQrCodeId
()));
}
return
list
;
}
}
@Override
@Override
...
@@ -34,12 +42,20 @@ public class SweetAdminQrCodeServiceImpl implements ISweetAdminQrCodeService {
...
@@ -34,12 +42,20 @@ public class SweetAdminQrCodeServiceImpl implements ISweetAdminQrCodeService {
SweetQrCode
bean
=
SweetQrCode
.
getNew
();
SweetQrCode
bean
=
SweetQrCode
.
getNew
();
int
count
=
sweetQrCodeMapper
.
selectCount
(
Wrappers
.
lambdaQuery
(
SweetQrCode
.
class
).
eq
(
SweetQrCode:
:
getType
,
createActiveTypeParam
.
getType
()));
int
count
=
sweetQrCodeMapper
.
selectCount
(
Wrappers
.
lambdaQuery
(
SweetQrCode
.
class
).
eq
(
SweetQrCode:
:
getType
,
createActiveTypeParam
.
getType
()));
for
(
int
i
=
0
;
i
<
createActiveTypeParam
.
getCount
();
i
++)
{
for
(
int
i
=
0
;
i
<
createActiveTypeParam
.
getCount
();
i
++)
{
bean
.
setUrl
(
createActiveTypeParam
.
getUrl
().
concat
(
"&swat="
)
+
(
count
+
i
+
1
));
int
swat
=
count
+
i
+
1
;
String
qrCodeId
=
IDGenerator
.
nextMilliId
();
bean
.
setQrCodeId
(
qrCodeId
);
bean
.
setUrl
(
createActiveTypeParam
.
getUrl
().
concat
(
"&swat="
)
+
swat
);
bean
.
setReadNum
(
0
);
bean
.
setReadNum
(
0
);
bean
.
setShowNum
(
0
);
bean
.
setShowNum
(
0
);
bean
.
setType
(
createActiveTypeParam
.
getType
());
bean
.
setType
(
createActiveTypeParam
.
getType
());
sweetQrCodeMapper
.
insert
(
bean
);
sweetQrCodeMapper
.
insert
(
bean
);
//初始化 展示次数 读取次数
sweetRedisAdminUtils
.
initQrCodeShowNum
(
createActiveTypeParam
.
getType
(),
qrCodeId
);
sweetRedisAdminUtils
.
initQrCodeReadNum
(
createActiveTypeParam
.
getType
(),
qrCodeId
);
}
}
//纪录实体类List
sweetRedisAdminUtils
.
setQrCodeDetails
(
createActiveTypeParam
.
getType
(),
sweetQrCodeMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SweetQrCode
.
class
).
eq
(
SweetQrCode:
:
getType
,
createActiveTypeParam
.
getType
())));
return
true
;
return
true
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -56,6 +72,7 @@ public class SweetAdminQrCodeServiceImpl implements ISweetAdminQrCodeService {
...
@@ -56,6 +72,7 @@ public class SweetAdminQrCodeServiceImpl implements ISweetAdminQrCodeService {
public
Boolean
changeInfo
(
CreateActiveQrCodeParam
createActiveTypeParam
)
{
public
Boolean
changeInfo
(
CreateActiveQrCodeParam
createActiveTypeParam
)
{
SweetQrCode
bean
=
SweetQrCode
.
getNew
();
SweetQrCode
bean
=
SweetQrCode
.
getNew
();
bean
.
setReadNum
(
createActiveTypeParam
.
getReadNum
());
bean
.
setReadNum
(
createActiveTypeParam
.
getReadNum
());
sweetRedisAdminUtils
.
setQrCodeReadNum
(
createActiveTypeParam
.
getType
(),
createActiveTypeParam
.
getQrCodeId
(),
createActiveTypeParam
.
getReadNum
());
return
sweetQrCodeMapper
.
update
(
bean
,
Wrappers
.
lambdaUpdate
(
SweetQrCode
.
class
).
eq
(
SweetQrCode:
:
getMid
,
createActiveTypeParam
.
getMid
()))
>
0
;
return
sweetQrCodeMapper
.
update
(
bean
,
Wrappers
.
lambdaUpdate
(
SweetQrCode
.
class
).
eq
(
SweetQrCode:
:
getMid
,
createActiveTypeParam
.
getMid
()))
>
0
;
}
}
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/sweet/utils/SweetRedisAdminUtils.java
View file @
8206e3ed
...
@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
...
@@ -4,6 +4,7 @@ import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import
com.liquidnet.service.sweet.constant.SweetConstant
;
import
com.liquidnet.service.sweet.constant.SweetConstant
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityVo
;
import
com.liquidnet.service.sweet.entity.SweetQrCode
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -36,6 +37,7 @@ public class SweetRedisAdminUtils {
...
@@ -36,6 +37,7 @@ public class SweetRedisAdminUtils {
.
concat
(
prizeId
);
.
concat
(
prizeId
);
redisDataSourceUtil
.
getRedisSweetUtil
().
incr
(
redisKey
,
num
);
redisDataSourceUtil
.
getRedisSweetUtil
().
incr
(
redisKey
,
num
);
}
}
public
void
decrIntegralActivityPrizeNum
(
String
integralActivityId
,
String
prizeId
,
Integer
num
)
{
public
void
decrIntegralActivityPrizeNum
(
String
integralActivityId
,
String
prizeId
,
Integer
num
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.
concat
(
integralActivityId
)
.
concat
(
integralActivityId
)
...
@@ -43,6 +45,7 @@ public class SweetRedisAdminUtils {
...
@@ -43,6 +45,7 @@ public class SweetRedisAdminUtils {
.
concat
(
prizeId
);
.
concat
(
prizeId
);
redisDataSourceUtil
.
getRedisSweetUtil
().
decr
(
redisKey
,
num
);
redisDataSourceUtil
.
getRedisSweetUtil
().
decr
(
redisKey
,
num
);
}
}
public
void
delIntegralActivityPrizeNum
(
String
integralActivityId
,
String
prizeId
)
{
public
void
delIntegralActivityPrizeNum
(
String
integralActivityId
,
String
prizeId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.
concat
(
integralActivityId
)
.
concat
(
integralActivityId
)
...
@@ -111,4 +114,40 @@ public class SweetRedisAdminUtils {
...
@@ -111,4 +114,40 @@ public class SweetRedisAdminUtils {
return
(
int
)
obj
;
return
(
int
)
obj
;
}
}
}
}
//
public
void
initQrCodeReadNum
(
int
type
,
String
qrCodeId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_READ_NUM
.
concat
(
type
+
""
).
concat
(
":qrCodeId:"
).
concat
(
qrCodeId
);
redisDataSourceUtil
.
getRedisSweetUtil
().
set
(
redisKey
,
0
);
}
public
void
setQrCodeReadNum
(
int
type
,
String
qrCodeId
,
int
num
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_READ_NUM
.
concat
(
type
+
""
).
concat
(
":qrCodeId:"
).
concat
(
qrCodeId
);
redisDataSourceUtil
.
getRedisSweetUtil
().
set
(
redisKey
,
num
);
}
public
int
getQrCodeShowNum
(
int
type
,
String
qrCodeId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_SHOW_NUM
.
concat
(
type
+
""
).
concat
(
":qrCodeId:"
).
concat
(
qrCodeId
);
Object
obj
=
redisDataSourceUtil
.
getRedisSweetUtil
().
get
(
redisKey
);
if
(
obj
==
null
)
{
return
0
;
}
else
{
return
(
int
)
obj
;
}
}
public
void
initQrCodeShowNum
(
int
type
,
String
qrCodeId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_SHOW_NUM
.
concat
(
type
+
""
).
concat
(
":qrCodeId:"
).
concat
(
qrCodeId
);
redisDataSourceUtil
.
getRedisSweetUtil
().
set
(
redisKey
,
0
);
}
public
void
setQrCodMaxNum
(
int
type
,
int
num
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_MAX_NUM
.
concat
(
type
+
""
);
redisDataSourceUtil
.
getRedisSweetUtil
().
set
(
redisKey
,
num
);
}
public
void
setQrCodeDetails
(
int
type
,
List
<
SweetQrCode
>
data
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_LIST
.
concat
(
type
+
""
);
redisDataSourceUtil
.
getRedisSweetUtil
().
set
(
redisKey
,
data
);
}
}
}
liquidnet-bus-common/liquidnet-common-base/src/main/java/com/liquidnet/commons/lang/util/CollectionUtil.java
View file @
8206e3ed
...
@@ -13,6 +13,7 @@ public class CollectionUtil {
...
@@ -13,6 +13,7 @@ public class CollectionUtil {
private
static
final
LinkedList
<
Object
[]>
OBJECTS_LINKED_LIST
=
new
LinkedList
<>();
private
static
final
LinkedList
<
Object
[]>
OBJECTS_LINKED_LIST
=
new
LinkedList
<>();
private
static
final
LinkedMultiValueMap
<
String
,
String
>
STRING_STRING_LINKED_MULTI_VALUE_MAP
=
new
LinkedMultiValueMap
<>();
private
static
final
LinkedMultiValueMap
<
String
,
String
>
STRING_STRING_LINKED_MULTI_VALUE_MAP
=
new
LinkedMultiValueMap
<>();
private
static
final
ArrayList
<
String
>
STRING_ARRAY_LIST
=
new
ArrayList
<>();
private
static
final
ArrayList
<
String
>
STRING_ARRAY_LIST
=
new
ArrayList
<>();
private
static
final
ArrayList
<
Integer
>
INTEGER_ARRAY_LIST
=
new
ArrayList
<>();
private
static
final
ArrayList
<
Object
>
OBJECT_ARRAY_LIST
=
new
ArrayList
<>();
private
static
final
ArrayList
<
Object
>
OBJECT_ARRAY_LIST
=
new
ArrayList
<>();
...
@@ -44,6 +45,11 @@ public class CollectionUtil {
...
@@ -44,6 +45,11 @@ public class CollectionUtil {
return
(
ArrayList
<
String
>)
STRING_ARRAY_LIST
.
clone
();
return
(
ArrayList
<
String
>)
STRING_ARRAY_LIST
.
clone
();
}
}
public
static
ArrayList
<
Integer
>
arrayListInteger
()
{
return
(
ArrayList
<
Integer
>)
INTEGER_ARRAY_LIST
.
clone
();
}
public
static
ArrayList
<
Object
>
arrayListObject
()
{
public
static
ArrayList
<
Object
>
arrayListObject
()
{
return
(
ArrayList
<
Object
>)
OBJECT_ARRAY_LIST
.
clone
();
return
(
ArrayList
<
Object
>)
OBJECT_ARRAY_LIST
.
clone
();
}
}
...
...
liquidnet-bus-do/liquidnet-service-sweet-do/src/main/java/com/liquidnet/service/sweet/entity/SweetQrCode.java
View file @
8206e3ed
...
@@ -26,6 +26,12 @@ public class SweetQrCode implements Serializable, Cloneable {
...
@@ -26,6 +26,12 @@ public class SweetQrCode implements Serializable, Cloneable {
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
private
Long
mid
;
/**
* Id
*/
private
String
qrCodeId
;
/**
/**
* 活动type类型
* 活动type类型
*/
*/
...
@@ -49,6 +55,7 @@ public class SweetQrCode implements Serializable, Cloneable {
...
@@ -49,6 +55,7 @@ public class SweetQrCode implements Serializable, Cloneable {
private
LocalDateTime
createdAt
;
private
LocalDateTime
createdAt
;
private
static
final
SweetQrCode
obj
=
new
SweetQrCode
();
private
static
final
SweetQrCode
obj
=
new
SweetQrCode
();
public
static
SweetQrCode
getNew
()
{
public
static
SweetQrCode
getNew
()
{
try
{
try
{
return
(
SweetQrCode
)
obj
.
clone
();
return
(
SweetQrCode
)
obj
.
clone
();
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetQrCodeController.java
0 → 100644
View file @
8206e3ed
package
com
.
liquidnet
.
service
.
sweet
.
controller
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.sweet.service.ISweetActiveTypeService
;
import
com.liquidnet.service.sweet.service.ISweetAnswerService
;
import
com.liquidnet.service.sweet.vo.SweetAnswerVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
/**
* <p>
* 答题表 前端控制器
* </p>
*
* @author jiangxiulong
* @since 2021-08-12
*/
@Api
(
tags
=
"活动-二维码"
)
@RestController
@RequestMapping
(
"/active"
)
public
class
SweetQrCodeController
{
@Autowired
private
ISweetActiveTypeService
sweetActiveTypeService
;
@GetMapping
(
"qrCode/type"
)
@ApiOperation
(
"获取答题记录详情"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"int"
,
name
=
"type"
,
value
=
"活动type"
,
required
=
true
)
})
public
ResponseDto
<
String
>
getRandomQrCode
(
int
type
)
{
return
ResponseDto
.
success
(
sweetActiveTypeService
.
getRandomQrCode
(
type
));
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetActiveQrCodeServiceImpl.java
0 → 100644
View file @
8206e3ed
package
com
.
liquidnet
.
service
.
sweet
.
service
.
impl
;
import
com.liquidnet.commons.lang.util.RandomUtil
;
import
com.liquidnet.service.sweet.entity.SweetQrCode
;
import
com.liquidnet.service.sweet.service.ISweetActiveTypeService
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
@Service
public
class
SweetActiveQrCodeServiceImpl
implements
ISweetActiveTypeService
{
@Autowired
private
RedisDataUtils
redisDataUtils
;
@Override
public
String
getRandomQrCode
(
int
type
)
{
List
<
SweetQrCode
>
sweetQrCodeList
=
redisDataUtils
.
getQrCodeTypeNum
(
type
);
//SweetQrCodeList
SweetQrCode
bean
=
judgeRandom
(
type
,
sweetQrCodeList
);
redisDataUtils
.
incrQrCodeShowNum
(
type
,
bean
.
getQrCodeId
());
//访问数量
return
bean
.
getUrl
();
}
//获取 可使用的随机数
private
SweetQrCode
judgeRandom
(
int
type
,
List
<
SweetQrCode
>
sweetQrCodeList
)
{
int
randomSwat
=
RandomUtil
.
getRandomInt
(
0
,
sweetQrCodeList
.
size
());
//随机到第几个
int
showNum
=
redisDataUtils
.
getQrCodeShowNum
(
type
,
sweetQrCodeList
.
get
(
randomSwat
).
getQrCodeId
());
//访问数量
int
maxNum
=
redisDataUtils
.
getQrCodeMaxNum
(
type
);
if
(
showNum
>=
maxNum
)
{
//超过阈值
sweetQrCodeList
.
remove
(
randomSwat
);
return
judgeRandom
(
type
,
sweetQrCodeList
);
}
else
{
redisDataUtils
.
setQrCodeDetails
(
type
,
sweetQrCodeList
);
return
sweetQrCodeList
.
get
(
randomSwat
);
}
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetActiveTypeServiceImpl.java
deleted
100644 → 0
View file @
b9d3f92f
package
com
.
liquidnet
.
service
.
sweet
.
service
.
impl
;
import
com.liquidnet.service.sweet.entity.SweetActiveType
;
import
com.liquidnet.service.sweet.mapper.SweetActiveTypeMapper
;
import
com.liquidnet.service.sweet.service.ISweetActiveTypeService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 活动type表 服务实现类
* </p>
*
* @author hujiachen
* @since 2021-12-23
*/
@Service
public
class
SweetActiveTypeServiceImpl
implements
ISweetActiveTypeService
{
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/RedisDataUtils.java
View file @
8206e3ed
...
@@ -558,6 +558,7 @@ public class RedisDataUtils {
...
@@ -558,6 +558,7 @@ public class RedisDataUtils {
return
collect
;
return
collect
;
}
}
}
}
public
void
setIntegralActivityDrawAll
(
String
integralActivityId
,
List
<
SweetIntegralActivityDraw
>
sweetIntegralActivityDraws
)
{
public
void
setIntegralActivityDrawAll
(
String
integralActivityId
,
List
<
SweetIntegralActivityDraw
>
sweetIntegralActivityDraws
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_ALL_LIST
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_ALL_LIST
.
concat
(
integralActivityId
);
.
concat
(
integralActivityId
);
...
@@ -576,6 +577,7 @@ public class RedisDataUtils {
...
@@ -576,6 +577,7 @@ public class RedisDataUtils {
return
(
LinkedList
<
IntegralActivityDrawVo
>)
obj
;
return
(
LinkedList
<
IntegralActivityDrawVo
>)
obj
;
}
}
}
}
public
void
setIntegralActivityDrawList
(
String
uid
,
String
integralActivityId
,
List
<
IntegralActivityDrawVo
>
integralActivityDrawVos
)
{
public
void
setIntegralActivityDrawList
(
String
uid
,
String
integralActivityId
,
List
<
IntegralActivityDrawVo
>
integralActivityDrawVos
)
{
List
<
IntegralActivityDrawVo
>
myList
=
integralActivityDrawVos
.
stream
().
collect
(
Collectors
.
toCollection
(
LinkedList:
:
new
));
List
<
IntegralActivityDrawVo
>
myList
=
integralActivityDrawVos
.
stream
().
collect
(
Collectors
.
toCollection
(
LinkedList:
:
new
));
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER
...
@@ -584,6 +586,7 @@ public class RedisDataUtils {
...
@@ -584,6 +586,7 @@ public class RedisDataUtils {
.
concat
(
uid
);
.
concat
(
uid
);
redisUtil
.
set
(
redisKey
,
myList
);
redisUtil
.
set
(
redisKey
,
myList
);
}
}
public
void
delIntegralActivityDrawList
(
String
uid
,
String
integralActivityId
)
{
public
void
delIntegralActivityDrawList
(
String
uid
,
String
integralActivityId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER
.
concat
(
integralActivityId
)
.
concat
(
integralActivityId
)
...
@@ -671,6 +674,7 @@ public class RedisDataUtils {
...
@@ -671,6 +674,7 @@ public class RedisDataUtils {
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_BLACK
;
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_BLACK
;
redisUtil
.
set
(
redisKey
,
uidS
);
redisUtil
.
set
(
redisKey
,
uidS
);
}
}
public
List
<
String
>
getIntegralActivityDrawBlack
()
{
public
List
<
String
>
getIntegralActivityDrawBlack
()
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_BLACK
;
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_BLACK
;
Object
obj
=
redisUtil
.
get
(
redisKey
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
...
@@ -680,10 +684,12 @@ public class RedisDataUtils {
...
@@ -680,10 +684,12 @@ public class RedisDataUtils {
return
(
List
<
String
>)
obj
;
return
(
List
<
String
>)
obj
;
}
}
}
}
public
void
setIntegralActivityDrawWhite
(
List
<
String
>
uidS
)
{
public
void
setIntegralActivityDrawWhite
(
List
<
String
>
uidS
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_WHITE
;
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_WHITE
;
redisUtil
.
set
(
redisKey
,
uidS
);
redisUtil
.
set
(
redisKey
,
uidS
);
}
}
public
List
<
String
>
getIntegralActivityDrawWhite
()
{
public
List
<
String
>
getIntegralActivityDrawWhite
()
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_WHITE
;
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_WHITE
;
Object
obj
=
redisUtil
.
get
(
redisKey
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
...
@@ -782,4 +788,45 @@ public class RedisDataUtils {
...
@@ -782,4 +788,45 @@ public class RedisDataUtils {
.
concat
(
integralActivityId
);
.
concat
(
integralActivityId
);
redisUtil
.
decr
(
redisKey
,
num
);
redisUtil
.
decr
(
redisKey
,
num
);
}
}
public
List
<
SweetQrCode
>
getQrCodeTypeNum
(
int
type
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_LIST
.
concat
(
type
+
""
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
==
null
)
{
return
new
ArrayList
<>();
}
else
{
return
(
List
<
SweetQrCode
>)
obj
;
}
}
public
void
setQrCodeDetails
(
int
type
,
List
<
SweetQrCode
>
data
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_LIST
.
concat
(
type
+
""
);
redisUtil
.
set
(
redisKey
,
data
);
}
public
int
getQrCodeShowNum
(
int
type
,
String
qrCodeId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_SHOW_NUM
.
concat
(
type
+
""
).
concat
(
":qrCodeId:"
).
concat
(
qrCodeId
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
==
null
)
{
return
0
;
}
else
{
return
(
int
)
obj
;
}
}
public
void
incrQrCodeShowNum
(
int
type
,
String
qrCodeId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_SHOW_NUM
.
concat
(
type
+
""
).
concat
(
":qrCodeId:"
).
concat
(
qrCodeId
);
redisUtil
.
incr
(
redisKey
,
1
);
}
public
int
getQrCodeMaxNum
(
int
type
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_QRCODE_MAX_NUM
.
concat
(
type
+
""
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
==
null
)
{
return
0
;
}
else
{
return
(
int
)
obj
;
}
}
}
}
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