You've already forked FrameTour-BE
feat(goods): 优化商品详情购买状态判断逻辑
- 引入OrderRepository依赖以支持新的购买状态查询 - 替换原有的视频购买状态判断逻辑,使用更准确的checkUserBuyFaceItem方法 - 增加对模板ID的购买状态检查,提高判断准确性 - 简化价格查询前的条件判断流程 - 移除冗余的实体查询和复杂的嵌套判断逻辑 - 保持原有价格展示逻辑不变,确保前端显示一致
This commit is contained in:
@@ -6,6 +6,7 @@ import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
|||||||
import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2DTO;
|
import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2DTO;
|
||||||
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
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.utils.JacksonUtil;
|
import com.ycwl.basic.utils.JacksonUtil;
|
||||||
import com.ycwl.basic.biz.CouponBiz;
|
import com.ycwl.basic.biz.CouponBiz;
|
||||||
import com.ycwl.basic.biz.OrderBiz;
|
import com.ycwl.basic.biz.OrderBiz;
|
||||||
@@ -106,6 +107,8 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
private MemberRelationRepository memberRelationRepository;
|
private MemberRelationRepository memberRelationRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PrinterMapper printerMapper;
|
private PrinterMapper printerMapper;
|
||||||
|
@Autowired
|
||||||
|
private OrderRepository orderRepository;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<GoodsDetailVO> sourceGoodsList(GoodsReqQuery query) {
|
public List<GoodsDetailVO> sourceGoodsList(GoodsReqQuery query) {
|
||||||
@@ -220,31 +223,25 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
goodsDetailVO.setShare(true);
|
goodsDetailVO.setShare(true);
|
||||||
goodsDetailVO.setPrice("未登录");
|
goodsDetailVO.setPrice("未登录");
|
||||||
} else {
|
} else {
|
||||||
MemberVideoEntity entity = videoMapper.queryUserVideo(userId, videoId);
|
VideoEntity entity = videoMapper.getEntity(videoId);
|
||||||
if (entity == null) {
|
TaskEntity taskEntity = videoTaskRepository.getTaskById(entity.getTaskId());
|
||||||
goodsDetailVO.setIsBuy(0);
|
goodsDetailVO.setFaceId(taskEntity.getFaceId());
|
||||||
goodsDetailVO.setShare(true);
|
boolean isBuy = orderRepository.checkUserBuyFaceItem(userId, taskEntity.getFaceId(), 0, videoId);
|
||||||
goodsDetailVO.setPrice("未登录");
|
if (!isBuy) {
|
||||||
} else {
|
isBuy = orderRepository.checkUserBuyFaceItem(userId, taskEntity.getFaceId(), -1, taskEntity.getTemplateId());
|
||||||
goodsDetailVO.setShare(false);
|
}
|
||||||
goodsDetailVO.setFaceId(entity.getFaceId());
|
if (!isBuy) {
|
||||||
goodsDetailVO.setIsBuy(entity.getIsBuy());
|
PriceObj priceObj = orderBiz.queryPrice(videoRespVO.getScenicId(), 0, videoId);
|
||||||
if (Integer.valueOf(0).equals(entity.getIsBuy())) {
|
if (priceObj.isFree()) {
|
||||||
IsBuyRespVO buy = orderBiz.isBuy(videoRespVO.getScenicId(), userId, entity.getFaceId(), 0, videoId);
|
goodsDetailVO.setIsBuy(1);
|
||||||
if (!buy.isBuy()) {
|
} else {
|
||||||
PriceObj priceObj = orderBiz.queryPrice(videoRespVO.getScenicId(), 0, videoId);
|
goodsDetailVO.setIsBuy(0);
|
||||||
if (priceObj.isFree()) {
|
goodsDetailVO.setPrice(priceObj.getPrice().toString());
|
||||||
goodsDetailVO.setIsBuy(1);
|
goodsDetailVO.setOrigPrice(priceObj.getPrice());
|
||||||
} else {
|
goodsDetailVO.setSlashPrice(priceObj.getSlashPrice());
|
||||||
goodsDetailVO.setIsBuy(0);
|
|
||||||
goodsDetailVO.setPrice(priceObj.getPrice().toString());
|
|
||||||
goodsDetailVO.setOrigPrice(priceObj.getPrice());
|
|
||||||
goodsDetailVO.setSlashPrice(priceObj.getSlashPrice());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
goodsDetailVO.setIsBuy(1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
goodsDetailVO.setIsBuy(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
TaskEntity task = videoTaskRepository.getTaskById(videoRespVO.getTaskId());
|
TaskEntity task = videoTaskRepository.getTaskById(videoRespVO.getTaskId());
|
||||||
|
|||||||
Reference in New Issue
Block a user