diff --git a/src/main/java/com/greenorange/promotion/controller/promoCodeApply/PromoCodeApplyController.java b/src/main/java/com/greenorange/promotion/controller/promoCodeApply/PromoCodeApplyController.java new file mode 100644 index 0000000..e67a98c --- /dev/null +++ b/src/main/java/com/greenorange/promotion/controller/promoCodeApply/PromoCodeApplyController.java @@ -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 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 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 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 delBatchPromoCodeApply(@Valid @RequestBody CommonBatchRequest commonBatchRequest) { + List 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 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> listPromoCodeApplyByPage(@Valid @RequestBody PromoCodeApplyQueryRequest promoCodeApplyQueryRequest) { +// long current = promoCodeApplyQueryRequest.getCurrent(); +// long pageSize = promoCodeApplyQueryRequest.getPageSize(); +// QueryWrapper queryWrapper = promoCodeApplyService.getQueryWrapper(promoCodeApplyQueryRequest); +// Page page = promoCodeApplyService.page(new Page<>(current, pageSize), queryWrapper); +// List promoCodeApplyList = page.getRecords(); +// List promoCodeApplyVOList = commonService.convertList(promoCodeApplyList, PromoCodeApplyVO.class); +// Page voPage = new Page<>(current, pageSize); +// voPage.setRecords(promoCodeApplyVOList); +// 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/PromoCodeApplyMapper.java b/src/main/java/com/greenorange/promotion/mapper/PromoCodeApplyMapper.java new file mode 100644 index 0000000..023bf3a --- /dev/null +++ b/src/main/java/com/greenorange/promotion/mapper/PromoCodeApplyMapper.java @@ -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 { + +} + + + + diff --git a/src/main/java/com/greenorange/promotion/model/dto/promoCodeApply/PromoCodeApplyAddRequest.java b/src/main/java/com/greenorange/promotion/model/dto/promoCodeApply/PromoCodeApplyAddRequest.java new file mode 100644 index 0000000..0f2261d --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/promoCodeApply/PromoCodeApplyAddRequest.java @@ -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; +} + diff --git a/src/main/java/com/greenorange/promotion/model/dto/promoCodeApply/PromoCodeApplyQueryRequest.java b/src/main/java/com/greenorange/promotion/model/dto/promoCodeApply/PromoCodeApplyQueryRequest.java new file mode 100644 index 0000000..4817266 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/promoCodeApply/PromoCodeApplyQueryRequest.java @@ -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; +} + diff --git a/src/main/java/com/greenorange/promotion/model/dto/promoCodeApply/PromoCodeApplyUpdateRequest.java b/src/main/java/com/greenorange/promotion/model/dto/promoCodeApply/PromoCodeApplyUpdateRequest.java new file mode 100644 index 0000000..0a01eff --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/promoCodeApply/PromoCodeApplyUpdateRequest.java @@ -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; +} \ No newline at end of file diff --git a/src/main/java/com/greenorange/promotion/model/entity/PromoCodeApply.java b/src/main/java/com/greenorange/promotion/model/entity/PromoCodeApply.java new file mode 100644 index 0000000..8be2825 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/entity/PromoCodeApply.java @@ -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; +} \ No newline at end of file diff --git a/src/main/java/com/greenorange/promotion/model/vo/promoCodeApply/PromoCodeApplyVO.java b/src/main/java/com/greenorange/promotion/model/vo/promoCodeApply/PromoCodeApplyVO.java new file mode 100644 index 0000000..86f550f --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/vo/promoCodeApply/PromoCodeApplyVO.java @@ -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; +} diff --git a/src/main/java/com/greenorange/promotion/service/project/PromoCodeApplyService.java b/src/main/java/com/greenorange/promotion/service/project/PromoCodeApplyService.java new file mode 100644 index 0000000..089b093 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/service/project/PromoCodeApplyService.java @@ -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 { + +} diff --git a/src/main/java/com/greenorange/promotion/service/project/impl/PromoCodeApplyServiceImpl.java b/src/main/java/com/greenorange/promotion/service/project/impl/PromoCodeApplyServiceImpl.java new file mode 100644 index 0000000..2fdc347 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/service/project/impl/PromoCodeApplyServiceImpl.java @@ -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 + implements PromoCodeApplyService{ + +} + + + + diff --git a/src/main/resources/mapper/PromoCodeApplyMapper.xml b/src/main/resources/mapper/PromoCodeApplyMapper.xml new file mode 100644 index 0000000..510ca85 --- /dev/null +++ b/src/main/resources/mapper/PromoCodeApplyMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + id,salespersonName,salespersonPhone, + promoCodeInfoKey,promoCodeLink,projectName, + projectImage,maxProjectPrice,minProjectPrice, + userId,isDelete,createTime, + updateTime + +