diff --git a/src/main/java/com/ycwl/basic/biz/PriceBiz.java b/src/main/java/com/ycwl/basic/biz/PriceBiz.java index a126eec..a233ca1 100644 --- a/src/main/java/com/ycwl/basic/biz/PriceBiz.java +++ b/src/main/java/com/ycwl/basic/biz/PriceBiz.java @@ -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 listGoodsByScenic(Long scenicId) { List 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())) { diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java index 4ff4401..77387c8 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java @@ -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 queryPrice(@PathVariable("scenicId") Long scenicId, @RequestParam("type") Integer type, @RequestParam(value = "goodsIds", required = false) String goodsIds) { + public ApiResponse 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("该套餐暂未开放购买"); } diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java index 4679eca..fa48774 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java @@ -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> 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();