From 3907b5eb7a371f4369cb9cb5b476fe09b16dd124 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 5 Jan 2025 14:20:24 +0800 Subject: [PATCH] =?UTF-8?q?0=E5=85=83=E8=B4=AD=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ycwl/basic/biz/OrderBiz.java | 93 +++++++++++++++++++ .../controller/mobile/AppGoodsController.java | 13 --- .../controller/mobile/AppOrderController.java | 14 +++ .../com/ycwl/basic/mapper/ScenicMapper.java | 3 + .../com/ycwl/basic/mapper/VideoMapper.java | 2 +- .../mobile/goods/GoodsPriceQueryReq.java | 4 +- .../basic/model/mobile/order/IsBuyRespVO.java | 15 +++ .../basic/model/mobile/order/PriceObj.java | 14 +++ .../faceDetectLog/resp/MatchLocalRecord.java | 1 + .../model/pc/order/entity/OrderEntity.java | 2 +- .../basic/repository/OrderRepository.java | 4 + .../basic/repository/ScenicRepository.java | 43 +++++++++ .../service/impl/mobile/WxPayServiceImpl.java | 7 +- .../impl/task/TaskFaceServiceImpl.java | 5 +- .../impl/task/TaskTaskServiceImpl.java | 24 ++++- src/main/resources/mapper/OrderMapper.xml | 4 +- src/main/resources/mapper/ScenicMapper.xml | 5 + src/main/resources/mapper/SourceMapper.xml | 2 +- src/main/resources/mapper/VideoMapper.xml | 2 +- 19 files changed, 231 insertions(+), 26 deletions(-) create mode 100644 src/main/java/com/ycwl/basic/biz/OrderBiz.java create mode 100644 src/main/java/com/ycwl/basic/model/mobile/order/IsBuyRespVO.java create mode 100644 src/main/java/com/ycwl/basic/model/mobile/order/PriceObj.java diff --git a/src/main/java/com/ycwl/basic/biz/OrderBiz.java b/src/main/java/com/ycwl/basic/biz/OrderBiz.java new file mode 100644 index 0000000..fd9c706 --- /dev/null +++ b/src/main/java/com/ycwl/basic/biz/OrderBiz.java @@ -0,0 +1,93 @@ +package com.ycwl.basic.biz; + +import com.ycwl.basic.mapper.FaceMapper; +import com.ycwl.basic.mapper.VideoMapper; +import com.ycwl.basic.model.mobile.order.IsBuyRespVO; +import com.ycwl.basic.model.mobile.order.PriceObj; +import com.ycwl.basic.model.pc.face.resp.FaceRespVO; +import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity; +import com.ycwl.basic.model.pc.template.resp.TemplateRespVO; +import com.ycwl.basic.model.pc.video.resp.VideoRespVO; +import com.ycwl.basic.repository.OrderRepository; +import com.ycwl.basic.repository.ScenicRepository; +import com.ycwl.basic.repository.TemplateRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class OrderBiz { + + @Autowired + private VideoMapper videoMapper; + @Autowired + private ScenicRepository scenicRepository; + @Autowired + private TemplateRepository templateRepository; + @Autowired + private FaceMapper faceMapper; + @Autowired + private OrderRepository orderRepository; + + public PriceObj queryPrice(int goodsType, Long goodsId) { + PriceObj priceObj = new PriceObj(); + switch (goodsType) { + case 0: // video + VideoRespVO video = videoMapper.getById(goodsId); + if (video == null) { + return null; + } + priceObj.setGoodsId(goodsId); + priceObj.setGoodsType(goodsType); + TemplateRespVO template = templateRepository.getTemplate(video.getTemplateId()); + if (template == null) { + return priceObj; + } + priceObj.setPrice(template.getPrice()); + priceObj.setSlashPrice(template.getSlashPrice()); + priceObj.setScenicId(video.getScenicId()); + break; + case 1: // source + // goodsId 实际上是人脸ID + FaceRespVO _faceRespVO = faceMapper.getById(goodsId); + if (_faceRespVO == null || _faceRespVO.getScenicId() == null) { + return null; + } + ScenicEntity _scenic = scenicRepository.getScenic(_faceRespVO.getScenicId()); + if (_scenic == null) { + return null; + } + priceObj.setPrice(_scenic.getPrice()); + priceObj.setSlashPrice(_scenic.getPrice()); + break; + case 2: // source + // goodsId 实际上是人脸ID + FaceRespVO __faceRespVO = faceMapper.getById(goodsId); + if (__faceRespVO == null || __faceRespVO.getScenicId() == null) { + return null; + } + ScenicEntity __scenic = scenicRepository.getScenic(__faceRespVO.getScenicId()); + if (__scenic == null) { + return null; + } + priceObj.setPrice(__scenic.getPrice()); + priceObj.setSlashPrice(__scenic.getPrice()); + break; + } + return priceObj; + } + + public IsBuyRespVO isBuy(Long userId, int goodsType, Long goodsId) { + IsBuyRespVO respVO = new IsBuyRespVO(); + boolean isBuy = orderRepository.checkUserBuyItem(userId, goodsType, goodsId); + respVO.setBuy(isBuy); + if (!isBuy) { + PriceObj priceObj = queryPrice(goodsType, goodsId); + if (priceObj == null) { + return respVO; + } + respVO.setPrice(priceObj.getPrice()); + respVO.setSlashPrice(priceObj.getSlashPrice()); + } + return respVO; + } +} diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java index 6c387c4..a25f9ce 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java @@ -56,12 +56,6 @@ public class AppGoodsController { return goodsService.sourceGoodsInfo(worker.getUserId(), sourceId); } - @ApiOperation("查询价格") - @PostMapping("/queryPrice") - public ApiResponse queryPrice(@RequestBody GoodsPriceQueryReq queryPriceData) { - return goodsService.queryPrice(queryPriceData); - } - /** * 查询用户当前景区的视频合成任务状态 * @@ -86,11 +80,4 @@ public class AppGoodsController { JwtInfo worker = JwtTokenUtil.getWorker(); return goodsService.getTaskStatusByTemplateId(worker.getUserId(), faceId, templateId); } - - @PostMapping("/submitVideoTask") - public ApiResponse submitVideoTask(@RequestBody VideoTaskReq videoTaskReq) { - JwtInfo worker = JwtTokenUtil.getWorker(); - taskService.createTaskByFaceIdAndTempalteId(videoTaskReq.getFaceId(),videoTaskReq.getTemplateId(),0); - return ApiResponse.success("成功"); - } } 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 cfd6e36..ad4a305 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java @@ -1,12 +1,17 @@ package com.ycwl.basic.controller.mobile; import com.github.pagehelper.PageInfo; +import com.ycwl.basic.biz.OrderBiz; import com.ycwl.basic.constant.BaseContextHandler; +import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; +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.order.req.OrderAddReq; import com.ycwl.basic.model.pc.order.resp.OrderAppRespVO; import com.ycwl.basic.model.wx.WxPayRespVO; +import com.ycwl.basic.repository.OrderRepository; +import com.ycwl.basic.service.mobile.GoodsService; import com.ycwl.basic.service.pc.OrderService; import com.ycwl.basic.utils.ApiResponse; import io.swagger.annotations.Api; @@ -25,6 +30,10 @@ public class AppOrderController { @Autowired private OrderService orderService; + @Autowired + private OrderRepository orderRepository; + @Autowired + private OrderBiz orderBiz; @ApiOperation("用户端订单列表查询") @PostMapping("/page") @@ -61,4 +70,9 @@ public class AppOrderController { return orderService.refundOrder(refundOrderReq); } + @GetMapping("/scenic/{scenicId}/query") + public ApiResponse isBuy(@PathVariable("scenicId") Long scenicId, @RequestParam("type") Integer type, @RequestParam("goodsId") Long goodsId) { + Long userId = Long.parseLong(BaseContextHandler.getUserId()); + return ApiResponse.success(orderBiz.isBuy(userId, type, goodsId)); + } } diff --git a/src/main/java/com/ycwl/basic/mapper/ScenicMapper.java b/src/main/java/com/ycwl/basic/mapper/ScenicMapper.java index 941e4de..6d4f8a8 100644 --- a/src/main/java/com/ycwl/basic/mapper/ScenicMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/ScenicMapper.java @@ -3,6 +3,7 @@ package com.ycwl.basic.mapper; import com.ycwl.basic.model.mobile.scenic.ScenicAppVO; import com.ycwl.basic.model.mobile.scenic.ScenicIndexVO; import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; +import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity; import com.ycwl.basic.model.pc.scenic.req.ScenicAddOrUpdateReq; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; @@ -20,6 +21,8 @@ import java.util.List; public interface ScenicMapper { List list(ScenicReqQuery scenicReqQuery); + ScenicEntity get(Long id); + ScenicRespVO getById(Long id); int add(ScenicAddOrUpdateReq scenic); diff --git a/src/main/java/com/ycwl/basic/mapper/VideoMapper.java b/src/main/java/com/ycwl/basic/mapper/VideoMapper.java index 8e44437..15e364b 100644 --- a/src/main/java/com/ycwl/basic/mapper/VideoMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/VideoMapper.java @@ -41,5 +41,5 @@ public interface VideoMapper { MemberVideoEntity queryUserVideo(Long userId, Long videoId); - int updateRelationWhenTaskSuccess(Long taskId, Long videoId); + int updateRelationWhenTaskSuccess(Long taskId, Long videoId, int isBuy); } diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsPriceQueryReq.java b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsPriceQueryReq.java index ce0416e..2079ea8 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsPriceQueryReq.java +++ b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsPriceQueryReq.java @@ -15,8 +15,8 @@ import lombok.experimental.Accessors; public class GoodsPriceQueryReq { @ApiModelProperty("景区id") private Long scenicId; - @ApiModelProperty("商品类型 1:成片vlog 2:源素材") + @ApiModelProperty("商品类型 0:成片vlog 12:源素材") private Integer goodsType; - @ApiModelProperty("商品id goodsType=1时才有值") + @ApiModelProperty("商品id goodsType=0时才有值") private Long goodsId; } diff --git a/src/main/java/com/ycwl/basic/model/mobile/order/IsBuyRespVO.java b/src/main/java/com/ycwl/basic/model/mobile/order/IsBuyRespVO.java new file mode 100644 index 0000000..89ace22 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/mobile/order/IsBuyRespVO.java @@ -0,0 +1,15 @@ +package com.ycwl.basic.model.mobile.order; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class IsBuyRespVO { + private boolean isBuy; + private Long orderId; + private int goodsType; + private Long goodsId; + private BigDecimal price; + private BigDecimal slashPrice; +} diff --git a/src/main/java/com/ycwl/basic/model/mobile/order/PriceObj.java b/src/main/java/com/ycwl/basic/model/mobile/order/PriceObj.java new file mode 100644 index 0000000..926ecc1 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/mobile/order/PriceObj.java @@ -0,0 +1,14 @@ +package com.ycwl.basic.model.mobile.order; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class PriceObj { + private Long scenicId; + private int goodsType; + private Long goodsId; + private BigDecimal price = BigDecimal.ZERO; + private BigDecimal slashPrice; +} diff --git a/src/main/java/com/ycwl/basic/model/pc/faceDetectLog/resp/MatchLocalRecord.java b/src/main/java/com/ycwl/basic/model/pc/faceDetectLog/resp/MatchLocalRecord.java index d5f2633..9b0b9e7 100644 --- a/src/main/java/com/ycwl/basic/model/pc/faceDetectLog/resp/MatchLocalRecord.java +++ b/src/main/java/com/ycwl/basic/model/pc/faceDetectLog/resp/MatchLocalRecord.java @@ -6,6 +6,7 @@ import lombok.Data; public class MatchLocalRecord { private Long faceSampleId; private String faceUrl; + private Float score; private Float confidence; private String idStr; } diff --git a/src/main/java/com/ycwl/basic/model/pc/order/entity/OrderEntity.java b/src/main/java/com/ycwl/basic/model/pc/order/entity/OrderEntity.java index 6f98fae..d76b2ba 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/entity/OrderEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/entity/OrderEntity.java @@ -23,7 +23,7 @@ public class OrderEntity { /** * 微信openId */ - private Long openId; + private String openId; /** * 价格 */ diff --git a/src/main/java/com/ycwl/basic/repository/OrderRepository.java b/src/main/java/com/ycwl/basic/repository/OrderRepository.java index 88283b6..3690d69 100644 --- a/src/main/java/com/ycwl/basic/repository/OrderRepository.java +++ b/src/main/java/com/ycwl/basic/repository/OrderRepository.java @@ -38,4 +38,8 @@ public class OrderRepository { public boolean checkUserBuyVideo(Long userId, Long videoId) { return checkUserBuyItem(userId, 0, videoId); } + + public void clearUserBuyItemCache(Long userId, int goodsType, Long goodsId) { + redisTemplate.delete(String.format(ORDER_ITEM_CACHE_KEY, userId, goodsType, goodsId)); + } } diff --git a/src/main/java/com/ycwl/basic/repository/ScenicRepository.java b/src/main/java/com/ycwl/basic/repository/ScenicRepository.java index 2dea285..c9e1455 100644 --- a/src/main/java/com/ycwl/basic/repository/ScenicRepository.java +++ b/src/main/java/com/ycwl/basic/repository/ScenicRepository.java @@ -1,4 +1,47 @@ package com.ycwl.basic.repository; +import com.alibaba.fastjson.JSONObject; +import com.ycwl.basic.mapper.ScenicMapper; +import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; +import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +@Component public class ScenicRepository { + @Autowired + private ScenicMapper scenicMapper; + @Autowired + private RedisTemplate redisTemplate; + + public static final String SCENIC_CACHE_KEY = "scenic:%s"; + public static final String SCENIC_CONFIG_CACHE_KEY = "scenic:%s:config"; + + public ScenicEntity getScenic(Long id) { + if (redisTemplate.hasKey(String.format(SCENIC_CACHE_KEY, id))) { + return JSONObject.parseObject(redisTemplate.opsForValue().get(String.format(SCENIC_CACHE_KEY, id)), ScenicEntity.class); + } + ScenicEntity scenic = scenicMapper.get(id); + if (scenic != null) { + redisTemplate.opsForValue().set(String.format(SCENIC_CACHE_KEY, id), JSONObject.toJSONString(scenic)); + } + return scenic; + } + + public ScenicConfigEntity getScenicConfig(Long scenicId) { + if (redisTemplate.hasKey(String.format(SCENIC_CONFIG_CACHE_KEY, scenicId))) { + return JSONObject.parseObject(redisTemplate.opsForValue().get(String.format(SCENIC_CONFIG_CACHE_KEY, scenicId)), ScenicConfigEntity.class); + } + ScenicConfigEntity scenicConfig = scenicMapper.getConfig(scenicId); + if (scenicConfig != null) { + redisTemplate.opsForValue().set(String.format(SCENIC_CONFIG_CACHE_KEY, scenicId), JSONObject.toJSONString(scenicConfig)); + } + return scenicConfig; + } + + public void clearCache(Long scenicId) { + redisTemplate.delete(String.format(SCENIC_CACHE_KEY, scenicId)); + redisTemplate.delete(String.format(SCENIC_CONFIG_CACHE_KEY, scenicId)); + } } diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java index 9901877..c8b1be0 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java @@ -41,6 +41,7 @@ import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity; import com.ycwl.basic.model.wx.WXPayOrderReqVO; import com.ycwl.basic.model.wx.WxPayRespVO; import com.ycwl.basic.model.wx.WxchatCallbackSuccessData; +import com.ycwl.basic.repository.OrderRepository; import com.ycwl.basic.service.HttpService; import com.ycwl.basic.service.mobile.WxPayService; import com.ycwl.basic.service.pc.OrderService; @@ -100,6 +101,8 @@ public class WxPayServiceImpl implements WxPayService { private SourceMapper sourceMapper; @Autowired private VideoMapper videoMapper; + @Autowired + private OrderRepository orderRepository; @Override public WxPayRespVO createOrder(WXPayOrderReqVO req) { @@ -211,6 +214,7 @@ public class WxPayServiceImpl implements WxPayService { OrderRespVO byId = orderMapper.getById(orderId); List orderItemList = orderMapper.listOrderItemByOrderId(orderId); orderItemList.forEach(orderItemVO -> { + orderRepository.clearUserBuyItemCache(byId.getMemberId(), orderItemVO.getGoodsType(), orderItemVO.getGoodsId()); switch (orderItemVO.getGoodsType()) { case 0: // 成片 MemberVideoEntity memberVideoEntity = new MemberVideoEntity(); @@ -224,7 +228,8 @@ public class WxPayServiceImpl implements WxPayService { case 2: // 源素材 MemberSourceEntity memberSourceEntity = new MemberSourceEntity(); memberSourceEntity.setMemberId(byId.getMemberId()); - memberSourceEntity.setSourceId(orderItemVO.getGoodsId()); + // 源素材的goodsId是人脸ID + memberSourceEntity.setFaceId(orderItemVO.getGoodsId()); memberSourceEntity.setType(orderItemVO.getGoodsType()); memberSourceEntity.setIsBuy(1); memberSourceEntity.setOrderId(orderId); diff --git a/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java index 42cc4e2..6309efe 100644 --- a/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java @@ -133,16 +133,17 @@ public class TaskFaceServiceImpl implements TaskFaceService { } else { record.setFaceUrl(getFaceUrl(record.getFaceSampleId())); } + record.setScore(item.getScore()); record.setConfidence(item.getConfidence()); return record; }) .collect(Collectors.toList()); log.matchLocalRecord(records); List faceSampleIds = records.stream() - .filter(record -> record.getConfidence() > 60) + .filter(record -> record.getScore() > 0.6) .map(MatchLocalRecord::getFaceSampleId) .collect(Collectors.toList()); - respVo.setFirstMatchRate(matchList.get(0).getFaceItems().get(0).getConfidence()); + respVo.setFirstMatchRate(matchList.get(0).getFaceItems().get(0).getScore()); respVo.setSampleListIds(faceSampleIds); return respVo; } catch (Exception e) { diff --git a/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java index e91af22..cec8b3a 100644 --- a/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java @@ -1,6 +1,7 @@ package com.ycwl.basic.service.impl.task; import com.alibaba.fastjson.JSON; +import com.ycwl.basic.biz.OrderBiz; import com.ycwl.basic.constant.TaskConstant; import com.ycwl.basic.mapper.FaceMapper; import com.ycwl.basic.mapper.FaceSampleMapper; @@ -9,6 +10,7 @@ import com.ycwl.basic.mapper.SourceMapper; import com.ycwl.basic.mapper.TaskMapper; import com.ycwl.basic.mapper.TemplateMapper; import com.ycwl.basic.mapper.VideoMapper; +import com.ycwl.basic.model.mobile.order.PriceObj; import com.ycwl.basic.model.pc.face.resp.FaceRespVO; import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO; import com.ycwl.basic.model.pc.renderWorker.entity.RenderWorkerEntity; @@ -71,6 +73,8 @@ public class TaskTaskServiceImpl implements TaskService { private TemplateRepository templateRepository; @Autowired private VideoTaskRepository videoTaskRepository; + @Autowired + private OrderBiz orderBiz; private RenderWorkerEntity getWorker(@NonNull WorkerAuthReqVo req) { String accessKey = req.getAccessKey(); @@ -127,6 +131,10 @@ public class TaskTaskServiceImpl implements TaskService { if (faceId == null) { return; } + boolean canGenerate = templateRepository.determineTemplateCanGenerate(templateId, faceId); + if (!canGenerate) { + return; + } TemplateConfigEntity config = templateRepository.getTemplateConfig(templateId); FaceRespVO faceRespVO = faceMapper.getById(faceId); if (faceRespVO == null) { @@ -237,6 +245,10 @@ public class TaskTaskServiceImpl implements TaskService { task.faceSampleId = faceSampleIds; task.memberId = faceRespVO.getMemberId(); task.callback = () -> { + boolean canGenerate = templateRepository.determineTemplateCanGenerate(templateId, faceId); + if (!canGenerate) { + return; + } List videoSourceList = sourceMapper.listVideoByFaceRelation(faceId); Map> sourcesMap = videoSourceList.stream() .peek(item -> item.setUrl(item.getVideoUrl())) @@ -268,6 +280,10 @@ public class TaskTaskServiceImpl implements TaskService { memberVideoEntity.setTaskId(list.get(0).getId()); VideoEntity video = videoMapper.findByTaskId(list.get(0).getId()); if (video != null) { + PriceObj priceObj = orderBiz.queryPrice(0, video.getId()); + if (priceObj.getPrice().equals(BigDecimal.ZERO)) { + memberVideoEntity.setIsBuy(1); + } memberVideoEntity.setVideoId(video.getId()); } } @@ -296,7 +312,6 @@ public class TaskTaskServiceImpl implements TaskService { if (video != null) { video.setVideoUrl(task.getVideoUrl()); videoMapper.update(video); - videoMapper.updateRelationWhenTaskSuccess(taskId, video.getId()); } else { video = new VideoEntity(); video.setId(SnowFlakeUtil.getLongId()); @@ -307,8 +322,13 @@ public class TaskTaskServiceImpl implements TaskService { video.setVideoUrl(task.getVideoUrl()); video.setCreateTime(new Date()); videoMapper.add(video); - videoMapper.updateRelationWhenTaskSuccess(taskId, video.getId()); } + int isBuy = 0; + PriceObj priceObj = orderBiz.queryPrice(0, video.getId()); + if (priceObj.getPrice().equals(BigDecimal.ZERO)) { + isBuy = 1; + } + videoMapper.updateRelationWhenTaskSuccess(taskId, video.getId(), isBuy); } @Override diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml index 3f6abf3..7ec4a60 100644 --- a/src/main/resources/mapper/OrderMapper.xml +++ b/src/main/resources/mapper/OrderMapper.xml @@ -93,8 +93,8 @@ END AS goods_name, CASE oi.goods_type WHEN '0' THEN mvd.face_id - WHEN '1' THEN msd.face_id - WHEN '2' THEN msd.face_id + WHEN '1' THEN oi.goods_id + WHEN '2' THEN oi.goods_id END AS face_id, CASE oi.goods_type WHEN '0' THEN mvd.video_url diff --git a/src/main/resources/mapper/ScenicMapper.xml b/src/main/resources/mapper/ScenicMapper.xml index f5b68e9..81548e0 100644 --- a/src/main/resources/mapper/ScenicMapper.xml +++ b/src/main/resources/mapper/ScenicMapper.xml @@ -187,6 +187,11 @@ from scenic_config where scenic_id = #{scenicId} + diff --git a/src/main/resources/mapper/SourceMapper.xml b/src/main/resources/mapper/SourceMapper.xml index c872997..70b7033 100644 --- a/src/main/resources/mapper/SourceMapper.xml +++ b/src/main/resources/mapper/SourceMapper.xml @@ -36,7 +36,7 @@ is_buy = #{isBuy}, order_id = #{orderId}, - where member_id = #{memberId} and source_id = #{sourceId} and type = #{type} + where member_id = #{memberId} and face_id = #{faceId} and type = #{type} delete from source where id = #{id} diff --git a/src/main/resources/mapper/VideoMapper.xml b/src/main/resources/mapper/VideoMapper.xml index 77d31e4..144f366 100644 --- a/src/main/resources/mapper/VideoMapper.xml +++ b/src/main/resources/mapper/VideoMapper.xml @@ -39,7 +39,7 @@ update member_video - set video_id = #{videoId} + set video_id = #{videoId}, is_buy = #{isBuy} where task_id = #{taskId}