一口价避免买到别人的东西(不展示)

This commit is contained in:
Jerry Yan 2025-03-17 10:13:36 +08:00
parent aa4048ad26
commit 072a1a6131
3 changed files with 32 additions and 9 deletions

View File

@ -2,11 +2,13 @@ package com.ycwl.basic.biz;
import com.ycwl.basic.model.mobile.order.IsBuyBatchRespVO; 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.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.price.entity.PriceConfigEntity; import com.ycwl.basic.model.pc.price.entity.PriceConfigEntity;
import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO; import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO; import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
import com.ycwl.basic.repository.FaceRepository;
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;
@ -30,6 +32,8 @@ public class PriceBiz {
private PriceRepository priceRepository; private PriceRepository priceRepository;
@Autowired @Autowired
private OrderBiz orderBiz; private OrderBiz orderBiz;
@Autowired
private FaceRepository faceRepository;
public List<GoodsListRespVO> listGoodsByScenic(Long scenicId) { public List<GoodsListRespVO> listGoodsByScenic(Long scenicId) {
List<GoodsListRespVO> goodsList = new ArrayList<>(); List<GoodsListRespVO> goodsList = new ArrayList<>();
@ -73,12 +77,16 @@ public class PriceBiz {
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
public IsBuyBatchRespVO isBuy(Long userId, Long scenicId, Integer type, String goodsIds) { public IsBuyBatchRespVO isBuy(Long userId, Long faceId, Long scenicId, Integer type, String goodsIds) {
IsBuyBatchRespVO respVO = new IsBuyBatchRespVO(); IsBuyBatchRespVO respVO = new IsBuyBatchRespVO();
PriceConfigEntity priceConfig = priceRepository.getPriceConfigByScenicTypeGoods(scenicId, type, goodsIds); PriceConfigEntity priceConfig = priceRepository.getPriceConfigByScenicTypeGoods(scenicId, type, goodsIds);
if (priceConfig == null) { if (priceConfig == null) {
return null; return null;
} }
FaceEntity face = faceRepository.getFace(faceId);
if (face != null && !face.getMemberId().equals(userId)) {
return null;
}
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId); ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
if (scenicConfig != null) { if (scenicConfig != null) {
if (Integer.valueOf(1).equals(scenicConfig.getAllFree())) { if (Integer.valueOf(1).equals(scenicConfig.getAllFree())) {

View File

@ -4,12 +4,14 @@ import com.github.pagehelper.PageInfo;
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;
import com.ycwl.basic.mapper.FaceMapper;
import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq;
import com.ycwl.basic.model.mobile.order.IsBuyBatchRespVO; 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.OrderAppPageReq; import com.ycwl.basic.model.mobile.order.OrderAppPageReq;
import com.ycwl.basic.model.mobile.order.RefundOrderReq; import com.ycwl.basic.model.mobile.order.RefundOrderReq;
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
import com.ycwl.basic.model.pc.order.req.CreateBatchOrderReqVO; import com.ycwl.basic.model.pc.order.req.CreateBatchOrderReqVO;
import com.ycwl.basic.model.pc.order.req.CreateOrderReqVO; import com.ycwl.basic.model.pc.order.req.CreateOrderReqVO;
import com.ycwl.basic.model.pc.order.req.OrderAddReq; import com.ycwl.basic.model.pc.order.req.OrderAddReq;
@ -41,6 +43,8 @@ public class AppOrderController {
private OrderBiz orderBiz; private OrderBiz orderBiz;
@Autowired @Autowired
private PriceBiz priceBiz; private PriceBiz priceBiz;
@Autowired
private FaceMapper faceMapper;
@ApiOperation("用户端订单列表查询") @ApiOperation("用户端订单列表查询")
@PostMapping("/page") @PostMapping("/page")
@ -93,9 +97,13 @@ public class AppOrderController {
} }
@GetMapping("/scenic/{scenicId}/queryBatchPrice") @GetMapping("/scenic/{scenicId}/queryBatchPrice")
public ApiResponse<IsBuyBatchRespVO> queryPrice(@PathVariable("scenicId") Long scenicId, @RequestParam("type") Integer type, @RequestParam(value = "goodsIds", required = false) String goodsIds) { public ApiResponse<IsBuyBatchRespVO> queryPrice(@PathVariable("scenicId") Long scenicId, @RequestParam("type") Integer type, @RequestParam(value = "faceId", required = false) Long faceId, @RequestParam(value = "goodsIds", required = false) String goodsIds) {
Long userId = Long.parseLong(BaseContextHandler.getUserId()); Long userId = Long.parseLong(BaseContextHandler.getUserId());
IsBuyBatchRespVO buy = priceBiz.isBuy(userId, scenicId, type, goodsIds); if (faceId == null) {
FaceRespVO lastFaceByUserId = faceMapper.findLastFaceByUserId(BaseContextHandler.getUserId());
faceId = lastFaceByUserId.getId();
}
IsBuyBatchRespVO buy = priceBiz.isBuy(userId, faceId, scenicId, type, goodsIds);
if (buy == null) { if (buy == null) {
return ApiResponse.fail("该套餐暂未开放购买"); return ApiResponse.fail("该套餐暂未开放购买");
} }

View File

@ -14,6 +14,7 @@ import com.ycwl.basic.model.mobile.order.OrderAppPageReq;
import com.ycwl.basic.model.mobile.order.PriceObj; import com.ycwl.basic.model.mobile.order.PriceObj;
import com.ycwl.basic.model.mobile.order.RefundOrderReq; import com.ycwl.basic.model.mobile.order.RefundOrderReq;
import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq; import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
import com.ycwl.basic.model.pc.member.resp.MemberRespVO; import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
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;
@ -33,6 +34,7 @@ import com.ycwl.basic.model.pc.video.entity.VideoEntity;
import com.ycwl.basic.model.pc.video.resp.VideoRespVO; import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
import com.ycwl.basic.model.wx.WXPayOrderReqVO; import com.ycwl.basic.model.wx.WXPayOrderReqVO;
import com.ycwl.basic.model.wx.WxPayRespVO; import com.ycwl.basic.model.wx.WxPayRespVO;
import com.ycwl.basic.repository.FaceRepository;
import com.ycwl.basic.repository.PriceRepository; import com.ycwl.basic.repository.PriceRepository;
import com.ycwl.basic.repository.VideoRepository; import com.ycwl.basic.repository.VideoRepository;
import com.ycwl.basic.repository.VideoTaskRepository; import com.ycwl.basic.repository.VideoTaskRepository;
@ -67,8 +69,6 @@ public class OrderServiceImpl implements OrderService {
@Autowired @Autowired
private OrderMapper orderMapper; private OrderMapper orderMapper;
@Autowired @Autowired
private VideoMapper videoMapper;
@Autowired
private SourceMapper sourceMapper; private SourceMapper sourceMapper;
@Autowired @Autowired
private WxPayService wxPayService; private WxPayService wxPayService;
@ -78,12 +78,8 @@ public class OrderServiceImpl implements OrderService {
@Autowired @Autowired
private OrderOperationMapper orderOperationMapper; private OrderOperationMapper orderOperationMapper;
@Autowired @Autowired
private StatisticsMapper statisticsMapper;
@Autowired
private OrderBiz orderBiz; private OrderBiz orderBiz;
@Autowired @Autowired
private TaskTaskServiceImpl taskTaskServiceImpl;
@Autowired
private VideoRepository videoRepository; private VideoRepository videoRepository;
@Autowired @Autowired
private VideoTaskRepository videoTaskRepository; private VideoTaskRepository videoTaskRepository;
@ -91,6 +87,8 @@ public class OrderServiceImpl implements OrderService {
private PriceRepository priceRepository; private PriceRepository priceRepository;
@Autowired @Autowired
private PriceBiz priceBiz; private PriceBiz priceBiz;
@Autowired
private FaceRepository faceRepository;
@Override @Override
public ApiResponse<PageInfo<OrderRespVO>> pageQuery(OrderReqQuery query) { public ApiResponse<PageInfo<OrderRespVO>> pageQuery(OrderReqQuery query) {
@ -333,6 +331,11 @@ public class OrderServiceImpl implements OrderService {
PriceObj priceObj = orderBiz.queryPrice(order.getScenicId(), createOrderReqVO.getGoodsType(), createOrderReqVO.getGoodsId()); PriceObj priceObj = orderBiz.queryPrice(order.getScenicId(), createOrderReqVO.getGoodsType(), createOrderReqVO.getGoodsId());
order.setSlashPrice(priceObj.getSlashPrice()); order.setSlashPrice(priceObj.getSlashPrice());
order.setPrice(priceObj.getPrice()); order.setPrice(priceObj.getPrice());
// 判断是否是本人数据
FaceEntity goodsFace = faceRepository.getFace(priceObj.getFaceId());
if (goodsFace != null && !goodsFace.getMemberId().equals(userId)) {
return ApiResponse.fail("您无权购买此内容!");
}
// promo code // promo code
// coupon // coupon
order.setPayPrice(priceObj.getPrice()); order.setPayPrice(priceObj.getPrice());
@ -366,6 +369,10 @@ public class OrderServiceImpl implements OrderService {
if (priceConfig == null) { if (priceConfig == null) {
return ApiResponse.fail("该套餐暂未开放购买"); return ApiResponse.fail("该套餐暂未开放购买");
} }
FaceEntity face = faceRepository.getFace(batchOrderReqVO.getFaceId());
if (face != null && !face.getMemberId().equals(userId)) {
return ApiResponse.fail("您无权购买此内容!");
}
log.info("创建批量订单,价格配置:{},请求:{}", priceConfig, batchOrderReqVO); log.info("创建批量订单,价格配置:{},请求:{}", priceConfig, batchOrderReqVO);
OrderEntity order = new OrderEntity(); OrderEntity order = new OrderEntity();
Long orderId = SnowFlakeUtil.getLongId(); Long orderId = SnowFlakeUtil.getLongId();