xuhy
2025-02-11 3d10f16c5550b706553ddcc109e98b6316ec8865
小程序缴费账单,开票
7个文件已修改
1个文件已添加
128 ■■■■■ 已修改文件
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TBillController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TInformationController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/constant/DictConstants.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/dto/TInvoiceDTO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TBillDetail.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TBillVO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TBillDetailMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TBillController.java
@@ -1,18 +1,30 @@
package com.ruoyi.web.controller.api;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.constant.DictConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DictUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.dto.TBillDto;
import com.ruoyi.system.dto.TInvoiceDTO;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TBillQuery;
import com.ruoyi.system.service.TBillDetailService;
import com.ruoyi.system.service.TBillService;
import com.ruoyi.system.service.TInvoiceService;
import com.ruoyi.system.service.TInvoiceToBillService;
import com.ruoyi.system.vo.TBillVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
 * <p>
@@ -22,13 +34,21 @@
 * @author xiaochen
 * @since 2025-01-17
 */
@Api(tags = "缴费账单")
@RestController
@RequestMapping("/t-bill")
public class TBillController {
    @Autowired
    TBillService tBillService;
    @Autowired
    TBillDetailService billDetailService;
    @Autowired
    TInvoiceService invoiceService;
    @Autowired
    TInvoiceToBillService invoiceToBillService;
    @ApiOperation(value = "缴费账单查询分页列表")
    @PostMapping("list")
    public R<PageInfo<TBillDto>> list(@RequestBody TBillQuery query){
        if (StringUtils.isEmpty(query.getUserId())){
@@ -38,6 +58,41 @@
        return R.ok(pageInfo);
    }
    @ApiOperation(value = "查看缴费账单详情")
    @GetMapping(value = "/getDetailById")
    public R<TBillVO> getDetailById(@RequestParam String id) {
        TBill bill = tBillService.getById(id);
        TBillVO billVO = new TBillVO();
        BeanUtils.copyProperties(bill, billVO);
        // 查询水电费列表
        if("3".equals(bill.getBillType())){
            List<TBillDetail> list = billDetailService.list(Wrappers.lambdaQuery(TBillDetail.class)
                    .eq(TBillDetail::getBillId, id));
            billVO.setBillDetailList(list);
        }
        billVO.setBillType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_BILL_TYPE,billVO.getBillType()));
        billVO.setPayFeesStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_PAY_FEES_STATUS,billVO.getPayFeesStatus()));
        return R.ok(billVO);
    }
    @ApiOperation(value = "缴费账单开票")
    @PostMapping(value = "/invoice")
    public R<String> invoice(@RequestBody TInvoiceDTO dto) {
        // 添加开票信息
        invoiceService.save(dto);
        // 添加开票信息中间表信息
        List<String> billIds = dto.getBillIds();
        List<TInvoiceToBill> sysInvoiceToBills = new ArrayList<>();
        for (String billId : billIds) {
            TInvoiceToBill tInvoiceToBill = new TInvoiceToBill();
            tInvoiceToBill.setInvoiceId(dto.getId());
            tInvoiceToBill.setBillId(billId);
            sysInvoiceToBills.add(tInvoiceToBill);
        }
        invoiceToBillService.saveBatch(sysInvoiceToBills);
        return R.ok();
    }
}
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TInformationController.java
@@ -1,6 +1,17 @@
package com.ruoyi.web.controller.api;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.model.TInformation;
import com.ruoyi.system.query.TInformationQuery;
import com.ruoyi.system.service.TInformationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -13,9 +24,25 @@
 * @author xiaochen
 * @since 2025-01-17
 */
@Api(tags = "资讯管理")
@RestController
@RequestMapping("/t-information")
public class TInformationController {
    private final TInformationService informationService;
    @Autowired
    public TInformationController(TInformationService informationService) {
        this.informationService = informationService;
    }
    /**
     * 获取资讯管理管理列表
     */
    @ApiOperation(value = "获取资讯管理分页列表")
    @PostMapping(value = "/pageList")
    public R<PageInfo<TInformation>> pageList(@RequestBody TInformationQuery query) {
        return R.ok(informationService.pageList(query));
    }
}
ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
@@ -66,7 +66,7 @@
    @PostMapping("/list")
    public AjaxResult list(@RequestBody SysRoleQuery query)
    {
        PageInfo<SysRole> list = roleService.selectList(query);
        PageInfo<SysRole> list = roleService.selectPageList(query);
        return AjaxResult.success(list);
    }
ruoyi-common/src/main/java/com/ruoyi/common/constant/DictConstants.java
@@ -39,4 +39,8 @@
     * 缴费状态 1=未缴费 2=待确认 3=已缴费 4=已逾期 5=已失效
     */
    public static final String DICT_TYPE_PAY_FEES_STATUS = "t_pay_fees_status";
    /**
     * 账单类型 1=租金 2=押金 3=生活费用
     */
    public static final String DICT_TYPE_BILL_TYPE = "t_bill_type";
}
ruoyi-system/src/main/java/com/ruoyi/system/dto/TInvoiceDTO.java
New file
@@ -0,0 +1,17 @@
package com.ruoyi.system.dto;
import com.ruoyi.system.model.TInvoice;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "开票DTO")
public class TInvoiceDTO extends TInvoice {
    @ApiModelProperty(value = "账单id集合")
    private List<String> billIds;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TBillDetail.java
@@ -57,4 +57,8 @@
    @TableField("total_amount")
    private BigDecimal totalAmount;
    @ApiModelProperty(value = "费用类型 1=水费 2=电费")
    @TableField("live_type")
    private Integer liveType;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/TBillVO.java
@@ -1,10 +1,18 @@
package com.ruoyi.system.vo;
import com.ruoyi.system.model.TBill;
import com.ruoyi.system.model.TBillDetail;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "缴费账单VO")
public class TBillVO extends TBill {
    @ApiModelProperty(value = "水电费明细")
    private List<TBillDetail> billDetailList;
}
ruoyi-system/src/main/resources/mapper/system/TBillDetailMapper.xml
@@ -11,6 +11,7 @@
        <result column="usage_measure" property="usageMeasure" />
        <result column="unit_price" property="unitPrice" />
        <result column="total_amount" property="totalAmount" />
        <result column="live_type" property="liveType" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_by" property="createBy" />
@@ -20,7 +21,7 @@
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, bill_id, start_reading, end_reading, usage_measure, unit_price, total_amount, create_time, update_time, create_by, update_by, disabled
        id, bill_id, start_reading, end_reading, usage_measure, unit_price, total_amount,live_type, create_time, update_time, create_by, update_by, disabled
    </sql>
</mapper>