From e445652b1c6b78ce601d3816b3d75c9b9e0df198 Mon Sep 17 00:00:00 2001
From: leomon <2233021400@qq.com>
Date: Thu, 05 Jun 2025 01:57:04 +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