From 9fb9d51ed1abcda3dc8de6516c5d8257fb5c0f51 Mon Sep 17 00:00:00 2001 From: chen-xin-zhi <3588068430@qq.com> Date: Wed, 7 May 2025 04:14:36 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../promoCode/PromoCodeController.java | 148 ++++++++++++++++++ .../promotion/mapper/PromoCodeMapper.java | 18 +++ .../dto/promoCode/PromoCodeAddRequest.java | 55 +++++++ .../dto/promoCode/PromoCodeQueryRequest.java | 58 +++++++ .../dto/promoCode/PromoCodeUpdateRequest.java | 62 ++++++++ .../promotion/model/entity/PromoCode.java | 61 ++++++++ .../model/vo/promoCode/PromoCodeVO.java | 50 ++++++ .../service/project/PromoCodeService.java | 13 ++ .../project/impl/PromoCodeServiceImpl.java | 22 +++ src/main/resources/mapper/PromoCodeMapper.xml | 23 +++ 10 files changed, 510 insertions(+) create mode 100644 src/main/java/com/greenorange/promotion/controller/promoCode/PromoCodeController.java create mode 100644 src/main/java/com/greenorange/promotion/mapper/PromoCodeMapper.java create mode 100644 src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeAddRequest.java create mode 100644 src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeQueryRequest.java create mode 100644 src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeUpdateRequest.java create mode 100644 src/main/java/com/greenorange/promotion/model/entity/PromoCode.java create mode 100644 src/main/java/com/greenorange/promotion/model/vo/promoCode/PromoCodeVO.java create mode 100644 src/main/java/com/greenorange/promotion/service/project/PromoCodeService.java create mode 100644 src/main/java/com/greenorange/promotion/service/project/impl/PromoCodeServiceImpl.java create mode 100644 src/main/resources/mapper/PromoCodeMapper.xml diff --git a/src/main/java/com/greenorange/promotion/controller/promoCode/PromoCodeController.java b/src/main/java/com/greenorange/promotion/controller/promoCode/PromoCodeController.java new file mode 100644 index 0000000..a984771 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/controller/promoCode/PromoCodeController.java @@ -0,0 +1,148 @@ +package com.greenorange.promotion.controller.promoCode; + +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.promoCode.PromoCodeAddRequest; +import com.greenorange.promotion.model.dto.promoCode.PromoCodeQueryRequest; +import com.greenorange.promotion.model.dto.promoCode.PromoCodeUpdateRequest; +import com.greenorange.promotion.model.entity.PromoCode; +import com.greenorange.promotion.model.vo.promoCode.PromoCodeVO; +import com.greenorange.promotion.service.common.CommonService; +import com.greenorange.promotion.service.project.PromoCodeService; +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("promoCode") +@Slf4j +@Tag(name = "推广码管理") +public class PromoCodeController { + + @Resource + private PromoCodeService promoCodeService; + + @Resource + private CommonService commonService; + + /** + * web端管理员添加推广码 + * @param promoCodeAddRequest 推广码添加请求体 + * @return 是否添加成功 + */ + @PostMapping("add") + @Operation(summary = "web端管理员添加推广码", description = "参数:推广码添加请求体,权限:管理员,方法名:addPromoCode") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "推广码管理", content = "web端管理员添加推广码") + public BaseResponse addPromoCode(@Valid @RequestBody PromoCodeAddRequest promoCodeAddRequest) { + PromoCode promoCode = commonService.copyProperties(promoCodeAddRequest, PromoCode.class); + promoCodeService.save(promoCode); + return ResultUtils.success(true); + } + + /** + * web端管理员根据id修改推广码信息 + * @param promoCodeUpdateRequest 推广码更新请求体 + * @return 是否更新成功 + */ + @PostMapping("update") + @Operation(summary = "web端管理员更新推广码", description = "参数:推广码更新请求体,权限:管理员,方法名:updatePromoCode") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "推广码管理", content = "web端管理员根据id修改推广码信息") + public BaseResponse updatePromoCode(@Valid @RequestBody PromoCodeUpdateRequest promoCodeUpdateRequest) { + PromoCode promoCode = commonService.copyProperties(promoCodeUpdateRequest, PromoCode.class); + promoCodeService.updateById(promoCode); + return ResultUtils.success(true); + } + + /** + * web端管理员根据id删除推广码 + * @param commonRequest 推广码删除请求体 + * @return 是否删除成功 + */ + @PostMapping("delete") + @Operation(summary = "web端管理员根据id删除推广码", description = "参数:推广码删除请求体,权限:管理员,方法名:delPromoCode") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "推广码管理", content = "web端管理员根据id删除推广码") + public BaseResponse delPromoCode(@Valid @RequestBody CommonRequest commonRequest) { + Long id = commonRequest.getId(); + promoCodeService.removeById(id); + return ResultUtils.success(true); + } + + /** + * web端管理员批量删除推广码 + * @param commonBatchRequest 推广码批量删除请求体 + * @return 是否删除成功 + */ + @PostMapping("delBatch") + @Operation(summary = "web端管理员批量删除推广码", description = "参数:推广码批量删除请求体,权限:管理员,方法名:delBatchPromoCode") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "推广码管理", content = "web端管理员批量删除推广码") + public BaseResponse delBatchPromoCode(@Valid @RequestBody CommonBatchRequest commonBatchRequest) { + List ids = commonBatchRequest.getIds(); + promoCodeService.removeByIds(ids); + return ResultUtils.success(true); + } + + /** + * web端管理员根据id查询推广码 + * @param commonRequest 推广码查询请求体 + * @return 推广码信息 + */ + @PostMapping("queryById") + @Operation(summary = "web端管理员根据id查询推广码", description = "参数:推广码查询请求体,权限:管理员,方法名:queryPromoCodeById") + @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) + @SysLog(title = "推广码管理", content = "web端管理员根据id查询推广码") + public BaseResponse queryPromoCodeById(@Valid @RequestBody CommonRequest commonRequest) { + Long id = commonRequest.getId(); + PromoCode promoCode = promoCodeService.getById(id); + ThrowUtils.throwIf(promoCode == null, ErrorCode.OPERATION_ERROR, "当前推广码不存在"); + PromoCodeVO promoCodeVO = commonService.copyProperties(promoCode, PromoCodeVO.class); + return ResultUtils.success(promoCodeVO); + } + +// /** +// * Web端管理员分页查询推广码 +// * @param promoCodeQueryRequest 推广码查询请求体 +// * @return 推广码列表 +// */ +// @PostMapping("page") +// @Operation(summary = "Web端管理员分页查询推广码", description = "参数:推广码查询请求体,权限:管理员,方法名:listPromoCodeByPage") +// @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE) +// @SysLog(title = "推广码管理", content = "Web端管理员分页查询推广码") +// public BaseResponse> listPromoCodeByPage(@Valid @RequestBody PromoCodeQueryRequest promoCodeQueryRequest) { +// long current = promoCodeQueryRequest.getCurrent(); +// long pageSize = promoCodeQueryRequest.getPageSize(); +// QueryWrapper queryWrapper = promoCodeService.getQueryWrapper(promoCodeQueryRequest); +// Page page = promoCodeService.page(new Page<>(current, pageSize), queryWrapper); +// List promoCodeList = page.getRecords(); +// List promoCodeVOList = commonService.convertList(promoCodeList, PromoCodeVO.class); +// Page voPage = new Page<>(current, pageSize); +// voPage.setRecords(promoCodeVOList); +// 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/PromoCodeMapper.java b/src/main/java/com/greenorange/promotion/mapper/PromoCodeMapper.java new file mode 100644 index 0000000..70d7b32 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/mapper/PromoCodeMapper.java @@ -0,0 +1,18 @@ +package com.greenorange.promotion.mapper; + +import com.greenorange.promotion.model.entity.PromoCode; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author 35880 +* @description 针对表【promo_code(推广码信息表)】的数据库操作Mapper +* @createDate 2025-05-07 04:02:32 +* @Entity com.greenorange.promotion.model.entity.PromoCode +*/ +public interface PromoCodeMapper extends BaseMapper { + +} + + + + diff --git a/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeAddRequest.java b/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeAddRequest.java new file mode 100644 index 0000000..f67143d --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeAddRequest.java @@ -0,0 +1,55 @@ +package com.greenorange.promotion.model.dto.promoCode; + +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; + +/** + * 推广码添加请求体 + */ +@Data +@Schema(description = "推广码添加请求体", requiredProperties = { + "promoCodeInfoKey", + "promoCodeLink", + "projectId", + "promoCodeStatus", +}) +public class PromoCodeAddRequest implements Serializable { + + /** + * 推广码信息key + */ + @NotBlank(message = "推广码信息key不能为空") + @Schema(description = "推广码信息key", example = "") + private String promoCodeInfoKey; + + /** + * 推广码链接 + */ + @NotBlank(message = "推广码链接不能为空") + @Schema(description = "推广码链接", example = "") + private String promoCodeLink; + + /** + * 项目ID + */ + @Min(value = 1L, message = "项目ID ID不能小于1") + @Schema(description = "项目ID", example = "") + private Long projectId; + + /** + * 推广码状态 + */ + @NotBlank(message = "推广码状态不能为空") + @Schema(description = "推广码状态", example = "") + private String promoCodeStatus; + + + @Serial + private static final long serialVersionUID = 1L; +} + diff --git a/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeQueryRequest.java b/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeQueryRequest.java new file mode 100644 index 0000000..89ecd2a --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeQueryRequest.java @@ -0,0 +1,58 @@ +package com.greenorange.promotion.model.dto.promoCode; + +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 com.greenorange.promotion.common.PageRequest; + +/** + * 推广码查询请求体,继承自分页请求 PageRequest + */ +@Data +@Schema(description = "推广码查询请求体", requiredProperties = {"current", "pageSize"}) +public class PromoCodeQueryRequest extends PageRequest implements Serializable { + + /** + * 推广码ID + */ + @Min(value = 1L, message = "推广码ID ID不能小于1") + @Schema(description = "推广码ID", example = "") + private Long id; + + /** + * 推广码信息key + */ + @NotBlank(message = "推广码信息key不能为空") + @Schema(description = "推广码信息key", example = "") + private String promoCodeInfoKey; + + /** + * 推广码链接 + */ + @NotBlank(message = "推广码链接不能为空") + @Schema(description = "推广码链接", example = "") + private String promoCodeLink; + + /** + * 项目ID + */ + @Min(value = 1L, message = "项目ID ID不能小于1") + @Schema(description = "项目ID", example = "") + private Long projectId; + + /** + * 推广码状态 + */ + @NotBlank(message = "推广码状态不能为空") + @Schema(description = "推广码状态", example = "") + private String promoCodeStatus; + + + @Serial + private static final long serialVersionUID = 1L; +} + diff --git a/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeUpdateRequest.java b/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeUpdateRequest.java new file mode 100644 index 0000000..bb8d051 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/dto/promoCode/PromoCodeUpdateRequest.java @@ -0,0 +1,62 @@ +package com.greenorange.promotion.model.dto.promoCode; + +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; + +/** + * 推广码更新请求体 + */ +@Data +@Schema(description = "推广码更新请求体", requiredProperties = { + "id", + "promoCodeInfoKey", + "promoCodeLink", + "projectId", + "promoCodeStatus", +}) +public class PromoCodeUpdateRequest implements Serializable { + + /** + * 推广码ID + */ + @Min(value = 1L, message = "推广码ID ID不能小于1") + @Schema(description = "推广码ID", example = "") + private Long id; + + /** + * 推广码信息key + */ + @NotBlank(message = "推广码信息key不能为空") + @Schema(description = "推广码信息key", example = "") + private String promoCodeInfoKey; + + /** + * 推广码链接 + */ + @NotBlank(message = "推广码链接不能为空") + @Schema(description = "推广码链接", example = "") + private String promoCodeLink; + + /** + * 项目ID + */ + @Min(value = 1L, message = "项目ID ID不能小于1") + @Schema(description = "项目ID", example = "") + private Long projectId; + + /** + * 推广码状态 + */ + @NotBlank(message = "推广码状态不能为空") + @Schema(description = "推广码状态", example = "") + private String promoCodeStatus; + + + @Serial + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/greenorange/promotion/model/entity/PromoCode.java b/src/main/java/com/greenorange/promotion/model/entity/PromoCode.java new file mode 100644 index 0000000..c6b34ea --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/entity/PromoCode.java @@ -0,0 +1,61 @@ +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.util.Date; +import lombok.Data; + +/** + * 推广码信息表 + * @TableName promo_code + */ +@TableName(value ="promo_code") +@Data +public class PromoCode implements Serializable { + /** + * 推广码ID + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 推广码信息key + */ + private String promoCodeInfoKey; + + /** + * 推广码链接 + */ + private String promoCodeLink; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 推广码状态 + */ + private Object promoCodeStatus; + + /** + * 是否删除 + */ + 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/promoCode/PromoCodeVO.java b/src/main/java/com/greenorange/promotion/model/vo/promoCode/PromoCodeVO.java new file mode 100644 index 0000000..eda5f76 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/model/vo/promoCode/PromoCodeVO.java @@ -0,0 +1,50 @@ +package com.greenorange.promotion.model.vo.promoCode; + +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 PromoCodeVO implements Serializable { + + /** + * 推广码ID + */ + @Schema(description = "推广码ID", example = "1") + private Long id; + + /** + * 推广码信息key + */ + @Schema(description = "推广码信息key", example = "${field.example}") + private String promoCodeInfoKey; + + /** + * 推广码链接 + */ + @Schema(description = "推广码链接", example = "${field.example}") + private String promoCodeLink; + + /** + * 项目ID + */ + @Schema(description = "项目ID", example = "${field.example}") + private Long projectId; + + /** + * 推广码状态 + */ + @Schema(description = "推广码状态", example = "${field.example}") + private String promoCodeStatus; + + + @Serial + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/com/greenorange/promotion/service/project/PromoCodeService.java b/src/main/java/com/greenorange/promotion/service/project/PromoCodeService.java new file mode 100644 index 0000000..ac4cd35 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/service/project/PromoCodeService.java @@ -0,0 +1,13 @@ +package com.greenorange.promotion.service.project; + +import com.greenorange.promotion.model.entity.PromoCode; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author 35880 +* @description 针对表【promo_code(推广码信息表)】的数据库操作Service +* @createDate 2025-05-07 04:02:32 +*/ +public interface PromoCodeService extends IService { + +} diff --git a/src/main/java/com/greenorange/promotion/service/project/impl/PromoCodeServiceImpl.java b/src/main/java/com/greenorange/promotion/service/project/impl/PromoCodeServiceImpl.java new file mode 100644 index 0000000..42b2f25 --- /dev/null +++ b/src/main/java/com/greenorange/promotion/service/project/impl/PromoCodeServiceImpl.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.PromoCode; +import com.greenorange.promotion.service.project.PromoCodeService; +import com.greenorange.promotion.mapper.PromoCodeMapper; +import org.springframework.stereotype.Service; + +/** +* @author 35880 +* @description 针对表【promo_code(推广码信息表)】的数据库操作Service实现 +* @createDate 2025-05-07 04:02:32 +*/ +@Service +public class PromoCodeServiceImpl extends ServiceImpl + implements PromoCodeService{ + +} + + + + diff --git a/src/main/resources/mapper/PromoCodeMapper.xml b/src/main/resources/mapper/PromoCodeMapper.xml new file mode 100644 index 0000000..9202acc --- /dev/null +++ b/src/main/resources/mapper/PromoCodeMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + id,promoCodeInfoKey,promoCodeLink, + projectId,promoCodeStatus,isDelete, + createTime,updateTime + +