From d88bc5788b7097027bad6950fe039acb231862fd Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 18 六月 2024 10:23:46 +0800
Subject: [PATCH] git ch
---
server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java | 72 ++++++++++++++++++++++++++---------
1 files changed, 53 insertions(+), 19 deletions(-)
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
index 878ba4d..d702a41 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
@@ -156,7 +156,8 @@
.selectAs(Solutions::getOrtherInfo,UnionApply::getOrtherInfo)
.selectAs(Solutions::getSpecialAgreement,UnionApply::getSpecialAgreement)
.selectAs(Solutions::getSpecialInfo,UnionApply::getSpecialInfo);
- queryWrapper.select("(select count(b.id) from apply_detail b where b.isdeleted=0 and b.union_apply_id=t.id) as insureNum ");
+ queryWrapper.select("(select count(distinct(b.MEMBER_ID)) from apply_detail b where b.isdeleted=0 and b.union_apply_id=t.id) as insureNum ");
+ queryWrapper.select("(select count(distinct(b.MEMBER_ID)) from apply_detail b where b.isdeleted=0 and b.END_TIME > now() and b.union_apply_id=t.id) as guaranteeNum ");
if(pageWrap.getModel().getQueryFlag() == 1){
queryWrapper.select("(select count(1) from apply_change a inner join insurance_apply b on a.apply_id = b.id where b.union_apply_id=t.id " +
@@ -246,7 +247,8 @@
}
if (pageWrap.getModel().getSignApplyNo() != null) {
queryWrapper.eq(UnionApply::getSignApplyNo, pageWrap.getModel().getSignApplyNo());
- }if(pageWrap.getSorts().size() == 0){
+ }
+ if(pageWrap.getSorts().size() == 0){
queryWrapper.orderByDesc(UnionApply::getCreateDate );
}else {
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
@@ -316,6 +318,7 @@
.selectAs(Solutions::getName,UnionApply::getSolutionName)
.selectAs(Company::getName,UnionApply::getCompanyName)
.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad where ad.UNION_APPLY_ID = t.id ) as insureNum")
+ .select("(select count(distinct(b.MEMBER_ID)) from apply_detail b where b.isdeleted=0 and b.END_TIME > now() and b.union_apply_id=t.id) as guaranteeNum ")
.select(" ( select group_concat(DISTINCT(cd.name)) from insurance_apply ad left join company cd on ad.company_id = cd.id where ad.UNION_APPLY_ID = t.id ) as companyNames")
.leftJoin(Solutions.class,Solutions::getId,UnionApply::getSolutionId)
.leftJoin(Company.class,Company::getId,UnionApply::getCompanyId)
@@ -416,6 +419,14 @@
if(solutions == null){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鏂规淇℃伅鏈夎锛岃鍒锋柊椤甸潰閲嶈瘯");
}
+ //鏍规嵁鏂规鏌ヨ瀵瑰簲鐨勭粨鏉熸棩鏈�
+ CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO();
+ countCyclePriceDTO.setSolutions(solutions);
+ countCyclePriceDTO.setStartDate(saveUnionApplyDTO.getStartDate());
+ Date endTime = Constants.getCountCyclePriceVO(countCyclePriceDTO).getEndDate();
+ if(saveUnionApplyDTO.getEndDate().getTime()>endTime.getTime()) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝缁撴潫鏃ユ湡瓒呭嚭鏂规鍙厑璁告棩鏈熷懆鏈燂紝璇锋洿鏀瑰悗閲嶈瘯锛�");
+ }
List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,
new MPJLambdaWrapper<InsuranceApply>()
.selectAll(InsuranceApply.class)
@@ -458,8 +469,9 @@
}
BigDecimal fee = BigDecimal.ZERO;
for (ApplyDetail applyDetail:applyDetailList) {
- Integer oldDays = DateUtil.calculateBetween(applyDetail.getStartTime(),applyDetail.getEndTime(),0);
- fee =fee.add(new BigDecimal(maxDays).multiply( applyDetail.getFee()).divide(new BigDecimal(oldDays),2,RoundingMode.HALF_UP));
+ fee =fee.add(
+ Constants.reduceFee(solutions,solutions.getPrice(),applyDetail.getStartTime(),applyDetail.getEndTime(),saveUnionApplyDTO.getStartDate(),saveUnionApplyDTO.getEndDate())
+ );
}
unionApply.setFee(fee);
@@ -593,6 +605,10 @@
if(CollectionUtils.isNotEmpty(uploadMultifileDTO.getMultifileList())){
List<Multifile> multifileList = uploadMultifileDTO.getMultifileList();
for (Multifile multifile:multifileList) {
+ if(StringUtils.isBlank(multifile.getName())
+ || StringUtils.isBlank(multifile.getFileurl()) ){
+ continue;
+ }
if(Objects.isNull(multifile.getObjId())
||Objects.isNull(multifile.getName())
||Objects.isNull(multifile.getFileurl())){
@@ -662,14 +678,14 @@
public String getSignLink(SmsCheckDTO smsCheckDTO) {
if(Objects.isNull(smsCheckDTO)
|| Objects.isNull(smsCheckDTO.getBusinessId())
- || StringUtils.isBlank(smsCheckDTO.getCode())
+// || StringUtils.isBlank(smsCheckDTO.getCode())
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
//楠岃瘉 楠岃瘉鐮�
- if(!debugModel){
- smsEmailService.validateCode(smsCheckDTO.getCode());
- }
+// if(!debugModel){
+// smsEmailService.validateCode(smsCheckDTO.getCode());
+// }
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
if(!user.getType().equals(Constants.TWO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风敤鎴凤紝鏃犳硶杩涜璇ユ搷浣滐紒");
@@ -748,6 +764,18 @@
if(!unionApply.getStatus().equals(Constants.UnionApplyStatus.UPLOAD_INSURANCE_POLICY.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ュ悎骞跺崟鐘舵�佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
}
+ Solutions solutions = solutionsMapper.selectById(unionApply.getSolutionId());
+ if(Objects.isNull(solutions)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
+ }
+ //鏍规嵁鏂规鏌ヨ瀵瑰簲鐨勭粨鏉熸棩鏈�
+ CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO();
+ countCyclePriceDTO.setSolutions(solutions);
+ countCyclePriceDTO.setStartDate(unionApplyBXDDTO.getStartTime());
+ Date endTime = Constants.getCountCyclePriceVO(countCyclePriceDTO).getEndDate();
+ if(unionApplyBXDDTO.getEndTime().getTime()>endTime.getTime()) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝缁撴潫鏃ユ湡瓒呭嚭鏂规鍙厑璁告棩鏈熷懆鏈燂紝璇锋洿鏀瑰悗閲嶈瘯锛�");
+ }
//鍔犱环鍙傛暟
List<UnionApplyBXDDetailDTO> unionApplyBXDDetailDTOList = unionApplyBXDDTO.getUnionApplyBXDDDetailDTOList();
@@ -790,16 +818,12 @@
continue;
}
BigDecimal price = Constants.formatBigdecimal(applyDetails.get(Constants.ZERO).getPrice());
-
Optional<UnionApplyBXDDetailDTO> unionApplyBXDDDetailTO= unionApplyBXDDetailDTOList.stream().filter(
m->m.getApplyId().equals(insuranceApply.getId())).findFirst();
BigDecimal serverCost = BigDecimal.ZERO;
if(unionApplyBXDDDetailTO.isPresent()){
UnionApplyBXDDetailDTO unionApplyBXDDetailDTO = unionApplyBXDDDetailTO.get();
serverCost = unionApplyBXDDetailDTO.getServerMoney();
- BigDecimal dayServerMoney = unionApplyBXDDetailDTO.getServerMoney().divide(new BigDecimal(maxDays),2, RoundingMode.HALF_UP);
-
- price = Constants.formatBigdecimal(price).add(Constants.formatBigdecimal(dayServerMoney));
//涓婁紶淇濆崟淇℃伅
if(StringUtils.isNotBlank(unionApplyBXDDetailDTO.getFileUrl())){
Multifile multifile = new Multifile();
@@ -820,9 +844,12 @@
//瀹為檯宸蹭骇鐢熻垂鐢紙鍗曚汉锛�
BigDecimal currentFee = BigDecimal.ZERO;
if(useDays==-1){
- currentFee = new BigDecimal(maxDays).multiply(price);
+ currentFee = solutions.getPrice().add(serverCost);
}else if(useDays>0){
- currentFee = new BigDecimal(useDays).multiply(price);
+ currentFee = Constants.produceFee(solutions,solutions.getPrice().add(serverCost)
+ ,unionApplyBXDDTO.getStartTime(),unionApplyBXDDTO.getEndTime(),
+ unionApplyBXDDTO.getStartTime()
+ );
}
//鐢熸垚鎶曚繚璁板綍
if(CollectionUtils.isNotEmpty(applyDetailList)){
@@ -830,7 +857,7 @@
for (ApplyDetail applyDetail:applyDetailList.stream()
.filter(m->Constants.equalsInteger(m.getApplyId(),(insuranceApply.getId()))).collect(Collectors.toList())) {
applyDetail.setPrice(price);
- applyDetail.setFee(price.multiply(new BigDecimal(maxDays)));
+ applyDetail.setFee(price.multiply(new BigDecimal(maxDays)).add(serverCost));
applyDetail.setStartTime(unionApplyBXDDTO.getStartTime());
applyDetail.setEndTime(unionApplyBXDDTO.getEndTime());
MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
@@ -850,12 +877,18 @@
}
memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList);
}
+ BigDecimal detailFee = Constants.reduceFee(solutions,solutions.getPrice().add(serverCost),insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),
+ unionApplyBXDDTO.getStartTime(),unionApplyBXDDTO.getEndTime());
+
+ BigDecimal applyFee = detailFee.multiply(new BigDecimal(applyDetails.size()));
+
+ Date finalEndTime = endTime;
//鏇存柊鎶曚繚鐢宠鍗�
insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda()
.set(InsuranceApply::getUnionApplyTbdStatus,Constants.THREE)
.set(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey())
- .set(InsuranceApply::getFee,price.multiply(new BigDecimal(applyDetails.size())).multiply(new BigDecimal(maxDays)))
+ .set(InsuranceApply::getFee,applyFee)
.set(InsuranceApply::getCurrentFee,currentFee.multiply(new BigDecimal(applyDetails.size())))
.set(InsuranceApply::getStartTime,unionApplyBXDDTO.getStartTime())
.set(InsuranceApply::getEndTime,unionApplyBXDDTO.getEndTime())
@@ -863,11 +896,12 @@
.set(InsuranceApply::getEditor,user.getId())
.set(InsuranceApply::getServerCost,serverCost)
.set(InsuranceApply::getCode,unionApplyBXDDTO.getCode())
+ .set(InsuranceApply::getFinalEndTime,finalEndTime)
.eq(InsuranceApply::getId,insuranceApply.getId()));
//鏇存柊鎶曚繚鍗曟槑缁嗛噾棰�
applyDetailJoinMapper.update(null,new UpdateWrapper<ApplyDetail>().lambda()
.set(ApplyDetail::getPrice,price)
- .set(ApplyDetail::getFee, price.multiply(new BigDecimal(maxDays)))
+ .set(ApplyDetail::getFee, detailFee)
.set(ApplyDetail::getCurrentFee,currentFee)
.set(ApplyDetail::getEditDate,new Date())
.set(ApplyDetail::getEditor,user.getId())
@@ -875,7 +909,7 @@
.set(ApplyDetail::getEndTime,unionApplyBXDDTO.getEndTime())
.in(ApplyDetail::getId,applyDetails.stream().map(m->m.getId()).collect(Collectors.toList()))
);
- sumFee = sumFee.add(price.multiply(new BigDecimal(applyDetails.size())).multiply(new BigDecimal(maxDays)));
+ sumFee = sumFee.add(applyFee);
sumCurrFee = sumCurrFee.add(currentFee.multiply(new BigDecimal(applyDetails.size())));
}
@@ -927,7 +961,7 @@
List<UnionApply> unionApplyList = unionApplyJoinMapper.selectJoinList(UnionApply.class,new MPJLambdaWrapper<UnionApply>()
.selectAll(UnionApply.class)
.eq(UnionApply::getIsdeleted,Constants.ZERO)
- .eq(UnionApply::getStatus,Constants.UnionApplyStatus.FINISH)
+ .eq(UnionApply::getStatus,Constants.UnionApplyStatus.FINISH.getKey())
.eq(!Objects.isNull(id),UnionApply::getId,id)
.le(UnionApply::getStartTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 00:00:00")
.ge(UnionApply::getEndTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 23:59:59")
--
Gitblit v1.9.3