结算记录

This commit is contained in:
chen-xin-zhi 2025-05-10 20:39:38 +08:00
parent b4c47cfd38
commit cc55491cd6
10 changed files with 623 additions and 0 deletions

View File

@ -0,0 +1,148 @@
package com.greenorange.promotion.controller.promoCodeApply;
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.promoCodeApply.PromoCodeApplyAddRequest;
import com.greenorange.promotion.model.dto.promoCodeApply.PromoCodeApplyQueryRequest;
import com.greenorange.promotion.model.dto.promoCodeApply.PromoCodeApplyUpdateRequest;
import com.greenorange.promotion.model.entity.PromoCodeApply;
import com.greenorange.promotion.model.vo.promoCodeApply.PromoCodeApplyVO;
import com.greenorange.promotion.service.common.CommonService;
import com.greenorange.promotion.service.project.PromoCodeApplyService;
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("promoCodeApply")
@Slf4j
@Tag(name = "推广码申请记录管理")
public class PromoCodeApplyController {
@Resource
private PromoCodeApplyService promoCodeApplyService;
@Resource
private CommonService commonService;
/**
* web端管理员添加推广码申请记录
* @param promoCodeApplyAddRequest 推广码申请记录添加请求体
* @return 是否添加成功
*/
@PostMapping("add")
@Operation(summary = "web端管理员添加推广码申请记录", description = "参数推广码申请记录添加请求体权限管理员方法名addPromoCodeApply")
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
@SysLog(title = "推广码申请记录管理", content = "web端管理员添加推广码申请记录")
public BaseResponse<Boolean> addPromoCodeApply(@Valid @RequestBody PromoCodeApplyAddRequest promoCodeApplyAddRequest) {
PromoCodeApply promoCodeApply = commonService.copyProperties(promoCodeApplyAddRequest, PromoCodeApply.class);
promoCodeApplyService.save(promoCodeApply);
return ResultUtils.success(true);
}
/**
* web端管理员根据id修改推广码申请记录信息
* @param promoCodeApplyUpdateRequest 推广码申请记录更新请求体
* @return 是否更新成功
*/
@PostMapping("update")
@Operation(summary = "web端管理员根据id修改推广码申请记录", description = "参数推广码申请记录更新请求体权限管理员方法名updatePromoCodeApply")
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
@SysLog(title = "推广码申请记录管理", content = "web端管理员根据id修改推广码申请记录信息")
public BaseResponse<Boolean> updatePromoCodeApply(@Valid @RequestBody PromoCodeApplyUpdateRequest promoCodeApplyUpdateRequest) {
PromoCodeApply promoCodeApply = commonService.copyProperties(promoCodeApplyUpdateRequest, PromoCodeApply.class);
promoCodeApplyService.updateById(promoCodeApply);
return ResultUtils.success(true);
}
/**
* web端管理员根据id删除推广码申请记录
* @param commonRequest 推广码申请记录删除请求体
* @return 是否删除成功
*/
@PostMapping("delete")
@Operation(summary = "web端管理员根据id删除推广码申请记录", description = "参数推广码申请记录删除请求体权限管理员方法名delPromoCodeApply")
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
@SysLog(title = "推广码申请记录管理", content = "web端管理员根据id删除推广码申请记录")
public BaseResponse<Boolean> delPromoCodeApply(@Valid @RequestBody CommonRequest commonRequest) {
Long id = commonRequest.getId();
promoCodeApplyService.removeById(id);
return ResultUtils.success(true);
}
/**
* web端管理员批量删除推广码申请记录
* @param commonBatchRequest 推广码申请记录批量删除请求体
* @return 是否删除成功
*/
@PostMapping("delBatch")
@Operation(summary = "web端管理员批量删除推广码申请记录", description = "参数推广码申请记录批量删除请求体权限管理员方法名delBatchPromoCodeApply")
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
@SysLog(title = "推广码申请记录管理", content = "web端管理员批量删除推广码申请记录")
public BaseResponse<Boolean> delBatchPromoCodeApply(@Valid @RequestBody CommonBatchRequest commonBatchRequest) {
List<Long> ids = commonBatchRequest.getIds();
promoCodeApplyService.removeByIds(ids);
return ResultUtils.success(true);
}
/**
* web端管理员根据id查询推广码申请记录
* @param commonRequest 推广码申请记录查询请求体
* @return 推广码申请记录信息
*/
@PostMapping("queryById")
@Operation(summary = "web端管理员根据id查询推广码申请记录", description = "参数推广码申请记录查询请求体权限管理员方法名queryPromoCodeApplyById")
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
@SysLog(title = "推广码申请记录管理", content = "web端管理员根据id查询推广码申请记录")
public BaseResponse<PromoCodeApplyVO> queryPromoCodeApplyById(@Valid @RequestBody CommonRequest commonRequest) {
Long id = commonRequest.getId();
PromoCodeApply promoCodeApply = promoCodeApplyService.getById(id);
ThrowUtils.throwIf(promoCodeApply == null, ErrorCode.OPERATION_ERROR, "当前推广码申请记录不存在");
PromoCodeApplyVO promoCodeApplyVO = commonService.copyProperties(promoCodeApply, PromoCodeApplyVO.class);
return ResultUtils.success(promoCodeApplyVO);
}
// /**
// * Web端管理员分页查询推广码申请记录
// * @param promoCodeApplyQueryRequest 推广码申请记录查询请求体
// * @return 推广码申请记录列表
// */
// @PostMapping("page")
// @Operation(summary = "Web端管理员分页查询推广码申请记录", description = "参数推广码申请记录查询请求体权限管理员方法名listPromoCodeApplyByPage")
// @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
// @SysLog(title = "推广码申请记录管理", content = "Web端管理员分页查询推广码申请记录")
// public BaseResponse<Page<PromoCodeApplyVO>> listPromoCodeApplyByPage(@Valid @RequestBody PromoCodeApplyQueryRequest promoCodeApplyQueryRequest) {
// long current = promoCodeApplyQueryRequest.getCurrent();
// long pageSize = promoCodeApplyQueryRequest.getPageSize();
// QueryWrapper<PromoCodeApply> queryWrapper = promoCodeApplyService.getQueryWrapper(promoCodeApplyQueryRequest);
// Page<PromoCodeApply> page = promoCodeApplyService.page(new Page<>(current, pageSize), queryWrapper);
// List<PromoCodeApply> promoCodeApplyList = page.getRecords();
// List<PromoCodeApplyVO> promoCodeApplyVOList = commonService.convertList(promoCodeApplyList, PromoCodeApplyVO.class);
// Page<PromoCodeApplyVO> voPage = new Page<>(current, pageSize);
// voPage.setRecords(promoCodeApplyVOList);
// 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.PromoCodeApply;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author 35880
* @description 针对表promo_code_apply(推广码申请记录表)的数据库操作Mapper
* @createDate 2025-05-10 19:53:05
* @Entity com.greenorange.promotion.model.entity.PromoCodeApply
*/
public interface PromoCodeApplyMapper extends BaseMapper<PromoCodeApply> {
}

View File

@ -0,0 +1,80 @@
package com.greenorange.promotion.model.dto.promoCodeApply;
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 = {
"salespersonName",
"salespersonPhone",
"promoCodeInfoKey",
"promoCodeLink",
"projectName",
"projectImage",
"userId",
})
public class PromoCodeApplyAddRequest implements Serializable {
/**
* 业务员姓名
*/
@NotBlank(message = "业务员姓名不能为空")
@Schema(description = "业务员姓名", example = "chenxinzhi")
private String salespersonName;
/**
* 业务员手机号
*/
@NotBlank(message = "业务员手机号不能为空")
@Schema(description = "业务员手机号", example = "15888610253")
private String salespersonPhone;
/**
* 绑定的推广码信息key
*/
@NotBlank(message = "绑定的推广码信息key不能为空")
@Schema(description = "绑定的推广码信息key", example = "ykxy227")
private String promoCodeInfoKey;
/**
* 绑定的推广码链接
*/
@NotBlank(message = "绑定的推广码链接不能为空")
@Schema(description = "绑定的推广码链接", example = "mp://y04CZgGkCBmIaZd")
private String promoCodeLink;
/**
* 绑定的项目名称
*/
@NotBlank(message = "绑定的项目名称不能为空")
@Schema(description = "绑定的项目名称", example = "美团省钱包")
private String projectName;
/**
* 绑定的项目图片URL
*/
@NotBlank(message = "绑定的项目图片URL不能为空")
@Schema(description = "绑定的项目图片URL", example = "http://xxx.png")
private String projectImage;
/**
* 用户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,80 @@
package com.greenorange.promotion.model.dto.promoCodeApply;
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 PromoCodeApplyQueryRequest 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 = "chenxinzhi")
private String salespersonName;
/**
* 业务员手机号
*/
@NotBlank(message = "业务员手机号不能为空")
@Schema(description = "业务员手机号", example = "15888610253")
private String salespersonPhone;
/**
* 绑定的推广码信息key
*/
@NotBlank(message = "绑定的推广码信息key不能为空")
@Schema(description = "绑定的推广码信息key", example = "ykxy227")
private String promoCodeInfoKey;
/**
* 绑定的推广码链接
*/
@NotBlank(message = "绑定的推广码链接不能为空")
@Schema(description = "绑定的推广码链接", example = "mp://y04CZgGkCBmIaZd")
private String promoCodeLink;
/**
* 绑定的项目名称
*/
@NotBlank(message = "绑定的项目名称不能为空")
@Schema(description = "绑定的项目名称", example = "美团省钱包")
private String projectName;
/**
* 绑定的项目图片URL
*/
@NotBlank(message = "绑定的项目图片URL不能为空")
@Schema(description = "绑定的项目图片URL", example = "http://xxx.png")
private String projectImage;
/**
* 用户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,87 @@
package com.greenorange.promotion.model.dto.promoCodeApply;
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",
"salespersonName",
"salespersonPhone",
"promoCodeInfoKey",
"promoCodeLink",
"projectName",
"projectImage",
"userId",
})
public class PromoCodeApplyUpdateRequest implements Serializable {
/**
* 推广码申请ID
*/
@Min(value = 1L, message = "推广码申请ID ID不能小于1")
@Schema(description = "推广码申请ID", example = "1")
private Long id;
/**
* 业务员姓名
*/
@NotBlank(message = "业务员姓名不能为空")
@Schema(description = "业务员姓名", example = "chenxinzhi")
private String salespersonName;
/**
* 业务员手机号
*/
@NotBlank(message = "业务员手机号不能为空")
@Schema(description = "业务员手机号", example = "15888610253")
private String salespersonPhone;
/**
* 绑定的推广码信息key
*/
@NotBlank(message = "绑定的推广码信息key不能为空")
@Schema(description = "绑定的推广码信息key", example = "ykxy227")
private String promoCodeInfoKey;
/**
* 绑定的推广码链接
*/
@NotBlank(message = "绑定的推广码链接不能为空")
@Schema(description = "绑定的推广码链接", example = "mp://y04CZgGkCBmIaZd")
private String promoCodeLink;
/**
* 绑定的项目名称
*/
@NotBlank(message = "绑定的项目名称不能为空")
@Schema(description = "绑定的项目名称", example = "美团省钱包")
private String projectName;
/**
* 绑定的项目图片URL
*/
@NotBlank(message = "绑定的项目图片URL不能为空")
@Schema(description = "绑定的项目图片URL", example = "http://xxx.png")
private String projectImage;
/**
* 用户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,77 @@
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 promo_code_apply
*/
@TableName(value ="promo_code_apply")
@Data
public class PromoCodeApply implements Serializable {
/**
* 推广码申请ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 业务员姓名
*/
private String salespersonName;
/**
* 业务员手机号
*/
private String salespersonPhone;
/**
* 绑定的推广码信息key
*/
private String promoCodeInfoKey;
/**
* 绑定的推广码链接
*/
private String promoCodeLink;
/**
* 绑定的项目名称
*/
private String projectName;
/**
* 绑定的项目图片URL
*/
private String projectImage;
/**
* 用户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,68 @@
package com.greenorange.promotion.model.vo.promoCodeApply;
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 PromoCodeApplyVO implements Serializable {
/**
* 推广码申请记录ID
*/
@Schema(description = "推广码申请记录ID", example = "1")
private Long id;
/**
* 业务员姓名
*/
@Schema(description = "业务员姓名", example = "chenxinzhi")
private String salespersonName;
/**
* 业务员手机号
*/
@Schema(description = "业务员手机号", example = "15888610253")
private String salespersonPhone;
/**
* 绑定的推广码信息key
*/
@Schema(description = "绑定的推广码信息key", example = "ykxy227")
private String promoCodeInfoKey;
/**
* 绑定的推广码链接
*/
@Schema(description = "绑定的推广码链接", example = "mp://y04CZgGkCBmIaZd")
private String promoCodeLink;
/**
* 绑定的项目名称
*/
@Schema(description = "绑定的项目名称", example = "美团省钱包")
private String projectName;
/**
* 绑定的项目图片URL
*/
@Schema(description = "绑定的项目图片URL", example = "http://xxx.png")
private String projectImage;
/**
* 用户ID
*/
@Schema(description = "用户ID", example = "1")
private Long userId;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,13 @@
package com.greenorange.promotion.service.project;
import com.greenorange.promotion.model.entity.PromoCodeApply;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author 35880
* @description 针对表promo_code_apply(推广码申请记录表)的数据库操作Service
* @createDate 2025-05-10 19:53:05
*/
public interface PromoCodeApplyService extends IService<PromoCodeApply> {
}

View File

@ -0,0 +1,22 @@
package com.greenorange.promotion.service.project.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.greenorange.promotion.model.entity.PromoCodeApply;
import com.greenorange.promotion.service.project.PromoCodeApplyService;
import com.greenorange.promotion.mapper.PromoCodeApplyMapper;
import org.springframework.stereotype.Service;
/**
* @author 35880
* @description 针对表promo_code_apply(推广码申请记录表)的数据库操作Service实现
* @createDate 2025-05-10 19:53:05
*/
@Service
public class PromoCodeApplyServiceImpl extends ServiceImpl<PromoCodeApplyMapper, PromoCodeApply>
implements PromoCodeApplyService{
}

View File

@ -0,0 +1,30 @@
<?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.PromoCodeApplyMapper">
<resultMap id="BaseResultMap" type="com.greenorange.promotion.model.entity.PromoCodeApply">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="salespersonName" column="salespersonName" jdbcType="VARCHAR"/>
<result property="salespersonPhone" column="salespersonPhone" jdbcType="VARCHAR"/>
<result property="promoCodeInfoKey" column="promoCodeInfoKey" jdbcType="VARCHAR"/>
<result property="promoCodeLink" column="promoCodeLink" jdbcType="VARCHAR"/>
<result property="projectName" column="projectName" jdbcType="VARCHAR"/>
<result property="projectImage" column="projectImage" jdbcType="VARCHAR"/>
<result property="maxProjectPrice" column="maxProjectPrice" jdbcType="DECIMAL"/>
<result property="minProjectPrice" column="minProjectPrice" 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,salespersonName,salespersonPhone,
promoCodeInfoKey,promoCodeLink,projectName,
projectImage,maxProjectPrice,minProjectPrice,
userId,isDelete,createTime,
updateTime
</sql>
</mapper>