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

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.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.price.entity.PriceConfigEntity;
import com.ycwl.basic.model.pc.price.resp.GoodsListRespVO;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
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.ScenicRepository;
import com.ycwl.basic.repository.TemplateRepository;
@ -30,6 +32,8 @@ public class PriceBiz {
private PriceRepository priceRepository;
@Autowired
private OrderBiz orderBiz;
@Autowired
private FaceRepository faceRepository;
public List<GoodsListRespVO> listGoodsByScenic(Long scenicId) {
List<GoodsListRespVO> goodsList = new ArrayList<>();
@ -73,12 +77,16 @@ public class PriceBiz {
}).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();
PriceConfigEntity priceConfig = priceRepository.getPriceConfigByScenicTypeGoods(scenicId, type, goodsIds);
if (priceConfig == null) {
return null;
}
FaceEntity face = faceRepository.getFace(faceId);
if (face != null && !face.getMemberId().equals(userId)) {
return null;
}
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
if (scenicConfig != null) {
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.PriceBiz;
import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.mapper.FaceMapper;
import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq;
import com.ycwl.basic.model.mobile.order.IsBuyBatchRespVO;
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
import com.ycwl.basic.model.mobile.order.OrderAppPageReq;
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.CreateOrderReqVO;
import com.ycwl.basic.model.pc.order.req.OrderAddReq;
@ -41,6 +43,8 @@ public class AppOrderController {
private OrderBiz orderBiz;
@Autowired
private PriceBiz priceBiz;
@Autowired
private FaceMapper faceMapper;
@ApiOperation("用户端订单列表查询")
@PostMapping("/page")
@ -93,9 +97,13 @@ public class AppOrderController {
}
@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());
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) {
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.RefundOrderReq;
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.order.entity.OrderEntity;
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.wx.WXPayOrderReqVO;
import com.ycwl.basic.model.wx.WxPayRespVO;
import com.ycwl.basic.repository.FaceRepository;
import com.ycwl.basic.repository.PriceRepository;
import com.ycwl.basic.repository.VideoRepository;
import com.ycwl.basic.repository.VideoTaskRepository;
@ -67,8 +69,6 @@ public class OrderServiceImpl implements OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private VideoMapper videoMapper;
@Autowired
private SourceMapper sourceMapper;
@Autowired
private WxPayService wxPayService;
@ -78,12 +78,8 @@ public class OrderServiceImpl implements OrderService {
@Autowired
private OrderOperationMapper orderOperationMapper;
@Autowired
private StatisticsMapper statisticsMapper;
@Autowired
private OrderBiz orderBiz;
@Autowired
private TaskTaskServiceImpl taskTaskServiceImpl;
@Autowired
private VideoRepository videoRepository;
@Autowired
private VideoTaskRepository videoTaskRepository;
@ -91,6 +87,8 @@ public class OrderServiceImpl implements OrderService {
private PriceRepository priceRepository;
@Autowired
private PriceBiz priceBiz;
@Autowired
private FaceRepository faceRepository;
@Override
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());
order.setSlashPrice(priceObj.getSlashPrice());
order.setPrice(priceObj.getPrice());
// 判断是否是本人数据
FaceEntity goodsFace = faceRepository.getFace(priceObj.getFaceId());
if (goodsFace != null && !goodsFace.getMemberId().equals(userId)) {
return ApiResponse.fail("您无权购买此内容!");
}
// promo code
// coupon
order.setPayPrice(priceObj.getPrice());
@ -366,6 +369,10 @@ public class OrderServiceImpl implements OrderService {
if (priceConfig == null) {
return ApiResponse.fail("该套餐暂未开放购买");
}
FaceEntity face = faceRepository.getFace(batchOrderReqVO.getFaceId());
if (face != null && !face.getMemberId().equals(userId)) {
return ApiResponse.fail("您无权购买此内容!");
}
log.info("创建批量订单,价格配置:{},请求:{}", priceConfig, batchOrderReqVO);
OrderEntity order = new OrderEntity();
Long orderId = SnowFlakeUtil.getLongId();