You've already forked FrameTour-BE
refactor(order): 移除优惠券相关业务逻辑
- 删除 CouponBiz 类及其所有方法调用 - 移除 OrderBiz 中对优惠券使用的处理逻辑 - 清理 PriceBiz 中与优惠券查询相关的代码 - 移除 GoodsServiceImpl 中的优惠券查询功能 - 删除 OrderServiceImpl 中创建订单时的优惠券计算逻辑 - 移除多个类中对 CouponBiz 的依赖注入 - 清理与优惠券记录和折扣价格计算相关的冗余代码
This commit is contained in:
@@ -1,91 +0,0 @@
|
|||||||
package com.ycwl.basic.biz;
|
|
||||||
|
|
||||||
import com.ycwl.basic.mapper.CouponMapper;
|
|
||||||
import com.ycwl.basic.mapper.CouponRecordMapper;
|
|
||||||
import com.ycwl.basic.model.pc.coupon.entity.CouponEntity;
|
|
||||||
import com.ycwl.basic.model.pc.couponRecord.entity.CouponRecordEntity;
|
|
||||||
import com.ycwl.basic.model.pc.couponRecord.resp.CouponRecordQueryResp;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class CouponBiz {
|
|
||||||
@Autowired
|
|
||||||
private CouponMapper couponMapper;
|
|
||||||
@Autowired
|
|
||||||
private CouponRecordMapper couponRecordMapper;
|
|
||||||
|
|
||||||
public CouponRecordQueryResp queryUserCouponRecord(Long scenicId, Long memberId, Long faceId, String goodsId) {
|
|
||||||
CouponRecordQueryResp resp = new CouponRecordQueryResp();
|
|
||||||
List<CouponRecordEntity> recordList = couponRecordMapper.queryByUserWithGoodsId(scenicId, memberId, goodsId);
|
|
||||||
if (recordList != null && !recordList.isEmpty()) {
|
|
||||||
Optional<CouponRecordEntity> record = recordList.stream().filter(item -> item.getStatus() == 0).filter(item -> item.getFaceId() == null || item.getFaceId().equals(faceId)).findAny();
|
|
||||||
if (record.isPresent()) {
|
|
||||||
CouponRecordEntity recordEntity = record.get();
|
|
||||||
resp.setExist(true);
|
|
||||||
resp.setId(recordEntity.getId());
|
|
||||||
resp.setCouponId(recordEntity.getCouponId());
|
|
||||||
CouponEntity coupon = couponMapper.getById(recordEntity.getCouponId());
|
|
||||||
if (coupon != null) {
|
|
||||||
resp.setMemberId(recordEntity.getMemberId());
|
|
||||||
resp.setFaceId(recordEntity.getFaceId());
|
|
||||||
resp.setStatus(recordEntity.getStatus());
|
|
||||||
resp.setCreateTime(recordEntity.getCreateTime());
|
|
||||||
resp.setUsedTime(recordEntity.getUsedTime());
|
|
||||||
resp.setUsedOrderId(recordEntity.getUsedOrderId());
|
|
||||||
resp.setCoupon(coupon);
|
|
||||||
} else {
|
|
||||||
resp.setExist(false);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Optional<CouponRecordEntity> usedRecord = recordList.stream().filter(item -> item.getStatus() != 0).filter(item -> item.getFaceId() == null || item.getFaceId().equals(faceId)).findAny();
|
|
||||||
if (usedRecord.isPresent()) {
|
|
||||||
CouponRecordEntity recordEntity = usedRecord.get();
|
|
||||||
resp.setExist(true);
|
|
||||||
resp.setId(recordEntity.getId());
|
|
||||||
resp.setCouponId(recordEntity.getCouponId());
|
|
||||||
CouponEntity coupon = couponMapper.getById(recordEntity.getCouponId());
|
|
||||||
if (coupon != null) {
|
|
||||||
resp.setMemberId(recordEntity.getMemberId());
|
|
||||||
resp.setFaceId(recordEntity.getFaceId());
|
|
||||||
resp.setStatus(recordEntity.getStatus());
|
|
||||||
resp.setCreateTime(recordEntity.getCreateTime());
|
|
||||||
resp.setUsedTime(recordEntity.getUsedTime());
|
|
||||||
resp.setUsedOrderId(recordEntity.getUsedOrderId());
|
|
||||||
resp.setCoupon(coupon);
|
|
||||||
} else {
|
|
||||||
resp.setExist(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return resp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean userGetCoupon(Long memberId, Long faceId, Integer couponId) {
|
|
||||||
CouponEntity coupon = couponMapper.getById(couponId);
|
|
||||||
if (coupon == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
CouponRecordEntity entity = new CouponRecordEntity();
|
|
||||||
entity.setCouponId(couponId);
|
|
||||||
entity.setFaceId(faceId);
|
|
||||||
entity.setMemberId(memberId);
|
|
||||||
entity.setStatus(0);
|
|
||||||
entity.setCreateTime(new Date());
|
|
||||||
return couponRecordMapper.insert(entity) > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean userUseCoupon(Long memberId, Long faceId, Integer couponRecordId, Long orderId) {
|
|
||||||
CouponRecordEntity entity = new CouponRecordEntity();
|
|
||||||
entity.setId(couponRecordId);
|
|
||||||
entity.setStatus(1);
|
|
||||||
entity.setUsedTime(new Date());
|
|
||||||
entity.setUsedOrderId(orderId);
|
|
||||||
return couponRecordMapper.updateById(entity) > 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,23 +3,14 @@ package com.ycwl.basic.biz;
|
|||||||
import com.ycwl.basic.enums.StatisticEnum;
|
import com.ycwl.basic.enums.StatisticEnum;
|
||||||
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
||||||
import com.ycwl.basic.mapper.OrderMapper;
|
import com.ycwl.basic.mapper.OrderMapper;
|
||||||
import com.ycwl.basic.mapper.SourceMapper;
|
|
||||||
import com.ycwl.basic.mapper.StatisticsMapper;
|
import com.ycwl.basic.mapper.StatisticsMapper;
|
||||||
import com.ycwl.basic.mapper.VideoMapper;
|
|
||||||
import com.ycwl.basic.model.mobile.order.IsBuyBatchRespVO;
|
|
||||||
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
|
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
|
||||||
import com.ycwl.basic.model.mobile.order.PriceObj;
|
import com.ycwl.basic.model.mobile.order.PriceObj;
|
||||||
import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
|
import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
|
||||||
import com.ycwl.basic.model.pc.coupon.entity.CouponEntity;
|
|
||||||
import com.ycwl.basic.model.pc.couponRecord.resp.CouponRecordQueryResp;
|
|
||||||
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
||||||
import com.ycwl.basic.model.pc.order.entity.OrderEntity;
|
import com.ycwl.basic.model.pc.order.entity.OrderEntity;
|
||||||
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
|
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
|
||||||
import com.ycwl.basic.model.pc.order.resp.OrderAppRespVO;
|
|
||||||
import com.ycwl.basic.model.pc.order.resp.OrderItemVO;
|
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
||||||
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
|
||||||
import com.ycwl.basic.model.pc.task.entity.TaskEntity;
|
|
||||||
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
||||||
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
|
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
|
||||||
import com.ycwl.basic.pricing.dto.PriceCalculationRequest;
|
import com.ycwl.basic.pricing.dto.PriceCalculationRequest;
|
||||||
@@ -42,16 +33,12 @@ import org.springframework.stereotype.Component;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class OrderBiz {
|
public class OrderBiz {
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private VideoMapper videoMapper;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ScenicRepository scenicRepository;
|
private ScenicRepository scenicRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -69,16 +56,12 @@ public class OrderBiz {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private OrderMapper orderMapper;
|
private OrderMapper orderMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SourceMapper sourceMapper;
|
|
||||||
@Autowired
|
|
||||||
private ProfitSharingBiz profitSharingBiz;
|
private ProfitSharingBiz profitSharingBiz;
|
||||||
@Autowired
|
@Autowired
|
||||||
private VideoTaskRepository videoTaskRepository;
|
private VideoTaskRepository videoTaskRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private BrokerBiz brokerBiz;
|
private BrokerBiz brokerBiz;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CouponBiz couponBiz;
|
|
||||||
@Autowired
|
|
||||||
@Lazy
|
@Lazy
|
||||||
private PrinterService printerService;
|
private PrinterService printerService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -244,10 +227,6 @@ public class OrderBiz {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
orderRepository.clearOrderCache(orderId); // 更新完了,清理下
|
orderRepository.clearOrderCache(orderId); // 更新完了,清理下
|
||||||
Integer couponRecordId = order.getCouponRecordId();
|
|
||||||
if (couponRecordId != null) {
|
|
||||||
couponBiz.userUseCoupon(order.getMemberId(), order.getFaceId(), couponRecordId, orderId);
|
|
||||||
}
|
|
||||||
StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq();
|
StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq();
|
||||||
statisticsRecordAddReq.setMemberId(order.getMemberId());
|
statisticsRecordAddReq.setMemberId(order.getMemberId());
|
||||||
Long enterType = statisticsMapper.getUserRecentEnterType(order.getMemberId(), order.getCreateAt());
|
Long enterType = statisticsMapper.getUserRecentEnterType(order.getMemberId(), order.getCreateAt());
|
||||||
@@ -310,15 +289,4 @@ public class OrderBiz {
|
|||||||
profitSharingBiz.revokeProfitSharing(order.getScenicId(), orderId, "订单已退款");
|
profitSharingBiz.revokeProfitSharing(order.getScenicId(), orderId, "订单已退款");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 检查用户是否购买了指定商品,并额外校验订单的faceId是否匹配
|
|
||||||
* @param userId 用户ID
|
|
||||||
* @param faceId 人脸ID
|
|
||||||
* @param goodsType 商品类型
|
|
||||||
* @param goodsId 商品ID
|
|
||||||
* @return 是否已购买且faceId匹配
|
|
||||||
*/
|
|
||||||
public boolean checkUserBuyFaceItem(Long userId, Long faceId, int goodsType, Long goodsId) {
|
|
||||||
return orderRepository.checkUserBuyFaceItem(userId, faceId, goodsType, goodsId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import com.ycwl.basic.puzzle.entity.PuzzleTemplateEntity;
|
|||||||
import com.ycwl.basic.puzzle.mapper.PuzzleTemplateMapper;
|
import com.ycwl.basic.puzzle.mapper.PuzzleTemplateMapper;
|
||||||
import com.ycwl.basic.repository.FaceRepository;
|
import com.ycwl.basic.repository.FaceRepository;
|
||||||
import com.ycwl.basic.repository.MemberRelationRepository;
|
import com.ycwl.basic.repository.MemberRelationRepository;
|
||||||
|
import com.ycwl.basic.repository.OrderRepository;
|
||||||
import com.ycwl.basic.repository.PriceRepository;
|
import com.ycwl.basic.repository.PriceRepository;
|
||||||
import com.ycwl.basic.repository.ScenicRepository;
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
import com.ycwl.basic.repository.TemplateRepository;
|
import com.ycwl.basic.repository.TemplateRepository;
|
||||||
@@ -45,16 +46,13 @@ public class PriceBiz {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FaceRepository faceRepository;
|
private FaceRepository faceRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Lazy
|
|
||||||
private FaceService faceService;
|
|
||||||
@Autowired
|
|
||||||
private CouponBiz couponBiz;
|
|
||||||
@Autowired
|
|
||||||
private MemberRelationRepository memberRelationRepository;
|
private MemberRelationRepository memberRelationRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PuzzleTemplateMapper puzzleTemplateMapper;
|
private PuzzleTemplateMapper puzzleTemplateMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IProductTypeCapabilityManagementService productTypeCapabilityManagementService;
|
private IProductTypeCapabilityManagementService productTypeCapabilityManagementService;
|
||||||
|
@Autowired
|
||||||
|
private OrderRepository orderRepository;
|
||||||
|
|
||||||
public List<GoodsListRespVO> listGoodsByScenic(Long scenicId) {
|
public List<GoodsListRespVO> listGoodsByScenic(Long scenicId) {
|
||||||
List<GoodsListRespVO> goodsList = new ArrayList<>();
|
List<GoodsListRespVO> goodsList = new ArrayList<>();
|
||||||
@@ -231,30 +229,6 @@ public class PriceBiz {
|
|||||||
return respVO;
|
return respVO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (type) {
|
|
||||||
case 0: // 单个定价
|
|
||||||
CouponRecordQueryResp recordQueryResp = couponBiz.queryUserCouponRecord(scenicId, userId, faceId, goodsIds);
|
|
||||||
if (recordQueryResp.isUsable()) {
|
|
||||||
respVO.setCouponId(recordQueryResp.getCouponId());
|
|
||||||
respVO.setCouponRecordId(recordQueryResp.getId());
|
|
||||||
CouponEntity coupon = recordQueryResp.getCoupon();
|
|
||||||
if (coupon != null) {
|
|
||||||
respVO.setCouponPrice(coupon.calculateDiscountPrice(priceConfig.getPrice()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case -1:
|
|
||||||
CouponRecordQueryResp oneCouponRecordQueryResp = couponBiz.queryUserCouponRecord(scenicId, userId, faceId, "-1");
|
|
||||||
if (oneCouponRecordQueryResp.isUsable()) {
|
|
||||||
respVO.setCouponId(oneCouponRecordQueryResp.getCouponId());
|
|
||||||
respVO.setCouponRecordId(oneCouponRecordQueryResp.getId());
|
|
||||||
CouponEntity coupon = oneCouponRecordQueryResp.getCoupon();
|
|
||||||
if (coupon != null) {
|
|
||||||
respVO.setCouponPrice(coupon.calculateDiscountPrice(priceConfig.getPrice()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
respVO.setConfigId(priceConfig.getId());
|
respVO.setConfigId(priceConfig.getId());
|
||||||
respVO.setGoodsIds(goodsIds);
|
respVO.setGoodsIds(goodsIds);
|
||||||
respVO.setType(type);
|
respVO.setType(type);
|
||||||
@@ -283,7 +257,7 @@ public class PriceBiz {
|
|||||||
allContentsPurchased = false;
|
allContentsPurchased = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
boolean hasPurchasedTemplate = orderBiz.checkUserBuyFaceItem(userId, faceId, -1, videoEntities.getFirst().getVideoId());
|
boolean hasPurchasedTemplate = orderRepository.checkUserBuyFaceItem(userId, faceId, -1, videoEntities.getFirst().getVideoId());
|
||||||
if (!hasPurchasedTemplate) {
|
if (!hasPurchasedTemplate) {
|
||||||
allContentsPurchased = false;
|
allContentsPurchased = false;
|
||||||
break;
|
break;
|
||||||
@@ -295,7 +269,7 @@ public class PriceBiz {
|
|||||||
if (scenicConfig != null) {
|
if (scenicConfig != null) {
|
||||||
// 检查录像集
|
// 检查录像集
|
||||||
if (!Boolean.TRUE.equals(scenicConfig.getDisableSourceVideo())) {
|
if (!Boolean.TRUE.equals(scenicConfig.getDisableSourceVideo())) {
|
||||||
boolean hasPurchasedRecording = orderBiz.checkUserBuyFaceItem(userId, faceId, 1, faceId);
|
boolean hasPurchasedRecording = orderRepository.checkUserBuyFaceItem(userId, faceId, 1, faceId);
|
||||||
if (!hasPurchasedRecording) {
|
if (!hasPurchasedRecording) {
|
||||||
allContentsPurchased = false;
|
allContentsPurchased = false;
|
||||||
}
|
}
|
||||||
@@ -303,7 +277,7 @@ public class PriceBiz {
|
|||||||
|
|
||||||
// 检查照片集
|
// 检查照片集
|
||||||
if (allContentsPurchased && !Boolean.TRUE.equals(scenicConfig.getDisableSourceImage())) {
|
if (allContentsPurchased && !Boolean.TRUE.equals(scenicConfig.getDisableSourceImage())) {
|
||||||
boolean hasPurchasedPhoto = orderBiz.checkUserBuyFaceItem(userId, faceId, 2, faceId);
|
boolean hasPurchasedPhoto = orderRepository.checkUserBuyFaceItem(userId, faceId, 2, faceId);
|
||||||
if (!hasPurchasedPhoto) {
|
if (!hasPurchasedPhoto) {
|
||||||
allContentsPurchased = false;
|
allContentsPurchased = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
|||||||
import com.ycwl.basic.repository.MemberRelationRepository;
|
import com.ycwl.basic.repository.MemberRelationRepository;
|
||||||
import com.ycwl.basic.repository.OrderRepository;
|
import com.ycwl.basic.repository.OrderRepository;
|
||||||
import com.ycwl.basic.utils.JacksonUtil;
|
import com.ycwl.basic.utils.JacksonUtil;
|
||||||
import com.ycwl.basic.biz.CouponBiz;
|
|
||||||
import com.ycwl.basic.biz.OrderBiz;
|
import com.ycwl.basic.biz.OrderBiz;
|
||||||
import com.ycwl.basic.constant.StorageConstant;
|
import com.ycwl.basic.constant.StorageConstant;
|
||||||
import com.ycwl.basic.image.watermark.ImageWatermarkFactory;
|
import com.ycwl.basic.image.watermark.ImageWatermarkFactory;
|
||||||
@@ -99,8 +98,6 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private DeviceRepository deviceRepository;
|
private DeviceRepository deviceRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CouponBiz couponBiz;
|
|
||||||
@Autowired
|
|
||||||
private VideoUpdateConfig videoUpdateConfig;
|
private VideoUpdateConfig videoUpdateConfig;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemberRelationRepository memberRelationRepository;
|
private MemberRelationRepository memberRelationRepository;
|
||||||
@@ -248,15 +245,6 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
goodsDetailVO.setShotTime(videoTaskRepository.getTaskShotDate(video.getTaskId()));
|
goodsDetailVO.setShotTime(videoTaskRepository.getTaskShotDate(video.getTaskId()));
|
||||||
goodsDetailVO.setLensNum(videoTaskRepository.getTaskLensNum(video.getTaskId()));
|
goodsDetailVO.setLensNum(videoTaskRepository.getTaskLensNum(video.getTaskId()));
|
||||||
goodsDetailVO.setDevicesNum(videoTaskRepository.getTaskDeviceNum(video.getTaskId()));
|
goodsDetailVO.setDevicesNum(videoTaskRepository.getTaskDeviceNum(video.getTaskId()));
|
||||||
CouponRecordQueryResp couponRecord = couponBiz.queryUserCouponRecord(video.getScenicId(), userId, video.getFaceId(), video.getTemplateId().toString());
|
|
||||||
if (couponRecord != null) {
|
|
||||||
if (couponRecord.isUsable()) {
|
|
||||||
goodsDetailVO.setCouponId(couponRecord.getCouponId());
|
|
||||||
goodsDetailVO.setCouponRecordId(couponRecord.getId());
|
|
||||||
goodsDetailVO.setCouponPrice(couponRecord.getCoupon().calculateDiscountPrice(goodsDetailVO.getOrigPrice()));
|
|
||||||
goodsDetailVO.setPrice(couponRecord.getCoupon().calculateDiscountedPrice(goodsDetailVO.getPrice()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ApiResponse.success(goodsDetailVO);
|
return ApiResponse.success(goodsDetailVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -480,7 +480,7 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
contentPageVO.setLockType(1);
|
contentPageVO.setLockType(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean buy = orderBiz.checkUserBuyFaceItem(userId, faceId, contentPageVO.getGoodsType(), contentPageVO.getContentId());
|
boolean buy = orderRepository.checkUserBuyFaceItem(userId, faceId, contentPageVO.getGoodsType(), contentPageVO.getContentId());
|
||||||
if (buy) {
|
if (buy) {
|
||||||
contentPageVO.setIsBuy(1);
|
contentPageVO.setIsBuy(1);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import com.ycwl.basic.pricing.service.ICouponService;
|
|||||||
import com.ycwl.basic.pricing.service.IVoucherService;
|
import com.ycwl.basic.pricing.service.IVoucherService;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.ycwl.basic.biz.CouponBiz;
|
|
||||||
import com.ycwl.basic.biz.OrderBiz;
|
import com.ycwl.basic.biz.OrderBiz;
|
||||||
import com.ycwl.basic.biz.PriceBiz;
|
import com.ycwl.basic.biz.PriceBiz;
|
||||||
import com.ycwl.basic.constant.BaseContextHandler;
|
import com.ycwl.basic.constant.BaseContextHandler;
|
||||||
@@ -122,12 +121,8 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FaceRepository faceRepository;
|
private FaceRepository faceRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CouponBiz couponBiz;
|
|
||||||
@Autowired
|
|
||||||
private TemplateRepository templateRepository;
|
private TemplateRepository templateRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TaskTaskServiceImpl taskTaskService;
|
|
||||||
@Autowired
|
|
||||||
private PrinterMapper printerMapper;
|
private PrinterMapper printerMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ScenicService scenicService;
|
private ScenicService scenicService;
|
||||||
@@ -786,45 +781,6 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
order.setStatus(OrderStateEnum.UNPAID.getState());
|
order.setStatus(OrderStateEnum.UNPAID.getState());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 只有新订单才计算优惠券,避免重复处理
|
|
||||||
if (!haveOldOrder) {
|
|
||||||
// coupon
|
|
||||||
CouponRecordQueryResp couponRecord = null;
|
|
||||||
switch (createOrderReqVO.getGoodsType()) {
|
|
||||||
case 0: // vlog
|
|
||||||
VideoEntity video = videoRepository.getVideo(createOrderReqVO.getGoodsId());
|
|
||||||
if (video != null && video.getTemplateId() != null) {
|
|
||||||
couponRecord = couponBiz.queryUserCouponRecord(order.getScenicId(), userId, order.getFaceId(), video.getTemplateId().toString());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
case 2:
|
|
||||||
couponRecord = couponBiz.queryUserCouponRecord(order.getScenicId(), userId, order.getFaceId(), String.valueOf(createOrderReqVO.getGoodsType()));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
order.setCouponPrice(BigDecimal.ZERO);
|
|
||||||
order.setCouponRecordId(null);
|
|
||||||
order.setCouponId(null);
|
|
||||||
if (couponRecord != null) {
|
|
||||||
if (couponRecord.isUsable()) {
|
|
||||||
log.info("优惠券可用,优惠券记录ID:{},优惠券ID:{}", couponRecord.getId(), couponRecord.getCouponId());
|
|
||||||
order.setCouponId(couponRecord.getCouponId());
|
|
||||||
order.setCouponRecordId(couponRecord.getId());
|
|
||||||
order.setCouponPrice(couponRecord.getCoupon().calculateDiscountPrice(order.getPrice()));
|
|
||||||
order.setPayPrice(order.getPayPrice().subtract(order.getCouponPrice()));
|
|
||||||
if (order.getPayPrice().compareTo(BigDecimal.ZERO) < NumberConstant.ZERO) {
|
|
||||||
// 至少需要支付0.01
|
|
||||||
order.setPayPrice(BigDecimal.valueOf(0.01));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
log.info("优惠券不可用,优惠券记录ID:{},优惠券ID:{}", couponRecord.getId(), couponRecord.getCouponId());
|
|
||||||
order.setCouponId(null);
|
|
||||||
order.setCouponRecordId(null);
|
|
||||||
order.setCouponPrice(BigDecimal.ZERO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
List<OrderItemEntity> orderItems = new ArrayList<>();
|
List<OrderItemEntity> orderItems = new ArrayList<>();
|
||||||
OrderItemEntity orderItem = new OrderItemEntity();
|
OrderItemEntity orderItem = new OrderItemEntity();
|
||||||
orderItem.setGoodsId(createOrderReqVO.getGoodsId());
|
orderItem.setGoodsId(createOrderReqVO.getGoodsId());
|
||||||
|
|||||||
Reference in New Issue
Block a user