diff --git a/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java b/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java index 73e44d1..518a7e7 100644 --- a/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java +++ b/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java @@ -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.debtTracking.DebtTrackingAddDto; -import cn.bunny.dao.dto.financial.debtTracking.DebtTrackingDto; -import cn.bunny.dao.dto.financial.debtTracking.DebtTrackingUpdateDto; -import cn.bunny.dao.entity.financial.DebtTracking; -import cn.bunny.dao.vo.financial.DebtTrackingVo; +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.SavingGoalVo; import com.baomidou.mybatisplus.annotation.TableName; import com.google.common.base.CaseFormat; import io.swagger.v3.oas.annotations.media.Schema; @@ -52,11 +52,11 @@ public class WebGeneratorCode { public static String resourceMapperPath = "D:\\MyFolder\\auth\\financial-web-server\\service\\src\\main\\resources\\mapper\\financial\\"; public static void main(String[] args) throws Exception { - Class originalClass = DebtTracking.class; - Class dtoClass = DebtTrackingDto.class; - Class addDtoClass = DebtTrackingAddDto.class; - Class updateDtoClass = DebtTrackingUpdateDto.class; - Class voClass = DebtTrackingVo.class; + Class originalClass = SavingGoal.class; + Class dtoClass = SavingGoalDto.class; + Class addDtoClass = SavingGoalAddDto.class; + Class updateDtoClass = SavingGoalUpdateDto.class; + Class voClass = SavingGoalVo.class; // 设置velocity资源加载器 Properties prop = new Properties(); diff --git a/dao/src/main/java/cn/bunny/dao/dto/financial/savingGoal/SavingGoalAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/financial/savingGoal/SavingGoalAddDto.java new file mode 100644 index 0000000..21641ae --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/financial/savingGoal/SavingGoalAddDto.java @@ -0,0 +1,43 @@ +package cn.bunny.dao.dto.financial.savingGoal; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "SavingGoalAddDto对象", title = "用户储值添加", description = "用户储值添加") +public class SavingGoalAddDto { + + @Schema(name = "userId", title = "绑定的用户id") + @NotNull(message = "用户id不能为空") + private Long userId; + + @Schema(name = "statusType", title = "完成状态") + @NotNull(message = "完成状态不能为空") + @NotBlank(message = "完成状态不能为空") + private String statusType; + + @Schema(name = "savingGoalName", title = "储值目标名称") + @NotNull(message = "储值目标名称不能为空") + @NotBlank(message = "储值目标名称不能为空") + private String savingGoalName; + + @Schema(name = "amount", title = "目标金额") + @NotNull(message = "目标金额不能为空") + private BigDecimal amount; + + @Schema(name = "duration", title = "目标时长") + @NotNull(message = "目标时长不能为空") + @NotBlank(message = "目标时长不能为空") + private String duration; + +} \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/dto/financial/savingGoal/SavingGoalDto.java b/dao/src/main/java/cn/bunny/dao/dto/financial/savingGoal/SavingGoalDto.java new file mode 100644 index 0000000..ba9e155 --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/financial/savingGoal/SavingGoalDto.java @@ -0,0 +1,36 @@ +package cn.bunny.dao.dto.financial.savingGoal; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "SavingGoalDto对象", title = "用户储值查询", description = "用户储值查询") +public class SavingGoalDto { + + @Schema(name = "id", title = "主键") + private Long id; + + @Schema(name = "userId", title = "绑定的用户id") + private Long userId; + + @Schema(name = "statusType", title = "完成状态") + private String statusType; + + @Schema(name = "savingGoalName", title = "储值目标名称") + private String savingGoalName; + + @Schema(name = "amount", title = "目标金额") + private BigDecimal amount; + + @Schema(name = "duration", title = "目标时长") + private String duration; + +} diff --git a/dao/src/main/java/cn/bunny/dao/dto/financial/savingGoal/SavingGoalUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/financial/savingGoal/SavingGoalUpdateDto.java new file mode 100644 index 0000000..e27d722 --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/financial/savingGoal/SavingGoalUpdateDto.java @@ -0,0 +1,47 @@ +package cn.bunny.dao.dto.financial.savingGoal; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "SavingGoalUpdateDto对象", title = "用户储值更新", description = "用户储值更新") +public class SavingGoalUpdateDto { + + @Schema(name = "id", title = "主键") + @NotNull(message = "id不能为空") + private Long id; + + @Schema(name = "userId", title = "绑定的用户id") + @NotNull(message = "用户id不能为空") + private Long userId; + + @Schema(name = "statusType", title = "完成状态") + @NotNull(message = "完成状态不能为空") + @NotBlank(message = "完成状态不能为空") + private String statusType; + + @Schema(name = "savingGoalName", title = "储值目标名称") + @NotNull(message = "储值目标名称不能为空") + @NotBlank(message = "储值目标名称不能为空") + private String savingGoalName; + + @Schema(name = "amount", title = "目标金额") + @NotNull(message = "目标金额不能为空") + private BigDecimal amount; + + @Schema(name = "duration", title = "目标时长") + @NotNull(message = "目标时长不能为空") + @NotBlank(message = "目标时长不能为空") + private String duration; + +} diff --git a/dao/src/main/java/cn/bunny/dao/entity/financial/SavingGoal.java b/dao/src/main/java/cn/bunny/dao/entity/financial/SavingGoal.java index d7f0174..8a61844 100644 --- a/dao/src/main/java/cn/bunny/dao/entity/financial/SavingGoal.java +++ b/dao/src/main/java/cn/bunny/dao/entity/financial/SavingGoal.java @@ -1,18 +1,14 @@ 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 lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; +import java.math.BigDecimal; + /** *

* 用户储值 @@ -25,22 +21,24 @@ import lombok.experimental.Accessors; @Setter @Accessors(chain = true) @TableName("t_saving_goal") -@ApiModel(value = "SavingGoal对象", description = "用户储值") -public class SavingGoal extends BaseEntity { +@Schema(name = "SavingGoal对象", title = "用户储值", description = "用户储值") +public class SavingGoal extends BaseEntity { - @ApiModelProperty("绑定的用户id") + @Schema(name = "userId", title = "绑定的用户id") private Long userId; - @ApiModelProperty("完成状态") + @Schema(name = "statusType", title = "完成状态") private String statusType; - @ApiModelProperty("储值目标名称") + @Schema(name = "savingGoalName", title = "储值目标名称") private String savingGoalName; - @ApiModelProperty("目标金额") + @Schema(name = "amount", title = "目标金额") private BigDecimal amount; - @ApiModelProperty("目标时长") + @Schema(name = "duration", title = "目标时长") private String duration; } + + diff --git a/dao/src/main/java/cn/bunny/dao/vo/financial/SavingGoalVo.java b/dao/src/main/java/cn/bunny/dao/vo/financial/SavingGoalVo.java new file mode 100644 index 0000000..c025bd7 --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/vo/financial/SavingGoalVo.java @@ -0,0 +1,35 @@ +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; + +@EqualsAndHashCode(callSuper = true) +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "SavingGoalVo对象", title = "用户储值返回内容", description = "用户储值返回内容") +public class SavingGoalVo extends BaseVo { + + @Schema(name = "id", title = "主键") + private Long id; + + @Schema(name = "userId", title = "绑定的用户id") + private Long userId; + + @Schema(name = "statusType", title = "完成状态") + private String statusType; + + @Schema(name = "savingGoalName", title = "储值目标名称") + private String savingGoalName; + + @Schema(name = "amount", title = "目标金额") + private BigDecimal amount; + + @Schema(name = "duration", title = "目标时长") + private String duration; + +} \ No newline at end of file diff --git a/service/src/main/java/cn/bunny/services/controller/financial/SavingGoalController.java b/service/src/main/java/cn/bunny/services/controller/financial/SavingGoalController.java index f557bcc..c59888c 100644 --- a/service/src/main/java/cn/bunny/services/controller/financial/SavingGoalController.java +++ b/service/src/main/java/cn/bunny/services/controller/financial/SavingGoalController.java @@ -1,18 +1,72 @@ package cn.bunny.services.controller.financial; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +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.pojo.result.PageResult; +import cn.bunny.dao.pojo.result.Result; +import cn.bunny.dao.pojo.result.ResultCodeEnum; +import cn.bunny.dao.vo.financial.SavingGoalVo; +import cn.bunny.services.service.financial.SavingGoalService; +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; /** *

- * 用户储值 前端控制器 + * 用户储值表 前端控制器 *

* * @author Bunny - * @since 2024-11-11 + * @since 2024-11-11 16:49:29 */ +@Tag(name = "用户储值", description = "用户储值相关接口") @RestController -@RequestMapping("/savingGoal") +@RequestMapping("admin/savingGoal") public class SavingGoalController { + @Autowired + private SavingGoalService savingGoalService; + + @Operation(summary = "分页查询用户储值", description = "分页查询用户储值") + @GetMapping("getSavingGoalList/{page}/{limit}") + public Mono>> getSavingGoalList( + @Parameter(name = "page", description = "当前页", required = true) + @PathVariable("page") Integer page, + @Parameter(name = "limit", description = "每页记录数", required = true) + @PathVariable("limit") Integer limit, + SavingGoalDto dto) { + Page pageParams = new Page<>(page, limit); + PageResult pageResult = savingGoalService.getSavingGoalList(pageParams, dto); + return Mono.just(Result.success(pageResult)); + } + + @Operation(summary = "添加用户储值", description = "添加用户储值") + @PostMapping("addSavingGoal") + public Mono> addSavingGoal(@Valid @RequestBody SavingGoalAddDto dto) { + savingGoalService.addSavingGoal(dto); + return Mono.just(Result.success(ResultCodeEnum.ADD_SUCCESS)); + } + + @Operation(summary = "更新用户储值", description = "更新用户储值") + @PutMapping("updateSavingGoal") + public Mono> updateSavingGoal(@Valid @RequestBody SavingGoalUpdateDto dto) { + savingGoalService.updateSavingGoal(dto); + return Mono.just(Result.success(ResultCodeEnum.UPDATE_SUCCESS)); + } + + @Operation(summary = "删除用户储值", description = "删除用户储值") + @DeleteMapping("deleteSavingGoal") + public Mono> deleteSavingGoal(@RequestBody List ids) { + savingGoalService.deleteSavingGoal(ids); + return Mono.just(Result.success(ResultCodeEnum.DELETE_SUCCESS)); + } } diff --git a/service/src/main/java/cn/bunny/services/mapper/financial/SavingGoalMapper.java b/service/src/main/java/cn/bunny/services/mapper/financial/SavingGoalMapper.java index 84cded9..cada98b 100644 --- a/service/src/main/java/cn/bunny/services/mapper/financial/SavingGoalMapper.java +++ b/service/src/main/java/cn/bunny/services/mapper/financial/SavingGoalMapper.java @@ -1,8 +1,15 @@ package cn.bunny.services.mapper.financial; +import cn.bunny.dao.dto.financial.savingGoal.SavingGoalDto; import cn.bunny.dao.entity.financial.SavingGoal; +import cn.bunny.dao.vo.financial.SavingGoalVo; 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; /** *

@@ -10,9 +17,24 @@ import org.apache.ibatis.annotations.Mapper; *

* * @author Bunny - * @since 2024-11-11 + * @since 2024-11-11 16:49:29 */ @Mapper public interface SavingGoalMapper extends BaseMapper { + /** + * * 分页查询用户储值内容 + * + * @param pageParams 用户储值分页参数 + * @param dto 用户储值查询表单 + * @return 用户储值分页结果 + */ + IPage selectListByPage(@Param("page") Page pageParams, @Param("dto") SavingGoalDto dto); + + /** + * 物理删除用户储值 + * + * @param ids 删除 id 列表 + */ + void deleteBatchIdsWithPhysics(List ids); } diff --git a/service/src/main/java/cn/bunny/services/service/financial/SavingGoalService.java b/service/src/main/java/cn/bunny/services/service/financial/SavingGoalService.java index cd4676c..d3ddf98 100644 --- a/service/src/main/java/cn/bunny/services/service/financial/SavingGoalService.java +++ b/service/src/main/java/cn/bunny/services/service/financial/SavingGoalService.java @@ -1,7 +1,16 @@ package cn.bunny.services.service.financial; +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.pojo.result.PageResult; +import cn.bunny.dao.vo.financial.SavingGoalVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import jakarta.validation.Valid; + +import java.util.List; /** *

@@ -9,8 +18,35 @@ import com.baomidou.mybatisplus.extension.service.IService; *

* * @author Bunny - * @since 2024-11-11 + * @since 2024-11-11 16:49:29 */ public interface SavingGoalService extends IService { + /** + * * 获取用户储值列表 + * + * @return 用户储值返回列表 + */ + PageResult getSavingGoalList(Page pageParams, SavingGoalDto dto); + + /** + * * 添加用户储值 + * + * @param dto 添加表单 + */ + void addSavingGoal(@Valid SavingGoalAddDto dto); + + /** + * * 更新用户储值 + * + * @param dto 更新表单 + */ + void updateSavingGoal(@Valid SavingGoalUpdateDto dto); + + /** + * * 删除|批量删除用户储值类型 + * + * @param ids 删除id列表 + */ + void deleteSavingGoal(List ids); } diff --git a/service/src/main/java/cn/bunny/services/service/financial/impl/SavingGoalServiceImpl.java b/service/src/main/java/cn/bunny/services/service/financial/impl/SavingGoalServiceImpl.java index 6e1e496..8e37e8d 100644 --- a/service/src/main/java/cn/bunny/services/service/financial/impl/SavingGoalServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/financial/impl/SavingGoalServiceImpl.java @@ -1,20 +1,85 @@ package cn.bunny.services.service.financial.impl; +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.pojo.result.PageResult; +import cn.bunny.dao.vo.financial.SavingGoalVo; import cn.bunny.services.mapper.financial.SavingGoalMapper; import cn.bunny.services.service.financial.SavingGoalService; +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; + /** *

* 用户储值 服务实现类 *

* * @author Bunny - * @since 2024-11-11 + * @since 2024-11-11 16:49:29 */ @Service public class SavingGoalServiceImpl extends ServiceImpl implements SavingGoalService { + /** + * * 用户储值 服务实现类 + * + * @param pageParams 用户储值分页查询page对象 + * @param dto 用户储值分页查询对象 + * @return 查询分页用户储值返回对象 + */ + @Override + public PageResult getSavingGoalList(Page pageParams, SavingGoalDto dto) { + IPage page = baseMapper.selectListByPage(pageParams, dto); + + return PageResult.builder() + .list(page.getRecords()) + .pageNo(page.getCurrent()) + .pageSize(page.getSize()) + .total(page.getTotal()) + .build(); + } + + /** + * 添加用户储值 + * + * @param dto 用户储值添加 + */ + @Override + public void addSavingGoal(@Valid SavingGoalAddDto dto) { + // 保存数据 + SavingGoal savingGoal = new SavingGoal(); + BeanUtils.copyProperties(dto, savingGoal); + save(savingGoal); + } + + /** + * 更新用户储值 + * + * @param dto 用户储值更新 + */ + @Override + public void updateSavingGoal(@Valid SavingGoalUpdateDto dto) { + // 更新内容 + SavingGoal savingGoal = new SavingGoal(); + BeanUtils.copyProperties(dto, savingGoal); + updateById(savingGoal); + } + + /** + * 删除|批量删除用户储值 + * + * @param ids 删除id列表 + */ + @Override + public void deleteSavingGoal(List ids) { + baseMapper.deleteBatchIdsWithPhysics(ids); + } } diff --git a/service/src/main/resources/mapper/financial/SavingGoalMapper.xml b/service/src/main/resources/mapper/financial/SavingGoalMapper.xml index 055ca4f..8dfadd8 100644 --- a/service/src/main/resources/mapper/financial/SavingGoalMapper.xml +++ b/service/src/main/resources/mapper/financial/SavingGoalMapper.xml @@ -4,22 +4,64 @@ - - - - - - - - - - - + + + + + + + + + + + - id, user_id, status_type, saving_goal_name, amount, duration, create_user, create_time, update_user, update_time, is_deleted + id, create_time, update_time, create_user, update_user, is_deleted, user_id, status_type, saving_goal_name, amount, duration + + + + + + delete + from t_saving_goal + where id in + + #{id} + + +