From 5952aac570624230c2c19ce68cea9344f38c5fb7 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期二, 13 八月 2024 16:56:32 +0800
Subject: [PATCH] 8.13.2
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java | 2
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java | 17 -----
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java | 6 ++
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java | 5 +
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 6 +-
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java | 4 +
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java | 5 +
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java | 33 +++++++++-
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java | 18 +++++
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java | 6 ++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java | 54 ++++++++++++++---
11 files changed, 120 insertions(+), 36 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
index cec1394..01867dc 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
@@ -1,5 +1,6 @@
package com.ruoyi.account.api.factory;
+import com.ruoyi.account.api.dto.GrantCouponDto;
import com.ruoyi.account.api.feignClient.AppCouponClient;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
@@ -42,6 +43,11 @@
public R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(ExchangeRecordGoodsQuery couponId) {
return R.fail("根据优惠券id查询领取记录:"+throwable.getMessage());
}
+
+ @Override
+ public R grantCoupon(GrantCouponDto dto) {
+ return null;
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java
index 0f6d8d1..d6a6fa3 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java
@@ -77,6 +77,10 @@
@TableField("orderId")
private Long orderId;
+ @ApiModelProperty(value = "当前领取优惠卷的json记录")
+ @TableField("coupon_json")
+ private String couponJson;
+
}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
index 6f4e4a4..577fc54 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java
@@ -9,6 +9,7 @@
import lombok.EqualsAndHashCode;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
@@ -38,6 +39,16 @@
@TableField("charge_num")
private Integer chargeNum;
+
+
+ @ApiModelProperty(value = "购买时折扣金额")
+ @TableField("discount_money")
+ private BigDecimal discountMoney;
+
+ @ApiModelProperty(value = "该会员记录应赠送的充电次数")
+ @TableField("send_charge_num")
+ private Integer sendChargeNum;
+
@ApiModelProperty(value = "会员id")
@TableField("vip_id")
private Integer vipId;
@@ -55,7 +66,12 @@
@ApiModelProperty(value = "已赠送的月份")
@TableField("send_month")
- private String sendMonth;
+ private Integer sendMonth;
+
+
+ @ApiModelProperty(value = "要赠送的优惠卷")
+ @TableField("coupon_ids")
+ private String couponIds;
}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
index 4099d98..049f55c 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
@@ -6,6 +6,7 @@
import com.ruoyi.account.api.vo.CouponListVOVO;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.other.api.domain.TCompany;
+import com.ruoyi.other.api.domain.TCoupon;
import com.ruoyi.other.api.domain.TUserTag;
import com.ruoyi.other.api.feignClient.OtherClient;
import org.slf4j.Logger;
@@ -85,6 +86,11 @@
public R<List<CouponListVOVO>> getCouponInfoByCouponIds(List<CouponListVOVO> list) {
return R.fail("我的优惠券列表获取信息:"+throwable.getMessage());
}
+
+ @Override
+ public R<TCoupon> getCouponById(Integer id) {
+ return R.fail("查询优惠卷:"+throwable.getMessage());
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
index d07fd62..660b19a 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
@@ -7,6 +7,7 @@
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.other.api.domain.TCompany;
+import com.ruoyi.other.api.domain.TCoupon;
import com.ruoyi.other.api.domain.TUserTag;
import com.ruoyi.other.api.factory.OtherFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
@@ -64,6 +65,10 @@
R<List<CouponListVOVO>> getCouponInfoByCouponIds(@RequestBody List<CouponListVOVO> list);
+ @PostMapping(value = "/t-coupon/getCouponById")
+ R<TCoupon> getCouponById(@RequestParam Integer id);
+
+
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index a891991..f430616 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -315,11 +315,11 @@
int plusDay = 0;
if (giveVipDto.getType() == 1) {
- plusDay = 31;
+ plusDay = 1;
} else if (giveVipDto.getType() == 2) {
- plusDay = 93;
+ plusDay = 3;
} else if (giveVipDto.getType() == 3) {
- plusDay = 365;
+ plusDay = 12;
}
//增加vipDetail
giveVipUtil.sendVip(nowUser, giveVipDto.getVipId(),plusDay);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java
index 880fdb6..4dff539 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java
@@ -13,5 +13,5 @@
*/
public interface TAppUserVipDetailService extends IService<TAppUserVipDetail> {
- void giveVipCoupun(Long appUserId, Integer vipId);
+ void giveVipCoupun(Long appUserId, Integer vipId,Long recordId,Integer monthNum);
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java
index be05f28..c38b1d6 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java
@@ -3,17 +3,24 @@
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;
/**
@@ -28,20 +35,45 @@
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) {
- //给这个用户发放对应vip的优惠卷以及充电次数加满 ,重置抵扣金额
- R<TVip> info = vipClient.getInfo(vipId);
- TVip data = info.getData();
- String coupon = data.getCoupon();
- if (coupon!=null) {
- List<SendCouponDto> sendList = JSON.parseArray(coupon).toJavaList(SendCouponDto.class);
- for (SendCouponDto sendCouponDto : sendList) {
-
+ public void giveVipCoupun(Long appUserId, Integer vipId,Long recordId,Integer monthNum) {
+ //如果不包含,则更新sendNum,并且赠送优惠卷
+ TAppUserVipDetail byId = tAppUserVipDetailService.getById(recordId);
+ if (byId.getStartTime().toLocalDate().plusMonths(byId.getSendMonth()).compareTo(LocalDate.now())==0&&LocalDate.now().isBefore(byId.getEndTime().toLocalDate())){
+ byId.setSendMonth(byId.getSendMonth()+1);
+ //给这个用户发放对应vip的优惠卷以及充电次数加满
+
+ if (byId.getCouponIds()!=null) {
+ String[] sendList = byId.getCouponIds().split(",");
+ for (String sendCouponDto : sendList) {
+ R<TCoupon> couponById = otherClient.getCouponById(Integer.valueOf(sendCouponDto));
+ TCoupon coupon = couponById.getData();
+ //将该优惠卷添加到用户优惠卷中
+ TAppCoupon tAppCoupon = new TAppCoupon();
+ tAppCoupon.setAppUserId(appUserId);
+ tAppCoupon.setCouponId(Integer.valueOf(sendCouponDto));
+ 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);
}
}
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java
index 4d1a322..0bdf907 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java
@@ -39,23 +39,10 @@
.orderByDesc(TAppUserVipDetail::getStartTime).list();
//判断sendNum是否包括当前月份
for (TAppUserVipDetail recentDetail : recentDetails) {
- if (recentDetail.getSendMonth()!=null&&recentDetail.getSendMonth().contains(monthNum+"")){
- //如果包含,则不执行操作
- continue;
- }else {
- //如果不包含,则更新sendNum,并且赠送优惠卷
- TAppUserVipDetail byId = tAppUserVipDetailService.getById(recentDetail.getId());
- if (byId==null){
- byId.setSendMonth(byId.getSendMonth()+monthNum);
- }else{
- byId.setSendMonth(","+byId.getSendMonth()+monthNum);
- }
-
- tAppUserVipDetailService.updateById(byId);
//赠送优惠卷
- tAppUserVipDetailService.giveVipCoupun(recentDetail.getAppUserId(), recentDetail.getVipId());
- }
+ tAppUserVipDetailService.giveVipCoupun(recentDetail.getAppUserId(), recentDetail.getVipId(),recentDetail.getId(),monthNum);
+
}
} catch (Exception e) {
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java
index 6091de5..1f503b3 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java
@@ -1,30 +1,54 @@
package com.ruoyi.account.util;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.ruoyi.account.api.dto.SendCouponDto;
import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.account.api.model.TAppUserVipDetail;
import com.ruoyi.account.service.TAppUserVipDetailService;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.other.api.domain.TVip;
+import com.ruoyi.other.api.feignClient.VipClient;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.time.LocalDateTime;
+import java.util.List;
@Component
public class GiveVipUtil {
+
+ @Resource
+ private VipClient vipClient;
@Resource
private TAppUserVipDetailService tAppUserVipDetailService;
public void sendVip(TAppUser nowUser,Integer vipId,Integer plusDay){
if (nowUser.getVipEndTime()==null||nowUser.getVipEndTime().isBefore(LocalDateTime.now())) {
-
- nowUser.setVipEndTime(LocalDateTime.now().plusDays(plusDay));
+
+ nowUser.setVipEndTime(LocalDateTime.now().plusMonths(plusDay));
//直接再detail里新增数据,因为不是续费
TAppUserVipDetail tAppUserVipDetail = new TAppUserVipDetail();
tAppUserVipDetail.setAppUserId(nowUser.getId());
tAppUserVipDetail.setStartTime(LocalDateTime.now());
- tAppUserVipDetail.setEndTime(LocalDateTime.now().plusDays(plusDay));
+ tAppUserVipDetail.setEndTime(LocalDateTime.now().plusMonths(plusDay).minusDays(1));
tAppUserVipDetail.setVipId(vipId);
+
+ R<TVip> info = vipClient.getInfo(vipId);
+ TVip vip = info.getData();
+ List<SendCouponDto> javaList = JSON.parseArray(vip.getCoupon()).toJavaList(SendCouponDto.class);
+
+ tAppUserVipDetail.setCouponIds(vip.getCoupon());
+ tAppUserVipDetail.setSendChargeNum(vip.getDiscountTimes());
+ tAppUserVipDetail.setChargeNum(vip.getDiscountTimes());
+ tAppUserVipDetail.setDiscountMoney(vip.getMaximumDeduction());
tAppUserVipDetailService.save(tAppUserVipDetail);
//直接赠送优惠卷
+
+
+
+
+
}else {
nowUser.setVipEndTime(nowUser.getVipEndTime().plusDays(plusDay));
//获取detail里结束时间大于当前时间的数据,并将enttime延长
@@ -33,8 +57,7 @@
TAppUserVipDetail newAppUser = new TAppUserVipDetail();
newAppUser.setAppUserId(nowUser.getId());
newAppUser.setStartTime(tAppUserVipDetail.getEndTime());
- newAppUser.setEndTime(tAppUserVipDetail.getEndTime().plusDays(plusDay));
-
+ newAppUser.setEndTime(tAppUserVipDetail.getEndTime().plusMonths(plusDay).minusDays(1));
newAppUser.setVipId(vipId);
tAppUserVipDetailService.save(newAppUser);
// tAppUserVipDetail.setEndTime(tAppUserVipDetail.getEndTime().plusDays(plusDay));
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
index cbcd8b3..136933c 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -115,6 +115,11 @@
return AjaxResult.ok(tCouponService.pageList(dto));
}
+ @PostMapping(value = "/getCouponById")
+ public R<TCoupon> getCouponById(@RequestParam Integer id) {
+ return R.ok(tCouponService.getById(id));
+
+ }
/**
* 小程序远程调用 获取优惠券信息
*/
--
Gitblit v1.7.1