From 17f3de037c0e60898ff8cfee09d071be6348c5e1 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期四, 27 六月 2024 15:15:54 +0800 Subject: [PATCH] git ch --- server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java | 58 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 37 insertions(+), 21 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java index 8c1d325..3f960ab 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java @@ -401,7 +401,7 @@ } if(saveUnionChangeDTO.getDelValidDate().getTime()<unionApply.getStartTime().getTime() || saveUnionChangeDTO.getDelValidDate().getTime()> unionApply.getEndTime().getTime()){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎵瑰崟鍔犱繚鐢熸晥鏈熼敊璇�"); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍚堝苟鍗曠殑鎵瑰崟鍑忎繚鐢熸晥鏈熼敊璇�"); } }else{ if(saveUnionChangeDTO.getApplyDate().getTime()<DateUtil.afterDateByType(unionApply.getStartTime(),0,1).getTime() @@ -421,12 +421,14 @@ .eq(ApplyChange::getStatus,Constants.ApplyChangeStatus.CHECHED_PASSED.getKey()) .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey()) .eq(ApplyChange::getType,saveUnionChangeDTO.getBusinessType()) + .le(ApplyChange::getApplyStartTime,DateUtil.getCurrDateTime()) .in(ApplyChange::getId,saveUnionChangeDTO.getApplyIds()) .isNull(ApplyChange::getUnionChangeId) ); + //鏌ヨ鏁版嵁鏄惁瀛樺湪鏈浜庡鎵归�氳繃鐨勬暟鎹� if(applyChangeList.size()!=saveUnionChangeDTO.getApplyIds().size()){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鏁版嵁宸插鐞嗭紝璇峰埛鏂伴噸璇�"); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇锋鏌ユ墍鏈夌敵璇峰崟鐨勭姸鎬佸強鏈熸湜鐢熸晥鏃堕棿鏄惁婊¤冻褰撳墠娴佽浆鎿嶄綔锛岃杩斿洖鍒锋柊閲嶈瘯锛�"); } UnionChange unionChange = new UnionChange(); @@ -982,29 +984,40 @@ if(oldModel.getStartTime().getTime()>applyChange.getDelValidTime().getTime()||oldModel.getEndTime().getTime()<applyChange.getDelValidTime().getTime()){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鎵瑰噺鏃ユ湡鏈湪鐢ㄦ埛銆�" + detail.getMemberName() + "銆戠殑淇濆崟鏃ユ湡鍐咃紒"); } + BigDecimal fee = Objects.isNull(insuranceApply.getServerCost())? solutions.getPrice(): solutions.getPrice().add(insuranceApply.getServerCost()); - Date reduceDate = oldModel.getStartTime().compareTo(applyChange.getDelValidTime())!=0? - DateUtil.getMontageDate(applyChange.getDelValidTime(), 3): - DateUtil.getMontageDate(applyChange.getDelValidTime(), 2); - //鍑忎繚璁板綍鎿嶄綔鍚庣殑鎬昏垂鐢� - BigDecimal reduceFee = Constants.reduceFee( - solutions,fee,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),oldModel.getStartTime(),reduceDate) ; + // 鍑忎繚鍚� 鎵瑰崟鏃ユ湡 榛樿涓� 鎵瑰崟鍑忎繚鏃ユ湡 00:00:00 + Date reduceDate = applyChange.getDelValidTime(); + + // 鍑忎繚鍚� 鎬昏垂鐢� 榛樿涓哄噺淇濆悗涓� 0 + BigDecimal reduceFee = BigDecimal.ZERO; + + //濡傛灉鎵瑰崟鏃ユ湡 澶т簬 鍛樺伐淇濆崟鐨勫紑濮嬫棩鏈� + if(applyChange.getDelValidTime().getTime() > oldModel.getStartTime().getTime()){ + reduceDate = DateUtil.getMontageDate(applyChange.getDelValidTime(), 3); + //鍑忎繚璁板綍鎿嶄綔鍚庣殑鎬昏垂鐢� + reduceFee = Constants.reduceFee( + solutions,fee,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),oldModel.getStartTime(),reduceDate) ; + } + BigDecimal pullFee = BigDecimal.ZERO; - if (DateUtil.getMontageDate(new Date(), 2).getTime()>oldModel.getStartTime().getTime()) { - //// 2024骞�5鏈�8鏃�17:37:23 淇敼 璁$畻浜х敓璐圭敤 + if (oldModel.getStartTime().getTime() < System.currentTimeMillis()) { + //璁$畻浜х敓璐圭敤 pullFee = Constants.produceFee(solutions,fee,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),oldModel.getStartTime()); if(pullFee.compareTo(reduceFee)>0){ pullFee = reduceFee; } } + UpdateWrapper<ApplyDetail> updateWrapper = new UpdateWrapper<ApplyDetail>(); updateWrapper.lambda() .setSql(" fee = " + reduceFee) .setSql(" current_fee = " + pullFee) .set(ApplyDetail::getEndTime, reduceDate) + .set(applyChange.getDelValidTime().getTime() <= oldModel.getStartTime().getTime(),ApplyDetail::getChangeStatus,Constants.TWO) .set(ApplyDetail::getEditor, applyChange.getEditor()) .set(ApplyDetail::getEditDate, applyChange.getEditDate()) .eq(ApplyDetail::getId, oldModel.getId()); @@ -1025,18 +1038,22 @@ } bigDecimalVO.setTotalFee(bigDecimalVO.getTotalFee().add(reduceFee).subtract(oldModel.getFee()).add(reduceMoney)); bigDecimalVO.setCurrentFee(bigDecimalVO.getCurrentFee().add(pullFee).subtract(oldModel.getCurrentFee())); -// //濡傛灉鍑忎繚鐨勬暟鎹� 宸茬粡缁撴潫 鍒欐鏁版嵁瑕佸幓鎺� 鍑忛櫎鐨勫疄闄呭樊鍊� reduceMoney -// if(System.currentTimeMillis()>detail.getEndTime().getTime()){ -// bigDecimalVO.setCurrentFee(bigDecimalVO.getCurrentFee().add(reduceMoney)); -// } applyDetailJoinMapper.update(null, updateWrapper); - //淇敼 鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁 - memberInsuranceJoinMapper.update(null, new UpdateWrapper<MemberInsurance>().lambda() - .setSql(" fee = " + reduceFee) - .set(MemberInsurance::getEndTime,reduceDate) - .eq(MemberInsurance::getRelationId, oldModel.getId()) - ); + + List<MemberInsurance> oldMemberInsurance = memberInsuranceJoinMapper.selectList(new QueryWrapper<MemberInsurance>().lambda().eq(MemberInsurance::getRelationId,oldModel.getId())); + for (MemberInsurance memberInsurance:oldMemberInsurance) { + //璁板綍鏁版嵁鏃╀簬鎵瑰崟鏃ユ湡 + if(memberInsurance.getStartTime().getTime()>reduceDate.getTime()){ + memberInsurance.setIsValid(Constants.ONE); + }else if(memberInsurance.getEndTime().getTime()>=reduceDate.getTime() + && memberInsurance.getStartTime().getTime()<=reduceDate.getTime()){ + memberInsurance.setFee(reduceFee); + memberInsurance.setEndTime(reduceDate); + } + memberInsuranceJoinMapper.updateById(memberInsurance); + } + memberMapper.update(null,new UpdateWrapper<Member>() .lambda() @@ -1049,7 +1066,6 @@ //淇敼涓氬姟鏄庣粏琛屾暟鎹疄闄呮壒鍗曟棩鏈� applyChagneDetailJoinMapper.update(null,new UpdateWrapper<ApplyChagneDetail>().lambda() -// .setSql(" fee = ifnull(fee,0)+" + reduceFee) .set(ApplyChagneDetail::getFee,reduceFee.subtract(oldModel.getFee())) .set(ApplyChagneDetail::getEndTime,reduceDate) .eq(ApplyChagneDetail::getId,detail.getId()) -- Gitblit v1.9.3