From 44116ce7d351478477871a796c0eaab0acb11e4e Mon Sep 17 00:00:00 2001 From: yupeng <roc__yu@163.com> Date: 星期二, 11 二月 2025 11:49:08 +0800 Subject: [PATCH] feat:更新账单列表 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java | 9 +++- ruoyi-system/src/main/java/com/ruoyi/system/dto/TbillSaveDto.java | 17 ++++++++ ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java | 2 + ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java | 25 +++++++++++- ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java | 18 ++++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java | 5 ++ 6 files changed, 69 insertions(+), 7 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java index ffce3f5..5322e03 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java @@ -3,7 +3,9 @@ import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.system.dto.TBillDto; +import com.ruoyi.system.dto.TbillSaveDto; import com.ruoyi.system.model.TBill; import com.ruoyi.system.query.TBillQuery; import com.ruoyi.system.service.TBillService; @@ -36,10 +38,13 @@ } @PostMapping("add") - public R<PageInfo<TBillDto>> add(@Validated @RequestBody TBill bill){ - tBillService.save(bill); + public R<PageInfo<TBillDto>> add(@Validated @RequestBody TbillSaveDto bill){ + tBillService.saveBill(bill); return R.ok(); } + + + } diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java index 88fdae2..70cdda4 100644 --- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java +++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/PayController.java @@ -1,11 +1,15 @@ package com.ruoyi.web.controller.api; +import cn.hutool.core.collection.CollectionUtil; +import com.ruoyi.common.constant.AmountConstant; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.dto.MakeOrderDto; import com.ruoyi.system.dto.MakeOrderResp; import com.ruoyi.system.dto.OfflinePayDto; import com.ruoyi.system.model.TBill; +import com.ruoyi.system.model.TBillConfirm; +import com.ruoyi.system.service.TBillConfirmService; import com.ruoyi.system.service.TBillService; import com.ruoyi.system.service.TPayOrderService; import io.swagger.annotations.ApiOperation; @@ -17,6 +21,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Collections; import java.util.List; @RestController @@ -30,6 +37,10 @@ @Autowired TBillService tBillService; + + @Autowired + TBillConfirmService tBillConfirmService; + @ApiOperation(value = "创建支付订单") @PostMapping("makeOrder") public R<MakeOrderResp> makeOrder(@Validated @RequestBody MakeOrderDto dto){ @@ -47,8 +58,13 @@ save.setPayFeesType(2); save.setVoucher(dto.getVoucher()); save.setPayFeesStatus("2"); - tBillService.checkAndUpdate(save); + tBillService.lockAndUpdateInfo(save); } + TBillConfirm confirm = new TBillConfirm(); + confirm.setBillId(CollectionUtil.join(dto.getBillIds(),",")); + confirm.setVoucher(dto.getVoucher()); + confirm.setPayFeesMoney(new BigDecimal(dto.getAmount()).divide(AmountConstant.b100).setScale(2, RoundingMode.HALF_DOWN).doubleValue()); + tBillConfirmService.save(confirm); return R.ok(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/TbillSaveDto.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TbillSaveDto.java new file mode 100644 index 0000000..f40a77b --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TbillSaveDto.java @@ -0,0 +1,17 @@ +package com.ruoyi.system.dto; + +import com.ruoyi.system.model.TBill; +import com.ruoyi.system.model.TBillDetail; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class TbillSaveDto extends TBill implements Serializable { + + @ApiModelProperty(value = "水单费列表") + private List<TBillDetail> details; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java index 68ea69f..bb355e1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java @@ -8,6 +8,7 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; +import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.domain.BaseModel; @@ -16,6 +17,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.data.annotation.Transient; /** * <p> diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java index d5e010a..ccf44e6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TBillService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.dto.TBillDto; +import com.ruoyi.system.dto.TbillSaveDto; import com.ruoyi.system.model.TBill; import com.ruoyi.system.query.TBillQuery; @@ -18,5 +19,7 @@ PageInfo<TBillDto> queryPage(TBillQuery query); - Boolean checkAndUpdate(TBill save); + Boolean lockAndUpdateInfo(TBill save); + + void saveBill(TbillSaveDto bill); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java index 1247c6d..390106e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java @@ -7,16 +7,20 @@ import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.dto.TBillDto; +import com.ruoyi.system.dto.TbillSaveDto; import com.ruoyi.system.mapper.TBillMapper; import com.ruoyi.system.model.TBill; +import com.ruoyi.system.model.TBillDetail; import com.ruoyi.system.model.TContract; import com.ruoyi.system.model.THouse; import com.ruoyi.system.query.TBillQuery; +import com.ruoyi.system.service.TBillDetailService; import com.ruoyi.system.service.TBillService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import io.jsonwebtoken.lang.Assert; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; @@ -37,6 +41,9 @@ @Autowired TBillMapper tBillMapper; + @Autowired + TBillDetailService tBillDetailService; + public PageInfo<TBillDto> queryPage(TBillQuery query){ PageInfo<TBill> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); @@ -50,15 +57,27 @@ * @param tBill * @return */ - public Boolean checkAndUpdate(TBill tBill){ + public Boolean lockAndUpdateInfo(TBill tBill){ if (StringUtils.isEmpty(tBill.getId())){ throw new ServiceException("账单主键ID不能为空"); } - return true; } - + @Override + @Transactional(rollbackFor = Exception.class) + public void saveBill(TbillSaveDto bill) { + save(bill); + if (bill.getBillType().equals("3")){ + if (bill.getDetails()==null || bill.getDetails().size()==0){ + throw new ServiceException("生活费用列表不能为空"); + } + for (TBillDetail detail : bill.getDetails()) { + detail.setBillId(bill.getId()); + tBillDetailService.save(detail); + } + } + } } -- Gitblit v1.7.1