记得上下班打卡 | 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
45423d44
Commit
45423d44
authored
Jul 02, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
863495f5
0699a57d
Changes
32
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
2158 additions
and
415 deletions
+2158
-415
application-dev.yml
liquidnet-bus-config/liquidnet-config/application-dev.yml
+18
-12
application-test.yml
liquidnet-bus-config/liquidnet-config/application-test.yml
+13
-0
liquidnet-service-adam-dev.yml
...us-config/liquidnet-config/liquidnet-service-adam-dev.yml
+2
-1
liquidnet-service-adam-test.yml
...s-config/liquidnet-config/liquidnet-service-adam-test.yml
+2
-1
liquidnet-service-adam.yml
...et-bus-config/liquidnet-config/liquidnet-service-adam.yml
+6
-6
liquidnet-service-consumer-adam-dev.yml
.../liquidnet-config/liquidnet-service-consumer-adam-dev.yml
+25
-0
liquidnet-service-consumer-adam-test.yml
...liquidnet-config/liquidnet-service-consumer-adam-test.yml
+25
-0
liquidnet-service-consumer-adam.yml
...nfig/liquidnet-config/liquidnet-service-consumer-adam.yml
+126
-0
pom.xml
...idnet-bus-service/liquidnet-service-consumer-adam/pom.xml
+60
-0
ServiceConsumerApplication.java
...ava/com/liquidnet/service/ServiceConsumerApplication.java
+53
-0
IBaseDao.java
...java/com/liquidnet/service/consumer/service/IBaseDao.java
+40
-0
KylinUtils.java
.../liquidnet/service/consumer/service/Utils/KylinUtils.java
+179
-0
BaseDao.java
.../com/liquidnet/service/consumer/service/impl/BaseDao.java
+137
-0
ConsumerProcessor.java
...service/consumer/service/processor/ConsumerProcessor.java
+551
-0
bootstrap-dev.yml
...ervice-consumer-adam/src/main/resources/bootstrap-dev.yml
+14
-0
bootstrap-prod.yml
...rvice-consumer-adam/src/main/resources/bootstrap-prod.yml
+14
-0
bootstrap-service-consumer-adam.yml
...am/src/main/resources/bootstrap-service-consumer-adam.yml
+17
-0
bootstrap-test.yml
...rvice-consumer-adam/src/main/resources/bootstrap-test.yml
+14
-0
bootstrap.yml
...et-service-consumer-adam/src/main/resources/bootstrap.yml
+5
-0
mongo_db_ddl-prod.sql
...n/liquidnet-service-kylin-impl/docu/mongo_db_ddl-prod.sql
+1
-1
ServiceKylinApplication.java
...n/java/com/liquidnet/service/ServiceKylinApplication.java
+0
-2
KylinOrderTicketsController.java
...service/kylin/controller/KylinOrderTicketsController.java
+25
-39
OrderRefundOvertimeController.java
...rvice/kylin/controller/OrderRefundOvertimeController.java
+23
-23
KylinOrderTicketsServiceImpl.java
...vice/kylin/service/impl/KylinOrderTicketsServiceImpl.java
+150
-125
KylinOrderTicketEntitiesController.java
.../order/controller/KylinOrderTicketEntitiesController.java
+19
-0
KylinOrderTicketsController.java
...service/order/controller/KylinOrderTicketsController.java
+0
-70
OrderRefundOvertimeController.java
...rvice/order/controller/OrderRefundOvertimeController.java
+48
-0
KylinOrderRefundPicServiceImpl.java
...ce/order/service/impl/KylinOrderRefundPicServiceImpl.java
+8
-0
KylinOrderTicketsServiceImpl.java
...vice/order/service/impl/KylinOrderTicketsServiceImpl.java
+152
-135
KylinRefundsStatusServiceImpl.java
...ice/order/service/impl/KylinRefundsStatusServiceImpl.java
+356
-0
OrderRefundOvertimeServiceImpl.java
...ce/order/service/impl/OrderRefundOvertimeServiceImpl.java
+74
-0
pom.xml
liquidnet-bus-service/pom.xml
+1
-0
No files found.
liquidnet-bus-config/liquidnet-config/application-dev.yml
View file @
45423d44
...
...
@@ -20,6 +20,12 @@ liquidnet:
username
:
admin
password
:
admin
virtual-host
:
liquidnet
adam
:
host
:
rabbitmq.zhengzai.tv
port
:
5672
username
:
admin
password
:
admin
virtual-host
:
liquidnet
knife4j
:
disable
:
false
redis
:
...
...
@@ -34,35 +40,35 @@ liquidnet:
service
:
adam
:
url-pay
:
pay
:
http://
test
pay.zhengzai.tv
check
:
http://
test
pay.zhengzai.tv/order/verify
pay
:
http://
dev
pay.zhengzai.tv
check
:
http://
dev
pay.zhengzai.tv/order/verify
callback
:
http://devadam.zhengzai.tv/adam/member/order/callback
url-service
:
url
:
http://
test
service.zhengzai.tv
url
:
http://
dev
service.zhengzai.tv
kylin
:
url-pay
:
pay
:
http://
test
pay.zhengzai.tv/
check
:
http://
test
pay.zhengzai.tv/order/verify
pay
:
http://
dev
pay.zhengzai.tv/
check
:
http://
dev
pay.zhengzai.tv/order/verify
localUrl
:
http://devkylin.zhengzai.tv/kylin/order/syncOrder
url-service
:
url
:
http://
test
service.zhengzai.tv/
url
:
http://
dev
service.zhengzai.tv/
order
:
url-pay
:
pay
:
http://
test
pay.zhengzai.tv/
check
:
http://
test
pay.zhengzai.tv/order/verify
pay
:
http://
dev
pay.zhengzai.tv/
check
:
http://
dev
pay.zhengzai.tv/order/verify
localUrl
:
http://devorder.zhengzai.tv/order/order/syncOrder
url-service
:
url
:
http://
test
service.zhengzai.tv/
url
:
http://
dev
service.zhengzai.tv/
platform
:
url
:
http://devplatform.zhengzai.tv
url
:
http://devplatform.zhengzai.tv
executor-main
:
xxl
:
admin
:
addresses
:
127.0.0.1:8090
client
:
admin
:
phpPayUrl
:
http://
test
pay.zhengzai.tv
kylinApiUrl
:
https://kylin.zhengzai.tv
phpPayUrl
:
http://
dev
pay.zhengzai.tv
kylinApiUrl
:
https://
dev
kylin.zhengzai.tv
phpServiceUrl
:
https://devservice.zhengzai.tv
phpoMediaApiUrl
:
https://devmediaapi.zhengzai.tv
phpMallUrl
:
https://devmall.zhengzai.tv
...
...
liquidnet-bus-config/liquidnet-config/application-test.yml
View file @
45423d44
...
...
@@ -20,6 +20,12 @@ liquidnet:
username
:
admin
password
:
admin
virtual-host
:
liquidnet
adam
:
host
:
rabbitmq.zhengzai.tv
port
:
5672
username
:
admin
password
:
admin
virtual-host
:
liquidnet
knife4j
:
disable
:
false
redis
:
...
...
@@ -50,6 +56,13 @@ liquidnet:
localUrl
:
http://testkylin.zhengzai.tv/kylin/order/syncOrder
url-service
:
url
:
http://testservice.zhengzai.tv/
order
:
url-pay
:
pay
:
http://testpay.zhengzai.tv/
check
:
http://testpay.zhengzai.tv/order/verify
localUrl
:
http://testorder.zhengzai.tv/order/order/syncOrder
url-service
:
url
:
http://testservice.zhengzai.tv/
platform
:
url
:
http://testplatform.zhengzai.tv
executor-main
:
...
...
liquidnet-bus-config/liquidnet-config/liquidnet-service-adam-dev.yml
View file @
45423d44
...
...
@@ -13,7 +13,8 @@ liquidnet:
file-max-size
:
200MB
level
:
info
rabbitmq
:
connection-timeout
:
5000
adam
:
connection-timeout
:
5000
mysql
:
database-name
:
dev_ln_scene
mongodb
:
...
...
liquidnet-bus-config/liquidnet-config/liquidnet-service-adam-test.yml
View file @
45423d44
...
...
@@ -13,7 +13,8 @@ liquidnet:
file-max-size
:
200MB
level
:
debug
rabbitmq
:
connection-timeout
:
3000
adam
:
connection-timeout
:
5000
mysql
:
database-name
:
test_ln_scene
mongodb
:
...
...
liquidnet-bus-config/liquidnet-config/liquidnet-service-adam.yml
View file @
45423d44
...
...
@@ -71,12 +71,12 @@ spring:
autoconfigure
:
exclude
:
org.springframework.cloud.bus.BusAutoConfiguration,org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
rabbitmq
:
addresses
:
${liquidnet.rabbitmq.host}
port
:
${liquidnet.rabbitmq.port}
username
:
${liquidnet.rabbitmq.username}
password
:
${liquidnet.rabbitmq.password}
virtual-host
:
${liquidnet.rabbitmq.virtual-host}
connection-timeout
:
${liquidnet.rabbitmq.connection-timeout}
addresses
:
${liquidnet.rabbitmq.
adam.
host}
port
:
${liquidnet.rabbitmq.
adam.
port}
username
:
${liquidnet.rabbitmq.
adam.
username}
password
:
${liquidnet.rabbitmq.
adam.
password}
virtual-host
:
${liquidnet.rabbitmq.
adam.
virtual-host}
connection-timeout
:
${liquidnet.rabbitmq.
adam.
connection-timeout}
redis
:
database
:
15
port
:
${liquidnet.redis.port}
...
...
liquidnet-bus-config/liquidnet-config/liquidnet-service-consumer-adam-dev.yml
0 → 100644
View file @
45423d44
liquidnet
:
system
:
updating
:
switch
:
false
info
:
port
:
9005
context
:
# context: /service-consumer
name
:
liquidnet-service-consumer-adam
logfile
:
path
:
/data/logs
name
:
service-consumer-adam
config
:
classpath:logback-spring.xml
file-max-size
:
200MB
pattern-file
:
'
%d{yyyy-MM-dd
HH:mm:ss.SSS}
[
%-5level]
%thread
[%logger{96}:%line]
-
%msg%n'
pattern-console
:
'
%d{yyyy-MM-dd
HH:mm:ss.SSS}
[
%-5level]
%thread
[%logger{96}:%line]
-
%msg%n'
pattern-rolling-file-name
:
${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level-root
:
debug
rabbitmq
:
adam
:
connection-timeout
:
5000
mysql
:
database-name
:
dev_ln_scene
#以下为spring各环境个性配置
\ No newline at end of file
liquidnet-bus-config/liquidnet-config/liquidnet-service-consumer-adam-test.yml
0 → 100644
View file @
45423d44
liquidnet
:
system
:
updating
:
switch
:
false
info
:
port
:
9005
context
:
# context: /service-consumer
name
:
liquidnet-service-consumer-adam
logfile
:
path
:
/data/logs
name
:
service-consumer-adam
config
:
classpath:logback-spring.xml
file-max-size
:
200MB
pattern-file
:
'
%d{yyyy-MM-dd
HH:mm:ss.SSS}
[
%-5level]
%thread
[%logger{96}:%line]
-
%msg%n'
pattern-console
:
'
%d{yyyy-MM-dd
HH:mm:ss.SSS}
[
%-5level]
%thread
[%logger{96}:%line]
-
%msg%n'
pattern-rolling-file-name
:
${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level-root
:
debug
rabbitmq
:
adam
:
connection-timeout
:
5000
mysql
:
database-name
:
test_ln_scene
#以下为spring各环境个性配置
liquidnet-bus-config/liquidnet-config/liquidnet-service-consumer-adam.yml
0 → 100644
View file @
45423d44
server
:
port
:
${liquidnet.info.port}
tomcat
:
uri-encoding
:
UTF-8
servlet
:
context-path
:
${liquidnet.info.context}
# -----------------------------------------------------------
knife4j
:
production
:
${liquidnet.knife4j.disable}
basic
:
enable
:
true
username
:
${liquidnet.security.username}
password
:
${liquidnet.security.password}
# -----------------------------------------------------------
logging
:
# config: ${liquidnet.logfile.config}
file
:
name
:
${liquidnet.logfile.path}/${liquidnet.logfile.name}.log
max-size
:
200MB
pattern
:
file
:
'
%d{yyyy-MM-dd
HH:mm:ss.SSS}
[
%-5level]
%thread
[%logger{96}:%line]
-
%msg%n'
console
:
'
%d{yyyy-MM-dd
HH:mm:ss.SSS}
[
%-5level]
%thread
[%logger{96}:%line]
-
%msg%n'
rolling-file-name
:
${liquidnet.logfile.path}/${liquidnet.logfile.name}-%d{yyyy-MM-dd}.%i.log
level
:
root
:
info
#以下是为指定包设置日志级别
com
:
liquidnet
:
${liquidnet.logfile.level-root}
# -----------------------------------------------------------
eureka
:
# client:
# register-with-eureka: true
# fetch-registry: true
# serviceUrl:
# defaultZone: http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
instance
:
hostname
:
${spring.cloud.client.ip-address}
lease-expiration-duration-in-seconds
:
15
#服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除
lease-renewal-interval-in-seconds
:
5
#服务刷新时间配置,每隔这个时间会主动心跳一次
prefer-ip-address
:
true
instance-id
:
${spring.application.name}:${spring.cloud.client.ip-address}:${spring.application.instance_id:${server.port}}
# -----------------------------------------------------------
#actuator/info
info
:
app
:
name
:
${liquidnet.info.name}
company
:
name
:
lightnet.io
build
:
groupId
:
'
@project.groupId@'
artifactId
:
'
@project.artifactId@'
version
:
'
@project.version@'
# -----------------------------------------------------------
spring
:
application
:
name
:
${liquidnet.info.name}
profiles
:
include
:
common-service
#这里加载management相关公共配置
rabbitmq
:
addresses
:
${liquidnet.rabbitmq.adam.host}
port
:
${liquidnet.rabbitmq.adam.port}
username
:
${liquidnet.rabbitmq.adam.username}
password
:
${liquidnet.rabbitmq.adam.password}
virtual-host
:
${liquidnet.rabbitmq.adam.virtual-host}
connection-timeout
:
${liquidnet.rabbitmq.adam.connection-timeout}
publisher-confirms
:
true
publisher-returns
:
true
listener
:
simple
:
acknowledge-mode
:
manual
redis
:
database
:
15
port
:
${liquidnet.redis.port}
host
:
${liquidnet.redis.host}
password
:
${liquidnet.redis.password}
lettuce
:
pool
:
max-active
:
8
max-wait
:
-1
max-idle
:
8
min-idle
:
0
redisson
:
singleServerConfig
:
address
:
redis://${liquidnet.redis.host}:${liquidnet.redis.port}
password
:
${liquidnet.redis.password}
clientName
:
null
database
:
7
#选择使用哪个数据库0~15
idleConnectionTimeout
:
10000
connectTimeout
:
10000
timeout
:
3000
retryAttempts
:
3
retryInterval
:
1500
subscriptionsPerConnection
:
5
subscriptionConnectionMinimumIdleSize
:
1
subscriptionConnectionPoolSize
:
50
connectionMinimumIdleSize
:
32
connectionPoolSize
:
64
dnsMonitoringInterval
:
5000
threads
:
16
nettyThreads
:
32
codec
:
class
:
"
org.redisson.codec.JsonJacksonCodec"
transportMode
:
"
NIO"
datasource
:
name
:
${liquidnet.mysql.database-name}
url
:
jdbc:mysql://${liquidnet.mysql.urlHostAndPort}/${liquidnet.mysql.database-name}?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false
username
:
${liquidnet.mysql.username}
password
:
${liquidnet.mysql.password}
# type: org.apache.tomcat.jdbc.pool.DataSource
driver-class-name
:
com.mysql.cj.jdbc.Driver
filters
:
stat
maxActive
:
20
initialSize
:
1
maxWait
:
60000
minIdle
:
1
timeBetweenEvictionRunsMillis
:
60000
minEvictableIdleTimeMillis
:
300000
validationQuery
:
select 'x'
testWhileIdle
:
true
testOnBorrow
:
false
testOnReturn
:
false
poolPreparedStatements
:
true
maxOpenPreparedStatements
:
20
# -----------------------------------------------------------
# -----------------------------------------------------------
liquidnet-bus-service/liquidnet-service-consumer-adam/pom.xml
0 → 100644
View file @
45423d44
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
liquidnet-bus-service
</artifactId>
<groupId>
com.liquidnet
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
liquidnet-service-consumer-adam
</artifactId>
<properties>
<maven.compiler.source>
8
</maven.compiler.source>
<maven.compiler.target>
8
</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-mq
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-web
</artifactId>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-cache-redisson
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-cache-redis
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-kylin-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>
src/main/resources
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
</build>
</project>
liquidnet-bus-service/liquidnet-service-consumer-adam/src/main/java/com/liquidnet/service/ServiceConsumerApplication.java
0 → 100644
View file @
45423d44
package
com
.
liquidnet
.
service
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
import
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
;
import
org.springframework.cloud.bus.BusAutoConfiguration
;
import
org.springframework.core.env.Environment
;
import
org.springframework.jdbc.datasource.DataSourceTransactionManager
;
import
org.springframework.transaction.PlatformTransactionManager
;
import
javax.sql.DataSource
;
import
java.net.InetAddress
;
import
java.net.UnknownHostException
;
import
java.util.Arrays
;
@Slf4j
@EnableAutoConfiguration
(
exclude
=
{
BusAutoConfiguration
.
class
,
MongoAutoConfiguration
.
class
}
)
@SpringBootApplication
(
scanBasePackages
=
{
"com.liquidnet"
})
public
class
ServiceConsumerApplication
implements
CommandLineRunner
{
@Autowired
private
Environment
environment
;
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
ServiceConsumerApplication
.
class
,
args
);
}
@Override
public
void
run
(
String
...
strings
)
throws
Exception
{
try
{
log
.
info
(
"\n----------------------------------------------------------\n\t"
+
"Application '{}' is running! Access URLs:\n\t"
+
"Local: \t\thttp://127.0.0.1:{}\n\t"
+
"External: \thttp://{}:{}{}/doc.html\n\t"
+
"Profile(s): \t{}\n----------------------------------------------------------"
,
environment
.
getProperty
(
"spring.application.name"
),
environment
.
getProperty
(
"server.port"
),
InetAddress
.
getLocalHost
().
getHostAddress
(),
environment
.
getProperty
(
"server.port"
),
environment
.
getProperty
(
"server.servlet.context-path"
),
Arrays
.
toString
(
environment
.
getActiveProfiles
()));
}
catch
(
UnknownHostException
e
)
{
e
.
printStackTrace
();
}
}
}
liquidnet-bus-service/liquidnet-service-consumer-adam/src/main/java/com/liquidnet/service/consumer/service/IBaseDao.java
0 → 100644
View file @
45423d44
package
com
.
liquidnet
.
service
.
consumer
.
service
;
import
java.util.LinkedList
;
public
interface
IBaseDao
{
/**
* 批量执行sql
*
* @param sql
* @param values
* @return
*/
Boolean
batchSql
(
String
sql
,
LinkedList
<
Object
[]>
values
);
/**
* 批量执行不定量sql
*
* @param sql
* @param values
* @return
*/
Boolean
batchSqls
(
LinkedList
<
String
>
sql
,
LinkedList
<
Object
[]>...
values
);
/**
* 执行sql语句 无 参数
*
* @param sql
* @return
*/
Boolean
batchSqlNoArgs
(
LinkedList
<
String
>
sql
);
/**
* xs 新增一条记录且返回主键Id
*
* @param sql 新增待执行sql
* @param param 参数
* @return 主键ID
*/
int
insertSqlAndReturnKeyId
(
final
String
sql
,
final
Object
[]
param
);
}
liquidnet-bus-service/liquidnet-service-consumer-adam/src/main/java/com/liquidnet/service/consumer/service/Utils/KylinUtils.java
0 → 100644
View file @
45423d44
package
com
.
liquidnet
.
service
.
consumer
.
service
.
Utils
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo
;
import
com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
@Component
public
class
KylinUtils
{
@Autowired
private
RedisUtil
redisUtil
;
/**
* @param userId 用户id
* @param type 1新增 2修改
* @param orderId 订单id [需要新增或者修改的订单id]
*/
public
Boolean
resetOrderListVo
(
String
userId
,
Integer
type
,
String
orderId
,
KylinOrderTicketVo
dataSingle
)
{
List
<
KylinOrderListVo
>
vo
=
new
ArrayList
<>();
List
<
KylinOrderListVo
>
redisVo
=
new
ArrayList
();
KylinOrderListVo
voItem
=
new
KylinOrderListVo
();
KylinOrderTicketVo
data
;
if
(
dataSingle
==
null
)
{
data
=
(
KylinOrderTicketVo
)
redisUtil
.
get
(
KylinRedisConst
.
ORDER
+
orderId
);
}
else
{
data
=
dataSingle
;
}
BeanUtils
.
copyProperties
(
data
,
voItem
);
List
<
KylinOrderListVo
>
redisData
=
(
List
<
KylinOrderListVo
>)
redisUtil
.
get
(
KylinRedisConst
.
ORDER_LIST
+
userId
);
if
(
type
==
1
)
{
redisVo
.
add
(
voItem
);
if
(
redisData
.
size
()
>
0
)
{
if
(
redisData
.
get
(
0
).
getOrderTicketsId
().
equals
(
orderId
))
{
redisData
.
remove
(
0
);
}
}
}
redisVo
.
addAll
(
redisData
);
switch
(
type
)
{
case
1
:
for
(
int
i
=
0
;
i
<
redisVo
.
size
();
i
++)
{
if
(
i
==
40
)
{
break
;
}
if
(
i
==
0
)
{
vo
.
add
(
voItem
);
}
else
{
vo
.
add
(
redisVo
.
get
(
i
));
}
}
if
(
redisVo
.
size
()
==
0
)
{
vo
.
add
(
voItem
);
}
redisUtil
.
set
(
KylinRedisConst
.
ORDER_LIST
+
userId
,
vo
);
return
true
;
case
2
:
for
(
int
i
=
0
;
i
<
redisVo
.
size
();
i
++)
{
if
(
i
==
40
)
{
break
;
}
if
(
redisVo
.
get
(
i
).
getOrderTicketsId
().
equals
(
orderId
))
{
vo
.
add
(
voItem
);
}
else
{
vo
.
add
(
redisVo
.
get
(
i
));
}
}
redisUtil
.
set
(
KylinRedisConst
.
ORDER_LIST
+
userId
,
vo
);
return
true
;
default
:
return
false
;
}
}
public
void
changeBuyInfo
(
String
userId
,
String
idCard
,
String
performanceId
,
String
ticketId
,
int
buyCount
)
{
String
redisKey
;
KylinPerformanceVo
vo
=
(
KylinPerformanceVo
)
redisUtil
.
get
(
KylinRedisConst
.
PERFORMANCES
+
performanceId
);
int
isTrueName
=
vo
.
getIsTrueName
();
String
useTime
=
""
;
HashMap
<
String
,
ArrayList
<
String
>>
allTicketId
=
new
HashMap
<>();
for
(
int
x
=
0
;
x
<
vo
.
getTicketTimeList
().
size
();
x
++)
{
KylinTicketTimesVo
timeItem
=
vo
.
getTicketTimeList
().
get
(
x
);
ArrayList
<
String
>
ticketList
=
new
ArrayList
<>();
for
(
int
y
=
0
;
y
<
timeItem
.
getTicketList
().
size
();
y
++)
{
KylinTicketVo
ticketItem
=
timeItem
.
getTicketList
().
get
(
y
);
if
(
ticketItem
.
getType
()
==
1
)
{
ticketList
.
add
(
ticketItem
.
getTicketsId
());
}
if
(
ticketItem
.
getTicketsId
().
equals
(
ticketId
))
{
useTime
=
ticketItem
.
getUseStart
();
}
}
allTicketId
.
put
(
timeItem
.
getUseStart
(),
ticketList
);
}
if
(
0
==
isTrueName
)
{
redisKey
=
KylinRedisConst
.
USERID_BUY_INFO
+
userId
;
}
else
{
redisKey
=
KylinRedisConst
.
IDCARD_BUY_INFO
+
idCard
;
}
String
performanceIdKey
=
redisKey
+
":"
+
KylinRedisConst
.
PERFORMANCE_ID
+
":"
+
performanceId
;
String
ticketIdKey
=
redisKey
+
":"
+
KylinRedisConst
.
TICKET_ID
+
":"
+
ticketId
;
String
ticketUseTimeKey
=
ticketIdKey
+
":"
+
KylinRedisConst
.
USE_TIME
;
redisUtil
.
set
(
ticketUseTimeKey
,
useTime
);
if
(
buyCount
>
0
)
{
redisUtil
.
incr
(
ticketIdKey
,
buyCount
);
redisUtil
.
incr
(
performanceIdKey
,
buyCount
);
}
else
{
redisUtil
.
decr
(
ticketIdKey
,
Math
.
abs
(
buyCount
));
redisUtil
.
decr
(
performanceIdKey
,
Math
.
abs
(
buyCount
));
}
// if (buyCount > 0) {
// redisUtil.incr(ticketIdKey, buyCount);
// if (1 == ticketType) {
// int count = 0;
// for (int i = 0; i < allTicketId.get(useTime).size(); i++) {
// String item = allTicketId.get(useTime).get(i);
// if (allTicketId.get(useTime).size() == 1) {
// redisUtil.incr(performanceIdKey, buyCount);
// break;
// }
// if (null == redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
// redisUtil.set(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item, 0);
// }
// if (i == 0) {
// count = (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item);
// } else {
// if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
// redisUtil.incr(performanceIdKey, buyCount);
// break;
// }
// }
// }
// } else {
// redisUtil.incr(performanceIdKey, buyCount);
// }
// } else {
// redisUtil.decr(ticketIdKey, Math.abs(buyCount));
// if (1 == ticketType) {
// int count = 0;
// for (int i = 0; i < allTicketId.get(useTime).size(); i++) {
// String item = allTicketId.get(useTime).get(i);
// if (allTicketId.get(useTime).size() == 1) {
// redisUtil.decr(performanceIdKey, Math.abs(buyCount));
// break;
// }
// if (null == redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
// redisUtil.set(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item, 0);
// }
// if (i == 0) {
// count = (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item);
// } else {
// if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
// redisUtil.decr(performanceIdKey, Math.abs(buyCount));
// break;
// }
// }
// }
// } else {
// redisUtil.decr(performanceIdKey, Math.abs(buyCount));
// }
// }
}
}
liquidnet-bus-service/liquidnet-service-consumer-adam/src/main/java/com/liquidnet/service/consumer/service/impl/BaseDao.java
0 → 100644
View file @
45423d44
package
com
.
liquidnet
.
service
.
consumer
.
service
.
impl
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.consumer.service.IBaseDao
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.jdbc.core.PreparedStatementCreator
;
import
org.springframework.jdbc.datasource.DataSourceTransactionManager
;
import
org.springframework.jdbc.support.GeneratedKeyHolder
;
import
org.springframework.jdbc.support.KeyHolder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.TransactionStatus
;
import
org.springframework.transaction.support.TransactionCallback
;
import
org.springframework.transaction.support.TransactionTemplate
;
import
javax.annotation.Resource
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.util.LinkedList
;
@Service
public
class
BaseDao
implements
IBaseDao
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
BaseDao
.
class
);
@Resource
public
JdbcTemplate
jdbcTemplate
;
@Resource
(
name
=
"transactionManager"
)
public
DataSourceTransactionManager
transactionManager
;
@Override
public
Boolean
batchSql
(
final
String
sql
,
final
LinkedList
<
Object
[]>
values
)
{
TransactionCallback
<
Boolean
>
callback
=
new
TransactionCallback
<
Boolean
>()
{
@Override
public
Boolean
doInTransaction
(
final
TransactionStatus
transactionStatus
)
{
if
(
values
.
size
()
>
0
)
{
int
[]
ints
=
jdbcTemplate
.
batchUpdate
(
sql
,
values
);
}
return
true
;
}
};
try
{
TransactionTemplate
tt
=
new
TransactionTemplate
(
transactionManager
);
return
tt
.
execute
(
callback
);
}
catch
(
Exception
ex
)
{
log
.
error
(
"###\nSQL.Preparing:{}\nParameters:{}"
,
JsonUtils
.
toJson
(
sql
),
JsonUtils
.
toJson
(
values
),
ex
);
return
false
;
}
}
@Override
public
Boolean
batchSqls
(
final
LinkedList
<
String
>
sql
,
final
LinkedList
<
Object
[]>...
values
)
{
try
{
TransactionCallback
<
Boolean
>
callback
=
new
TransactionCallback
<
Boolean
>()
{
@Override
public
Boolean
doInTransaction
(
final
TransactionStatus
transactionStatus
)
{
int
i
=
0
;
for
(
LinkedList
<
Object
[]>
o
:
values
)
{
if
(
sql
.
size
()
<
i
+
1
)
{
break
;
}
if
(!
o
.
isEmpty
())
{
jdbcTemplate
.
batchUpdate
(
sql
.
get
(
i
),
o
);
}
i
++;
}
return
true
;
}
};
TransactionTemplate
tt
=
new
TransactionTemplate
(
transactionManager
);
return
tt
.
execute
(
callback
);
}
catch
(
Exception
ex
)
{
// if (ex instanceof LiquidnetServiceException) {
// log.error("###Error.Code:{} - {}", ((LiquidnetServiceException) ex).getCode(), ex.getMessage());
// } else {
log
.
error
(
"###Error.Sqls:{}\nParameters:{},Ex:{}"
,
JsonUtils
.
toJson
(
sql
),
JsonUtils
.
toJson
(
values
),
ex
.
getMessage
());
// }
return
false
;
}
}
@Override
public
Boolean
batchSqlNoArgs
(
final
LinkedList
<
String
>
sql
)
{
try
{
TransactionCallback
<
Boolean
>
callback
=
new
TransactionCallback
<
Boolean
>()
{
@Override
public
Boolean
doInTransaction
(
final
TransactionStatus
transactionStatus
)
{
for
(
String
o
:
sql
)
{
jdbcTemplate
.
execute
(
o
);
}
return
true
;
}
};
TransactionTemplate
tt
=
new
TransactionTemplate
(
transactionManager
);
return
tt
.
execute
(
callback
);
}
catch
(
Exception
ex
)
{
log
.
error
(
"###Error.Sqls:{}\nParameters:{},Ex:{}"
,
sql
);
return
false
;
}
}
/**
* xs 新增一条记录且返回主键Id
*
* @param sql 新增待执行sql
* @param param 参数
* @return 主键ID
*/
public
int
insertSqlAndReturnKeyId
(
final
String
sql
,
final
Object
[]
param
)
{
final
String
innersql
=
sql
;
final
Object
[]
innerO
=
param
;
KeyHolder
keyHolder
=
new
GeneratedKeyHolder
();
try
{
jdbcTemplate
.
update
(
new
PreparedStatementCreator
()
{
@Override
public
PreparedStatement
createPreparedStatement
(
final
Connection
con
)
throws
SQLException
{
PreparedStatement
ps
=
con
.
prepareStatement
(
innersql
,
Statement
.
RETURN_GENERATED_KEYS
);
for
(
int
i
=
0
;
i
<
innerO
.
length
;
i
++)
{
ps
.
setObject
(
i
+
1
,
innerO
[
i
]);
}
return
ps
;
}
},
keyHolder
);
}
catch
(
Exception
e
)
{
log
.
error
(
"###\nSQL.Preparing:{}\nParameters:{}"
,
sql
,
JsonUtils
.
toJson
(
param
),
e
);
}
return
keyHolder
.
getKey
().
intValue
();
}
}
liquidnet-bus-service/liquidnet-service-consumer-adam/src/main/java/com/liquidnet/service/consumer/service/processor/ConsumerProcessor.java
0 → 100644
View file @
45423d44
package
com
.
liquidnet
.
service
.
consumer
.
service
.
processor
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.mq.constant.MQConst
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.OrderCloseMapping
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.consumer.service.IBaseDao
;
import
com.liquidnet.service.consumer.service.Utils.KylinUtils
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.rabbitmq.client.Channel
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringEscapeUtils
;
import
org.springframework.amqp.rabbit.annotation.Exchange
;
import
org.springframework.amqp.rabbit.annotation.Queue
;
import
org.springframework.amqp.rabbit.annotation.QueueBinding
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.amqp.core.Message
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
/**
* ConsumerProcessor.class
*
* @author zhanggb
* Created by IntelliJ IDEA at 2021/4/29
*/
@Slf4j
@Component
public
class
ConsumerProcessor
{
@Resource
IBaseDao
baseDao
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
private
KylinUtils
kylinUtils
;
// @RabbitListener(bindings = @QueueBinding(
// exchange = @Exchange(MQConst.EXCHANGES_LIQUIDNET_SQL), key = MQConst.ROUTING_KEY_SQL,
// value = @Queue(MQConst.QUEUES_SQL_MAIN)
// ))
//// @RabbitListener(queues = MQConst.QUEUES_SQL_MAIN)
// public void consumerSql(Message msg, Channel channel) {
// SqlMapping.SqlMessage sqlMessage = JsonUtils.fromJson(new String(msg.getBody()), SqlMapping.SqlMessage.class);
// log.debug("consumer sql ==> Preparing:{}", JsonUtils.toJson(sqlMessage.getSqls()));
// log.debug("consumer sql ==> Parameters:{}", JsonUtils.toJson(sqlMessage.getArgs()));
//
// try {
// Boolean rstBatchSqls = baseDao.batchSqls(sqlMessage.getSqls(), sqlMessage.getArgs());
// log.debug("consumer sql result of execution:{}", rstBatchSqls);
// if (rstBatchSqls) {
// channel.basicAck(msg.getMessageProperties().getDeliveryTag(), false);
// } else {
// channel.basicReject(msg.getMessageProperties().getDeliveryTag(), true);
// }
// } catch (Exception e) {
// log.error("error:consumer sql:{}", JsonUtils.toJson(sqlMessage), e);
// try {
// channel.basicReject(msg.getMessageProperties().getDeliveryTag(), true);
// } catch (IOException ioException) {
// log.error("error:consumer sql:basicReject.msg.tag:{}", msg.getMessageProperties().getDeliveryTag(), ioException);
// }
// }
// }
private
void
consumerSqlDaoHandler
(
Message
msg
,
Channel
channel
)
{
SqlMapping
.
SqlMessage
sqlMessage
=
JsonUtils
.
fromJson
(
new
String
(
msg
.
getBody
()),
SqlMapping
.
SqlMessage
.
class
);
log
.
debug
(
"consumer sql ==> Preparing:{}"
,
JsonUtils
.
toJson
(
sqlMessage
.
getSqls
()));
log
.
debug
(
"consumer sql ==> Parameters:{}"
,
JsonUtils
.
toJson
(
sqlMessage
.
getArgs
()));
try
{
Boolean
rstBatchSqls
=
baseDao
.
batchSqls
(
sqlMessage
.
getSqls
(),
sqlMessage
.
getArgs
());
log
.
debug
(
"consumer sql result of execution:{}"
,
rstBatchSqls
);
if
(
rstBatchSqls
)
{
channel
.
basicAck
(
msg
.
getMessageProperties
().
getDeliveryTag
(),
false
);
}
else
{
channel
.
basicReject
(
msg
.
getMessageProperties
().
getDeliveryTag
(),
true
);
}
}
catch
(
IOException
e
)
{
log
.
error
(
"error:consumer sql:Channel.msg.tag:{}"
,
msg
.
getMessageProperties
().
getDeliveryTag
(),
e
);
}
}
// 处理长sql语句
private
void
consumerOperationOrderClose
(
Message
msg
,
Channel
channel
)
{
String
jsonStr
=
StringEscapeUtils
.
unescapeJava
(
new
String
(
msg
.
getBody
()));
OrderCloseMapping
.
orderCloseMessage
mqMessage
=
JsonUtils
.
fromJson
(
jsonStr
.
substring
(
1
,
jsonStr
.
length
()
-
1
),
OrderCloseMapping
.
orderCloseMessage
.
class
);
log
.
debug
(
"consumer ==> mqMessage:{}"
,
mqMessage
.
getOrderTicketIds
());
try
{
for
(
int
x
=
0
;
x
<
mqMessage
.
getOrderTicketIds
().
size
();
x
++)
{
String
t
=
mqMessage
.
getOrderTicketIds
().
get
(
x
);
String
orderTicketId
=
t
.
split
(
","
)[
0
];
String
uid
=
t
.
split
(
","
)[
1
];
KylinOrderTicketVo
vo
=
(
KylinOrderTicketVo
)
redisUtil
.
get
(
"kylin:order:id:"
+
orderTicketId
);
vo
.
setStatus
(
2
);
redisUtil
.
set
(
"kylin:order:id:"
+
orderTicketId
,
vo
);
kylinUtils
.
resetOrderListVo
(
uid
,
2
,
orderTicketId
,
vo
);
// redis 限购
for
(
int
i
=
0
;
i
<
vo
.
getEntitiesVoList
().
size
();
i
++)
{
KylinOrderTicketEntitiesVo
items
=
vo
.
getEntitiesVoList
().
get
(
i
);
kylinUtils
.
changeBuyInfo
(
items
.
getUserId
(),
items
.
getEnterIdCode
(),
items
.
getPerformanceId
(),
items
.
getTicketId
(),
-
1
);
}
}
channel
.
basicAck
(
msg
.
getMessageProperties
().
getDeliveryTag
(),
false
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
error
(
"error:consumer sql:Channel.msg.tag:{}"
,
msg
.
getMessageProperties
().
getDeliveryTag
(),
e
);
}
}
// 用户注册
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EX_LNS_SQL_UCENTER
),
key
=
MQConst
.
RK_SQL_UREGISTER
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_UREGISTER
)
))
public
void
consumerSqlForURegister
(
Message
msg
,
Channel
channel
)
{
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
// 用户信息
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EX_LNS_SQL_UCENTER
),
key
=
MQConst
.
RK_SQL_UCENTER
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_UCENTER
)
))
public
void
consumerSqlForUCenter
(
Message
msg
,
Channel
channel
)
{
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
// 会员购买
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EX_LNS_SQL_UCENTER
),
key
=
MQConst
.
RK_SQL_UMEMBER
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_UMEMBER
)
))
public
void
consumerSqlForUMember
(
Message
msg
,
Channel
channel
)
{
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
// 验票更新
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EX_LNS_SQL_STATION
),
key
=
MQConst
.
RK_SQL_STATION
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_STATION
)
))
public
void
consumerSqlForStation
(
Message
msg
,
Channel
channel
)
{
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
// 订单创建
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CREATE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CREATE
)
))
public
void
consumerOrderCreate
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CREATE ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CREATE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CREATE
)
))
public
void
consumerOrderCreate1
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CREATE ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CREATE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CREATE
)
))
public
void
consumerOrderCreate2
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CREATE ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CREATE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CREATE
)
))
public
void
consumerOrderCreate3
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CREATE ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CREATE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CREATE
)
))
public
void
consumerOrderCreate4
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CREATE ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CREATE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CREATE
)
))
public
void
consumerOrderCreate5
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CREATE ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CREATE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CREATE
)
))
public
void
consumerOrderCreate6
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CREATE ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CREATE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CREATE
)
))
public
void
consumerOrderCreate7
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CREATE ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CREATE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CREATE
)
))
public
void
consumerOrderCreate8
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CREATE ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CREADE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CREATE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CREATE
)
))
public
void
consumerOrderCreate9
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CREATE ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
// 订单再次支付
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_AGAIN
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_AGAIN
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_AGAIN
)
))
public
void
consumerOrderPayAgain
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY_AGAIN ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
// 订单关闭
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CLOSE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CLOSE
)
))
public
void
consumerOrderClose
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CLOSE ==="
);
this
.
consumerOperationOrderClose
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CLOSE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CLOSE
)
))
public
void
consumerOrderClose1
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CLOSE ==="
);
this
.
consumerOperationOrderClose
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CLOSE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CLOSE
)
))
public
void
consumerOrderClose2
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CLOSE ==="
);
this
.
consumerOperationOrderClose
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CLOSE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CLOSE
)
))
public
void
consumerOrderClose3
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CLOSE ==="
);
this
.
consumerOperationOrderClose
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CLOSE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CLOSE
)
))
public
void
consumerOrderClose4
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CLOSE ==="
);
this
.
consumerOperationOrderClose
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CLOSE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CLOSE
)
))
public
void
consumerOrderClose5
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CLOSE ==="
);
this
.
consumerOperationOrderClose
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CLOSE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CLOSE
)
))
public
void
consumerOrderClose6
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CLOSE ==="
);
this
.
consumerOperationOrderClose
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CLOSE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CLOSE
)
))
public
void
consumerOrderClose7
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CLOSE ==="
);
this
.
consumerOperationOrderClose
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CLOSE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CLOSE
)
))
public
void
consumerOrderClose8
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CLOSE ==="
);
this
.
consumerOperationOrderClose
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_CLOSE
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_CLOSE
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_CLOSE
)
))
public
void
consumerOrderClose9
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_CLOSE ==="
);
this
.
consumerOperationOrderClose
(
msg
,
channel
);
}
// 订单支付
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
public
void
consumerOrderPay
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
public
void
consumerOrderPay1
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
public
void
consumerOrderPay2
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
public
void
consumerOrderPay3
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
public
void
consumerOrderPay4
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
public
void
consumerOrderPay5
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
public
void
consumerOrderPay6
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
public
void
consumerOrderPay7
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
public
void
consumerOrderPay8
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
public
void
consumerOrderPay9
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_PAY ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_PAY
)
))
// 缺票登记
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_PERFORMANCE_LACK
),
key
=
MQConst
.
ROUTING_KEY_SQL_PERFORMANCE_LACK
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_PERFORMANCE_LACK
)
))
public
void
consumerPerformanceLack
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_PERFORMANCE_LACK ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
// 申请退款
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_REFUND
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_REFUND
)
))
public
void
consumerOrderRefund
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_REFUND ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_REFUND
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_REFUND
)
))
public
void
consumerOrderRefund1
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_REFUND ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_REFUND
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_REFUND
)
))
public
void
consumerOrderRefund2
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_REFUND ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_REFUND
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_REFUND
)
))
public
void
consumerOrderRefund3
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_REFUND ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_REFUND
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_REFUND
)
))
public
void
consumerOrderRefund4
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_REFUND ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
// 申请退款撤回
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_WITHDRAW
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_WITHDRAW
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_WITHDRAW
)
))
public
void
consumerOrderRefundWithDraw
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_WITHDRAW ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_WITHDRAW
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_WITHDRAW
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_WITHDRAW
)
))
public
void
consumerOrderRefundWithDraw1
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_WITHDRAW ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_WITHDRAW
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_WITHDRAW
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_WITHDRAW
)
))
public
void
consumerOrderRefundWithDraw2
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_WITHDRAW ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_WITHDRAW
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_WITHDRAW
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_WITHDRAW
)
))
public
void
consumerOrderRefundWithDraw3
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_WITHDRAW ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_WITHDRAW
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_WITHDRAW
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_WITHDRAW
)
))
public
void
consumerOrderRefundWithDraw4
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_WITHDRAW ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
// 超时支付申请退款
@RabbitListener
(
bindings
=
@QueueBinding
(
exchange
=
@Exchange
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_OVERTIME_REFUND
),
key
=
MQConst
.
ROUTING_KEY_SQL_ORDER_OVERTIME_REFUND
,
value
=
@Queue
(
MQConst
.
QUEUES_SQL_ORDER_OVERTIME_REFUND
)
))
public
void
consumerOrderOvertimeRefund
(
Message
msg
,
Channel
channel
)
{
log
.
info
(
"=== CONSUMER_ORDER_OVERTIME_REFUND ==="
);
this
.
consumerSqlDaoHandler
(
msg
,
channel
);
}
}
liquidnet-bus-service/liquidnet-service-consumer-adam/src/main/resources/bootstrap-dev.yml
0 → 100644
View file @
45423d44
# begin-dev-这里是配置信息基本值
liquidnet
:
cloudConfig
:
profile
:
dev
security
:
username
:
user
password
:
user123
eureka
:
host
:
127.0.0.1:7001
# end-dev-这里是配置信息基本值
spring
:
profiles
:
include
:
service-consumer-adam
liquidnet-bus-service/liquidnet-service-consumer-adam/src/main/resources/bootstrap-prod.yml
0 → 100644
View file @
45423d44
# begin-prod-这里是配置信息基本值
liquidnet
:
cloudConfig
:
profile
:
prod
security
:
username
:
user
password
:
user123
eureka
:
host
:
172.17.207.189:7001
# end-prod-这里是配置信息基本值
spring
:
profiles
:
include
:
service-consumer-adam
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-consumer-adam/src/main/resources/bootstrap-service-consumer-adam.yml
0 → 100644
View file @
45423d44
#eurekaServer配置
eureka
:
client
:
register-with-eureka
:
true
fetch-registry
:
true
serviceUrl
:
defaultZone
:
http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
#configServer配置
spring
:
cloud
:
config
:
# uri: http://39.106.122.201:7002/support-config
profile
:
${liquidnet.cloudConfig.profile}
name
:
${spring.application.name}
#默认为spring.application.name
discovery
:
enabled
:
true
service-id
:
liquidnet-support-config
liquidnet-bus-service/liquidnet-service-consumer-adam/src/main/resources/bootstrap-test.yml
0 → 100644
View file @
45423d44
# begin-test-这里是配置信息基本值
liquidnet
:
cloudConfig
:
profile
:
test
security
:
username
:
user
password
:
user123
eureka
:
host
:
172.17.207.177:7001
# end-test-这里是配置信息基本值
spring
:
profiles
:
include
:
service-consumer-adam
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-consumer-adam/src/main/resources/bootstrap.yml
0 → 100644
View file @
45423d44
spring
:
application
:
name
:
liquidnet-service-consumer-adam
profiles
:
active
:
dev
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/docu/mongo_db_ddl-prod.sql
View file @
45423d44
...
...
@@ -43,7 +43,7 @@ sh.shardCollection("prod_ln_scene.KylinCheckUserVo",{"checkUserId":"hashed"});
sh
.
shardCollection
(
"prod_ln_scene.KylinOrderRefundEntitiesVo"
,
{
"orderRefundsEntitiesId"
:
"hashed"
}
);
sh
.
shardCollection
(
"prod_ln_scene.KylinOrderRefundPicVo"
,
{
"refundPicId"
:
"hashed"
}
);
sh
.
shardCollection
(
"prod_ln_scene.KylinOrderRefundsVoBase"
,
{
"orderRefundsId"
:
"hashed"
}
);
sh
.
shardCollection
(
"prod_ln_scene.KylinOrderTicketEntitiesVo"
,
{
"orderId"
:
"hashed"
}
);
sh
.
shardCollection
(
"prod_ln_scene.KylinOrderTicketEntitiesVo"
,
{
"order
TicketEntities
Id"
:
"hashed"
}
);
sh
.
shardCollection
(
"prod_ln_scene.KylinOrderTicketVo"
,
{
"orderTicketsId"
:
"hashed"
}
);
sh
.
shardCollection
(
"prod_ln_scene.KylinPerformanceVo"
,
{
"performancesId"
:
"hashed"
}
);
sh
.
shardCollection
(
"prod_ln_scene.KylinRoadShowVo"
,
{
"roadShowsId"
:
"hashed"
}
);
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/ServiceKylinApplication.java
View file @
45423d44
...
...
@@ -5,14 +5,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.core.env.Environment
;
import
java.net.InetAddress
;
import
java.util.Arrays
;
@Slf4j
@EnableFeignClients
@SpringBootApplication
(
scanBasePackages
=
{
"com.liquidnet"
})
public
class
ServiceKylinApplication
implements
CommandLineRunner
{
@Autowired
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/controller/KylinOrderTicketsController.java
View file @
45423d44
...
...
@@ -40,31 +40,31 @@ public class KylinOrderTicketsController {
@Autowired
IKylinOrderTicketsService
orderTicketsService
;
@PostMapping
(
"pre"
)
@ApiOperation
(
"下单"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
PayResultVo
>
checkCanOrder
(
@RequestBody
@Valid
PayOrderParam
payOrderParam
)
{
return
orderTicketsService
.
checkCanOrder
(
payOrderParam
);
}
@PostMapping
(
"payAgain"
)
@ApiOperation
(
"再次支付"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
PayResultVo
>
payAgain
(
@RequestBody
@Valid
PayAgainParam
payAgainParam
)
{
PayResultVo
vo
=
orderTicketsService
.
payAgain
(
payAgainParam
).
getData
();
if
(
null
==
vo
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20024"
));
}
else
{
return
ResponseDto
.
success
(
vo
);
}
}
@PostMapping
(
"syncOrder"
)
@ApiOperation
(
"支付回调"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
String
syncOrder
(
@ModelAttribute
@Valid
SyncOrderParam
syncOrderParam
)
{
return
orderTicketsService
.
syncOrder
(
syncOrderParam
);
}
//
@PostMapping("pre")
//
@ApiOperation("下单")
//
@ApiResponse(code = 200, message = "接口返回对象参数")
//
public ResponseDto<PayResultVo> checkCanOrder(@RequestBody @Valid PayOrderParam payOrderParam) {
//
return orderTicketsService.checkCanOrder(payOrderParam);
//
}
//
//
@PostMapping("payAgain")
//
@ApiOperation("再次支付")
//
@ApiResponse(code = 200, message = "接口返回对象参数")
//
public ResponseDto<PayResultVo> payAgain(@RequestBody @Valid PayAgainParam payAgainParam) {
//
PayResultVo vo = orderTicketsService.payAgain(payAgainParam).getData();
//
if (null == vo) {
//
return ResponseDto.failure(ErrorMapping.get("20024"));
//
} else {
//
return ResponseDto.success(vo);
//
}
//
}
//
//
@PostMapping("syncOrder")
//
@ApiOperation("支付回调")
//
@ApiResponse(code = 200, message = "接口返回对象参数")
//
public String syncOrder(@ModelAttribute @Valid SyncOrderParam syncOrderParam) {
//
return orderTicketsService.syncOrder(syncOrderParam);
//
}
@GetMapping
(
"list"
)
@ApiOperation
(
"订单列表"
)
...
...
@@ -126,20 +126,6 @@ public class KylinOrderTicketsController {
}
@GetMapping
(
"checkPayment"
)
@ApiOperation
(
"订单状态"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
HashMap
>
checkOrderResult
(
@RequestParam
(
"orderId"
)
@NotNull
(
message
=
"订单id不能为空"
)
String
orderId
)
{
Integer
status
=
orderTicketsService
.
checkOrderResult
(
orderId
).
getData
();
if
(
null
==
status
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20003"
));
}
else
{
HashMap
<
String
,
Integer
>
map
=
new
HashMap
<>();
map
.
put
(
"status"
,
status
);
return
ResponseDto
.
success
(
map
);
}
}
@GetMapping
(
"orderUnPayCount"
)
@ApiOperation
(
"待支付演出订单数量"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
...
...
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/controller/OrderRefundOvertimeController.java
View file @
45423d44
...
...
@@ -19,30 +19,30 @@ import org.springframework.web.bind.annotation.RestController;
* @author jiangxiulong
* @since 2021-06-11 6:10 下午
*/
@Api
(
tags
=
"前端-退款回调"
)
@RestController
@RequestMapping
(
"refund"
)
//
@Api(tags = "前端-退款回调")
//
@RestController
//
@RequestMapping("refund")
public
class
OrderRefundOvertimeController
{
@Autowired
private
OrderRefundOvertimeServiceImpl
orderRefundOvertimeServiceImpl
;
@PostMapping
(
"apply"
)
@ApiOperation
(
"超时退款"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"body"
,
dataType
=
"String"
,
name
=
"orderTicketsId"
,
value
=
"订单ID"
,
required
=
true
),
})
public
Boolean
refundApply
(
@RequestParam
()
String
orderTicketsId
)
{
try
{
Boolean
res
=
orderRefundOvertimeServiceImpl
.
refundApply
(
orderTicketsId
);
if
(
res
)
{
return
true
;
}
else
{
return
false
;
}
}
catch
(
Exception
e
)
{
return
false
;
}
}
//
@Autowired
//
private OrderRefundOvertimeServiceImpl orderRefundOvertimeServiceImpl;
//
//
@PostMapping("apply")
//
@ApiOperation("超时退款")
//
@ApiImplicitParams({
//
@ApiImplicitParam(type = "body", dataType = "String", name = "orderTicketsId", value = "订单ID", required = true),
//
})
//
public Boolean refundApply(@RequestParam() String orderTicketsId) {
//
try {
//
Boolean res = orderRefundOvertimeServiceImpl.refundApply(orderTicketsId);
//
if (res) {
//
return true;
//
} else {
//
return false;
//
}
//
} catch (Exception e) {
//
return false;
//
}
//
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinOrderTicketsServiceImpl.java
View file @
45423d44
...
...
@@ -700,153 +700,159 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
@Override
public
String
syncOrder
(
SyncOrderParam
syncOrderParam
)
{
//支付时间
LocalDateTime
now
=
LocalDateTime
.
now
();
String
lock
=
"order_lock:"
+
syncOrderParam
.
getOrder_code
();
if
(!
redisLockUtil
.
tryLock
(
lock
,
1
,
5
))
{
return
"fail"
;
//参数错误
}
String
timePay
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
now
);
KylinOrderTicketVo
orderTicketData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"orderCode"
).
is
(
syncOrderParam
.
getOrder_code
())),
KylinOrderTicketVo
.
class
,
KylinOrderTicketVo
.
class
.
getSimpleName
());
if
(
orderTicketData
==
null
)
{
redisLockUtil
.
unlock
(
lock
);
return
"fail"
;
//订单不存在
}
try
{
//支付时间
LocalDateTime
now
=
LocalDateTime
.
now
();
String
lock
=
"order_lock:"
+
syncOrderParam
.
getOrder_code
();
if
(!
redisLockUtil
.
tryLock
(
lock
,
1
,
5
))
{
return
"fail"
;
//参数错误
}
if
(
orderTicketData
.
getStatus
()
!=
KylinTableStatusConst
.
ORDER_STATUS0
)
{
if
(
orderTicketData
.
getPayCode
().
equals
(
syncOrderParam
.
getCode
())
&&
orderTicketData
.
getStatus
()
==
KylinTableStatusConst
.
ORDER_STATUS1
)
{
String
timePay
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
now
);
KylinOrderTicketVo
orderTicketData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"orderCode"
).
is
(
syncOrderParam
.
getOrder_code
())),
KylinOrderTicketVo
.
class
,
KylinOrderTicketVo
.
class
.
getSimpleName
());
if
(
orderTicketData
==
null
)
{
redisLockUtil
.
unlock
(
lock
);
return
"success"
;
//已经支付
return
"fail"
;
//订单不存在
}
if
(
orderTicketData
.
getStatus
()
!=
KylinTableStatusConst
.
ORDER_STATUS0
)
{
if
(
orderTicketData
.
getPayCode
().
equals
(
syncOrderParam
.
getCode
())
&&
orderTicketData
.
getStatus
()
==
KylinTableStatusConst
.
ORDER_STATUS1
)
{
redisLockUtil
.
unlock
(
lock
);
return
"success"
;
//已经支付
}
if
(!
orderTicketData
.
getPayCode
().
equals
(
syncOrderParam
.
getCode
()))
{
redisLockUtil
.
unlock
(
lock
);
return
"fail"
;
//重复支付
}
}
if
(
!
orderTicketData
.
getPayCode
().
equals
(
syncOrderParam
.
getCode
())
)
{
if
(
orderTicketData
.
getPriceActual
().
compareTo
(
syncOrderParam
.
getPrice
())
!=
0
)
{
redisLockUtil
.
unlock
(
lock
);
return
"fail"
;
//
重复支付
return
"fail"
;
//
价格不符
}
}
if
(
orderTicketData
.
getPriceActual
().
compareTo
(
syncOrderParam
.
getPrice
())
!=
0
)
{
redisLockUtil
.
unlock
(
lock
);
return
"fail"
;
//价格不符
}
LinkedList
<
String
>
sqls
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataA
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataB
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataC
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataD
=
new
LinkedList
<>();
LinkedList
<
String
>
sqls
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataA
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataB
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataC
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataD
=
new
LinkedList
<>();
LocalDateTime
strTime
=
orderTicketData
.
getChangeDate
();
LocalDateTime
strTime
=
orderTicketData
.
getChangeDate
();
KylinOrderTickets
orderTickets
=
new
KylinOrderTickets
();
KylinOrderTicketStatus
orderTicketStatus
=
new
KylinOrderTicketStatus
();
KylinOrderTicketEntities
orderTicketEntities
=
new
KylinOrderTicketEntities
();
KylinOrderTickets
orderTickets
=
new
KylinOrderTickets
();
KylinOrderTicketStatus
orderTicketStatus
=
new
KylinOrderTicketStatus
();
KylinOrderTicketEntities
orderTicketEntities
=
new
KylinOrderTicketEntities
();
if
(
orderTicketData
.
getStatus
()
==
2
)
{
mongoVoUtils
.
resetOrderListVo
(
orderTicketData
.
getUserId
(),
2
,
orderTicketData
.
getOrderTicketsId
(),
null
);
log
.
error
(
"订单号位 {} 的订单超时支付"
,
syncOrderParam
.
getOrder_code
());
orderRefundsCallbackService
.
refundApply
(
orderTicketData
.
getOrderTicketsId
());
}
else
if
(
orderTicketData
.
getStatus
()
==
3
||
orderTicketData
.
getStatus
()
==
4
)
{
log
.
error
(
"订单号位 {} 的订单正在退款 或者已退款"
,
syncOrderParam
.
getOrder_code
());
}
else
{
orderTickets
.
setOrderTicketsId
(
orderTicketData
.
getOrderTicketsId
());
orderTickets
.
setPaymentType
(
syncOrderParam
.
getPayment_type
());
orderTickets
.
setPayCode
(
syncOrderParam
.
getCode
());
orderTickets
.
setTimePay
(
timePay
);
orderTickets
.
setQrCode
(
IDGenerator
.
ticketQrCode
(
orderTicketData
.
getOrderTicketsId
()));
orderTickets
.
setUpdatedAt
(
now
);
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket.synPay"
));
sqlsDataA
.
add
(
orderTickets
.
getSynOrderObject
(
strTime
,
strTime
));
orderTicketStatus
.
setOrderId
(
orderTicketData
.
getOrderTicketsId
());
orderTicketStatus
.
setStatus
(
KylinTableStatusConst
.
ORDER_STATUS1
);
orderTicketStatus
.
setPayStatus
(
syncOrderParam
.
getStatus
());
orderTicketStatus
.
setUpdatedAt
(
orderTickets
.
getUpdatedAt
());
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_status.synPay"
));
sqlsDataB
.
add
(
orderTicketStatus
.
getSynOrderObject
(
strTime
,
strTime
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_relation.synPay"
));
sqlsDataC
.
add
(
new
Object
[]{
orderTickets
.
getUpdatedAt
(),
orderTickets
.
getOrderTicketsId
(),
strTime
,
strTime
});
if
(
orderTicketData
.
getStatus
()
==
2
)
{
mongoVoUtils
.
resetOrderListVo
(
orderTicketData
.
getUserId
(),
2
,
orderTicketData
.
getOrderTicketsId
(),
null
);
log
.
error
(
"订单号位 {} 的订单超时支付"
,
syncOrderParam
.
getOrder_code
());
orderRefundsCallbackService
.
refundApply
(
orderTicketData
.
getOrderTicketsId
());
}
else
if
(
orderTicketData
.
getStatus
()
==
3
||
orderTicketData
.
getStatus
()
==
4
)
{
log
.
error
(
"订单号位 {} 的订单正在退款 或者已退款"
,
syncOrderParam
.
getOrder_code
());
}
else
{
orderTickets
.
setOrderTicketsId
(
orderTicketData
.
getOrderTicketsId
());
orderTickets
.
setPaymentType
(
syncOrderParam
.
getPayment_type
());
orderTickets
.
setPayCode
(
syncOrderParam
.
getCode
());
orderTickets
.
setTimePay
(
timePay
);
orderTickets
.
setQrCode
(
IDGenerator
.
ticketQrCode
(
orderTicketData
.
getOrderTicketsId
()));
orderTickets
.
setUpdatedAt
(
now
);
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket.synPay"
));
sqlsDataA
.
add
(
orderTickets
.
getSynOrderObject
(
strTime
,
strTime
));
orderTicketStatus
.
setOrderId
(
orderTicketData
.
getOrderTicketsId
());
orderTicketStatus
.
setStatus
(
KylinTableStatusConst
.
ORDER_STATUS1
);
orderTicketStatus
.
setPayStatus
(
syncOrderParam
.
getStatus
());
orderTicketStatus
.
setUpdatedAt
(
orderTickets
.
getUpdatedAt
());
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_status.synPay"
));
sqlsDataB
.
add
(
orderTicketStatus
.
getSynOrderObject
(
strTime
,
strTime
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_relation.synPay"
));
sqlsDataC
.
add
(
new
Object
[]{
orderTickets
.
getUpdatedAt
(),
orderTickets
.
getOrderTicketsId
(),
strTime
,
strTime
});
orderTicketEntities
.
setOrderId
(
orderTicketData
.
getOrderTicketsId
());
orderTicketEntities
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
);
orderTicketEntities
.
setUpdatedAt
(
orderTickets
.
getUpdatedAt
());
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_entities.synPay"
));
sqlsDataD
.
add
(
orderTicketEntities
.
getSynOrderObject
(
strTime
,
strTime
));
//vo
HashMap
<
String
,
Object
>
orderTicketVo
=
new
HashMap
<>();
orderTicketVo
.
put
(
"paymentType"
,
orderTickets
.
getPaymentType
());
orderTicketVo
.
put
(
"payCode"
,
orderTickets
.
getPayCode
());
orderTicketVo
.
put
(
"timePay"
,
orderTickets
.
getTimePay
());
orderTicketVo
.
put
(
"qrCode"
,
orderTickets
.
getQrCode
());
orderTicketVo
.
put
(
"status"
,
KylinTableStatusConst
.
ORDER_STATUS1
);
orderTicketVo
.
put
(
"payStatus"
,
orderTicketStatus
.
getStatus
());
orderTicketVo
.
put
(
"updatedAt"
,
timePay
);
orderTicketVo
.
put
(
"changeDate"
,
now
);
mongoTemplate
.
getCollection
(
KylinOrderTicketVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
is
(
orderTickets
.
getOrderTicketsId
())).
getQueryObject
(),
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
orderTicketVo
))
);
orderTicketEntities
.
setOrderId
(
orderTicketData
.
getOrderTicketsId
());
orderTicketEntities
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
);
orderTicketEntities
.
setUpdatedAt
(
orderTickets
.
getUpdatedAt
());
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_entities.synPay"
));
sqlsDataD
.
add
(
orderTicketEntities
.
getSynOrderObject
(
strTime
,
strTime
));
//vo
HashMap
<
String
,
Object
>
orderTicketVo
=
new
HashMap
<>();
orderTicketVo
.
put
(
"paymentType"
,
orderTickets
.
getPaymentType
());
orderTicketVo
.
put
(
"payCode"
,
orderTickets
.
getPayCode
());
orderTicketVo
.
put
(
"timePay"
,
orderTickets
.
getTimePay
());
orderTicketVo
.
put
(
"qrCode"
,
orderTickets
.
getQrCode
());
orderTicketVo
.
put
(
"status"
,
KylinTableStatusConst
.
ORDER_STATUS1
);
orderTicketVo
.
put
(
"payStatus"
,
orderTicketStatus
.
getStatus
());
orderTicketVo
.
put
(
"updatedAt"
,
timePay
);
orderTicketVo
.
put
(
"changeDate"
,
now
);
mongoTemplate
.
getCollection
(
KylinOrderTicketVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
is
(
orderTickets
.
getOrderTicketsId
())).
getQueryObject
(),
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
orderTicketVo
))
);
HashMap
<
String
,
Object
>
orderTicketEntitiesVo
=
new
HashMap
<>();
orderTicketEntitiesVo
.
put
(
"isPayment"
,
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
);
orderTicketEntitiesVo
.
put
(
"updatedAt"
,
timePay
);
orderTicketEntitiesVo
.
put
(
"changeDate"
,
now
);
mongoTemplate
.
getCollection
(
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
()).
updateMany
(
Query
.
query
(
Criteria
.
where
(
"orderId"
).
is
(
orderTicketData
.
getOrderTicketsId
())).
getQueryObject
(),
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
orderTicketEntitiesVo
))
);
rabbitTemplate
.
convertAndSend
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
,
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
SqlMapping
.
gets
(
sqls
,
sqlsDataA
,
sqlsDataB
,
sqlsDataC
,
sqlsDataD
));
HashMap
<
String
,
Object
>
orderTicketEntitiesVo
=
new
HashMap
<>();
orderTicketEntitiesVo
.
put
(
"isPayment"
,
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
);
orderTicketEntitiesVo
.
put
(
"updatedAt"
,
timePay
);
orderTicketEntitiesVo
.
put
(
"changeDate"
,
now
);
mongoTemplate
.
getCollection
(
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
()).
updateMany
(
Query
.
query
(
Criteria
.
where
(
"orderId"
).
is
(
orderTicketData
.
getOrderTicketsId
())).
getQueryObject
(),
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
orderTicketEntitiesVo
))
);
//生成vo redis
dataUtils
.
delOrderTicketRedis
(
orderTickets
.
getOrderTicketsId
());
mongoVoUtils
.
resetOrderListVo
(
orderTicketData
.
getUserId
(),
2
,
orderTicketData
.
getOrderTicketsId
(),
null
);
rabbitTemplate
.
convertAndSend
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
,
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
SqlMapping
.
gets
(
sqls
,
sqlsDataA
,
sqlsDataB
,
sqlsDataC
,
sqlsDataD
));
// 发短信
KylinPerformanceVo
performanceData
=
dataUtils
.
getPerformanceVo
(
orderTicketData
.
getPerformanceId
());
KylinTicketTimesVo
ticketTimesData
=
null
;
KylinTicketVo
ticketData
=
null
;
for
(
int
x
=
0
;
x
<
performanceData
.
getTicketTimeList
().
size
();
x
++)
{
KylinTicketTimesVo
timeItem
=
performanceData
.
getTicketTimeList
().
get
(
x
);
if
(
timeItem
.
getTimeId
().
equals
(
orderTicketData
.
getTimeId
()))
{
ticketTimesData
=
timeItem
;
for
(
int
y
=
0
;
y
<
ticketTimesData
.
getTicketList
().
size
();
y
++)
{
KylinTicketVo
ticketItem
=
ticketTimesData
.
getTicketList
().
get
(
y
);
if
(
ticketItem
.
getTicketsId
().
equals
(
orderTicketData
.
getTicketId
()))
{
ticketData
=
ticketItem
;
break
;
//生成vo redis
dataUtils
.
delOrderTicketRedis
(
orderTickets
.
getOrderTicketsId
());
mongoVoUtils
.
resetOrderListVo
(
orderTicketData
.
getUserId
(),
2
,
orderTicketData
.
getOrderTicketsId
(),
null
);
// 发短信
KylinPerformanceVo
performanceData
=
dataUtils
.
getPerformanceVo
(
orderTicketData
.
getPerformanceId
());
KylinTicketTimesVo
ticketTimesData
=
null
;
KylinTicketVo
ticketData
=
null
;
for
(
int
x
=
0
;
x
<
performanceData
.
getTicketTimeList
().
size
();
x
++)
{
KylinTicketTimesVo
timeItem
=
performanceData
.
getTicketTimeList
().
get
(
x
);
if
(
timeItem
.
getTimeId
().
equals
(
orderTicketData
.
getTimeId
()))
{
ticketTimesData
=
timeItem
;
for
(
int
y
=
0
;
y
<
ticketTimesData
.
getTicketList
().
size
();
y
++)
{
KylinTicketVo
ticketItem
=
ticketTimesData
.
getTicketList
().
get
(
y
);
if
(
ticketItem
.
getTicketsId
().
equals
(
orderTicketData
.
getTicketId
()))
{
ticketData
=
ticketItem
;
break
;
}
}
break
;
}
break
;
}
}
MessageDataVo
dataVo
=
new
MessageDataVo
();
dataVo
.
setName
(
orderTicketData
.
getPerformanceTitle
());
String
time1
=
DateUtil
.
format
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
ticketData
.
getUseStart
()),
DateUtil
.
Formatter
.
yyyy_MM_dd
);
String
time2
=
DateUtil
.
format
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
performanceData
.
getTimeStart
()),
DateUtil
.
Formatter
.
HHmm
);
dataVo
.
setTime
(
time1
+
" "
+
time2
);
MessageConfigVo
configVo
=
new
MessageConfigVo
();
configVo
.
setStatus
(
true
);
if
(
orderTicketData
.
getGetTicketType
().
equals
(
"express"
))
{
configVo
.
setId
(
"SMS_181490473"
);
}
else
if
(
orderTicketData
.
getGetTicketType
().
equals
(
"electronic"
))
{
configVo
.
setId
(
ticketData
.
getIsShowCode
()
==
1
?
"SMS_171358560"
:
"SMS_181500419"
);
}
MessageDataVo
dataVo
=
new
MessageDataVo
();
dataVo
.
setName
(
orderTicketData
.
getPerformanceTitle
());
String
time1
=
DateUtil
.
format
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
ticketData
.
getUseStart
()),
DateUtil
.
Formatter
.
yyyy_MM_dd
);
String
time2
=
DateUtil
.
format
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
performanceData
.
getTimeStart
()),
DateUtil
.
Formatter
.
HHmm
);
dataVo
.
setTime
(
time1
+
" "
+
time2
);
MessageConfigVo
configVo
=
new
MessageConfigVo
();
configVo
.
setStatus
(
true
);
if
(
orderTicketData
.
getGetTicketType
().
equals
(
"express"
))
{
configVo
.
setId
(
"SMS_181490473"
);
}
else
if
(
orderTicketData
.
getGetTicketType
().
equals
(
"electronic"
))
{
configVo
.
setId
(
ticketData
.
getIsShowCode
()
==
1
?
"SMS_171358560"
:
"SMS_181500419"
);
}
// otherUtils.sendMessage(orderTicketData.getUserMobile(), dataVo, configVo, 1);
// 大麦回调
sycDamaiOrder
(
orderTickets
.
getOrderTicketsId
());
// 大麦回调
sycDamaiOrder
(
orderTickets
.
getOrderTicketsId
());
}
redisLockUtil
.
unlock
(
lock
);
log
.
info
(
UserPathDto
.
setData
(
"订单支付成功回调"
,
syncOrderParam
,
""
));
return
"success"
;
}
catch
(
Exception
e
)
{
log
.
error
(
"SYNCE ORDER E = "
+
e
.
getMessage
());
e
.
printStackTrace
();
return
"fail"
;
}
redisLockUtil
.
unlock
(
lock
);
log
.
info
(
UserPathDto
.
setData
(
"订单支付成功回调"
,
syncOrderParam
,
""
));
return
"success"
;
}
@Override
...
...
@@ -907,11 +913,14 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
@Override
public
OrderDetailsVo
orderDetails
(
String
orderId
)
{
Long
currentTime
=
System
.
currentTimeMillis
();
OrderDetailsVo
vo
=
new
OrderDetailsVo
();
try
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
// checkOrderTime(uid);
KylinOrderTicketVo
orderTicketVo
=
dataUtils
.
getOrderTicketVo
(
orderId
);
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"获取订单详情 -> time:"
+
(
currentTime
)
+
"毫秒"
);
if
(!
orderTicketVo
.
getUserId
().
equals
(
uid
))
{
return
null
;
}
...
...
@@ -919,6 +928,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
//TODO 顺丰快递
Object
expresses
=
null
;
KylinPerformanceVo
performanceVo
=
dataUtils
.
getPerformanceVo
(
orderTicketVo
.
getPerformanceId
());
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"获取演出详情 -> time:"
+
(
currentTime
)
+
"毫秒"
);
List
<
KylinOrderTicketEntitiesVo
>
kylinOrderTicketEntitiesVoList
=
orderTicketVo
.
getEntitiesVoList
();
KylinTicketVo
ticketVo
=
null
;
...
...
@@ -933,6 +944,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
}
}
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"巡演票数据 -> time:"
+
(
currentTime
)
+
"毫秒"
);
orderTicketVo
.
setIsTrueName
(
ticketVo
.
getIsTrueName
());
orderTicketVo
.
setNoticeImage
(
performanceVo
.
getNoticeImage
());
...
...
@@ -949,6 +962,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
}
else
{
orderTicketVo
.
setQrCode
(
""
);
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"获取二维码 -> time:"
+
(
currentTime
)
+
"毫秒"
);
// 数据脱敏
for
(
KylinOrderTicketEntitiesVo
item
:
kylinOrderTicketEntitiesVoList
)
{
...
...
@@ -959,6 +974,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
item
.
setEnterMobile
(
item
.
getEnterMobile
().
substring
(
0
,
3
)
+
"****"
+
item
.
getEnterMobile
().
substring
(
7
));
}
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"入场人加密 -> time:"
+
(
currentTime
)
+
"毫秒"
);
//计算 倒计时
Date
nowDate
=
DateUtil
.
parse
(
DateUtil
.
getNowTime
(),
"yyyy-MM-dd HH:mm:ss"
);
if
(
orderTicketVo
.
getStatus
().
equals
(
KylinTableStatusConst
.
ORDER_STATUS0
))
{
...
...
@@ -972,6 +989,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
}
else
{
vo
.
setRestTime
(
0L
);
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"获取倒计时 -> time:"
+
(
currentTime
)
+
"毫秒"
);
//快递
if
(
null
!=
expresses
)
{
vo
.
setExpress_number
(
""
);
//expresses.getNumber()
...
...
@@ -994,9 +1013,13 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
}
else
{
vo
.
setIsCanRefund
(
0
);
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"是否支持退款 -> time:"
+
(
currentTime
)
+
"毫秒"
);
List
<
KylinOrderRefundsOrderCodeVo
>
orderRefundsVoBaseList
=
new
ArrayList
<>();
List
<
KylinOrderRefundsVo
>
orderRefundsVoList
=
dataUtils
.
getOrderRefundVoByOrderId
(
orderId
);
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"获取退款详情 -> time:"
+
(
currentTime
)
+
"毫秒"
);
for
(
KylinOrderRefundsVo
item
:
orderRefundsVoList
)
{
KylinOrderRefundsOrderCodeVo
data
=
new
KylinOrderRefundsOrderCodeVo
();
data
.
setOrderRefundsId
(
item
.
getOrderRefundsId
());
...
...
@@ -1012,6 +1035,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
data
.
setStatus
(
item
.
getStatus
());
orderRefundListVos
.
add
(
data
);
}
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"循环退款详情 -> time:"
+
(
currentTime
)
+
"毫秒"
);
orderTicketVo
.
setOrderRefundListVos
(
orderRefundListVos
);
orderTicketVo
.
setOrderCode
(
orderTicketVo
.
getOrderCode
().
substring
(
orderTicketVo
.
getOrderCode
().
length
()
-
10
));
vo
.
setOrderRefundsVoList
(
orderRefundsVoBaseList
);
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/controller/KylinOrderTicketEntitiesController.java
0 → 100644
View file @
45423d44
package
com
.
liquidnet
.
service
.
order
.
controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* <p>
* 订单详情 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-05-20
*/
@RestController
@RequestMapping
(
"orderEnter"
)
public
class
KylinOrderTicketEntitiesController
{
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/controller/KylinOrderTicketsController.java
View file @
45423d44
...
...
@@ -64,66 +64,6 @@ public class KylinOrderTicketsController {
return
orderTicketsService
.
syncOrder
(
syncOrderParam
);
}
@GetMapping
(
"list"
)
@ApiOperation
(
"订单列表"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
PageInfo
<
List
<
KylinOrderListVo
>>>
orderList
()
{
return
ResponseDto
.
success
(
orderTicketsService
.
orderList
());
}
@GetMapping
(
"details"
)
@ApiOperation
(
"订单详情"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
OrderDetailsVo
>
orderDetails
(
@RequestParam
(
value
=
"orderId"
,
required
=
false
)
@NotNull
(
message
=
"订单id不能为空"
)
String
orderId
)
{
OrderDetailsVo
vo
=
orderTicketsService
.
orderDetails
(
orderId
);
if
(
null
==
vo
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20003"
));
}
else
{
return
ResponseDto
.
success
(
vo
);
}
}
@GetMapping
(
"toOrderRefundDetails"
)
@ApiOperation
(
"想要退款订单详情"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
KylinOrderTicketPreVo
>
toOrderRefundDetails
(
@RequestParam
(
value
=
"orderId"
,
required
=
false
)
@NotNull
(
message
=
"订单id不能为空"
)
String
orderId
)
{
KylinOrderTicketPreVo
vo
=
orderTicketsService
.
toOrderRefundDetails
(
orderId
);
if
(
null
==
vo
)
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20003"
));
}
else
{
return
ResponseDto
.
success
(
vo
);
}
}
@PostMapping
(
"sendOrderRefunds"
)
@ApiOperation
(
"发起退款申请"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
HashMap
<
String
,
String
>>
sendOrderRefund
(
@RequestParam
(
value
=
"orderId"
,
required
=
true
)
@NotNull
(
message
=
"订单id不能为空"
)
String
orderId
,
@RequestParam
(
value
=
"orderTicketEntitiesId"
,
required
=
true
)
@NotNull
(
message
=
"票单id不能为空"
)
String
orderTicketEntitiesId
,
@RequestParam
(
value
=
"reason"
,
required
=
true
)
@NotNull
(
message
=
"退款原因不能为空"
)
String
reason
,
@RequestParam
(
value
=
"picList"
,
required
=
false
)
String
picList
)
{
String
orderRefundId
=
orderTicketsService
.
sendOrderRefund
(
orderId
,
orderTicketEntitiesId
,
reason
,
picList
).
getData
();
HashMap
<
String
,
String
>
map
=
new
HashMap
<
String
,
String
>();
map
.
put
(
"orderRefundsId"
,
orderRefundId
);
return
ResponseDto
.
success
(
map
);
}
@GetMapping
(
"orderRefundDetails"
)
@ApiOperation
(
"退款申请详情"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
OrderRefundVo
>
orderRefundDetails
(
@RequestParam
(
value
=
"orderId"
,
required
=
true
)
@NotNull
(
message
=
"订单id不能为空"
)
String
orderId
,
@RequestParam
(
value
=
"orderRefundId"
,
required
=
true
)
@NotNull
(
message
=
"退款订单id不能为空"
)
String
orderRefundId
)
{
return
ResponseDto
.
success
(
orderTicketsService
.
orderRefundDetails
(
orderId
,
orderRefundId
));
}
@PostMapping
(
"orderRefundWithdraw"
)
@ApiOperation
(
"发起退款撤回"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
Boolean
>
orderRefundWithdraw
(
@RequestParam
(
value
=
"orderRefundId"
,
required
=
true
)
@NotNull
(
message
=
"退款订单id不能为空"
)
String
orderRefundId
)
{
return
orderTicketsService
.
orderRefundWithdraw
(
orderRefundId
);
}
@GetMapping
(
"checkPayment"
)
@ApiOperation
(
"订单状态"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
...
...
@@ -137,14 +77,4 @@ public class KylinOrderTicketsController {
return
ResponseDto
.
success
(
map
);
}
}
@GetMapping
(
"orderUnPayCount"
)
@ApiOperation
(
"待支付演出订单数量"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
HashMap
>
orderUnPayCount
()
{
Integer
unPayCount
=
orderTicketsService
.
orderUnPayCount
().
getData
();
HashMap
<
String
,
Integer
>
map
=
new
HashMap
<>();
map
.
put
(
"unPayCount"
,
unPayCount
);
return
ResponseDto
.
success
(
map
);
}
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/controller/OrderRefundOvertimeController.java
0 → 100644
View file @
45423d44
package
com
.
liquidnet
.
service
.
order
.
controller
;
import
com.liquidnet.service.order.service.impl.OrderRefundOvertimeServiceImpl
;
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.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* <p>
* 退款回掉
* </p>
*
* @author jiangxiulong
* @since 2021-06-11 6:10 下午
*/
@Api
(
tags
=
"前端-退款回调"
)
@RestController
@RequestMapping
(
"refund"
)
public
class
OrderRefundOvertimeController
{
@Autowired
private
OrderRefundOvertimeServiceImpl
orderRefundOvertimeServiceImpl
;
@PostMapping
(
"apply"
)
@ApiOperation
(
"超时退款"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"body"
,
dataType
=
"String"
,
name
=
"orderTicketsId"
,
value
=
"订单ID"
,
required
=
true
),
})
public
Boolean
refundApply
(
@RequestParam
()
String
orderTicketsId
)
{
try
{
Boolean
res
=
orderRefundOvertimeServiceImpl
.
refundApply
(
orderTicketsId
);
if
(
res
)
{
return
true
;
}
else
{
return
false
;
}
}
catch
(
Exception
e
)
{
return
false
;
}
}
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/KylinOrderRefundPicServiceImpl.java
0 → 100644
View file @
45423d44
package
com
.
liquidnet
.
service
.
order
.
service
.
impl
;
import
com.liquidnet.service.kylin.service.IKylinOrderRefundPicService
;
import
org.springframework.stereotype.Service
;
@Service
public
class
KylinOrderRefundPicServiceImpl
implements
IKylinOrderRefundPicService
{
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/KylinOrderTicketsServiceImpl.java
View file @
45423d44
...
...
@@ -92,10 +92,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
private
RabbitTemplate
rabbitTemplate
;
@Autowired
private
TaobaoTicketUtils
taobaoTicketUtils
;
//
@Autowired
//
private OrderRefundOvertimeServiceImpl orderRefundsCallbackService;
//
@Autowired
//
private KylinRefundsStatusServiceImpl refundsStatusService;
@Autowired
private
OrderRefundOvertimeServiceImpl
orderRefundsCallbackService
;
@Autowired
private
KylinRefundsStatusServiceImpl
refundsStatusService
;
ArrayList
<
Integer
>
canBuyStatus
=
new
ArrayList
()
{{
...
...
@@ -110,6 +110,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
public
ResponseDto
<
PayResultVo
>
checkCanOrder
(
PayOrderParam
payOrderParam
)
{
Long
currentTime
;
boolean
isDownGeneral
=
false
;
List
<
AdamEntersVo
>
entersVoList
=
new
ArrayList
<>();
Long
startTime
=
System
.
currentTimeMillis
();
String
uid
=
CurrentUtil
.
getCurrentUid
();
String
lock
=
"userId:"
+
uid
;
...
...
@@ -260,7 +261,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
isDownGeneral
=
true
;
//学生票 判断
List
<
AdamEntersVo
>
entersVoList
=
new
ArrayList
<>();
entersVoList
=
new
ArrayList
<>();
if
(
isTrueName
==
1
)
{
currentTime
=
System
.
currentTimeMillis
();
for
(
String
enterId
:
payOrderParam
.
getEnterIdList
())
{
...
...
@@ -318,6 +319,14 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
dataUtils
.
changeSurplusGeneral
(
payOrderParam
.
getTicketId
(),
payOrderParam
.
getNumber
());
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"redis 修改库存 异常 -> time:"
+
(
currentTime
)
+
"毫秒"
);
for
(
AdamEntersVo
enters
:
entersVoList
)
{
dataUtils
.
changeBuyInfo
(
uid
,
enters
.
getIdCard
(),
payOrderParam
.
getPerformanceId
(),
payOrderParam
.
getTicketId
(),
-
1
);
}
if
(
entersVoList
.
size
()
==
0
)
{
for
(
int
i
=
0
;
i
<
payOrderParam
.
getNumber
();
i
++)
{
dataUtils
.
changeBuyInfo
(
uid
,
""
,
payOrderParam
.
getPerformanceId
(),
payOrderParam
.
getTicketId
(),
-
1
);
}
}
}
e
.
printStackTrace
();
log
.
error
(
"Kylin Order Pay Error = "
+
e
.
getMessage
());
...
...
@@ -543,6 +552,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
currentTime
=
System
.
currentTimeMillis
();
String
returnData
=
HttpUtil
.
post
(
payUrl
+
payOrderParam
.
getDeviceFrom
()
+
"/"
+
payOrderParam
.
getPayType
(),
httpData
);
log
.
debug
(
"NOTIFY_URL = "
+
synUrl
);
currentTime
=
System
.
currentTimeMillis
()
-
currentTime
;
log
.
debug
(
"调用 PHP 支付 -> time:"
+
(
currentTime
)
+
"毫秒"
);
PayResultVo
payResultVo
=
JsonUtils
.
fromJson
(
returnData
,
PayResultVo
.
class
);
...
...
@@ -699,153 +709,160 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
@Override
public
String
syncOrder
(
SyncOrderParam
syncOrderParam
)
{
//支付时间
LocalDateTime
now
=
LocalDateTime
.
now
();
String
lock
=
"order_lock:"
+
syncOrderParam
.
getOrder_code
();
if
(!
redisLockUtil
.
tryLock
(
lock
,
1
,
5
))
{
return
"fail"
;
//参数错误
}
String
timePay
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
now
);
KylinOrderTicketVo
orderTicketData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"orderCode"
).
is
(
syncOrderParam
.
getOrder_code
())),
KylinOrderTicketVo
.
class
,
KylinOrderTicketVo
.
class
.
getSimpleName
());
if
(
orderTicketData
==
null
)
{
redisLockUtil
.
unlock
(
lock
);
return
"fail"
;
//订单不存在
}
try
{
log
.
debug
(
"SYNC PARAM = "
+
syncOrderParam
.
toString
());
//支付时间
LocalDateTime
now
=
LocalDateTime
.
now
();
String
lock
=
"order_lock:"
+
syncOrderParam
.
getOrder_code
();
if
(!
redisLockUtil
.
tryLock
(
lock
,
1
,
5
))
{
return
"fail"
;
//参数错误
}
if
(
orderTicketData
.
getStatus
()
!=
KylinTableStatusConst
.
ORDER_STATUS0
)
{
if
(
orderTicketData
.
getPayCode
().
equals
(
syncOrderParam
.
getCode
())
&&
orderTicketData
.
getStatus
()
==
KylinTableStatusConst
.
ORDER_STATUS1
)
{
String
timePay
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
now
);
KylinOrderTicketVo
orderTicketData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"orderCode"
).
is
(
syncOrderParam
.
getOrder_code
())),
KylinOrderTicketVo
.
class
,
KylinOrderTicketVo
.
class
.
getSimpleName
());
if
(
orderTicketData
==
null
)
{
redisLockUtil
.
unlock
(
lock
);
return
"
success"
;
//已经支付
return
"
fail"
;
//订单不存在
}
if
(!
orderTicketData
.
getPayCode
().
equals
(
syncOrderParam
.
getCode
()))
{
redisLockUtil
.
unlock
(
lock
);
return
"fail"
;
//重复支付
if
(
orderTicketData
.
getStatus
()
!=
KylinTableStatusConst
.
ORDER_STATUS0
)
{
if
(
orderTicketData
.
getPayCode
().
equals
(
syncOrderParam
.
getCode
())
&&
orderTicketData
.
getStatus
()
==
KylinTableStatusConst
.
ORDER_STATUS1
)
{
redisLockUtil
.
unlock
(
lock
);
return
"success"
;
//已经支付
}
if
(!
orderTicketData
.
getPayCode
().
equals
(
syncOrderParam
.
getCode
()))
{
redisLockUtil
.
unlock
(
lock
);
return
"fail"
;
//重复支付
}
}
}
if
(
orderTicketData
.
getPriceActual
().
compareTo
(
syncOrderParam
.
getPrice
())
!=
0
)
{
redisLockUtil
.
unlock
(
lock
);
return
"fail"
;
//价格不符
}
if
(
orderTicketData
.
getPriceActual
().
compareTo
(
syncOrderParam
.
getPrice
())
!=
0
)
{
redisLockUtil
.
unlock
(
lock
);
return
"fail"
;
//价格不符
}
LinkedList
<
String
>
sqls
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataA
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataB
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataC
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataD
=
new
LinkedList
<>();
LinkedList
<
String
>
sqls
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataA
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataB
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataC
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataD
=
new
LinkedList
<>();
LocalDateTime
strTime
=
orderTicketData
.
getChangeDate
();
LocalDateTime
strTime
=
orderTicketData
.
getChangeDate
();
KylinOrderTickets
orderTickets
=
new
KylinOrderTickets
();
KylinOrderTicketStatus
orderTicketStatus
=
new
KylinOrderTicketStatus
();
KylinOrderTicketEntities
orderTicketEntities
=
new
KylinOrderTicketEntities
();
KylinOrderTickets
orderTickets
=
new
KylinOrderTickets
();
KylinOrderTicketStatus
orderTicketStatus
=
new
KylinOrderTicketStatus
();
KylinOrderTicketEntities
orderTicketEntities
=
new
KylinOrderTicketEntities
();
if
(
orderTicketData
.
getStatus
()
==
2
)
{
mongoVoUtils
.
resetOrderListVo
(
orderTicketData
.
getUserId
(),
2
,
orderTicketData
.
getOrderTicketsId
(),
null
);
log
.
error
(
"订单号位 {} 的订单超时支付"
,
syncOrderParam
.
getOrder_code
());
// orderRefundsCallbackService.refundApply(orderTicketData.getOrderTicketsId());
}
else
if
(
orderTicketData
.
getStatus
()
==
3
||
orderTicketData
.
getStatus
()
==
4
)
{
log
.
error
(
"订单号位 {} 的订单正在退款 或者已退款"
,
syncOrderParam
.
getOrder_code
());
}
else
{
orderTickets
.
setOrderTicketsId
(
orderTicketData
.
getOrderTicketsId
());
orderTickets
.
setPaymentType
(
syncOrderParam
.
getPayment_type
());
orderTickets
.
setPayCode
(
syncOrderParam
.
getCode
());
orderTickets
.
setTimePay
(
timePay
);
orderTickets
.
setQrCode
(
IDGenerator
.
ticketQrCode
(
orderTicketData
.
getOrderTicketsId
()));
orderTickets
.
setUpdatedAt
(
now
);
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket.synPay"
));
sqlsDataA
.
add
(
orderTickets
.
getSynOrderObject
(
strTime
,
strTime
));
orderTicketStatus
.
setOrderId
(
orderTicketData
.
getOrderTicketsId
());
orderTicketStatus
.
setStatus
(
KylinTableStatusConst
.
ORDER_STATUS1
);
orderTicketStatus
.
setPayStatus
(
syncOrderParam
.
getStatus
());
orderTicketStatus
.
setUpdatedAt
(
orderTickets
.
getUpdatedAt
());
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_status.synPay"
));
sqlsDataB
.
add
(
orderTicketStatus
.
getSynOrderObject
(
strTime
,
strTime
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_relation.synPay"
));
sqlsDataC
.
add
(
new
Object
[]{
orderTickets
.
getUpdatedAt
(),
orderTickets
.
getOrderTicketsId
(),
strTime
,
strTime
});
orderTicketEntities
.
setOrderId
(
orderTicketData
.
getOrderTicketsId
());
orderTicketEntities
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
);
orderTicketEntities
.
setUpdatedAt
(
orderTickets
.
getUpdatedAt
());
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_entities.synPay"
));
sqlsDataD
.
add
(
orderTicketEntities
.
getSynOrderObject
(
strTime
,
strTime
));
//vo
HashMap
<
String
,
Object
>
orderTicketVo
=
new
HashMap
<>();
orderTicketVo
.
put
(
"paymentType"
,
orderTickets
.
getPaymentType
());
orderTicketVo
.
put
(
"payCode"
,
orderTickets
.
getPayCode
());
orderTicketVo
.
put
(
"timePay"
,
orderTickets
.
getTimePay
());
orderTicketVo
.
put
(
"qrCode"
,
orderTickets
.
getQrCode
());
orderTicketVo
.
put
(
"status"
,
KylinTableStatusConst
.
ORDER_STATUS1
);
orderTicketVo
.
put
(
"payStatus"
,
orderTicketStatus
.
getStatus
());
orderTicketVo
.
put
(
"updatedAt"
,
timePay
);
orderTicketVo
.
put
(
"changeDate"
,
now
);
mongoTemplate
.
getCollection
(
KylinOrderTicketVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
is
(
orderTickets
.
getOrderTicketsId
())).
getQueryObject
(),
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
orderTicketVo
))
);
if
(
orderTicketData
.
getStatus
()
==
2
)
{
mongoVoUtils
.
resetOrderListVo
(
orderTicketData
.
getUserId
(),
2
,
orderTicketData
.
getOrderTicketsId
(),
null
);
log
.
error
(
"订单号位 {} 的订单超时支付"
,
syncOrderParam
.
getOrder_code
());
orderRefundsCallbackService
.
refundApply
(
orderTicketData
.
getOrderTicketsId
());
}
else
if
(
orderTicketData
.
getStatus
()
==
3
||
orderTicketData
.
getStatus
()
==
4
)
{
log
.
error
(
"订单号位 {} 的订单正在退款 或者已退款"
,
syncOrderParam
.
getOrder_code
());
}
else
{
orderTickets
.
setOrderTicketsId
(
orderTicketData
.
getOrderTicketsId
());
orderTickets
.
setPaymentType
(
syncOrderParam
.
getPayment_type
());
orderTickets
.
setPayCode
(
syncOrderParam
.
getCode
());
orderTickets
.
setTimePay
(
timePay
);
orderTickets
.
setQrCode
(
IDGenerator
.
ticketQrCode
(
orderTicketData
.
getOrderTicketsId
()));
orderTickets
.
setUpdatedAt
(
now
);
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket.synPay"
));
sqlsDataA
.
add
(
orderTickets
.
getSynOrderObject
(
strTime
,
strTime
));
orderTicketStatus
.
setOrderId
(
orderTicketData
.
getOrderTicketsId
());
orderTicketStatus
.
setStatus
(
KylinTableStatusConst
.
ORDER_STATUS1
);
orderTicketStatus
.
setPayStatus
(
syncOrderParam
.
getStatus
());
orderTicketStatus
.
setUpdatedAt
(
orderTickets
.
getUpdatedAt
());
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_status.synPay"
));
sqlsDataB
.
add
(
orderTicketStatus
.
getSynOrderObject
(
strTime
,
strTime
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_relation.synPay"
));
sqlsDataC
.
add
(
new
Object
[]{
orderTickets
.
getUpdatedAt
(),
orderTickets
.
getOrderTicketsId
(),
strTime
,
strTime
});
orderTicketEntities
.
setOrderId
(
orderTicketData
.
getOrderTicketsId
());
orderTicketEntities
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
);
orderTicketEntities
.
setUpdatedAt
(
orderTickets
.
getUpdatedAt
());
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_entities.synPay"
));
sqlsDataD
.
add
(
orderTicketEntities
.
getSynOrderObject
(
strTime
,
strTime
));
//vo
HashMap
<
String
,
Object
>
orderTicketVo
=
new
HashMap
<>();
orderTicketVo
.
put
(
"paymentType"
,
orderTickets
.
getPaymentType
());
orderTicketVo
.
put
(
"payCode"
,
orderTickets
.
getPayCode
());
orderTicketVo
.
put
(
"timePay"
,
orderTickets
.
getTimePay
());
orderTicketVo
.
put
(
"qrCode"
,
orderTickets
.
getQrCode
());
orderTicketVo
.
put
(
"status"
,
KylinTableStatusConst
.
ORDER_STATUS1
);
orderTicketVo
.
put
(
"payStatus"
,
orderTicketStatus
.
getStatus
());
orderTicketVo
.
put
(
"updatedAt"
,
timePay
);
orderTicketVo
.
put
(
"changeDate"
,
now
);
mongoTemplate
.
getCollection
(
KylinOrderTicketVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
is
(
orderTickets
.
getOrderTicketsId
())).
getQueryObject
(),
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
orderTicketVo
))
);
HashMap
<
String
,
Object
>
orderTicketEntitiesVo
=
new
HashMap
<>();
orderTicketEntitiesVo
.
put
(
"isPayment"
,
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
);
orderTicketEntitiesVo
.
put
(
"updatedAt"
,
timePay
);
orderTicketEntitiesVo
.
put
(
"changeDate"
,
now
);
mongoTemplate
.
getCollection
(
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
()).
updateMany
(
Query
.
query
(
Criteria
.
where
(
"orderId"
).
is
(
orderTicketData
.
getOrderTicketsId
())).
getQueryObject
(),
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
orderTicketEntitiesVo
))
);
rabbitTemplate
.
convertAndSend
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
,
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
SqlMapping
.
gets
(
sqls
,
sqlsDataA
,
sqlsDataB
,
sqlsDataC
,
sqlsDataD
));
HashMap
<
String
,
Object
>
orderTicketEntitiesVo
=
new
HashMap
<>();
orderTicketEntitiesVo
.
put
(
"isPayment"
,
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT1
);
orderTicketEntitiesVo
.
put
(
"updatedAt"
,
timePay
);
orderTicketEntitiesVo
.
put
(
"changeDate"
,
now
);
mongoTemplate
.
getCollection
(
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
()).
updateMany
(
Query
.
query
(
Criteria
.
where
(
"orderId"
).
is
(
orderTicketData
.
getOrderTicketsId
())).
getQueryObject
(),
new
BasicDBObject
(
"$set"
,
mongoConverter
.
convertToMongoType
(
orderTicketEntitiesVo
))
);
//生成vo redis
dataUtils
.
delOrderTicketRedis
(
orderTickets
.
getOrderTicketsId
());
mongoVoUtils
.
resetOrderListVo
(
orderTicketData
.
getUserId
(),
2
,
orderTicketData
.
getOrderTicketsId
(),
null
);
rabbitTemplate
.
convertAndSend
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_PAY
,
MQConst
.
ROUTING_KEY_SQL_ORDER_PAY
,
SqlMapping
.
gets
(
sqls
,
sqlsDataA
,
sqlsDataB
,
sqlsDataC
,
sqlsDataD
));
// 发短信
KylinPerformanceVo
performanceData
=
dataUtils
.
getPerformanceVo
(
orderTicketData
.
getPerformanceId
());
KylinTicketTimesVo
ticketTimesData
=
null
;
KylinTicketVo
ticketData
=
null
;
for
(
int
x
=
0
;
x
<
performanceData
.
getTicketTimeList
().
size
();
x
++)
{
KylinTicketTimesVo
timeItem
=
performanceData
.
getTicketTimeList
().
get
(
x
);
if
(
timeItem
.
getTimeId
().
equals
(
orderTicketData
.
getTimeId
()))
{
ticketTimesData
=
timeItem
;
for
(
int
y
=
0
;
y
<
ticketTimesData
.
getTicketList
().
size
();
y
++)
{
KylinTicketVo
ticketItem
=
ticketTimesData
.
getTicketList
().
get
(
y
);
if
(
ticketItem
.
getTicketsId
().
equals
(
orderTicketData
.
getTicketId
()))
{
ticketData
=
ticketItem
;
break
;
//生成vo redis
dataUtils
.
delOrderTicketRedis
(
orderTickets
.
getOrderTicketsId
());
mongoVoUtils
.
resetOrderListVo
(
orderTicketData
.
getUserId
(),
2
,
orderTicketData
.
getOrderTicketsId
(),
null
);
// 发短信
KylinPerformanceVo
performanceData
=
dataUtils
.
getPerformanceVo
(
orderTicketData
.
getPerformanceId
());
KylinTicketTimesVo
ticketTimesData
=
null
;
KylinTicketVo
ticketData
=
null
;
for
(
int
x
=
0
;
x
<
performanceData
.
getTicketTimeList
().
size
();
x
++)
{
KylinTicketTimesVo
timeItem
=
performanceData
.
getTicketTimeList
().
get
(
x
);
if
(
timeItem
.
getTimeId
().
equals
(
orderTicketData
.
getTimeId
()))
{
ticketTimesData
=
timeItem
;
for
(
int
y
=
0
;
y
<
ticketTimesData
.
getTicketList
().
size
();
y
++)
{
KylinTicketVo
ticketItem
=
ticketTimesData
.
getTicketList
().
get
(
y
);
if
(
ticketItem
.
getTicketsId
().
equals
(
orderTicketData
.
getTicketId
()))
{
ticketData
=
ticketItem
;
break
;
}
}
break
;
}
break
;
}
}
MessageDataVo
dataVo
=
new
MessageDataVo
();
dataVo
.
setName
(
orderTicketData
.
getPerformanceTitle
());
String
time1
=
DateUtil
.
format
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
ticketData
.
getUseStart
()),
DateUtil
.
Formatter
.
yyyy_MM_dd
);
String
time2
=
DateUtil
.
format
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
performanceData
.
getTimeStart
()),
DateUtil
.
Formatter
.
HHmm
);
dataVo
.
setTime
(
time1
+
" "
+
time2
);
MessageConfigVo
configVo
=
new
MessageConfigVo
();
configVo
.
setStatus
(
true
);
if
(
orderTicketData
.
getGetTicketType
().
equals
(
"express"
))
{
configVo
.
setId
(
"SMS_181490473"
);
}
else
if
(
orderTicketData
.
getGetTicketType
().
equals
(
"electronic"
))
{
configVo
.
setId
(
ticketData
.
getIsShowCode
()
==
1
?
"SMS_171358560"
:
"SMS_181500419"
);
}
MessageDataVo
dataVo
=
new
MessageDataVo
();
dataVo
.
setName
(
orderTicketData
.
getPerformanceTitle
());
String
time1
=
DateUtil
.
format
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
ticketData
.
getUseStart
()),
DateUtil
.
Formatter
.
yyyy_MM_dd
);
String
time2
=
DateUtil
.
format
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
performanceData
.
getTimeStart
()),
DateUtil
.
Formatter
.
HHmm
);
dataVo
.
setTime
(
time1
+
" "
+
time2
);
MessageConfigVo
configVo
=
new
MessageConfigVo
();
configVo
.
setStatus
(
true
);
if
(
orderTicketData
.
getGetTicketType
().
equals
(
"express"
))
{
configVo
.
setId
(
"SMS_181490473"
);
}
else
if
(
orderTicketData
.
getGetTicketType
().
equals
(
"electronic"
))
{
configVo
.
setId
(
ticketData
.
getIsShowCode
()
==
1
?
"SMS_171358560"
:
"SMS_181500419"
);
}
// otherUtils.sendMessage(orderTicketData.getUserMobile(), dataVo, configVo, 1);
// 大麦回调
sycDamaiOrder
(
orderTickets
.
getOrderTicketsId
());
// 大麦回调
sycDamaiOrder
(
orderTickets
.
getOrderTicketsId
());
}
redisLockUtil
.
unlock
(
lock
);
log
.
info
(
UserPathDto
.
setData
(
"订单支付成功回调"
,
syncOrderParam
,
""
));
return
"success"
;
}
catch
(
Exception
e
)
{
log
.
error
(
"SYNCE ORDER E = "
+
e
.
getMessage
());
e
.
printStackTrace
();
return
"fail"
;
}
redisLockUtil
.
unlock
(
lock
);
log
.
info
(
UserPathDto
.
setData
(
"订单支付成功回调"
,
syncOrderParam
,
""
));
return
"success"
;
}
@Override
...
...
@@ -1153,12 +1170,12 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
}
Map
token
=
CurrentUtil
.
getTokenClaims
();
String
username
=
StringUtils
.
defaultString
(((
String
)
token
.
get
(
"nickname"
)),
""
);
//
String result = refundsStatusService.userOrderTicketRefunding(orderTicketVo, refundSinglePrice.doubleValue(), orderTicketEntitiesId, reason, picList, uid, username, kylinOrderRefundsVoBaseList.size());
//
if (result != "") {
//
return ResponseDto.success(result);
//
} else {
String
result
=
refundsStatusService
.
userOrderTicketRefunding
(
orderTicketVo
,
refundSinglePrice
.
doubleValue
(),
orderTicketEntitiesId
,
reason
,
picList
,
uid
,
username
,
kylinOrderRefundsVoBaseList
.
size
());
if
(
result
!=
""
)
{
return
ResponseDto
.
success
(
result
);
}
else
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20019"
));
//
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"20019"
));
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/KylinRefundsStatusServiceImpl.java
0 → 100644
View file @
45423d44
package
com
.
liquidnet
.
service
.
order
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.liquidnet.common.mq.constant.MQConst
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.kylin.constant.KylinTableStatusConst
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderRefundEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderRefundPicVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo
;
import
com.liquidnet.service.kylin.entity.*
;
import
com.liquidnet.service.order.utils.DataUtils
;
import
com.liquidnet.service.order.utils.MongoVoUtils
;
import
com.mongodb.BasicDBObject
;
import
com.mongodb.client.result.UpdateResult
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.BeanUtils
;
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.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
* <p>
* 订单退款表 服务实现类 处理数据 退款后状态的变化
* </p>
*
* @author jiaangxiulong
* @since 2021-05-26
*/
@Slf4j
@Service
public
class
KylinRefundsStatusServiceImpl
{
@Autowired
MongoTemplate
mongoTemplate
;
@Autowired
private
DataUtils
dataUtils
;
@Autowired
private
MongoVoUtils
mongoVoUtils
;
@Autowired
private
RabbitTemplate
rabbitTemplate
;
public
Boolean
orderTicketRefunding
(
KylinOrderTicketVo
orderInfo
,
String
orderTicketsId
,
double
RefundPriceExpress
,
List
<
String
>
ticketEntityIds
,
List
<
Double
>
entitiesPrice
)
{
if
(
CollectionUtil
.
isEmpty
(
ticketEntityIds
))
{
return
false
;
}
// 基础数据
String
authId
=
""
;
String
authName
=
"system_overtime_order_refund"
;
String
reason
=
"订单支付超时自动退款"
;
// 本次退款票总金额
double
entitiesPriceSum
=
entitiesPrice
.
stream
().
mapToDouble
(
Double:
:
doubleValue
).
sum
();
// 更新数据
// 订单状态表 和 缓存
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
nowTime
);
KylinOrderTicketStatus
orderStatusTable
=
new
KylinOrderTicketStatus
();
orderStatusTable
.
setStatus
(
KylinTableStatusConst
.
ORDER_STATUS3
);
orderStatusTable
.
setUpdatedAt
(
nowTime
);
/*kylinOrderTicketStatusMapper.update(orderStatusTable, new UpdateWrapper<KylinOrderTicketStatus>()
.eq("order_id", orderTicketsId));*/
KylinOrderTicketVo
kylinOrderTicketVo
=
new
KylinOrderTicketVo
();
kylinOrderTicketVo
.
setStatus
(
KylinTableStatusConst
.
ORDER_STATUS3
);
kylinOrderTicketVo
.
setUpdatedAt
(
nowTimeStr
);
BasicDBObject
orderObject
=
new
BasicDBObject
(
"$set"
,
JSON
.
parse
(
JsonUtils
.
toJson
(
kylinOrderTicketVo
)));
UpdateResult
orderResult
=
mongoTemplate
.
getCollection
(
KylinOrderTicketVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
is
(
orderTicketsId
)).
getQueryObject
(),
orderObject
);
dataUtils
.
delOrderTicketRedis
(
orderTicketsId
);
mongoVoUtils
.
resetOrderListVo
(
orderInfo
.
getUserId
(),
2
,
orderTicketsId
,
null
);
// 订单入场人表 和 缓存
KylinOrderTicketEntities
entitiesTable
=
new
KylinOrderTicketEntities
();
entitiesTable
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT2
);
entitiesTable
.
setUpdatedAt
(
nowTime
);
KylinOrderTicketEntitiesVo
kylinOrderTicketEntitiesVo
=
new
KylinOrderTicketEntitiesVo
();
kylinOrderTicketEntitiesVo
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT2
);
kylinOrderTicketEntitiesVo
.
setUpdatedAt
(
nowTimeStr
);
BasicDBObject
entitiesObject
=
new
BasicDBObject
(
"$set"
,
JSON
.
parse
(
JsonUtils
.
toJson
(
kylinOrderTicketEntitiesVo
)));
LinkedList
<
Object
[]>
sqlsDataB
=
new
LinkedList
<>();
for
(
String
v
:
ticketEntityIds
)
{
sqlsDataB
.
add
(
new
Object
[]{
entitiesTable
.
getIsPayment
(),
entitiesTable
.
getUpdatedAt
(),
v
,
orderInfo
.
getChangeDate
(),
orderInfo
.
getChangeDate
()
});
/*kylinOrderTicketEntitiesMapper.update(entitiesTable, new UpdateWrapper<KylinOrderTicketEntities>()
.eq("order_ticket_entities_id", v));*/
UpdateResult
entitiesResult
=
mongoTemplate
.
getCollection
(
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"orderTicketEntitiesId"
).
is
(
v
)).
getQueryObject
(),
entitiesObject
);
dataUtils
.
delOrderTicketEntitiesRedis
(
v
);
}
// 退款明细
KylinOrderRefunds
kylinOrderRefunds
=
new
KylinOrderRefunds
();
String
orderRefundsId
=
IDGenerator
.
nextSnowId
();
kylinOrderRefunds
.
setOrderRefundsId
(
orderRefundsId
);
kylinOrderRefunds
.
setOrderTicketsId
(
orderTicketsId
);
String
orderRefundCode
=
orderInfo
.
getOrderCode
();
String
codeNum
=
StringUtils
.
leftPad
(
String
.
valueOf
(
5
),
3
,
"0"
);
kylinOrderRefunds
.
setOrderRefundCode
(
orderRefundCode
.
concat
(
codeNum
));
kylinOrderRefunds
.
setPrice
(
BigDecimal
.
valueOf
(
entitiesPriceSum
));
kylinOrderRefunds
.
setPriceExpress
(
BigDecimal
.
valueOf
(
RefundPriceExpress
));
kylinOrderRefunds
.
setStatus
(
KylinTableStatusConst
.
ORDER_REFUND_STATUS_APPLY
);
kylinOrderRefunds
.
setType
(
KylinTableStatusConst
.
ORDER_REFUND_TYPE_AUTO
);
kylinOrderRefunds
.
setApplicantId
(
authId
);
kylinOrderRefunds
.
setApplicantName
(
authName
);
kylinOrderRefunds
.
setApplicantAt
(
nowTime
);
kylinOrderRefunds
.
setReason
(
reason
);
if
(
RefundPriceExpress
>
0
&&
entitiesPriceSum
>
0
)
{
kylinOrderRefunds
.
setRefundCate
(
KylinTableStatusConst
.
ORDER_REFUND_CATE3
);
}
else
if
(
RefundPriceExpress
>
0
)
{
kylinOrderRefunds
.
setRefundCate
(
KylinTableStatusConst
.
ORDER_REFUND_CATE2
);
}
else
if
(
entitiesPriceSum
>
0
)
{
kylinOrderRefunds
.
setRefundCate
(
KylinTableStatusConst
.
ORDER_REFUND_CATE1
);
}
kylinOrderRefunds
.
setCreatedAt
(
nowTime
);
/*int rows = kylinOrderRefundsMapper.insert(kylinOrderRefunds);*/
KylinOrderRefundsVo
orderRefundsVo
=
new
KylinOrderRefundsVo
();
BeanUtils
.
copyProperties
(
kylinOrderRefunds
,
orderRefundsVo
);
mongoTemplate
.
insert
(
orderRefundsVo
,
KylinOrderRefundsVo
.
class
.
getSimpleName
());
// 退款入场人表
KylinOrderRefundEntities
kylinOrderRefundEntities
=
new
KylinOrderRefundEntities
();
kylinOrderRefundEntities
.
setOrderRefundsId
(
orderRefundsId
);
kylinOrderRefundEntities
.
setCreatedAt
(
LocalDateTime
.
now
());
LinkedList
<
Object
[]>
sqlsDataD
=
new
LinkedList
<>();
for
(
int
i
=
0
;
i
<=
ticketEntityIds
.
size
()
-
1
;
i
++)
{
String
orderRefundsEntitiesId
=
IDGenerator
.
nextSnowId
();
kylinOrderRefundEntities
.
setOrderRefundsEntitiesId
(
orderRefundsEntitiesId
);
kylinOrderRefundEntities
.
setRefundPrice
(
BigDecimal
.
valueOf
(
entitiesPrice
.
get
(
i
)));
kylinOrderRefundEntities
.
setOrderTicketEntitiesId
(
ticketEntityIds
.
get
(
i
));
sqlsDataD
.
add
(
new
Object
[]{
kylinOrderRefundEntities
.
getOrderRefundsEntitiesId
(),
kylinOrderRefundEntities
.
getOrderRefundsId
(),
kylinOrderRefundEntities
.
getRefundPrice
(),
kylinOrderRefundEntities
.
getOrderTicketEntitiesId
(),
kylinOrderRefundEntities
.
getCreatedAt
()
});
/*int rowsR = kylinOrderRefundsEntitiesMapper.insert(kylinOrderRefundEntities);*/
KylinOrderRefundEntitiesVo
orderRefundEntitiesVo
=
new
KylinOrderRefundEntitiesVo
();
BeanUtils
.
copyProperties
(
kylinOrderRefundEntities
,
orderRefundEntitiesVo
);
mongoTemplate
.
insert
(
orderRefundEntitiesVo
,
KylinOrderRefundEntitiesVo
.
class
.
getSimpleName
());
}
//mq更改数据库
LinkedList
<
String
>
sqls
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataA
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataC
=
new
LinkedList
<>();
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_status.overtimeRefund"
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_entities.overtimeRefund"
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_refund.overtimeRefund"
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_refund_entities.overtimeRefund"
));
sqlsDataA
.
add
(
new
Object
[]{
orderStatusTable
.
getStatus
(),
orderStatusTable
.
getUpdatedAt
(),
orderInfo
.
getOrderTicketsId
(),
orderInfo
.
getChangeDate
(),
orderInfo
.
getChangeDate
()
});
sqlsDataC
.
add
(
new
Object
[]{
kylinOrderRefunds
.
getOrderRefundsId
(),
kylinOrderRefunds
.
getOrderTicketsId
(),
kylinOrderRefunds
.
getOrderRefundCode
(),
kylinOrderRefunds
.
getPrice
(),
kylinOrderRefunds
.
getPriceExpress
(),
kylinOrderRefunds
.
getStatus
(),
kylinOrderRefunds
.
getType
(),
kylinOrderRefunds
.
getApplicantId
(),
kylinOrderRefunds
.
getApplicantName
(),
kylinOrderRefunds
.
getApplicantAt
(),
kylinOrderRefunds
.
getReason
(),
kylinOrderRefunds
.
getRefundCate
(),
kylinOrderRefunds
.
getCreatedAt
()
});
rabbitTemplate
.
convertAndSend
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_OVERTIME_REFUND
,
MQConst
.
ROUTING_KEY_SQL_ORDER_OVERTIME_REFUND
,
SqlMapping
.
gets
(
sqls
,
sqlsDataA
,
sqlsDataB
,
sqlsDataC
,
sqlsDataD
));
return
true
;
}
public
String
userOrderTicketRefunding
(
KylinOrderTicketVo
orderInfo
,
double
refundPrice
,
String
orderEntitiesId
,
String
reason
,
String
picList
,
String
uid
,
String
username
,
int
refundCount
)
{
try
{
LocalDateTime
time
=
LocalDateTime
.
now
();
String
strTime
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
time
);
// 订单状态表 和 缓存
KylinOrderTicketStatus
orderStatusTable
=
new
KylinOrderTicketStatus
();
orderStatusTable
.
setStatus
(
KylinTableStatusConst
.
ORDER_STATUS3
);
orderStatusTable
.
setUpdatedAt
(
time
);
KylinOrderTicketVo
kylinOrderTicketVo
=
new
KylinOrderTicketVo
();
kylinOrderTicketVo
.
setStatus
(
KylinTableStatusConst
.
ORDER_STATUS3
);
kylinOrderTicketVo
.
setUpdatedAt
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
time
));
BasicDBObject
orderObject
=
new
BasicDBObject
(
"$set"
,
JSON
.
parse
(
JsonUtils
.
toJson
(
kylinOrderTicketVo
)));
mongoTemplate
.
getCollection
(
KylinOrderTicketVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"orderTicketsId"
).
is
(
orderInfo
.
getOrderTicketsId
())).
getQueryObject
(),
orderObject
);
dataUtils
.
delOrderTicketRedis
(
orderInfo
.
getOrderTicketsId
());
mongoVoUtils
.
resetOrderListVo
(
orderInfo
.
getUserId
(),
2
,
orderInfo
.
getOrderTicketsId
(),
null
);
// 订单入场人表 和 缓存
KylinOrderTicketEntities
entitiesTable
=
new
KylinOrderTicketEntities
();
entitiesTable
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT2
);
entitiesTable
.
setUpdatedAt
(
time
);
KylinOrderTicketEntitiesVo
kylinOrderTicketEntitiesVo
=
new
KylinOrderTicketEntitiesVo
();
kylinOrderTicketEntitiesVo
.
setIsPayment
(
KylinTableStatusConst
.
ENTITIES_IS_PAYMENT2
);
kylinOrderTicketEntitiesVo
.
setUpdatedAt
(
strTime
);
BasicDBObject
entitiesObject
=
new
BasicDBObject
(
"$set"
,
JSON
.
parse
(
JsonUtils
.
toJson
(
kylinOrderTicketEntitiesVo
)));
mongoTemplate
.
getCollection
(
KylinOrderTicketEntitiesVo
.
class
.
getSimpleName
()).
updateOne
(
Query
.
query
(
Criteria
.
where
(
"orderTicketEntitiesId"
).
is
(
orderEntitiesId
)).
getQueryObject
(),
entitiesObject
);
dataUtils
.
delOrderTicketEntitiesRedis
(
orderEntitiesId
);
// 退款明细
KylinOrderRefunds
kylinOrderRefunds
=
new
KylinOrderRefunds
();
String
orderRefundsId
=
IDGenerator
.
nextSnowId
();
kylinOrderRefunds
.
setOrderRefundsId
(
orderRefundsId
);
kylinOrderRefunds
.
setOrderTicketsId
(
orderInfo
.
getOrderTicketsId
());
String
orderRefundCode
=
orderInfo
.
getOrderCode
();
String
codeNum
=
StringUtils
.
leftPad
(
String
.
valueOf
(
refundCount
),
3
,
"0"
);
kylinOrderRefunds
.
setOrderRefundCode
(
orderRefundCode
.
concat
(
codeNum
));
kylinOrderRefunds
.
setPrice
(
BigDecimal
.
valueOf
(
refundPrice
));
kylinOrderRefunds
.
setPriceExpress
(
orderInfo
.
getPriceExpress
());
kylinOrderRefunds
.
setStatus
(
KylinTableStatusConst
.
ORDER_REFUND_STATUS_APPLY
);
kylinOrderRefunds
.
setType
(
KylinTableStatusConst
.
ORDER_REFUND_TYPE_APPLY
);
kylinOrderRefunds
.
setApplicantId
(
uid
);
kylinOrderRefunds
.
setApplicantName
(
username
);
kylinOrderRefunds
.
setApplicantAt
(
time
);
kylinOrderRefunds
.
setReason
(
reason
);
if
(
orderInfo
.
getPriceExpress
().
doubleValue
()
>
0
&&
refundPrice
>
0
)
{
kylinOrderRefunds
.
setRefundCate
(
KylinTableStatusConst
.
ORDER_REFUND_CATE3
);
}
else
if
(
orderInfo
.
getPriceExpress
().
doubleValue
()
>
0
)
{
kylinOrderRefunds
.
setRefundCate
(
KylinTableStatusConst
.
ORDER_REFUND_CATE2
);
}
else
if
(
refundPrice
>
0
)
{
kylinOrderRefunds
.
setRefundCate
(
KylinTableStatusConst
.
ORDER_REFUND_CATE1
);
}
kylinOrderRefunds
.
setCreatedAt
(
time
);
KylinOrderRefundsVo
orderRefundsVo
=
new
KylinOrderRefundsVo
();
BeanUtils
.
copyProperties
(
kylinOrderRefunds
,
orderRefundsVo
);
orderRefundsVo
.
setCreatedAt
(
time
);
orderRefundsVo
.
setApplicantAt
(
time
);
mongoTemplate
.
insert
(
orderRefundsVo
,
KylinOrderRefundsVo
.
class
.
getSimpleName
());
// 退款入场人表
KylinOrderRefundEntities
kylinOrderRefundEntities
=
new
KylinOrderRefundEntities
();
String
orderRefundsEntitiesId
=
IDGenerator
.
nextSnowId
();
kylinOrderRefundEntities
.
setOrderRefundsEntitiesId
(
orderRefundsEntitiesId
);
kylinOrderRefundEntities
.
setOrderRefundsId
(
orderRefundsId
);
kylinOrderRefundEntities
.
setRefundPrice
(
BigDecimal
.
valueOf
(
refundPrice
));
kylinOrderRefundEntities
.
setOrderTicketEntitiesId
(
orderEntitiesId
);
kylinOrderRefundEntities
.
setCreatedAt
(
time
);
KylinOrderRefundEntitiesVo
orderRefundEntitiesVo
=
new
KylinOrderRefundEntitiesVo
();
BeanUtils
.
copyProperties
(
kylinOrderRefundEntities
,
orderRefundEntitiesVo
);
orderRefundEntitiesVo
.
setCreatedAt
(
strTime
);
mongoTemplate
.
insert
(
orderRefundEntitiesVo
,
KylinOrderRefundEntitiesVo
.
class
.
getSimpleName
());
//退款图片
KylinOrderRefundPic
orderRefundPic
=
new
KylinOrderRefundPic
();
orderRefundPic
.
setRefundPicId
(
IDGenerator
.
nextSnowId
());
orderRefundPic
.
setOrderRefundsId
(
kylinOrderRefunds
.
getOrderRefundsId
());
orderRefundPic
.
setPicUrl
(
picList
);
orderRefundPic
.
setCreatedAt
(
time
);
KylinOrderRefundPicVo
orderRefundPicVo
=
new
KylinOrderRefundPicVo
();
BeanUtils
.
copyProperties
(
orderRefundPic
,
orderRefundPicVo
);
orderRefundPicVo
.
setCreatedAt
(
strTime
);
mongoTemplate
.
insert
(
orderRefundPicVo
,
KylinOrderRefundPicVo
.
class
.
getSimpleName
());
dataUtils
.
delOrderRefundVoByOrderId
(
orderInfo
.
getOrderTicketsId
());
//MQ
LinkedList
<
String
>
sqls
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataA
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataB
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataC
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataD
=
new
LinkedList
<>();
LinkedList
<
Object
[]>
sqlsDataE
=
new
LinkedList
<>();
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_status.refund"
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_ticket_entities.refund"
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_refund.refund"
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_refund_entities.refund"
));
sqls
.
add
(
SqlMapping
.
get
(
"kylin_order_refund_pic.refund"
));
sqlsDataA
.
add
(
new
Object
[]{
orderStatusTable
.
getStatus
(),
orderStatusTable
.
getUpdatedAt
(),
orderInfo
.
getOrderTicketsId
(),
orderInfo
.
getChangeDate
(),
orderInfo
.
getChangeDate
()
});
sqlsDataB
.
add
(
new
Object
[]{
entitiesTable
.
getIsPayment
(),
entitiesTable
.
getUpdatedAt
(),
orderEntitiesId
,
orderInfo
.
getChangeDate
(),
orderInfo
.
getChangeDate
()
});
sqlsDataC
.
add
(
new
Object
[]{
kylinOrderRefunds
.
getOrderRefundsId
(),
kylinOrderRefunds
.
getOrderTicketsId
(),
kylinOrderRefunds
.
getOrderRefundCode
(),
kylinOrderRefunds
.
getPrice
(),
kylinOrderRefunds
.
getPriceExpress
(),
kylinOrderRefunds
.
getStatus
(),
kylinOrderRefunds
.
getType
(),
kylinOrderRefunds
.
getApplicantId
(),
kylinOrderRefunds
.
getApplicantName
(),
kylinOrderRefunds
.
getApplicantAt
(),
kylinOrderRefunds
.
getReason
(),
kylinOrderRefunds
.
getRefundCate
(),
kylinOrderRefunds
.
getCreatedAt
()
});
sqlsDataD
.
add
(
new
Object
[]{
kylinOrderRefundEntities
.
getOrderRefundsEntitiesId
(),
kylinOrderRefundEntities
.
getOrderRefundsId
(),
kylinOrderRefundEntities
.
getRefundPrice
(),
kylinOrderRefundEntities
.
getOrderTicketEntitiesId
(),
kylinOrderRefundEntities
.
getCreatedAt
()
});
sqlsDataE
.
add
(
new
Object
[]{
orderRefundPic
.
getOrderRefundsId
(),
orderRefundPic
.
getOrderRefundsId
(),
orderRefundPic
.
getPicUrl
(),
orderRefundPic
.
getCreatedAt
()
});
//TODO 生成新QUERY
rabbitTemplate
.
convertAndSend
(
MQConst
.
EXCHANGES_LIQUIDNET_SQL_ORDER_REFUND
,
MQConst
.
ROUTING_KEY_SQL_ORDER_REFUND
,
SqlMapping
.
gets
(
sqls
,
sqlsDataA
,
sqlsDataB
,
sqlsDataC
,
sqlsDataD
,
sqlsDataE
));
return
kylinOrderRefunds
.
getOrderRefundsId
();
}
catch
(
Exception
e
){
e
.
printStackTrace
();
return
""
;
}
}
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/OrderRefundOvertimeServiceImpl.java
0 → 100644
View file @
45423d44
package
com
.
liquidnet
.
service
.
order
.
service
.
impl
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo
;
import
com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo
;
import
com.liquidnet.service.kylin.service.IKylinOrderRefundsService
;
import
com.liquidnet.service.order.utils.DataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* <p>
* 订单退款表 服务实现类 处理逻辑判断
* </p>
*
* @author jiangxiulong
* @since 2021-05-26
*/
@Slf4j
@Service
public
class
OrderRefundOvertimeServiceImpl
implements
IKylinOrderRefundsService
{
@Autowired
private
KylinRefundsStatusServiceImpl
kylinRefundsStatusServiceImpl
;
@Autowired
MongoTemplate
mongoTemplate
;
@Autowired
private
DataUtils
dataUtils
;
public
Boolean
refundApply
(
String
orderTicketsId
)
{
KylinOrderTicketVo
orderInfo
=
dataUtils
.
getOrderTicketVo
(
orderTicketsId
);
// 快递费 未进行判断
Double
RefundPriceExpress
=
orderInfo
.
getPriceExpress
().
doubleValue
();
double
priceActual
=
orderInfo
.
getPriceActual
().
doubleValue
();
double
priceExpress
=
orderInfo
.
getPriceExpress
().
doubleValue
();
// 查询订单入场人
List
<
KylinOrderTicketEntitiesVo
>
entitiesList
=
orderInfo
.
getEntitiesVoList
();
if
(!
CollectionUtil
.
isEmpty
(
entitiesList
))
{
int
allEntitiesCount
=
entitiesList
.
size
();
// 总入场人数量 排出未付款的 用来计算单入场人的价格
double
onePrice
=
(
priceActual
-
priceExpress
)
/
allEntitiesCount
;
//单价
for
(
KylinOrderTicketEntitiesVo
entities
:
entitiesList
)
{
entities
.
setCanRefundedPrice
(
BigDecimal
.
valueOf
(
onePrice
));
}
}
List
<
String
>
ticketEntityIds
=
entitiesList
.
stream
().
map
(
KylinOrderTicketEntities
->
KylinOrderTicketEntities
.
getOrderTicketEntitiesId
()).
collect
(
Collectors
.
toList
());
List
<
Double
>
entitiesPrice
=
entitiesList
.
stream
().
map
(
KylinOrderTicketEntities
->
KylinOrderTicketEntities
.
getCanRefundedPrice
().
doubleValue
()).
collect
(
Collectors
.
toList
());
boolean
res
=
kylinRefundsStatusServiceImpl
.
orderTicketRefunding
(
orderInfo
,
orderTicketsId
,
RefundPriceExpress
,
ticketEntityIds
,
entitiesPrice
);
if
(
res
)
{
// 超时直接退还库存
for
(
KylinOrderTicketEntitiesVo
entitiesInfo
:
entitiesList
)
{
// 因固定状态为未支付 所以无需判断 entitiesInfo.getIsPayment() == KylinTableStatusConst.ENTITIES_IS_PAYMENT3
dataUtils
.
changeSurplusGeneral
(
entitiesInfo
.
getTicketId
(),
1
);
dataUtils
.
changeBuyInfo
(
orderInfo
.
getUserId
(),
entitiesInfo
.
getEnterIdCode
(),
orderInfo
.
getPerformanceId
(),
entitiesInfo
.
getTicketId
(),
-
1
);
}
return
true
;
}
else
{
return
false
;
}
}
}
liquidnet-bus-service/pom.xml
View file @
45423d44
...
...
@@ -35,6 +35,7 @@
<module>
liquidnet-service-platform
</module>
<module>
liquidnet-service-consumer
</module>
<module>
liquidnet-service-executor-all
</module>
<module>
liquidnet-service-consumer-adam
</module>
<!-- <module>liquidnet-service-example</module>-->
<!-- <module>liquidnet-service-sequence</module>-->
<!-- <module>liquidnet-service-account</module>-->
...
...
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