| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package com.izouma.dingdong.service;
- import com.izouma.dingdong.domain.Coupon;
- import com.izouma.dingdong.dto.CouponDTO;
- import com.izouma.dingdong.repo.CouponRepo;
- import com.izouma.dingdong.repo.merchant.MerchantRepo;
- import com.izouma.dingdong.service.merchant.MerchantService;
- import lombok.AllArgsConstructor;
- import org.springframework.stereotype.Service;
- import java.time.LocalDate;
- import java.util.List;
- import java.util.stream.Collectors;
- @Service
- @AllArgsConstructor
- public class CouponService {
- private CouponRepo couponRepo;
- private MerchantService merchantService;
- private MerchantRepo merchantRepo;
- public List<Coupon> my(Long userId, Boolean isAll) {
- Long merchantId = merchantService.findMerchantId(userId);
- List<Coupon> coupons = couponRepo.findAllByMerchantIdAndEnabledTrue(merchantId);
- if (isAll) {
- return coupons.stream()
- .filter(c -> !c.getStartDate().isBefore(LocalDate.now()))
- .collect(Collectors.toList());
- }
- return coupons.stream().filter(c -> !c.getEndDate().isBefore(LocalDate.now())).collect(Collectors.toList());
- }
- public CouponDTO toDTO(Coupon coupon) {
- CouponDTO dto = CouponDTO.builder()
- .id(coupon.getId())
- .amount(coupon.getAmount())
- .endDate(coupon.getEndDate())
- .fullAmount(coupon.getFullAmount())
- .name(coupon.getName())
- .startDate(coupon.getStartDate())
- .build();
- if (coupon.getFullAmount() == null) {
- dto.setDescription("无使用限制");
- } else {
- dto.setDescription("满" + coupon.getFullAmount() + "减" + coupon.getAmount());
- }
- merchantRepo.findById(coupon.getMerchantId()).ifPresent(m -> dto.setMerchantName(m.getShowName()));
- return dto;
- }
- }
|