|
@@ -45,6 +45,9 @@ public class UnlockGateService {
|
|
|
@Resource
|
|
@Resource
|
|
|
private HealthStatusMapper healthStatusMapper;
|
|
private HealthStatusMapper healthStatusMapper;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private SurveyRecordMapper surveyRecordMapper;
|
|
|
|
|
+
|
|
|
@Resource
|
|
@Resource
|
|
|
private ProductOrderMapper productOrderMapper;
|
|
private ProductOrderMapper productOrderMapper;
|
|
|
|
|
|
|
@@ -77,14 +80,18 @@ public class UnlockGateService {
|
|
|
new LambdaQueryWrapper<FiveDimensionSelfCheck>().in(FiveDimensionSelfCheck::getUserId, userIds));
|
|
new LambdaQueryWrapper<FiveDimensionSelfCheck>().in(FiveDimensionSelfCheck::getUserId, userIds));
|
|
|
// 家庭成员健康档案(health_status) 同样视为完成自检
|
|
// 家庭成员健康档案(health_status) 同样视为完成自检
|
|
|
long healthCount = 0L;
|
|
long healthCount = 0L;
|
|
|
|
|
+ // 家庭成员定期调研记录(survey_records) 同样视为完成自检
|
|
|
|
|
+ long surveyCount = 0L;
|
|
|
List<FamilyMember> familyMembers = familyMemberMapper.selectList(
|
|
List<FamilyMember> familyMembers = familyMemberMapper.selectList(
|
|
|
new LambdaQueryWrapper<FamilyMember>().eq(FamilyMember::getFamilyId, familyId));
|
|
new LambdaQueryWrapper<FamilyMember>().eq(FamilyMember::getFamilyId, familyId));
|
|
|
if (!familyMembers.isEmpty()) {
|
|
if (!familyMembers.isEmpty()) {
|
|
|
List<Long> memberIds = familyMembers.stream().map(FamilyMember::getId).collect(Collectors.toList());
|
|
List<Long> memberIds = familyMembers.stream().map(FamilyMember::getId).collect(Collectors.toList());
|
|
|
healthCount = healthStatusMapper.selectCount(
|
|
healthCount = healthStatusMapper.selectCount(
|
|
|
new LambdaQueryWrapper<HealthStatus>().in(HealthStatus::getMemberId, memberIds));
|
|
new LambdaQueryWrapper<HealthStatus>().in(HealthStatus::getMemberId, memberIds));
|
|
|
|
|
+ surveyCount = surveyRecordMapper.selectCount(
|
|
|
|
|
+ new LambdaQueryWrapper<SurveyRecord>().in(SurveyRecord::getMemberId, memberIds));
|
|
|
}
|
|
}
|
|
|
- long count = selfCheckCount + healthCount;
|
|
|
|
|
|
|
+ long count = selfCheckCount + healthCount + surveyCount;
|
|
|
int minCount = 1;
|
|
int minCount = 1;
|
|
|
if (gate.getConditionParams() != null && !gate.getConditionParams().isEmpty()) {
|
|
if (gate.getConditionParams() != null && !gate.getConditionParams().isEmpty()) {
|
|
|
// parse JSON for minCount
|
|
// parse JSON for minCount
|
|
@@ -160,7 +167,7 @@ public class UnlockGateService {
|
|
|
*/
|
|
*/
|
|
|
public boolean hasFamilySelfCheck(Long familyId) {
|
|
public boolean hasFamilySelfCheck(Long familyId) {
|
|
|
if (familyId == null) return false;
|
|
if (familyId == null) return false;
|
|
|
- // 原有:任一家庭成员有健康档案(health_status)
|
|
|
|
|
|
|
+ // 原有:任一家庭成员有健康档案(health_status) 或 定期调研记录(survey_records)
|
|
|
List<FamilyMember> familyMembers = familyMemberMapper.selectList(
|
|
List<FamilyMember> familyMembers = familyMemberMapper.selectList(
|
|
|
new LambdaQueryWrapper<FamilyMember>().eq(FamilyMember::getFamilyId, familyId));
|
|
new LambdaQueryWrapper<FamilyMember>().eq(FamilyMember::getFamilyId, familyId));
|
|
|
if (!familyMembers.isEmpty()) {
|
|
if (!familyMembers.isEmpty()) {
|
|
@@ -168,8 +175,12 @@ public class UnlockGateService {
|
|
|
long healthCount = healthStatusMapper.selectCount(
|
|
long healthCount = healthStatusMapper.selectCount(
|
|
|
new LambdaQueryWrapper<HealthStatus>().in(HealthStatus::getMemberId, memberIds));
|
|
new LambdaQueryWrapper<HealthStatus>().in(HealthStatus::getMemberId, memberIds));
|
|
|
if (healthCount >= 1) return true;
|
|
if (healthCount >= 1) return true;
|
|
|
|
|
+ // 新增:任一家庭成员完成定期调研(survey_records) 也视为通过
|
|
|
|
|
+ long surveyCount = surveyRecordMapper.selectCount(
|
|
|
|
|
+ new LambdaQueryWrapper<SurveyRecord>().in(SurveyRecord::getMemberId, memberIds));
|
|
|
|
|
+ if (surveyCount >= 1) return true;
|
|
|
}
|
|
}
|
|
|
- // 新增:任一家庭成员完成五维自检(five_dimension_self_check) 也视为通过(与 isGateUnlocked(SELF_CHECK) 保持一致)
|
|
|
|
|
|
|
+ // 任一家庭成员完成五维自检(five_dimension_self_check) 也视为通过(与 isGateUnlocked(SELF_CHECK) 保持一致)
|
|
|
List<User> familyUsers = userMapper.selectList(
|
|
List<User> familyUsers = userMapper.selectList(
|
|
|
new LambdaQueryWrapper<User>().eq(User::getFamilyId, familyId));
|
|
new LambdaQueryWrapper<User>().eq(User::getFamilyId, familyId));
|
|
|
if (!familyUsers.isEmpty()) {
|
|
if (!familyUsers.isEmpty()) {
|