diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicConfigEntity.java b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicConfigEntity.java index 2d8bafd..2fabd67 100644 --- a/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicConfigEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicConfigEntity.java @@ -93,4 +93,6 @@ public class ScenicConfigEntity { private String videoSourcePackHint; private String extraNotificationTime; + + private Integer photoFreeNum; } diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java index d5dc7d6..1b36ffc 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java @@ -52,11 +52,13 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Random; import java.util.UUID; import java.util.stream.Collectors; @@ -296,6 +298,29 @@ public class FaceServiceImpl implements FaceService { } return memberSourceEntity; }).collect(Collectors.toList()); + if (isNew) { + if (scenicConfig != null && scenicConfig.getPhotoFreeNum() != null && scenicConfig.getPhotoFreeNum() > 0) { + List randInt = new ArrayList<>(); + if (scenicConfig.getPhotoFreeNum() > memberSourceEntityList.size()) { + for (MemberSourceEntity memberSourceEntity : memberSourceEntityList) { + memberSourceEntity.setIsFree(1); + } + } else { + for (int i = 0; i < scenicConfig.getPhotoFreeNum(); i++) { + // 随机 + Integer idx; + while (true) { + idx = new Random().nextInt(memberSourceEntityList.size()); + if (!randInt.contains(idx)) { + randInt.add(idx); + break; + } + } + memberSourceEntityList.get(idx).setIsFree(1); + } + } + } + } if (!memberSourceEntityList.isEmpty()) { sourceMapper.addRelations(memberSourceEntityList); taskTaskService.autoCreateTaskByFaceId(face.getId()); diff --git a/src/main/resources/mapper/ScenicMapper.xml b/src/main/resources/mapper/ScenicMapper.xml index 9bfe100..52d297c 100644 --- a/src/main/resources/mapper/ScenicMapper.xml +++ b/src/main/resources/mapper/ScenicMapper.xml @@ -126,7 +126,8 @@ pay_config_json=#{payConfigJson}, image_source_pack_hint=#{imageSourcePackHint}, video_source_pack_hint=#{videoSourcePackHint}, - extra_notification_time=#{extraNotificationTime} + extra_notification_time=#{extraNotificationTime}, + photo_free_num= #{photoFreeNum} where id = #{id}