nidapeng
2024-04-06 fd6df9412858c419689662d0ebd50f2cac231361
server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
@@ -12,10 +12,7 @@
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.*;
import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.join.ApplyDetailJoinMapper;
import com.doumee.dao.business.join.ApplyLogJoinMapper;
import com.doumee.dao.business.join.InsuranceApplyJoinMapper;
import com.doumee.dao.business.join.UnionApplyJoinMapper;
import com.doumee.dao.business.join.*;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.SmsEmailService;
@@ -80,6 +77,8 @@
    @Autowired
    private ApplyLogJoinMapper applyLogJoinMapper;
    @Autowired
    private MemberInsuranceJoinMapper memberInsuranceJoinMapper;
    @Value("${debug_model}")
    private boolean debugModel;
@@ -740,7 +739,14 @@
        List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectList(new QueryWrapper<InsuranceApply>()
                .lambda().eq(InsuranceApply::getUnionApplyId,unionApply.getId()));
        for (InsuranceApply insuranceApply:insuranceApplyList) {
            BigDecimal price = Constants.formatBigdecimal(insuranceApply.getPrice());
            List<ApplyDetail> applyDetails = applyDetailList.stream()
                    .filter(m->Constants.equalsInteger(m.getApplyId(),(insuranceApply.getId()))).collect(Collectors.toList());
            if(CollectionUtils.isEmpty(applyDetails)){
                continue;
            }
            BigDecimal price = Constants.formatBigdecimal(applyDetails.get(Constants.ZERO).getPrice());
            Optional<UnionApplyBXDDetailDTO> unionApplyBXDDDetailTO= unionApplyBXDDetailDTOList.stream().filter(
                    m->m.getApplyId().equals(insuranceApply.getId())).findFirst();
            if(unionApplyBXDDDetailTO.isPresent()){
@@ -770,9 +776,19 @@
            }else if(useDays>0){
                currentFee =  new BigDecimal(useDays).multiply(price);
            }
            //生成投保记录
            if(CollectionUtils.isNotEmpty(applyDetailList)){
                List<MemberInsurance> memberInsuranceList = new ArrayList<>();
                for (ApplyDetail applyDetail:applyDetailList) {
                    applyDetail.setPrice(price);
                    applyDetail.setFee(price.multiply(new BigDecimal(maxDays)));
                    MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
                    memberInsurance.setRelationType(Constants.ZERO);
                    memberInsuranceList.add(memberInsurance);
                }
                memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList);
            }
            List<ApplyDetail> applyDetails = applyDetailList.stream()
                    .filter(m->Constants.equalsInteger(m.getApplyId(),(insuranceApply.getId()))).collect(Collectors.toList());
            //更新投保申请单
            insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda()
                    .set(InsuranceApply::getUnionApplyTbdStatus,Constants.THREE)