From 57b1a48ab07ad479600e1e1f5f9e661f6a9c9b6e Mon Sep 17 00:00:00 2001
From: leomon <2233021400@qq.com>
Date: Tue, 17 Jun 2025 16:00:42 +0800
Subject: [PATCH] 消息中心:添加广告模块
---
oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemAdvertiseServiceImpl.java | 81 +++++++++++++
oying-system/src/main/java/com/oying/modules/message/service/MessageSystemAdvertiseService.java | 60 ++++++++++
oying-system/src/main/java/com/oying/modules/message/domain/MessageSystemAdvertise.java | 61 ++++++++++
oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemAdvertiseMapper.java | 22 +++
oying-system/src/main/resources/mapper/message/MessageSystemAdvertiseMapper.xml | 29 ++++
oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemAdvertiseQueryCriteria.java | 18 +++
oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemAdvertiseController.java | 78 +++++++++++++
7 files changed, 349 insertions(+), 0 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystemAdvertise.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystemAdvertise.java
new file mode 100644
index 0000000..c01e7e4
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystemAdvertise.java
@@ -0,0 +1,61 @@
+package com.oying.modules.message.domain;
+
+import com.oying.base.BaseEntity;
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author leomon
+* @date 2025-06-05
+**/
+@Data
+@TableName("message_system_advertise")
+public class MessageSystemAdvertise extends BaseEntity implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键ID")
+ private Long id;
+
+ @ApiModelProperty(value = "广告标题")
+ private String title;
+
+ @ApiModelProperty(value = "广告内容")
+ private String content;
+
+ @ApiModelProperty(value = "广告图片链接")
+ private String imageUrl;
+
+ @ApiModelProperty(value = "广告跳转链接")
+ private String linkUrl;
+
+ @NotNull
+ @ApiModelProperty(value = "广告状态(0: 禁用;1: 启用)")
+ private Integer status;
+
+// @ApiModelProperty(value = "创建人")
+// private String createBy;
+//
+// @ApiModelProperty(value = "更新人")
+// private String updateBy;
+//
+// @NotNull
+// @ApiModelProperty(value = "创建时间")
+// private Timestamp createTime;
+//
+// @NotNull
+// @ApiModelProperty(value = "更新时间")
+// private Timestamp updateTime;
+
+ public void copy(MessageSystemAdvertise source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemAdvertiseQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemAdvertiseQueryCriteria.java
new file mode 100644
index 0000000..6fc9421
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemAdvertiseQueryCriteria.java
@@ -0,0 +1,18 @@
+package com.oying.modules.message.domain.dto;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author leomon
+* @date 2025-06-05
+**/
+@Data
+public class MessageSystemAdvertiseQueryCriteria{
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer page = 1;
+
+ @ApiModelProperty(value = "每页数据量", example = "10")
+ private Integer size = 10;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemAdvertiseMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemAdvertiseMapper.java
new file mode 100644
index 0000000..99c0539
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemAdvertiseMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MessageSystemAdvertise;
+import com.oying.modules.message.domain.dto.MessageSystemAdvertiseQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author leomon
+* @date 2025-06-05
+**/
+@Mapper
+public interface MessageSystemAdvertiseMapper extends BaseMapper<MessageSystemAdvertise> {
+
+ IPage<MessageSystemAdvertise> findAll(@Param("criteria") MessageSystemAdvertiseQueryCriteria criteria, Page<Object> page);
+
+ List<MessageSystemAdvertise> findAll(@Param("criteria") MessageSystemAdvertiseQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemAdvertiseController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemAdvertiseController.java
new file mode 100644
index 0000000..2734ce5
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemAdvertiseController.java
@@ -0,0 +1,78 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.domain.MessageSystemAdvertise;
+import com.oying.modules.message.service.MessageSystemAdvertiseService;
+import com.oying.modules.message.domain.dto.MessageSystemAdvertiseQueryCriteria;
+import com.oying.utils.R;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author leomon
+* @date 2025-06-05
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "广告")
+@RequestMapping("/api/messageSystemAdvertise")
+public class MessageSystemAdvertiseController {
+
+ private final MessageSystemAdvertiseService messageSystemAdvertiseService;
+
+
+ @GetMapping
+ @ApiOperation("页查询广告")
+ @PreAuthorize("@el.check('messageSystemAdvertise:list')")
+ public R<PageResult<MessageSystemAdvertise>> queryMessageSystemAdvertise(MessageSystemAdvertiseQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+// return new ResponseEntity<>(messageSystemAdvertiseService.queryAll(criteria,page),HttpStatus.OK);
+ return R.success(messageSystemAdvertiseService.queryAll(criteria,page));
+
+ }
+ //条查询广告
+ @GetMapping("/{id}")
+ @ApiOperation("条查询广告")
+ public R<MessageSystemAdvertise> getMessageSystemAdvertise(@PathVariable Integer id){
+ MessageSystemAdvertise messageSystemAdvertise = messageSystemAdvertiseService.getById(id);
+// return new ResponseEntity<>(messageSystemAdvertise,HttpStatus.OK);
+ return R.success(messageSystemAdvertise);
+ }
+
+// @PostMapping
+// @Log("新增广告")
+// @ApiOperation("新增广告")
+// @PreAuthorize("@el.check('messageSystemAdvertise:add')")
+// public ResponseEntity<Object> createMessageSystemAdvertise(@Validated @RequestBody MessageSystemAdvertise resources){
+// messageSystemAdvertiseService.create(resources);
+// return new ResponseEntity<>(HttpStatus.CREATED);
+// }
+
+// @PutMapping
+// @Log("修改广告")
+// @ApiOperation("修改广告")
+// @PreAuthorize("@el.check('messageSystemAdvertise:edit')")
+// public ResponseEntity<Object> updateMessageSystemAdvertise(@Validated @RequestBody MessageSystemAdvertise resources){
+// messageSystemAdvertiseService.update(resources);
+// return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+// }
+
+// @DeleteMapping
+// @Log("删除广告")
+// @ApiOperation("删除广告")
+// @PreAuthorize("@el.check('messageSystemAdvertise:del')")
+// public ResponseEntity<Object> deleteMessageSystemAdvertise(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+// messageSystemAdvertiseService.deleteAll(ids);
+// return new ResponseEntity<>(HttpStatus.OK);
+// }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemAdvertiseService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemAdvertiseService.java
new file mode 100644
index 0000000..2fde73e
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemAdvertiseService.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MessageSystemAdvertise;
+import com.oying.modules.message.domain.dto.MessageSystemAdvertiseQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author leomon
+* @date 2025-06-05
+**/
+public interface MessageSystemAdvertiseService extends IService<MessageSystemAdvertise> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<MessageSystemAdvertise> queryAll(MessageSystemAdvertiseQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<MessageSystemAdvertiseDto>
+ */
+ List<MessageSystemAdvertise> queryAll(MessageSystemAdvertiseQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(MessageSystemAdvertise resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(MessageSystemAdvertise resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<MessageSystemAdvertise> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemAdvertiseServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemAdvertiseServiceImpl.java
new file mode 100644
index 0000000..e298a07
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemAdvertiseServiceImpl.java
@@ -0,0 +1,81 @@
+package com.oying.modules.message.service.impl;
+
+import com.oying.modules.message.domain.MessageSystemAdvertise;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.service.MessageSystemAdvertiseService;
+import com.oying.modules.message.domain.dto.MessageSystemAdvertiseQueryCriteria;
+import com.oying.modules.message.mapper.MessageSystemAdvertiseMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author leomon
+* @date 2025-06-05
+**/
+@Service
+@RequiredArgsConstructor
+public class MessageSystemAdvertiseServiceImpl extends ServiceImpl<MessageSystemAdvertiseMapper, MessageSystemAdvertise> implements MessageSystemAdvertiseService {
+
+ private final MessageSystemAdvertiseMapper messageSystemAdvertiseMapper;
+
+ @Override
+ public PageResult<MessageSystemAdvertise> queryAll(MessageSystemAdvertiseQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(messageSystemAdvertiseMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<MessageSystemAdvertise> queryAll(MessageSystemAdvertiseQueryCriteria criteria){
+ return messageSystemAdvertiseMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(MessageSystemAdvertise resources) {
+ messageSystemAdvertiseMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(MessageSystemAdvertise resources) {
+ MessageSystemAdvertise messageSystemAdvertise = getById(resources.getId());
+ messageSystemAdvertise.copy(resources);
+ messageSystemAdvertiseMapper.updateById(messageSystemAdvertise);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ messageSystemAdvertiseMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<MessageSystemAdvertise> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (MessageSystemAdvertise messageSystemAdvertise : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("广告标题", messageSystemAdvertise.getTitle());
+ map.put("广告内容", messageSystemAdvertise.getContent());
+ map.put("广告图片链接", messageSystemAdvertise.getImageUrl());
+ map.put("广告跳转链接", messageSystemAdvertise.getLinkUrl());
+ map.put("广告状态(0: 禁用;1: 启用)", messageSystemAdvertise.getStatus());
+ map.put("创建人", messageSystemAdvertise.getCreateBy());
+ map.put("更新人", messageSystemAdvertise.getUpdateBy());
+ map.put("创建时间", messageSystemAdvertise.getCreateTime());
+ map.put("更新时间", messageSystemAdvertise.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/resources/mapper/message/MessageSystemAdvertiseMapper.xml b/oying-system/src/main/resources/mapper/message/MessageSystemAdvertiseMapper.xml
new file mode 100644
index 0000000..97ad099
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MessageSystemAdvertiseMapper.xml
@@ -0,0 +1,29 @@
+<?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.oying.modules.message.mapper.MessageSystemAdvertiseMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageSystemAdvertise">
+ <id column="id" property="id"/>
+ <result column="title" property="title"/>
+ <result column="content" property="content"/>
+ <result column="image_url" property="imageUrl"/>
+ <result column="link_url" property="linkUrl"/>
+ <result column="status" property="status"/>
+ <result column="create_by" property="createBy"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id, title, content, image_url, link_url, status, create_by, update_by, create_time, update_time
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from message_system_advertise
+ <where>
+ </where>
+ order by id desc
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3