| | |
| | | package com.ruoyi.account.service.impl; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.account.api.dto.SendCouponDto; |
| | | import com.ruoyi.account.api.feignClient.AppCouponClient; |
| | | import com.ruoyi.account.api.model.TAppCoupon; |
| | | import com.ruoyi.account.api.model.TAppUserVipDetail; |
| | | import com.ruoyi.account.mapper.TAppUserVipDetailMapper; |
| | | |
| | | import com.ruoyi.account.service.TAppCouponService; |
| | | import com.ruoyi.account.service.TAppUserVipDetailService; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | | import com.ruoyi.other.api.domain.TCoupon; |
| | | import com.ruoyi.other.api.domain.TVip; |
| | | import com.ruoyi.other.api.feignClient.OtherClient; |
| | | import com.ruoyi.other.api.feignClient.VipClient; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | @Service |
| | | public class TAppUserVipDetailServiceImpl extends ServiceImpl<TAppUserVipDetailMapper, TAppUserVipDetail> implements TAppUserVipDetailService { |
| | | @Resource |
| | | private VipClient vipClient; |
| | | @Resource |
| | | private OtherClient otherClient; |
| | | @Resource |
| | | private TAppCouponService appCouponService; |
| | | @Resource |
| | | private TAppUserVipDetailService tAppUserVipDetailService; |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void giveVipCoupun(Long appUserId, Integer vipId,Long recordId,Integer monthNum) { |
| | | //如果不包含,则更新sendNum,并且赠送优惠卷 |
| | | TAppUserVipDetail byId = tAppUserVipDetailService.getById(recordId); |
| | | if (byId.getStartTime().plusMonths(byId.getSendMonth()).toLocalDate().compareTo(LocalDate.now())==0&&LocalDate.now().isBefore(byId.getEndTime().toLocalDate())){ |
| | | byId.setSendMonth(byId.getSendMonth()+1); |
| | | //给这个用户发放对应vip的优惠卷以及充电次数加满 |
| | | List<SendCouponDto> javaList = JSON.parseArray(byId.getCouponIds()).toJavaList(SendCouponDto.class); |
| | | for (SendCouponDto sendCouponDto : javaList) { |
| | | Integer number = sendCouponDto.getNumber(); |
| | | for (Integer i = 0; i < number; i++) { |
| | | R<TCoupon> couponById = otherClient.getCouponById(sendCouponDto.getId()); |
| | | TCoupon coupon = couponById.getData(); |
| | | //将该优惠卷添加到用户优惠卷中 |
| | | TAppCoupon tAppCoupon = new TAppCoupon(); |
| | | tAppCoupon.setAppUserId(appUserId); |
| | | tAppCoupon.setCouponId(sendCouponDto.getId()); |
| | | if (coupon.getValidityPeriodMode() == 1) { |
| | | tAppCoupon.setEndTime(coupon.getEndTime()); |
| | | } else { |
| | | tAppCoupon.setEndTime(LocalDateTime.now().plusDays(coupon.getDays())); |
| | | } |
| | | tAppCoupon.setWaysToObtain(4); |
| | | tAppCoupon.setStatus(1); |
| | | tAppCoupon.setCouponJson(JSON.toJSONString(coupon)); |
| | | appCouponService.save(tAppCoupon); |
| | | } |
| | | } |
| | | |
| | | } |
| | | byId.setChargeNum(byId.getSendChargeNum()); |
| | | tAppUserVipDetailService.updateById(byId); |
| | | } |
| | | |
| | | } |