记得上下班打卡 | 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
57d69834
Commit
57d69834
authored
Oct 25, 2021
by
anjiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新建merchant
parent
66cd5672
Changes
31
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
2231 additions
and
0 deletions
+2231
-0
liquidnet-service-merchant-dev.yml
...onfig/liquidnet-config/liquidnet-service-merchant-dev.yml
+22
-0
liquidnet-service-merchant-test.yml
...nfig/liquidnet-config/liquidnet-service-merchant-test.yml
+29
-0
liquidnet-service-merchant.yml
...us-config/liquidnet-config/liquidnet-service-merchant.yml
+103
-0
db_ln_candy_initialdata.sql
...et-service-merchant-impl/docu/db_ln_candy_initialdata.sql
+159
-0
redis_queue_create.txt
...quidnet-service-merchant-impl/docu/redis_queue_create.txt
+16
-0
pom.xml
...-service-merchant/liquidnet-service-merchant-impl/pom.xml
+55
-0
ServiceCandyApplication.java
...n/java/com/liquidnet/service/ServiceCandyApplication.java
+48
-0
CandyWebMvcConfig.java
...com/liquidnet/service/candy/config/CandyWebMvcConfig.java
+19
-0
CandyCouponCodeController.java
...t/service/candy/controller/CandyCouponCodeController.java
+20
-0
CandyCouponController.java
...idnet/service/candy/controller/CandyCouponController.java
+343
-0
CandyCouponRuleController.java
...t/service/candy/controller/CandyCouponRuleController.java
+20
-0
CandyMgtCouponController.java
...et/service/candy/controller/CandyMgtCouponController.java
+20
-0
CandyUserCouponController.java
...t/service/candy/controller/CandyUserCouponController.java
+20
-0
CandyCouponCodeServiceImpl.java
...ervice/candy/service/impl/CandyCouponCodeServiceImpl.java
+17
-0
CandyCouponRuleServiceImpl.java
...ervice/candy/service/impl/CandyCouponRuleServiceImpl.java
+17
-0
CandyCouponServiceImpl.java
...et/service/candy/service/impl/CandyCouponServiceImpl.java
+544
-0
CandyMgtCouponServiceImpl.java
...service/candy/service/impl/CandyMgtCouponServiceImpl.java
+17
-0
CandyUserCouponServiceImpl.java
...ervice/candy/service/impl/CandyUserCouponServiceImpl.java
+17
-0
CouponBaseUtil.java
...java/com/liquidnet/service/candy/util/CouponBaseUtil.java
+374
-0
ObjectUtil.java
...ain/java/com/liquidnet/service/candy/util/ObjectUtil.java
+37
-0
QueueUtils.java
...ain/java/com/liquidnet/service/candy/util/QueueUtils.java
+28
-0
RedisDataUtils.java
...java/com/liquidnet/service/candy/util/RedisDataUtils.java
+130
-0
bootstrap-dev.yml
...ervice-merchant-impl/src/main/resources/bootstrap-dev.yml
+14
-0
bootstrap-prod.yml
...rvice-merchant-impl/src/main/resources/bootstrap-prod.yml
+14
-0
bootstrap-service-merchant.yml
...nt-impl/src/main/resources/bootstrap-service-merchant.yml
+17
-0
bootstrap-test.yml
...rvice-merchant-impl/src/main/resources/bootstrap-test.yml
+18
-0
bootstrap.yml
...et-service-merchant-impl/src/main/resources/bootstrap.yml
+5
-0
errors.properties
...ervice-merchant-impl/src/main/resources/errors.properties
+79
-0
sqlmap.properties
...ervice-merchant-impl/src/main/resources/sqlmap.properties
+9
-0
pom.xml
liquidnet-bus-service/liquidnet-service-merchant/pom.xml
+19
-0
pom.xml
liquidnet-bus-service/pom.xml
+1
-0
No files found.
liquidnet-bus-config/liquidnet-config/liquidnet-service-merchant-dev.yml
0 → 100644
View file @
57d69834
liquidnet
:
system
:
updating
:
switch
:
false
info
:
port
:
9013
context
:
/candy
name
:
liquidnet-service-candy
logfile
:
path
:
/data/logs
name
:
service-candy
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
:
debug
mysql
:
database-name
:
dev_ln_scene
mongodb
:
sslEnabled
:
false
database
:
dev_ln_scene
liquidnet-bus-config/liquidnet-config/liquidnet-service-merchant-test.yml
0 → 100644
View file @
57d69834
liquidnet
:
system
:
updating
:
switch
:
false
info
:
port
:
9013
context
:
/adam
name
:
liquidnet-service-adam
logfile
:
path
:
/data/logs
name
:
service-adam
config
:
classpath:logback-spring.xml
file-max-size
:
200MB
level
:
debug
mysql
:
database-name
:
test_ln_scene
mongodb
:
sslEnabled
:
false
database
:
test_ln_scene
url-pay
:
pay
:
${liquidnet.service.adam.url-pay.pay}
check
:
${liquidnet.service.adam.url-pay.check}
callback
:
${liquidnet.service.adam.url-pay.callback}
reviewer
:
app-login
:
mobile
:
13724286255
user-info
:
false
#以下为spring各环境个性配置
liquidnet-bus-config/liquidnet-config/liquidnet-service-merchant.yml
0 → 100644
View file @
57d69834
server
:
port
:
${liquidnet.info.port}
tomcat
:
uri-encoding
:
UTF-8
maxThreads
:
2000
#默认200
minSpareThreads
:
2000
#默认10
maxConnections
:
20000
#默认10000
acceptCount
:
5000
#默认100
processorCache
:
-1
#默认200
servlet
:
context-path
:
${liquidnet.info.context}
# -----------------------------------------------------------
knife4j
:
enable
:
true
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
:
${liquidnet.logfile.file-max-size}
pattern
:
file
:
'
%d{yyyy-MM-dd
HH:mm:ss.SSS}
%-5level
%X{lnsTranceId}
[%logger{96}:%line]
-
%msg%n'
console
:
'
%d{yyyy-MM-dd
HH:mm:ss.SSS}
%-5level
%X{lnsTranceId}
[%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}
# -----------------------------------------------------------
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@'
# -----------------------------------------------------------
mybatis-plus
:
mapper-locations
:
classpath:com.liquidnet.service.candy.mapper/*Mapper.xml
# -----------------------------------------------------------
spring
:
application
:
name
:
${liquidnet.info.name}
servlet
:
multipart
:
max-file-size
:
5MB
max-request-size
:
10MB
profiles
:
include
:
common-service
#这里加载management相关公共配置
autoconfigure
:
exclude
:
-
org.springframework.cloud.bus.BusAutoConfiguration
-
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
redis
:
database
:
15
dbs
:
${liquidnet.redis.dbs}
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
data
:
mongodb
:
uri
:
mongodb://${liquidnet.mongodb.user}:${liquidnet.mongodb.pwd}@${liquidnet.mongodb.host}/?authSource=admin&maxPoolSize=2000&waitQueueMultiple=100
sslEnabled
:
${liquidnet.mongodb.sslEnabled}
database
:
${liquidnet.mongodb.database}
# -----------------------------------------------------------
# -----------------------------------------------------------
global-auth
:
exclude-url-pattern
:
-
${liquidnet.info.context}/doc.html
-
${liquidnet.info.context}/webjars/**
-
${liquidnet.info.context}/swagger-resources/**
-
${liquidnet.info.context}/v2/api-docs*
-
${liquidnet.info.context}/candy-coupon/useBack
-
${liquidnet.info.context}/candy-coupon/useBackJxl
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/docu/db_ln_candy_initialdata.sql
0 → 100644
View file @
57d69834
#
create
database
if
not
exists
ln_scene
character
set
utf8mb4
collate
utf8mb4_unicode_ci
;
#
use
ln_scene
;
#
-- >>------------------------------------------------------------------------------------ |20210817会员与券改版
#
券发放管理
drop
table
if
exists
candy_mgt_coupon
;
create
table
candy_mgt_coupon
(
mid
bigint
unsigned
auto_increment
primary
key
,
mcoupon_id
varchar
(
64
)
not
null
,
coupon_id
varchar
(
64
)
not
null
comment
'~candy_coupon.coupon_id'
,
state
tinyint
comment
'发放状态[0-未发放|1-已发放|2-无效|3-已取消|9-发放中|10-会员礼包初始模版]'
,
#
bind_type
smallint
comment
'领取方式[0-用户输入兑换|1-发放至用户]'
,
event_amt
int
comment
'发放量'
,
event_type
tinyint
comment
'发放类型[0-保留|1-会员|2-手机号|10-全体用户]'
,
event_limit
text
comment
'`发放类型`为2-手机号时发放手机号以,分隔'
,
event_at
datetime
(
3
)
comment
'发放时间(立即-当前时间+3分钟|预约-点选时间)'
,
operator
varchar
(
64
)
not
null
comment
'操作人'
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
(
3
),
comment
text
)
engine
InnoDB
comment
'券发放管理'
;
create
index
idx_candy_mgt_coupon_id
on
candy_mgt_coupon
(
mcoupon_id
);
#
券基础信息
drop
table
if
exists
candy_coupon
;
create
table
candy_coupon
(
mid
bigint
unsigned
auto_increment
primary
key
,
coupon_id
varchar
(
64
)
not
null
,
state
tinyint
comment
'券状态[0-INIT|1-NORMAL|2-INVALID]'
,
title
varchar
(
50
)
not
null
comment
'券标题'
,
label
varchar
(
50
)
comment
'标注'
,
notice
varchar
(
200
)
comment
'注意/须知'
,
exclusive
smallint
comment
'专享标识[0-常规|1-会员礼包]'
,
busi_type
smallint
comment
'业务类别[0-全场|1-演出|2-商品|3-优先购]'
,
cou_type
smallint
comment
'券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]'
,
bind_type
smallint
comment
'领取方式[0-用户输入兑换|1-发放至用户]'
,
discount
decimal
(
8
,
2
)
comment
'折扣[8折即0.8]'
,
val_face
decimal
(
8
,
2
)
comment
'面值'
,
val_over
decimal
(
8
,
2
)
comment
'满减~满'
,
val_minus
decimal
(
8
,
2
)
comment
'满减~减'
,
overlay
tinyint
default
0
comment
'叠加限制[0-限制|1-叠加]'
,
overlay_level
tinyint
default
0
comment
'#同类别券叠加适用'
,
validity
int
comment
'有效期(单位天)'
,
redeem_validity
int
comment
'兑换有效期(单位天)'
,
redeem_start
datetime
(
3
)
comment
'兑换开放时间'
,
redeem_stop
datetime
(
3
)
comment
'兑换停止时间'
,
effect_at
datetime
(
3
)
comment
'生效时间'
,
expire_at
datetime
(
3
)
comment
'过期时间'
,
operator
varchar
(
64
)
not
null
comment
'操作人'
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
(
3
),
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'券基础信息'
;
create
unique
index
uidx_candy_coupon_id
on
candy_coupon
(
coupon_id
);
#
券适用规则
drop
table
if
exists
candy_coupon_rule
;
create
table
candy_coupon_rule
(
mid
bigint
unsigned
auto_increment
primary
key
,
crule_id
varchar
(
64
)
not
null
,
coupon_id
varchar
(
64
)
not
null
,
use_scope
smallint
comment
'适用范围[100-全场|90-演出|80-商品]'
,
busi_name
varchar
(
64
)
comment
'适用名称'
,
busi_id
varchar
(
64
)
comment
'适用ID'
,
state
tinyint
comment
'0-INIT,1-NORMAL,2-INVALID'
,
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'券适用规则'
;
create
unique
index
uidx_candy_coupon_rule_id
on
candy_coupon_rule
(
crule_id
);
#
券码信息
drop
table
if
exists
candy_coupon_code
;
create
table
candy_coupon_code
(
mid
bigint
unsigned
auto_increment
primary
key
,
ccode
varchar
(
64
)
not
null
comment
'券码'
,
coupon_id
varchar
(
64
)
not
null
comment
'~candy_coupon.coupon_id'
,
state
tinyint
comment
'状态[0-可用|1-已用|2-无效|3-过期|4-失效|5-退回]'
,
ucoupon_id
varchar
(
64
)
comment
'~candy_user_coupon.ucoupon_id'
,
redeem_uid
varchar
(
64
)
comment
'兑换用户UID'
,
redeem_mobile
varchar
(
64
)
comment
'兑换用户手机号'
,
redeem_at
datetime
(
3
)
comment
'兑换时间'
,
redeem_start
datetime
(
3
)
comment
'兑换开放时间'
,
redeem_stop
datetime
(
3
)
comment
'兑换停止时间'
,
operator
varchar
(
64
)
comment
'操作人'
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
(
3
),
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'券码信息'
;
create
unique
index
uidx_candy_coupon_code_id
on
candy_coupon_code
(
ccode
,
coupon_id
);
#
用户券信息
drop
table
if
exists
candy_user_coupon
;
create
table
candy_user_coupon
(
mid
bigint
unsigned
auto_increment
primary
key
,
ucoupon_id
varchar
(
64
)
not
null
,
mcoupon_id
varchar
(
64
)
comment
'~candy_mgt_coupon.mcoupon_id'
,
uid
varchar
(
64
)
not
null
comment
'~adam_user.uid'
,
coupon_id
varchar
(
64
)
not
null
comment
'~candy_coupon.coupon_id'
,
state
tinyint
comment
'用户券状态[1-可用|2-无效|3-已过期|5-已使用]'
,
ccode
varchar
(
64
)
comment
'券码~candy_coupon_code.ccode'
,
bind_at
datetime
(
3
)
comment
'激活时间'
,
dued_at
datetime
(
3
)
comment
'到期时间'
,
used_at
datetime
(
3
)
comment
'使用时间'
,
used_for
varchar
(
255
)
comment
'用于记录购买的内容'
,
operator
varchar
(
64
)
comment
'操作人'
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
(
3
),
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'用户券信息'
;
create
unique
index
uidx_candy_user_coupon_id
on
candy_user_coupon
(
ucoupon_id
);
create
index
idx_candy_ucoupon_uid_state
on
candy_user_coupon
(
uid
,
state
);
#
公有券信息
drop
table
if
exists
candy_common_coupon
;
create
table
candy_common_coupon
(
mid
bigint
unsigned
auto_increment
primary
key
,
ccoupon_id
varchar
(
64
)
not
null
,
mcoupon_id
varchar
(
64
)
not
null
comment
'~candy_mgt_coupon.mcoupon_id'
,
coupon_id
varchar
(
64
)
not
null
comment
'~candy_coupon.coupon_id'
,
state
tinyint
comment
'公有券状态[1-可用|2-无效|3-已过期]'
,
ranged
tinyint
comment
'公有券范围(~candy_mgt_coupon.event_type)'
,
operator
varchar
(
64
)
not
null
comment
'操作人'
,
created_at
datetime
(
3
)
not
null
,
updated_at
datetime
(
3
),
comment
varchar
(
255
)
)
engine
=
InnoDB
comment
'公有券信息'
;
-- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------
-- >>------------------------------------------------------------------------------------
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/docu/redis_queue_create.txt
0 → 100644
View file @
57d69834
-- 使用 --
XADD merchant:stream:rk.coupon.use * 0 0
XGROUP CREATE merchant:stream:rk.coupon.use group.coupon.use 0
-- 回退 --
XADD merchant:stream:rk.coupon.back * 0 0
XGROUP CREATE merchant:stream:rk.coupon.back group.coupon.back 0
-- 领取 --
XADD merchant:stream:rk.coupon.receive * 0 0
XGROUP CREATE merchant:stream:rk.coupon.receive group.coupon.receive 0
-- 票务订单回退 --
XADD merchant:stream:rk.coupon.order.back * 0 0
XGROUP CREATE merchant:stream:rk.coupon.order.back group.coupon.order.back 0
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/pom.xml
0 → 100644
View file @
57d69834
<?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-service-merchant
</artifactId>
<groupId>
com.liquidnet
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
liquidnet-service-merchant-impl
</artifactId>
<properties>
<bitwalker.version>
1.19
</bitwalker.version>
</properties>
<dependencies>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-swagger
</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-redis
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-merchant-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-api-feign-platform
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/ServiceCandyApplication.java
0 → 100644
View file @
57d69834
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.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
ServiceCandyApplication
implements
CommandLineRunner
{
@Autowired
private
Environment
environment
;
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
ServiceCandyApplication
.
class
,
args
);
}
@Override
public
void
run
(
String
...
strings
)
{
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
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
// @Bean
// MongoTransactionManager transactionManager(MongoDbFactory factory){
// return new MongoTransactionManager(factory);
// }
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/config/CandyWebMvcConfig.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
config
;
import
com.liquidnet.common.web.config.WebMvcConfig
;
import
com.liquidnet.common.web.filter.GlobalAuthorityInterceptor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
@Configuration
public
class
CandyWebMvcConfig
extends
WebMvcConfig
{
@Autowired
GlobalAuthorityInterceptor
globalAuthorityInterceptor
;
@Override
protected
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
globalAuthorityInterceptor
).
addPathPatterns
(
"/**"
);
super
.
addInterceptors
(
registry
);
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/controller/CandyCouponCodeController.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* <p>
* 券码信息 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@RestController
@RequestMapping
(
"/merchant-coupon-code"
)
public
class
CandyCouponCodeController
{
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/controller/CandyCouponController.java
0 → 100644
View file @
57d69834
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/controller/CandyCouponRuleController.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* <p>
* 券适用规则 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@RestController
@RequestMapping
(
"/merchant-coupon-rule"
)
public
class
CandyCouponRuleController
{
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/controller/CandyMgtCouponController.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* <p>
* 券发放管理 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@RestController
@RequestMapping
(
"/merchant-mgt-coupon"
)
public
class
CandyMgtCouponController
{
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/controller/CandyUserCouponController.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* <p>
* 用户券信息 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@RestController
@RequestMapping
(
"/merchant-user-coupon"
)
public
class
CandyUserCouponController
{
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/service/impl/CandyCouponCodeServiceImpl.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
service
.
impl
;
import
com.liquidnet.service.merchant.service.ICandyCouponCodeService
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 券码信息 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@Service
public
class
CandyCouponCodeServiceImpl
implements
ICandyCouponCodeService
{
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/service/impl/CandyCouponRuleServiceImpl.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
service
.
impl
;
import
com.liquidnet.service.merchant.service.ICandyCouponRuleService
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 券适用规则 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@Service
public
class
CandyCouponRuleServiceImpl
implements
ICandyCouponRuleService
{
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/service/impl/CandyCouponServiceImpl.java
0 → 100644
View file @
57d69834
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/service/impl/CandyMgtCouponServiceImpl.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
service
.
impl
;
import
com.liquidnet.service.merchant.service.ICandyMgtCouponService
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 券发放管理 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@Service
public
class
CandyMgtCouponServiceImpl
implements
ICandyMgtCouponService
{
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/service/impl/CandyUserCouponServiceImpl.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
service
.
impl
;
import
com.liquidnet.service.merchant.service.ICandyUserCouponService
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 用户券信息 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@Service
public
class
CandyUserCouponServiceImpl
implements
ICandyUserCouponService
{
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/util/CouponBaseUtil.java
0 → 100644
View file @
57d69834
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/util/ObjectUtil.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
util
;
import
com.liquidnet.service.merchant.dto.CandyCommonCouponBasicDto
;
import
com.liquidnet.service.merchant.dto.CandyUserCouponBasicDto
;
import
com.liquidnet.service.merchant.vo.CandyCouponPreVo
;
import
com.liquidnet.service.merchant.vo.CandyCouponRulesVo
;
import
com.liquidnet.service.merchant.vo.CandyCouponVo
;
import
java.util.ArrayList
;
public
class
ObjectUtil
{
private
static
final
ArrayList
<
CandyUserCouponBasicDto
>
candyUserCouponBasicDtoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
CandyCommonCouponBasicDto
>
candyCommonCouponBasicDtoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
CandyCouponVo
>
candyCouponVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
CandyCouponPreVo
>
candyCouponPreVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
CandyCouponRulesVo
>
candyCouponRulesVos
=
new
ArrayList
<>();
public
static
ArrayList
<
CandyUserCouponBasicDto
>
getCandyUserCouponBasicDtoArrayList
()
{
return
(
ArrayList
<
CandyUserCouponBasicDto
>)
candyUserCouponBasicDtoArrayList
.
clone
();
}
public
static
ArrayList
<
CandyCommonCouponBasicDto
>
getCandyCommonCouponBasicDtoArrayList
()
{
return
(
ArrayList
<
CandyCommonCouponBasicDto
>)
candyCommonCouponBasicDtoArrayList
.
clone
();
}
public
static
ArrayList
<
CandyCouponVo
>
getCandyCouponVoArrayList
()
{
return
(
ArrayList
<
CandyCouponVo
>)
candyCouponVoArrayList
.
clone
();
}
public
static
ArrayList
<
CandyCouponPreVo
>
getCandyCouponPreVoArrayList
()
{
return
(
ArrayList
<
CandyCouponPreVo
>)
candyCouponPreVoArrayList
.
clone
();
}
public
static
ArrayList
<
CandyCouponRulesVo
>
getCandyCouponRulesVos
()
{
return
(
ArrayList
<
CandyCouponRulesVo
>)
candyCouponRulesVos
.
clone
();
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/util/QueueUtils.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
util
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.connection.stream.StreamRecords
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
@Component
public
class
QueueUtils
{
@Autowired
StringRedisTemplate
stringRedisTemplate
;
/**
* 发送消息 - REDIS
*
* @param streamKey Redis消费Key
* @param jsonMsg Json字符串
*/
public
void
sendMsgByRedis
(
String
streamKey
,
String
jsonMsg
)
{
HashMap
<
String
,
String
>
map
=
CollectionUtil
.
mapStringString
();
map
.
put
(
"message"
,
jsonMsg
);
stringRedisTemplate
.
opsForStream
().
add
(
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
streamKey
));
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/java/com/liquidnet/service/candy/util/RedisDataUtils.java
0 → 100644
View file @
57d69834
package
com
.
liquidnet
.
service
.
merchant
.
util
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.merchant.constant.CandyRedisConst
;
import
com.liquidnet.service.merchant.dto.CandyCommonCouponBasicDto
;
import
com.liquidnet.service.merchant.dto.CandyCouponCodeDto
;
import
com.liquidnet.service.merchant.dto.CandyCouponInfoDto
;
import
com.liquidnet.service.merchant.dto.CandyUserCouponBasicDto
;
import
com.liquidnet.service.feign.platform.api.FeignPlatformCandyDemoteClient
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Component
@Slf4j
public
class
RedisDataUtils
{
@Autowired
RedisUtil
redisUtil
;
@Autowired
FeignPlatformCandyDemoteClient
feignPlatformCandyDemoteClient
;
// 获取 CandyUserCouponBasicDto数组 根据用户id
public
List
<
CandyUserCouponBasicDto
>
getCouponByUid
(
String
uid
,
LocalDateTime
userCreateTime
)
{
String
redisKey
=
CandyRedisConst
.
BASIC_USER_COUPON
.
concat
(
uid
);
String
publicRedisKey
=
CandyRedisConst
.
BASIC_COMMON_COUPON
;
Object
obj
=
redisUtil
.
get
(
redisKey
);
Object
obj2
=
redisUtil
.
get
(
publicRedisKey
);
List
<
CandyUserCouponBasicDto
>
userDto
;
List
<
CandyCommonCouponBasicDto
>
pubDto
;
if
(
obj
==
null
)
{
//降级
// userDto = new ArrayList();
// ResponseDto<Object> responseDto = feignPlatformCandyDemoteClient.queryForUserCouponBasicDto(uid);
// if (responseDto.isSuccess()) {
// userDto = (List<CandyUserCouponBasicDto>) responseDto.getData();
// } else {
userDto
=
ObjectUtil
.
getCandyUserCouponBasicDtoArrayList
();
// }
}
else
{
userDto
=
(
List
<
CandyUserCouponBasicDto
>)
obj
;
}
if
(
obj2
==
null
)
{
//降级
// ResponseDto<Object> responseDto = feignPlatformCandyDemoteClient.queryForCommonCouponBasicDto(DateUtil.Formatter.yyyyMMddHHmmss.format(userCreateTime));
// if (responseDto.isSuccess()) {
// pubDto = (List<CandyCommonCouponBasicDto>) responseDto.getData();
// } else {
pubDto
=
ObjectUtil
.
getCandyCommonCouponBasicDtoArrayList
();
// }
}
else
{
pubDto
=
(
List
<
CandyCommonCouponBasicDto
>)
obj2
;
}
boolean
needSet
=
false
;
if
(
userCreateTime
==
null
)
{
userCreateTime
=
LocalDateTime
.
MIN
;
}
List
<
String
>
userIds
=
userDto
.
stream
().
map
(
CandyUserCouponBasicDto:
:
getCcouponId
).
collect
(
Collectors
.
toList
());
if
(
userIds
!=
null
&&
userIds
.
size
()
>
0
)
{
for
(
CandyCommonCouponBasicDto
item
:
pubDto
)
{
if
(
userIds
.
contains
(
item
.
getCcouponId
())
||
userCreateTime
.
isAfter
(
item
.
getCreatedAt
()))
{
continue
;
}
else
{
CandyUserCouponBasicDto
userCouponBasicDto
=
CandyUserCouponBasicDto
.
getNew
().
copyToRedisCommonBaseCoupon
(
IDGenerator
.
get32UUID
(),
uid
,
item
);
userDto
.
add
(
userCouponBasicDto
);
needSet
=
true
;
}
}
}
if
(
needSet
)
{
setCouponByUid
(
uid
,
userDto
);
}
return
userDto
;
}
// 覆盖 CandyUserCouponBasicDto数组 根据用户id
public
void
setCouponByUid
(
String
uid
,
List
<
CandyUserCouponBasicDto
>
dtoList
)
{
String
redisKey
=
CandyRedisConst
.
BASIC_USER_COUPON
.
concat
(
uid
);
redisUtil
.
set
(
redisKey
,
dtoList
);
}
// 添加 CandyUserCouponBasicDto数组 item
public
void
addCouponByUid
(
String
uid
,
CandyUserCouponBasicDto
dto
,
LocalDateTime
userCreateTime
)
{
List
<
CandyUserCouponBasicDto
>
dtoList
=
getCouponByUid
(
uid
,
userCreateTime
);
dtoList
.
add
(
dto
);
setCouponByUid
(
uid
,
dtoList
);
}
//获取 CandyCouponCodeDto 根据 ccode
public
CandyCouponCodeDto
getCouponByCode
(
String
ccode
)
{
String
redisKey
=
CandyRedisConst
.
BASIC_COUPON_CODE
.
concat
(
ccode
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
==
null
)
{
//降级
return
null
;
}
else
{
return
(
CandyCouponCodeDto
)
obj
;
}
}
//删除 CandyCouponCodeDto 根据 ccode
public
void
delCouponByCode
(
String
ccode
)
{
String
redisKey
=
CandyRedisConst
.
BASIC_COUPON_CODE
.
concat
(
ccode
);
redisUtil
.
del
(
redisKey
);
}
//获取 CandyCouponInfoDto 根据 couponId
public
CandyCouponInfoDto
getCouponInfo
(
String
couponId
)
{
String
redisKey
=
CandyRedisConst
.
BASIC_COUPON_INFO
.
concat
(
couponId
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
==
null
)
{
//降级
return
null
;
}
else
{
return
(
CandyCouponInfoDto
)
obj
;
}
}
}
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/resources/bootstrap-dev.yml
0 → 100644
View file @
57d69834
# begin-dev-这里是配置信息基本值
liquidnet
:
cloudConfig
:
profile
:
dev
security
:
username
:
user
password
:
user123
eureka
:
host
:
127.0.0.1:7001
# end-dev-这里是配置信息基本值
spring
:
profiles
:
include
:
service-merchant
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/resources/bootstrap-prod.yml
0 → 100644
View file @
57d69834
# begin-prod-这里是配置信息基本值
liquidnet
:
cloudConfig
:
profile
:
prod
security
:
username
:
user
password
:
user123
eureka
:
host
:
172.17.207.189:7001
# end-prod-这里是配置信息基本值
spring
:
profiles
:
include
:
service-merchant
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/resources/bootstrap-service-merchant.yml
0 → 100644
View file @
57d69834
#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://127.0.0.1:7002/support-config
profile
:
${liquidnet.cloudConfig.profile}
name
:
${spring.application.name}
#默认为spring.application.name
discovery
:
enabled
:
true
service-id
:
liquidnet-support-config
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/resources/bootstrap-test.yml
0 → 100644
View file @
57d69834
# begin-test-这里是配置信息基本值
liquidnet
:
cloudConfig
:
profile
:
test
security
:
username
:
user
password
:
user123
eureka
:
#host: 172.17.207.177:7001
instance
:
prefer-ip-address
:
true
host
:
eureka-test-0.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-1.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka,eureka-test-2.eureka-test-svc.zhengzai-test:7001/eureka-server/eureka
# end-test-这里是配置信息基本值
spring
:
profiles
:
include
:
service-merchant
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/resources/bootstrap.yml
0 → 100644
View file @
57d69834
spring
:
application
:
name
:
liquidnet-service-merchant
profiles
:
active
:
dev
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/resources/errors.properties
0 → 100644
View file @
57d69834
40001
=
登录信息有误
40002
=
账号已在另一台设备登录
40003
=
登录已过期
# ------------------------ 4开头错误码作系统保留
10000
=
操作过于频繁,请稍后再试
10001
=
授权失败
10002
=
验证码发送失败
10003
=
请输入正确手机号
10004
=
请输入正确验证码
10005
=
手机号获取失败,请更换登录方式
10006
=
第三方账号未注册
10007
=
该第三方账号已经被其他用户绑定
10008
=
已经绑定过该类型的第三方账号
10009
=
手机号已经注册
10010
=
该手机号已被其它账号绑定
10011
=
性别标签无效
10012
=
音乐风格标签无效
10013
=
账号与密码不匹配
10014
=
10015
=
入场人ID不能为空
10016
=
收货地址ID不能为空
10017
=
入场人不存在,请核实
10018
=
收货地址不存在,请核实
10019
=
入场人已存在,请核实
10101
=
姓名或身份证件号无效
10102
=
身份证号与姓名不符
10103
=
已超出姓名长度限制
10104
=
身份证号码不合规
10105
=
入场人不存在
10106
=
收获地址不存在
10107
=
港澳居民来往内地通行证号码不合规
10108
=
台湾居民来往大陆通行证号码不合规
10109
=
不支持中国大陆护照
10110
=
护照号码不合规
10111
=
军官证号不合规
10200
=
仅限从未购买过会员的用户使用
10201
=
会员卡信息有误,请核实
10202
=
会员卡价格有误,请核实
10203
=
支付信息有误,请联系客服
10204
=
微信支付OPENID必传
10205
=
支付宝支付回调URL必传
10206
=
苹果支付商品标识必传
10207
=
兑换码不存在,请核实
10208
=
兑换码已使用,请核实
10209
=
兑换码不可用,请核实
10210
=
创建订单失败,请联系客服
10211
=
订单不存在
10212
=
订单状态查询失败
10213
=
感谢您选择登登登。距您上一次离开不足一年,登登登还没准备好再次邀您加入。不如我们给彼此多一些时间,有缘再相见。
10214
=
兑换失败
10215
=
本次摩登天空会员购买名额已满
10216
=
10301
=
10401
=
10500
=
10501
=
会员订单回调处理失败,该订单不存在
10502
=
会员订单回调处理失败,该订单已处理
10503
=
会员订单回调处理失败,订单金额有误
10504
=
会员订单回调处理失败,会员价格信息不存在
10505
=
会员订单回调处理异常
liquidnet-bus-service/liquidnet-service-merchant/liquidnet-service-merchant-impl/src/main/resources/sqlmap.properties
0 → 100644
View file @
57d69834
# -- 使用券 --
candy_coupon.use
=
UPDATE candy_user_coupon SET state = 5 ,used_at = ? , used_for = ? WHERE uid = ? AND ucoupon_id = ?
#candy_coupon.use_insert=INSERT INTO candy_user_coupon (ucoupon_id , uid , state , coupon_id , used_at , used_for ) VALUE ( ? , ? , 3 , ? , ? ,? )
candy_coupon.use_insert
=
INSERT INTO candy_user_coupon (ucoupon_id , uid , state , coupon_id , bind_at, dued_at, used_at , used_for, created_at) VALUE ( ? , ? , 5 , ? , ? , ?, ?, ?, ?)
# -- 回退券 --
candy_coupon.back
=
UPDATE candy_user_coupon SET state = 1 WHERE uid = ? AND ucoupon_id = ?
# -- 领取券 --
candy_coupon.receive
=
INSERT INTO candy_user_coupon (ucoupon_id , uid , state , coupon_id , ccode , bind_at , created_at , dued_at) VALUE ( ? , ? , ? , ? , ? , ? , ? , ?)
candy_coupon_code.receive
=
UPDATE candy_coupon_code SET state=?,ucoupon_id=?,redeem_uid=?,redeem_mobile=?,redeem_at=?,updated_at=? WHERE coupon_id=? AND ccode=?
liquidnet-bus-service/liquidnet-service-merchant/pom.xml
0 → 100644
View file @
57d69834
<?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-merchant
</artifactId>
<packaging>
pom
</packaging>
<modules>
<module>
liquidnet-service-merchant-impl
</module>
</modules>
</project>
\ No newline at end of file
liquidnet-bus-service/pom.xml
View file @
57d69834
...
@@ -40,6 +40,7 @@
...
@@ -40,6 +40,7 @@
<module>
liquidnet-service-sweet
</module>
<module>
liquidnet-service-sweet
</module>
<module>
liquidnet-service-chime
</module>
<module>
liquidnet-service-chime
</module>
<module>
liquidnet-service-candy
</module>
<module>
liquidnet-service-candy
</module>
<module>
liquidnet-service-merchant
</module>
<!-- <module>liquidnet-service-example</module>-->
<!-- <module>liquidnet-service-example</module>-->
<!-- <module>liquidnet-service-sequence</module>-->
<!-- <module>liquidnet-service-sequence</module>-->
<!-- <module>liquidnet-service-account</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