From a0c8311c147a29b22bfe622f67c2d7f40838ff3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Tue, 23 Jul 2024 01:53:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EMpAd=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/controller/MpAdController.java | 115 ++++++++++++++++++ .../java/com/gxwebsoft/cms/entity/MpAd.java | 76 ++++++++++++ .../com/gxwebsoft/cms/mapper/MpAdMapper.java | 37 ++++++ .../gxwebsoft/cms/mapper/xml/MpAdMapper.xml | 75 ++++++++++++ .../com/gxwebsoft/cms/param/MpAdParam.java | 71 +++++++++++ .../gxwebsoft/cms/service/MpAdService.java | 42 +++++++ .../cms/service/impl/MpAdServiceImpl.java | 47 +++++++ .../com/gxwebsoft/generator/CmsGenerator.java | 3 +- 8 files changed, 465 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/gxwebsoft/cms/controller/MpAdController.java create mode 100644 src/main/java/com/gxwebsoft/cms/entity/MpAd.java create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/MpAdMapper.java create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/MpAdMapper.xml create mode 100644 src/main/java/com/gxwebsoft/cms/param/MpAdParam.java create mode 100644 src/main/java/com/gxwebsoft/cms/service/MpAdService.java create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/MpAdServiceImpl.java diff --git a/src/main/java/com/gxwebsoft/cms/controller/MpAdController.java b/src/main/java/com/gxwebsoft/cms/controller/MpAdController.java new file mode 100644 index 0000000..8f3fd02 --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/controller/MpAdController.java @@ -0,0 +1,115 @@ +package com.gxwebsoft.cms.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.cms.service.MpAdService; +import com.gxwebsoft.cms.entity.MpAd; +import com.gxwebsoft.cms.param.MpAdParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 小程序广告位控制器 + * + * @author 科技小王子 + * @since 2024-07-23 01:53:01 + */ +@Api(tags = "小程序广告位管理") +@RestController +@RequestMapping("/api/cms/mp-ad") +public class MpAdController extends BaseController { + @Resource + private MpAdService mpAdService; + + @ApiOperation("分页查询小程序广告位") + @GetMapping("/page") + public ApiResult> page(MpAdParam param) { + // 使用关联查询 + return success(mpAdService.pageRel(param)); + } + + @ApiOperation("查询全部小程序广告位") + @GetMapping() + public ApiResult> list(MpAdParam param) { + // 使用关联查询 + return success(mpAdService.listRel(param)); + } + + @PreAuthorize("hasAuthority('cms:mpAd:list')") + @ApiOperation("根据id查询小程序广告位") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(mpAdService.getByIdRel(id)); + } + + @ApiOperation("添加小程序广告位") + @PostMapping() + public ApiResult save(@RequestBody MpAd mpAd) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + mpAd.setUserId(loginUser.getUserId()); + } + if (mpAdService.save(mpAd)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改小程序广告位") + @PutMapping() + public ApiResult update(@RequestBody MpAd mpAd) { + if (mpAdService.updateById(mpAd)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除小程序广告位") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (mpAdService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加小程序广告位") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (mpAdService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改小程序广告位") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(mpAdService, "ad_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除小程序广告位") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (mpAdService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/cms/entity/MpAd.java b/src/main/java/com/gxwebsoft/cms/entity/MpAd.java new file mode 100644 index 0000000..2da1963 --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/entity/MpAd.java @@ -0,0 +1,76 @@ +package com.gxwebsoft.cms.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableLogic; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 小程序广告位 + * + * @author 科技小王子 + * @since 2024-07-23 01:53:01 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "MpAd对象", description = "小程序广告位") +@TableName("cms_mp_ad") +public class MpAd implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "ID") + @TableId(value = "ad_id", type = IdType.AUTO) + private Integer adId; + + @ApiModelProperty(value = "页面ID") + private Integer pageId; + + @ApiModelProperty(value = "广告类型") + private String adType; + + @ApiModelProperty(value = "广告位名称") + private String name; + + @ApiModelProperty(value = "宽") + private String width; + + @ApiModelProperty(value = "高") + private String height; + + @ApiModelProperty(value = "广告图片") + private String images; + + @ApiModelProperty(value = "路由/链接地址") + private String path; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + +} diff --git a/src/main/java/com/gxwebsoft/cms/mapper/MpAdMapper.java b/src/main/java/com/gxwebsoft/cms/mapper/MpAdMapper.java new file mode 100644 index 0000000..c917799 --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/mapper/MpAdMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.cms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.cms.entity.MpAd; +import com.gxwebsoft.cms.param.MpAdParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 小程序广告位Mapper + * + * @author 科技小王子 + * @since 2024-07-23 01:53:01 + */ +public interface MpAdMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") MpAdParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") MpAdParam param); + +} diff --git a/src/main/java/com/gxwebsoft/cms/mapper/xml/MpAdMapper.xml b/src/main/java/com/gxwebsoft/cms/mapper/xml/MpAdMapper.xml new file mode 100644 index 0000000..6225d74 --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/mapper/xml/MpAdMapper.xml @@ -0,0 +1,75 @@ + + + + + + + SELECT a.* + FROM cms_mp_ad a + + + AND a.ad_id = #{param.adId} + + + AND a.page_id = #{param.pageId} + + + AND a.ad_type LIKE CONCAT('%', #{param.adType}, '%') + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.width LIKE CONCAT('%', #{param.width}, '%') + + + AND a.height LIKE CONCAT('%', #{param.height}, '%') + + + AND a.images LIKE CONCAT('%', #{param.images}, '%') + + + AND a.path LIKE CONCAT('%', #{param.path}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/cms/param/MpAdParam.java b/src/main/java/com/gxwebsoft/cms/param/MpAdParam.java new file mode 100644 index 0000000..32fed10 --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/param/MpAdParam.java @@ -0,0 +1,71 @@ +package com.gxwebsoft.cms.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 小程序广告位查询参数 + * + * @author 科技小王子 + * @since 2024-07-23 01:53:01 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "MpAdParam对象", description = "小程序广告位查询参数") +public class MpAdParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "ID") + @QueryField(type = QueryType.EQ) + private Integer adId; + + @ApiModelProperty(value = "页面ID") + @QueryField(type = QueryType.EQ) + private Integer pageId; + + @ApiModelProperty(value = "广告类型") + private String adType; + + @ApiModelProperty(value = "广告位名称") + private String name; + + @ApiModelProperty(value = "宽") + private String width; + + @ApiModelProperty(value = "高") + private String height; + + @ApiModelProperty(value = "广告图片") + private String images; + + @ApiModelProperty(value = "路由/链接地址") + private String path; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} diff --git a/src/main/java/com/gxwebsoft/cms/service/MpAdService.java b/src/main/java/com/gxwebsoft/cms/service/MpAdService.java new file mode 100644 index 0000000..b53800c --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/service/MpAdService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.cms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.cms.entity.MpAd; +import com.gxwebsoft.cms.param.MpAdParam; + +import java.util.List; + +/** + * 小程序广告位Service + * + * @author 科技小王子 + * @since 2024-07-23 01:53:01 + */ +public interface MpAdService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(MpAdParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(MpAdParam param); + + /** + * 根据id查询 + * + * @param adId ID + * @return MpAd + */ + MpAd getByIdRel(Integer adId); + +} diff --git a/src/main/java/com/gxwebsoft/cms/service/impl/MpAdServiceImpl.java b/src/main/java/com/gxwebsoft/cms/service/impl/MpAdServiceImpl.java new file mode 100644 index 0000000..c34854c --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/service/impl/MpAdServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.cms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.cms.mapper.MpAdMapper; +import com.gxwebsoft.cms.service.MpAdService; +import com.gxwebsoft.cms.entity.MpAd; +import com.gxwebsoft.cms.param.MpAdParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 小程序广告位Service实现 + * + * @author 科技小王子 + * @since 2024-07-23 01:53:01 + */ +@Service +public class MpAdServiceImpl extends ServiceImpl implements MpAdService { + + @Override + public PageResult pageRel(MpAdParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(MpAdParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public MpAd getByIdRel(Integer adId) { + MpAdParam param = new MpAdParam(); + param.setAdId(adId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/test/java/com/gxwebsoft/generator/CmsGenerator.java b/src/test/java/com/gxwebsoft/generator/CmsGenerator.java index 6e0120a..5cec845 100644 --- a/src/test/java/com/gxwebsoft/generator/CmsGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/CmsGenerator.java @@ -68,8 +68,9 @@ public class CmsGenerator { // "cms_domain", // "cms_mp_menu" // "cms_mp_pages", - "cms_mp" +// "cms_mp" // "cms_mp_field" + "cms_mp_ad" }; // 需要去除的表前缀