|
|
@@ -15,10 +15,12 @@ import shop.alien.entity.store.*;
|
|
|
import shop.alien.entity.store.dto.LifeDiscountCouponDto;
|
|
|
import shop.alien.entity.store.vo.LifeCouponStatusVo;
|
|
|
import shop.alien.entity.store.vo.LifeDiscountCouponStoreFriendVo;
|
|
|
+import shop.alien.entity.store.vo.LifeDiscountCouponUserWebVo;
|
|
|
import shop.alien.entity.store.vo.LifeDiscountCouponVo;
|
|
|
import shop.alien.mapper.*;
|
|
|
import shop.alien.store.service.LifeDiscountCouponQuantumRulesService;
|
|
|
import shop.alien.store.service.LifeDiscountCouponService;
|
|
|
+import shop.alien.store.service.LifeDiscountCouponUserService;
|
|
|
import shop.alien.util.common.constant.DiscountCouponEnum;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
@@ -58,14 +60,13 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
|
|
|
private final EssentialHolidayComparisonMapper essentialHolidayComparisonMapper;
|
|
|
|
|
|
- private final LifeCouponMapper lifeCouponMapper;
|
|
|
-
|
|
|
private final LifeDiscountCouponStoreFriendMapper lifeDiscountCouponStoreFriendMapper;
|
|
|
|
|
|
private final StoreInfoMapper storeInfoMapper;
|
|
|
|
|
|
private final LifeDiscountCouponQuantumRulesService lifeDiscountCouponQuantumRulesService;
|
|
|
|
|
|
+ private final LifeDiscountCouponUserService lifeDiscountCouponUserService;
|
|
|
|
|
|
@Override
|
|
|
public boolean addDiscountCoupon(LifeDiscountCouponDto lifeDiscountCouponDto) {
|
|
|
@@ -92,14 +93,12 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
|
|
|
// 设置有效期
|
|
|
String specifiedDay = lifeDiscountCoupon.getSpecifiedDay();
|
|
|
- if(!StringUtils.isEmpty(specifiedDay)){
|
|
|
+ if (!StringUtils.isEmpty(specifiedDay)) {
|
|
|
int sDay = Integer.parseInt(specifiedDay);
|
|
|
- if(sDay > 0 && lifeDiscountCouponDto.getEndGetDate() != null){
|
|
|
+ if (sDay > 0 && lifeDiscountCouponDto.getEndGetDate() != null) {
|
|
|
Date endGetDate = Date.from(lifeDiscountCouponDto.getEndGetDate().atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
Date validDate = addDaysToDateJava8(endGetDate, sDay);
|
|
|
- LocalDate validDateLocalDate = validDate.toInstant()
|
|
|
- .atZone(ZoneId.systemDefault())
|
|
|
- .toLocalDate();
|
|
|
+ LocalDate validDateLocalDate = validDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
lifeDiscountCoupon.setValidDate(validDateLocalDate);
|
|
|
}
|
|
|
}
|
|
|
@@ -109,7 +108,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
LifeDiscountCouponUnavailableRules lifeDiscountCouponUnavailableRules = new LifeDiscountCouponUnavailableRules();
|
|
|
lifeDiscountCouponUnavailableRules.setDiscountCouponId(lifeDiscountCoupon.getId());
|
|
|
lifeDiscountCouponUnavailableRules.setUnavailableRuleType(DiscountCouponEnum.WEEKDAY_UNAVAILABLE.getValue());
|
|
|
- if(CollectionUtils.isNotEmpty(lifeDiscountCouponDto.getWeeklyDisabledList())) {
|
|
|
+ if (CollectionUtils.isNotEmpty(lifeDiscountCouponDto.getWeeklyDisabledList())) {
|
|
|
lifeDiscountCouponDto.getWeeklyDisabledList().forEach(weeklyDisabled -> {
|
|
|
lifeDiscountCouponUnavailableRules.setUnavailableRuleValue(weeklyDisabled);
|
|
|
lifeDiscountCouponUnavailableRulesMapper.insert(lifeDiscountCouponUnavailableRules);
|
|
|
@@ -118,7 +117,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
|
|
|
//节假日规则保存
|
|
|
lifeDiscountCouponUnavailableRules.setUnavailableRuleType(DiscountCouponEnum.HOLIDAY_UNAVAILABLE.getValue());
|
|
|
- if(CollectionUtils.isNotEmpty(lifeDiscountCouponDto.getHolidayDisabledList())){
|
|
|
+ if (CollectionUtils.isNotEmpty(lifeDiscountCouponDto.getHolidayDisabledList())) {
|
|
|
lifeDiscountCouponDto.getHolidayDisabledList().forEach(holidayDisabled -> {
|
|
|
lifeDiscountCouponUnavailableRules.setUnavailableRuleValue(holidayDisabled);
|
|
|
lifeDiscountCouponUnavailableRulesMapper.insert(lifeDiscountCouponUnavailableRules);
|
|
|
@@ -129,25 +128,25 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
lifeDiscountCouponUnavailableRules.setUnavailableRuleType(DiscountCouponEnum.CLAIM_RULE.getValue());
|
|
|
String claimRule = lifeDiscountCouponDto.getClaimRule();
|
|
|
//领取规则为自定义时,获取自定义数量
|
|
|
- if (claimRule != null && claimRule.equals(DiscountCouponEnum.CUSTOMIZE.getValue())){
|
|
|
+ if (claimRule != null && claimRule.equals(DiscountCouponEnum.CUSTOMIZE.getValue())) {
|
|
|
lifeDiscountCouponUnavailableRules.setCustomizeValue(lifeDiscountCouponDto.getClaimRuleCustomizeValue());
|
|
|
}
|
|
|
lifeDiscountCouponUnavailableRules.setUnavailableRuleValue(lifeDiscountCouponDto.getClaimRule());
|
|
|
lifeDiscountCouponUnavailableRulesMapper.insert(lifeDiscountCouponUnavailableRules);
|
|
|
|
|
|
//指定时间段可用规则
|
|
|
- List<LifeDiscountCouponQuantumRules> availableTimeQuantumList = lifeDiscountCouponDto.getAvailableTimeQuantum();
|
|
|
- if(CollectionUtils.isNotEmpty(availableTimeQuantumList)){
|
|
|
- availableTimeQuantumList.forEach(availableTimeQuantum->{
|
|
|
+ List<LifeDiscountCouponQuantumRules> availableTimeQuantumList = lifeDiscountCouponDto.getAvailableTimeQuantum();
|
|
|
+ if (CollectionUtils.isNotEmpty(availableTimeQuantumList)) {
|
|
|
+ availableTimeQuantumList.forEach(availableTimeQuantum -> {
|
|
|
availableTimeQuantum.setDiscountCouponId(lifeDiscountCoupon.getId());
|
|
|
});
|
|
|
lifeDiscountCouponQuantumRulesService.saveBatch(availableTimeQuantumList);
|
|
|
}
|
|
|
|
|
|
//自定义时间段不可用规则
|
|
|
- List<LifeDiscountCouponQuantumRules> customizeUnavailableTimeQuantumList = lifeDiscountCouponDto.getCustomizeUnavailableTimeQuantum();
|
|
|
- if(CollectionUtils.isNotEmpty(customizeUnavailableTimeQuantumList)) {
|
|
|
- customizeUnavailableTimeQuantumList.forEach(customizeUnavailableTimeQuantum->{
|
|
|
+ List<LifeDiscountCouponQuantumRules> customizeUnavailableTimeQuantumList = lifeDiscountCouponDto.getCustomizeUnavailableTimeQuantum();
|
|
|
+ if (CollectionUtils.isNotEmpty(customizeUnavailableTimeQuantumList)) {
|
|
|
+ customizeUnavailableTimeQuantumList.forEach(customizeUnavailableTimeQuantum -> {
|
|
|
customizeUnavailableTimeQuantum.setDiscountCouponId(lifeDiscountCoupon.getId());
|
|
|
});
|
|
|
lifeDiscountCouponQuantumRulesService.saveBatch(customizeUnavailableTimeQuantumList);
|
|
|
@@ -187,14 +186,12 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
|
|
|
// 设置有效期
|
|
|
String specifiedDay = lifeDiscountCouponDto.getSpecifiedDay();
|
|
|
- if(!StringUtils.isEmpty(specifiedDay)){
|
|
|
+ if (!StringUtils.isEmpty(specifiedDay)) {
|
|
|
int sDay = Integer.parseInt(specifiedDay);
|
|
|
- if(sDay > 0 && lifeDiscountCouponDto.getEndGetDate() != null) {
|
|
|
+ if (sDay > 0 && lifeDiscountCouponDto.getEndGetDate() != null) {
|
|
|
Date endGetDate = Date.from(lifeDiscountCouponDto.getEndGetDate().atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
Date validDate = addDaysToDateJava8(endGetDate, sDay);
|
|
|
- LocalDate validDateLocalDate = validDate.toInstant()
|
|
|
- .atZone(ZoneId.systemDefault())
|
|
|
- .toLocalDate();
|
|
|
+ LocalDate validDateLocalDate = validDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
lifeDiscountCoupon.setValidDate(validDateLocalDate);
|
|
|
}
|
|
|
}
|
|
|
@@ -210,7 +207,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
LifeDiscountCouponUnavailableRules lifeDiscountCouponUnavailableRules = new LifeDiscountCouponUnavailableRules();
|
|
|
lifeDiscountCouponUnavailableRules.setDiscountCouponId(lifeDiscountCoupon.getId());
|
|
|
lifeDiscountCouponUnavailableRules.setUnavailableRuleType(DiscountCouponEnum.WEEKDAY_UNAVAILABLE.getValue());
|
|
|
- if(CollectionUtils.isNotEmpty(lifeDiscountCouponDto.getWeeklyDisabledList())) {
|
|
|
+ if (CollectionUtils.isNotEmpty(lifeDiscountCouponDto.getWeeklyDisabledList())) {
|
|
|
lifeDiscountCouponDto.getWeeklyDisabledList().forEach(weeklyDisabled -> {
|
|
|
lifeDiscountCouponUnavailableRules.setUnavailableRuleValue(weeklyDisabled);
|
|
|
lifeDiscountCouponUnavailableRulesMapper.insert(lifeDiscountCouponUnavailableRules);
|
|
|
@@ -219,7 +216,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
|
|
|
//节假日规则保存
|
|
|
lifeDiscountCouponUnavailableRules.setUnavailableRuleType(DiscountCouponEnum.HOLIDAY_UNAVAILABLE.getValue());
|
|
|
- if(CollectionUtils.isNotEmpty(lifeDiscountCouponDto.getHolidayDisabledList())){
|
|
|
+ if (CollectionUtils.isNotEmpty(lifeDiscountCouponDto.getHolidayDisabledList())) {
|
|
|
lifeDiscountCouponDto.getHolidayDisabledList().forEach(holidayDisabled -> {
|
|
|
lifeDiscountCouponUnavailableRules.setUnavailableRuleValue(holidayDisabled);
|
|
|
lifeDiscountCouponUnavailableRulesMapper.insert(lifeDiscountCouponUnavailableRules);
|
|
|
@@ -237,17 +234,17 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
lifeDiscountCouponQuantumRulesMapper.delete(lifeDiscountCouponQuantumRulesLambdaQueryWrapper);
|
|
|
|
|
|
// 保存指定时间段可用规则
|
|
|
- List<LifeDiscountCouponQuantumRules> availableTimeQuantumList = lifeDiscountCouponDto.getAvailableTimeQuantum();
|
|
|
- if(CollectionUtils.isNotEmpty(availableTimeQuantumList)){
|
|
|
- availableTimeQuantumList.forEach(availableTimeQuantum->{
|
|
|
+ List<LifeDiscountCouponQuantumRules> availableTimeQuantumList = lifeDiscountCouponDto.getAvailableTimeQuantum();
|
|
|
+ if (CollectionUtils.isNotEmpty(availableTimeQuantumList)) {
|
|
|
+ availableTimeQuantumList.forEach(availableTimeQuantum -> {
|
|
|
availableTimeQuantum.setDiscountCouponId(lifeDiscountCoupon.getId());
|
|
|
});
|
|
|
lifeDiscountCouponQuantumRulesService.saveBatch(availableTimeQuantumList);
|
|
|
}
|
|
|
// 保存自定义时间段不可用规则
|
|
|
- List<LifeDiscountCouponQuantumRules> customizeUnavailableTimeQuantumList = lifeDiscountCouponDto.getCustomizeUnavailableTimeQuantum();
|
|
|
- if(CollectionUtils.isNotEmpty(customizeUnavailableTimeQuantumList)) {
|
|
|
- customizeUnavailableTimeQuantumList.forEach(customizeUnavailableTimeQuantum->{
|
|
|
+ List<LifeDiscountCouponQuantumRules> customizeUnavailableTimeQuantumList = lifeDiscountCouponDto.getCustomizeUnavailableTimeQuantum();
|
|
|
+ if (CollectionUtils.isNotEmpty(customizeUnavailableTimeQuantumList)) {
|
|
|
+ customizeUnavailableTimeQuantumList.forEach(customizeUnavailableTimeQuantum -> {
|
|
|
customizeUnavailableTimeQuantum.setDiscountCouponId(lifeDiscountCoupon.getId());
|
|
|
});
|
|
|
lifeDiscountCouponQuantumRulesService.saveBatch(customizeUnavailableTimeQuantumList);
|
|
|
@@ -265,23 +262,21 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
//删除优惠券表信息
|
|
|
lifeDiscountCouponMapper.deleteById(id);
|
|
|
//删除优惠券规则信息
|
|
|
- lifeDiscountCouponUnavailableRulesMapper.delete(new LambdaQueryWrapper<LifeDiscountCouponUnavailableRules>()
|
|
|
- .eq(LifeDiscountCouponUnavailableRules::getDiscountCouponId, id));
|
|
|
+ lifeDiscountCouponUnavailableRulesMapper.delete(new LambdaQueryWrapper<LifeDiscountCouponUnavailableRules>().eq(LifeDiscountCouponUnavailableRules::getDiscountCouponId, id));
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public boolean cutDiscountCouponStatus(String counponId) {
|
|
|
LifeDiscountCoupon lifeDiscountCoupon = lifeDiscountCouponMapper.selectById(counponId);
|
|
|
- if(lifeDiscountCoupon.getGetStatus() == Integer.parseInt(DiscountCouponEnum.NO_GET.getValue())){
|
|
|
+ if (lifeDiscountCoupon.getGetStatus() == Integer.parseInt(DiscountCouponEnum.NO_GET.getValue())) {
|
|
|
Date now = new Date();
|
|
|
Instant instant = now.toInstant();
|
|
|
ZoneId zoneId = ZoneId.systemDefault();
|
|
|
LocalDate localNow = instant.atZone(zoneId).toLocalDate();
|
|
|
lifeDiscountCoupon.setBeginGetDate(localNow);
|
|
|
}
|
|
|
- lifeDiscountCoupon.setGetStatus(lifeDiscountCoupon.getGetStatus() == Integer.parseInt(DiscountCouponEnum.NO_GET.getValue())
|
|
|
- ? Integer.parseInt(DiscountCouponEnum.CAN_GET.getValue()) : Integer.parseInt(DiscountCouponEnum.NO_GET.getValue()));
|
|
|
+ lifeDiscountCoupon.setGetStatus(lifeDiscountCoupon.getGetStatus() == Integer.parseInt(DiscountCouponEnum.NO_GET.getValue()) ? Integer.parseInt(DiscountCouponEnum.CAN_GET.getValue()) : Integer.parseInt(DiscountCouponEnum.NO_GET.getValue()));
|
|
|
lifeDiscountCouponMapper.updateById(lifeDiscountCoupon);
|
|
|
return true;
|
|
|
}
|
|
|
@@ -321,11 +316,11 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
List<LifeDiscountCouponQuantumRules> lifeDiscountCouponQuantumRulesList = lifeDiscountCouponQuantumRulesMapper.selectList(quantumRulesLambdaQueryWrapper);
|
|
|
List<LifeDiscountCouponQuantumRules> availableTimeQuantumList = new ArrayList<>();
|
|
|
List<LifeDiscountCouponQuantumRules> customizeUnavailableTimeQuantumList = new ArrayList<>();
|
|
|
- for(LifeDiscountCouponQuantumRules lifeDiscountCouponQuantumRules : lifeDiscountCouponQuantumRulesList) {
|
|
|
- if(lifeDiscountCouponQuantumRules.getTimeQuantumType().equals(DiscountCouponEnum.AVAILABLE_TIME_QUANTUM.getValue())) {
|
|
|
+ for (LifeDiscountCouponQuantumRules lifeDiscountCouponQuantumRules : lifeDiscountCouponQuantumRulesList) {
|
|
|
+ if (lifeDiscountCouponQuantumRules.getTimeQuantumType().equals(DiscountCouponEnum.AVAILABLE_TIME_QUANTUM.getValue())) {
|
|
|
availableTimeQuantumList.add(lifeDiscountCouponQuantumRules);
|
|
|
}
|
|
|
- if(lifeDiscountCouponQuantumRules.getTimeQuantumType().equals(DiscountCouponEnum.UNAVAILABLE_TIME_QUANTUM.getValue())) {
|
|
|
+ if (lifeDiscountCouponQuantumRules.getTimeQuantumType().equals(DiscountCouponEnum.UNAVAILABLE_TIME_QUANTUM.getValue())) {
|
|
|
customizeUnavailableTimeQuantumList.add(lifeDiscountCouponQuantumRules);
|
|
|
}
|
|
|
}
|
|
|
@@ -350,13 +345,8 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
public List<LifeDiscountCouponVo> getStoreUserCouponList(String storeId, UserLoginInfo userLoginInfo) {
|
|
|
List<LifeDiscountCouponVo> lifeDiscountCouponVos = new ArrayList<>();
|
|
|
//根据店铺id查询该店铺的优惠券,状态是开启领取的券
|
|
|
- List<LifeDiscountCoupon> lifeDiscountCoupons = lifeDiscountCouponMapper.selectList(
|
|
|
- new LambdaQueryWrapper<LifeDiscountCoupon>()
|
|
|
- .eq(LifeDiscountCoupon::getStoreId, storeId)
|
|
|
- .eq(LifeDiscountCoupon::getGetStatus, "1")
|
|
|
- .gt(LifeDiscountCoupon::getSingleQty, 0) //还有库存
|
|
|
- .ge(LifeDiscountCoupon::getEndGetDate, new Date())
|
|
|
- .orderByDesc(LifeDiscountCoupon::getCreatedTime));
|
|
|
+ List<LifeDiscountCoupon> lifeDiscountCoupons = lifeDiscountCouponMapper.selectList(new LambdaQueryWrapper<LifeDiscountCoupon>().eq(LifeDiscountCoupon::getStoreId, storeId).eq(LifeDiscountCoupon::getGetStatus, "1").gt(LifeDiscountCoupon::getSingleQty, 0) //还有库存
|
|
|
+ .ge(LifeDiscountCoupon::getEndGetDate, new Date()).orderByDesc(LifeDiscountCoupon::getCreatedTime));
|
|
|
//根据优惠券列表查询该优惠券是否领取过
|
|
|
for (LifeDiscountCoupon lifeDiscountCoupon : lifeDiscountCoupons) {
|
|
|
LifeDiscountCouponVo lifeDiscountCouponVo = new LifeDiscountCouponVo();
|
|
|
@@ -414,13 +404,11 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
lifeDiscountCouponVo.setExpirationTime(lifeDiscountCouponUser.getExpirationTime());
|
|
|
}
|
|
|
}
|
|
|
- if(!StringUtils.isEmpty(specifiedDay)){
|
|
|
+ if (!StringUtils.isEmpty(specifiedDay)) {
|
|
|
int sDay = Integer.parseInt(specifiedDay);
|
|
|
- if(sDay > 0 && receiveDay != null){
|
|
|
+ if (sDay > 0 && receiveDay != null) {
|
|
|
Date validDate = addDaysToDateJava8(receiveDay, sDay);
|
|
|
- LocalDate validDateLocalDate = validDate.toInstant()
|
|
|
- .atZone(ZoneId.systemDefault())
|
|
|
- .toLocalDate();
|
|
|
+ LocalDate validDateLocalDate = validDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
lifeDiscountCouponVo.setValidDate(validDateLocalDate);
|
|
|
} else {
|
|
|
lifeDiscountCouponVo.setValidDate(null);
|
|
|
@@ -541,13 +529,11 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
if (lifeDiscountCouponUnavailableRules.size() > 0) {
|
|
|
forbiddenRule += HOLIDAY_RULE_TITLE;
|
|
|
}
|
|
|
- List<String> holidCoupnDis = lifeDiscountCouponUnavailableRules.stream()
|
|
|
- .map(rule -> rule.getUnavailableRuleValue()).collect(Collectors.toList());
|
|
|
+ List<String> holidCoupnDis = lifeDiscountCouponUnavailableRules.stream().map(rule -> rule.getUnavailableRuleValue()).collect(Collectors.toList());
|
|
|
forbiddenRule += String.join(", ", holidCoupnDis);
|
|
|
for (LifeDiscountCouponUnavailableRules lifeDiscountCouponUnavailableRule : lifeDiscountCouponUnavailableRules) {
|
|
|
//如果当日为节假日,并且该券该节假日也禁用,则该券禁用
|
|
|
- if (StringUtils.isEmpty(festivalName)
|
|
|
- && festivalName.equals(lifeDiscountCouponUnavailableRule.getUnavailableRuleValue())) {
|
|
|
+ if (StringUtils.isEmpty(festivalName) && festivalName.equals(lifeDiscountCouponUnavailableRule.getUnavailableRuleValue())) {
|
|
|
lifeDiscountCouponVo.setDisabledStatus(false);
|
|
|
}
|
|
|
}
|
|
|
@@ -562,8 +548,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
if (weekLifeDiscountCouponUnavailableRules.size() > 0) {
|
|
|
forbiddenRule += WEEK_RULE_TITLE;
|
|
|
}
|
|
|
- List<String> weekCoupnDis = weekLifeDiscountCouponUnavailableRules.stream()
|
|
|
- .map(rule -> rule.getUnavailableRuleValue()).collect(Collectors.toList());
|
|
|
+ List<String> weekCoupnDis = weekLifeDiscountCouponUnavailableRules.stream().map(rule -> rule.getUnavailableRuleValue()).collect(Collectors.toList());
|
|
|
forbiddenRule += String.join(", ", weekCoupnDis);
|
|
|
for (LifeDiscountCouponUnavailableRules lifeDiscountCouponUnavailableRule : lifeDiscountCouponUnavailableRules) {
|
|
|
//该券该周中日也禁用,则该券禁用
|
|
|
@@ -636,10 +621,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
// 计算七日前的日期
|
|
|
LocalDateTime sevenDaysAgo = localNow.minusDays(7);
|
|
|
// 将七日前的时间设置为凌晨 0 点 0 分 0 秒 0 纳秒
|
|
|
- LocalDateTime sevenDaysAgoMidnight = sevenDaysAgo.withHour(0)
|
|
|
- .withMinute(0)
|
|
|
- .withSecond(0)
|
|
|
- .withNano(0);
|
|
|
+ LocalDateTime sevenDaysAgoMidnight = sevenDaysAgo.withHour(0).withMinute(0).withSecond(0).withNano(0);
|
|
|
//判断分页类型
|
|
|
if (tabType.equals(DiscountCouponEnum.ALL.getValue())) {
|
|
|
//如果已过期 过期日期大于今天
|
|
|
@@ -687,8 +669,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
return lifeDiscountCouponVos;
|
|
|
}
|
|
|
for (LifeDiscountCouponUser lifeDiscountCouponUser : lifeDiscountCouponUserIPage.getRecords()) {
|
|
|
- LifeDiscountCoupon lifeDiscountCouponOne = lifeDiscountCoupons.stream().filter(lifeDiscountCoupon ->
|
|
|
- lifeDiscountCoupon.getId().equals(lifeDiscountCouponUser.getCouponId())).collect(Collectors.toList()).get(0);
|
|
|
+ LifeDiscountCoupon lifeDiscountCouponOne = lifeDiscountCoupons.stream().filter(lifeDiscountCoupon -> lifeDiscountCoupon.getId().equals(lifeDiscountCouponUser.getCouponId())).collect(Collectors.toList()).get(0);
|
|
|
StoreInfo storeInfoOne = storeInfoList.stream().filter(storeInfo -> storeInfo.getId().toString().equals(lifeDiscountCouponOne.getStoreId())).collect(Collectors.toList()).get(0);
|
|
|
LifeDiscountCouponVo lifeDiscountCouponVo = new LifeDiscountCouponVo();
|
|
|
lifeDiscountCouponVo.setBusinessSection(storeInfoOne.getBusinessSection());
|
|
|
@@ -698,14 +679,12 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
lifeDiscountCouponVo.setExpirationTime(lifeDiscountCouponUser.getExpirationTime());
|
|
|
// 设置有效期
|
|
|
String specifiedDay = lifeDiscountCouponOne.getSpecifiedDay();
|
|
|
- if(!StringUtils.isEmpty(specifiedDay)){
|
|
|
+ if (!StringUtils.isEmpty(specifiedDay)) {
|
|
|
int sDay = Integer.parseInt(specifiedDay);
|
|
|
- if(sDay > 0){
|
|
|
+ if (sDay > 0) {
|
|
|
Date receiveDay = lifeDiscountCouponUser.getReceiveTime();
|
|
|
Date validDate = addDaysToDateJava8(receiveDay, sDay);
|
|
|
- LocalDate validDateLocalDate = validDate.toInstant()
|
|
|
- .atZone(ZoneId.systemDefault())
|
|
|
- .toLocalDate();
|
|
|
+ LocalDate validDateLocalDate = validDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
lifeDiscountCouponVo.setValidDate(validDateLocalDate);
|
|
|
}
|
|
|
}
|
|
|
@@ -770,7 +749,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
Instant instant = now.toInstant();
|
|
|
ZoneId zoneId = ZoneId.systemDefault();
|
|
|
LocalDate localNow = instant.atZone(zoneId).toLocalDate();
|
|
|
- if(!StringUtils.isEmpty(lifeDiscountCoupon.getBeginGetDate()) && !StringUtils.isEmpty(lifeDiscountCoupon.getEndGetDate())) {
|
|
|
+ if (!StringUtils.isEmpty(lifeDiscountCoupon.getBeginGetDate()) && !StringUtils.isEmpty(lifeDiscountCoupon.getEndGetDate())) {
|
|
|
int startResult = localNow.compareTo(lifeDiscountCoupon.getBeginGetDate());
|
|
|
int endResult = localNow.compareTo(lifeDiscountCoupon.getEndGetDate());
|
|
|
//如果当前时间小于开始时间
|
|
|
@@ -786,7 +765,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
lifeDiscountCouponVo.setStatus(Integer.parseInt(DiscountCouponEnum.UNDER_WAY.getValue()));
|
|
|
}
|
|
|
} else {
|
|
|
- if(lifeDiscountCoupon.getCouponStatus() == 0){
|
|
|
+ if (lifeDiscountCoupon.getCouponStatus() == 0) {
|
|
|
//如果为草稿则状态为未开始
|
|
|
lifeDiscountCouponVo.setStatus(Integer.parseInt(DiscountCouponEnum.HAVE_NOT_STARTED.getValue()));
|
|
|
} else {
|
|
|
@@ -850,7 +829,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
Instant instant = now.toInstant();
|
|
|
ZoneId zoneId = ZoneId.systemDefault();
|
|
|
LocalDate localNow = instant.atZone(zoneId).toLocalDate();
|
|
|
- if(!StringUtils.isEmpty(record.getBeginGetDate()) && !StringUtils.isEmpty(record.getEndGetDate())) {
|
|
|
+ if (!StringUtils.isEmpty(record.getBeginGetDate()) && !StringUtils.isEmpty(record.getEndGetDate())) {
|
|
|
int startResult = localNow.compareTo(record.getBeginGetDate());
|
|
|
int endResult = localNow.compareTo(record.getEndGetDate());
|
|
|
//如果当前时间小于开始时间
|
|
|
@@ -866,7 +845,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
record.setStatus(Integer.parseInt(DiscountCouponEnum.UNDER_WAY.getValue()));
|
|
|
}
|
|
|
} else {
|
|
|
- if(record.getCouponStatus() == 0){
|
|
|
+ if (record.getCouponStatus() == 0) {
|
|
|
//如果为草稿则状态为未开始
|
|
|
record.setStatus(Integer.parseInt(DiscountCouponEnum.HAVE_NOT_STARTED.getValue()));
|
|
|
} else {
|
|
|
@@ -899,13 +878,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
public List<LifeDiscountCouponVo> getStoreAllCouponListPaginateNot(String status, String storeId, UserLoginInfo userLoginInfo, int couponStatus) {
|
|
|
List<LifeDiscountCouponVo> lifeDiscountCouponVos = new ArrayList<>();
|
|
|
//根据店铺id查询该店铺的优惠券,状态是开启领取的券
|
|
|
- List<LifeDiscountCoupon> lifeDiscountCoupons = lifeDiscountCouponMapper.selectList(
|
|
|
- new LambdaQueryWrapper<LifeDiscountCoupon>()
|
|
|
- .eq(LifeDiscountCoupon::getStoreId, storeId)
|
|
|
- .eq(LifeDiscountCoupon::getCouponStatus, couponStatus)
|
|
|
- .ne(LifeDiscountCoupon::getSingleQty, 0)
|
|
|
- .orderByDesc(LifeDiscountCoupon::getCreatedTime)
|
|
|
- );
|
|
|
+ List<LifeDiscountCoupon> lifeDiscountCoupons = lifeDiscountCouponMapper.selectList(new LambdaQueryWrapper<LifeDiscountCoupon>().eq(LifeDiscountCoupon::getStoreId, storeId).eq(LifeDiscountCoupon::getCouponStatus, couponStatus).ne(LifeDiscountCoupon::getSingleQty, 0).orderByDesc(LifeDiscountCoupon::getCreatedTime));
|
|
|
for (LifeDiscountCoupon lifeDiscountCoupon : lifeDiscountCoupons) {
|
|
|
LifeDiscountCouponVo lifeDiscountCouponVo = new LifeDiscountCouponVo();
|
|
|
lifeDiscountCouponVo.setCouponId(lifeDiscountCoupon.getId());
|
|
|
@@ -916,7 +889,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
Instant instant = now.toInstant();
|
|
|
ZoneId zoneId = ZoneId.systemDefault();
|
|
|
LocalDate localNow = instant.atZone(zoneId).toLocalDate();
|
|
|
- if(!StringUtils.isEmpty(lifeDiscountCoupon.getBeginGetDate()) && !StringUtils.isEmpty(lifeDiscountCoupon.getEndGetDate())) {
|
|
|
+ if (!StringUtils.isEmpty(lifeDiscountCoupon.getBeginGetDate()) && !StringUtils.isEmpty(lifeDiscountCoupon.getEndGetDate())) {
|
|
|
int startResult = localNow.compareTo(lifeDiscountCoupon.getBeginGetDate());
|
|
|
int endResult = localNow.compareTo(lifeDiscountCoupon.getEndGetDate());
|
|
|
//如果当前时间小于开始时间
|
|
|
@@ -1016,13 +989,11 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
if (lifeDiscountCouponUnavailableRules.size() > 0) {
|
|
|
forbiddenRule += HOLIDAY_RULE_TITLE;
|
|
|
}
|
|
|
- List<String> holidCoupnDis = lifeDiscountCouponUnavailableRules.stream()
|
|
|
- .map(rule -> rule.getUnavailableRuleValue()).collect(Collectors.toList());
|
|
|
+ List<String> holidCoupnDis = lifeDiscountCouponUnavailableRules.stream().map(rule -> rule.getUnavailableRuleValue()).collect(Collectors.toList());
|
|
|
forbiddenRule += String.join(", ", holidCoupnDis);
|
|
|
for (LifeDiscountCouponUnavailableRules lifeDiscountCouponUnavailableRule : lifeDiscountCouponUnavailableRules) {
|
|
|
//如果当日为节假日,并且该券该节假日也禁用,则该券禁用
|
|
|
- if (StringUtils.isEmpty(festivalName)
|
|
|
- && festivalName.equals(lifeDiscountCouponUnavailableRule.getUnavailableRuleValue())) {
|
|
|
+ if (StringUtils.isEmpty(festivalName) && festivalName.equals(lifeDiscountCouponUnavailableRule.getUnavailableRuleValue())) {
|
|
|
lifeDiscountCouponVo.setDisabledStatus(false);
|
|
|
}
|
|
|
}
|
|
|
@@ -1037,8 +1008,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
if (weekLifeDiscountCouponUnavailableRules.size() > 0) {
|
|
|
forbiddenRule += WEEK_RULE_TITLE;
|
|
|
}
|
|
|
- List<String> weekCoupnDis = weekLifeDiscountCouponUnavailableRules.stream()
|
|
|
- .map(rule -> rule.getUnavailableRuleValue()).collect(Collectors.toList());
|
|
|
+ List<String> weekCoupnDis = weekLifeDiscountCouponUnavailableRules.stream().map(rule -> rule.getUnavailableRuleValue()).collect(Collectors.toList());
|
|
|
forbiddenRule += String.join(", ", weekCoupnDis);
|
|
|
for (LifeDiscountCouponUnavailableRules lifeDiscountCouponUnavailableRule : lifeDiscountCouponUnavailableRules) {
|
|
|
//该券该周中日也禁用,则该券禁用
|
|
|
@@ -1076,7 +1046,7 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
lifeCouponStatusVo.setCouponId(couponId);
|
|
|
lifeCouponStatusVo.setSingleQty(lifeDiscountCoupon.getSingleQty());
|
|
|
} else {
|
|
|
- // 可选:设置默认值或标记状态为无效
|
|
|
+ // 可选:设置默认值或标记状态为无效
|
|
|
lifeCouponStatusVo.setSingleQty(0); // 或其他默认逻辑
|
|
|
}
|
|
|
return lifeCouponStatusVo;
|
|
|
@@ -1086,43 +1056,119 @@ public class LifeDiscountCouponServiceImpl extends ServiceImpl<LifeDiscountCoupo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// private static final String API_URL = "https://date.nager.at/api/v3/PublicHolidays/{year}/{countryCode}";
|
|
|
-// private static final String COUNTRY_CODE = "CN";
|
|
|
-// public static void get() throws Exception {
|
|
|
-// String dateStr = "2025-01-29";
|
|
|
-// LocalDate currentDate = LocalDate.parse(dateStr);
|
|
|
-// System.out.println("转换后的 LocalDate: " + currentDate);
|
|
|
-// int year = currentDate.getYear();
|
|
|
-// RestTemplate restTemplate = new RestTemplate();
|
|
|
-// ResponseEntity<Holiday[]> response = restTemplate.getForEntity(
|
|
|
-// API_URL,
|
|
|
-// Holiday[].class,
|
|
|
-// year,
|
|
|
-// COUNTRY_CODE
|
|
|
-// );
|
|
|
-// List<Holiday> holidays = Arrays.asList(response.getBody());
|
|
|
-// for (Holiday holiday : holidays) {
|
|
|
-// System.out.println(holiday.getDate() + ":" + holiday.getName());
|
|
|
-// if (holiday.getDate().equals(currentDate.toString())) {
|
|
|
-// System.out.println(currentDate + " 是 " + holiday.getName());
|
|
|
-//// return;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// System.out.println(currentDate + " 不是指定的节假日");
|
|
|
-// }
|
|
|
-// public static class Holiday {
|
|
|
-// private String date;
|
|
|
-// private String name;
|
|
|
-// public String getDate() {
|
|
|
-// return date;
|
|
|
-// }
|
|
|
-// public String getName() {
|
|
|
-// return name;
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// public static void main(String[] args) throws Exception {
|
|
|
-// get();
|
|
|
-// }
|
|
|
+ /**
|
|
|
+ * 获取平台优惠券列表
|
|
|
+ *
|
|
|
+ * @param pageNum 分页页码
|
|
|
+ * @param pageSize 分页大小
|
|
|
+ * @param name 优惠券名称
|
|
|
+ * @param createDate 创建时间
|
|
|
+ * @param couponType 类型:(1:优惠券, 2:红包, 3:平台优惠券)
|
|
|
+ * @return IPage<LifeDiscountCoupon>
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public IPage<LifeDiscountCoupon> getPlatformCouponList(Integer pageNum, Integer pageSize, String name, String createDate, Integer couponType) {
|
|
|
+ IPage<LifeDiscountCoupon> iPage = new Page<>(pageNum, pageSize);
|
|
|
+ return lifeDiscountCouponMapper.selectPage(iPage, new LambdaQueryWrapper<LifeDiscountCoupon>()
|
|
|
+ .eq(LifeDiscountCoupon::getType, 3)
|
|
|
+ .like(!StringUtils.isEmpty(name), LifeDiscountCoupon::getName, name)
|
|
|
+ .between(!StringUtils.isEmpty(createDate), LifeDiscountCoupon::getCreatedTime, createDate + " 00:00:00", createDate + " 23:59:59"));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增平台优惠券
|
|
|
+ *
|
|
|
+ * @param lifeDiscountCoupon 优惠券实体
|
|
|
+ * @return boolean
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean addPlatformCoupon(LifeDiscountCoupon lifeDiscountCoupon) {
|
|
|
+ lifeDiscountCoupon.setType(3);
|
|
|
+ lifeDiscountCoupon.setGetStatus(1);
|
|
|
+ return this.save(lifeDiscountCoupon);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询平台优惠券详情
|
|
|
+ *
|
|
|
+ * @param id 柱间, 妈的就叫这个吧! 哈西辣妈!
|
|
|
+ * @return LifeDiscountCoupon
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public LifeDiscountCoupon getOnePlatformCoupon(Integer id) {
|
|
|
+ return this.getById(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发放平台优惠券
|
|
|
+ *
|
|
|
+ * @param userIds 用户主键List
|
|
|
+ * @param couponId 优惠券id
|
|
|
+ * @return boolean
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean issuePlatformCoupon(List<Integer> userIds, Integer couponId) {
|
|
|
+ LifeDiscountCoupon lifeDiscountCoupon = this.getById(couponId);
|
|
|
+ List<LifeDiscountCouponUser> lifeDiscountCouponUsers = new ArrayList<>();
|
|
|
+ for (Integer userId : userIds) {
|
|
|
+ LifeDiscountCouponUser lifeDiscountCouponUser = new LifeDiscountCouponUser();
|
|
|
+ lifeDiscountCouponUser.setUserId(userId);
|
|
|
+ lifeDiscountCouponUser.setCouponId(couponId);
|
|
|
+ lifeDiscountCouponUser.setReceiveTime(new Date());
|
|
|
+ lifeDiscountCouponUser.setExpirationTime(lifeDiscountCoupon.getEndDate());
|
|
|
+ lifeDiscountCouponUser.setStatus(0);
|
|
|
+ lifeDiscountCouponUser.setDeleteFlag(0);
|
|
|
+ lifeDiscountCouponUser.setCreatedTime(new Date());
|
|
|
+ lifeDiscountCouponUsers.add(lifeDiscountCouponUser);
|
|
|
+ }
|
|
|
+ return lifeDiscountCouponUserService.saveBatch(lifeDiscountCouponUsers);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 收回平台优惠券
|
|
|
+ *
|
|
|
+ * @param couponId 优惠券id
|
|
|
+ * @return boolean
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean recoverPlatformCoupon(Integer couponId) {
|
|
|
+ return lifeDiscountCouponUserService.remove(new LambdaQueryWrapper<LifeDiscountCouponUser>().eq(LifeDiscountCouponUser::getCouponId, couponId)) && this.updateById(new LifeDiscountCoupon().setId(couponId).setGetStatus(0));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除平台优惠券
|
|
|
+ *
|
|
|
+ * @param couponId 优惠券id
|
|
|
+ * @return boolean
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean deletePlatformCoupon(Integer couponId) {
|
|
|
+ int count = lifeDiscountCouponUserService.count(new LambdaQueryWrapper<LifeDiscountCouponUser>().eq(LifeDiscountCouponUser::getCouponId, couponId));
|
|
|
+ if (count > 0) {
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ return this.removeById(couponId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查询该券发放记录
|
|
|
+ *
|
|
|
+ * @param pageNum 分页页码
|
|
|
+ * @param pageSize 分页大小
|
|
|
+ * @param userName 用户名
|
|
|
+ * @param phone 手机号
|
|
|
+ * @param couponId 优惠券id
|
|
|
+ * @return IPage<LifeDiscountCouponUserWebVo>
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public IPage<LifeDiscountCouponUserWebVo> getPlatformCouponLogList(Integer pageNum, Integer pageSize, String userName, String phone, Integer couponId) {
|
|
|
+ IPage<LifeDiscountCouponUserWebVo> iPage = new Page<>(pageNum, pageSize);
|
|
|
+ return lifeDiscountCouponUserMapper.selectPageList(iPage, new QueryWrapper<LifeDiscountCouponUserWebVo>()
|
|
|
+ .eq(!StringUtils.isEmpty(couponId), "a.coupon_id", couponId)
|
|
|
+ .like(!StringUtils.isEmpty(userName), "b.real_name", userName)
|
|
|
+ .like(!StringUtils.isEmpty(phone), "b.user_phone", phone));
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|