diff --git a/src/main/java/com/cultural/heritage/controller/good/CouponController.java b/src/main/java/com/cultural/heritage/controller/good/CouponController.java index e73b1a8..85c7d48 100644 --- a/src/main/java/com/cultural/heritage/controller/good/CouponController.java +++ b/src/main/java/com/cultural/heritage/controller/good/CouponController.java @@ -15,10 +15,7 @@ import com.cultural.heritage.exception.ThrowUtils; import com.cultural.heritage.model.dto.CommonBatchRequest; import com.cultural.heritage.model.dto.CommonRequest; import com.cultural.heritage.model.dto.CommonStringRequest; -import com.cultural.heritage.model.dto.coupon.CouponAddRequest; -import com.cultural.heritage.model.dto.coupon.CouponQueryRequest; -import com.cultural.heritage.model.dto.coupon.CouponUpdateRequest; -import com.cultural.heritage.model.dto.coupon.UsableCouponQueryRequest; +import com.cultural.heritage.model.dto.coupon.*; import com.cultural.heritage.model.entity.Coupon; import com.cultural.heritage.model.entity.User; import com.cultural.heritage.model.entity.UserCoupon; @@ -40,6 +37,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -393,4 +391,52 @@ public class CouponController { + + /** + * 小程序端用户查看当前拥有的优惠券(包括可用的和不可用的) + * @param couponPriceQueryRequest 订单金额 + * @return (不)可用的的优惠券里列表 + */ + @PostMapping("/list/all/own") + @Operation(summary = "小程序端用户查看当前拥有的优惠券(包括可用的和不可用的)", description = "参数:优惠券id,权限:所有人,方法名:listAllOwnCoupon") + public BaseResponse>> listAllOwnCoupon(@RequestBody CouponPriceQueryRequest couponPriceQueryRequest, HttpServletRequest request) { + if (couponPriceQueryRequest == null) { + throw new BusinessException(ErrorCode.PARAMS_ERROR); + } + BigDecimal currentAmount = couponPriceQueryRequest.getCurrentAmount(); + if (currentAmount.compareTo(BigDecimal.ZERO) <= 0) { + throw new BusinessException(ErrorCode.PARAMS_ERROR, "订单金额参数错误"); + } + User loginUser = userService.getLoginUser(request); + Long userId = loginUser.getId(); + Map fieldConditions = new HashMap<>(); + fieldConditions.put("userId", userId); + fieldConditions.put("isUsed", 0); + List userCouponList = commonService.findByFieldEqTargetFields(fieldConditions, userCouponService); + userCouponList = userCouponList.stream().filter(userCoupon -> userCoupon.getCouponVO().getStatus().equals("可用")).toList(); + + List enabledToUseCouponList = new ArrayList<>(); + List noEnabledToUserCouponList = new ArrayList<>(); + for (UserCoupon userCoupon : userCouponList) { + CouponVO couponVO = userCoupon.getCouponVO(); + BigDecimal standardAmount = couponVO.getStandardAmount(); + int result = currentAmount.compareTo(standardAmount); + if (result >= 0) enabledToUseCouponList.add(userCoupon); + else noEnabledToUserCouponList.add(userCoupon); + } + List enabledToUseCouponVOList = commonService.convertList(enabledToUseCouponList, UserCouponVO.class); + List noEnabledToUserCouponVOList = commonService.convertList(noEnabledToUserCouponList, UserCouponVO.class); + + Map> userCouponMap = new HashMap<>(); + userCouponMap.put("可用", enabledToUseCouponVOList); + userCouponMap.put("不可用", noEnabledToUserCouponVOList); + + return ResultUtils.success(userCouponMap); + } + + + + + + } diff --git a/src/main/java/com/cultural/heritage/model/dto/coupon/CouponPriceQueryRequest.java b/src/main/java/com/cultural/heritage/model/dto/coupon/CouponPriceQueryRequest.java new file mode 100644 index 0000000..5088050 --- /dev/null +++ b/src/main/java/com/cultural/heritage/model/dto/coupon/CouponPriceQueryRequest.java @@ -0,0 +1,23 @@ +package com.cultural.heritage.model.dto.coupon; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class CouponPriceQueryRequest implements Serializable { + + + /** + * 订单金额 + */ + @Schema(description = "订单金额", example = "50") + private BigDecimal currentAmount; + + + @Serial + private static final long serialVersionUID = 1L; +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index f3cae0b..ab1d76b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -75,11 +75,11 @@ springdoc: server: - port: 8888 - ssl: - key-store: classpath:carboner.cn.jks - key-store-password: 6gsn1hke4m4f7 - key-store-type: JKS + port: 9092 +# ssl: +# key-store: classpath:carboner.cn.jks +# key-store-password: 6gsn1hke4m4f7 +# key-store-type: JKS servlet: context-path: /api