Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

jiakai před 1 týdnem
rodič
revize
38d978b16c

+ 19 - 0
commons/src/main/java/com/jzg/commons/entity/scheme/vo/PtlSchemeSaveVo.java

@@ -262,6 +262,11 @@ public class PtlSchemeSaveVo {
         List<PtlSchemeInsurance> ptlSchemeInsuranceList = new ArrayList<>();
         for (Scheme scheme : schemeList) {
             scheme.schemeInsuranceList.forEach(schemeInsurance -> {
+                if (Objects.isNull(schemeInsurance.getOptionId()) || schemeInsurance.getOptionId().isEmpty()) {
+                    String insuranceName = Objects.isNull(schemeInsurance.getKindName()) || schemeInsurance.getKindName().isEmpty()
+                            ? schemeInsurance.getInsuranceId() : schemeInsurance.getKindName();
+                    throw new ValidateException("方案[" + scheme.getSchemeName() + "]中险种[" + insuranceName + "]未选择保额");
+                }
                 schemeInsurance.getOptionId().forEach(optionId ->{
                     PtlSchemeInsurance ptlSchemeInsurance = new PtlSchemeInsurance();
                     if(Objects.isNull(scheme.getId()) || scheme.getId().isEmpty()) {
@@ -281,6 +286,20 @@ public class PtlSchemeSaveVo {
     public List<PtlSchemeInsuranceDrivingIntention> getPtlSchemeInsuranceDrivingIntentionList(){
         List<PtlSchemeInsuranceDrivingIntention> ptlSchemeInsuranceDrivingIntentionList = new ArrayList<>();
         for (Scheme scheme : schemeList) {
+            // 校验同一方案内驾意险的选中类型:默认选中(1)/强制选中(2)只能出现一种且各最多一条(可选=3)
+            long defaultSelectedCount = scheme.getDrivingList().stream()
+                    .filter(drivingIntention -> "1".equals(drivingIntention.getSelectedStatus())).count();
+            long forceSelectedCount = scheme.getDrivingList().stream()
+                    .filter(drivingIntention -> "2".equals(drivingIntention.getSelectedStatus())).count();
+            if (defaultSelectedCount > 1) {
+                throw new ValidateException("方案[" + scheme.getSchemeName() + "]中默认选中的驾意险只能有一条");
+            }
+            if (forceSelectedCount > 1) {
+                throw new ValidateException("方案[" + scheme.getSchemeName() + "]中强制选中的驾意险只能有一条");
+            }
+            if (defaultSelectedCount > 0 && forceSelectedCount > 0) {
+                throw new ValidateException("方案[" + scheme.getSchemeName() + "]中默认选中与强制选中的驾意险不能同时存在");
+            }
             scheme.getDrivingList().forEach(drivingIntention -> {
                 PtlSchemeInsuranceDrivingIntention ptlSchemeInsuranceDrivingIntention = new PtlSchemeInsuranceDrivingIntention();
                 ptlSchemeInsuranceDrivingIntention.setId(IdGenerate.nextId());

+ 8 - 3
tenant/organization/src/main/java/com/jzg/organization/service/impl/SignInServiceImpl.java

@@ -78,14 +78,19 @@ public class SignInServiceImpl implements SignInService {
     @Override
     public HttpResult updateSignCompleteRuleIn(SysUserActivityCompleteInRule dto){
         log.info("修改签到规则同步状态:dto=[{}]", JSONUtil.toJsonStr(dto));
-
+        SysUser sysUser = sysUserService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getId,dto.getUserId()));
+        if (sysUser == null) {
+            return HttpResult.error("用户不存在");
+        }
         SysUserActivityCompleteInRule rule = sysUserActivityCompleteInRuleMapper.selectOne(new LambdaQueryWrapper<SysUserActivityCompleteInRule>()
                 .eq(SysUserActivityCompleteInRule::getSystemCode,dto.getSystemCode())
-                .eq(SysUserActivityCompleteInRule::getUserId,dto.getUserId())
+                .eq(SysUserActivityCompleteInRule::getUserId,sysUser.getMobile())
                 .eq(SysUserActivityCompleteInRule::getActivityId,dto.getActivityId())
                 .eq(SysUserActivityCompleteInRule::getLocalActivityTableId,dto.getLocalActivityTableId())
                 .eq(SysUserActivityCompleteInRule::getStatus,YesNoEnum.NO.getCode()));
-
+        if (rule == null) {
+            return HttpResult.error("签到规则不存在");
+        }
         LotteryCounDTO lotteryCounDTO = new LotteryCounDTO();
         lotteryCounDTO.setAppUserId(dto.getLiveUserId());
         lotteryCounDTO.setActivityId(dto.getActivityId());

+ 1 - 0
tenant/organization/src/main/resources/application.yml

@@ -99,6 +99,7 @@ tenant:
     - ptl_agreement_dispatch_action
     - ptl_new_car_judge_rules
     - ptl_new_car_judge_rules
+    - sys_user_activity_complete_in_rule
     - t
 
   ignoreLoginNames: