|
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.chelvc.cloud.vehicle.api.constant.CouponClaimType;
|
|
|
+import com.chelvc.cloud.vehicle.api.constant.CouponType;
|
|
|
import com.chelvc.cloud.vehicle.api.constant.PromotionStatus;
|
|
|
import com.chelvc.cloud.vehicle.api.constant.UserCouponStatus;
|
|
|
import com.chelvc.cloud.vehicle.api.dto.UserCouponDTO;
|
|
@@ -13,6 +14,7 @@ import com.chelvc.cloud.vehicle.api.param.UserCouponModifyParam;
|
|
|
import com.chelvc.cloud.vehicle.api.param.UserCouponPagingParam;
|
|
|
import com.chelvc.cloud.vehicle.api.param.UserCouponQueryParam;
|
|
|
import com.chelvc.cloud.vehicle.api.util.PromotionUtils;
|
|
|
+import com.chelvc.cloud.vehicle.server.copier.CouponCopier;
|
|
|
import com.chelvc.cloud.vehicle.server.copier.UserCouponCopier;
|
|
|
import com.chelvc.cloud.vehicle.server.dao.UserCouponMapper;
|
|
|
import com.chelvc.cloud.vehicle.server.entity.Coupon;
|
|
@@ -32,6 +34,7 @@ import org.apache.dubbo.config.annotation.DubboService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -227,4 +230,28 @@ public class UserCouponServiceImpl extends ServiceImpl<UserCouponMapper, UserCou
|
|
|
lwq.eq(UserCoupon::getCouponId, couponId);
|
|
|
this.baseMapper.update(userCoupon,lwq);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<UserCouponDTO> getUserCouponList(Long userId, BigDecimal amount) {
|
|
|
+ LambdaQueryWrapper<UserCoupon> lwq = Wrappers.lambdaQuery();
|
|
|
+ lwq.eq(UserCoupon::getUserId, userId);
|
|
|
+ lwq.eq(UserCoupon::getFlag, 0);
|
|
|
+ List<UserCouponDTO> userCouponList = UserCouponCopier.INSTANCE.copying(baseMapper.selectList(lwq));
|
|
|
+ if (userCouponList != null && userCouponList.size()>0){
|
|
|
+ userCouponList.forEach(item ->{
|
|
|
+ item.setCouponDTO(CouponCopier.INSTANCE.copying(this.couponService.getById(item.getId())));
|
|
|
+ if (CouponType.REDUCE.equals(item.getCouponDTO().getType())){
|
|
|
+ int comparison = amount.compareTo(new BigDecimal(item.getCouponDTO().getConsumeThreshold()));
|
|
|
+ if (comparison == 0) {
|
|
|
+ item.setDisplay(true);
|
|
|
+ } else if (comparison < 0) {
|
|
|
+ item.setDisplay(false);
|
|
|
+ } else {
|
|
|
+ item.setDisplay(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return userCouponList;
|
|
|
+ }
|
|
|
}
|