From 0ab9dfd8f122195e4e9f09bd50c59e0a47450bec Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 19 三月 2025 15:50:03 +0800 Subject: [PATCH] fix: resolve merge conflicts in .gitignore --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java | 134 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 134 insertions(+), 0 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java new file mode 100644 index 0000000..c8d77eb --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPayOrderServiceImpl.java @@ -0,0 +1,134 @@ +package com.ruoyi.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.constant.AmountConstant; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.OrderNos; +import com.ruoyi.system.dto.MakeOrderDto; +import com.ruoyi.system.dto.MakeOrderResp; +import com.ruoyi.system.mapper.TPayOrderMapper; +import com.ruoyi.system.model.TBill; +import com.ruoyi.system.model.TOrderBill; +import com.ruoyi.system.model.TPayOrder; +import com.ruoyi.system.model.TTenant; +import com.ruoyi.system.service.TBillService; +import com.ruoyi.system.service.TOrderBillService; +import com.ruoyi.system.service.TPayOrderService; +import com.ruoyi.system.service.TTenantService; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * <p> + * 支付订单表 服务实现类 + * </p> + * + * @author xiaochen + * @since 2025-02-07 + */ +@Service +public class TPayOrderServiceImpl extends ServiceImpl<TPayOrderMapper, TPayOrder> implements TPayOrderService { + + @Autowired + TBillService billService; + + @Autowired + TTenantService tTenantService; + + @Autowired + TOrderBillService tOrderBillService; + + + public long caculateRentFee(TBill bill){ + return bill.getOutstandingMoney() + .longValue(); + } + + + public String createAppletUrl(String orderNo){ + return ""+orderNo; + } + + @Override + public MakeOrderResp makeOrder(MakeOrderDto dto) { + + TTenant user = tTenantService.getById(dto.getUserId()); + if (user==null){ + throw new ServiceException("租户不存在"); + } + MakeOrderResp resp = new MakeOrderResp(); + if (dto.getBillIds().size()==1){ + TBill bill = billService.getById(dto.getBillIds().get(0)); + if (bill == null) { + throw new ServiceException("账单不存在"); + } + //欠费金额转成单位分比较 + long rent = bill.getOutstandingMoney().multiply(AmountConstant.b100) + .setScale(2,RoundingMode.HALF_DOWN).longValue(); + if (rent==0){ + throw new ServiceException("该账单已缴费"); + } + if (rent<dto.getAmount()){ + throw new ServiceException("支付金额超过了账单欠费金额"); + } + + TPayOrder order = new TPayOrder(); + order.setId(OrderNos.getDid(32)); + order.setAmount(dto.getAmount()); + order.setUserId(user.getId()); + order.setPhone(user.getPhone()); + order.setOpenId(dto.getOpenId()); + order.setUserName(user.getResidentName()); + save(order); + TOrderBill tOrderBill = new TOrderBill(); + tOrderBill.setBillId(bill.getId()); + tOrderBill.setOrderNo(order.getId()); + tOrderBillService.save(tOrderBill); + resp.setAmount(dto.getAmount()); + resp.setOrderNo(order.getId()); + resp.setAppletUrl(createAppletUrl(order.getId())); + return resp; + } + List<TOrderBill> orderBills = new ArrayList<>(); + String orderNo = OrderNos.getDid(32); + List<TBill> bills = dto.getBillIds().stream().map(id -> { + TBill bill = billService.getById(id); + if (bill == null) { + throw new ServiceException("billId:" + id + "不存在"); + } + orderBills.add(new TOrderBill(orderNo,bill.getId())); + return bill; + }).collect(Collectors.toList()); + //欠费金额转成单位分比较 + long sumRent = bills.stream().mapToLong((bill) + -> bill.getOutstandingMoney().multiply(AmountConstant.b100) + .setScale(2,RoundingMode.HALF_DOWN).longValue()) + .sum(); + if (sumRent==0){ + throw new ServiceException("账单已缴费"); + } + if (dto.getAmount()>sumRent){ + throw new ServiceException("支付金额超过所选账单欠费金额"); + } + TPayOrder order = new TPayOrder(); + order.setId(orderNo); + order.setAmount(dto.getAmount()); + order.setUserId(user.getId()); + order.setPhone(user.getPhone()); + order.setOpenId(dto.getOpenId()); + order.setUserName(user.getResidentName()); + save(order); + tOrderBillService.saveBatch(orderBills); + resp.setAmount(dto.getAmount()); + resp.setOrderNo(orderNo); + resp.setAppletUrl(createAppletUrl(orderNo)); + return resp; + } +} -- Gitblit v1.7.1