feat: 债务还款计划代码生成

This commit is contained in:
bunny 2024-11-11 15:29:50 +08:00
parent 68636e5209
commit fbd385883b
41 changed files with 1181 additions and 47 deletions

View File

@ -16,12 +16,12 @@ public class AdminCodeGenerator {
public static final String author = "Bunny"; public static final String author = "Bunny";
// 公共路径 // 公共路径
// public static final String outputDir = "D:\\Project\\web\\PC\\financial\\financial-server\\service"; // public static final String outputDir = "D:\\Project\\web\\PC\\financial\\financial-server\\service";
public static final String outputDir = "D:\\MyFolder\\financial\\financial-server\\service"; public static final String outputDir = "D:\\MyFolder\\auth\\financial-web-server\\service";
// 实体类名称 // 实体类名称
public static final String entity = "Bunny"; public static final String entity = "Bunny";
public static void main(String[] args) { public static void main(String[] args) {
Generation("sys_category"); Generation("t_budget_category","t_debt_collection_management","t_debt_repayment_plan","t_debt_tracking","t_saving_goal");
} }
/** /**
@ -53,7 +53,7 @@ public class AdminCodeGenerator {
.strategyConfig(builder -> { .strategyConfig(builder -> {
// 设置要生成的表名 // 设置要生成的表名
builder.addInclude(tableName) builder.addInclude(tableName)
.addTablePrefix("sys_", "v_", "log_") .addTablePrefix("sys_", "v_", "log_", "t_")
.entityBuilder() .entityBuilder()
.enableLombok() .enableLombok()
.enableChainModel() .enableChainModel()

View File

@ -3,11 +3,16 @@ package cn.bunny.common.generator.generator;
import cn.bunny.common.generator.entity.BaseField; import cn.bunny.common.generator.entity.BaseField;
import cn.bunny.common.generator.entity.BaseResultMap; import cn.bunny.common.generator.entity.BaseResultMap;
import cn.bunny.common.generator.utils.GeneratorCodeUtils; import cn.bunny.common.generator.utils.GeneratorCodeUtils;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanAddDto;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanDto;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanUpdateDto;
import cn.bunny.dao.dto.system.configuration.category.CategoryAddDto; import cn.bunny.dao.dto.system.configuration.category.CategoryAddDto;
import cn.bunny.dao.dto.system.configuration.category.CategoryDto; import cn.bunny.dao.dto.system.configuration.category.CategoryDto;
import cn.bunny.dao.dto.system.configuration.category.CategoryUpdateDto; import cn.bunny.dao.dto.system.configuration.category.CategoryUpdateDto;
import cn.bunny.dao.entity.financial.Category; import cn.bunny.dao.entity.financial.Category;
import cn.bunny.dao.entity.financial.DebtRepaymentPlan;
import cn.bunny.dao.vo.configuration.CategoryVo; import cn.bunny.dao.vo.configuration.CategoryVo;
import cn.bunny.dao.vo.financial.DebtRepaymentPlanVo;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.google.common.base.CaseFormat; import com.google.common.base.CaseFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
@ -37,7 +42,7 @@ import java.util.stream.Stream;
public class WebGeneratorCode { public class WebGeneratorCode {
// 公共路径 // 公共路径
// public static String commonPath = "D:\\Project\\web\\PC\\financial\\financial-web\\src"; // public static String commonPath = "D:\\Project\\web\\PC\\financial\\financial-web\\src";
public static String commonPath = "D:\\MyFolder\\financial\\financial-web\\src"; public static String commonPath = "D:\\MyFolder\\auth\\financial-web\\src";
// 生成API请求路径 // 生成API请求路径
public static String apiPath = commonPath + "\\api\\v1\\financial\\"; public static String apiPath = commonPath + "\\api\\v1\\financial\\";
// 生成vue路径 // 生成vue路径
@ -45,18 +50,18 @@ public class WebGeneratorCode {
// 生成仓库路径 // 生成仓库路径
public static String storePath = commonPath + "\\store\\financial\\"; public static String storePath = commonPath + "\\store\\financial\\";
// 后端controller // 后端controller
public static String controllerPath = "D:\\MyFolder\\financial\\financial-server\\service\\src\\main\\java\\cn\\bunny\\services\\controller\\financial\\"; public static String controllerPath = "D:\\MyFolder\\auth\\financial-web-server\\service\\src\\main\\java\\cn\\bunny\\services\\controller\\financial\\";
public static String servicePath = "D:\\MyFolder\\financial\\financial-server\\service\\src\\main\\java\\cn\\bunny\\services\\service\\financial\\"; public static String servicePath = "D:\\MyFolder\\auth\\financial-web-server\\service\\src\\main\\java\\cn\\bunny\\services\\service\\financial\\";
public static String serviceImplPath = "D:\\MyFolder\\financial\\financial-server\\service\\src\\main\\java\\cn\\bunny\\services\\service\\financial\\impl\\"; public static String serviceImplPath = "D:\\MyFolder\\auth\\financial-web-server\\service\\src\\main\\java\\cn\\bunny\\services\\service\\financial\\impl\\";
public static String mapperPath = "D:\\MyFolder\\financial\\financial-server\\service\\src\\main\\java\\cn\\bunny\\services\\mapper\\financial\\"; public static String mapperPath = "D:\\MyFolder\\auth\\financial-web-server\\service\\src\\main\\java\\cn\\bunny\\services\\mapper\\financial\\";
public static String resourceMapperPath = "D:\\MyFolder\\financial\\financial-server\\service\\src\\main\\resources\\mapper\\financial\\"; public static String resourceMapperPath = "D:\\MyFolder\\auth\\financial-web-server\\service\\src\\main\\resources\\mapper\\financial\\";
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
Class<?> originalClass = Category.class; Class<?> originalClass = DebtRepaymentPlan.class;
Class<?> dtoClass = CategoryDto.class; Class<?> dtoClass = DebtRepaymentPlanDto.class;
Class<?> addDtoClass = CategoryAddDto.class; Class<?> addDtoClass = DebtRepaymentPlanAddDto.class;
Class<?> updateDtoClass = CategoryUpdateDto.class; Class<?> updateDtoClass = DebtRepaymentPlanUpdateDto.class;
Class<?> voClass = CategoryVo.class; Class<?> voClass = DebtRepaymentPlanVo.class;
// 设置velocity资源加载器 // 设置velocity资源加载器
Properties prop = new Properties(); Properties prop = new Properties();

View File

@ -1,7 +1,18 @@
<script lang="ts" setup> <script lang="ts" setup>
import {onMounted, ref} from 'vue'; import { onMounted, ref } from 'vue';
import {deleteIds, onSearch} from ''; import { columns } from '${columnsPath}';
import {FormInstance} from "element-plus"; import PureTableBar from '@/components/TableBar/src/bar';
import AddFill from '@iconify-icons/ri/add-circle-line';
import PureTable from '@pureadmin/table';
import { deleteIds, onAdd, onDelete, onDeleteBatch, onSearch, onUpdate } from '${hookPath}';
import Delete from '@iconify-icons/ep/delete';
import EditPen from '@iconify-icons/ep/edit-pen';
import Refresh from '@iconify-icons/ep/refresh';
import { selectUserinfo } from '@/components/Table/Userinfo/columns';
import { $t } from '@/plugins/i18n';
import { use${originalName}Store } from '${storePath}';
import { useRenderIcon } from '@/components/CommonIcon/src/hooks';
import { FormInstance } from "element-plus";
const tableRef = ref(); const tableRef = ref();
const formRef = ref(); const formRef = ref();

View File

@ -0,0 +1,44 @@
package cn.bunny.dao.dto.financial.debtRepaymentPlan;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Schema(name = "CategoryUserAddDto对象", title = "债务还款计划表添加", description = "债务还款计划表添加")
public class DebtRepaymentPlanAddDto {
@Schema(name = "debtId", title = "债务ID")
@NotNull(message = "债务不能为空")
private Long debtId;
@Schema(name = "installmentNumber", title = "债务金额")
@NotNull(message = "债务金额不能为空")
private BigDecimal installmentNumber;
@Schema(name = "installmentAmount", title = "每期应还金额")
@NotNull(message = "每期应还金额不能为空")
private BigDecimal installmentAmount;
@Schema(name = "dueDate", title = "还款截止日期")
@NotNull(message = "还款截止日期不能为空")
private LocalDateTime dueDate;
@Schema(name = "paidAmount", title = "已还金额")
@NotNull(message = "已还金额不能为空")
private BigDecimal paidAmount;
@Schema(name = "paymentStatus", title = "还款状态")
@NotNull(message = "还款状态不能为空")
private String paymentStatus;
}

View File

@ -0,0 +1,35 @@
package cn.bunny.dao.dto.financial.debtRepaymentPlan;
import cn.bunny.dao.common.vo.BaseVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Schema(name = "DebtRepaymentPlanDto对象", title = "债务还款计划查询", description = "债务还款计划查询")
public class DebtRepaymentPlanDto {
@Schema(name = "debtId", title = "债务ID")
private Long debtId;
@Schema(name = "installmentNumber", title = "债务金额")
private BigDecimal installmentNumber;
@Schema(name = "installmentAmount", title = "每期应还金额")
private BigDecimal installmentAmount;
@Schema(name = "dueDate", title = "还款截止日期")
private LocalDateTime dueDate;
@Schema(name = "paidAmount", title = "已还金额")
private BigDecimal paidAmount;
@Schema(name = "paymentStatus", title = "还款状态")
private String paymentStatus;
}

View File

@ -0,0 +1,48 @@
package cn.bunny.dao.dto.financial.debtRepaymentPlan;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Schema(name = "DebtRepaymentPlanUpdateDto对象", title = "债务还款计划更新", description = "债务还款计划更新")
public class DebtRepaymentPlanUpdateDto {
@Schema(name = "id", title = "主键")
@NotNull(message = "id不能为空")
private Long id;
@Schema(name = "debtId", title = "债务ID")
@NotNull(message = "债务不能为空")
private Long debtId;
@Schema(name = "installmentNumber", title = "债务金额")
@NotNull(message = "债务金额不能为空")
private BigDecimal installmentNumber;
@Schema(name = "installmentAmount", title = "每期应还金额")
@NotNull(message = "每期应还金额不能为空")
private BigDecimal installmentAmount;
@Schema(name = "dueDate", title = "还款截止日期")
@NotNull(message = "还款截止日期不能为空")
private LocalDateTime dueDate;
@Schema(name = "paidAmount", title = "已还金额")
@NotNull(message = "已还金额不能为空")
private BigDecimal paidAmount;
@Schema(name = "paymentStatus", title = "还款状态")
@NotNull(message = "还款状态不能为空")
private String paymentStatus;
}

View File

@ -0,0 +1,52 @@
package cn.bunny.dao.entity.financial;
import cn.bunny.dao.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
/**
* <p>
* 预算分类表
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("t_budget_category")
@ApiModel(value = "BudgetCategory对象", description = "预算分类表")
public class BudgetCategory extends BaseEntity {
@ApiModelProperty("父级id")
private Long parentId;
@ApiModelProperty("绑定的用户id")
private Long userId;
@ApiModelProperty("分类名称")
private String categoryName;
@ApiModelProperty("预算名称")
private String budgetName;
@ApiModelProperty("完成状态")
private String statusType;
@ApiModelProperty("预算金额")
private BigDecimal amount;
@ApiModelProperty("预算周期")
private String period;
}

View File

@ -0,0 +1,46 @@
package cn.bunny.dao.entity.financial;
import cn.bunny.dao.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
/**
* <p>
* 债务回收管理表
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("t_debt_collection_management")
@ApiModel(value = "DebtCollectionManagement对象", description = "债务回收管理表")
public class DebtCollectionManagement extends BaseEntity {
@ApiModelProperty("关联债务追踪表的债务ID")
private Long debtId;
@ApiModelProperty("回收日期")
private LocalDateTime recoveryDate;
@ApiModelProperty("回收金额")
private BigDecimal recoveryAmount;
@ApiModelProperty("回收方式,如电话催收、法律诉讼等")
private String recoveryMethod;
@ApiModelProperty("备注")
private String notes;
}

View File

@ -0,0 +1,54 @@
package cn.bunny.dao.entity.financial;
import cn.bunny.dao.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 债务还款计划表
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("t_debt_repayment_plan")
@Schema(name = "DebtRepaymentPlan对象", title = "债务还款计划表", description = "债务还款计划表")
public class DebtRepaymentPlan extends BaseEntity {
@Schema(name = "debtId", title = "债务ID")
private Long debtId;
@Schema(name = "installmentNumber", title = "债务金额")
private BigDecimal installmentNumber;
@Schema(name = "installmentAmount", title = "每期应还金额")
private BigDecimal installmentAmount;
@Schema(name = "dueDate", title = "还款截止日期")
private LocalDateTime dueDate;
@Schema(name = "paidAmount", title = "已还金额")
private BigDecimal paidAmount;
@Schema(name = "paymentStatus", title = "还款状态")
private String paymentStatus;
}

View File

@ -0,0 +1,49 @@
package cn.bunny.dao.entity.financial;
import cn.bunny.dao.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
/**
* <p>
* 债务追踪表
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("t_debt_tracking")
@ApiModel(value = "DebtTracking对象", description = "债务追踪表")
public class DebtTracking extends BaseEntity {
@ApiModelProperty("绑定的用户id")
private Long userId;
@ApiModelProperty("债务人姓名")
private String debtorName;
@ApiModelProperty("债务金额")
private BigDecimal debtAmount;
@ApiModelProperty("债务类型,如信用卡债务、贷款债务")
private String debtType;
@ApiModelProperty("债务状态,如未还、部分还款、已还清等")
private String debtStatus;
@ApiModelProperty("还款截止日期")
private LocalDateTime dueDate;
}

View File

@ -0,0 +1,46 @@
package cn.bunny.dao.entity.financial;
import cn.bunny.dao.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
/**
* <p>
* 用户储值
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("t_saving_goal")
@ApiModel(value = "SavingGoal对象", description = "用户储值")
public class SavingGoal extends BaseEntity {
@ApiModelProperty("绑定的用户id")
private Long userId;
@ApiModelProperty("完成状态")
private String statusType;
@ApiModelProperty("储值目标名称")
private String savingGoalName;
@ApiModelProperty("目标金额")
private BigDecimal amount;
@ApiModelProperty("目标时长")
private String duration;
}

View File

@ -0,0 +1,36 @@
package cn.bunny.dao.vo.financial;
import cn.bunny.dao.common.vo.BaseVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Schema(name = "DebtRepaymentPlanVo对象", title = "债务还款计划返回对象", description = "债务还款计划返回对象")
public class DebtRepaymentPlanVo extends BaseVo {
@Schema(name = "debtId", title = "债务ID")
private Long debtId;
@Schema(name = "installmentNumber", title = "债务金额")
private BigDecimal installmentNumber;
@Schema(name = "installmentAmount", title = "每期应还金额")
private BigDecimal installmentAmount;
@Schema(name = "dueDate", title = "还款截止日期")
private LocalDateTime dueDate;
@Schema(name = "paidAmount", title = "已还金额")
private BigDecimal paidAmount;
@Schema(name = "paymentStatus", title = "还款状态")
private String paymentStatus;
}

View File

@ -0,0 +1,18 @@
package cn.bunny.services.controller.financial;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 预算分类表 前端控制器
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@RestController
@RequestMapping("/budgetCategory")
public class BudgetCategoryController {
}

View File

@ -0,0 +1,18 @@
package cn.bunny.services.controller.financial;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 债务回收管理表 前端控制器
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@RestController
@RequestMapping("/debtCollectionManagement")
public class DebtCollectionManagementController {
}

View File

@ -0,0 +1,72 @@
package cn.bunny.services.controller;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanAddDto;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanDto;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanUpdateDto;
import cn.bunny.dao.entity.financial.DebtRepaymentPlan;
import cn.bunny.dao.pojo.result.PageResult;
import cn.bunny.dao.pojo.result.Result;
import cn.bunny.dao.pojo.result.ResultCodeEnum;
import cn.bunny.dao.vo.financial.DebtRepaymentPlanVo;
import cn.bunny.services.service.DebtRepaymentPlanService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Mono;
import java.util.List;
/**
* <p>
* 债务还款计划表表 前端控制器
* </p>
*
* @author Bunny
* @since 2024-11-11 14:59:53
*/
@Tag(name = "债务还款计划表", description = "债务还款计划表相关接口")
@RestController
@RequestMapping("admin/debtRepaymentPlan")
public class DebtRepaymentPlanController {
@Autowired
private DebtRepaymentPlanService debtRepaymentPlanService;
@Operation(summary = "分页查询债务还款计划表", description = "分页查询债务还款计划表")
@GetMapping("getDebtRepaymentPlanList/{page}/{limit}")
public Mono<Result<PageResult<DebtRepaymentPlanVo>>> getDebtRepaymentPlanList(
@Parameter(name = "page", description = "当前页", required = true)
@PathVariable("page") Integer page,
@Parameter(name = "limit", description = "每页记录数", required = true)
@PathVariable("limit") Integer limit,
DebtRepaymentPlanDto dto) {
Page<DebtRepaymentPlan> pageParams = new Page<>(page, limit);
PageResult<DebtRepaymentPlanVo> pageResult = debtRepaymentPlanService.getDebtRepaymentPlanList(pageParams, dto);
return Mono.just(Result.success(pageResult));
}
@Operation(summary = "添加债务还款计划表", description = "添加债务还款计划表")
@PostMapping("addDebtRepaymentPlan")
public Mono<Result<String>> addDebtRepaymentPlan(@Valid @RequestBody DebtRepaymentPlanAddDto dto) {
debtRepaymentPlanService.addDebtRepaymentPlan(dto);
return Mono.just(Result.success(ResultCodeEnum.ADD_SUCCESS));
}
@Operation(summary = "更新债务还款计划表", description = "更新债务还款计划表")
@PutMapping("updateDebtRepaymentPlan")
public Mono<Result<String>> updateDebtRepaymentPlan(@Valid @RequestBody DebtRepaymentPlanUpdateDto dto) {
debtRepaymentPlanService.updateDebtRepaymentPlan(dto);
return Mono.just(Result.success(ResultCodeEnum.UPDATE_SUCCESS));
}
@Operation(summary = "删除债务还款计划表", description = "删除债务还款计划表")
@DeleteMapping("deleteDebtRepaymentPlan")
public Mono<Result<String>> deleteDebtRepaymentPlan(@RequestBody List<Long> ids) {
debtRepaymentPlanService.deleteDebtRepaymentPlan(ids);
return Mono.just(Result.success(ResultCodeEnum.DELETE_SUCCESS));
}
}

View File

@ -0,0 +1,18 @@
package cn.bunny.services.controller.financial;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 债务追踪表 前端控制器
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@RestController
@RequestMapping("/debtTracking")
public class DebtTrackingController {
}

View File

@ -0,0 +1,18 @@
package cn.bunny.services.controller.financial;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 用户储值 前端控制器
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@RestController
@RequestMapping("/savingGoal")
public class SavingGoalController {
}

View File

@ -0,0 +1,18 @@
package cn.bunny.services.mapper.financial;
import cn.bunny.dao.entity.financial.BudgetCategory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 预算分类表 Mapper 接口
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Mapper
public interface BudgetCategoryMapper extends BaseMapper<BudgetCategory> {
}

View File

@ -0,0 +1,18 @@
package cn.bunny.services.mapper.financial;
import cn.bunny.dao.entity.financial.DebtCollectionManagement;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 债务回收管理表 Mapper 接口
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Mapper
public interface DebtCollectionManagementMapper extends BaseMapper<DebtCollectionManagement> {
}

View File

@ -0,0 +1,40 @@
package cn.bunny.services.mapper.financial;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanDto;
import cn.bunny.dao.entity.financial.DebtRepaymentPlan;
import cn.bunny.dao.vo.financial.DebtRepaymentPlanVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 债务还款计划表 Mapper 接口
* </p>
*
* @author Bunny
* @since 2024-11-11 14:59:53
*/
@Mapper
public interface DebtRepaymentPlanMapper extends BaseMapper<DebtRepaymentPlan> {
/**
* * 分页查询债务还款计划表内容
*
* @param pageParams 债务还款计划表分页参数
* @param dto 债务还款计划表查询表单
* @return 债务还款计划表分页结果
*/
IPage<DebtRepaymentPlanVo> selectListByPage(@Param("page") Page<DebtRepaymentPlan> pageParams, @Param("dto") DebtRepaymentPlanDto dto);
/**
* 物理删除债务还款计划表
*
* @param ids 删除 id 列表
*/
void deleteBatchIdsWithPhysics(List<Long> ids);
}

View File

@ -0,0 +1,18 @@
package cn.bunny.services.mapper.financial;
import cn.bunny.dao.entity.financial.DebtTracking;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 债务追踪表 Mapper 接口
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Mapper
public interface DebtTrackingMapper extends BaseMapper<DebtTracking> {
}

View File

@ -0,0 +1,18 @@
package cn.bunny.services.mapper.financial;
import cn.bunny.dao.entity.financial.SavingGoal;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 用户储值 Mapper 接口
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Mapper
public interface SavingGoalMapper extends BaseMapper<SavingGoal> {
}

View File

@ -0,0 +1,16 @@
package cn.bunny.services.service.financial;
import cn.bunny.dao.entity.financial.BudgetCategory;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 预算分类表 服务类
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
public interface BudgetCategoryService extends IService<BudgetCategory> {
}

View File

@ -0,0 +1,16 @@
package cn.bunny.services.service.financial;
import cn.bunny.dao.entity.financial.DebtCollectionManagement;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 债务回收管理表 服务类
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
public interface DebtCollectionManagementService extends IService<DebtCollectionManagement> {
}

View File

@ -0,0 +1,52 @@
package cn.bunny.services.service;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanAddDto;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanDto;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanUpdateDto;
import cn.bunny.dao.entity.financial.DebtRepaymentPlan;
import cn.bunny.dao.pojo.result.PageResult;
import cn.bunny.dao.vo.financial.DebtRepaymentPlanVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid;
import java.util.List;
/**
* <p>
* 债务还款计划表 服务类
* </p>
*
* @author Bunny
* @since 2024-11-11 14:59:53
*/
public interface DebtRepaymentPlanService extends IService<DebtRepaymentPlan> {
/**
* * 获取债务还款计划表列表
*
* @return 债务还款计划表返回列表
*/
PageResult<DebtRepaymentPlanVo> getDebtRepaymentPlanList(Page<DebtRepaymentPlan> pageParams, DebtRepaymentPlanDto dto);
/**
* * 添加债务还款计划表
*
* @param dto 添加表单
*/
void addDebtRepaymentPlan(@Valid DebtRepaymentPlanAddDto dto);
/**
* * 更新债务还款计划表
*
* @param dto 更新表单
*/
void updateDebtRepaymentPlan(@Valid DebtRepaymentPlanUpdateDto dto);
/**
* * 删除|批量删除债务还款计划表类型
*
* @param ids 删除id列表
*/
void deleteDebtRepaymentPlan(List<Long> ids);
}

View File

@ -0,0 +1,16 @@
package cn.bunny.services.service.financial;
import cn.bunny.dao.entity.financial.DebtTracking;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 债务追踪表 服务类
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
public interface DebtTrackingService extends IService<DebtTracking> {
}

View File

@ -0,0 +1,16 @@
package cn.bunny.services.service.financial;
import cn.bunny.dao.entity.financial.SavingGoal;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 用户储值 服务类
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
public interface SavingGoalService extends IService<SavingGoal> {
}

View File

@ -0,0 +1,20 @@
package cn.bunny.services.service.financial.impl;
import cn.bunny.dao.entity.financial.BudgetCategory;
import cn.bunny.services.mapper.financial.BudgetCategoryMapper;
import cn.bunny.services.service.financial.BudgetCategoryService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 预算分类表 服务实现类
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Service
public class BudgetCategoryServiceImpl extends ServiceImpl<BudgetCategoryMapper, BudgetCategory> implements BudgetCategoryService {
}

View File

@ -0,0 +1,20 @@
package cn.bunny.services.service.financial.impl;
import cn.bunny.dao.entity.financial.DebtCollectionManagement;
import cn.bunny.services.mapper.financial.DebtCollectionManagementMapper;
import cn.bunny.services.service.financial.DebtCollectionManagementService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 债务回收管理表 服务实现类
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Service
public class DebtCollectionManagementServiceImpl extends ServiceImpl<DebtCollectionManagementMapper, DebtCollectionManagement> implements DebtCollectionManagementService {
}

View File

@ -0,0 +1,85 @@
package cn.bunny.services.service.financial.impl;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanAddDto;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanDto;
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanUpdateDto;
import cn.bunny.dao.entity.financial.DebtRepaymentPlan;
import cn.bunny.dao.pojo.result.PageResult;
import cn.bunny.dao.vo.financial.DebtRepaymentPlanVo;
import cn.bunny.services.mapper.financial.DebtRepaymentPlanMapper;
import cn.bunny.services.service.DebtRepaymentPlanService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jakarta.validation.Valid;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 债务还款计划表 服务实现类
* </p>
*
* @author Bunny
* @since 2024-11-11 14:59:53
*/
@Service
public class DebtRepaymentPlanServiceImpl extends ServiceImpl<DebtRepaymentPlanMapper, DebtRepaymentPlan> implements DebtRepaymentPlanService {
/**
* * 债务还款计划表 服务实现类
*
* @param pageParams 债务还款计划表分页查询page对象
* @param dto 债务还款计划表分页查询对象
* @return 查询分页债务还款计划表返回对象
*/
@Override
public PageResult<DebtRepaymentPlanVo> getDebtRepaymentPlanList(Page<DebtRepaymentPlan> pageParams, DebtRepaymentPlanDto dto) {
IPage<DebtRepaymentPlanVo> page = baseMapper.selectListByPage(pageParams, dto);
return PageResult.<DebtRepaymentPlanVo>builder()
.list(page.getRecords())
.pageNo(page.getCurrent())
.pageSize(page.getSize())
.total(page.getTotal())
.build();
}
/**
* 添加债务还款计划表
*
* @param dto 债务还款计划表添加
*/
@Override
public void addDebtRepaymentPlan(@Valid DebtRepaymentPlanAddDto dto) {
// 保存数据
DebtRepaymentPlan debtRepaymentPlan = new DebtRepaymentPlan();
BeanUtils.copyProperties(dto, debtRepaymentPlan);
save(debtRepaymentPlan);
}
/**
* 更新债务还款计划表
*
* @param dto 债务还款计划表更新
*/
@Override
public void updateDebtRepaymentPlan(@Valid DebtRepaymentPlanUpdateDto dto) {
// 更新内容
DebtRepaymentPlan debtRepaymentPlan = new DebtRepaymentPlan();
BeanUtils.copyProperties(dto, debtRepaymentPlan);
updateById(debtRepaymentPlan);
}
/**
* 删除|批量删除债务还款计划表
*
* @param ids 删除id列表
*/
@Override
public void deleteDebtRepaymentPlan(List<Long> ids) {
baseMapper.deleteBatchIdsWithPhysics(ids);
}
}

View File

@ -0,0 +1,20 @@
package cn.bunny.services.service.financial.impl;
import cn.bunny.dao.entity.financial.DebtTracking;
import cn.bunny.services.mapper.financial.DebtTrackingMapper;
import cn.bunny.services.service.financial.DebtTrackingService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 债务追踪表 服务实现类
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Service
public class DebtTrackingServiceImpl extends ServiceImpl<DebtTrackingMapper, DebtTracking> implements DebtTrackingService {
}

View File

@ -0,0 +1,20 @@
package cn.bunny.services.service.financial.impl;
import cn.bunny.dao.entity.financial.SavingGoal;
import cn.bunny.services.mapper.financial.SavingGoalMapper;
import cn.bunny.services.service.financial.SavingGoalService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 用户储值 服务实现类
* </p>
*
* @author Bunny
* @since 2024-11-11
*/
@Service
public class SavingGoalServiceImpl extends ServiceImpl<SavingGoalMapper, SavingGoal> implements SavingGoalService {
}

View File

@ -1,5 +1,5 @@
server: server:
port: 7070 port: 6060
logging: logging:
level: level:
@ -17,44 +17,44 @@ logging:
# map-underscore-to-camel-case: true # map-underscore-to-camel-case: true
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志 # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志
#bunny:
# master:
# host: 192.168.3.98
# port: 3304
# database: family_financial
# username: root
# password: "02120212"
#
# redis:
# host: 192.168.3.98
# port: 6379
# database: 6
# password: "123456"
#
# minio:
# endpointUrl: "http://192.168.3.98:9000"
# accessKey: bunny
# secretKey: "02120212"
# bucket-name: financial
bunny: bunny:
master: master:
host: 192.168.3.98 host: rm-bp12z6hlv46vi6g8mro.mysql.rds.aliyuncs.com
port: 3304 port: 3306
database: family_financial database: family_financial
username: root username: family_financial_prod
password: "02120212" password: 0212family_financial
redis: redis:
host: 192.168.3.98 host: 47.120.65.66
port: 6379 port: 6379
database: 6 database: 6
password: "123456" password: "02120212"
minio: minio:
endpointUrl: "http://192.168.3.98:9000" endpointUrl: "http://116.196.101.14:9000"
accessKey: bunny accessKey: bunny
secretKey: "02120212" secretKey: "02120212"
bucket-name: financial bucket-name: financial
#bunny:
# master:
# host: rm-bp12z6hlv46vi6g8mro.mysql.rds.aliyuncs.com
# port: 3306
# database: family_financial
# username: family_financial_prod
# password: 0212family_financial
#
# redis:
# host: 47.120.65.66
# port: 6379
# database: 6
# password: "02120212"
#
# minio:
# endpointUrl: "http://116.196.101.14:9000"
# accessKey: bunny
# secretKey: "02120212"
# bucket-name: financial
backPath: "D:\\MyData\\backup" backPath: "D:\\MyData\\backup"
bashPath: "D:\\MyData" bashPath: "D:\\MyData"

View File

@ -1,5 +1,5 @@
server: server:
port: 8000 port: 6060
#mybatis-plus: #mybatis-plus:
# configuration: # configuration:

View File

@ -1,5 +1,5 @@
server: server:
port: 7070 port: 6060
#mybatis-plus: #mybatis-plus:
# configuration: # configuration:

View File

@ -15,7 +15,7 @@
<level>INFO</level> <level>INFO</level>
</filter> </filter>
<encoder> <encoder>
<pattern>%cyan([%thread]) %yellow(%-5level) %green(%logger{100}).%boldRed(%method)-%boldMagenta(%line)- %blue(%msg%n)</pattern> <pattern>%cyan([%thread]) %yellow(%-5level) %green(%logger{100}).%boldRed(%method)-%boldMagenta(%line)-%blue(%msg%n)</pattern>
<charset>${ENCODING}</charset> <charset>${ENCODING}</charset>
</encoder> </encoder>
</appender> </appender>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.bunny.services.mapper.financial.BudgetCategoryMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.bunny.dao.entity.financial.BudgetCategory">
<id column="id" property="id" />
<result column="parent_id" property="parentId" />
<result column="user_id" property="userId" />
<result column="category_name" property="categoryName" />
<result column="budget_name" property="budgetName" />
<result column="status_type" property="statusType" />
<result column="amount" property="amount" />
<result column="period" property="period" />
<result column="create_user" property="createUser" />
<result column="create_time" property="createTime" />
<result column="update_user" property="updateUser" />
<result column="update_time" property="updateTime" />
<result column="is_deleted" property="isDeleted" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, parent_id, user_id, category_name, budget_name, status_type, amount, period, create_user, create_time, update_user, update_time, is_deleted
</sql>
</mapper>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.bunny.services.mapper.financial.DebtCollectionManagementMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.bunny.dao.entity.financial.DebtCollectionManagement">
<id column="id" property="id" />
<result column="debt_id" property="debtId" />
<result column="recovery_date" property="recoveryDate" />
<result column="recovery_amount" property="recoveryAmount" />
<result column="recovery_method" property="recoveryMethod" />
<result column="notes" property="notes" />
<result column="create_user" property="createUser" />
<result column="create_time" property="createTime" />
<result column="update_user" property="updateUser" />
<result column="update_time" property="updateTime" />
<result column="is_deleted" property="isDeleted" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, debt_id, recovery_date, recovery_amount, recovery_method, notes, create_user, create_time, update_user, update_time, is_deleted
</sql>
</mapper>

View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.bunny.services.mapper.financial.DebtRepaymentPlanMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.bunny.dao.entity.financial.DebtRepaymentPlan">
<id column="id" property="id"/>
<id column="create_time" property="createTime"/>
<id column="update_time" property="updateTime"/>
<id column="create_user" property="createUser"/>
<id column="update_user" property="updateUser"/>
<id column="is_deleted" property="isDeleted"/>
<id column="debt_id" property="debtId"/>
<id column="installment_number" property="installmentNumber"/>
<id column="installment_amount" property="installmentAmount"/>
<id column="due_date" property="dueDate"/>
<id column="paid_amount" property="paidAmount"/>
<id column="payment_status" property="paymentStatus"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, create_time, update_time, create_user, update_user, is_deleted, debt_id, installment_number, installment_amount, due_date, paid_amount, payment_status
</sql>
<!-- 分页查询债务还款计划表内容 -->
<select id="selectListByPage" resultType="cn.bunny.dao.vo.financial.DebtRepaymentPlanVo">
select
base.*,
create_user.username as create_username,
update_user.username as update_username
from t_debt_repayment_plan base
left join sys_user create_user on create_user.id = base.create_user
left join sys_user update_user on update_user.id = base.update_user
<where>
base.is_deleted = 0
<if test="dto.debtId != null and dto.debtId != ''">
and base.debt_id like CONCAT('%',#{dto.debtId},'%')
</if>
<if test="dto.installmentNumber != null and dto.installmentNumber != ''">
and base.installment_number like CONCAT('%',#{dto.installmentNumber},'%')
</if>
<if test="dto.installmentAmount != null and dto.installmentAmount != ''">
and base.installment_amount like CONCAT('%',#{dto.installmentAmount},'%')
</if>
<if test="dto.dueDate != null and dto.dueDate != ''">
and base.due_date like CONCAT('%',#{dto.dueDate},'%')
</if>
<if test="dto.paidAmount != null and dto.paidAmount != ''">
and base.paid_amount like CONCAT('%',#{dto.paidAmount},'%')
</if>
<if test="dto.paymentStatus != null and dto.paymentStatus != ''">
and base.payment_status like CONCAT('%',#{dto.paymentStatus},'%')
</if>
</where>
</select>
<!-- 物理删除债务还款计划表 -->
<delete id="deleteBatchIdsWithPhysics">
delete
from t_debt_repayment_plan
where id in
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.bunny.services.mapper.financial.DebtTrackingMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.bunny.dao.entity.financial.DebtTracking">
<id column="id" property="id" />
<result column="user_id" property="userId" />
<result column="debtor_name" property="debtorName" />
<result column="debt_amount" property="debtAmount" />
<result column="debt_type" property="debtType" />
<result column="debt_status" property="debtStatus" />
<result column="due_date" property="dueDate" />
<result column="create_user" property="createUser" />
<result column="create_time" property="createTime" />
<result column="update_user" property="updateUser" />
<result column="update_time" property="updateTime" />
<result column="is_deleted" property="isDeleted" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, user_id, debtor_name, debt_amount, debt_type, debt_status, due_date, create_user, create_time, update_user, update_time, is_deleted
</sql>
</mapper>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.bunny.services.mapper.financial.SavingGoalMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.bunny.dao.entity.financial.SavingGoal">
<id column="id" property="id" />
<result column="user_id" property="userId" />
<result column="status_type" property="statusType" />
<result column="saving_goal_name" property="savingGoalName" />
<result column="amount" property="amount" />
<result column="duration" property="duration" />
<result column="create_user" property="createUser" />
<result column="create_time" property="createTime" />
<result column="update_user" property="updateUser" />
<result column="update_time" property="updateTime" />
<result column="is_deleted" property="isDeleted" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, user_id, status_type, saving_goal_name, amount, duration, create_user, create_time, update_user, update_time, is_deleted
</sql>
</mapper>