You've already forked FrameTour-BE
refactor(scenic): 替换ScenicConfigEntity为ScenicConfigManager
- 将所有使用ScenicConfigEntity的地方替换为ScenicConfigManager - 更新获取景区配置的方法调用 - 修改属性访问方式为通过manager的getter方法 - 移除已废弃的ScenicConfigEntity类及相关方法 - 统一配置读取接口,提高代码一致性与可维护性
This commit is contained in:
@@ -7,7 +7,7 @@ import com.ycwl.basic.mapper.StatisticsMapper;
|
|||||||
import com.ycwl.basic.model.pc.broker.entity.BrokerRecord;
|
import com.ycwl.basic.model.pc.broker.entity.BrokerRecord;
|
||||||
import com.ycwl.basic.model.pc.broker.resp.BrokerRespVO;
|
import com.ycwl.basic.model.pc.broker.resp.BrokerRespVO;
|
||||||
import com.ycwl.basic.model.pc.order.entity.OrderEntity;
|
import com.ycwl.basic.model.pc.order.entity.OrderEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
||||||
import com.ycwl.basic.repository.OrderRepository;
|
import com.ycwl.basic.repository.OrderRepository;
|
||||||
import com.ycwl.basic.repository.ScenicRepository;
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -43,14 +43,14 @@ public class BrokerBiz {
|
|||||||
log.info("订单不存在,订单ID:{}", orderId);
|
log.info("订单不存在,订单ID:{}", orderId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(order.getScenicId());
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(order.getScenicId());
|
||||||
if (scenicConfig == null) {
|
if (scenicConfig == null) {
|
||||||
log.info("景区不存在,订单ID:{}", orderId);
|
log.info("景区不存在,订单ID:{}", orderId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int expireDay = 3;
|
int expireDay = 3;
|
||||||
if (scenicConfig.getSampleStoreDay() != null) {
|
if (scenicConfig.getInteger("sample_store_day") != null) {
|
||||||
expireDay = scenicConfig.getSampleStoreDay();
|
expireDay = scenicConfig.getInteger("sample_store_day");
|
||||||
}
|
}
|
||||||
List<Long> brokerIdList = statisticsMapper.getBrokerIdListForUser(order.getMemberId(), DateUtil.offsetDay(DateUtil.beginOfDay(order.getCreateAt()), -expireDay), order.getCreateAt());
|
List<Long> brokerIdList = statisticsMapper.getBrokerIdListForUser(order.getMemberId(), DateUtil.offsetDay(DateUtil.beginOfDay(order.getCreateAt()), -expireDay), order.getCreateAt());
|
||||||
if (brokerIdList == null || brokerIdList.isEmpty()) {
|
if (brokerIdList == null || brokerIdList.isEmpty()) {
|
||||||
@@ -103,7 +103,7 @@ public class BrokerBiz {
|
|||||||
BigDecimal realRate = broker.getBrokerRate();
|
BigDecimal realRate = broker.getBrokerRate();
|
||||||
BigDecimal brokerPrice = order.getPayPrice().multiply(realRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN);
|
BigDecimal brokerPrice = order.getPayPrice().multiply(realRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN);
|
||||||
// todo 需要计算实际提成比例
|
// todo 需要计算实际提成比例
|
||||||
BigDecimal firstRate = scenicConfig.getBrokerDirectRate();
|
BigDecimal firstRate = scenicConfig.getBigDecimal("broker_direct_rate");
|
||||||
if (firstRate == null) {
|
if (firstRate == null) {
|
||||||
firstRate = BigDecimal.ZERO;
|
firstRate = BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
|
|||||||
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
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.order.entity.OrderItemEntity;
|
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
||||||
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
||||||
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
|
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
|
||||||
import com.ycwl.basic.pricing.dto.PriceCalculationRequest;
|
import com.ycwl.basic.pricing.dto.PriceCalculationRequest;
|
||||||
@@ -71,9 +71,9 @@ public class OrderBiz {
|
|||||||
PriceObj priceObj = new PriceObj();
|
PriceObj priceObj = new PriceObj();
|
||||||
priceObj.setGoodsType(goodsType);
|
priceObj.setGoodsType(goodsType);
|
||||||
priceObj.setGoodsId(goodsId);
|
priceObj.setGoodsId(goodsId);
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
if (scenicConfig != null) {
|
if (scenicConfig != null) {
|
||||||
if (Boolean.TRUE.equals(scenicConfig.getAllFree())) {
|
if (Boolean.TRUE.equals(scenicConfig.getBoolean("all_free"))) {
|
||||||
// 景区全免
|
// 景区全免
|
||||||
priceObj.setFree(true);
|
priceObj.setFree(true);
|
||||||
priceObj.setPrice(BigDecimal.ZERO);
|
priceObj.setPrice(BigDecimal.ZERO);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ 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.price.resp.SimpleGoodsRespVO;
|
import com.ycwl.basic.model.pc.price.resp.SimpleGoodsRespVO;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
||||||
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
||||||
import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity;
|
import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity;
|
||||||
import com.ycwl.basic.product.capability.ProductTypeCapability;
|
import com.ycwl.basic.product.capability.ProductTypeCapability;
|
||||||
@@ -65,12 +65,12 @@ public class PriceBiz {
|
|||||||
goods.setGoodsType(0);
|
goods.setGoodsType(0);
|
||||||
return goods;
|
return goods;
|
||||||
}).forEach(goodsList::add);
|
}).forEach(goodsList::add);
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
if (scenicConfig != null) {
|
if (scenicConfig != null) {
|
||||||
if (!Boolean.TRUE.equals(scenicConfig.getDisableSourceVideo())) {
|
if (!Boolean.TRUE.equals(scenicConfig.getBoolean("disable_source_video"))) {
|
||||||
goodsList.add(new GoodsListRespVO(1L, "录像集", 1));
|
goodsList.add(new GoodsListRespVO(1L, "录像集", 1));
|
||||||
}
|
}
|
||||||
if (!Boolean.TRUE.equals(scenicConfig.getDisableSourceImage())) {
|
if (!Boolean.TRUE.equals(scenicConfig.getBoolean("disable_source_image"))) {
|
||||||
goodsList.add(new GoodsListRespVO(2L, "照片集", 2));
|
goodsList.add(new GoodsListRespVO(2L, "照片集", 2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -220,9 +220,9 @@ public class PriceBiz {
|
|||||||
if (face != null && !face.getMemberId().equals(userId)) {
|
if (face != null && !face.getMemberId().equals(userId)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
if (scenicConfig != null) {
|
if (scenicConfig != null) {
|
||||||
if (Boolean.TRUE.equals(scenicConfig.getAllFree())) {
|
if (Boolean.TRUE.equals(scenicConfig.getBoolean("all_free"))) {
|
||||||
// 景区全免
|
// 景区全免
|
||||||
respVO.setFree(true);
|
respVO.setFree(true);
|
||||||
respVO.setSlashPrice(BigDecimal.ZERO);
|
respVO.setSlashPrice(BigDecimal.ZERO);
|
||||||
@@ -268,7 +268,7 @@ public class PriceBiz {
|
|||||||
if (allContentsPurchased) {
|
if (allContentsPurchased) {
|
||||||
if (scenicConfig != null) {
|
if (scenicConfig != null) {
|
||||||
// 检查录像集
|
// 检查录像集
|
||||||
if (!Boolean.TRUE.equals(scenicConfig.getDisableSourceVideo())) {
|
if (!Boolean.TRUE.equals(scenicConfig.getBoolean("disable_source_video"))) {
|
||||||
boolean hasPurchasedRecording = orderRepository.checkUserBuyFaceItem(userId, faceId, 1, faceId);
|
boolean hasPurchasedRecording = orderRepository.checkUserBuyFaceItem(userId, faceId, 1, faceId);
|
||||||
if (!hasPurchasedRecording) {
|
if (!hasPurchasedRecording) {
|
||||||
allContentsPurchased = false;
|
allContentsPurchased = false;
|
||||||
@@ -276,7 +276,7 @@ public class PriceBiz {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 检查照片集
|
// 检查照片集
|
||||||
if (allContentsPurchased && !Boolean.TRUE.equals(scenicConfig.getDisableSourceImage())) {
|
if (allContentsPurchased && !Boolean.TRUE.equals(scenicConfig.getBoolean("disable_source_image"))) {
|
||||||
boolean hasPurchasedPhoto = orderRepository.checkUserBuyFaceItem(userId, faceId, 2, faceId);
|
boolean hasPurchasedPhoto = orderRepository.checkUserBuyFaceItem(userId, faceId, 2, faceId);
|
||||||
if (!hasPurchasedPhoto) {
|
if (!hasPurchasedPhoto) {
|
||||||
allContentsPurchased = false;
|
allContentsPurchased = false;
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ public class PrepareContextStage extends AbstractPipelineStage<FaceMatchingConte
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 3. 加载景区配置
|
// 3. 加载景区配置
|
||||||
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(face.getScenicId());
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
context.setScenicConfig(scenicConfig);
|
context.setScenicConfig(configManager);
|
||||||
log.debug("加载景区配置成功: scenicId={}", face.getScenicId());
|
log.debug("加载景区配置成功: scenicId={}", face.getScenicId());
|
||||||
|
|
||||||
// 4. 加载人脸识别适配器
|
// 4. 加载人脸识别适配器
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import java.util.Date;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName("scenic_config")
|
@TableName("scenic_config")
|
||||||
|
@Deprecated
|
||||||
public class ScenicConfigEntity {
|
public class ScenicConfigEntity {
|
||||||
@TableId
|
@TableId
|
||||||
private Long id;
|
private Long id;
|
||||||
@@ -102,10 +103,6 @@ public class ScenicConfigEntity {
|
|||||||
private Float faceScoreThreshold;
|
private Float faceScoreThreshold;
|
||||||
private StorageType storeType;
|
private StorageType storeType;
|
||||||
private String storeConfigJson;
|
private String storeConfigJson;
|
||||||
private StorageType tmpStoreType;
|
|
||||||
private String tmpStoreConfigJson;
|
|
||||||
private StorageType localStoreType;
|
|
||||||
private String localStoreConfigJson;
|
|
||||||
private BigDecimal brokerDirectRate;
|
private BigDecimal brokerDirectRate;
|
||||||
private Integer faceDetectHelperThreshold;
|
private Integer faceDetectHelperThreshold;
|
||||||
|
|
||||||
|
|||||||
@@ -82,8 +82,8 @@ public class VoucherPrintServiceImpl implements VoucherPrintService {
|
|||||||
// 验证faceId是否属于当前用户
|
// 验证faceId是否属于当前用户
|
||||||
validateFaceOwnership(request.getFaceId(), currentUserId);
|
validateFaceOwnership(request.getFaceId(), currentUserId);
|
||||||
|
|
||||||
ScenicConfigManager config = scenicRepository.getScenicConfigManager(face.getScenicId());
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
Long brokerId = config.getLong("voucher_broker_id");
|
Long brokerId = configManager.getLong("voucher_broker_id");
|
||||||
if (brokerId != null) {
|
if (brokerId != null) {
|
||||||
if (!request.getBrokerId().equals(brokerId)) {
|
if (!request.getBrokerId().equals(brokerId)) {
|
||||||
return null;
|
return null;
|
||||||
@@ -192,11 +192,11 @@ public class VoucherPrintServiceImpl implements VoucherPrintService {
|
|||||||
}
|
}
|
||||||
request.setScenicId(face.getScenicId());
|
request.setScenicId(face.getScenicId());
|
||||||
|
|
||||||
ScenicConfigManager config = scenicRepository.getScenicConfigManager(face.getScenicId());
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
if (!Boolean.TRUE.equals(config.getBoolean("booking_enable"))) {
|
if (!Boolean.TRUE.equals(configManager.getBoolean("booking_enable"))) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
Long brokerId = config.getLong("booking_broker_id");
|
Long brokerId = configManager.getLong("booking_broker_id");
|
||||||
if (brokerId != null) {
|
if (brokerId != null) {
|
||||||
if (!request.getBrokerId().equals(brokerId)) {
|
if (!request.getBrokerId().equals(brokerId)) {
|
||||||
return null;
|
return null;
|
||||||
@@ -370,9 +370,9 @@ public class VoucherPrintServiceImpl implements VoucherPrintService {
|
|||||||
content += "<CB>"+voucherPrintResp.getCode()+"</CB>";
|
content += "<CB>"+voucherPrintResp.getCode()+"</CB>";
|
||||||
content += "<C>"+voucherPrintResp.getType()+"</C>";
|
content += "<C>"+voucherPrintResp.getType()+"</C>";
|
||||||
content += "<C>有效期:"+sdf2.format(new Date())+"</C>";
|
content += "<C>有效期:"+sdf2.format(new Date())+"</C>";
|
||||||
ScenicConfigManager config = scenicRepository.getScenicConfigManager(face.getScenicId());
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
if (Strings.isNotBlank(config.getString("ticket_print_sn"))) {
|
if (Strings.isNotBlank(configManager.getString("ticket_print_sn"))) {
|
||||||
FeiETicketPrinter.doPrint(config.getString("ticket_print_sn"), content, 1);
|
FeiETicketPrinter.doPrint(configManager.getString("ticket_print_sn"), content, 1);
|
||||||
} else {
|
} else {
|
||||||
log.warn("打印没有配置->内容:\n{}", content);
|
log.warn("打印没有配置->内容:\n{}", content);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import com.ycwl.basic.mapper.MpNotifyConfigMapper;
|
|||||||
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
|
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
|
||||||
import com.ycwl.basic.model.pc.mp.MpNotifyConfigEntity;
|
import com.ycwl.basic.model.pc.mp.MpNotifyConfigEntity;
|
||||||
import com.ycwl.basic.model.pc.mp.ScenicMpNotifyVO;
|
import com.ycwl.basic.model.pc.mp.ScenicMpNotifyVO;
|
||||||
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.entity.ScenicEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
||||||
import com.ycwl.basic.pay.enums.PayAdapterType;
|
import com.ycwl.basic.pay.enums.PayAdapterType;
|
||||||
@@ -59,78 +58,6 @@ public class ScenicRepository {
|
|||||||
return scenicEntity;
|
return scenicEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public ScenicConfigEntity getScenicConfig(Long scenicId) {
|
|
||||||
ScenicConfigManager scenicConfigManager = getScenicConfigManager(scenicId);
|
|
||||||
ScenicConfigEntity config = new ScenicConfigEntity();
|
|
||||||
|
|
||||||
// 基础配置
|
|
||||||
config.setScenicId(scenicId);
|
|
||||||
if (scenicConfigManager == null) {
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 业务流程配置
|
|
||||||
config.setBookRoutine(scenicConfigManager.getInteger("book_routine"));
|
|
||||||
config.setForceFinishTime(scenicConfigManager.getInteger("force_finish_time"));
|
|
||||||
config.setTourTime(scenicConfigManager.getInteger("tour_time"));
|
|
||||||
|
|
||||||
// 存储时间配置
|
|
||||||
config.setSampleStoreDay(scenicConfigManager.getInteger("sample_store_day"));
|
|
||||||
config.setFaceStoreDay(scenicConfigManager.getInteger("face_store_day"));
|
|
||||||
config.setVideoStoreDay(scenicConfigManager.getInteger("video_store_day"));
|
|
||||||
config.setVideoSourceStoreDay(scenicConfigManager.getInteger("video_source_store_day"));
|
|
||||||
config.setImageSourceStoreDay(scenicConfigManager.getInteger("image_source_store_day"));
|
|
||||||
config.setUserSourceExpireDay(scenicConfigManager.getInteger("user_source_expire_day"));
|
|
||||||
|
|
||||||
// 功能开关配置
|
|
||||||
config.setAllFree(scenicConfigManager.getBoolean("all_free"));
|
|
||||||
config.setDisableSourceVideo(scenicConfigManager.getBoolean("disable_source_video"));
|
|
||||||
config.setDisableSourceImage(scenicConfigManager.getBoolean("disable_source_image"));
|
|
||||||
config.setVoucherEnable(scenicConfigManager.getBoolean("voucher_enable"));
|
|
||||||
|
|
||||||
// 模板和防录屏配置
|
|
||||||
config.setTemplateNewVideoType(scenicConfigManager.getInteger("template_new_video_type"));
|
|
||||||
config.setAntiScreenRecordType(scenicConfigManager.getInteger("anti_screen_record_type"));
|
|
||||||
|
|
||||||
// 人脸识别配置
|
|
||||||
config.setFaceScoreThreshold(scenicConfigManager.getFloat("face_score_threshold"));
|
|
||||||
config.setFaceDetectHelperThreshold(scenicConfigManager.getInteger("face_detect_helper_threshold"));
|
|
||||||
config.setFaceType(scenicConfigManager.getEnum("face_type", FaceBodyAdapterType.class));
|
|
||||||
config.setFaceConfigJson(scenicConfigManager.getString("face_config_json"));
|
|
||||||
|
|
||||||
// 存储配置
|
|
||||||
config.setStoreType(scenicConfigManager.getEnum("store_type", StorageType.class));
|
|
||||||
config.setStoreConfigJson(scenicConfigManager.getString("store_config_json"));
|
|
||||||
config.setTmpStoreType(scenicConfigManager.getEnum("tmp_store_type", StorageType.class));
|
|
||||||
config.setTmpStoreConfigJson(scenicConfigManager.getString("tmp_store_config_json"));
|
|
||||||
config.setLocalStoreType(scenicConfigManager.getEnum("local_store_type", StorageType.class));
|
|
||||||
config.setLocalStoreConfigJson(scenicConfigManager.getString("local_store_config_json"));
|
|
||||||
|
|
||||||
// 支付配置
|
|
||||||
config.setPayType(scenicConfigManager.getEnum("pay_type", PayAdapterType.class));
|
|
||||||
config.setPayConfigJson(scenicConfigManager.getString("pay_config_json"));
|
|
||||||
|
|
||||||
// 推客配置
|
|
||||||
config.setBrokerDirectRate(scenicConfigManager.getBigDecimal("broker_direct_rate"));
|
|
||||||
|
|
||||||
// 水印配置
|
|
||||||
config.setWatermarkType(scenicConfigManager.getString("watermark_type"));
|
|
||||||
config.setWatermarkScenicText(scenicConfigManager.getString("watermark_scenic_text"));
|
|
||||||
config.setWatermarkDtFormat(scenicConfigManager.getString("watermark_dt_format"));
|
|
||||||
|
|
||||||
// 提示信息配置
|
|
||||||
config.setImageSourcePackHint(scenicConfigManager.getString("image_source_pack_hint"));
|
|
||||||
config.setVideoSourcePackHint(scenicConfigManager.getString("video_source_pack_hint"));
|
|
||||||
config.setExtraNotificationTime(scenicConfigManager.getString("extra_notification_time"));
|
|
||||||
|
|
||||||
// 免费数量配置
|
|
||||||
config.setPhotoFreeNum(scenicConfigManager.getInteger("photo_free_num"));
|
|
||||||
config.setVideoFreeNum(scenicConfigManager.getInteger("video_free_num"));
|
|
||||||
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MpConfigEntity getScenicMpConfig(Long scenicId) {
|
public MpConfigEntity getScenicMpConfig(Long scenicId) {
|
||||||
if (redisTemplate.hasKey(String.format(SCENIC_MP_CACHE_KEY, scenicId))) {
|
if (redisTemplate.hasKey(String.format(SCENIC_MP_CACHE_KEY, scenicId))) {
|
||||||
return JacksonUtil.parseObject(redisTemplate.opsForValue().get(String.format(SCENIC_MP_CACHE_KEY, scenicId)), MpConfigEntity.class);
|
return JacksonUtil.parseObject(redisTemplate.opsForValue().get(String.format(SCENIC_MP_CACHE_KEY, scenicId)), MpConfigEntity.class);
|
||||||
|
|||||||
@@ -285,7 +285,7 @@ public class AppAiCamServiceImpl implements AppAiCamService {
|
|||||||
int freePhotoCount = 0;
|
int freePhotoCount = 0;
|
||||||
if (!hasGivenFree) {
|
if (!hasGivenFree) {
|
||||||
try {
|
try {
|
||||||
com.ycwl.basic.integration.common.manager.ScenicConfigManager configManager =
|
ScenicConfigManager configManager =
|
||||||
scenicRepository.getScenicConfigManager(face.getScenicId());
|
scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
if (configManager != null) {
|
if (configManager != null) {
|
||||||
Integer aiCamFreeNum = configManager.getInteger("ai_cam_free_num");
|
Integer aiCamFreeNum = configManager.getInteger("ai_cam_free_num");
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ 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.entity.FaceEntity;
|
||||||
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
||||||
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
|
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
|
||||||
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
||||||
import com.ycwl.basic.model.pc.source.entity.SourceWatermarkEntity;
|
import com.ycwl.basic.model.pc.source.entity.SourceWatermarkEntity;
|
||||||
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
|
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
|
||||||
@@ -51,6 +50,7 @@ import com.ycwl.basic.model.repository.TaskUpdateResult;
|
|||||||
import com.ycwl.basic.storage.StorageFactory;
|
import com.ycwl.basic.storage.StorageFactory;
|
||||||
import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
import com.ycwl.basic.storage.adapters.IStorageAdapter;
|
||||||
import com.ycwl.basic.storage.enums.StorageAcl;
|
import com.ycwl.basic.storage.enums.StorageAcl;
|
||||||
|
import com.ycwl.basic.storage.enums.StorageType;
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
import com.ycwl.basic.utils.WxMpUtil;
|
import com.ycwl.basic.utils.WxMpUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -563,15 +563,15 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
IsBuyRespVO isBuy = orderBiz.isBuy(face.getScenicId(), face.getMemberId(), face.getId(), query.getSourceType(), face.getId());
|
IsBuyRespVO isBuy = orderBiz.isBuy(face.getScenicId(), face.getMemberId(), face.getId(), query.getSourceType(), face.getId());
|
||||||
if (!isBuy.isBuy()) {
|
if (!isBuy.isBuy()) {
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(face.getScenicId());
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
if (scenicConfig != null && ((scenicConfig.getAntiScreenRecordType() & 2) == 0)) {
|
if (configManager != null && ((configManager.getInteger("anti_screen_record_type") & 2) == 0)) {
|
||||||
// 未启用水印
|
// 未启用水印
|
||||||
return defaultUrlList;
|
return defaultUrlList;
|
||||||
}
|
}
|
||||||
IStorageAdapter adapter;
|
IStorageAdapter adapter;
|
||||||
if (scenicConfig != null && scenicConfig.getStoreType() != null) {
|
if (configManager != null && configManager.getEnum("store_type", StorageType.class) != null) {
|
||||||
adapter = StorageFactory.get(scenicConfig.getStoreType());
|
adapter = StorageFactory.get(configManager.getEnum("store_type", StorageType.class));
|
||||||
adapter.loadConfig(JacksonUtil.parseObject(scenicConfig.getStoreConfigJson(), Map.class));
|
adapter.loadConfig(JacksonUtil.parseObject(configManager.getString("store_config_json"), Map.class));
|
||||||
} else {
|
} else {
|
||||||
adapter = StorageFactory.use("assets-ext");
|
adapter = StorageFactory.use("assets-ext");
|
||||||
}
|
}
|
||||||
@@ -667,19 +667,19 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
goodsUrlVO.setCreateTime(source.getCreateTime());
|
goodsUrlVO.setCreateTime(source.getCreateTime());
|
||||||
return goodsUrlVO;
|
return goodsUrlVO;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(face.getScenicId());
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
MpConfigEntity scenicMpConfig = scenicRepository.getScenicMpConfig(face.getScenicId());
|
MpConfigEntity scenicMpConfig = scenicRepository.getScenicMpConfig(face.getScenicId());
|
||||||
if (scenicMpConfig == null) {
|
if (scenicMpConfig == null) {
|
||||||
log.warn("未配置小程序参数,无法生成二维码");
|
log.warn("未配置小程序参数,无法生成二维码");
|
||||||
return defaultUrlList;
|
return defaultUrlList;
|
||||||
}
|
}
|
||||||
if (scenicConfig != null && scenicConfig.getWatermarkType() != null && !isBuy.isBuy()) {
|
if (configManager != null && configManager.getString("watermark_type") != null && !isBuy.isBuy()) {
|
||||||
ImageWatermarkOperatorEnum type = ImageWatermarkOperatorEnum.getByCode(scenicConfig.getWatermarkType());
|
ImageWatermarkOperatorEnum type = ImageWatermarkOperatorEnum.getByCode(configManager.getString("watermark_type"));
|
||||||
if (type != null) {
|
if (type != null) {
|
||||||
IStorageAdapter adapter;
|
IStorageAdapter adapter;
|
||||||
if (scenicConfig.getStoreType() != null) {
|
if (configManager.getEnum("store_type", StorageType.class) != null) {
|
||||||
adapter = StorageFactory.get(scenicConfig.getStoreType());
|
adapter = StorageFactory.get(configManager.getEnum("store_type", StorageType.class));
|
||||||
adapter.loadConfig(JacksonUtil.parseObject(scenicConfig.getStoreConfigJson(), Map.class));
|
adapter.loadConfig(JacksonUtil.parseObject(configManager.getString("store_config_json"), Map.class));
|
||||||
} else {
|
} else {
|
||||||
adapter = StorageFactory.use("assets-ext");
|
adapter = StorageFactory.use("assets-ext");
|
||||||
}
|
}
|
||||||
@@ -708,7 +708,7 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
item.setUrl(any.get().getWatermarkUrl());
|
item.setUrl(any.get().getWatermarkUrl());
|
||||||
} else {
|
} else {
|
||||||
// 生成
|
// 生成
|
||||||
String text = scenicConfig.getWatermarkScenicText();
|
String text = configManager.getString("watermark_scenic_text");
|
||||||
if (StringUtils.isBlank(text)) {
|
if (StringUtils.isBlank(text)) {
|
||||||
SourceEntity entity = sourceMapper.getEntity(item.getGoodsId());
|
SourceEntity entity = sourceMapper.getEntity(item.getGoodsId());
|
||||||
if (entity != null) {
|
if (entity != null) {
|
||||||
@@ -733,7 +733,7 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
info.setScenicLine(text);
|
info.setScenicLine(text);
|
||||||
info.setDatetime(item.getCreateTime());
|
info.setDatetime(item.getCreateTime());
|
||||||
info.setFaceFile(faceFile);
|
info.setFaceFile(faceFile);
|
||||||
info.setDtFormat(scenicConfig.getWatermarkDtFormat());
|
info.setDtFormat(configManager.getString("watermark_dt_format"));
|
||||||
info.setWatermarkedFile(watermarkedFile);
|
info.setWatermarkedFile(watermarkedFile);
|
||||||
try {
|
try {
|
||||||
operator.process(info);
|
operator.process(info);
|
||||||
@@ -829,7 +829,7 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取景区配置
|
// 获取景区配置
|
||||||
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(scenicId);
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
|
|
||||||
// 使用 LinkedHashMap 按 goodsType-goodsId 去重
|
// 使用 LinkedHashMap 按 goodsType-goodsId 去重
|
||||||
Map<String, GoodsPageVO> goodsMap = new LinkedHashMap<>();
|
Map<String, GoodsPageVO> goodsMap = new LinkedHashMap<>();
|
||||||
@@ -882,9 +882,9 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
// 根据景区配置过滤禁用的素材类型
|
// 根据景区配置过滤禁用的素材类型
|
||||||
boolean isDisabled = false;
|
boolean isDisabled = false;
|
||||||
if (Integer.valueOf(1).equals(type)) {
|
if (Integer.valueOf(1).equals(type)) {
|
||||||
isDisabled = Boolean.TRUE.equals(scenicConfig.getBoolean("disable_source_video"));
|
isDisabled = Boolean.TRUE.equals(configManager.getBoolean("disable_source_video"));
|
||||||
} else if (Integer.valueOf(2).equals(type)) {
|
} else if (Integer.valueOf(2).equals(type)) {
|
||||||
isDisabled = Boolean.TRUE.equals(scenicConfig.getBoolean("disable_source_image"));
|
isDisabled = Boolean.TRUE.equals(configManager.getBoolean("disable_source_image"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isDisabled) {
|
if (!isDisabled) {
|
||||||
@@ -895,13 +895,13 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
goodsPageVO.setGoodsType(type);
|
goodsPageVO.setGoodsType(type);
|
||||||
if (type == 1) {
|
if (type == 1) {
|
||||||
goodsPageVO.setGoodsName("录像集");
|
goodsPageVO.setGoodsName("录像集");
|
||||||
goodsPageVO.setTemplateCoverUrl(scenicConfig.getString("video_cover_url"));
|
goodsPageVO.setTemplateCoverUrl(configManager.getString("video_cover_url"));
|
||||||
} else if (type == 2) {
|
} else if (type == 2) {
|
||||||
goodsPageVO.setGoodsName("照片集");
|
goodsPageVO.setGoodsName("照片集");
|
||||||
goodsPageVO.setTemplateCoverUrl(scenicConfig.getString("photo_cover_url"));
|
goodsPageVO.setTemplateCoverUrl(configManager.getString("photo_cover_url"));
|
||||||
} else if (type == 3) {
|
} else if (type == 3) {
|
||||||
goodsPageVO.setGoodsName("AI微单");
|
goodsPageVO.setGoodsName("AI微单");
|
||||||
goodsPageVO.setTemplateCoverUrl(scenicConfig.getString("ai_camera_cover_url"));
|
goodsPageVO.setTemplateCoverUrl(configManager.getString("ai_camera_cover_url"));
|
||||||
} else {
|
} else {
|
||||||
goodsPageVO.setGoodsName("未知商品");
|
goodsPageVO.setGoodsName("未知商品");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -854,8 +854,8 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
if (matchResult == null || StringUtils.isBlank(matchResult)) {
|
if (matchResult == null || StringUtils.isBlank(matchResult)) {
|
||||||
return List.of();
|
return List.of();
|
||||||
}
|
}
|
||||||
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(face.getScenicId());
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
if (scenicConfig == null) {
|
if (configManager == null) {
|
||||||
return List.of();
|
return List.of();
|
||||||
}
|
}
|
||||||
Float lowThreshold = scenicConfigFacade.getFaceScoreLowThreshold(face.getScenicId());
|
Float lowThreshold = scenicConfigFacade.getFaceScoreLowThreshold(face.getScenicId());
|
||||||
@@ -903,7 +903,7 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
throw new BaseException("未找到指定的人脸样本");
|
throw new BaseException("未找到指定的人脸样本");
|
||||||
}
|
}
|
||||||
|
|
||||||
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(face.getScenicId());
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
IFaceBodyAdapter faceBodyAdapter = scenicService.getScenicFaceBodyAdapter(face.getScenicId());
|
IFaceBodyAdapter faceBodyAdapter = scenicService.getScenicFaceBodyAdapter(face.getScenicId());
|
||||||
|
|
||||||
if (faceBodyAdapter == null) {
|
if (faceBodyAdapter == null) {
|
||||||
@@ -956,7 +956,7 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
if (mergedResult.getSampleListIds() != null && !mergedResult.getSampleListIds().isEmpty()) {
|
if (mergedResult.getSampleListIds() != null && !mergedResult.getSampleListIds().isEmpty()) {
|
||||||
List<FaceSampleEntity> allFaceSampleList = faceSampleMapper.listByIds(mergedResult.getSampleListIds());
|
List<FaceSampleEntity> allFaceSampleList = faceSampleMapper.listByIds(mergedResult.getSampleListIds());
|
||||||
List<Long> filteredSampleIds = faceService.applySampleFilters(
|
List<Long> filteredSampleIds = faceService.applySampleFilters(
|
||||||
mergedResult.getSampleListIds(), allFaceSampleList, scenicConfig);
|
mergedResult.getSampleListIds(), allFaceSampleList, configManager);
|
||||||
mergedResult.setSampleListIds(filteredSampleIds);
|
mergedResult.setSampleListIds(filteredSampleIds);
|
||||||
log.debug("应用后置筛选:原始样本数={}, 筛选后样本数={}",
|
log.debug("应用后置筛选:原始样本数={}, 筛选后样本数={}",
|
||||||
allFaceSampleList.size(), filteredSampleIds.size());
|
allFaceSampleList.size(), filteredSampleIds.size());
|
||||||
@@ -1097,9 +1097,9 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
// 获取景区配置的得分阈值
|
// 获取景区配置的得分阈值
|
||||||
Float scoreThreshold = null;
|
Float scoreThreshold = null;
|
||||||
try {
|
try {
|
||||||
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(face.getScenicId());
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
if (scenicConfig != null) {
|
if (configManager != null) {
|
||||||
BigDecimal thresholdConfig = scenicConfig.getBigDecimal("face_select_score_threshold");
|
BigDecimal thresholdConfig = configManager.getBigDecimal("face_select_score_threshold");
|
||||||
if (thresholdConfig != null) {
|
if (thresholdConfig != null) {
|
||||||
// 配置值是0~100的小数,需要转换为0~1的阈值
|
// 配置值是0~100的小数,需要转换为0~1的阈值
|
||||||
scoreThreshold = thresholdConfig.floatValue() / 100.0f;
|
scoreThreshold = thresholdConfig.floatValue() / 100.0f;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.ycwl.basic.exception.BaseException;
|
|||||||
import com.ycwl.basic.facebody.FaceBodyFactory;
|
import com.ycwl.basic.facebody.FaceBodyFactory;
|
||||||
import com.ycwl.basic.facebody.adapter.AliFaceBodyAdapter;
|
import com.ycwl.basic.facebody.adapter.AliFaceBodyAdapter;
|
||||||
import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter;
|
import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter;
|
||||||
|
import com.ycwl.basic.facebody.enums.FaceBodyAdapterType;
|
||||||
import com.ycwl.basic.facebody.entity.SearchFaceResp;
|
import com.ycwl.basic.facebody.entity.SearchFaceResp;
|
||||||
import com.ycwl.basic.facebody.entity.SearchFaceResultItem;
|
import com.ycwl.basic.facebody.entity.SearchFaceResultItem;
|
||||||
import com.ycwl.basic.mapper.FaceDetectLogMapper;
|
import com.ycwl.basic.mapper.FaceDetectLogMapper;
|
||||||
@@ -27,7 +28,6 @@ import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
|||||||
import com.ycwl.basic.model.pc.faceDetectLog.entity.FaceDetectLog;
|
import com.ycwl.basic.model.pc.faceDetectLog.entity.FaceDetectLog;
|
||||||
import com.ycwl.basic.model.pc.faceDetectLog.resp.MatchLocalRecord;
|
import com.ycwl.basic.model.pc.faceDetectLog.resp.MatchLocalRecord;
|
||||||
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
|
||||||
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
||||||
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
||||||
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
||||||
@@ -107,11 +107,11 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
Long scenicId = face.getScenicId();
|
Long scenicId = face.getScenicId();
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
IFaceBodyAdapter faceBodyAdapter;
|
IFaceBodyAdapter faceBodyAdapter;
|
||||||
if (scenicConfig != null && scenicConfig.getFaceType() != null) {
|
if (configManager != null && configManager.getEnum("face_type", FaceBodyAdapterType.class) != null) {
|
||||||
faceBodyAdapter = FaceBodyFactory.getAdapter(scenicConfig.getFaceType());
|
faceBodyAdapter = FaceBodyFactory.getAdapter(configManager.getEnum("face_type", FaceBodyAdapterType.class));
|
||||||
faceBodyAdapter.loadConfig(JacksonUtil.parseObject(scenicConfig.getFaceConfigJson(), Map.class));
|
faceBodyAdapter.loadConfig(JacksonUtil.parseObject(configManager.getString("face_config_json"), Map.class));
|
||||||
} else {
|
} else {
|
||||||
faceBodyAdapter = FaceBodyFactory.use();
|
faceBodyAdapter = FaceBodyFactory.use();
|
||||||
}
|
}
|
||||||
@@ -178,9 +178,9 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
.collect(Collectors.groupingBy(FaceSampleEntity::getDeviceId))
|
.collect(Collectors.groupingBy(FaceSampleEntity::getDeviceId))
|
||||||
.entrySet()
|
.entrySet()
|
||||||
.stream().flatMap(entry -> {
|
.stream().flatMap(entry -> {
|
||||||
DeviceConfigManager configManager = deviceRepository.getDeviceConfigManager(entry.getKey());
|
DeviceConfigManager deviceConfigManager = deviceRepository.getDeviceConfigManager(entry.getKey());
|
||||||
if (configManager.getInteger("limit_video", 0) > 0) {
|
if (deviceConfigManager.getInteger("limit_video", 0) > 0) {
|
||||||
return entry.getValue().subList(0, Math.min(entry.getValue().size(), configManager.getInteger("limit_video", 0))).stream();
|
return entry.getValue().subList(0, Math.min(entry.getValue().size(), deviceConfigManager.getInteger("limit_video", 0))).stream();
|
||||||
}
|
}
|
||||||
return entry.getValue().stream();
|
return entry.getValue().stream();
|
||||||
}).toList()
|
}).toList()
|
||||||
@@ -315,7 +315,7 @@ public class TaskFaceServiceImpl implements TaskFaceService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean deleteFaceSample(Long scenicId, String dbName, String entityId) {
|
public boolean deleteFaceSample(Long scenicId, String dbName, String entityId) {
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager configManager = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
IFaceBodyAdapter adapter = scenicService.getScenicFaceBodyAdapter(scenicId);
|
IFaceBodyAdapter adapter = scenicService.getScenicFaceBodyAdapter(scenicId);
|
||||||
log.info("删除{}人脸实体:{}", dbName, entityId);
|
log.info("删除{}人脸实体:{}", dbName, entityId);
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -400,9 +400,9 @@ public class TaskTaskServiceImpl implements TaskService {
|
|||||||
memberVideoEntity.setIsBuy(0);
|
memberVideoEntity.setIsBuy(0);
|
||||||
if (list.isEmpty()) {
|
if (list.isEmpty()) {
|
||||||
log.info("创建任务! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap);
|
log.info("创建任务! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap);
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(face.getScenicId());
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
TaskEntity taskEntity = null;
|
TaskEntity taskEntity = null;
|
||||||
if (Integer.valueOf(0).equals(scenicConfig.getTemplateNewVideoType())) {
|
if (Integer.valueOf(0).equals(scenicConfig.getInteger("template_new_video_type"))) {
|
||||||
log.info("景区{}启用:templateNewVideoType:全新视频原位替换", face.getScenicId());
|
log.info("景区{}启用:templateNewVideoType:全新视频原位替换", face.getScenicId());
|
||||||
taskReqQuery.setTemplateId(templateId);
|
taskReqQuery.setTemplateId(templateId);
|
||||||
List<TaskEntity> templateTaskList = taskMapper.listEntity(taskReqQuery);
|
List<TaskEntity> templateTaskList = taskMapper.listEntity(taskReqQuery);
|
||||||
@@ -499,7 +499,7 @@ public class TaskTaskServiceImpl implements TaskService {
|
|||||||
}
|
}
|
||||||
videoMapper.add(video);
|
videoMapper.add(video);
|
||||||
}
|
}
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(task.getScenicId());
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(task.getScenicId());
|
||||||
IStorageAdapter adapter = scenicService.getScenicTmpStorageAdapter(task.getScenicId());
|
IStorageAdapter adapter = scenicService.getScenicTmpStorageAdapter(task.getScenicId());
|
||||||
String hash = MD5.create().digestHex(task.getTaskParams() + task.getFaceId().toString());
|
String hash = MD5.create().digestHex(task.getTaskParams() + task.getFaceId().toString());
|
||||||
String filename = StorageUtil.joinPath(StorageConstant.VLOG_PATH, task.getTemplateId().toString() + "_" + hash + "_" + task.getScenicId() + ".mp4");
|
String filename = StorageUtil.joinPath(StorageConstant.VLOG_PATH, task.getTemplateId().toString() + "_" + hash + "_" + task.getScenicId() + ".mp4");
|
||||||
@@ -516,7 +516,7 @@ public class TaskTaskServiceImpl implements TaskService {
|
|||||||
}
|
}
|
||||||
if (isBuy != 1) {
|
if (isBuy != 1) {
|
||||||
// 判断景区新生成免费送逻辑
|
// 判断景区新生成免费送逻辑
|
||||||
if (scenicConfig != null && Integer.valueOf(2).equals(scenicConfig.getTemplateNewVideoType())) {
|
if (scenicConfig != null && Integer.valueOf(2).equals(scenicConfig.getInteger("template_new_video_type"))) {
|
||||||
log.info("景区{}启用:templateNewVideoType:全新视频不需要重新购买", task.getScenicId());
|
log.info("景区{}启用:templateNewVideoType:全新视频不需要重新购买", task.getScenicId());
|
||||||
// 全新视频,不需要重新购买,旧视频在我的里面查看
|
// 全新视频,不需要重新购买,旧视频在我的里面查看
|
||||||
List<MemberVideoEntity> entityList = videoMapper.listRelationByFaceAndTemplate(face.getId(), task.getTemplateId());
|
List<MemberVideoEntity> entityList = videoMapper.listRelationByFaceAndTemplate(face.getId(), task.getTemplateId());
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import com.ycwl.basic.model.pc.coupon.req.CouponQueryReq;
|
|||||||
import com.ycwl.basic.model.pc.coupon.resp.CouponRespVO;
|
import com.ycwl.basic.model.pc.coupon.resp.CouponRespVO;
|
||||||
import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
|
import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
|
||||||
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
|
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
|
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
||||||
import com.ycwl.basic.repository.ScenicRepository;
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
@@ -146,8 +146,8 @@ public class DownloadNotificationTasker {
|
|||||||
sentMemberIds.add(item.getMemberId());
|
sentMemberIds.add(item.getMemberId());
|
||||||
|
|
||||||
MemberRespVO member = memberMapper.getById(item.getMemberId());
|
MemberRespVO member = memberMapper.getById(item.getMemberId());
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(item.getScenicId());
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(item.getScenicId());
|
||||||
Integer videoStoreDay = scenicConfig.getVideoStoreDay();
|
Integer videoStoreDay = scenicConfig.getInteger("video_store_day");
|
||||||
if (videoStoreDay == null) {
|
if (videoStoreDay == null) {
|
||||||
videoStoreDay = 3;
|
videoStoreDay = 3;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import com.ycwl.basic.mapper.FaceSampleMapper;
|
|||||||
import com.ycwl.basic.mapper.TemplateMapper;
|
import com.ycwl.basic.mapper.TemplateMapper;
|
||||||
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
||||||
import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO;
|
import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
||||||
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
||||||
import com.ycwl.basic.repository.FaceRepository;
|
import com.ycwl.basic.repository.FaceRepository;
|
||||||
import com.ycwl.basic.repository.ScenicRepository;
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
@@ -100,20 +100,20 @@ public class DynamicTaskGenerator {
|
|||||||
log.debug("人脸样本ID{}人脸质量为空", task.getFaceSampleId());
|
log.debug("人脸样本ID{}人脸质量为空", task.getFaceSampleId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceSample.getScenicId());
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(faceSample.getScenicId());
|
||||||
if (scenicConfig == null) {
|
if (scenicConfig == null) {
|
||||||
log.debug("当前景区{},无配置", faceSample.getScenicId());
|
log.debug("当前景区{},无配置", faceSample.getScenicId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!Integer.valueOf(5).equals(scenicConfig.getBookRoutine())) {
|
if (!Integer.valueOf(5).equals(scenicConfig.getInteger("book_routine"))) {
|
||||||
log.debug("当前景区{}未启用预约流程,跳过", faceSample.getScenicId());
|
log.debug("当前景区{}未启用预约流程,跳过", faceSample.getScenicId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
log.info("开始执行任务:{}", task);
|
log.info("开始执行任务:{}", task);
|
||||||
IFaceBodyAdapter faceBodyAdapter;
|
IFaceBodyAdapter faceBodyAdapter;
|
||||||
if (scenicConfig.getFaceType() != null) {
|
if (scenicConfig.getInteger("face_type") != null) {
|
||||||
faceBodyAdapter = FaceBodyFactory.getAdapter(scenicConfig.getFaceType());
|
faceBodyAdapter = FaceBodyFactory.getAdapter(String.valueOf(scenicConfig.getInteger("face_type")));
|
||||||
faceBodyAdapter.loadConfig(JacksonUtil.parseObject(scenicConfig.getFaceConfigJson(), Map.class));
|
faceBodyAdapter.loadConfig(JacksonUtil.parseObject(scenicConfig.getString("face_config_json"), Map.class));
|
||||||
} else {
|
} else {
|
||||||
faceBodyAdapter = FaceBodyFactory.use();
|
faceBodyAdapter = FaceBodyFactory.use();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
|||||||
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
||||||
import com.ycwl.basic.model.pc.faceSample.req.FaceSampleReqQuery;
|
import com.ycwl.basic.model.pc.faceSample.req.FaceSampleReqQuery;
|
||||||
import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO;
|
import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
||||||
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
||||||
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
|
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
|
||||||
import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
|
import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
|
||||||
@@ -67,8 +67,8 @@ public class FaceCleaner {
|
|||||||
Long scenicId = Long.parseLong(scenic.getId());
|
Long scenicId = Long.parseLong(scenic.getId());
|
||||||
log.info("当前景区{},开始删除人脸样本", scenicId);
|
log.info("当前景区{},开始删除人脸样本", scenicId);
|
||||||
IFaceBodyAdapter adapter = scenicService.getScenicFaceBodyAdapter(scenicId);
|
IFaceBodyAdapter adapter = scenicService.getScenicFaceBodyAdapter(scenicId);
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
Integer sampleStoreDay = scenicConfig.getSampleStoreDay();
|
Integer sampleStoreDay = scenicConfig.getInteger("sample_store_day");
|
||||||
if (sampleStoreDay == null) {
|
if (sampleStoreDay == null) {
|
||||||
log.info("当前景区{},人脸样本保存天数未设置,默认7天", scenic.getId());
|
log.info("当前景区{},人脸样本保存天数未设置,默认7天", scenic.getId());
|
||||||
sampleStoreDay = 7;
|
sampleStoreDay = 7;
|
||||||
@@ -99,9 +99,9 @@ public class FaceCleaner {
|
|||||||
scenicList.parallelStream().forEach(scenic -> {
|
scenicList.parallelStream().forEach(scenic -> {
|
||||||
Long scenicId = Long.parseLong(scenic.getId());
|
Long scenicId = Long.parseLong(scenic.getId());
|
||||||
log.info("当前景区{},开始删除用户人脸", scenic.getId());
|
log.info("当前景区{},开始删除用户人脸", scenic.getId());
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
IFaceBodyAdapter adapter = scenicService.getScenicFaceBodyAdapter(scenicId);
|
IFaceBodyAdapter adapter = scenicService.getScenicFaceBodyAdapter(scenicId);
|
||||||
Integer faceStoreDay = scenicConfig.getFaceStoreDay();
|
Integer faceStoreDay = scenicConfig.getInteger("face_store_day");
|
||||||
if (faceStoreDay == null) {
|
if (faceStoreDay == null) {
|
||||||
log.info("当前景区{},人脸样本保存天数未设置,默认3天", scenic.getName());
|
log.info("当前景区{},人脸样本保存天数未设置,默认3天", scenic.getName());
|
||||||
faceStoreDay = 3;
|
faceStoreDay = 3;
|
||||||
@@ -135,16 +135,16 @@ public class FaceCleaner {
|
|||||||
List<ScenicV2DTO> scenicList = scenicRepository.list(query);
|
List<ScenicV2DTO> scenicList = scenicRepository.list(query);
|
||||||
scenicList.parallelStream().forEach(scenic -> {
|
scenicList.parallelStream().forEach(scenic -> {
|
||||||
Long scenicId = Long.valueOf(scenic.getId());
|
Long scenicId = Long.valueOf(scenic.getId());
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
if (scenicConfig == null) {
|
if (scenicConfig == null) {
|
||||||
log.info("当前景区{},无配置信息", scenic.getName());
|
log.info("当前景区{},无配置信息", scenic.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (scenicConfig.getUserSourceExpireDay() == null) {
|
if (scenicConfig.getInteger("user_source_expire_day") == null) {
|
||||||
log.info("当前景区{},人脸样本过期天数未设置", scenic.getName());
|
log.info("当前景区{},人脸样本过期天数未设置", scenic.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int expireDay = scenicConfig.getUserSourceExpireDay();
|
int expireDay = scenicConfig.getInteger("user_source_expire_day");
|
||||||
Date endDate = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -expireDay);
|
Date endDate = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -expireDay);
|
||||||
int deleteCount = sourceMapper.deleteNotBuyRelations(scenicId, endDate);
|
int deleteCount = sourceMapper.deleteNotBuyRelations(scenicId, endDate);
|
||||||
log.info("当前景区{},删除关联素材{}个", scenic.getName(), deleteCount);
|
log.info("当前景区{},删除关联素材{}个", scenic.getName(), deleteCount);
|
||||||
@@ -158,16 +158,16 @@ public class FaceCleaner {
|
|||||||
List<ScenicV2DTO> scenicList = scenicRepository.list(query);
|
List<ScenicV2DTO> scenicList = scenicRepository.list(query);
|
||||||
scenicList.parallelStream().forEach(scenic -> {
|
scenicList.parallelStream().forEach(scenic -> {
|
||||||
Long scenicId = Long.valueOf(scenic.getId());
|
Long scenicId = Long.valueOf(scenic.getId());
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
if (scenicConfig == null) {
|
if (scenicConfig == null) {
|
||||||
log.info("当前景区{},无配置信息", scenic.getName());
|
log.info("当前景区{},无配置信息", scenic.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (scenicConfig.getVideoStoreDay() == null) {
|
if (scenicConfig.getInteger("video_store_day") == null) {
|
||||||
log.info("当前景区{},VLOG过期天数未设置", scenic.getName());
|
log.info("当前景区{},VLOG过期天数未设置", scenic.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int expireDay = scenicConfig.getVideoStoreDay();
|
int expireDay = scenicConfig.getInteger("video_store_day");
|
||||||
Date endDate = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -expireDay);
|
Date endDate = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -expireDay);
|
||||||
int deleteCount = videoMapper.deleteNotBuyRelations(scenicId, endDate);
|
int deleteCount = videoMapper.deleteNotBuyRelations(scenicId, endDate);
|
||||||
int deleteVideoCount = videoMapper.deleteUselessVideo();
|
int deleteVideoCount = videoMapper.deleteUselessVideo();
|
||||||
@@ -182,27 +182,27 @@ public class FaceCleaner {
|
|||||||
List<ScenicV2DTO> scenicList = scenicRepository.list(query);
|
List<ScenicV2DTO> scenicList = scenicRepository.list(query);
|
||||||
scenicList.parallelStream().forEach(scenic -> {
|
scenicList.parallelStream().forEach(scenic -> {
|
||||||
Long scenicId = Long.valueOf(scenic.getId());
|
Long scenicId = Long.valueOf(scenic.getId());
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
if (scenicConfig == null) {
|
if (scenicConfig == null) {
|
||||||
log.info("当前景区{},无配置信息", scenic.getName());
|
log.info("当前景区{},无配置信息", scenic.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int imageSourceExpireDay = 7;
|
int imageSourceExpireDay = 7;
|
||||||
int videoSourceExpireDay = 7;
|
int videoSourceExpireDay = 7;
|
||||||
if (scenicConfig.getImageSourceStoreDay() != null) {
|
if (scenicConfig.getInteger("image_source_store_day") != null) {
|
||||||
imageSourceExpireDay = scenicConfig.getImageSourceStoreDay();
|
imageSourceExpireDay = scenicConfig.getInteger("image_source_store_day");
|
||||||
} else {
|
} else {
|
||||||
log.info("当前景区{},原始素材保存天数未设置,默认7天", scenic.getName());
|
log.info("当前景区{},原始素材保存天数未设置,默认7天", scenic.getName());
|
||||||
}
|
}
|
||||||
if (scenicConfig.getVideoSourceStoreDay() != null) {
|
if (scenicConfig.getInteger("video_source_store_day") != null) {
|
||||||
videoSourceExpireDay = scenicConfig.getVideoSourceStoreDay();
|
videoSourceExpireDay = scenicConfig.getInteger("video_source_store_day");
|
||||||
} else {
|
} else {
|
||||||
log.info("当前景区{},原始素材保存天数未设置,默认7天", scenic.getName());
|
log.info("当前景区{},原始素材保存天数未设置,默认7天", scenic.getName());
|
||||||
}
|
}
|
||||||
if (Boolean.TRUE.equals(scenicConfig.getDisableSourceVideo())) {
|
if (Boolean.TRUE.equals(scenicConfig.getBoolean("disable_source_video"))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Boolean.TRUE.equals(scenicConfig.getDisableSourceImage())) {
|
if (Boolean.TRUE.equals(scenicConfig.getBoolean("disable_source_image"))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
log.info("当前景区{},开始删除原始素材", scenic.getName());
|
log.info("当前景区{},开始删除原始素材", scenic.getName());
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import com.ycwl.basic.enums.FaceCutStatus;
|
|||||||
import com.ycwl.basic.integration.common.manager.DeviceConfigManager;
|
import com.ycwl.basic.integration.common.manager.DeviceConfigManager;
|
||||||
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
||||||
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
||||||
import com.ycwl.basic.repository.DeviceRepository;
|
import com.ycwl.basic.repository.DeviceRepository;
|
||||||
import com.ycwl.basic.mapper.FaceSampleMapper;
|
import com.ycwl.basic.mapper.FaceSampleMapper;
|
||||||
import com.ycwl.basic.mapper.SourceMapper;
|
import com.ycwl.basic.mapper.SourceMapper;
|
||||||
@@ -290,17 +290,17 @@ public class VideoPieceGetter {
|
|||||||
if (task.getFaceId() != null) {
|
if (task.getFaceId() != null) {
|
||||||
FaceEntity face = faceRepository.getFace(task.getFaceId());
|
FaceEntity face = faceRepository.getFace(task.getFaceId());
|
||||||
if (face != null) {
|
if (face != null) {
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(face.getScenicId());
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
if (scenicConfig != null) {
|
if (scenicConfig != null) {
|
||||||
// 免费送
|
// 免费送
|
||||||
List<MemberSourceEntity> sourceEntities = memberRelationRepository.listSourceByFaceRelation(face.getId(), 1);
|
List<MemberSourceEntity> sourceEntities = memberRelationRepository.listSourceByFaceRelation(face.getId(), 1);
|
||||||
if (sourceEntities.stream().noneMatch(item -> Integer.valueOf(1).equals(item.getIsFree()))) {
|
if (sourceEntities.stream().noneMatch(item -> Integer.valueOf(1).equals(item.getIsFree()))) {
|
||||||
List<Long> freeSourceRelationIds = new ArrayList<>();
|
List<Long> freeSourceRelationIds = new ArrayList<>();
|
||||||
if (scenicConfig.getVideoFreeNum() != null && scenicConfig.getVideoFreeNum() > 0) {
|
if (scenicConfig.getInteger("video_free_num") != null && scenicConfig.getInteger("video_free_num") > 0) {
|
||||||
if (scenicConfig.getVideoFreeNum() > sourceEntities.size()) {
|
if (scenicConfig.getInteger("video_free_num") > sourceEntities.size()) {
|
||||||
freeSourceRelationIds.addAll(sourceEntities.stream().map(MemberSourceEntity::getId).toList());
|
freeSourceRelationIds.addAll(sourceEntities.stream().map(MemberSourceEntity::getId).toList());
|
||||||
} else {
|
} else {
|
||||||
freeSourceRelationIds.addAll(sourceEntities.stream().limit(scenicConfig.getVideoFreeNum()).map(MemberSourceEntity::getId).toList());
|
freeSourceRelationIds.addAll(sourceEntities.stream().limit(scenicConfig.getInteger("video_free_num")).map(MemberSourceEntity::getId).toList());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!freeSourceRelationIds.isEmpty()) {
|
if (!freeSourceRelationIds.isEmpty()) {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import com.ycwl.basic.mapper.TemplateMapper;
|
|||||||
import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
|
import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
|
||||||
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
||||||
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.integration.common.manager.ScenicConfigManager;
|
||||||
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
||||||
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
||||||
import com.ycwl.basic.repository.ScenicRepository;
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
@@ -61,13 +61,13 @@ public class VideoTaskGenerator {
|
|||||||
calendar.clear();
|
calendar.clear();
|
||||||
scenicList.parallelStream().forEach(scenic -> {
|
scenicList.parallelStream().forEach(scenic -> {
|
||||||
Long scenicId = Long.valueOf(scenic.getId());
|
Long scenicId = Long.valueOf(scenic.getId());
|
||||||
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(scenicId);
|
ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(scenicId);
|
||||||
if (scenicConfig == null) {
|
if (scenicConfig == null) {
|
||||||
log.info("当前景区{},无配置信息", scenic.getName());
|
log.info("当前景区{},无配置信息", scenic.getName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Integer.valueOf(1).equals(scenicConfig.getBookRoutine()) || Integer.valueOf(3).equals(scenicConfig.getBookRoutine())) {
|
if (Integer.valueOf(1).equals(scenicConfig.getInteger("book_routine")) || Integer.valueOf(3).equals(scenicConfig.getInteger("book_routine"))) {
|
||||||
Integer hour = scenicConfig.getForceFinishTime();
|
Integer hour = scenicConfig.getInteger("force_finish_time");
|
||||||
if (hour != currentHour) {
|
if (hour != currentHour) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -83,7 +83,7 @@ public class VideoTaskGenerator {
|
|||||||
List<FaceRespVO> list = faceMapper.list(faceReqQuery);
|
List<FaceRespVO> list = faceMapper.list(faceReqQuery);
|
||||||
list.forEach(face -> {
|
list.forEach(face -> {
|
||||||
faceService.matchFaceId(face.getId(), false, null);
|
faceService.matchFaceId(face.getId(), false, null);
|
||||||
if (Integer.valueOf(3).equals(scenicConfig.getBookRoutine())) {
|
if (Integer.valueOf(3).equals(scenicConfig.getInteger("book_routine"))) {
|
||||||
// 全部生成
|
// 全部生成
|
||||||
templateList.forEach(content -> {
|
templateList.forEach(content -> {
|
||||||
Long templateId = content.getId();
|
Long templateId = content.getId();
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class PrepareContextStageTest {
|
|||||||
private ScenicService scenicService;
|
private ScenicService scenicService;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private ScenicConfigManager scenicConfig;
|
private ScenicConfigManager configManager;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private IFaceBodyAdapter faceBodyAdapter;
|
private IFaceBodyAdapter faceBodyAdapter;
|
||||||
@@ -55,7 +55,7 @@ class PrepareContextStageTest {
|
|||||||
// Given
|
// Given
|
||||||
FaceEntity face = createFace(1L, 100L, 10L, 0); // isManual=0
|
FaceEntity face = createFace(1L, 100L, 10L, 0); // isManual=0
|
||||||
when(faceRepository.getFace(1L)).thenReturn(face);
|
when(faceRepository.getFace(1L)).thenReturn(face);
|
||||||
when(scenicRepository.getScenicConfigManager(10L)).thenReturn(scenicConfig);
|
when(scenicRepository.getScenicConfigManager(10L)).thenReturn(configManager);
|
||||||
when(scenicService.getScenicFaceBodyAdapter(10L)).thenReturn(faceBodyAdapter);
|
when(scenicService.getScenicFaceBodyAdapter(10L)).thenReturn(faceBodyAdapter);
|
||||||
|
|
||||||
// When
|
// When
|
||||||
@@ -64,7 +64,7 @@ class PrepareContextStageTest {
|
|||||||
// Then
|
// Then
|
||||||
assertTrue(result.isSuccess());
|
assertTrue(result.isSuccess());
|
||||||
assertEquals(face, context.getFace());
|
assertEquals(face, context.getFace());
|
||||||
assertEquals(scenicConfig, context.getScenicConfig());
|
assertEquals(configManager, context.getScenicConfig());
|
||||||
assertEquals(faceBodyAdapter, context.getFaceBodyAdapter());
|
assertEquals(faceBodyAdapter, context.getFaceBodyAdapter());
|
||||||
verify(faceRepository, times(1)).getFace(1L);
|
verify(faceRepository, times(1)).getFace(1L);
|
||||||
verify(scenicRepository, times(1)).getScenicConfigManager(10L);
|
verify(scenicRepository, times(1)).getScenicConfigManager(10L);
|
||||||
@@ -110,7 +110,7 @@ class PrepareContextStageTest {
|
|||||||
context = FaceMatchingContext.forAutoMatching(1L, true);
|
context = FaceMatchingContext.forAutoMatching(1L, true);
|
||||||
FaceEntity face = createFace(1L, 100L, 10L, 1); // isManual=1
|
FaceEntity face = createFace(1L, 100L, 10L, 1); // isManual=1
|
||||||
when(faceRepository.getFace(1L)).thenReturn(face);
|
when(faceRepository.getFace(1L)).thenReturn(face);
|
||||||
when(scenicRepository.getScenicConfigManager(10L)).thenReturn(scenicConfig);
|
when(scenicRepository.getScenicConfigManager(10L)).thenReturn(configManager);
|
||||||
when(scenicService.getScenicFaceBodyAdapter(10L)).thenReturn(faceBodyAdapter);
|
when(scenicService.getScenicFaceBodyAdapter(10L)).thenReturn(faceBodyAdapter);
|
||||||
|
|
||||||
// When
|
// When
|
||||||
@@ -119,7 +119,7 @@ class PrepareContextStageTest {
|
|||||||
// Then
|
// Then
|
||||||
assertTrue(result.isSuccess());
|
assertTrue(result.isSuccess());
|
||||||
assertEquals(face, context.getFace());
|
assertEquals(face, context.getFace());
|
||||||
assertEquals(scenicConfig, context.getScenicConfig());
|
assertEquals(configManager, context.getScenicConfig());
|
||||||
assertEquals(faceBodyAdapter, context.getFaceBodyAdapter());
|
assertEquals(faceBodyAdapter, context.getFaceBodyAdapter());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ class PrepareContextStageTest {
|
|||||||
// Given
|
// Given
|
||||||
FaceEntity face = createFace(1L, 100L, 10L, 0);
|
FaceEntity face = createFace(1L, 100L, 10L, 0);
|
||||||
when(faceRepository.getFace(1L)).thenReturn(face);
|
when(faceRepository.getFace(1L)).thenReturn(face);
|
||||||
when(scenicRepository.getScenicConfigManager(10L)).thenReturn(scenicConfig);
|
when(scenicRepository.getScenicConfigManager(10L)).thenReturn(configManager);
|
||||||
when(scenicService.getScenicFaceBodyAdapter(10L)).thenReturn(null); // 无适配器
|
when(scenicService.getScenicFaceBodyAdapter(10L)).thenReturn(null); // 无适配器
|
||||||
|
|
||||||
// When
|
// When
|
||||||
@@ -138,7 +138,7 @@ class PrepareContextStageTest {
|
|||||||
assertTrue(result.isFailed());
|
assertTrue(result.isFailed());
|
||||||
assertTrue(result.getMessage().contains("人脸识别服务不可用"));
|
assertTrue(result.getMessage().contains("人脸识别服务不可用"));
|
||||||
assertEquals(face, context.getFace());
|
assertEquals(face, context.getFace());
|
||||||
assertEquals(scenicConfig, context.getScenicConfig());
|
assertEquals(configManager, context.getScenicConfig());
|
||||||
assertNull(context.getFaceBodyAdapter());
|
assertNull(context.getFaceBodyAdapter());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ class PrepareContextStageTest {
|
|||||||
context = FaceMatchingContext.forAutoMatching(1L, false); // 老用户
|
context = FaceMatchingContext.forAutoMatching(1L, false); // 老用户
|
||||||
FaceEntity face = createFace(1L, 100L, 10L, 0);
|
FaceEntity face = createFace(1L, 100L, 10L, 0);
|
||||||
when(faceRepository.getFace(1L)).thenReturn(face);
|
when(faceRepository.getFace(1L)).thenReturn(face);
|
||||||
when(scenicRepository.getScenicConfigManager(10L)).thenReturn(scenicConfig);
|
when(scenicRepository.getScenicConfigManager(10L)).thenReturn(configManager);
|
||||||
when(scenicService.getScenicFaceBodyAdapter(10L)).thenReturn(faceBodyAdapter);
|
when(scenicService.getScenicFaceBodyAdapter(10L)).thenReturn(faceBodyAdapter);
|
||||||
|
|
||||||
// When
|
// When
|
||||||
@@ -165,7 +165,7 @@ class PrepareContextStageTest {
|
|||||||
context = FaceMatchingContext.forRecognitionOnly(1L);
|
context = FaceMatchingContext.forRecognitionOnly(1L);
|
||||||
FaceEntity face = createFace(1L, 100L, 10L, 0);
|
FaceEntity face = createFace(1L, 100L, 10L, 0);
|
||||||
when(faceRepository.getFace(1L)).thenReturn(face);
|
when(faceRepository.getFace(1L)).thenReturn(face);
|
||||||
when(scenicRepository.getScenicConfigManager(10L)).thenReturn(scenicConfig);
|
when(scenicRepository.getScenicConfigManager(10L)).thenReturn(configManager);
|
||||||
when(scenicService.getScenicFaceBodyAdapter(10L)).thenReturn(faceBodyAdapter);
|
when(scenicService.getScenicFaceBodyAdapter(10L)).thenReturn(faceBodyAdapter);
|
||||||
|
|
||||||
// When
|
// When
|
||||||
|
|||||||
Reference in New Issue
Block a user