From aae58673416ec2fb2fbbe36383c57c2d9dbf256b Mon Sep 17 00:00:00 2001 From: Derran Date: Tue, 3 Feb 2026 16:36:27 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B4=E6=92=AD=E7=BA=A2=E5=A8=98=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../right/user/RightUserQueryController.java | 20 +++++++++---- .../user/response/UserGetUserVipInfoVo.java | 30 +++++++++++++++++++ .../dam/query/right/RightQueryService.java | 7 ++--- .../right/impl/RightQueryServiceImpl.java | 30 +++++++++++++++---- .../PurchaseProductRecordQueryService.xml | 2 +- 5 files changed, 72 insertions(+), 17 deletions(-) create mode 100644 dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/response/UserGetUserVipInfoVo.java diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/RightUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/RightUserQueryController.java index 6b8c900..2cca7ab 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/RightUserQueryController.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/RightUserQueryController.java @@ -3,13 +3,12 @@ package com.qniao.dam.api.query.right.user; import com.qniao.dam.api.query.right.user.request.UserCheckEnableRightBySdkQueryParam; import com.qniao.dam.api.query.right.user.request.UserListRightByCustomerQueryParam; import com.qniao.dam.api.query.right.user.request.UserListRightByOperatorQueryParam; -import com.qniao.dam.api.query.right.user.response.UserCheckEnableRightBySdkVo; -import com.qniao.dam.api.query.right.user.response.UserListRightByCustomerVo; -import com.qniao.dam.api.query.right.user.response.UserListRightByOperatorVo; -import com.qniao.dam.api.query.right.user.response.UserVipRightVo; +import com.qniao.dam.api.query.right.user.response.*; +import com.qniao.dam.domain.aggregate.right.entity.Right; import com.qniao.dam.query.right.RightQueryService; import com.qniao.dau.infrastructure.constant.RequestHeaderFields; import com.qniao.framework.annotation.IgnoreResponseAdvice; +import com.qniao.framework.utils.TypeConvertUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; @@ -17,6 +16,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; +import java.util.Objects; @RestController @RequestMapping("user") @@ -51,7 +51,15 @@ public class RightUserQueryController { @GetMapping("check/user/vip/right") @ApiOperation("检查用户vip权益") - public UserVipRightVo checkUserVipRight(@RequestParam("userId") Long userId,@RequestParam("miId") Long miId){ - return rightQueryService.checkUserVipRight(userId,miId); + public UserVipRightVo checkUserVipRight(@RequestParam("userId") Long userId, @RequestParam("miId") Long miId) { + return rightQueryService.checkUserVipRight(userId, miId); + } + + @GetMapping("get/user/vip/right") + @ApiOperation("获取用户vip信息") + public UserGetUserVipInfoVo userGetUserVipInfo(@RequestParam("userId") Long userId, + @RequestParam("miId") Long miId) { + Right right = rightQueryService.getUserVipInfo(userId, miId); + return Objects.nonNull(right) ? TypeConvertUtils.convert(right, UserGetUserVipInfoVo.class) : null; } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/response/UserGetUserVipInfoVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/response/UserGetUserVipInfoVo.java new file mode 100644 index 0000000..5ee3ea8 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/right/user/response/UserGetUserVipInfoVo.java @@ -0,0 +1,30 @@ +package com.qniao.dam.api.query.right.user.response; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class UserGetUserVipInfoVo { + + @ApiModelProperty("唯一标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @ApiModelProperty("权益类型") + private RightTypeEnum type; + + @ApiModelProperty("开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/RightQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/RightQueryService.java index 4ce5e67..37b63ef 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/RightQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/RightQueryService.java @@ -3,10 +3,7 @@ package com.qniao.dam.query.right; import com.qniao.dam.api.query.right.user.request.UserCheckEnableRightBySdkQueryParam; import com.qniao.dam.api.query.right.user.request.UserListRightByCustomerQueryParam; import com.qniao.dam.api.query.right.user.request.UserListRightByOperatorQueryParam; -import com.qniao.dam.api.query.right.user.response.UserCheckEnableRightBySdkVo; -import com.qniao.dam.api.query.right.user.response.UserListRightByCustomerVo; -import com.qniao.dam.api.query.right.user.response.UserListRightByOperatorVo; -import com.qniao.dam.api.query.right.user.response.UserVipRightVo; +import com.qniao.dam.api.query.right.user.response.*; import com.qniao.dam.domain.aggregate.right.entity.Right; import com.qniao.dam.domain.aggregate.right.entity.RightTerm; import com.qniao.dam.domian.aggregate.right.constant.RightNameEnum; @@ -38,4 +35,6 @@ public interface RightQueryService { List listRightByOperator(UserListRightByOperatorQueryParam queryParam); UserVipRightVo checkUserVipRight(Long userId, Long miId); + + Right getUserVipInfo(Long userId, Long miId); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/impl/RightQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/impl/RightQueryServiceImpl.java index b1bd9dd..38911ac 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/impl/RightQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/right/impl/RightQueryServiceImpl.java @@ -7,10 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.qniao.dam.api.query.right.user.request.UserCheckEnableRightBySdkQueryParam; import com.qniao.dam.api.query.right.user.request.UserListRightByCustomerQueryParam; import com.qniao.dam.api.query.right.user.request.UserListRightByOperatorQueryParam; -import com.qniao.dam.api.query.right.user.response.UserCheckEnableRightBySdkVo; -import com.qniao.dam.api.query.right.user.response.UserListRightByCustomerVo; -import com.qniao.dam.api.query.right.user.response.UserListRightByOperatorVo; -import com.qniao.dam.api.query.right.user.response.UserVipRightVo; +import com.qniao.dam.api.query.right.user.response.*; import com.qniao.dam.domain.aggregate.right.entity.Right; import com.qniao.dam.domain.aggregate.right.entity.RightTerm; import com.qniao.dam.domain.aggregate.right.repository.RightRepository; @@ -63,13 +60,34 @@ public class RightQueryServiceImpl implements RightQueryService { public UserVipRightVo checkUserVipRight(Long userId, Long miId) { UserVipRightVo vo = new UserVipRightVo(); vo.setVip(false); - Integer count = rightDao.checkUserVip(userId,miId); - if(count > 0){ + Integer count = rightDao.checkUserVip(userId, miId); + if (count > 0) { vo.setVip(true); } return vo; } + @Override + public Right getUserVipInfo(Long userId, Long miId) { + Right right = rightDao.selectOne(new LambdaQueryWrapper() + .eq(Right::getUserId, userId) + .eq(Right::getMiId, miId) + .eq(Right::getType, RightTypeEnum.VIP) + .ge(Right::getEndTime, LocalDateTime.now()) + .eq(Right::getEnable, true) + .last("limit 1")); + if (Objects.isNull(right)) { + right = rightDao.selectOne(new LambdaQueryWrapper() + .eq(Right::getUserId, userId) + .eq(Right::getMiId, miId) + .eq(Right::getType, RightTypeEnum.VIP_TRIAL) + .ge(Right::getEndTime, LocalDateTime.now()) + .eq(Right::getEnable, true) + .last("limit 1")); + } + return right; + } + @Override public List listRightByCustomer(UserListRightByCustomerQueryParam queryParam) { List customerVolist = new ArrayList<>(); diff --git a/dating-agency-mall-server/src/main/resources/mapper/right/PurchaseProductRecordQueryService.xml b/dating-agency-mall-server/src/main/resources/mapper/right/PurchaseProductRecordQueryService.xml index 35dca9c..e30c173 100644 --- a/dating-agency-mall-server/src/main/resources/mapper/right/PurchaseProductRecordQueryService.xml +++ b/dating-agency-mall-server/src/main/resources/mapper/right/PurchaseProductRecordQueryService.xml @@ -23,6 +23,6 @@