From 8335a722bf0e7d962f1fe6784bb35361153bb283 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 18 十月 2023 11:38:01 +0800
Subject: [PATCH] 111
---
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 57 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index ec04d88..28ec670 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -44,6 +44,7 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.checkerframework.checker.units.qual.A;
+import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -247,7 +248,7 @@
homeResponse.setServerPhone(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.SERVER_PHONE).getCode());
homeResponse.setLeaseNoticeUrl(fullPath + systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.LEASE_NOTICE_URL).getCode());
homeResponse.setLeaseNotice(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.LEASE_NOTICE).getCode());
- homeResponse.setDeposit(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode()));
+ homeResponse.setDeposit(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode()).multiply(BigDecimal.valueOf(100)));
homeResponse.setTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.TIPS).getCode());
homeResponse.setLeaseVideoUrl(fullPath + systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_TIPS_VIDEO).getCode());
homeResponse.setStopServeTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_TIPS).getCode());
@@ -494,28 +495,34 @@
public void backGoodsorder(String orderId, BigDecimal money,String reason) {
LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
Goodsorder goodsorder = goodsorderMapper.selectById(orderId);
+ if(goodsorder == null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝璁㈠崟淇℃伅涓嶅瓨鍦紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+ }
+ if (Constants.formatIntegerNum(goodsorder.getStatus()) != Constants.GOODSORDER_STATUS.CLOSE.getKey()){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ヨ鍗曡缁撶畻鍚庡啀閫�娆緙");
+ }
QueryWrapper<Refund> wrapper = new QueryWrapper<>();
wrapper.lambda()
.eq(Refund::getObjId,orderId)
- .orderByDesc(Refund::getCreateDate)
- .last("limit 1");
- Refund lastRefund = refundMapper.selectOne(wrapper);
- if (Objects.isNull(lastRefund)){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏀硅鍗曡缁撶畻鍚庡湪閫�娆�");
- }
- BigDecimal canBalance = lastRefund.getCanBalance();
+ .eq(Refund::getStatus,Constants.TWO)
+ .eq(Refund::getIsdeleted,Constants.ZERO) ;
+ wrapper.select("sum(money) as money").last(" limit 1");
+ Refund total = refundMapper.selectOne(wrapper);
+ BigDecimal refundMoney = total == null?new BigDecimal(0):Constants.formatDecimalNum(total.getMoney());
+ BigDecimal canBalance =Constants.formatDecimalNum(goodsorder.getMoney()).subtract(money);
if(canBalance.compareTo(money) > Constants.ZERO){
RefundDTO refundDTO = new RefundDTO();
refundDTO.setOrderId(orderId);
- refundDTO.setCanBalance(lastRefund.getCanBalance().subtract(lastRefund.getMoney()));
+ refundDTO.setCanBalance(canBalance);
refundDTO.setRefundAmount(money);
refundDTO.setTotalAmount(goodsorder.getMoney());
refundDTO.setMemberId(goodsorder.getMemberId());
+ refundDTO.setCreator(principal.getId());
refundDTO.setReason(reason);
refundDTO.setType(Constants.REFUND_TYPE.BACK.getKey());
Refund refund = wxMiniUtilService.wxRefund(refundDTO);
}else {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"閫�娆鹃噾棰濅笉鍏佽瓒呰繃"+canBalance);
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝閫�娆鹃噾棰濅笉鍏佽瓒呰繃"+canBalance);
}
}
@@ -529,20 +536,16 @@
QueryWrapper<Refund> wrapper = new QueryWrapper<>();
wrapper.lambda()
.eq(Refund::getObjId,orderId)
- .orderByDesc(Refund::getCreateDate);
- List<Refund> refunds = refundMapper.selectList(wrapper);
+ .eq(Refund::getStatus,Constants.TWO)
+ .eq(Refund::getIsdeleted,Constants.ZERO) ;
+ wrapper.select("sum(money) as money").last(" limit 1");
+ Refund total = refundMapper.selectOne(wrapper);
GoodsorderCanBanlanceDTO goodsorderCanBanlanceDTO = new GoodsorderCanBanlanceDTO();
goodsorderCanBanlanceDTO.setGoodsorderMoney(goodsorder.getMoney());
goodsorderCanBanlanceDTO.setCloseMoney(goodsorder.getCloseMoney());
- if (!CollectionUtils.isEmpty(refunds)){
- BigDecimal reduce = refunds.stream().map(s -> s.getMoney()).reduce(new BigDecimal("0"), (a, b) -> b.add(a));
- Refund refund = refunds.stream().findFirst().orElse(null);
- goodsorderCanBanlanceDTO.setHasRefundMoney(reduce);
- goodsorderCanBanlanceDTO.setCanBanlanceMoney(refund.getCanBalance().subtract(refund.getMoney()));
- }else {
- goodsorderCanBanlanceDTO.setHasRefundMoney(new BigDecimal("0"));
- goodsorderCanBanlanceDTO.setCanBanlanceMoney(goodsorder.getMoney());
- }
+ BigDecimal reduce = total!=null?Constants.formatDecimalNum(total.getMoney()):new BigDecimal(0);
+ goodsorderCanBanlanceDTO.setHasRefundMoney(reduce);
+ goodsorderCanBanlanceDTO.setCanBanlanceMoney(Constants.formatDecimalNum(goodsorder.getMoney()).subtract(goodsorderCanBanlanceDTO.getHasRefundMoney()));
return goodsorderCanBanlanceDTO;
}
@@ -673,8 +676,9 @@
goodsorder.setId(Constants.getUUID());
goodsorder.setCreateDate(new Date());
goodsorder.setIsdeleted(Constants.ZERO);
+ goodsorder.setCode(goodsorder.getId());
goodsorder.setMemberId(memberId);
- goodsorder.setMoney(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode()));
+ goodsorder.setMoney(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode()).multiply(new BigDecimal(100)));
goodsorder.setStatus(Constants.goodsorderStatus.waitPay);
goodsorder.setPreOrderid(goodsorder.getId());
goodsorder.setPayStatus(Constants.goodsorderPayStatus.waitPay);
@@ -687,8 +691,7 @@
request.setBody("鏀粯鎶奸噾");
request.setAttach("createGoodsOrder");
request.setOutTradeNo(goodsorder.getId());
-// request.setTotalFee(BaseWxPayRequest.yuanToFen(goodsorder.getMoney().toString()));
- request.setTotalFee(1);
+ request.setTotalFee(goodsorder.getMoney().intValue());
request.setSpbillCreateIp(this.getIpAddr());
request.setTimeStart(DateUtil.DateToString(new Date(), "yyyyMMddHHmmss"));
request.setOpenid(member.getOpenid());
@@ -747,8 +750,10 @@
Date date = new Date();
list.forEach(s->{
try {
- goodsorder.setEditDate(date);
- goodsorder.setEditor(null);
+ s.setEditDate(date);
+ s.setEditor(null);
+ s.setCloseDate(date);
+
closeGoodsorder(s,Constants.REFUND_TYPE.PLAT_AUTO.getKey());
}catch (BusinessException e){
--
Gitblit v1.9.3