diff --git a/src/main/java/com/greenorange/promotion/controller/fundsChange/FundsChangeController.java b/src/main/java/com/greenorange/promotion/controller/fundsChange/FundsChangeController.java new file mode 100644 index 0000000..f6c9756 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/controller/fundsChange/FundsChangeController.java @@ -0,0 +1,148 @@ +package com.greenorange.promotion.controller.fundsChange; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.greenorange.promotion.annotation.RequiresPermission; +import com.greenorange.promotion.annotation.SysLog; +import com.greenorange.promotion.common.BaseResponse; +import com.greenorange.promotion.common.ErrorCode; +import com.greenorange.promotion.common.ResultUtils; +import com.greenorange.promotion.constant.UserConstant; +import com.greenorange.promotion.exception.ThrowUtils; +import com.greenorange.promotion.model.dto.CommonBatchRequest; +import com.greenorange.promotion.model.dto.fundsChange.FundsChangeAddRequest; +import com.greenorange.promotion.model.dto.fundsChange.FundsChangeQueryRequest; +import com.greenorange.promotion.model.dto.fundsChange.FundsChangeUpdateRequest; +import com.greenorange.promotion.model.entity.FundsChange; +import com.greenorange.promotion.model.vo.fundsChange.FundsChangeVO; +import com.greenorange.promotion.service.common.CommonService; +import com.greenorange.promotion.service.settle.FundsChangeService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.greenorange.promotion.model.dto.CommonRequest; +import jakarta.validation.Valid; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +/** + * 资金变动记录 控制器 + */ +@RestController +@RequestMapping("fundsChange") +@Slf4j +@Tag(name = "资金变动记录管理") +public class FundsChangeController { + + @Resource + private FundsChangeService fundsChangeService; + + @Resource + private CommonService commonService; + + /** + * web端管理员添加资金变动记录 + * @param fundsChangeAddRequest 资金变动记录添加请求体 + * @return 是否添加成功 + */ + @PostMapping("add") + @Operation(summary = "web端管理员添加资金变动记录", description = "参数:资金变动记录添加请求体,权限:管理员,方法名:addFundsChange") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "资金变动记录管理", content = "web端管理员添加资金变动记录") + public BaseResponse addFundsChange(@Valid @RequestBody FundsChangeAddRequest fundsChangeAddRequest) { + FundsChange fundsChange = commonService.copyProperties(fundsChangeAddRequest, FundsChange.class); + fundsChangeService.save(fundsChange); + return ResultUtils.success(true); + } + + /** + * web端管理员根据id修改资金变动记录信息 + * @param fundsChangeUpdateRequest 资金变动记录更新请求体 + * @return 是否更新成功 + */ + @PostMapping("update") + @Operation(summary = "web端管理员更新资金变动记录", description = "参数:资金变动记录更新请求体,权限:管理员,方法名:updateFundsChange") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "资金变动记录管理", content = "web端管理员根据id修改资金变动记录信息") + public BaseResponse updateFundsChange(@Valid @RequestBody FundsChangeUpdateRequest fundsChangeUpdateRequest) { + FundsChange fundsChange = commonService.copyProperties(fundsChangeUpdateRequest, FundsChange.class); + fundsChangeService.updateById(fundsChange); + return ResultUtils.success(true); + } + + /** + * web端管理员根据id删除资金变动记录 + * @param commonRequest 资金变动记录删除请求体 + * @return 是否删除成功 + */ + @PostMapping("delete") + @Operation(summary = "web端管理员根据id删除资金变动记录", description = "参数:资金变动记录删除请求体,权限:管理员,方法名:delFundsChange") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "资金变动记录管理", content = "web端管理员根据id删除资金变动记录") + public BaseResponse delFundsChange(@Valid @RequestBody CommonRequest commonRequest) { + Long id = commonRequest.getId(); + fundsChangeService.removeById(id); + return ResultUtils.success(true); + } + + /** + * web端管理员批量删除资金变动记录 + * @param commonBatchRequest 资金变动记录批量删除请求体 + * @return 是否删除成功 + */ + @PostMapping("delBatch") + @Operation(summary = "web端管理员批量删除资金变动记录", description = "参数:资金变动记录批量删除请求体,权限:管理员,方法名:delBatchFundsChange") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "资金变动记录管理", content = "web端管理员批量删除资金变动记录") + public BaseResponse delBatchFundsChange(@Valid @RequestBody CommonBatchRequest commonBatchRequest) { + List ids = commonBatchRequest.getIds(); + fundsChangeService.removeByIds(ids); + return ResultUtils.success(true); + } + + /** + * web端管理员根据id查询资金变动记录 + * @param commonRequest 资金变动记录查询请求体 + * @return 资金变动记录信息 + */ + @PostMapping("queryById") + @Operation(summary = "web端管理员根据id查询资金变动记录", description = "参数:资金变动记录查询请求体,权限:管理员,方法名:queryFundsChangeById") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "资金变动记录管理", content = "web端管理员根据id查询资金变动记录") + public BaseResponse queryFundsChangeById(@Valid @RequestBody CommonRequest commonRequest) { + Long id = commonRequest.getId(); + FundsChange fundsChange = fundsChangeService.getById(id); + ThrowUtils.throwIf(fundsChange == null, ErrorCode.OPERATION_ERROR, "当前资金变动记录不存在"); + FundsChangeVO fundsChangeVO = commonService.copyProperties(fundsChange, FundsChangeVO.class); + return ResultUtils.success(fundsChangeVO); + } + +// /** +// * Web端管理员分页查询资金变动记录 +// * @param fundsChangeQueryRequest 资金变动记录查询请求体 +// * @return 资金变动记录列表 +// */ +// @PostMapping("page") +// @Operation(summary = "Web端管理员分页查询资金变动记录", description = "参数:资金变动记录查询请求体,权限:管理员,方法名:listFundsChangeByPage") +// @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) +// @SysLog(title = "资金变动记录管理", content = "Web端管理员分页查询资金变动记录") +// public BaseResponse> listFundsChangeByPage(@Valid @RequestBody FundsChangeQueryRequest fundsChangeQueryRequest) { +// long current = fundsChangeQueryRequest.getCurrent(); +// long pageSize = fundsChangeQueryRequest.getPageSize(); +// QueryWrapper queryWrapper = fundsChangeService.getQueryWrapper(fundsChangeQueryRequest); +// Page page = fundsChangeService.page(new Page<>(current, pageSize), queryWrapper); +// List fundsChangeList = page.getRecords(); +// List fundsChangeVOList = commonService.convertList(fundsChangeList, FundsChangeVO.class); +// Page voPage = new Page<>(current, pageSize); +// voPage.setRecords(fundsChangeVOList); +// voPage.setPages(page.getPages()); +// voPage.setTotal(page.getTotal()); +// return ResultUtils.success(voPage); +// } +} \ No newline at end of file diff --git a/src/main/java/com/greenorange/promotion/controller/projectSettlement/ProjectSettlementController.java b/src/main/java/com/greenorange/promotion/controller/projectSettlement/ProjectSettlementController.java new file mode 100644 index 0000000..fcfb504 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/controller/projectSettlement/ProjectSettlementController.java @@ -0,0 +1,148 @@ +package com.greenorange.promotion.controller.projectSettlement; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.greenorange.promotion.annotation.RequiresPermission; +import com.greenorange.promotion.annotation.SysLog; +import com.greenorange.promotion.common.BaseResponse; +import com.greenorange.promotion.common.ErrorCode; +import com.greenorange.promotion.common.ResultUtils; +import com.greenorange.promotion.constant.UserConstant; +import com.greenorange.promotion.exception.ThrowUtils; +import com.greenorange.promotion.model.dto.CommonBatchRequest; +import com.greenorange.promotion.model.dto.projectSettlement.ProjectSettlementAddRequest; +import com.greenorange.promotion.model.dto.projectSettlement.ProjectSettlementQueryRequest; +import com.greenorange.promotion.model.dto.projectSettlement.ProjectSettlementUpdateRequest; +import com.greenorange.promotion.model.entity.ProjectSettlement; +import com.greenorange.promotion.model.vo.projectSettlement.ProjectSettlementVO; +import com.greenorange.promotion.service.common.CommonService; +import com.greenorange.promotion.service.settle.ProjectSettlementService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.greenorange.promotion.model.dto.CommonRequest; +import jakarta.validation.Valid; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +/** + * 项目结算记录 控制器 + */ +@RestController +@RequestMapping("projectSettlement") +@Slf4j +@Tag(name = "项目结算记录管理") +public class ProjectSettlementController { + + @Resource + private ProjectSettlementService projectSettlementService; + + @Resource + private CommonService commonService; + + /** + * web端管理员添加项目结算记录 + * @param projectSettlementAddRequest 项目结算记录添加请求体 + * @return 是否添加成功 + */ + @PostMapping("add") + @Operation(summary = "web端管理员添加项目结算记录", description = "参数:项目结算记录添加请求体,权限:管理员,方法名:addProjectSettlement") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "项目结算记录管理", content = "web端管理员添加项目结算记录") + public BaseResponse addProjectSettlement(@Valid @RequestBody ProjectSettlementAddRequest projectSettlementAddRequest) { + ProjectSettlement projectSettlement = commonService.copyProperties(projectSettlementAddRequest, ProjectSettlement.class); + projectSettlementService.save(projectSettlement); + return ResultUtils.success(true); + } + + /** + * web端管理员根据id修改项目结算记录信息 + * @param projectSettlementUpdateRequest 项目结算记录更新请求体 + * @return 是否更新成功 + */ + @PostMapping("update") + @Operation(summary = "web端管理员更新项目结算记录", description = "参数:项目结算记录更新请求体,权限:管理员,方法名:updateProjectSettlement") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "项目结算记录管理", content = "web端管理员根据id修改项目结算记录信息") + public BaseResponse updateProjectSettlement(@Valid @RequestBody ProjectSettlementUpdateRequest projectSettlementUpdateRequest) { + ProjectSettlement projectSettlement = commonService.copyProperties(projectSettlementUpdateRequest, ProjectSettlement.class); + projectSettlementService.updateById(projectSettlement); + return ResultUtils.success(true); + } + + /** + * web端管理员根据id删除项目结算记录 + * @param commonRequest 项目结算记录删除请求体 + * @return 是否删除成功 + */ + @PostMapping("delete") + @Operation(summary = "web端管理员根据id删除项目结算记录", description = "参数:项目结算记录删除请求体,权限:管理员,方法名:delProjectSettlement") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "项目结算记录管理", content = "web端管理员根据id删除项目结算记录") + public BaseResponse delProjectSettlement(@Valid @RequestBody CommonRequest commonRequest) { + Long id = commonRequest.getId(); + projectSettlementService.removeById(id); + return ResultUtils.success(true); + } + + /** + * web端管理员批量删除项目结算记录 + * @param commonBatchRequest 项目结算记录批量删除请求体 + * @return 是否删除成功 + */ + @PostMapping("delBatch") + @Operation(summary = "web端管理员批量删除项目结算记录", description = "参数:项目结算记录批量删除请求体,权限:管理员,方法名:delBatchProjectSettlement") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "项目结算记录管理", content = "web端管理员批量删除项目结算记录") + public BaseResponse delBatchProjectSettlement(@Valid @RequestBody CommonBatchRequest commonBatchRequest) { + List ids = commonBatchRequest.getIds(); + projectSettlementService.removeByIds(ids); + return ResultUtils.success(true); + } + + /** + * web端管理员根据id查询项目结算记录 + * @param commonRequest 项目结算记录查询请求体 + * @return 项目结算记录信息 + */ + @PostMapping("queryById") + @Operation(summary = "web端管理员根据id查询项目结算记录", description = "参数:项目结算记录查询请求体,权限:管理员,方法名:queryProjectSettlementById") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "项目结算记录管理", content = "web端管理员根据id查询项目结算记录") + public BaseResponse queryProjectSettlementById(@Valid @RequestBody CommonRequest commonRequest) { + Long id = commonRequest.getId(); + ProjectSettlement projectSettlement = projectSettlementService.getById(id); + ThrowUtils.throwIf(projectSettlement == null, ErrorCode.OPERATION_ERROR, "当前项目结算记录不存在"); + ProjectSettlementVO projectSettlementVO = commonService.copyProperties(projectSettlement, ProjectSettlementVO.class); + return ResultUtils.success(projectSettlementVO); + } + +// /** +// * Web端管理员分页查询项目结算记录 +// * @param projectSettlementQueryRequest 项目结算记录查询请求体 +// * @return 项目结算记录列表 +// */ +// @PostMapping("page") +// @Operation(summary = "Web端管理员分页查询项目结算记录", description = "参数:项目结算记录查询请求体,权限:管理员,方法名:listProjectSettlementByPage") +// @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) +// @SysLog(title = "项目结算记录管理", content = "Web端管理员分页查询项目结算记录") +// public BaseResponse> listProjectSettlementByPage(@Valid @RequestBody ProjectSettlementQueryRequest projectSettlementQueryRequest) { +// long current = projectSettlementQueryRequest.getCurrent(); +// long pageSize = projectSettlementQueryRequest.getPageSize(); +// QueryWrapper queryWrapper = projectSettlementService.getQueryWrapper(projectSettlementQueryRequest); +// Page page = projectSettlementService.page(new Page<>(current, pageSize), queryWrapper); +// List projectSettlementList = page.getRecords(); +// List projectSettlementVOList = commonService.convertList(projectSettlementList, ProjectSettlementVO.class); +// Page voPage = new Page<>(current, pageSize); +// voPage.setRecords(projectSettlementVOList); +// voPage.setPages(page.getPages()); +// voPage.setTotal(page.getTotal()); +// return ResultUtils.success(voPage); +// } +} \ No newline at end of file diff --git a/src/main/java/com/greenorange/promotion/mapper/FundsChangeMapper.java b/src/main/java/com/greenorange/promotion/mapper/FundsChangeMapper.java new file mode 100644 index 0000000..98c8d37 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/mapper/FundsChangeMapper.java @@ -0,0 +1,18 @@ +package com.greenorange.promotion.mapper; + +import com.greenorange.promotion.model.entity.FundsChange; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 35880 +* @description 针对表【funds_change(资金变动记录表)】的数据库操作Mapper +* @createDate 2025-05-10 18:47:20 +* @Entity com.greenorange.promotion.model.entity.FundsChange +*/ +public interface FundsChangeMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/greenorange/promotion/mapper/ProjectSettlementMapper.java b/src/main/java/com/greenorange/promotion/mapper/ProjectSettlementMapper.java new file mode 100644 index 0000000..673adda --- /dev/null +++ b/src/main/java/com/greenorange/promotion/mapper/ProjectSettlementMapper.java @@ -0,0 +1,18 @@ +package com.greenorange.promotion.mapper; + +import com.greenorange.promotion.model.entity.ProjectSettlement; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 35880 +* @description 针对表【project_settlement(项目结算记录表)】的数据库操作Mapper +* @createDate 2025-05-10 18:02:22 +* @Entity com.greenorange.promotion.model.entity.ProjectSettlement +*/ +public interface ProjectSettlementMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/greenorange/promotion/model/dto/fundsChange/FundsChangeAddRequest.java b/src/main/java/com/greenorange/promotion/model/dto/fundsChange/FundsChangeAddRequest.java new file mode 100644 index 0000000..7ca6591 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/fundsChange/FundsChangeAddRequest.java @@ -0,0 +1,54 @@ +package com.greenorange.promotion.model.dto.fundsChange; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Min; +import lombok.Data; +import java.math.BigDecimal; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 资金变动记录添加请求体 + */ +@Data +@Schema(description = "资金变动记录添加请求体", requiredProperties = { + "projectName", + "changeAmount", + "currentAmount", + "userId", +}) +public class FundsChangeAddRequest implements Serializable { + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空") + @Schema(description = "项目名称", example = "饿了么-超吃卡") + private String projectName; + + /** + * 变动金额 + */ + @Schema(description = "变动金额", example = "0.96") + private BigDecimal changeAmount; + + /** + * 当前金额(变动后的总金额) + */ + @Schema(description = "当前金额(变动后的总金额)", example = "0.34") + private BigDecimal currentAmount; + + /** + * 用户ID + */ + @Min(value = 1L, message = "用户ID ID不能小于1") + @Schema(description = "用户ID", example = "1") + private Long userId; + + + @Serial + private static final long serialVersionUID = 1L; +} + diff --git a/src/main/java/com/greenorange/promotion/model/dto/fundsChange/FundsChangeQueryRequest.java b/src/main/java/com/greenorange/promotion/model/dto/fundsChange/FundsChangeQueryRequest.java new file mode 100644 index 0000000..9ae1eae --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/fundsChange/FundsChangeQueryRequest.java @@ -0,0 +1,57 @@ +package com.greenorange.promotion.model.dto.fundsChange; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Min; +import lombok.Data; +import java.math.BigDecimal; + +import java.io.Serial; +import java.io.Serializable; +import com.greenorange.promotion.common.PageRequest; + +/** + * 资金变动记录查询请求体,继承自分页请求 PageRequest + */ +@Data +@Schema(description = "资金变动记录查询请求体", requiredProperties = {"current", "pageSize"}) +public class FundsChangeQueryRequest extends PageRequest implements Serializable { + + /** + * 资金变动ID + */ + @Min(value = 1L, message = "资金变动ID ID不能小于1") + @Schema(description = "资金变动ID", example = "1") + private Long id; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空") + @Schema(description = "项目名称", example = "饿了么-超吃卡") + private String projectName; + + /** + * 变动金额 + */ + @Schema(description = "变动金额", example = "0.96") + private BigDecimal changeAmount; + + /** + * 当前金额(变动后的总金额) + */ + @Schema(description = "当前金额(变动后的总金额)", example = "0.34") + private BigDecimal currentAmount; + + /** + * 用户ID + */ + @Min(value = 1L, message = "用户ID ID不能小于1") + @Schema(description = "用户ID", example = "1") + private Long userId; + + + @Serial + private static final long serialVersionUID = 1L; +} + diff --git a/src/main/java/com/greenorange/promotion/model/dto/fundsChange/FundsChangeUpdateRequest.java b/src/main/java/com/greenorange/promotion/model/dto/fundsChange/FundsChangeUpdateRequest.java new file mode 100644 index 0000000..b576eba --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/fundsChange/FundsChangeUpdateRequest.java @@ -0,0 +1,61 @@ +package com.greenorange.promotion.model.dto.fundsChange; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Min; +import lombok.Data; +import java.math.BigDecimal; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 资金变动记录更新请求体 + */ +@Data +@Schema(description = "资金变动记录更新请求体", requiredProperties = { + "id", + "projectName", + "changeAmount", + "currentAmount", + "userId", +}) +public class FundsChangeUpdateRequest implements Serializable { + + /** + * 资金变动ID + */ + @Min(value = 1L, message = "资金变动ID ID不能小于1") + @Schema(description = "资金变动ID", example = "1") + private Long id; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空") + @Schema(description = "项目名称", example = "饿了么-超吃卡") + private String projectName; + + /** + * 变动金额 + */ + @Schema(description = "变动金额", example = "0.96") + private BigDecimal changeAmount; + + /** + * 当前金额(变动后的总金额) + */ + @Schema(description = "当前金额(变动后的总金额)", example = "0.34") + private BigDecimal currentAmount; + + /** + * 用户ID + */ + @Min(value = 1L, message = "用户ID ID不能小于1") + @Schema(description = "用户ID", example = "1") + private Long userId; + + + @Serial + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementAddRequest.java b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementAddRequest.java new file mode 100644 index 0000000..94d19a8 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementAddRequest.java @@ -0,0 +1,69 @@ +package com.greenorange.promotion.model.dto.projectSettlement; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Min; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 项目结算记录添加请求体 + */ +@Data +@Schema(description = "项目结算记录添加请求体", requiredProperties = { + "projectDetailName", + "settlementQuantity", + "settlementRevenue", + "workTime", + "settlementTime", + "promoCodeRequestRecordId", +}) +public class ProjectSettlementAddRequest implements Serializable { + + /** + * 项目明细名称 + */ + @NotBlank(message = "项目明细名称不能为空") + @Schema(description = "项目明细名称", example = "新用户完成首单") + private String projectDetailName; + + /** + * 结算数量 + */ + @Schema(description = "结算数量", example = "2") + private Integer settlementQuantity; + + /** + * 结算收益 + */ + @Schema(description = "结算收益", example = "2.34") + private BigDecimal settlementRevenue; + + /** + * 作业时间 + */ + @Schema(description = "作业时间", example = "2025-05-10 10:00:00") + private LocalDateTime workTime; + + /** + * 结算时间 + */ + @Schema(description = "结算时间", example = "2025-05-12 10:00:00") + private LocalDateTime settlementTime; + + /** + * 推广码申请记录id + */ + @Min(value = 1L, message = "推广码申请记录id ID不能小于1") + @Schema(description = "推广码申请记录id", example = "1") + private Long promoCodeRequestRecordId; + + + @Serial + private static final long serialVersionUID = 1L; +} + diff --git a/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementQueryRequest.java b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementQueryRequest.java new file mode 100644 index 0000000..67226c4 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementQueryRequest.java @@ -0,0 +1,71 @@ +package com.greenorange.promotion.model.dto.projectSettlement; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Min; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.greenorange.promotion.common.PageRequest; + +/** + * 项目结算记录查询请求体,继承自分页请求 PageRequest + */ +@Data +@Schema(description = "项目结算记录查询请求体", requiredProperties = {"current", "pageSize"}) +public class ProjectSettlementQueryRequest extends PageRequest implements Serializable { + + /** + * 结算记录ID + */ + @Min(value = 1L, message = "结算记录ID ID不能小于1") + @Schema(description = "结算记录ID", example = "1") + private Long id; + + /** + * 项目明细名称 + */ + @NotBlank(message = "项目明细名称不能为空") + @Schema(description = "项目明细名称", example = "新用户完成首单") + private String projectDetailName; + + /** + * 结算数量 + */ + @Schema(description = "结算数量", example = "2") + private Integer settlementQuantity; + + /** + * 结算收益 + */ + @Schema(description = "结算收益", example = "2.34") + private BigDecimal settlementRevenue; + + /** + * 作业时间 + */ + @Schema(description = "作业时间", example = "2025-05-10 10:00:00") + private LocalDateTime workTime; + + /** + * 结算时间 + */ + @Schema(description = "结算时间", example = "2025-05-12 10:00:00") + private LocalDateTime settlementTime; + + /** + * 推广码申请记录id + */ + @Min(value = 1L, message = "推广码申请记录id ID不能小于1") + @Schema(description = "推广码申请记录id", example = "1") + private Long promoCodeRequestRecordId; + + + @Serial + private static final long serialVersionUID = 1L; +} + diff --git a/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementUpdateRequest.java b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementUpdateRequest.java new file mode 100644 index 0000000..51952b2 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/projectSettlement/ProjectSettlementUpdateRequest.java @@ -0,0 +1,76 @@ +package com.greenorange.promotion.model.dto.projectSettlement; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Min; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 项目结算记录更新请求体 + */ +@Data +@Schema(description = "项目结算记录更新请求体", requiredProperties = { + "id", + "projectDetailName", + "settlementQuantity", + "settlementRevenue", + "workTime", + "settlementTime", + "promoCodeRequestRecordId", +}) +public class ProjectSettlementUpdateRequest implements Serializable { + + /** + * 结算记录ID + */ + @Min(value = 1L, message = "结算记录ID ID不能小于1") + @Schema(description = "结算记录ID", example = "1") + private Long id; + + /** + * 项目明细名称 + */ + @NotBlank(message = "项目明细名称不能为空") + @Schema(description = "项目明细名称", example = "新用户完成首单") + private String projectDetailName; + + /** + * 结算数量 + */ + @Schema(description = "结算数量", example = "2") + private Integer settlementQuantity; + + /** + * 结算收益 + */ + @Schema(description = "结算收益", example = "2.34") + private BigDecimal settlementRevenue; + + /** + * 作业时间 + */ + @Schema(description = "作业时间", example = "2025-05-10 10:00:00") + private LocalDateTime workTime; + + /** + * 结算时间 + */ + @Schema(description = "结算时间", example = "2025-05-12 10:00:00") + private LocalDateTime settlementTime; + + /** + * 推广码申请记录id + */ + @Min(value = 1L, message = "推广码申请记录id ID不能小于1") + @Schema(description = "推广码申请记录id", example = "1") + private Long promoCodeRequestRecordId; + + + @Serial + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/greenorange/promotion/model/entity/FundsChange.java b/src/main/java/com/greenorange/promotion/model/entity/FundsChange.java new file mode 100644 index 0000000..1b4058b --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/entity/FundsChange.java @@ -0,0 +1,62 @@ +package com.greenorange.promotion.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import lombok.Data; + +/** + * 资金变动记录表 + * @TableName funds_change + */ +@TableName(value ="funds_change") +@Data +public class FundsChange implements Serializable { + /** + * 资金变动ID + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 变动金额 + */ + private BigDecimal changeAmount; + + /** + * 当前金额(变动后的总金额) + */ + private BigDecimal currentAmount; + + /** + * 用户ID + */ + private Long userId; + + /** + * 是否删除 + */ + private Integer isDelete; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/greenorange/promotion/model/entity/ProjectSettlement.java b/src/main/java/com/greenorange/promotion/model/entity/ProjectSettlement.java new file mode 100644 index 0000000..e65c2c6 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/entity/ProjectSettlement.java @@ -0,0 +1,72 @@ +package com.greenorange.promotion.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import lombok.Data; + +/** + * 项目结算记录表 + * @TableName project_settlement + */ +@TableName(value ="project_settlement") +@Data +public class ProjectSettlement implements Serializable { + /** + * 结算记录ID + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 项目明细名称 + */ + private String projectDetailName; + + /** + * 结算数量 + */ + private Integer settlementQuantity; + + /** + * 结算收益 + */ + private BigDecimal settlementRevenue; + + /** + * 作业时间 + */ + private Date workTime; + + /** + * 结算时间 + */ + private Date settlementTime; + + /** + * 推广码申请记录id + */ + private Long promoCodeRequestRecordId; + + /** + * 是否删除 + */ + private Integer isDelete; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/greenorange/promotion/model/vo/fundsChange/FundsChangeVO.java b/src/main/java/com/greenorange/promotion/model/vo/fundsChange/FundsChangeVO.java new file mode 100644 index 0000000..4667285 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/vo/fundsChange/FundsChangeVO.java @@ -0,0 +1,50 @@ +package com.greenorange.promotion.model.vo.fundsChange; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 资金变动记录 视图对象 + */ +@Data +@Schema(description = "资金变动记录 视图对象") +public class FundsChangeVO implements Serializable { + + /** + * 资金变动记录ID + */ + @Schema(description = "资金变动记录ID", example = "1") + private Long id; + + /** + * 项目名称 + */ + @Schema(description = "项目名称", example = "饿了么-超吃卡") + private String projectName; + + /** + * 变动金额 + */ + @Schema(description = "变动金额", example = "0.96") + private BigDecimal changeAmount; + + /** + * 当前金额(变动后的总金额) + */ + @Schema(description = "当前金额(变动后的总金额)", example = "0.34") + private BigDecimal currentAmount; + + /** + * 用户ID + */ + @Schema(description = "用户ID", example = "1") + private Long userId; + + + @Serial + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/greenorange/promotion/model/vo/projectSettlement/ProjectSettlementVO.java b/src/main/java/com/greenorange/promotion/model/vo/projectSettlement/ProjectSettlementVO.java new file mode 100644 index 0000000..1123ec2 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/vo/projectSettlement/ProjectSettlementVO.java @@ -0,0 +1,63 @@ +package com.greenorange.promotion.model.vo.projectSettlement; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 项目结算记录 视图对象 + */ +@Data +@Schema(description = "项目结算记录 视图对象") +public class ProjectSettlementVO implements Serializable { + + /** + * 项目结算记录ID + */ + @Schema(description = "项目结算记录ID", example = "1") + private Long id; + + /** + * 项目明细名称 + */ + @Schema(description = "项目明细名称", example = "新用户完成首单") + private String projectDetailName; + + /** + * 结算数量 + */ + @Schema(description = "结算数量", example = "2") + private Integer settlementQuantity; + + /** + * 结算收益 + */ + @Schema(description = "结算收益", example = "2.34") + private BigDecimal settlementRevenue; + + /** + * 作业时间 + */ + @Schema(description = "作业时间", example = "2025-05-10 10:00:00") + private LocalDateTime workTime; + + /** + * 结算时间 + */ + @Schema(description = "结算时间", example = "2025-05-12 10:00:00") + private LocalDateTime settlementTime; + + /** + * 推广码申请记录id + */ + @Schema(description = "推广码申请记录id", example = "1") + private Long promoCodeRequestRecordId; + + + @Serial + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/greenorange/promotion/service/settle/FundsChangeService.java b/src/main/java/com/greenorange/promotion/service/settle/FundsChangeService.java new file mode 100644 index 0000000..cff0891 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/service/settle/FundsChangeService.java @@ -0,0 +1,13 @@ +package com.greenorange.promotion.service.settle; + +import com.greenorange.promotion.model.entity.FundsChange; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 35880 +* @description 针对表【funds_change(资金变动记录表)】的数据库操作Service +* @createDate 2025-05-10 18:47:20 +*/ +public interface FundsChangeService extends IService { + +} diff --git a/src/main/java/com/greenorange/promotion/service/settle/ProjectSettlementService.java b/src/main/java/com/greenorange/promotion/service/settle/ProjectSettlementService.java new file mode 100644 index 0000000..78b7d76 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/service/settle/ProjectSettlementService.java @@ -0,0 +1,13 @@ +package com.greenorange.promotion.service.settle; + +import com.greenorange.promotion.model.entity.ProjectSettlement; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 35880 +* @description 针对表【project_settlement(项目结算记录表)】的数据库操作Service +* @createDate 2025-05-10 18:02:22 +*/ +public interface ProjectSettlementService extends IService { + +} diff --git a/src/main/java/com/greenorange/promotion/service/settle/impl/FundsChangeServiceImpl.java b/src/main/java/com/greenorange/promotion/service/settle/impl/FundsChangeServiceImpl.java new file mode 100644 index 0000000..52d0c3a --- /dev/null +++ b/src/main/java/com/greenorange/promotion/service/settle/impl/FundsChangeServiceImpl.java @@ -0,0 +1,22 @@ +package com.greenorange.promotion.service.settle.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.greenorange.promotion.model.entity.FundsChange; +import com.greenorange.promotion.service.settle.FundsChangeService; +import com.greenorange.promotion.mapper.FundsChangeMapper; +import org.springframework.stereotype.Service; + +/** +* @author 35880 +* @description 针对表【funds_change(资金变动记录表)】的数据库操作Service实现 +* @createDate 2025-05-10 18:47:20 +*/ +@Service +public class FundsChangeServiceImpl extends ServiceImpl + implements FundsChangeService{ + +} + + + + diff --git a/src/main/java/com/greenorange/promotion/service/settle/impl/ProjectSettlementServiceImpl.java b/src/main/java/com/greenorange/promotion/service/settle/impl/ProjectSettlementServiceImpl.java new file mode 100644 index 0000000..e36245d --- /dev/null +++ b/src/main/java/com/greenorange/promotion/service/settle/impl/ProjectSettlementServiceImpl.java @@ -0,0 +1,22 @@ +package com.greenorange.promotion.service.settle.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.greenorange.promotion.model.entity.ProjectSettlement; +import com.greenorange.promotion.service.settle.ProjectSettlementService; +import com.greenorange.promotion.mapper.ProjectSettlementMapper; +import org.springframework.stereotype.Service; + +/** +* @author 35880 +* @description 针对表【project_settlement(项目结算记录表)】的数据库操作Service实现 +* @createDate 2025-05-10 18:02:22 +*/ +@Service +public class ProjectSettlementServiceImpl extends ServiceImpl + implements ProjectSettlementService{ + +} + + + + diff --git a/src/main/resources/mapper/FundsChangeMapper.xml b/src/main/resources/mapper/FundsChangeMapper.xml new file mode 100644 index 0000000..c45cf60 --- /dev/null +++ b/src/main/resources/mapper/FundsChangeMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + id,projectName,changeAmount, + currentAmount,userId,isDelete, + createTime,updateTime + + diff --git a/src/main/resources/mapper/ProjectSettlementMapper.xml b/src/main/resources/mapper/ProjectSettlementMapper.xml new file mode 100644 index 0000000..9f48192 --- /dev/null +++ b/src/main/resources/mapper/ProjectSettlementMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + id,projectDetailName,settlementQuantity, + settlementRevenue,workTime,settlementTime, + promoCodeRequestRecordId,isDelete,createTime, + updateTime + +