|
@@ -25,10 +25,7 @@ import java.math.BigDecimal;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Objects;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -110,7 +107,7 @@ public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCou
|
|
LambdaQueryWrapper<MercCoupon> lqw = new LambdaQueryWrapper<MercCoupon>()
|
|
LambdaQueryWrapper<MercCoupon> lqw = new LambdaQueryWrapper<MercCoupon>()
|
|
.eq(MercCoupon::getMercId, param.getInt("mercId"))
|
|
.eq(MercCoupon::getMercId, param.getInt("mercId"))
|
|
.eq(MercCoupon::getStatus, true)
|
|
.eq(MercCoupon::getStatus, true)
|
|
- .eq(MercCoupon::getSendType, CouponSendTypeEnum.T_2.getCode())
|
|
|
|
|
|
+ .eq(MercCoupon::getSendType, CouponSendTypeEnum.REGISTER.getCode())
|
|
.and(wrapper -> wrapper.isNull(MercCoupon::getSendStartDate)
|
|
.and(wrapper -> wrapper.isNull(MercCoupon::getSendStartDate)
|
|
.or()
|
|
.or()
|
|
.le(MercCoupon::getSendStartDate, today))
|
|
.le(MercCoupon::getSendStartDate, today))
|
|
@@ -142,7 +139,7 @@ public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCou
|
|
LambdaQueryWrapper<MercCoupon> lqw = new LambdaQueryWrapper<MercCoupon>()
|
|
LambdaQueryWrapper<MercCoupon> lqw = new LambdaQueryWrapper<MercCoupon>()
|
|
.eq(MercCoupon::getMercId, param.getInt("mercId"))
|
|
.eq(MercCoupon::getMercId, param.getInt("mercId"))
|
|
.eq(MercCoupon::getStatus, true)
|
|
.eq(MercCoupon::getStatus, true)
|
|
- .eq(MercCoupon::getSendType, CouponSendTypeEnum.T_3.getCode())
|
|
|
|
|
|
+ .eq(MercCoupon::getSendType, CouponSendTypeEnum.SHOPPING.getCode())
|
|
.and(wrapper -> wrapper.isNull(MercCoupon::getSendStartDate)
|
|
.and(wrapper -> wrapper.isNull(MercCoupon::getSendStartDate)
|
|
.or()
|
|
.or()
|
|
.le(MercCoupon::getSendStartDate, orderCreateTime))
|
|
.le(MercCoupon::getSendStartDate, orderCreateTime))
|
|
@@ -167,11 +164,52 @@ public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCou
|
|
@Override
|
|
@Override
|
|
public void autoSend(JMap<String, Object> param) {
|
|
public void autoSend(JMap<String, Object> param) {
|
|
LocalDate today = LocalDate.now();
|
|
LocalDate today = LocalDate.now();
|
|
|
|
+ String thirdMemberId = param.getString("thirdMemberId");
|
|
|
|
+ String mercId = param.getString("mercId");
|
|
//获取自动赠送的列表
|
|
//获取自动赠送的列表
|
|
List<String> enumByAutoSend = CouponSendTypeEnum.getEnumByAutoSend(true);
|
|
List<String> enumByAutoSend = CouponSendTypeEnum.getEnumByAutoSend(true);
|
|
- //TODO 没完成
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ //查找商家可赠送的优惠券
|
|
|
|
+ LambdaQueryWrapper<MercCoupon> lqw = new LambdaQueryWrapper<MercCoupon>()
|
|
|
|
+ .eq(MercCoupon::getMercId, mercId)
|
|
|
|
+ .eq(MercCoupon::getStatus, "1")
|
|
|
|
+ .in(MercCoupon::getSendType, enumByAutoSend)
|
|
|
|
+ .and(wrapper -> wrapper.isNull(MercCoupon::getSendStartDate)
|
|
|
|
+ .or()
|
|
|
|
+ .le(MercCoupon::getSendStartDate, today))
|
|
|
|
+ .and(wrapper -> wrapper.isNull(MercCoupon::getSendEndDate)
|
|
|
|
+ .or()
|
|
|
|
+ .ge(MercCoupon::getSendEndDate, today));
|
|
|
|
+ List<MercCoupon> list = list(lqw);
|
|
|
|
+ List<MercCoupon> sendList = new ArrayList<>();
|
|
|
|
+ if (Emptys.check(list)) {
|
|
|
|
+ list.forEach(mercCoupon -> {
|
|
|
|
+ //每人必得
|
|
|
|
+ if (Objects.equals(mercCoupon.getSendType(), CouponSendTypeEnum.EVERYONE.getCode())) {
|
|
|
|
+ //查询券是否已领取过了
|
|
|
|
+ Map<String, Object> existNewMember = memberCouponService.obj(new JHashMap<String, Object>()
|
|
|
|
+ .set("couponId", mercCoupon.getId())
|
|
|
|
+ .set("thirdMemberId", thirdMemberId)
|
|
|
|
+ );
|
|
|
|
+ if (!Emptys.check(existNewMember)) {
|
|
|
|
+ sendList.add(mercCoupon);
|
|
|
|
+ memberCouponService.saveOrUpdate(modelSave(mercCoupon, thirdMemberId, "系统赠送", null));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //按日期发放
|
|
|
|
+ if (Objects.equals(mercCoupon.getSendType(), CouponSendTypeEnum.DAY.getCode())) {
|
|
|
|
+ //查询券是否已领取过了
|
|
|
|
+ Map<String, Object> existNewMember = memberCouponService.obj(new JHashMap<String, Object>()
|
|
|
|
+ .set("couponId", mercCoupon.getId())
|
|
|
|
+ .set("thirdMemberId", thirdMemberId)
|
|
|
|
+ .set("createDate", today)
|
|
|
|
+ );
|
|
|
|
+ if (!Emptys.check(existNewMember)) {
|
|
|
|
+ sendList.add(mercCoupon);
|
|
|
|
+ memberCouponService.saveOrUpdate(modelSave(mercCoupon, thirdMemberId, "系统赠送", null));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|