记得上下班打卡 | 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
dd624d7d
Commit
dd624d7d
authored
Jul 17, 2026
by
wangyifan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slime:拼团活动优化
parent
05acfaad
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
86 additions
and
54 deletions
+86
-54
KylinGroupBuyActivityCreateParam.java
...ice/kylin/dto/param/KylinGroupBuyActivityCreateParam.java
+23
-21
KylinGroupBuyActivityUpdateParam.java
...ice/kylin/dto/param/KylinGroupBuyActivityUpdateParam.java
+22
-0
IKylinGroupBuyPartnerService.java
...e/kylin/service/partner/IKylinGroupBuyPartnerService.java
+4
-3
KylinGroupBuyPartnerController.java
...vice/slime/controller/KylinGroupBuyPartnerController.java
+4
-13
KylinGroupBuyPartnerServiceImpl.java
...e/slime/service/impl/KylinGroupBuyPartnerServiceImpl.java
+33
-17
No files found.
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/param/KylinGroupBuyActivityParam.java
→
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/param/KylinGroupBuyActivity
Create
Param.java
View file @
dd624d7d
package
com
.
liquidnet
.
service
.
kylin
.
dto
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -8,72 +9,73 @@ import javax.validation.constraints.NotEmpty;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
* 创建拼团活动请求参数(不含 activityId)。
*/
@Data
public
class
KylinGroupBuyActivityParam
implements
Serializable
{
@ApiModel
(
value
=
"KylinGroupBuyActivityCreateParam"
,
description
=
"创建拼团活动"
)
public
class
KylinGroupBuyActivityCreateParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"活动ID,编辑时必传"
)
private
String
activityId
;
@ApiModelProperty
(
value
=
"活动名称"
)
@ApiModelProperty
(
value
=
"活动名称"
,
required
=
true
)
@NotNull
(
message
=
"活动名称不能为空"
)
private
String
name
;
@ApiModelProperty
(
value
=
"关联演出ID"
)
@ApiModelProperty
(
value
=
"关联演出ID"
,
required
=
true
)
@NotNull
(
message
=
"关联演出ID不能为空"
)
private
String
performanceId
;
@ApiModelProperty
(
value
=
"成团人数"
)
@ApiModelProperty
(
value
=
"成团人数"
,
required
=
true
)
@NotNull
(
message
=
"成团人数不能为空"
)
private
Integer
minGroupSize
;
@ApiModelProperty
(
value
=
"每人限购"
)
@ApiModelProperty
(
value
=
"每人限购"
,
required
=
true
)
@NotNull
(
message
=
"每人限购不能为空"
)
private
Integer
maxBuyPerUser
;
@ApiModelProperty
(
value
=
"活动开始时间"
)
@ApiModelProperty
(
value
=
"活动开始时间
,格式 yyyy-MM-dd HH:mm:ss"
,
required
=
true
,
example
=
"2026-07-17 00:00:00
"
)
@NotNull
(
message
=
"活动开始时间不能为空"
)
private
LocalDateTime
startTime
;
private
String
startTime
;
@ApiModelProperty
(
value
=
"活动结束时间"
)
@ApiModelProperty
(
value
=
"活动结束时间
,格式 yyyy-MM-dd HH:mm:ss"
,
required
=
true
,
example
=
"2026-12-31 23:59:59
"
)
@NotNull
(
message
=
"活动结束时间不能为空"
)
private
LocalDateTime
endTime
;
private
String
endTime
;
@ApiModelProperty
(
value
=
"启动方式 1立即 2手动 3定时"
)
@ApiModelProperty
(
value
=
"启动方式 1立即 2手动 3定时"
,
required
=
true
)
@NotNull
(
message
=
"启动方式不能为空"
)
private
Integer
launchType
;
@ApiModelProperty
(
value
=
"定时启动时间"
)
private
LocalDateTime
scheduledTime
;
@ApiModelProperty
(
value
=
"定时启动时间
,格式 yyyy-MM-dd HH:mm:ss(launchType=3 时必填)"
,
example
=
"2026-07-18 10:00:00
"
)
private
String
scheduledTime
;
@ApiModelProperty
(
value
=
"活动说明"
)
private
String
description
;
@Valid
@NotEmpty
(
message
=
"票种优惠不能为空"
)
@ApiModelProperty
(
value
=
"票种优惠配置"
)
@ApiModelProperty
(
value
=
"票种优惠配置"
,
required
=
true
)
private
List
<
DiscountParam
>
discounts
;
@Data
@ApiModel
(
value
=
"KylinGroupBuyActivityDiscountParam"
,
description
=
"拼团票种优惠"
)
public
static
class
DiscountParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"场次ID"
)
@ApiModelProperty
(
value
=
"场次ID"
,
required
=
true
)
@NotNull
(
message
=
"场次ID不能为空"
)
private
String
timeId
;
@ApiModelProperty
(
value
=
"票种ID"
)
@ApiModelProperty
(
value
=
"票种ID"
,
required
=
true
)
@NotNull
(
message
=
"票种ID不能为空"
)
private
String
ticketId
;
@ApiModelProperty
(
value
=
"优惠类型 1固定价格 2折扣 3满减"
)
@ApiModelProperty
(
value
=
"优惠类型 1固定价格 2折扣 3满减"
,
required
=
true
)
@NotNull
(
message
=
"优惠类型不能为空"
)
private
Integer
discountType
;
@ApiModelProperty
(
value
=
"优惠值"
)
@ApiModelProperty
(
value
=
"优惠值"
,
required
=
true
)
@NotNull
(
message
=
"优惠值不能为空"
)
private
BigDecimal
discountValue
;
}
...
...
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/param/KylinGroupBuyActivityUpdateParam.java
0 → 100644
View file @
dd624d7d
package
com
.
liquidnet
.
service
.
kylin
.
dto
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotNull
;
/**
* 编辑拼团活动请求参数(必传 activityId)。
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"KylinGroupBuyActivityUpdateParam"
,
description
=
"编辑拼团活动"
)
public
class
KylinGroupBuyActivityUpdateParam
extends
KylinGroupBuyActivityCreateParam
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"活动ID"
,
required
=
true
)
@NotNull
(
message
=
"活动ID不能为空"
)
private
String
activityId
;
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/partner/IKylinGroupBuyPartnerService.java
View file @
dd624d7d
...
...
@@ -2,7 +2,8 @@ package com.liquidnet.service.kylin.service.partner;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dto.param.KylinGroupBuyActivityParam
;
import
com.liquidnet.service.kylin.dto.param.KylinGroupBuyActivityCreateParam
;
import
com.liquidnet.service.kylin.dto.param.KylinGroupBuyActivityUpdateParam
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyActivityVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyOrderVo
;
...
...
@@ -17,9 +18,9 @@ public interface IKylinGroupBuyPartnerService {
ResponseDto
<
KylinGroupBuyActivityVo
>
detail
(
String
activityId
);
ResponseDto
<
KylinGroupBuyActivityVo
>
create
(
KylinGroupBuyActivityParam
param
);
ResponseDto
<
KylinGroupBuyActivityVo
>
create
(
KylinGroupBuyActivity
Create
Param
param
);
ResponseDto
<
KylinGroupBuyActivityVo
>
update
(
KylinGroupBuyActivityParam
param
);
ResponseDto
<
KylinGroupBuyActivityVo
>
update
(
KylinGroupBuyActivity
Update
Param
param
);
ResponseDto
<
Boolean
>
delete
(
String
activityId
);
...
...
liquidnet-bus-service/liquidnet-service-slime/liquidnet-service-slime-impl/src/main/java/com/liquidnet/service/slime/controller/KylinGroupBuyPartnerController.java
View file @
dd624d7d
...
...
@@ -2,7 +2,8 @@ package com.liquidnet.service.slime.controller;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dto.param.KylinGroupBuyActivityParam
;
import
com.liquidnet.service.kylin.dto.param.KylinGroupBuyActivityCreateParam
;
import
com.liquidnet.service.kylin.dto.param.KylinGroupBuyActivityUpdateParam
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyActivityVo
;
import
com.liquidnet.service.kylin.service.partner.IKylinGroupBuyPartnerService
;
import
io.swagger.annotations.Api
;
...
...
@@ -58,13 +59,13 @@ public class KylinGroupBuyPartnerController {
@PostMapping
(
""
)
@ApiOperation
(
value
=
"创建拼团活动"
,
position
=
3
)
public
ResponseDto
<
KylinGroupBuyActivityVo
>
create
(
@RequestBody
@Valid
KylinGroupBuyActivityParam
param
)
{
public
ResponseDto
<
KylinGroupBuyActivityVo
>
create
(
@RequestBody
@Valid
KylinGroupBuyActivity
Create
Param
param
)
{
return
groupBuyPartnerService
.
create
(
param
);
}
@PutMapping
(
""
)
@ApiOperation
(
value
=
"编辑拼团活动"
,
position
=
4
)
public
ResponseDto
<
KylinGroupBuyActivityVo
>
update
(
@RequestBody
@Valid
KylinGroupBuyActivityParam
param
)
{
public
ResponseDto
<
KylinGroupBuyActivityVo
>
update
(
@RequestBody
@Valid
KylinGroupBuyActivity
Update
Param
param
)
{
return
groupBuyPartnerService
.
update
(
param
);
}
...
...
@@ -80,14 +81,4 @@ public class KylinGroupBuyPartnerController {
@RequestParam
(
"targetStatus"
)
@NotNull
(
message
=
"目标状态不能为空"
)
Integer
targetStatus
)
{
return
groupBuyPartnerService
.
toggle
(
activityId
,
targetStatus
);
}
//
// @GetMapping("/orders")
// @ApiOperation(value = "拼团订单列表", position = 7)
// public ResponseDto<List<KylinGroupBuyOrderVo>> orders(
// @RequestParam("activityId") @NotNull(message = "活动ID不能为空") String activityId,
// @RequestParam(value = "status", required = false) Integer status,
// @RequestParam(value = "page", required = false, defaultValue = "1") Integer page,
// @RequestParam(value = "size", required = false, defaultValue = "20") Integer size) {
// return groupBuyPartnerService.orders(activityId, status, page, size);
// }
}
liquidnet-bus-service/liquidnet-service-slime/liquidnet-service-slime-impl/src/main/java/com/liquidnet/service/slime/service/impl/KylinGroupBuyPartnerServiceImpl.java
View file @
dd624d7d
...
...
@@ -11,7 +11,8 @@ import com.liquidnet.service.base.constant.MQConst;
import
com.liquidnet.service.base.constant.RedisKeyExpireConst
;
import
com.liquidnet.service.kylin.constant.GroupBuyStatusConst
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dto.param.KylinGroupBuyActivityParam
;
import
com.liquidnet.service.kylin.dto.param.KylinGroupBuyActivityCreateParam
;
import
com.liquidnet.service.kylin.dto.param.KylinGroupBuyActivityUpdateParam
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyActivityVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyDiscountVo
;
import
com.liquidnet.service.kylin.dto.vo.groupbuy.KylinGroupBuyOrderVo
;
...
...
@@ -109,7 +110,7 @@ public class KylinGroupBuyPartnerServiceImpl implements IKylinGroupBuyPartnerSer
}
@Override
public
ResponseDto
<
KylinGroupBuyActivityVo
>
create
(
KylinGroupBuyActivityParam
param
)
{
public
ResponseDto
<
KylinGroupBuyActivityVo
>
create
(
KylinGroupBuyActivity
Create
Param
param
)
{
ResponseDto
<
Boolean
>
validate
=
validateParam
(
param
);
if
(!
validate
.
isSuccess
())
{
return
ResponseDto
.
failure
(
validate
.
getMessage
());
...
...
@@ -123,11 +124,11 @@ public class KylinGroupBuyPartnerServiceImpl implements IKylinGroupBuyPartnerSer
mongoTemplate
.
insert
(
vo
,
KylinGroupBuyActivityVo
.
class
.
getSimpleName
());
sendReplaceActivitySql
(
vo
);
cacheActivity
(
vo
);
return
ResponseDto
.
success
(
vo
);
return
ResponseDto
.
success
();
}
@Override
public
ResponseDto
<
KylinGroupBuyActivityVo
>
update
(
KylinGroupBuyActivityParam
param
)
{
public
ResponseDto
<
KylinGroupBuyActivityVo
>
update
(
KylinGroupBuyActivity
Update
Param
param
)
{
KylinGroupBuyActivityVo
old
=
findActivity
(
param
.
getActivityId
());
if
(
old
==
null
)
{
return
ResponseDto
.
failure
(
"拼团活动不存在"
);
...
...
@@ -145,7 +146,7 @@ public class KylinGroupBuyPartnerServiceImpl implements IKylinGroupBuyPartnerSer
vo
.
setDiscounts
(
buildDiscounts
(
param
,
old
.
getActivityId
(),
now
));
replaceActivity
(
vo
);
sendReplaceActivitySql
(
vo
);
return
ResponseDto
.
success
(
vo
);
return
ResponseDto
.
success
();
}
@Override
...
...
@@ -206,12 +207,27 @@ public class KylinGroupBuyPartnerServiceImpl implements IKylinGroupBuyPartnerSer
KylinGroupBuyOrderVo
.
class
,
KylinGroupBuyOrderVo
.
class
.
getSimpleName
()));
}
private
ResponseDto
<
Boolean
>
validateParam
(
KylinGroupBuyActivityParam
param
)
{
if
(
param
.
getEndTime
().
isBefore
(
param
.
getStartTime
())
||
param
.
getEndTime
().
isEqual
(
param
.
getStartTime
()))
{
private
ResponseDto
<
Boolean
>
validateParam
(
KylinGroupBuyActivityCreateParam
param
)
{
LocalDateTime
startTime
;
LocalDateTime
endTime
;
try
{
startTime
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
param
.
getStartTime
());
endTime
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
param
.
getEndTime
());
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
"开始/结束时间格式错误,需为 yyyy-MM-dd HH:mm:ss"
);
}
if
(
endTime
.
isBefore
(
startTime
)
||
endTime
.
isEqual
(
startTime
))
{
return
ResponseDto
.
failure
(
"活动结束时间必须晚于开始时间"
);
}
if
(
GroupBuyStatusConst
.
LaunchType
.
SCHEDULED
.
equals
(
param
.
getLaunchType
())
&&
param
.
getScheduledTime
()
==
null
)
{
return
ResponseDto
.
failure
(
"定时启动必须填写启动时间"
);
if
(
GroupBuyStatusConst
.
LaunchType
.
SCHEDULED
.
equals
(
param
.
getLaunchType
()))
{
if
(
param
.
getScheduledTime
()
==
null
||
param
.
getScheduledTime
().
trim
().
isEmpty
())
{
return
ResponseDto
.
failure
(
"定时启动必须填写启动时间"
);
}
try
{
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
param
.
getScheduledTime
());
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
(
"定时启动时间格式错误,需为 yyyy-MM-dd HH:mm:ss"
);
}
}
KylinPerformanceVo
performanceVo
=
redisSlimeUtils
.
getPerformanceVo
(
param
.
getPerformanceId
());
if
(
performanceVo
==
null
||
CollectionUtils
.
isEmpty
(
performanceVo
.
getTicketTimeList
()))
{
...
...
@@ -224,7 +240,7 @@ public class KylinGroupBuyPartnerServiceImpl implements IKylinGroupBuyPartnerSer
return
ResponseDto
.
failure
(
"限购数量不能小于1"
);
}
if
(!
CollectionUtils
.
isEmpty
(
param
.
getDiscounts
()))
{
for
(
KylinGroupBuyActivityParam
.
DiscountParam
discount
:
param
.
getDiscounts
())
{
for
(
KylinGroupBuyActivity
Create
Param
.
DiscountParam
discount
:
param
.
getDiscounts
())
{
if
(!
ticketExists
(
performanceVo
,
discount
.
getTimeId
(),
discount
.
getTicketId
()))
{
return
ResponseDto
.
failure
(
"优惠配置的场次或票档不存在"
);
}
...
...
@@ -250,17 +266,17 @@ public class KylinGroupBuyPartnerServiceImpl implements IKylinGroupBuyPartnerSer
return
false
;
}
private
KylinGroupBuyActivityVo
buildActivity
(
KylinGroupBuyActivityParam
param
,
String
now
)
{
private
KylinGroupBuyActivityVo
buildActivity
(
KylinGroupBuyActivity
Create
Param
param
,
String
now
)
{
KylinGroupBuyActivityVo
vo
=
new
KylinGroupBuyActivityVo
();
vo
.
setName
(
param
.
getName
());
vo
.
setPerformanceId
(
param
.
getPerformanceId
());
vo
.
setMinGroupSize
(
param
.
getMinGroupSize
());
vo
.
setMaxBuyPerUser
(
param
.
getMaxBuyPerUser
());
vo
.
setStartTime
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
param
.
getStartTime
()
));
vo
.
setEndTime
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
param
.
getEndTime
()
));
vo
.
setStartTime
(
param
.
getStartTime
(
));
vo
.
setEndTime
(
param
.
getEndTime
(
));
vo
.
setLaunchType
(
param
.
getLaunchType
());
if
(
param
.
getScheduledTime
()
!=
null
)
{
vo
.
setScheduledTime
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
param
.
getScheduledTime
()
));
if
(
param
.
getScheduledTime
()
!=
null
&&
!
param
.
getScheduledTime
().
trim
().
isEmpty
()
)
{
vo
.
setScheduledTime
(
param
.
getScheduledTime
(
));
}
vo
.
setDescription
(
param
.
getDescription
());
if
(
GroupBuyStatusConst
.
LaunchType
.
IMMEDIATE
.
equals
(
param
.
getLaunchType
()))
{
...
...
@@ -272,9 +288,9 @@ public class KylinGroupBuyPartnerServiceImpl implements IKylinGroupBuyPartnerSer
return
vo
;
}
private
List
<
KylinGroupBuyDiscountVo
>
buildDiscounts
(
KylinGroupBuyActivityParam
param
,
String
activityId
,
String
now
)
{
private
List
<
KylinGroupBuyDiscountVo
>
buildDiscounts
(
KylinGroupBuyActivity
Create
Param
param
,
String
activityId
,
String
now
)
{
List
<
KylinGroupBuyDiscountVo
>
list
=
new
ArrayList
<>();
for
(
KylinGroupBuyActivityParam
.
DiscountParam
discountParam
:
param
.
getDiscounts
())
{
for
(
KylinGroupBuyActivity
Create
Param
.
DiscountParam
discountParam
:
param
.
getDiscounts
())
{
KylinGroupBuyDiscountVo
vo
=
new
KylinGroupBuyDiscountVo
();
vo
.
setDiscountId
(
IDGenerator
.
nextSnowId
());
vo
.
setActivityId
(
activityId
);
...
...
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