记得上下班打卡 | 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
52e18c88
Commit
52e18c88
authored
Aug 03, 2021
by
胡佳晨
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into test
parents
a6d97095
7e6889a9
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
337 additions
and
44 deletions
+337
-44
DateUtil.java
...c/main/java/com/liquidnet/commons/lang/util/DateUtil.java
+11
-4
application-test.yml
liquidnet-bus-config/liquidnet-config/application-test.yml
+2
-2
PayChannelStrategyAlipayImpl.java
...n/channel/strategy/impl/PayChannelStrategyAlipayImpl.java
+1
-0
PayController.java
...om/liquidnet/service/dragon/controller/PayController.java
+12
-0
KylinOrderTicketsServiceImpl.java
...vice/kylin/service/impl/KylinOrderTicketsServiceImpl.java
+16
-16
PayChannelStrategyAlipayImpl.java
...n/channel/strategy/impl/PayChannelStrategyAlipayImpl.java
+1
-0
db_sweetsugar_structure.sql
.../liquidnet-service-sweet/docu/db_sweetsugar_structure.sql
+27
-0
SweetConstant.java
...a/com/liquidnet/service/sweet/constant/SweetConstant.java
+2
-0
SweetAppletController.java
...idnet/service/sweet/controller/SweetAppletController.java
+2
-2
SweetWechatActionCallbackController.java
...sweet/controller/SweetWechatActionCallbackController.java
+6
-2
SweetWechatUser.java
...a/com/liquidnet/service/sweet/entity/SweetWechatUser.java
+119
-0
SubscribeHandler.java
...com/liquidnet/service/sweet/handler/SubscribeHandler.java
+44
-0
SweetWechatUserMapper.java
...liquidnet/service/sweet/mapper/SweetWechatUserMapper.java
+16
-0
ISweetWechatUserService.java
...uidnet/service/sweet/service/ISweetWechatUserService.java
+16
-0
SweetWechatCallbackServiceImpl.java
...ce/sweet/service/impl/SweetWechatCallbackServiceImpl.java
+4
-3
SweetWechatUserServiceImpl.java
...ervice/sweet/service/impl/SweetWechatUserServiceImpl.java
+20
-0
RedisDataUtils.java
...ava/com/liquidnet/service/sweet/utils/RedisDataUtils.java
+27
-11
WechatSignUtils.java
...va/com/liquidnet/service/sweet/utils/WechatSignUtils.java
+6
-4
SweetWechatUserMapper.xml
.../liquidnet/service/sweet/mapper/SweetWechatUserMapper.xml
+5
-0
No files found.
liquidnet-bus-common/liquidnet-common-base/src/main/java/com/liquidnet/commons/lang/util/DateUtil.java
View file @
52e18c88
...
@@ -4,10 +4,7 @@ import org.apache.commons.lang3.StringUtils;
...
@@ -4,10 +4,7 @@ import org.apache.commons.lang3.StringUtils;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.Instant
;
import
java.time.*
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.*
;
...
@@ -479,6 +476,16 @@ public abstract class DateUtil {
...
@@ -479,6 +476,16 @@ public abstract class DateUtil {
return
dayLast
+
" 23:59:59"
;
return
dayLast
+
" 23:59:59"
;
}
}
/**
* 秒级时间戳转 LocalDateTime
* @param epochMilli 秒级时间戳
* @return LocalDateTime
*/
public
static
LocalDateTime
ofEpochMilli
(
long
epochMilli
){
// return LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneOffset.of("+8"));
return
LocalDateTime
.
ofEpochSecond
(
epochMilli
,
0
,
ZoneOffset
.
ofHours
(
8
));
}
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
}
}
}
}
liquidnet-bus-config/liquidnet-config/application-test.yml
View file @
52e18c88
...
@@ -71,8 +71,8 @@ liquidnet:
...
@@ -71,8 +71,8 @@ liquidnet:
client
:
client
:
admin
:
admin
:
phpPayUrl
:
http://testdragon.zhengzai.tv
phpPayUrl
:
http://testdragon.zhengzai.tv
phpMallUrl
:
https://testmall.zhengzai.tv
phpMallUrl
:
https://testmall.zhengzai.tv
platformUrl
:
https://testplatform.zhengzai.tv
platformUrl
:
https://testplatform.zhengzai.tv
shunfeng
:
shunfeng
:
url
:
"
https://butler-dev-ms.sf-express.com"
url
:
"
https://butler-dev-ms.sf-express.com"
sk
:
21e9a70f677a2bf29dfa2b3bead4f018
sk
:
21e9a70f677a2bf29dfa2b3bead4f018
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/PayChannelStrategyAlipayImpl.java
View file @
52e18c88
...
@@ -97,6 +97,7 @@ public class PayChannelStrategyAlipayImpl extends AbstractPayChannelStrategyImpl
...
@@ -97,6 +97,7 @@ public class PayChannelStrategyAlipayImpl extends AbstractPayChannelStrategyImpl
//退款
//退款
if
(
notifyMap
.
containsKey
(
"refund_fee"
)
||
notifyMap
.
containsKey
(
"gmt_refund"
)
||
notifyMap
.
containsKey
(
"out_biz_no"
))
{
if
(
notifyMap
.
containsKey
(
"refund_fee"
)
||
notifyMap
.
containsKey
(
"gmt_refund"
)
||
notifyMap
.
containsKey
(
"out_biz_no"
))
{
returnStr
=
dragonOrderRefundsService
.
aliPayRefundCallBack
(
JSON
.
toJSONString
(
notifyMap
));
returnStr
=
dragonOrderRefundsService
.
aliPayRefundCallBack
(
JSON
.
toJSONString
(
notifyMap
));
return
returnStr
;
}
}
// 根据银行订单号获取支付信息
// 根据银行订单号获取支付信息
...
...
liquidnet-bus-service/liquidnet-service-dragon/liquidnet-service-dragon-impl/src/main/java/com/liquidnet/service/dragon/controller/PayController.java
View file @
52e18c88
...
@@ -123,6 +123,18 @@ public class PayController {
...
@@ -123,6 +123,18 @@ public class PayController {
return
ResponseDto
.
success
(
respDto
);
return
ResponseDto
.
success
(
respDto
);
}
}
@GetMapping
(
"/thirdCheckOrder"
)
@ApiOperation
(
"三方订单查询"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"code"
,
value
=
""
,
example
=
"PAY202107131522368438531155"
)
})
@ResponseBody
public
ResponseDto
<
DragonPayOrderQueryRespDto
>
thirdCheckOrder
(
@RequestParam
(
value
=
"code"
)
@NotNull
(
message
=
"支付编号不能为空!"
)
String
code
){
DragonPayOrderQueryRespDto
respDto
=
dragonOrdersService
.
checkOrderStatusByCode
(
code
);
return
ResponseDto
.
success
(
respDto
);
}
@GetMapping
(
"/manulNotify"
)
@GetMapping
(
"/manulNotify"
)
@ApiOperation
(
"手动通知商户"
)
@ApiOperation
(
"手动通知商户"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinOrderTicketsServiceImpl.java
View file @
52e18c88
...
@@ -124,14 +124,12 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
...
@@ -124,14 +124,12 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
// checkOrderTime(uid);
// checkOrderTime(uid);
KylinOrderTicketVo
orderTicketVo
=
dataUtils
.
getOrderTicketVo
(
orderId
);
KylinOrderTicketVo
orderTicketVo
=
dataUtils
.
getOrderTicketVo
(
orderId
);
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"获取订单详情 -> time:"
+
(
currentTime
)
+
"毫秒"
);
if
(!
orderTicketVo
.
getUserId
().
equals
(
uid
))
{
if
(!
orderTicketVo
.
getUserId
().
equals
(
uid
))
{
return
null
;
return
null
;
}
}
if
(
null
!=
orderTicketVo
)
{
if
(
null
!=
orderTicketVo
)
{
KylinPerformanceVo
performanceVo
=
dataUtils
.
getPerformanceVo
(
orderTicketVo
.
getPerformanceId
());
KylinPerformanceVo
performanceVo
=
dataUtils
.
getPerformanceVo
(
orderTicketVo
.
getPerformanceId
());
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"获取演出详情 -> time:"
+
(
currentTime
)
+
"毫秒"
);
List
<
KylinOrderTicketEntitiesVo
>
kylinOrderTicketEntitiesVoList
=
orderTicketVo
.
getEntitiesVoList
();
List
<
KylinOrderTicketEntitiesVo
>
kylinOrderTicketEntitiesVoList
=
orderTicketVo
.
getEntitiesVoList
();
KylinTicketVo
ticketVo
=
null
;
KylinTicketVo
ticketVo
=
null
;
...
@@ -147,7 +145,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
...
@@ -147,7 +145,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
}
}
}
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"巡演票数据 -> time:"
+
(
currentTime
)
+
"毫秒"
);
orderTicketVo
.
setIsTrueName
(
ticketVo
.
getIsTrueName
());
orderTicketVo
.
setIsTrueName
(
ticketVo
.
getIsTrueName
());
orderTicketVo
.
setNoticeImage
(
performanceVo
.
getNoticeImage
());
orderTicketVo
.
setNoticeImage
(
performanceVo
.
getNoticeImage
());
...
@@ -168,7 +165,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
...
@@ -168,7 +165,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
orderTicketVo
.
setQrCode
(
""
);
orderTicketVo
.
setQrCode
(
""
);
}
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"获取二维码 -> time:"
+
(
currentTime
)
+
"毫秒"
);
// 数据脱敏
// 数据脱敏
for
(
KylinOrderTicketEntitiesVo
item
:
kylinOrderTicketEntitiesVoList
)
{
for
(
KylinOrderTicketEntitiesVo
item
:
kylinOrderTicketEntitiesVoList
)
{
...
@@ -180,7 +176,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
...
@@ -180,7 +176,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
}
}
}
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"入场人加密 -> time:"
+
(
currentTime
)
+
"毫秒"
);
//计算 倒计时
//计算 倒计时
Date
nowDate
=
DateUtil
.
parse
(
DateUtil
.
getNowTime
(),
"yyyy-MM-dd HH:mm:ss"
);
Date
nowDate
=
DateUtil
.
parse
(
DateUtil
.
getNowTime
(),
"yyyy-MM-dd HH:mm:ss"
);
if
(
orderTicketVo
.
getStatus
().
equals
(
KylinTableStatusConst
.
ORDER_STATUS0
))
{
if
(
orderTicketVo
.
getStatus
().
equals
(
KylinTableStatusConst
.
ORDER_STATUS0
))
{
...
@@ -195,7 +190,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
...
@@ -195,7 +190,6 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
vo
.
setRestTime
(
0L
);
vo
.
setRestTime
(
0L
);
}
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"获取倒计时 -> time:"
+
(
currentTime
)
+
"毫秒"
);
Integer
orderExpressStatus
=
dataUtils
.
getOrderExpressInfo
(
orderTicketVo
.
getOrderTicketsId
());
Integer
orderExpressStatus
=
dataUtils
.
getOrderExpressInfo
(
orderTicketVo
.
getOrderTicketsId
());
vo
.
setExpressStatus
(
orderExpressStatus
);
vo
.
setExpressStatus
(
orderExpressStatus
);
...
@@ -207,7 +201,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
...
@@ -207,7 +201,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
break
;
break
;
}
}
OrderRefundListVo
data
=
OrderRefundListVo
.
getNew
();
OrderRefundListVo
data
=
OrderRefundListVo
.
getNew
();
data
.
setOrderRefundCode
(
item
.
getOrderRefundCode
().
substring
(
item
.
getOrderRefundCode
().
length
()
-
10
));
if
(
item
.
getOrderRefundCode
().
length
()>
20
)
{
data
.
setOrderRefundCode
(
item
.
getOrderRefundCode
().
substring
(
item
.
getOrderRefundCode
().
length
()
-
10
));
}
data
.
setOrderRefundsId
(
item
.
getOrderRefundsId
());
data
.
setOrderRefundsId
(
item
.
getOrderRefundsId
());
data
.
setStatus
(
item
.
getStatus
());
data
.
setStatus
(
item
.
getStatus
());
data
.
setPrice
(
item
.
getPrice
());
data
.
setPrice
(
item
.
getPrice
());
...
@@ -231,19 +227,18 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
...
@@ -231,19 +227,18 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
}
else
{
}
else
{
vo
.
setIsCanRefund
(
0
);
vo
.
setIsCanRefund
(
0
);
}
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"是否支持退款 -> time:"
+
(
currentTime
)
+
"毫秒"
);
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"循环退款详情 -> time:"
+
(
currentTime
)
+
"毫秒"
);
orderTicketVo
.
setOrderRefundListVos
(
orderRefundListVos
);
orderTicketVo
.
setOrderRefundListVos
(
orderRefundListVos
);
orderTicketVo
.
setOrderCode
(
orderTicketVo
.
getOrderCode
().
substring
(
orderTicketVo
.
getOrderCode
().
length
()
-
10
));
if
(
orderTicketVo
.
getOrderCode
().
length
()>
20
)
{
orderTicketVo
.
setOrderCode
(
orderTicketVo
.
getOrderCode
().
substring
(
orderTicketVo
.
getOrderCode
().
length
()
-
10
));
}
vo
.
setOrderTicketVo
(
orderTicketVo
);
vo
.
setOrderTicketVo
(
orderTicketVo
);
vo
.
setEnterDescribe
(
dataUtils
.
getEnterInfo
(
performanceVo
.
getType
(),
orderTicketVo
.
getGetTicketType
(),
orderTicketVo
.
getIsStudent
(),
ticketVo
.
getIsTrueName
()));
vo
.
setEnterDescribe
(
dataUtils
.
getEnterInfo
(
performanceVo
.
getType
(),
orderTicketVo
.
getGetTicketType
(),
orderTicketVo
.
getIsStudent
(),
ticketVo
.
getIsTrueName
()));
}
}
log
.
info
(
UserPathDto
.
setData
(
"订单详情"
,
orderId
,
vo
));
log
.
info
(
UserPathDto
.
setData
(
"订单详情"
,
orderId
,
vo
));
return
vo
;
return
vo
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
info
(
"订单详情异常:"
,
e
);
return
null
;
return
null
;
}
}
}
}
...
@@ -300,8 +295,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
...
@@ -300,8 +295,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
kylinOrderTicketEntitiesPreRefundVos
.
add
(
refundVo
);
kylinOrderTicketEntitiesPreRefundVos
.
add
(
refundVo
);
}
}
orderTicketVo
.
setFieldName
(
performanceVo
.
getFieldName
());
orderTicketVo
.
setFieldName
(
performanceVo
.
getFieldName
());
orderTicketVo
.
setOrderCode
(
orderTicketVo
.
getOrderCode
().
substring
(
orderTicketVo
.
getOrderCode
().
length
()
-
10
));
if
(
orderTicketVo
.
getOrderCode
().
length
()>
20
)
{
orderTicketVo
.
setOrderCode
(
orderTicketVo
.
getOrderCode
().
substring
(
orderTicketVo
.
getOrderCode
().
length
()
-
10
));
}
BeanUtils
.
copyProperties
(
orderTicketVo
,
vo
);
BeanUtils
.
copyProperties
(
orderTicketVo
,
vo
);
vo
.
setIsTrueName
(
performanceVo
.
getIsTrueName
());
vo
.
setIsTrueName
(
performanceVo
.
getIsTrueName
());
vo
.
setEntitiesPreRefundVos
(
kylinOrderTicketEntitiesPreRefundVos
);
vo
.
setEntitiesPreRefundVos
(
kylinOrderTicketEntitiesPreRefundVos
);
...
@@ -324,9 +320,13 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
...
@@ -324,9 +320,13 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20003"
));
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20003"
));
}
}
orderTicketVo
.
setFieldName
(
performanceVo
.
getFieldName
());
orderTicketVo
.
setFieldName
(
performanceVo
.
getFieldName
());
orderTicketVo
.
setOrderCode
(
orderTicketVo
.
getOrderCode
().
substring
(
orderTicketVo
.
getOrderCode
().
length
()
-
10
));
if
(
orderTicketVo
.
getOrderCode
().
length
()>
20
)
{
orderTicketVo
.
setOrderCode
(
orderTicketVo
.
getOrderCode
().
substring
(
orderTicketVo
.
getOrderCode
().
length
()
-
10
));
}
KylinOrderRefundsVo
kylinOrderRefundsVoBase
=
dataUtils
.
getOrderRefundVo
(
orderRefundId
);
KylinOrderRefundsVo
kylinOrderRefundsVoBase
=
dataUtils
.
getOrderRefundVo
(
orderRefundId
);
kylinOrderRefundsVoBase
.
setOrderRefundCode
(
kylinOrderRefundsVoBase
.
getOrderRefundCode
().
substring
(
kylinOrderRefundsVoBase
.
getOrderRefundCode
().
length
()
-
10
));
if
(
kylinOrderRefundsVoBase
.
getOrderRefundCode
().
length
()>
20
)
{
kylinOrderRefundsVoBase
.
setOrderRefundCode
(
kylinOrderRefundsVoBase
.
getOrderRefundCode
().
substring
(
kylinOrderRefundsVoBase
.
getOrderRefundCode
().
length
()
-
10
));
}
vo
.
setKylinOrderRefundsVoBaseList
(
kylinOrderRefundsVoBase
);
vo
.
setKylinOrderRefundsVoBaseList
(
kylinOrderRefundsVoBase
);
vo
.
setOrderTicketVo
(
orderTicketVo
);
vo
.
setOrderTicketVo
(
orderTicketVo
);
return
ResponseDto
.
success
(
vo
);
return
ResponseDto
.
success
(
vo
);
...
...
liquidnet-bus-service/liquidnet-service-notify/liquidnet-service-notify-impl/src/main/java/com/liquidnet/service/dragon/channel/strategy/impl/PayChannelStrategyAlipayImpl.java
View file @
52e18c88
...
@@ -97,6 +97,7 @@ public class PayChannelStrategyAlipayImpl extends AbstractPayChannelStrategyImpl
...
@@ -97,6 +97,7 @@ public class PayChannelStrategyAlipayImpl extends AbstractPayChannelStrategyImpl
//退款
//退款
if
(
notifyMap
.
containsKey
(
"refund_fee"
)
||
notifyMap
.
containsKey
(
"gmt_refund"
)
||
notifyMap
.
containsKey
(
"out_biz_no"
))
{
if
(
notifyMap
.
containsKey
(
"refund_fee"
)
||
notifyMap
.
containsKey
(
"gmt_refund"
)
||
notifyMap
.
containsKey
(
"out_biz_no"
))
{
returnStr
=
dragonOrderRefundsService
.
aliPayRefundCallBack
(
JSON
.
toJSONString
(
notifyMap
));
returnStr
=
dragonOrderRefundsService
.
aliPayRefundCallBack
(
JSON
.
toJSONString
(
notifyMap
));
return
returnStr
;
}
}
// 根据银行订单号获取支付信息
// 根据银行订单号获取支付信息
...
...
liquidnet-bus-service/liquidnet-service-sweet/docu/db_sweetsugar_structure.sql
View file @
52e18c88
...
@@ -182,3 +182,30 @@ CREATE TABLE `sweet_manual_shop`
...
@@ -182,3 +182,30 @@ CREATE TABLE `sweet_manual_shop`
DEFAULT
CHARSET
=
utf8
DEFAULT
CHARSET
=
utf8
COLLATE
=
utf8_unicode_ci
COLLATE
=
utf8_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'电子宣传手册商铺表'
;
ROW_FORMAT
=
DYNAMIC
COMMENT
'电子宣传手册商铺表'
;
-- 正在现场服务号关注事件储存用户信息表
drop
TABLE
if
exists
`sweet_wechat_user`
;
CREATE
TABLE
`sweet_wechat_user`
(
`mid`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
,
`user_id`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'user_id'
,
`openId`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'openId'
,
`unionId`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'unionId'
,
`nickname`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'昵称'
,
`sexDesc`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'性别'
,
`sex`
tinyint
NOT
NULL
DEFAULT
0
COMMENT
'性别 男1'
,
`headImgUrl`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'头像'
,
`language`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'zh_CN'
,
`country`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'国家'
,
`province`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'省'
,
`city`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'市'
,
`subscribeTime`
datetime
NULL
DEFAULT
null
COMMENT
'关注时间'
,
`subscribeScene`
varchar
(
200
)
NOT
NULL
DEFAULT
''
COMMENT
'ADD_SCENE_SEARCH 关注方式'
,
`created_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'创建时间'
,
`updated_at`
datetime
NULL
DEFAULT
CURRENT_TIMESTAMP
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`mid`
),
KEY
`sweet_wechat_user_user_id`
(
`user_id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
utf8mb4
COLLATE
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
'正在现场服务号关注事件储存用户信息表'
;
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/constant/SweetConstant.java
View file @
52e18c88
...
@@ -18,6 +18,8 @@ public class SweetConstant {
...
@@ -18,6 +18,8 @@ public class SweetConstant {
public
final
static
String
REDIS_KEY_SWEET_REMIND
=
"sweet:remind:unionId:"
;
public
final
static
String
REDIS_KEY_SWEET_REMIND
=
"sweet:remind:unionId:"
;
public
static
final
String
REDIS_KEY_SWEET_REMIND_ALL
=
"sweet:remind:unionId*"
;
public
static
final
String
REDIS_KEY_SWEET_REMIND_ALL
=
"sweet:remind:unionId*"
;
public
final
static
String
REDIS_KEY_SWEET_WECHAT_USER_INFO
=
"sweet:wechatUser:unionId:"
;
public
enum
ManualPosition
{
public
enum
ManualPosition
{
artist
(
"艺人"
),
artist
(
"艺人"
),
signingTime
(
"签售时间"
),
signingTime
(
"签售时间"
),
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetAppletController.java
View file @
52e18c88
...
@@ -194,7 +194,7 @@ public class SweetAppletController {
...
@@ -194,7 +194,7 @@ public class SweetAppletController {
if
(
uid
.
equalsIgnoreCase
(
"0"
))
{
if
(
uid
.
equalsIgnoreCase
(
"0"
))
{
return
ResponseDto
.
failure
();
return
ResponseDto
.
failure
();
}
}
redisDataUtils
.
setArtistsRelationRedisVo
(
uid
,
artistsId
,
"
sign
"
);
redisDataUtils
.
setArtistsRelationRedisVo
(
uid
,
artistsId
,
"
watch
"
);
return
ResponseDto
.
success
();
return
ResponseDto
.
success
();
}
}
...
@@ -209,7 +209,7 @@ public class SweetAppletController {
...
@@ -209,7 +209,7 @@ public class SweetAppletController {
if
(
uid
.
equalsIgnoreCase
(
"0"
))
{
if
(
uid
.
equalsIgnoreCase
(
"0"
))
{
return
ResponseDto
.
failure
();
return
ResponseDto
.
failure
();
}
}
redisDataUtils
.
setArtistsRelationRedisVo
(
uid
,
artistsId
,
"
watch
"
);
redisDataUtils
.
setArtistsRelationRedisVo
(
uid
,
artistsId
,
"
sign
"
);
return
ResponseDto
.
success
();
return
ResponseDto
.
success
();
}
}
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetWechatActionCallbackController.java
View file @
52e18c88
...
@@ -20,6 +20,9 @@ public class SweetWechatActionCallbackController {
...
@@ -20,6 +20,9 @@ public class SweetWechatActionCallbackController {
@Autowired
@Autowired
private
SweetWechatCallbackServiceImpl
sweetWechatCallbackService
;
private
SweetWechatCallbackServiceImpl
sweetWechatCallbackService
;
@Autowired
private
WechatSignUtils
wechatSignUtils
;
@GetMapping
(
"record"
)
@GetMapping
(
"record"
)
@ApiOperation
(
"get"
)
@ApiOperation
(
"get"
)
public
void
record
(
public
void
record
(
...
@@ -30,7 +33,7 @@ public class SweetWechatActionCallbackController {
...
@@ -30,7 +33,7 @@ public class SweetWechatActionCallbackController {
@RequestParam
()
String
echostr
@RequestParam
()
String
echostr
)
{
)
{
try
{
try
{
if
(
W
echatSignUtils
.
checkSignature
(
signature
,
timestamp
,
nonce
))
{
if
(
w
echatSignUtils
.
checkSignature
(
signature
,
timestamp
,
nonce
))
{
log
.
info
(
"验签通过"
);
log
.
info
(
"验签通过"
);
PrintWriter
out
=
response
.
getWriter
();
PrintWriter
out
=
response
.
getWriter
();
out
.
print
(
echostr
);
out
.
print
(
echostr
);
...
@@ -47,6 +50,7 @@ public class SweetWechatActionCallbackController {
...
@@ -47,6 +50,7 @@ public class SweetWechatActionCallbackController {
@ApiOperation
(
"post"
)
@ApiOperation
(
"post"
)
public
String
record
(
public
String
record
(
@RequestBody
String
requestBody
,
@RequestBody
String
requestBody
,
// @RequestParam String requestBody,
@RequestParam
(
"signature"
)
String
signature
,
@RequestParam
(
"signature"
)
String
signature
,
@RequestParam
(
"timestamp"
)
String
timestamp
,
@RequestParam
(
"timestamp"
)
String
timestamp
,
@RequestParam
(
"nonce"
)
String
nonce
,
@RequestParam
(
"nonce"
)
String
nonce
,
...
@@ -57,7 +61,7 @@ public class SweetWechatActionCallbackController {
...
@@ -57,7 +61,7 @@ public class SweetWechatActionCallbackController {
log
.
info
(
"\n接收微信请求:[openid=[{}], [signature=[{}], encType=[{}], msgSignature=[{}],"
log
.
info
(
"\n接收微信请求:[openid=[{}], [signature=[{}], encType=[{}], msgSignature=[{}],"
+
" timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] "
,
+
" timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] "
,
openid
,
signature
,
encType
,
msgSignature
,
timestamp
,
nonce
,
requestBody
);
openid
,
signature
,
encType
,
msgSignature
,
timestamp
,
nonce
,
requestBody
);
if
(!
W
echatSignUtils
.
checkSignature
(
signature
,
timestamp
,
nonce
))
{
if
(!
w
echatSignUtils
.
checkSignature
(
signature
,
timestamp
,
nonce
))
{
log
.
info
(
"验签未通过,非法请求,可能属于伪造的请求!"
);
log
.
info
(
"验签未通过,非法请求,可能属于伪造的请求!"
);
return
""
;
return
""
;
}
}
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/entity/SweetWechatUser.java
0 → 100644
View file @
52e18c88
package
com
.
liquidnet
.
service
.
sweet
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 正在现场服务号关注事件储存用户信息表
* </p>
*
* @author jiangxiulong
* @since 2021-08-03
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
SweetWechatUser
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* user_id
*/
private
String
userId
;
/**
* openId
*/
@TableField
(
"openId"
)
private
String
openId
;
/**
* unionId
*/
@TableField
(
"unionId"
)
private
String
unionId
;
/**
* 昵称
*/
private
String
nickname
;
/**
* 性别
*/
@TableField
(
"sexDesc"
)
private
String
sexDesc
;
/**
* 性别 男1
*/
private
Integer
sex
;
/**
* 头像
*/
@TableField
(
"headImgUrl"
)
private
String
headImgUrl
;
/**
* zh_CN
*/
private
String
language
;
/**
* 国家
*/
private
String
country
;
/**
* 省
*/
private
String
province
;
/**
* 市
*/
private
String
city
;
/**
* 关注时间
*/
@TableField
(
"subscribeTime"
)
private
LocalDateTime
subscribeTime
;
/**
* ADD_SCENE_SEARCH 关注方式
*/
@TableField
(
"subscribeScene"
)
private
String
subscribeScene
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
private
LocalDateTime
updatedAt
;
private
static
final
SweetWechatUser
obj
=
new
SweetWechatUser
();
public
static
SweetWechatUser
getNew
()
{
try
{
return
(
SweetWechatUser
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
SweetWechatUser
();
}
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/handler/SubscribeHandler.java
View file @
52e18c88
package
com
.
liquidnet
.
service
.
sweet
.
handler
;
package
com
.
liquidnet
.
service
.
sweet
.
handler
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
com.liquidnet.service.sweet.mapper.SweetWechatUserMapper
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
me.chanjar.weixin.common.session.WxSessionManager
;
import
me.chanjar.weixin.common.session.WxSessionManager
;
...
@@ -8,8 +14,10 @@ import me.chanjar.weixin.mp.api.WxMpService;
...
@@ -8,8 +14,10 @@ import me.chanjar.weixin.mp.api.WxMpService;
import
me.chanjar.weixin.mp.bean.message.WxMpXmlMessage
;
import
me.chanjar.weixin.mp.bean.message.WxMpXmlMessage
;
import
me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage
;
import
me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage
;
import
me.chanjar.weixin.mp.bean.result.WxMpUser
;
import
me.chanjar.weixin.mp.bean.result.WxMpUser
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
...
@@ -23,6 +31,11 @@ import java.util.Map;
...
@@ -23,6 +31,11 @@ import java.util.Map;
@Component
@Component
@Slf4j
@Slf4j
public
class
SubscribeHandler
implements
WxMpMessageHandler
{
public
class
SubscribeHandler
implements
WxMpMessageHandler
{
@Autowired
private
SweetWechatUserMapper
sweetWechatUserMapper
;
@Autowired
private
RedisDataUtils
redisDataUtils
;
@Override
@Override
public
WxMpXmlOutMessage
handle
(
WxMpXmlMessage
wxMessage
,
Map
<
String
,
Object
>
context
,
WxMpService
wxMpService
,
public
WxMpXmlOutMessage
handle
(
WxMpXmlMessage
wxMessage
,
Map
<
String
,
Object
>
context
,
WxMpService
wxMpService
,
WxSessionManager
sessionManager
)
throws
WxErrorException
{
WxSessionManager
sessionManager
)
throws
WxErrorException
{
...
@@ -34,6 +47,37 @@ public class SubscribeHandler implements WxMpMessageHandler {
...
@@ -34,6 +47,37 @@ public class SubscribeHandler implements WxMpMessageHandler {
return
null
;
return
null
;
}
}
log
.
info
(
"根据 openId:[{}]获取到的微信用户信息:[{}]"
,
wxMessage
.
getFromUser
(),
wxMpUser
.
toString
());
log
.
info
(
"根据 openId:[{}]获取到的微信用户信息:[{}]"
,
wxMessage
.
getFromUser
(),
wxMpUser
.
toString
());
// 记录用户信息
SweetWechatUser
userInfo
=
sweetWechatUserMapper
.
selectOne
(
Wrappers
.
lambdaQuery
(
SweetWechatUser
.
class
).
eq
(
SweetWechatUser:
:
getOpenId
,
wxMpUser
.
getOpenId
()));
SweetWechatUser
sweetWechatUser
=
SweetWechatUser
.
getNew
();
sweetWechatUser
.
setOpenId
(
wxMpUser
.
getOpenId
());
sweetWechatUser
.
setUnionId
(
wxMpUser
.
getUnionId
());
sweetWechatUser
.
setNickname
(
wxMpUser
.
getNickname
());
sweetWechatUser
.
setSexDesc
(
wxMpUser
.
getSexDesc
());
sweetWechatUser
.
setSex
(
wxMpUser
.
getSex
());
sweetWechatUser
.
setHeadImgUrl
(
wxMpUser
.
getHeadImgUrl
());
sweetWechatUser
.
setLanguage
(
wxMpUser
.
getLanguage
());
sweetWechatUser
.
setCountry
(
wxMpUser
.
getCountry
());
sweetWechatUser
.
setProvince
(
wxMpUser
.
getProvince
());
sweetWechatUser
.
setCity
(
wxMpUser
.
getCity
());
sweetWechatUser
.
setSubscribeTime
(
DateUtil
.
ofEpochMilli
(
wxMpUser
.
getSubscribeTime
()));
sweetWechatUser
.
setSubscribeScene
(
wxMpUser
.
getSubscribeScene
());
if
(
null
==
userInfo
)
{
sweetWechatUser
.
setUserId
(
IDGenerator
.
nextSnowId
());
sweetWechatUserMapper
.
insert
(
sweetWechatUser
);
}
else
{
sweetWechatUser
.
setUpdatedAt
(
LocalDateTime
.
now
());
sweetWechatUserMapper
.
update
(
sweetWechatUser
,
Wrappers
.
lambdaUpdate
(
SweetWechatUser
.
class
).
eq
(
SweetWechatUser:
:
getUserId
,
userInfo
.
getUserId
()));
}
String
unionId
=
wxMpUser
.
getUnionId
();
if
(!
unionId
.
isEmpty
())
{
if
(
null
!=
userInfo
)
{
sweetWechatUser
.
setMid
(
userInfo
.
getMid
());
sweetWechatUser
.
setUserId
(
userInfo
.
getUserId
());
sweetWechatUser
.
setCreatedAt
(
userInfo
.
getCreatedAt
());
}
redisDataUtils
.
setSweetWechatUser
(
sweetWechatUser
);
}
return
null
;
return
null
;
}
}
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/mapper/SweetWechatUserMapper.java
0 → 100644
View file @
52e18c88
package
com
.
liquidnet
.
service
.
sweet
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
/**
* <p>
* 正在现场服务号关注事件储存用户信息表 Mapper 接口
* </p>
*
* @author jiangxiulong
* @since 2021-08-03
*/
public
interface
SweetWechatUserMapper
extends
BaseMapper
<
SweetWechatUser
>
{
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/ISweetWechatUserService.java
0 → 100644
View file @
52e18c88
package
com
.
liquidnet
.
service
.
sweet
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
/**
* <p>
* 正在现场服务号关注事件储存用户信息表 服务类
* </p>
*
* @author jiangxiulong
* @since 2021-08-03
*/
public
interface
ISweetWechatUserService
extends
IService
<
SweetWechatUser
>
{
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetWechatCallbackServiceImpl.java
View file @
52e18c88
...
@@ -70,10 +70,10 @@ public class SweetWechatCallbackServiceImpl {
...
@@ -70,10 +70,10 @@ public class SweetWechatCallbackServiceImpl {
.
end
();
.
end
();
// 取消关注事件
// 取消关注事件
router
.
rule
().
async
(
false
).
msgType
(
WxConsts
.
XmlMsgType
.
EVENT
)
/*
router.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT)
.event(WxConsts.EventType.UNSUBSCRIBE)
.event(WxConsts.EventType.UNSUBSCRIBE)
.handler(unsubscribeHandler)
.handler(unsubscribeHandler)
.
end
();
.end();
*/
return
router
;
return
router
;
}
}
...
@@ -82,12 +82,13 @@ public class SweetWechatCallbackServiceImpl {
...
@@ -82,12 +82,13 @@ public class SweetWechatCallbackServiceImpl {
WxMpConfigStorage
wxMpConfig
=
wxMpConfig
(
appid
,
secret
,
token
,
aeskey
);
WxMpConfigStorage
wxMpConfig
=
wxMpConfig
(
appid
,
secret
,
token
,
aeskey
);
WxMpService
wxMpService
=
wxMpService
(
wxMpConfig
);
WxMpService
wxMpService
=
wxMpService
(
wxMpConfig
);
String
out
=
null
;
String
out
=
null
;
if
(
encType
==
null
)
{
if
(
encType
==
null
||
encType
.
isEmpty
()
)
{
// 明文传输的消息
// 明文传输的消息
WxMpXmlMessage
inMessage
=
WxMpXmlMessage
.
fromXml
(
requestBody
);
WxMpXmlMessage
inMessage
=
WxMpXmlMessage
.
fromXml
(
requestBody
);
log
.
info
(
"\n消息内容为:\n[{}] "
,
inMessage
.
toString
());
log
.
info
(
"\n消息内容为:\n[{}] "
,
inMessage
.
toString
());
WxMpXmlOutMessage
outMessage
=
messageRouter
(
wxMpService
).
route
(
inMessage
);
WxMpXmlOutMessage
outMessage
=
messageRouter
(
wxMpService
).
route
(
inMessage
);
if
(
outMessage
==
null
)
{
if
(
outMessage
==
null
)
{
// 假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试
return
""
;
return
""
;
}
}
out
=
outMessage
.
toXml
();
out
=
outMessage
.
toXml
();
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetWechatUserServiceImpl.java
0 → 100644
View file @
52e18c88
package
com
.
liquidnet
.
service
.
sweet
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
com.liquidnet.service.sweet.mapper.SweetWechatUserMapper
;
import
com.liquidnet.service.sweet.service.ISweetWechatUserService
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 正在现场服务号关注事件储存用户信息表 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2021-08-03
*/
@Service
public
class
SweetWechatUserServiceImpl
extends
ServiceImpl
<
SweetWechatUserMapper
,
SweetWechatUser
>
implements
ISweetWechatUserService
{
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/RedisDataUtils.java
View file @
52e18c88
...
@@ -10,10 +10,7 @@ import com.liquidnet.service.sweet.dto.SweetManualAppletDto;
...
@@ -10,10 +10,7 @@ import com.liquidnet.service.sweet.dto.SweetManualAppletDto;
import
com.liquidnet.service.sweet.dto.SweetManualArtistList2Dto
;
import
com.liquidnet.service.sweet.dto.SweetManualArtistList2Dto
;
import
com.liquidnet.service.sweet.dto.SweetManualArtistListDto
;
import
com.liquidnet.service.sweet.dto.SweetManualArtistListDto
;
import
com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto
;
import
com.liquidnet.service.sweet.dto.SweetManualArtistStageListDto
;
import
com.liquidnet.service.sweet.entity.SweetManualNotify
;
import
com.liquidnet.service.sweet.entity.*
;
import
com.liquidnet.service.sweet.entity.SweetManualShop
;
import
com.liquidnet.service.sweet.entity.SweetManualSort
;
import
com.liquidnet.service.sweet.entity.SweetRichtext
;
import
com.liquidnet.service.sweet.mapper.*
;
import
com.liquidnet.service.sweet.mapper.*
;
import
com.liquidnet.service.sweet.vo.SweetArtistsRelationVo
;
import
com.liquidnet.service.sweet.vo.SweetArtistsRelationVo
;
import
com.liquidnet.service.sweet.vo.SweetRemindVo
;
import
com.liquidnet.service.sweet.vo.SweetRemindVo
;
...
@@ -203,18 +200,31 @@ public class RedisDataUtils {
...
@@ -203,18 +200,31 @@ public class RedisDataUtils {
SweetArtistsRelationVo
vo
=
getArtistsRelationRedisVo
(
uid
);
SweetArtistsRelationVo
vo
=
getArtistsRelationRedisVo
(
uid
);
vo
.
setUid
(
uid
);
vo
.
setUid
(
uid
);
if
(
type
.
equalsIgnoreCase
(
"sign"
))
{
if
(
type
.
equalsIgnoreCase
(
"sign"
))
{
if
(
vo
.
getSignList
().
contains
(
artistsId
))
{
if
(
vo
.
getSignList
()
==
null
)
{
vo
.
getSignList
().
remove
(
artistsId
);
ArrayList
<
String
>
signList
=
new
ArrayList
<>();
signList
.
add
(
artistsId
);
vo
.
setSignList
(
signList
);
}
else
{
}
else
{
vo
.
getSignList
().
add
(
artistsId
);
if
(
vo
.
getSignList
().
contains
(
artistsId
))
{
vo
.
getSignList
().
remove
(
artistsId
);
}
else
{
vo
.
getSignList
().
add
(
artistsId
);
}
}
}
}
else
if
(
type
.
equalsIgnoreCase
(
"watch"
))
{
}
else
if
(
type
.
equalsIgnoreCase
(
"watch"
))
{
if
(
vo
.
getWatchList
().
contains
(
artistsId
))
{
if
(
vo
.
getSignList
()
==
null
)
{
vo
.
getWatchList
().
remove
(
artistsId
);
ArrayList
<
String
>
watchList
=
new
ArrayList
<>();
watchList
.
add
(
artistsId
);
vo
.
setWatchList
(
watchList
);
}
else
{
}
else
{
vo
.
getWatchList
().
add
(
artistsId
);
if
(
vo
.
getWatchList
().
contains
(
artistsId
))
{
vo
.
getWatchList
().
remove
(
artistsId
);
}
else
{
vo
.
getWatchList
().
add
(
artistsId
);
}
}
}
}
}
redisUtil
.
set
(
redisKey
,
vo
);
redisUtil
.
set
(
redisKey
,
vo
);
}
}
...
@@ -233,7 +243,7 @@ public class RedisDataUtils {
...
@@ -233,7 +243,7 @@ public class RedisDataUtils {
//获取 商铺
//获取 商铺
public
List
<
SweetManualShop
>
setManualShopRedisData
(
String
manualId
)
{
public
List
<
SweetManualShop
>
setManualShopRedisData
(
String
manualId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_SHOP
.
concat
(
manualId
);
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_SHOP
.
concat
(
manualId
);
List
<
SweetManualShop
>
list
=
sweetManualShopMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SweetManualShop
.
class
).
eq
(
SweetManualShop:
:
getManualId
,
manualId
).
orderBy
(
true
,
false
,
SweetManualShop:
:
getSort
));
List
<
SweetManualShop
>
list
=
sweetManualShopMapper
.
selectList
(
Wrappers
.
lambdaQuery
(
SweetManualShop
.
class
).
eq
(
SweetManualShop:
:
getManualId
,
manualId
).
orderBy
(
true
,
false
,
SweetManualShop:
:
getSort
));
redisUtil
.
set
(
redisKey
,
list
);
redisUtil
.
set
(
redisKey
,
list
);
return
list
;
return
list
;
}
}
...
@@ -266,4 +276,10 @@ public class RedisDataUtils {
...
@@ -266,4 +276,10 @@ public class RedisDataUtils {
redisUtil
.
set
(
redisKey
,
sweetRemindVo
);
redisUtil
.
set
(
redisKey
,
sweetRemindVo
);
}
}
// 正在现场服务号关注事件储存用户信息
public
void
setSweetWechatUser
(
SweetWechatUser
sweetWechatUser
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_WECHAT_USER_INFO
.
concat
(
sweetWechatUser
.
getUnionId
());
redisUtil
.
set
(
redisKey
,
sweetWechatUser
);
}
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/WechatSignUtils.java
View file @
52e18c88
package
com
.
liquidnet
.
service
.
sweet
.
utils
;
package
com
.
liquidnet
.
service
.
sweet
.
utils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.security.MessageDigest
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchAlgorithmException
;
...
@@ -14,11 +15,12 @@ import java.util.Arrays;
...
@@ -14,11 +15,12 @@ import java.util.Arrays;
* @author jiangxiulong
* @author jiangxiulong
* @since 2021-07-29 3:19 下午
* @since 2021-07-29 3:19 下午
*/
*/
@Component
public
class
WechatSignUtils
{
public
class
WechatSignUtils
{
// 与接口配置信息中的 Token 要一致
// 与接口配置信息中的 Token 要一致
@Value
(
"${liquidnet.wechat.zhengzai.service.token}"
)
@Value
(
"${liquidnet.wechat.zhengzai.service.token}"
)
private
static
String
token
;
private
String
token
;
/**
/**
* 验证签名
* 验证签名
...
@@ -28,7 +30,7 @@ public class WechatSignUtils {
...
@@ -28,7 +30,7 @@ public class WechatSignUtils {
* @param nonce
* @param nonce
* @return
* @return
*/
*/
public
static
boolean
checkSignature
(
String
signature
,
String
timestamp
,
String
nonce
)
{
public
boolean
checkSignature
(
String
signature
,
String
timestamp
,
String
nonce
)
{
String
[]
arr
=
new
String
[]{
token
,
timestamp
,
nonce
};
String
[]
arr
=
new
String
[]{
token
,
timestamp
,
nonce
};
// 将 token、timestamp、nonce 三个参数进行字典序排序
// 将 token、timestamp、nonce 三个参数进行字典序排序
Arrays
.
sort
(
arr
);
Arrays
.
sort
(
arr
);
...
@@ -59,7 +61,7 @@ public class WechatSignUtils {
...
@@ -59,7 +61,7 @@ public class WechatSignUtils {
* @param byteArray
* @param byteArray
* @return
* @return
*/
*/
private
static
String
byteToStr
(
byte
[]
byteArray
)
{
private
String
byteToStr
(
byte
[]
byteArray
)
{
String
strDigest
=
""
;
String
strDigest
=
""
;
for
(
int
i
=
0
;
i
<
byteArray
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
byteArray
.
length
;
i
++)
{
strDigest
+=
byteToHexStr
(
byteArray
[
i
]);
strDigest
+=
byteToHexStr
(
byteArray
[
i
]);
...
@@ -73,7 +75,7 @@ public class WechatSignUtils {
...
@@ -73,7 +75,7 @@ public class WechatSignUtils {
* @param mByte
* @param mByte
* @return
* @return
*/
*/
private
static
String
byteToHexStr
(
byte
mByte
)
{
private
String
byteToHexStr
(
byte
mByte
)
{
char
[]
Digit
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
char
[]
Digit
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
char
[]
tempArr
=
new
char
[
2
];
char
[]
tempArr
=
new
char
[
2
];
tempArr
[
0
]
=
Digit
[(
mByte
>>>
4
)
&
0X0F
];
tempArr
[
0
]
=
Digit
[(
mByte
>>>
4
)
&
0X0F
];
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/resources/com/liquidnet/service/sweet/mapper/SweetWechatUserMapper.xml
0 → 100644
View file @
52e18c88
<?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.sweet.mapper.SweetWechatUserMapper"
>
</mapper>
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