新增会员卡管理
This commit is contained in:
+17
-6
@@ -63,13 +63,24 @@ public class MemberCardHandler {
|
||||
@Operation(summary = "更新会员卡类型", description = "更新会员卡类型信息")
|
||||
public Mono<ServerResponse> updateMemberCard(ServerRequest request) {
|
||||
Long id = Long.valueOf(request.pathVariable("id"));
|
||||
return request.bodyToMono(MemberCard.class)
|
||||
.flatMap(card -> {
|
||||
card.setMemberCardId(id);
|
||||
return memberCardService.save(card);
|
||||
return memberCardService.findByMemberCardIdAndDeletedAtIsNull(id)
|
||||
.switchIfEmpty(Mono.error(new RuntimeException("会员卡不存在: " + id)))
|
||||
.zipWith(request.bodyToMono(MemberCard.class))
|
||||
.flatMap(tuple -> {
|
||||
MemberCard existing = tuple.getT1();
|
||||
MemberCard body = tuple.getT2();
|
||||
// 仅更新非 null 字段,避免 null 覆盖已有值
|
||||
if (body.getMemberCardName() != null) existing.setMemberCardName(body.getMemberCardName());
|
||||
if (body.getMemberCardType() != null) existing.setMemberCardType(body.getMemberCardType());
|
||||
if (body.getMemberCardPrice() != null) existing.setMemberCardPrice(body.getMemberCardPrice());
|
||||
if (body.getMemberCardValidityDays() != null) existing.setMemberCardValidityDays(body.getMemberCardValidityDays());
|
||||
if (body.getMemberCardTotalTimes() != null) existing.setMemberCardTotalTimes(body.getMemberCardTotalTimes());
|
||||
if (body.getMemberCardAmount() != null) existing.setMemberCardAmount(body.getMemberCardAmount());
|
||||
if (body.getMemberCardStatus() != null) existing.setMemberCardStatus(body.getMemberCardStatus());
|
||||
if (body.getExtraConfig() != null) existing.setExtraConfig(body.getExtraConfig());
|
||||
return memberCardService.save(existing);
|
||||
})
|
||||
.flatMap(updated -> ServerResponse.ok().bodyValue(updated))
|
||||
.switchIfEmpty(ServerResponse.notFound().build());
|
||||
.flatMap(updated -> ServerResponse.ok().bodyValue(updated));
|
||||
}
|
||||
|
||||
@Operation(summary = "删除会员卡类型", description = "逻辑删除会员卡类型")
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ public interface MemberCardRepository extends R2dbcRepository<MemberCard, Long>
|
||||
"AND (:type IS NULL OR member_card_type = :type) " +
|
||||
"AND (:minPrice IS NULL OR member_card_price >= :minPrice) " +
|
||||
"AND (:maxPrice IS NULL OR member_card_price <= :maxPrice) " +
|
||||
"ORDER BY created_at DESC LIMIT :#{#pageable.pageSize} OFFSET :#{#pageable.offset}")
|
||||
"ORDER BY id ASC LIMIT :#{#pageable.pageSize} OFFSET :#{#pageable.offset}")
|
||||
Flux<MemberCard> findWithConditions(Integer status, String name, String type,
|
||||
Double minPrice, Double maxPrice, Pageable pageable);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user