Browse Source

新增发票抬头接口

DESKTOP-VAEGFGM\zqc 10 months ago
parent
commit
9cd4ea4930
17 changed files with 896 additions and 0 deletions
  1. 6 0
      citu-module-member/citu-module-member-api/src/main/java/com/citu/module/member/enums/ErrorCodeConstants.java
  2. 96 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/InvoiceListController.java
  3. 93 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/InvoiceTitleController.java
  4. 38 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceListPageReqVO.java
  5. 50 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceListRespVO.java
  6. 40 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceListSaveReqVO.java
  7. 40 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceTitlePageReqVO.java
  8. 48 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceTitleRespVO.java
  9. 34 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceTitleSaveReqVO.java
  10. 61 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/dal/dataobject/invoice/InvoiceListDO.java
  11. 55 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/dal/dataobject/invoice/InvoiceTitleDO.java
  12. 33 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/dal/mysql/invoice/InvoiceListMapper.java
  13. 32 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/dal/mysql/invoice/InvoiceTitleMapper.java
  14. 57 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/service/invoice/InvoiceListService.java
  15. 76 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/service/invoice/InvoiceListServiceImpl.java
  16. 57 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/service/invoice/InvoiceTitleService.java
  17. 80 0
      citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/service/invoice/InvoiceTitleServiceImpl.java

+ 6 - 0
citu-module-member/citu-module-member-api/src/main/java/com/citu/module/member/enums/ErrorCodeConstants.java

@@ -55,4 +55,10 @@ public interface ErrorCodeConstants {
     ErrorCode GROUP_NOT_EXISTS = new ErrorCode(1_004_012_000, "用户分组不存在");
     ErrorCode GROUP_HAS_USER = new ErrorCode(1_004_012_001, "用户分组下存在用户,无法删除");
 
+
+    ErrorCode INVOICE_TITLE_NOT_EXISTS = new ErrorCode(1_004_013_001, "发票抬头不存在");
+
+
+    ErrorCode INVOICE_LIST_NOT_EXISTS = new ErrorCode(1_004_014_001, "发票清单不存在");
+
 }

+ 96 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/InvoiceListController.java

@@ -0,0 +1,96 @@
+package com.citu.module.member.controller.app.invoice;
+
+import com.citu.module.member.controller.app.invoice.vo.InvoiceListPageReqVO;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceListRespVO;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceListSaveReqVO;
+import com.citu.module.member.dal.dataobject.invoice.InvoiceListDO;
+import com.citu.module.member.service.invoice.InvoiceListService;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.validation.constraints.*;
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.common.util.object.BeanUtils;
+import static com.citu.framework.common.pojo.CommonResult.success;
+
+import com.citu.framework.excel.core.util.ExcelUtils;
+
+import com.citu.framework.apilog.core.annotation.ApiAccessLog;
+import static com.citu.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+
+@Tag(name = " 发票清单")
+@RestController
+@RequestMapping("/member/invoice-list")
+@Validated
+public class InvoiceListController {
+
+    @Resource
+    private InvoiceListService invoiceListService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建发票")
+    public CommonResult<String> createInvoiceList(@Valid @RequestBody InvoiceListSaveReqVO createReqVO) {
+        return success(invoiceListService.createInvoiceList(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新发票清单")
+    @PreAuthorize("@ss.hasPermission('member:invoice-list:update')")
+    public CommonResult<Boolean> updateInvoiceList(@Valid @RequestBody InvoiceListSaveReqVO updateReqVO) {
+        invoiceListService.updateInvoiceList(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除发票清单")
+    @Parameter(name = "id", description = "编号", required = true)
+    public CommonResult<Boolean> deleteInvoiceList(@RequestParam("id") String id) {
+        invoiceListService.deleteInvoiceList(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得发票清单")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('member:invoice-list:query')")
+    public CommonResult<InvoiceListRespVO> getInvoiceList(@RequestParam("id") String id) {
+        InvoiceListDO invoiceList = invoiceListService.getInvoiceList(id);
+        return success(BeanUtils.toBean(invoiceList, InvoiceListRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得发票清单分页")
+//    @PreAuthorize("@ss.hasPermission('member:invoice-list:query')")
+    public CommonResult<PageResult<InvoiceListRespVO>> getInvoiceListPage(@Valid InvoiceListPageReqVO pageReqVO) {
+        PageResult<InvoiceListDO> pageResult = invoiceListService.getInvoiceListPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, InvoiceListRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出发票清单 Excel")
+//    @PreAuthorize("@ss.hasPermission('member:invoice-list:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportInvoiceListExcel(@Valid InvoiceListPageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<InvoiceListDO> list = invoiceListService.getInvoiceListPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "发票清单.xls", "数据", InvoiceListRespVO.class,
+                        BeanUtils.toBean(list, InvoiceListRespVO.class));
+    }
+
+}

+ 93 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/InvoiceTitleController.java

@@ -0,0 +1,93 @@
+package com.citu.module.member.controller.app.invoice;
+
+import com.citu.module.member.controller.app.invoice.vo.InvoiceTitlePageReqVO;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceTitleRespVO;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceTitleSaveReqVO;
+import com.citu.module.member.dal.dataobject.invoice.InvoiceTitleDO;
+import com.citu.module.member.service.invoice.InvoiceTitleService;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.validation.constraints.*;
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.common.util.object.BeanUtils;
+import static com.citu.framework.common.pojo.CommonResult.success;
+
+import com.citu.framework.excel.core.util.ExcelUtils;
+
+import com.citu.framework.apilog.core.annotation.ApiAccessLog;
+import static com.citu.framework.apilog.core.enums.OperateTypeEnum.*;
+
+
+
+@Tag(name = "管理发票抬头")
+@RestController
+@RequestMapping("/member/invoice-title")
+@Validated
+public class InvoiceTitleController {
+
+    @Resource
+    private InvoiceTitleService invoiceTitleService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建发票抬头")
+    public CommonResult<Long> createInvoiceTitle(@Valid @RequestBody InvoiceTitleSaveReqVO createReqVO) {
+        return success(invoiceTitleService.createInvoiceTitle(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新发票抬头")
+    public CommonResult<Boolean> updateInvoiceTitle(@Valid @RequestBody InvoiceTitleSaveReqVO updateReqVO) {
+        invoiceTitleService.updateInvoiceTitle(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除发票抬头")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('member:invoice-title:delete')")
+    public CommonResult<Boolean> deleteInvoiceTitle(@RequestParam("id") Long id) {
+        invoiceTitleService.deleteInvoiceTitle(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得发票抬头")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    public CommonResult<InvoiceTitleRespVO> getInvoiceTitle(@RequestParam("id") Long id) {
+        InvoiceTitleDO invoiceTitle = invoiceTitleService.getInvoiceTitle(id);
+        return success(BeanUtils.toBean(invoiceTitle, InvoiceTitleRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得发票抬头分页")
+    public CommonResult<PageResult<InvoiceTitleRespVO>> getInvoiceTitlePage(@Valid InvoiceTitlePageReqVO pageReqVO) {
+        PageResult<InvoiceTitleDO> pageResult = invoiceTitleService.getInvoiceTitlePage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, InvoiceTitleRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出发票抬头 Excel")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportInvoiceTitleExcel(@Valid InvoiceTitlePageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<InvoiceTitleDO> list = invoiceTitleService.getInvoiceTitlePage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "发票抬头.xls", "数据", InvoiceTitleRespVO.class,
+                        BeanUtils.toBean(list, InvoiceTitleRespVO.class));
+    }
+
+}

+ 38 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceListPageReqVO.java

@@ -0,0 +1,38 @@
+package com.citu.module.member.controller.app.invoice.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.citu.framework.common.pojo.PageParam;
+
+@Schema(description = "管理后台 - 发票清单分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class InvoiceListPageReqVO extends PageParam {
+
+    @Schema(description = "0.个人  1.企业")
+    private Integer category;
+
+    @Schema(description = "接受通知的电话")
+    private String phone;
+
+    @Schema(description = "接受通知的邮件")
+    private String email;
+
+    @Schema(description = "主体称呼")
+    private String title;
+
+    @Schema(description = "身份证号  或者 企业统一信用代码")
+    private String code;
+
+    @Schema(description = "用户编号", example = "10764")
+    private Long userId;
+
+    @Schema(description = "发票状态 0.待开票  1.已开票  2.拒绝开票")
+    private Integer statue;
+
+    @Schema(description = "支付订单id", example = "32484")
+    private Integer payOrderId;
+
+}

+ 50 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceListRespVO.java

@@ -0,0 +1,50 @@
+package com.citu.module.member.controller.app.invoice.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import java.util.*;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 发票清单 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class InvoiceListRespVO {
+
+    @Schema(description = "主键", example = "14860")
+    @ExcelProperty("主键")
+    private String id;
+
+    @Schema(description = "0.个人  1.企业")
+    @ExcelProperty("0.个人  1.企业")
+    private Integer category;
+
+    @Schema(description = "接受通知的电话")
+    @ExcelProperty("接受通知的电话")
+    private String phone;
+
+    @Schema(description = "接受通知的邮件")
+    @ExcelProperty("接受通知的邮件")
+    private String email;
+
+    @Schema(description = "主体称呼")
+    @ExcelProperty("主体称呼")
+    private String title;
+
+    @Schema(description = "身份证号  或者 企业统一信用代码")
+    @ExcelProperty("身份证号  或者 企业统一信用代码")
+    private String code;
+
+    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10764")
+    @ExcelProperty("用户编号")
+    private Long userId;
+
+    @Schema(description = "发票状态 0.待开票  1.已开票  2.拒绝开票")
+    @ExcelProperty("发票状态 0.待开票  1.已开票  2.拒绝开票")
+    private Integer statue;
+
+    @Schema(description = "支付订单id", example = "32484")
+    @ExcelProperty("支付订单id")
+    private Integer payOrderId;
+
+}

+ 40 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceListSaveReqVO.java

@@ -0,0 +1,40 @@
+package com.citu.module.member.controller.app.invoice.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import javax.validation.constraints.*;
+
+@Schema(description = "管理后台 - 发票清单新增/修改 Request VO")
+@Data
+public class InvoiceListSaveReqVO {
+
+    @Schema(description = "主键", example = "14860")
+    private String id;
+
+    @Schema(description = "0.个人  1.企业")
+    private Integer category;
+
+    @Schema(description = "接受通知的电话")
+    private String phone;
+
+    @Schema(description = "接受通知的邮件")
+    private String email;
+
+    @Schema(description = "主体称呼")
+    private String title;
+
+    @Schema(description = "身份证号  或者 企业统一信用代码")
+    private String code;
+
+    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10764")
+    @NotNull(message = "用户编号不能为空")
+    private Long userId;
+
+    @Schema(description = "发票状态 0.待开票  1.已开票  2.拒绝开票")
+    private Integer statue;
+
+    @Schema(description = "支付订单id", example = "32484")
+    private Integer payOrderId;
+
+}

+ 40 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceTitlePageReqVO.java

@@ -0,0 +1,40 @@
+package com.citu.module.member.controller.app.invoice.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.citu.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 发票抬头分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class InvoiceTitlePageReqVO extends PageParam {
+
+    @Schema(description = "0.个人  1.企业")
+    private Integer category;
+
+    @Schema(description = "接受通知的电话")
+    private String phone;
+
+    @Schema(description = "接受通知的邮件")
+    private String email;
+
+    @Schema(description = "主体称呼")
+    private String title;
+
+    @Schema(description = "身份证号  或者 企业统一信用代码")
+    private String code;
+
+    @Schema(description = "用户编号", example = "18709")
+    private Long userId;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 48 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceTitleRespVO.java

@@ -0,0 +1,48 @@
+package com.citu.module.member.controller.app.invoice.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 发票抬头 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class InvoiceTitleRespVO {
+
+    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "23688")
+    @ExcelProperty("主键")
+    private Long id;
+
+    @Schema(description = "0.个人  1.企业")
+    @ExcelProperty("0.个人  1.企业")
+    private Integer category;
+
+    @Schema(description = "接受通知的电话")
+    @ExcelProperty("接受通知的电话")
+    private String phone;
+
+    @Schema(description = "接受通知的邮件")
+    @ExcelProperty("接受通知的邮件")
+    private String email;
+
+    @Schema(description = "主体称呼")
+    @ExcelProperty("主体称呼")
+    private String title;
+
+    @Schema(description = "身份证号  或者 企业统一信用代码")
+    @ExcelProperty("身份证号  或者 企业统一信用代码")
+    private String code;
+
+    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18709")
+    @ExcelProperty("用户编号")
+    private Long userId;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 34 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/controller/app/invoice/vo/InvoiceTitleSaveReqVO.java

@@ -0,0 +1,34 @@
+package com.citu.module.member.controller.app.invoice.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import javax.validation.constraints.*;
+
+@Schema(description = "管理后台 - 发票抬头新增/修改 Request VO")
+@Data
+public class InvoiceTitleSaveReqVO {
+
+    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "23688")
+    private Long id;
+
+    @Schema(description = "0.个人  1.企业")
+    private Integer category;
+
+    @Schema(description = "接受通知的电话")
+    private String phone;
+
+    @Schema(description = "接受通知的邮件")
+    private String email;
+
+    @Schema(description = "主体称呼")
+    private String title;
+
+    @Schema(description = "身份证号  或者 企业统一信用代码")
+    private String code;
+
+    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "18709")
+    @NotNull(message = "用户编号不能为空")
+    private Long userId;
+
+}

+ 61 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/dal/dataobject/invoice/InvoiceListDO.java

@@ -0,0 +1,61 @@
+package com.citu.module.member.dal.dataobject.invoice;
+
+import lombok.*;
+import java.util.*;
+import com.baomidou.mybatisplus.annotation.*;
+import com.citu.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 发票清单 DO
+ *
+ * @author 辞图科技
+ */
+@TableName("member_invoice_list")
+@KeySequence("member_invoice_list_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class InvoiceListDO extends BaseDO {
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.INPUT)
+    private String id;
+    /**
+     * 0.个人  1.企业
+     */
+    private Integer category;
+    /**
+     * 接受通知的电话
+     */
+    private String phone;
+    /**
+     * 接受通知的邮件
+     */
+    private String email;
+    /**
+     * 主体称呼
+     */
+    private String title;
+    /**
+     * 身份证号  或者 企业统一信用代码
+     */
+    private String code;
+    /**
+     * 用户编号
+     */
+    private Long userId;
+    /**
+     * 发票状态 0.待开票  1.已开票  2.拒绝开票
+     */
+    private Integer statue;
+    /**
+     * 支付订单id
+     */
+    private Integer payOrderId;
+
+}

+ 55 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/dal/dataobject/invoice/InvoiceTitleDO.java

@@ -0,0 +1,55 @@
+package com.citu.module.member.dal.dataobject.invoice;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import com.citu.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 发票抬头 DO
+ *
+ * @author 辞图科技
+ */
+@TableName("member_invoice_title")
+@KeySequence("member_invoice_title_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class InvoiceTitleDO extends BaseDO {
+
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+    /**
+     * 0.个人  1.企业
+     */
+    private Integer category;
+    /**
+     * 接受通知的电话
+     */
+    private String phone;
+    /**
+     * 接受通知的邮件
+     */
+    private String email;
+    /**
+     * 主体称呼
+     */
+    private String title;
+    /**
+     * 身份证号  或者 企业统一信用代码
+     */
+    private String code;
+    /**
+     * 用户编号
+     */
+    private Long userId;
+
+}

+ 33 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/dal/mysql/invoice/InvoiceListMapper.java

@@ -0,0 +1,33 @@
+package com.citu.module.member.dal.mysql.invoice;
+
+import java.util.*;
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.citu.framework.mybatis.core.mapper.BaseMapperX;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceListPageReqVO;
+import com.citu.module.member.dal.dataobject.invoice.InvoiceListDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 发票清单 Mapper
+ *
+ * @author 辞图科技
+ */
+@Mapper
+public interface InvoiceListMapper extends BaseMapperX<InvoiceListDO> {
+
+    default PageResult<InvoiceListDO> selectPage(InvoiceListPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<InvoiceListDO>()
+                .eqIfPresent(InvoiceListDO::getCategory, reqVO.getCategory())
+                .eqIfPresent(InvoiceListDO::getPhone, reqVO.getPhone())
+                .eqIfPresent(InvoiceListDO::getEmail, reqVO.getEmail())
+                .eqIfPresent(InvoiceListDO::getTitle, reqVO.getTitle())
+                .eqIfPresent(InvoiceListDO::getCode, reqVO.getCode())
+                .eqIfPresent(InvoiceListDO::getUserId, reqVO.getUserId())
+                .eqIfPresent(InvoiceListDO::getStatue, reqVO.getStatue())
+                .eqIfPresent(InvoiceListDO::getPayOrderId, reqVO.getPayOrderId())
+                .orderByDesc(InvoiceListDO::getId));
+    }
+
+}

+ 32 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/dal/mysql/invoice/InvoiceTitleMapper.java

@@ -0,0 +1,32 @@
+package com.citu.module.member.dal.mysql.invoice;
+
+import java.util.*;
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.citu.framework.mybatis.core.mapper.BaseMapperX;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceTitlePageReqVO;
+import com.citu.module.member.dal.dataobject.invoice.InvoiceTitleDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 发票抬头 Mapper
+ *
+ * @author 辞图科技
+ */
+@Mapper
+public interface InvoiceTitleMapper extends BaseMapperX<InvoiceTitleDO> {
+
+    default PageResult<InvoiceTitleDO> selectPage(InvoiceTitlePageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<InvoiceTitleDO>()
+                .eqIfPresent(InvoiceTitleDO::getCategory, reqVO.getCategory())
+                .eqIfPresent(InvoiceTitleDO::getPhone, reqVO.getPhone())
+                .eqIfPresent(InvoiceTitleDO::getEmail, reqVO.getEmail())
+                .eqIfPresent(InvoiceTitleDO::getTitle, reqVO.getTitle())
+                .eqIfPresent(InvoiceTitleDO::getCode, reqVO.getCode())
+                .eqIfPresent(InvoiceTitleDO::getUserId, reqVO.getUserId())
+                .betweenIfPresent(InvoiceTitleDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(InvoiceTitleDO::getId));
+    }
+
+}

+ 57 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/service/invoice/InvoiceListService.java

@@ -0,0 +1,57 @@
+package com.citu.module.member.service.invoice;
+
+import java.util.*;
+import javax.validation.*;
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceListPageReqVO;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceListSaveReqVO;
+import com.citu.module.member.dal.dataobject.invoice.InvoiceListDO;
+
+/**
+ * 发票清单 Service 接口
+ *
+ * @author 辞图科技
+ */
+public interface InvoiceListService {
+
+    /**
+     * 创建发票清单
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    String createInvoiceList(@Valid InvoiceListSaveReqVO createReqVO);
+
+    /**
+     * 更新发票清单
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateInvoiceList(@Valid InvoiceListSaveReqVO updateReqVO);
+
+    /**
+     * 删除发票清单
+     *
+     * @param id 编号
+     */
+    void deleteInvoiceList(String id);
+
+    /**
+     * 获得发票清单
+     *
+     * @param id 编号
+     * @return 发票清单
+     */
+    InvoiceListDO getInvoiceList(String id);
+
+    /**
+     * 获得发票清单分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 发票清单分页
+     */
+    PageResult<InvoiceListDO> getInvoiceListPage(InvoiceListPageReqVO pageReqVO);
+
+}

+ 76 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/service/invoice/InvoiceListServiceImpl.java

@@ -0,0 +1,76 @@
+package com.citu.module.member.service.invoice;
+
+import com.citu.module.member.controller.app.invoice.vo.InvoiceListPageReqVO;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceListSaveReqVO;
+import com.citu.module.member.dal.dataobject.invoice.InvoiceListDO;
+import com.citu.module.member.dal.mysql.invoice.InvoiceListMapper;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.util.object.BeanUtils;
+
+
+import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.citu.module.member.enums.ErrorCodeConstants.*;
+
+/**
+ * 发票清单 Service 实现类
+ *
+ * @author 辞图科技
+ */
+@Service
+@Validated
+public class InvoiceListServiceImpl implements InvoiceListService {
+
+    @Resource
+    private InvoiceListMapper invoiceListMapper;
+
+    @Override
+    public String createInvoiceList(InvoiceListSaveReqVO createReqVO) {
+        // 插入
+        InvoiceListDO invoiceList = BeanUtils.toBean(createReqVO, InvoiceListDO.class);
+        invoiceListMapper.insert(invoiceList);
+        // 返回
+        return invoiceList.getId();
+    }
+
+    @Override
+    public void updateInvoiceList(InvoiceListSaveReqVO updateReqVO) {
+        // 校验存在
+        validateInvoiceListExists(updateReqVO.getId());
+        // 更新
+        InvoiceListDO updateObj = BeanUtils.toBean(updateReqVO, InvoiceListDO.class);
+        invoiceListMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteInvoiceList(String id) {
+        // 校验存在
+        validateInvoiceListExists(id);
+        // 删除
+        invoiceListMapper.deleteById(id);
+    }
+
+    private void validateInvoiceListExists(String id) {
+        if (invoiceListMapper.selectById(id) == null) {
+            throw exception(INVOICE_LIST_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public InvoiceListDO getInvoiceList(String id) {
+        return invoiceListMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<InvoiceListDO> getInvoiceListPage(InvoiceListPageReqVO pageReqVO) {
+        return invoiceListMapper.selectPage(pageReqVO);
+    }
+
+}

+ 57 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/service/invoice/InvoiceTitleService.java

@@ -0,0 +1,57 @@
+package com.citu.module.member.service.invoice;
+
+import java.util.*;
+import javax.validation.*;
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceTitlePageReqVO;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceTitleSaveReqVO;
+import com.citu.module.member.dal.dataobject.invoice.InvoiceTitleDO;
+
+/**
+ * 发票抬头 Service 接口
+ *
+ * @author 辞图科技
+ */
+public interface InvoiceTitleService {
+
+    /**
+     * 创建发票抬头
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createInvoiceTitle(@Valid InvoiceTitleSaveReqVO createReqVO);
+
+    /**
+     * 更新发票抬头
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateInvoiceTitle(@Valid InvoiceTitleSaveReqVO updateReqVO);
+
+    /**
+     * 删除发票抬头
+     *
+     * @param id 编号
+     */
+    void deleteInvoiceTitle(Long id);
+
+    /**
+     * 获得发票抬头
+     *
+     * @param id 编号
+     * @return 发票抬头
+     */
+    InvoiceTitleDO getInvoiceTitle(Long id);
+
+    /**
+     * 获得发票抬头分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 发票抬头分页
+     */
+    PageResult<InvoiceTitleDO> getInvoiceTitlePage(InvoiceTitlePageReqVO pageReqVO);
+
+}

+ 80 - 0
citu-module-member/citu-module-member-biz/src/main/java/com/citu/module/member/service/invoice/InvoiceTitleServiceImpl.java

@@ -0,0 +1,80 @@
+package com.citu.module.member.service.invoice;
+
+import com.citu.framework.security.core.util.SecurityFrameworkUtils;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceTitlePageReqVO;
+import com.citu.module.member.controller.app.invoice.vo.InvoiceTitleSaveReqVO;
+import com.citu.module.member.dal.dataobject.invoice.InvoiceTitleDO;
+import com.citu.module.member.dal.mysql.invoice.InvoiceTitleMapper;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.util.object.BeanUtils;
+
+
+import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.citu.module.member.enums.ErrorCodeConstants.*;
+
+/**
+ * 发票抬头 Service 实现类
+ *
+ * @author 辞图科技
+ */
+@Service
+@Validated
+public class InvoiceTitleServiceImpl implements InvoiceTitleService {
+
+    @Resource
+    private InvoiceTitleMapper invoiceTitleMapper;
+
+    @Override
+    public Long createInvoiceTitle(InvoiceTitleSaveReqVO createReqVO) {
+        // 插入
+        InvoiceTitleDO invoiceTitle = BeanUtils.toBean(createReqVO, InvoiceTitleDO.class);
+        invoiceTitle.setUserId(SecurityFrameworkUtils.getLoginUserId());
+        invoiceTitleMapper.insert(invoiceTitle);
+        // 返回
+        return invoiceTitle.getId();
+    }
+
+    @Override
+    public void updateInvoiceTitle(InvoiceTitleSaveReqVO updateReqVO) {
+        // 校验存在
+        validateInvoiceTitleExists(updateReqVO.getId());
+        // 更新
+        InvoiceTitleDO updateObj = BeanUtils.toBean(updateReqVO, InvoiceTitleDO.class);
+        updateObj.setUserId(SecurityFrameworkUtils.getLoginUserId());
+
+        invoiceTitleMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteInvoiceTitle(Long id) {
+        // 校验存在
+        validateInvoiceTitleExists(id);
+        // 删除
+        invoiceTitleMapper.deleteById(id);
+    }
+
+    private void validateInvoiceTitleExists(Long id) {
+        if (invoiceTitleMapper.selectById(id) == null) {
+            throw exception(INVOICE_TITLE_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public InvoiceTitleDO getInvoiceTitle(Long id) {
+        return invoiceTitleMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<InvoiceTitleDO> getInvoiceTitlePage(InvoiceTitlePageReqVO pageReqVO) {
+        return invoiceTitleMapper.selectPage(pageReqVO);
+    }
+
+}