From 3ee762f5bb0414b54e072d7ce0b2cc3e992b79f6 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 12 Feb 2025 21:17:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=92=E7=BA=BF=E4=BB=B7=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=9C=A8=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85=E5=86=85=E3=80=81?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=85=B3=E9=97=AD=E6=97=B6=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E5=AF=B9=E5=BA=94=E8=AE=BE=E5=A4=87=E7=9A=84?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=86=85=E5=AE=B9=EF=BC=88=E5=B7=B2=E5=85=B3?= =?UTF-8?q?=E8=81=94=E7=9A=84=E4=B8=8D=E7=AE=A1=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ycwl/basic/biz/OrderBiz.java | 28 ++++--------------- .../basic/model/mobile/order/PriceObj.java | 1 + .../model/pc/order/resp/OrderAppRespVO.java | 1 + .../model/pc/order/resp/OrderRespVO.java | 1 + .../model/pc/scenic/entity/ScenicEntity.java | 2 ++ .../pc/scenic/req/ScenicAddOrUpdateReq.java | 2 ++ .../model/pc/scenic/resp/ScenicRespVO.java | 2 ++ .../task/impl/TaskTaskServiceImpl.java | 13 +++++++++ src/main/resources/mapper/OrderMapper.xml | 4 ++- src/main/resources/mapper/ScenicMapper.xml | 13 +++++++-- 10 files changed, 41 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/ycwl/basic/biz/OrderBiz.java b/src/main/java/com/ycwl/basic/biz/OrderBiz.java index fc3e231..dd73b52 100644 --- a/src/main/java/com/ycwl/basic/biz/OrderBiz.java +++ b/src/main/java/com/ycwl/basic/biz/OrderBiz.java @@ -58,7 +58,9 @@ public class OrderBiz { PriceObj priceObj = new PriceObj(); priceObj.setGoodsType(goodsType); priceObj.setGoodsId(goodsId); + ScenicEntity scenic = scenicRepository.getScenic(scenicId); ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId); + priceObj.setScenicAllPrice(scenic.getPrice()); if (scenicConfig != null) { if (Integer.valueOf(1).equals(scenicConfig.getAllFree())) { // 景区全免 @@ -88,30 +90,12 @@ public class OrderBiz { priceObj.setScenicId(video.getScenicId()); break; case 1: // source - // goodsId 实际上是人脸ID - FaceEntity _face = faceRepository.getFace(goodsId); - if (_face == null || _face.getScenicId() == null) { - return null; - } - ScenicEntity _scenic = scenicRepository.getScenic(_face.getScenicId()); - if (_scenic == null) { - return null; - } - priceObj.setPrice(_scenic.getPrice()); - priceObj.setSlashPrice(_scenic.getPrice()); + priceObj.setPrice(scenic.getSourceVideoPrice()); + priceObj.setSlashPrice(scenic.getSourceVideoPrice()); break; case 2: // source - // goodsId 实际上是人脸ID - FaceEntity __face = faceRepository.getFace(goodsId); - if (__face == null || __face.getScenicId() == null) { - return null; - } - ScenicEntity __scenic = scenicRepository.getScenic(__face.getScenicId()); - if (__scenic == null) { - return null; - } - priceObj.setPrice(__scenic.getPrice()); - priceObj.setSlashPrice(__scenic.getPrice()); + priceObj.setPrice(scenic.getSourceImagePrice()); + priceObj.setSlashPrice(scenic.getSourceImagePrice()); break; } return priceObj; 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 index f40b22e..ca17b3e 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/order/PriceObj.java +++ b/src/main/java/com/ycwl/basic/model/mobile/order/PriceObj.java @@ -11,5 +11,6 @@ public class PriceObj { private int goodsType; private Long goodsId; private BigDecimal price = BigDecimal.ZERO; + private BigDecimal scenicAllPrice; private BigDecimal slashPrice; } diff --git a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java index 8568fd9..035e000 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java @@ -22,6 +22,7 @@ public class OrderAppRespVO { */ @ApiModelProperty("价格") private BigDecimal price; + private BigDecimal slashPrice; /** * 实际支付价格 */ diff --git a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderRespVO.java b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderRespVO.java index 51eb83a..20eafe8 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderRespVO.java @@ -33,6 +33,7 @@ public class OrderRespVO { */ @ApiModelProperty("价格") private BigDecimal price; + private BigDecimal slashPrice; /** * 实际支付价格 */ diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicEntity.java b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicEntity.java index 15fdf07..e41c857 100644 --- a/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicEntity.java @@ -65,4 +65,6 @@ public class ScenicEntity { * 景区源素材价格,元 */ private BigDecimal price; + private BigDecimal sourceVideoPrice; + private BigDecimal sourceImagePrice; } diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java b/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java index 048a96d..5814014 100644 --- a/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/req/ScenicAddOrUpdateReq.java @@ -81,6 +81,8 @@ public class ScenicAddOrUpdateReq { private Date updateTime; @ApiModelProperty("景区源素材价格,元") private BigDecimal price; + private BigDecimal sourceVideoPrice; + private BigDecimal sourceImagePrice; @ApiModelProperty("账号") private String account; diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java b/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java index bf81da1..c81d6b4 100644 --- a/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/resp/ScenicRespVO.java @@ -87,6 +87,8 @@ public class ScenicRespVO { private Date updateTime; @ApiModelProperty("景区源素材价格,元") private BigDecimal price; + private BigDecimal sourceVideoPrice; + private BigDecimal sourceImagePrice; @ApiModelProperty("镜头数") private Integer lensNum; private String kfCodeUrl; diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java index bb827e6..673ba14 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java @@ -17,6 +17,7 @@ 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.IsBuyRespVO; +import com.ycwl.basic.model.pc.device.entity.DeviceEntity; import com.ycwl.basic.model.pc.face.entity.FaceEntity; import com.ycwl.basic.model.pc.face.resp.FaceRespVO; import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity; @@ -41,6 +42,7 @@ import com.ycwl.basic.notify.NotifyFactory; import com.ycwl.basic.notify.adapters.INotifyAdapter; import com.ycwl.basic.notify.entity.NotifyContent; import com.ycwl.basic.notify.enums.NotifyType; +import com.ycwl.basic.repository.DeviceRepository; import com.ycwl.basic.repository.FaceRepository; import com.ycwl.basic.repository.OrderRepository; import com.ycwl.basic.repository.ScenicRepository; @@ -67,6 +69,7 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; @@ -112,6 +115,8 @@ public class TaskTaskServiceImpl implements TaskService { private final ReentrantLock lock = new ReentrantLock(); @Autowired private TaskStatusBiz taskStatusBiz; + @Autowired + private DeviceRepository deviceRepository; private RenderWorkerEntity getWorker(@NonNull WorkerAuthReqVo req) { @@ -243,6 +248,10 @@ public class TaskTaskServiceImpl implements TaskService { List videoSourceList = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId); Map> sourcesMap = videoSourceList.stream() .peek(item -> item.setUrl(item.getVideoUrl())) + .filter(item -> { + DeviceEntity device = deviceRepository.getDevice(item.getDeviceId()); + return Integer.valueOf(1).equals(device.getStatus()); + }) .collect(Collectors.groupingBy(item -> item.getDeviceId().toString())); if (sourcesMap.isEmpty()) { // 主动禁止没有视频源视频生成 @@ -430,6 +439,10 @@ public class TaskTaskServiceImpl implements TaskService { List videoSourceList = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId); Map> sourcesMap = videoSourceList.stream() .peek(item -> item.setUrl(item.getVideoUrl())) + .filter(item -> { + DeviceEntity device = deviceRepository.getDevice(item.getDeviceId()); + return Integer.valueOf(1).equals(device.getStatus()); + }) .collect(Collectors.groupingBy(item -> item.getDeviceId().toString())); if (sourcesMap.isEmpty()) { // 主动禁止没有视频源视频生成 diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml index 9118a30..26d51dd 100644 --- a/src/main/resources/mapper/OrderMapper.xml +++ b/src/main/resources/mapper/OrderMapper.xml @@ -10,6 +10,7 @@ + @@ -37,6 +38,7 @@ + @@ -290,7 +292,7 @@ order by o.create_at desc select s.id, `name`, `phone`, introduction,logo_url,cover_url, longitude, latitude, radius, province, city, area, address, `status`, s.create_time, update_time, kf_code_url, kf_phone, + s.price, s.source_video_price, s.source_image_price, (select scenic_account.account from scenic_account where scenic_account.scenic_id = s.id and scenic_account.is_super = 1 limit 1) as account, s.price from scenic s @@ -138,7 +145,7 @@