feat: 预算分类完成
This commit is contained in:
parent
25c1f5095d
commit
f7677c8bc1
|
@ -3,11 +3,11 @@ package cn.bunny.common.generator.generator;
|
|||
import cn.bunny.common.generator.entity.BaseField;
|
||||
import cn.bunny.common.generator.entity.BaseResultMap;
|
||||
import cn.bunny.common.generator.utils.GeneratorCodeUtils;
|
||||
import cn.bunny.dao.dto.financial.savingGoal.SavingGoalAddDto;
|
||||
import cn.bunny.dao.dto.financial.savingGoal.SavingGoalDto;
|
||||
import cn.bunny.dao.dto.financial.savingGoal.SavingGoalUpdateDto;
|
||||
import cn.bunny.dao.entity.financial.SavingGoal;
|
||||
import cn.bunny.dao.vo.financial.admin.SavingGoalVo;
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillAddDto;
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillDto;
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillUpdateDto;
|
||||
import cn.bunny.dao.entity.financial.Bill;
|
||||
import cn.bunny.dao.vo.financial.admin.BillVo;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.google.common.base.CaseFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
@ -36,8 +36,7 @@ import java.util.stream.Stream;
|
|||
@Service
|
||||
public class WebGeneratorCode {
|
||||
// 公共路径
|
||||
// public static String commonPath = "D:\\Project\\web\\PC\\financial\\financial-web\\src";
|
||||
public static String commonPath = "D:\\MyFolder\\auth\\financial-web\\src";
|
||||
public static String commonPath = "D:\\Project\\web\\PC\\finance\\financial-admin\\src";
|
||||
// 生成API请求路径
|
||||
public static String apiPath = commonPath + "\\api\\v1\\financial\\";
|
||||
// 生成vue路径
|
||||
|
@ -45,18 +44,18 @@ public class WebGeneratorCode {
|
|||
// 生成仓库路径
|
||||
public static String storePath = commonPath + "\\store\\financial\\";
|
||||
// 后端controller
|
||||
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\\auth\\financial-web-server\\service\\src\\main\\java\\cn\\bunny\\services\\service\\financial\\";
|
||||
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\\auth\\financial-web-server\\service\\src\\main\\java\\cn\\bunny\\services\\mapper\\financial\\";
|
||||
public static String resourceMapperPath = "D:\\MyFolder\\auth\\financial-web-server\\service\\src\\main\\resources\\mapper\\financial\\";
|
||||
public static String controllerPath = "D:\\Project\\web\\PC\\finance\\financia-admin-server\\service\\src\\main\\java\\cn\\bunny\\services\\controller\\financial\\";
|
||||
public static String servicePath = "D:\\Project\\web\\PC\\finance\\financia-admin-server\\service\\src\\main\\java\\cn\\bunny\\services\\service\\financial\\";
|
||||
public static String serviceImplPath = "D:\\Project\\web\\PC\\finance\\financia-admin-server\\service\\src\\main\\java\\cn\\bunny\\services\\service\\financial\\impl\\";
|
||||
public static String mapperPath = "D:\\Project\\web\\PC\\finance\\financia-admin-server\\service\\src\\main\\java\\cn\\bunny\\services\\mapper\\financial\\";
|
||||
public static String resourceMapperPath = "D:\\Project\\web\\PC\\finance\\financia-admin-server\\service\\src\\main\\resources\\mapper\\financial\\";
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Class<?> originalClass = SavingGoal.class;
|
||||
Class<?> dtoClass = SavingGoalDto.class;
|
||||
Class<?> addDtoClass = SavingGoalAddDto.class;
|
||||
Class<?> updateDtoClass = SavingGoalUpdateDto.class;
|
||||
Class<?> voClass = SavingGoalVo.class;
|
||||
Class<?> originalClass = Bill.class;
|
||||
Class<?> dtoClass = BillDto.class;
|
||||
Class<?> addDtoClass = BillAddDto.class;
|
||||
Class<?> updateDtoClass = BillUpdateDto.class;
|
||||
Class<?> voClass = BillVo.class;
|
||||
|
||||
// 设置velocity资源加载器
|
||||
Properties prop = new Properties();
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
package cn.bunny.dao.dto.financial.bill.admin;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.Max;
|
||||
import jakarta.validation.constraints.Min;
|
||||
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 = "BillAddDto对象", title = "账单信息添加内容", description = "账单信息添加内容")
|
||||
public class BillAddDto {
|
||||
|
||||
@Schema(name = "userId", title = "绑定的用户id")
|
||||
@NotNull(message = "债绑定的用户不能为空")
|
||||
private Long userId;
|
||||
|
||||
@Schema(name = "username", title = "类型:1 - 收入,-1 - 支出")
|
||||
@NotNull(message = "类型不能为空")
|
||||
@Min(value = -1, message = "类型格式不正确")
|
||||
@Max(value = 1, message = "类型格式不正确")
|
||||
private Byte type;
|
||||
|
||||
@Schema(name = "amount", title = "金额")
|
||||
@NotNull(message = "金额不能为空")
|
||||
@Min(value = 0, message = "金额格式不正确")
|
||||
private BigDecimal amount;
|
||||
|
||||
@Schema(name = "description", title = "描述")
|
||||
private String description;
|
||||
|
||||
@Schema(name = "transactionDate", title = "交易日期")
|
||||
@NotNull(message = "交易日期不能为空")
|
||||
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime transactionDate;
|
||||
|
||||
@Schema(name = "categoryId", title = "类别id")
|
||||
@NotNull(message = "类别id不能为空")
|
||||
private Long categoryId;
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package cn.bunny.dao.dto.financial.bill.admin;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "BillDto对象", title = "账单信息查询内容", description = "账单信息查询内容")
|
||||
public class BillDto {
|
||||
|
||||
@Schema(name = "userId", title = "绑定的用户id")
|
||||
private Long userId;
|
||||
|
||||
@Schema(name = "username", title = "类型:1 - 收入,-1 - 支出")
|
||||
private Byte type;
|
||||
|
||||
@Schema(name = "description", title = "描述")
|
||||
private String description;
|
||||
|
||||
@Schema(name = "startDate", title = "开始交易日期")
|
||||
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
private LocalDate startDate;
|
||||
|
||||
@Schema(name = "endDate", title = "结束交易日期")
|
||||
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
private LocalDate endDate;
|
||||
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package cn.bunny.dao.dto.financial.bill.admin;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
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 = "BillUpdateDto对象", title = "账单信息更新内容", description = "账单信息更新内容")
|
||||
public class BillUpdateDto {
|
||||
|
||||
@Schema(name = "id", title = "主键")
|
||||
@NotNull(message = "id不能为空")
|
||||
private Long id;
|
||||
|
||||
@Schema(name = "userId", title = "绑定的用户id")
|
||||
@NotNull(message = "债绑定的用户不能为空")
|
||||
private Long userId;
|
||||
|
||||
@Schema(name = "username", title = "类型:1 - 收入,-1 - 支出")
|
||||
private Byte type;
|
||||
|
||||
@Schema(name = "amount", title = "金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
@Schema(name = "description", title = "描述")
|
||||
private String description;
|
||||
|
||||
@Schema(name = "transactionDate", title = "交易日期")
|
||||
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime transactionDate;
|
||||
|
||||
@Schema(name = "categoryId", title = "类别id")
|
||||
private Long categoryId;
|
||||
|
||||
}
|
|
@ -17,7 +17,7 @@ import java.time.LocalDateTime;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "BillAddDto对象", title = "账单信息添加内容", description = "账单信息添加内容")
|
||||
@Schema(name = "BillUserAddDto对象", title = "用户账单信息添加内容", description = "用户账单信息添加内容")
|
||||
public class BillUserAddDto {
|
||||
|
||||
@Schema(name = "username", title = "类型:1 - 收入,-1 - 支出")
|
||||
|
|
|
@ -13,7 +13,7 @@ import java.time.LocalDate;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "BillDto对象", title = "账单信息查询内容", description = "账单信息查询内容")
|
||||
@Schema(name = "BillUserDto对象", title = "用户账单信息查询内容", description = "用户账单信息查询内容")
|
||||
public class BillUserDto {
|
||||
|
||||
@Schema(name = "username", title = "类型:1 - 收入,-1 - 支出")
|
||||
|
|
|
@ -15,7 +15,7 @@ import java.time.LocalDateTime;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "BillUpdateDto对象", title = "账单信息更新内容", description = "账单信息更新内容")
|
||||
@Schema(name = "BillUserUpdateDto对象", title = "用户账单信息更新内容", description = "用户账单信息更新内容")
|
||||
public class BillUserUpdateDto {
|
||||
|
||||
@Schema(name = "id", title = "主键")
|
||||
|
|
|
@ -28,6 +28,9 @@ public class Bill extends BaseEntity {
|
|||
@Schema(name = "username", title = "类型:1 - 收入,-1 - 支出")
|
||||
private Byte type;
|
||||
|
||||
@Schema(name = "userId", title = "绑定的用户id")
|
||||
private Long userId;
|
||||
|
||||
@Schema(name = "amount", title = "金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
package cn.bunny.dao.vo.financial.admin;
|
||||
|
||||
import cn.bunny.dao.common.vo.BaseUserVo;
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||
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 = "BillVo对象", title = "账单信息返回内容", description = "账单信息返回内容")
|
||||
public class BillVo extends BaseUserVo {
|
||||
|
||||
@Schema(name = "userId", title = "绑定的用户id")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
@JSONField(serializeUsing = ToStringSerializer.class)
|
||||
private Long userId;
|
||||
|
||||
@Schema(name = "username", title = "用户名")
|
||||
private String username;
|
||||
|
||||
@Schema(name = "username", title = "类型:1 - 收入,-1 - 支出")
|
||||
private Byte type;
|
||||
|
||||
@Schema(name = "amount", title = "金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
@Schema(name = "description", title = "描述")
|
||||
private String description;
|
||||
|
||||
@Schema(name = "transactionDate", title = "交易日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
|
||||
private LocalDateTime transactionDate;
|
||||
|
||||
@Schema(name = "categoryId", title = "分类Id")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
@JSONField(serializeUsing = ToStringSerializer.class)
|
||||
private String categoryId;
|
||||
|
||||
@Schema(name = "categoryName", title = "类别分类")
|
||||
private String categoryName;
|
||||
|
||||
}
|
|
@ -19,7 +19,7 @@ import java.time.LocalDateTime;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "BillVo对象", title = "账单信息返回内容", description = "账单信息返回内容")
|
||||
@Schema(name = "BillUserVo对象", title = "用户账单信息返回内容", description = "用户账单信息返回内容")
|
||||
public class BillUserVo extends BaseVo {
|
||||
|
||||
@Schema(name = "username", title = "类型:1 - 收入,-1 - 支出")
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package cn.bunny.services.controller.financial;
|
||||
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillAddDto;
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillDto;
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillUpdateDto;
|
||||
import cn.bunny.dao.dto.financial.bill.user.BillUserAddDto;
|
||||
import cn.bunny.dao.dto.financial.bill.user.BillUserDto;
|
||||
import cn.bunny.dao.dto.financial.bill.user.BillUserUpdateDto;
|
||||
|
@ -7,6 +10,7 @@ import cn.bunny.dao.entity.financial.Bill;
|
|||
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.admin.BillVo;
|
||||
import cn.bunny.dao.vo.financial.user.BillUserVo;
|
||||
import cn.bunny.services.service.financial.BillService;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
@ -36,35 +40,69 @@ public class BillController {
|
|||
@Autowired
|
||||
private BillService billService;
|
||||
|
||||
@Operation(summary = "分页查询账单信息", description = "分页查询账单信息")
|
||||
@Operation(summary = "用户分页查询账单信息", description = "用户分页查询账单信息")
|
||||
@GetMapping("noManage/getUserBillList/{page}/{limit}")
|
||||
public Mono<Result<PageResult<BillUserVo>>> getBillList(
|
||||
public Mono<Result<PageResult<BillUserVo>>> getUserBillList(
|
||||
@Parameter(name = "page", description = "当前页", required = true)
|
||||
@PathVariable("page") Integer page,
|
||||
@Parameter(name = "limit", description = "每页记录数", required = true)
|
||||
@PathVariable("limit") Integer limit,
|
||||
BillUserDto dto) {
|
||||
Page<Bill> pageParams = new Page<>(page, limit);
|
||||
PageResult<BillUserVo> pageResult = billService.getBillList(pageParams, dto);
|
||||
PageResult<BillUserVo> pageResult = billService.getUserBillList(pageParams, dto);
|
||||
return Mono.just(Result.success(pageResult));
|
||||
}
|
||||
|
||||
@Operation(summary = "用户添加账单信息", description = "用户添加账单信息")
|
||||
@PostMapping("noManage/addUserBill")
|
||||
public Mono<Result<String>> addUserBill(@Valid @RequestBody BillUserAddDto dto) {
|
||||
billService.addUserBill(dto);
|
||||
return Mono.just(Result.success(ResultCodeEnum.ADD_SUCCESS));
|
||||
}
|
||||
|
||||
@Operation(summary = "用户更新账单信息", description = "用户更新账单信息")
|
||||
@PutMapping("noManage/updateUserBill")
|
||||
public Mono<Result<String>> updateUserBill(@Valid @RequestBody BillUserUpdateDto dto) {
|
||||
billService.updateUserBill(dto);
|
||||
return Mono.just(Result.success(ResultCodeEnum.UPDATE_SUCCESS));
|
||||
}
|
||||
|
||||
@Operation(summary = "用户删除账单信息", description = "用户删除账单信息")
|
||||
@DeleteMapping("noManage/deleteUserBill")
|
||||
public Mono<Result<String>> deleteUserBill(@RequestBody List<Long> ids) {
|
||||
billService.deleteUserBill(ids);
|
||||
return Mono.just(Result.success(ResultCodeEnum.DELETE_SUCCESS));
|
||||
}
|
||||
|
||||
@Operation(summary = "分页查询账单信息", description = "分页查询账单信息")
|
||||
@GetMapping("getBillList/{page}/{limit}")
|
||||
public Mono<Result<PageResult<BillVo>>> getBillList(
|
||||
@Parameter(name = "page", description = "当前页", required = true)
|
||||
@PathVariable("page") Integer page,
|
||||
@Parameter(name = "limit", description = "每页记录数", required = true)
|
||||
@PathVariable("limit") Integer limit,
|
||||
BillDto dto) {
|
||||
Page<Bill> pageParams = new Page<>(page, limit);
|
||||
PageResult<BillVo> pageResult = billService.getBillList(pageParams, dto);
|
||||
return Mono.just(Result.success(pageResult));
|
||||
}
|
||||
|
||||
@Operation(summary = "添加账单信息", description = "添加账单信息")
|
||||
@PostMapping("noManage/addUserBill")
|
||||
public Mono<Result<String>> addBill(@Valid @RequestBody BillUserAddDto dto) {
|
||||
@PostMapping("addBill")
|
||||
public Mono<Result<String>> addBill(@Valid @RequestBody BillAddDto dto) {
|
||||
billService.addBill(dto);
|
||||
return Mono.just(Result.success(ResultCodeEnum.ADD_SUCCESS));
|
||||
}
|
||||
|
||||
@Operation(summary = "更新账单信息", description = "更新账单信息")
|
||||
@PutMapping("noManage/updateUserBill")
|
||||
public Mono<Result<String>> updateBill(@Valid @RequestBody BillUserUpdateDto dto) {
|
||||
@PutMapping("updateBill")
|
||||
public Mono<Result<String>> updateBill(@Valid @RequestBody BillUpdateDto dto) {
|
||||
billService.updateBill(dto);
|
||||
return Mono.just(Result.success(ResultCodeEnum.UPDATE_SUCCESS));
|
||||
}
|
||||
|
||||
@Operation(summary = "删除账单信息", description = "删除账单信息")
|
||||
@DeleteMapping("noManage/deleteUserBill")
|
||||
@DeleteMapping("deleteBill")
|
||||
public Mono<Result<String>> deleteBill(@RequestBody List<Long> ids) {
|
||||
billService.deleteBill(ids);
|
||||
return Mono.just(Result.success(ResultCodeEnum.DELETE_SUCCESS));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package cn.bunny.services.controller;
|
||||
package cn.bunny.services.controller.financial;
|
||||
|
||||
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanAddDto;
|
||||
import cn.bunny.dao.dto.financial.debtRepaymentPlan.DebtRepaymentPlanDto;
|
|
@ -1,7 +1,9 @@
|
|||
package cn.bunny.services.mapper.financial;
|
||||
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillDto;
|
||||
import cn.bunny.dao.dto.financial.bill.user.BillUserDto;
|
||||
import cn.bunny.dao.entity.financial.Bill;
|
||||
import cn.bunny.dao.vo.financial.admin.BillVo;
|
||||
import cn.bunny.dao.vo.financial.user.BillUserVo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
|
@ -23,13 +25,13 @@ import java.util.List;
|
|||
public interface BillMapper extends BaseMapper<Bill> {
|
||||
|
||||
/**
|
||||
* * 分页查询账单信息内容
|
||||
* * 分页查询用户账单信息内容
|
||||
*
|
||||
* @param pageParams 账单信息分页参数
|
||||
* @param dto 账单信息查询表单
|
||||
* @return 账单信息分页结果
|
||||
*/
|
||||
IPage<BillUserVo> selectListByPage(@Param("page") Page<Bill> pageParams, @Param("dto") BillUserDto dto, @Param("userId") Long userId);
|
||||
IPage<BillUserVo> selectUserListByPage(@Param("page") Page<Bill> pageParams, @Param("dto") BillUserDto dto, @Param("userId") Long userId);
|
||||
|
||||
/**
|
||||
* 物理删除账单信息
|
||||
|
@ -37,4 +39,13 @@ public interface BillMapper extends BaseMapper<Bill> {
|
|||
* @param ids 删除 id 列表
|
||||
*/
|
||||
void deleteBatchIdsWithPhysics(List<Long> ids);
|
||||
|
||||
/**
|
||||
* * 分页查询账单信息内容
|
||||
*
|
||||
* @param pageParams 账单信息分页参数
|
||||
* @param dto 账单信息查询表单
|
||||
* @return 账单信息分页结果
|
||||
*/
|
||||
IPage<BillVo> selectListByPage(@Param("page") Page<Bill> pageParams, @Param("dto") BillDto dto);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
package cn.bunny.services.service.financial;
|
||||
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillAddDto;
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillDto;
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillUpdateDto;
|
||||
import cn.bunny.dao.dto.financial.bill.user.BillUserAddDto;
|
||||
import cn.bunny.dao.dto.financial.bill.user.BillUserDto;
|
||||
import cn.bunny.dao.dto.financial.bill.user.BillUserUpdateDto;
|
||||
import cn.bunny.dao.entity.financial.Bill;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.vo.financial.admin.BillVo;
|
||||
import cn.bunny.dao.vo.financial.user.BillUserVo;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
@ -27,26 +31,54 @@ public interface BillService extends IService<Bill> {
|
|||
*
|
||||
* @return 账单信息返回列表
|
||||
*/
|
||||
PageResult<BillUserVo> getBillList(Page<Bill> pageParams, BillUserDto dto);
|
||||
PageResult<BillUserVo> getUserBillList(Page<Bill> pageParams, BillUserDto dto);
|
||||
|
||||
/**
|
||||
* * 添加账单信息
|
||||
*
|
||||
* @param dto 添加表单
|
||||
*/
|
||||
void addBill(@Valid BillUserAddDto dto);
|
||||
void addUserBill(@Valid BillUserAddDto dto);
|
||||
|
||||
/**
|
||||
* * 更新账单信息
|
||||
*
|
||||
* @param dto 更新表单
|
||||
*/
|
||||
void updateBill(@Valid BillUserUpdateDto dto);
|
||||
void updateUserBill(@Valid BillUserUpdateDto dto);
|
||||
|
||||
/**
|
||||
* * 删除|批量删除账单信息类型
|
||||
*
|
||||
* @param ids 删除id列表
|
||||
*/
|
||||
void deleteUserBill(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 分页查询账单信息
|
||||
*
|
||||
* @return 账单信息返回列表
|
||||
*/
|
||||
PageResult<BillVo> getBillList(Page<Bill> pageParams, BillDto dto);
|
||||
|
||||
/**
|
||||
* 添加账单信息
|
||||
*
|
||||
* @param dto 添加表单
|
||||
*/
|
||||
void addBill(BillAddDto dto);
|
||||
|
||||
/**
|
||||
* 更新账单信息
|
||||
*
|
||||
* @param dto 更新表单
|
||||
*/
|
||||
void updateBill(BillUpdateDto dto);
|
||||
|
||||
/**
|
||||
* 删除账单信息
|
||||
*
|
||||
* @param ids 删除的ids
|
||||
*/
|
||||
void deleteBill(List<Long> ids);
|
||||
}
|
||||
|
|
|
@ -1,15 +1,22 @@
|
|||
package cn.bunny.services.service.financial.impl;
|
||||
|
||||
import cn.bunny.common.service.context.BaseContext;
|
||||
import cn.bunny.common.service.exception.BunnyException;
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillAddDto;
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillDto;
|
||||
import cn.bunny.dao.dto.financial.bill.admin.BillUpdateDto;
|
||||
import cn.bunny.dao.dto.financial.bill.user.BillUserAddDto;
|
||||
import cn.bunny.dao.dto.financial.bill.user.BillUserDto;
|
||||
import cn.bunny.dao.dto.financial.bill.user.BillUserUpdateDto;
|
||||
import cn.bunny.dao.entity.financial.Bill;
|
||||
import cn.bunny.dao.pojo.result.PageResult;
|
||||
import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
||||
import cn.bunny.dao.vo.financial.admin.BillVo;
|
||||
import cn.bunny.dao.vo.financial.user.BillUserVo;
|
||||
import cn.bunny.services.mapper.financial.BillMapper;
|
||||
import cn.bunny.services.service.financial.BillService;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.validation.Valid;
|
||||
|
@ -37,12 +44,12 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements Bi
|
|||
* @return 查询分页账单信息返回对象
|
||||
*/
|
||||
@Override
|
||||
public PageResult<BillUserVo> getBillList(Page<Bill> pageParams, BillUserDto dto) {
|
||||
public PageResult<BillUserVo> getUserBillList(Page<Bill> pageParams, BillUserDto dto) {
|
||||
// 需要根据当前用户去查询
|
||||
Long userId = BaseContext.getUserId();
|
||||
|
||||
// 判断创建用户的Id是否和当前请求的用户id是否相同
|
||||
IPage<BillUserVo> page = baseMapper.selectListByPage(pageParams, dto, userId);
|
||||
IPage<BillUserVo> page = baseMapper.selectUserListByPage(pageParams, dto, userId);
|
||||
|
||||
return PageResult.<BillUserVo>builder()
|
||||
.list(page.getRecords())
|
||||
|
@ -58,10 +65,13 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements Bi
|
|||
* @param dto 账单信息添加
|
||||
*/
|
||||
@Override
|
||||
public void addBill(@Valid BillUserAddDto dto) {
|
||||
public void addUserBill(@Valid BillUserAddDto dto) {
|
||||
// 保存数据
|
||||
Bill bill = new Bill();
|
||||
BeanUtils.copyProperties(dto, bill);
|
||||
|
||||
// 设置当前的用户Id
|
||||
bill.setUserId(BaseContext.getUserId());
|
||||
save(bill);
|
||||
}
|
||||
|
||||
|
@ -71,9 +81,15 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements Bi
|
|||
* @param dto 账单信息更新
|
||||
*/
|
||||
@Override
|
||||
public void updateBill(@Valid BillUserUpdateDto dto) {
|
||||
public void updateUserBill(@Valid BillUserUpdateDto dto) {
|
||||
// 判断当前用户修改的内容是否是自己的内容
|
||||
Bill bill = getOne(Wrappers.<Bill>lambdaQuery().eq(Bill::getId, dto.getId()));
|
||||
if (!bill.getUserId().equals(BaseContext.getUserId())) {
|
||||
throw new BunnyException(ResultCodeEnum.ILLEGAL_DATA_REQUEST);
|
||||
}
|
||||
|
||||
// 更新内容
|
||||
Bill bill = new Bill();
|
||||
bill = new Bill();
|
||||
BeanUtils.copyProperties(dto, bill);
|
||||
updateById(bill);
|
||||
}
|
||||
|
@ -84,6 +100,66 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements Bi
|
|||
* @param ids 删除id列表
|
||||
*/
|
||||
@Override
|
||||
public void deleteUserBill(List<Long> ids) {
|
||||
// 判断删除的是否是自己的账单
|
||||
List<Bill> billList = list(Wrappers.<Bill>lambdaQuery().in(Bill::getId, ids))
|
||||
.stream().filter(bill -> !bill.getUserId().equals(BaseContext.getUserId())).toList();
|
||||
if (!billList.isEmpty()) {
|
||||
throw new BunnyException(ResultCodeEnum.ILLEGAL_DATA_REQUEST);
|
||||
}
|
||||
baseMapper.deleteBatchIdsWithPhysics(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询账单信息
|
||||
*
|
||||
* @return 账单信息返回列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<BillVo> getBillList(Page<Bill> pageParams, BillDto dto) {
|
||||
// 判断创建用户的Id是否和当前请求的用户id是否相同
|
||||
IPage<BillVo> page = baseMapper.selectListByPage(pageParams, dto);
|
||||
|
||||
return PageResult.<BillVo>builder()
|
||||
.list(page.getRecords())
|
||||
.pageNo(page.getCurrent())
|
||||
.pageSize(page.getSize())
|
||||
.total(page.getTotal())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加账单信息
|
||||
*
|
||||
* @param dto 添加表单
|
||||
*/
|
||||
@Override
|
||||
public void addBill(BillAddDto dto) {
|
||||
// 保存数据
|
||||
Bill bill = new Bill();
|
||||
BeanUtils.copyProperties(dto, bill);
|
||||
save(bill);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新账单信息
|
||||
*
|
||||
* @param dto 更新表单
|
||||
*/
|
||||
@Override
|
||||
public void updateBill(BillUpdateDto dto) {
|
||||
// 更新内容
|
||||
Bill bill = new Bill();
|
||||
BeanUtils.copyProperties(dto, bill);
|
||||
updateById(bill);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除账单信息
|
||||
*
|
||||
* @param ids 删除的ids
|
||||
*/
|
||||
@Override
|
||||
public void deleteBill(List<Long> ids) {
|
||||
baseMapper.deleteBatchIdsWithPhysics(ids);
|
||||
}
|
||||
|
|
|
@ -22,8 +22,8 @@
|
|||
id, create_time, update_time, create_user, update_user, is_deleted, type, amount, description, transaction_date, category_id
|
||||
</sql>
|
||||
|
||||
<!-- 分页查询账单信息内容 -->
|
||||
<select id="selectListByPage" resultType="cn.bunny.dao.vo.financial.user.BillUserVo">
|
||||
<!-- 分页查询用户账单信息内容 -->
|
||||
<select id="selectUserListByPage" resultType="cn.bunny.dao.vo.financial.user.BillUserVo">
|
||||
select
|
||||
base.*,
|
||||
category.category_name,
|
||||
|
@ -35,9 +35,40 @@
|
|||
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 and base.create_user = #{userId}
|
||||
base.is_deleted = 0 and base.user_id = #{userId}
|
||||
<if test="dto.type != null and dto.type != ''">
|
||||
and base.type like CONCAT('%',#{dto.type},'%')
|
||||
and base.type = #{dto.type}
|
||||
</if>
|
||||
<if test="dto.description != null and dto.description != ''">
|
||||
and base.description like CONCAT('%',#{dto.description},'%')
|
||||
</if>
|
||||
<if test="dto.startDate != null and dto.endDate != null">
|
||||
and base.transaction_date between #{dto.startDate} and #{dto.endDate}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!-- 分页查询账单信息内容 -->
|
||||
<select id="selectListByPage" resultType="cn.bunny.dao.vo.financial.admin.BillVo">
|
||||
select
|
||||
base.*,
|
||||
category.category_name,
|
||||
category.id as category_id,
|
||||
baseuser.username as username,
|
||||
create_user.username as create_username,
|
||||
update_user.username as update_username
|
||||
from t_bill base
|
||||
left join t_category category on category.id = base.category_id
|
||||
left join sys_user baseuser on baseuser.id = base.user_id
|
||||
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.userId != null and dto.userId != ''">
|
||||
and base.user_id = #{dto.userId}
|
||||
</if>
|
||||
<if test="dto.type != null and dto.type != ''">
|
||||
and base.type = #{dto.type}
|
||||
</if>
|
||||
<if test="dto.description != null and dto.description != ''">
|
||||
and base.description like CONCAT('%',#{dto.description},'%')
|
||||
|
|
Loading…
Reference in New Issue