|
|
@@ -10,6 +10,7 @@ import com.yonge.cooleshow.biz.dal.entity.CouponInventory;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.CouponIssue;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.SysUser;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.MK;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.coupon.CouponInventoryEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.coupon.CouponValidTypeEnum;
|
|
|
@@ -37,7 +38,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
-import java.util.Optional;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -106,8 +106,7 @@ public class CouponInfoServiceImp extends ServiceImpl<CouponInfoMapper, CouponIn
|
|
|
for (CouponInfoWrapper item : wrappers) {
|
|
|
|
|
|
if (CouponValidTypeEnum.TIME_PERIOD == item.getValidType()
|
|
|
- && Optional.ofNullable(item.getEndTime()).orElse(0L) > 0
|
|
|
- && DateTime.now().getMillis() > item.getEndTime()) {
|
|
|
+ && Integer.parseInt(DateTime.now().toString(MK.YYYYMMDD)) > Integer.parseInt(new DateTime(item.getEndTime()).toString(MK.YYYYMMDD))) {
|
|
|
|
|
|
updateIds.add(item.getId());
|
|
|
// 更新显示状态为禁用
|
|
|
@@ -159,11 +158,12 @@ public class CouponInfoServiceImp extends ServiceImpl<CouponInfoMapper, CouponIn
|
|
|
* 新增或更新优惠券信息
|
|
|
*
|
|
|
* @param couponInfo CouponInfo
|
|
|
+ * @param stateUpdate 更新标识
|
|
|
* @return CouponInfo
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public CouponInfo saveOrUpdateCouponInfo(CouponInfo couponInfo) {
|
|
|
+ public CouponInfo saveOrUpdateCouponInfo(CouponInfo couponInfo, Boolean stateUpdate) {
|
|
|
|
|
|
if (Objects.isNull(couponInfo.getId())) {
|
|
|
|
|
|
@@ -191,40 +191,51 @@ public class CouponInfoServiceImp extends ServiceImpl<CouponInfoMapper, CouponIn
|
|
|
throw new BizException("无效的优惠券ID");
|
|
|
}
|
|
|
|
|
|
- // 优惠券已过期
|
|
|
- if (CouponValidTypeEnum.TIME_PERIOD == info.getValidType()
|
|
|
- && Optional.ofNullable(info.getEndTime()).orElse(0L) > 0
|
|
|
- && DateTime.now().getMillis() > info.getEndTime()) {
|
|
|
+ if (stateUpdate) {
|
|
|
|
|
|
- throw new BizException("已过期优惠券不允许修改");
|
|
|
- }
|
|
|
+ // 优惠券状态更新
|
|
|
+ if (EStatus.ENABLE.match(couponInfo.getStatus())
|
|
|
+ && CouponValidTypeEnum.TIME_PERIOD == info.getValidType()
|
|
|
+ && Integer.parseInt(DateTime.now().toString(MK.YYYYMMDD)) > Integer.parseInt(new DateTime(info.getEndTime()).toString(MK.YYYYMMDD))) {
|
|
|
+ throw new BizException("已过期优惠券不允许修改");
|
|
|
+ }
|
|
|
|
|
|
- // 优惠券未过期,已发放不允许修复
|
|
|
- List<Long> couponIds = Lists.newArrayList(couponInfo.getId());
|
|
|
-
|
|
|
- int ret = 0;
|
|
|
- // 查询优惠券发放人数
|
|
|
- ret += getBaseMapper().selectCouponIssueStatInfo(couponIds,
|
|
|
- CouponInfoQuery.IssueStatQuery.builder()
|
|
|
- .excludeUseState(Lists.newArrayList(CouponUseStateEnum.WITHDRAW)).build()).stream()
|
|
|
- .mapToInt(StatGroupWrapper::getTotal).sum();
|
|
|
- if (ret > 0) {
|
|
|
- throw new BizException("已发放优惠券不允许修改");
|
|
|
- }
|
|
|
+ } else {
|
|
|
|
|
|
- // 关联奖品数
|
|
|
- ret += getBaseMapper().selectActivityCouponStatInfo(couponIds).stream()
|
|
|
- .mapToInt(StatGroupWrapper::getTotal).sum();
|
|
|
+ // 优惠券已过期
|
|
|
+ if (CouponValidTypeEnum.TIME_PERIOD == info.getValidType()
|
|
|
+ && Integer.parseInt(DateTime.now().toString(MK.YYYYMMDD)) > Integer.parseInt(new DateTime(info.getEndTime()).toString(MK.YYYYMMDD))) {
|
|
|
|
|
|
- if (ret > 0) {
|
|
|
- throw new BizException("已关联奖品优惠券不允许修改");
|
|
|
- }
|
|
|
+ throw new BizException("已过期优惠券不允许修改");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 优惠券未过期,已发放不允许修复
|
|
|
+ List<Long> couponIds = Lists.newArrayList(info.getId());
|
|
|
+
|
|
|
+ int ret = 0;
|
|
|
+ // 查询优惠券发放人数
|
|
|
+ ret += getBaseMapper().selectCouponIssueStatInfo(couponIds,
|
|
|
+ CouponInfoQuery.IssueStatQuery.builder()
|
|
|
+ .excludeUseState(Lists.newArrayList(CouponUseStateEnum.WITHDRAW)).build()).stream()
|
|
|
+ .mapToInt(StatGroupWrapper::getTotal).sum();
|
|
|
+ if (ret > 0) {
|
|
|
+ throw new BizException("已发放优惠券不允许修改");
|
|
|
+ }
|
|
|
|
|
|
- // 启用状态不允许修改
|
|
|
- if (Objects.isNull(couponInfo.getStatus())
|
|
|
- && EStatus.ENABLE.match(info.getStatus())) {
|
|
|
+ // 关联奖品数
|
|
|
+ ret += getBaseMapper().selectActivityCouponStatInfo(couponIds).stream()
|
|
|
+ .mapToInt(StatGroupWrapper::getTotal).sum();
|
|
|
+
|
|
|
+ if (ret > 0) {
|
|
|
+ throw new BizException("已关联奖品优惠券不允许修改");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 启用状态不允许修改
|
|
|
+ if (EStatus.ENABLE.match(info.getStatus())) {
|
|
|
+
|
|
|
+ throw new BizException("已启用优惠券不允许修改");
|
|
|
+ }
|
|
|
|
|
|
- throw new BizException("已启用优惠券不允许修改");
|
|
|
}
|
|
|
|
|
|
// 更新优惠券
|
|
|
@@ -270,11 +281,6 @@ public class CouponInfoServiceImp extends ServiceImpl<CouponInfoMapper, CouponIn
|
|
|
.couponInfos(Lists.newArrayList())
|
|
|
.build();
|
|
|
|
|
|
- if (CollectionUtils.isEmpty(query.getIssueIds())) {
|
|
|
- // 直接返回默认数据
|
|
|
- return wrapper;
|
|
|
- }
|
|
|
-
|
|
|
// 查询用户订单优惠券信息
|
|
|
List<CouponOrderWrapper.CouponInfo> couponInfos = getBaseMapper().selectUserOrderCouponInfo(userId, query);
|
|
|
|