结算记录

This commit is contained in:
chen-xin-zhi 2025-05-10 19:03:59 +08:00
parent 9239d7fa7a
commit 820f1763bd
20 changed files with 1086 additions and 0 deletions

View File

@ -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<Boolean> 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<Boolean> 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<Boolean> 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<Boolean> delBatchFundsChange(@Valid @RequestBody CommonBatchRequest commonBatchRequest) {
List<Long> 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<FundsChangeVO> 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<Page<FundsChangeVO>> listFundsChangeByPage(@Valid @RequestBody FundsChangeQueryRequest fundsChangeQueryRequest) {
// long current = fundsChangeQueryRequest.getCurrent();
// long pageSize = fundsChangeQueryRequest.getPageSize();
// QueryWrapper<FundsChange> queryWrapper = fundsChangeService.getQueryWrapper(fundsChangeQueryRequest);
// Page<FundsChange> page = fundsChangeService.page(new Page<>(current, pageSize), queryWrapper);
// List<FundsChange> fundsChangeList = page.getRecords();
// List<FundsChangeVO> fundsChangeVOList = commonService.convertList(fundsChangeList, FundsChangeVO.class);
// Page<FundsChangeVO> voPage = new Page<>(current, pageSize);
// voPage.setRecords(fundsChangeVOList);
// voPage.setPages(page.getPages());
// voPage.setTotal(page.getTotal());
// return ResultUtils.success(voPage);
// }
}

View File

@ -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<Boolean> 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<Boolean> 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<Boolean> 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<Boolean> delBatchProjectSettlement(@Valid @RequestBody CommonBatchRequest commonBatchRequest) {
List<Long> 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<ProjectSettlementVO> 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<Page<ProjectSettlementVO>> listProjectSettlementByPage(@Valid @RequestBody ProjectSettlementQueryRequest projectSettlementQueryRequest) {
// long current = projectSettlementQueryRequest.getCurrent();
// long pageSize = projectSettlementQueryRequest.getPageSize();
// QueryWrapper<ProjectSettlement> queryWrapper = projectSettlementService.getQueryWrapper(projectSettlementQueryRequest);
// Page<ProjectSettlement> page = projectSettlementService.page(new Page<>(current, pageSize), queryWrapper);
// List<ProjectSettlement> projectSettlementList = page.getRecords();
// List<ProjectSettlementVO> projectSettlementVOList = commonService.convertList(projectSettlementList, ProjectSettlementVO.class);
// Page<ProjectSettlementVO> voPage = new Page<>(current, pageSize);
// voPage.setRecords(projectSettlementVOList);
// voPage.setPages(page.getPages());
// voPage.setTotal(page.getTotal());
// return ResultUtils.success(voPage);
// }
}

View File

@ -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<FundsChange> {
}

View File

@ -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<ProjectSettlement> {
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<FundsChange> {
}

View File

@ -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<ProjectSettlement> {
}

View File

@ -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<FundsChangeMapper, FundsChange>
implements FundsChangeService{
}

View File

@ -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<ProjectSettlementMapper, ProjectSettlement>
implements ProjectSettlementService{
}

View File

@ -0,0 +1,23 @@
<?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="com.greenorange.promotion.mapper.FundsChangeMapper">
<resultMap id="BaseResultMap" type="com.greenorange.promotion.model.entity.FundsChange">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="projectName" column="projectName" jdbcType="VARCHAR"/>
<result property="changeAmount" column="changeAmount" jdbcType="DECIMAL"/>
<result property="currentAmount" column="currentAmount" jdbcType="DECIMAL"/>
<result property="userId" column="userId" jdbcType="BIGINT"/>
<result property="isDelete" column="isDelete" jdbcType="TINYINT"/>
<result property="createTime" column="createTime" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,projectName,changeAmount,
currentAmount,userId,isDelete,
createTime,updateTime
</sql>
</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="com.greenorange.promotion.mapper.ProjectSettlementMapper">
<resultMap id="BaseResultMap" type="com.greenorange.promotion.model.entity.ProjectSettlement">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="projectDetailName" column="projectDetailName" jdbcType="VARCHAR"/>
<result property="settlementQuantity" column="settlementQuantity" jdbcType="INTEGER"/>
<result property="settlementRevenue" column="settlementRevenue" jdbcType="DECIMAL"/>
<result property="workTime" column="workTime" jdbcType="TIMESTAMP"/>
<result property="settlementTime" column="settlementTime" jdbcType="TIMESTAMP"/>
<result property="promoCodeRequestRecordId" column="promoCodeRequestRecordId" jdbcType="BIGINT"/>
<result property="isDelete" column="isDelete" jdbcType="TINYINT"/>
<result property="createTime" column="createTime" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,projectDetailName,settlementQuantity,
settlementRevenue,workTime,settlementTime,
promoCodeRequestRecordId,isDelete,createTime,
updateTime
</sql>
</mapper>