From 65f8691ebf4f5de4a7fe2cef4fd9345b26372e55 Mon Sep 17 00:00:00 2001 From: doum <doum> Date: 星期一, 01 九月 2025 18:34:12 +0800 Subject: [PATCH] 前端 --- server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 81 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 79 insertions(+), 2 deletions(-) diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java index e1599db..3f78ca2 100644 --- a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java +++ b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java @@ -46,6 +46,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -147,6 +148,10 @@ }else{ orders.setStatus(Constants.ordersStatus.wait.getKey()); } + orders.setOriginPriceNum1(orders.getPriceNum1()); + orders.setOriginPriceNum2(orders.getPriceNum2()); + orders.setOriginEstimatedAccount(orders.getOriginEstimatedAccount()); + orders.setConfirmOtherFee(0l); ordersMapper.insert(orders); orderReleaseVO.setId(orders.getId()); @@ -382,7 +387,8 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟宸蹭慨鏀癸紝寰呮帴鍗曟柟纭锛屾棤娉曡繘琛岃鎿嶄綔"); } if(!Constants.equalsInteger(model.getType(),Constants.TWO)){ - if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)||Constants.equalsInteger(model.getStatus(),Constants.ONE)){ + if(Constants.equalsInteger(model.getStatus(),Constants.ZERO) + ||Constants.equalsInteger(model.getStatus(),Constants.ONE)){ this.updateById(orders); }else if(Constants.equalsInteger(model.getStatus(),Constants.TWO)){ this.updOrderData(orders,model); @@ -439,6 +445,10 @@ } multifileMapper.insert(multifileList); } + orders.setOriginPriceNum1(orders.getPriceNum1()); + orders.setOriginPriceNum2(orders.getPriceNum2()); + orders.setOriginEstimatedAccount(orders.getOriginEstimatedAccount()); + orders.setConfirmOtherFee(0l); ordersMapper.updateById(orders); } @@ -794,6 +804,7 @@ .set(Orders::getIsUpdateTime,new Date()) .set(Orders::getUpdateTime,new Date()) .set(Orders::getEstimatedAccount,total) + .set(Orders::getOriginEstimatedAccount,total) .eq(Orders::getId,orders.getId()) ); //鍒涘缓鎿嶄綔鏃ュ織 @@ -848,6 +859,72 @@ return bigDecimalPrice.divide(new BigDecimal("1"),0,BigDecimal.ROUND_HALF_UP).longValue();//orders.getPrice() * orders.getPriceNum1() * orders.getPriceNum2(); } + + /** + * 鎺ュ崟鏂圭‘璁よ鍗曡垂鐢� + */ + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void confirmFee(ConfirmFeeOrderDTO confirmUpdOrderDTO){ + if(Objects.isNull(confirmUpdOrderDTO) + || Objects.isNull(confirmUpdOrderDTO.getOrderId()) + || Objects.isNull(confirmUpdOrderDTO.getPriceNum1())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + Orders orders = ordersMapper.selectById(confirmUpdOrderDTO.getOrderId()); + if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(!Constants.equalsInteger(orders.getAcceptMemberId(),confirmUpdOrderDTO.getMember().getId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); + } + if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.doing.getKey())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�"); + } + //绫诲瀷:0=鐢ㄥ伐锛�1=杩愯揣锛�2=璁㈤ + if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ + //鐢ㄥ伐绫诲瀷:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級 + if(Constants.equalsInteger(orders.getWorkType(),Constants.ONE)){ + //1=鍒嗘嫞宸� + if( Objects.isNull(confirmUpdOrderDTO.getPriceNum2())){//蹇呴』鏈夌敤宸ユ暟閲忥紙浜猴級 + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + }else if(Constants.equalsInteger(orders.getWorkType(),Constants.TWO)){ + //鍖呰宸� 鐢ㄨ溅绫诲瀷(鐢ㄥ伐鍖呰/杩愯揣浣跨敤):0=澶�;1=娆�/灏忔椂;2=閲嶉噺 + if( !Constants.equalsInteger(orders.getCarType(),Constants.TWO) + && Objects.isNull(confirmUpdOrderDTO.getPriceNum2())){ + //涓嶆槸鎸夐噸閲忚璐圭殑锛屽繀椤绘湁鐢ㄥ伐鏁伴噺锛堜汉锛� + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + } + }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){ + //杩愯揣璁㈠崟 + + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ヨ鍗曚笉鏀寔璇ユ搷浣滐紝璇疯繑鍥炲埛鏂伴噸璇曪紒"); + } + orders.setPriceNum1(confirmUpdOrderDTO.getPriceNum1()); + orders.setPriceNum2(confirmUpdOrderDTO.getPriceNum2()); + Long totalFee = this.getTotal(orders);//閲嶆柊璁$畻璐圭敤 + Long payFee = totalFee+Constants.formatLongNum(confirmUpdOrderDTO.getConfirmOtherFee());//閲嶆柊璁$畻璐圭敤 + BigDecimal recFee = new BigDecimal(payFee).multiply((new BigDecimal(1).subtract(Constants.formatBigDecimal(orders.getPlatformRata())))).setScale(0, RoundingMode.HALF_UP) ; + ordersMapper.update(new UpdateWrapper<Orders>().lambda() + .set(Orders::getPriceNum1,confirmUpdOrderDTO.getPriceNum1()) + .set(Orders::getPriceNum2,confirmUpdOrderDTO.getPriceNum2()) + .set(Orders::getConfirmFeeRemark,confirmUpdOrderDTO.getConfirmFeeRemark()) + .set(Orders::getConfirmOtherFee,confirmUpdOrderDTO.getConfirmOtherFee()) + .set(Orders::getEstimatedAccount,totalFee) + .set(Orders::getPayAccount,payFee) + .set(Orders::getReceiveAccount,recFee.longValue()) + .set(Orders::getUpdateTime,new Date()) + .eq(Orders::getId,orders.getId()) + ); + //璁板綍鍚屾剰淇敼鐨勬棩蹇� + Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_AGREE; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),confirmUpdOrderDTO.getMember().getId(),null); + + } /** * 鎺ュ崟鏂瑰鐞嗚鍗曚慨鏀� @@ -1158,7 +1235,7 @@ if(!Constants.equalsInteger(orders.getType(),Constants.TWO)){ orders.setPayAccount(doneOrderDTO.getAmount()); //鎻愭垚閲戦 - Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue()); + Long tcje = (new BigDecimal(orders.getPayAccount().toString()).multiply(Constants.formatBigDecimal(orders.getPlatformRata())).setScale(0,RoundingMode.HALF_UP).longValue()); orders.setReceiveAccount(orders.getPayAccount() - tcje); orders.setOutTradeNo(UUID.randomUUID().toString().replace("-","")); ordersMapper.updateById(orders); -- Gitblit v1.9.3