leomon
2025-06-05 57b1a48ab07ad479600e1e1f5f9e661f6a9c9b6e
消息中心:添加广告模块
7 files added
349 ■■■■■ changed files
oying-system/src/main/java/com/oying/modules/message/domain/MessageSystemAdvertise.java 61 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemAdvertiseQueryCriteria.java 18 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemAdvertiseMapper.java 22 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemAdvertiseController.java 78 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/message/service/MessageSystemAdvertiseService.java 60 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemAdvertiseServiceImpl.java 81 ●●●●● patch | view | raw | blame | history
oying-system/src/main/resources/mapper/message/MessageSystemAdvertiseMapper.xml 29 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/message/domain/MessageSystemAdvertise.java
New file
@@ -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));
    }
}
oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemAdvertiseQueryCriteria.java
New file
@@ -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;
}
oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemAdvertiseMapper.java
New file
@@ -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);
}
oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemAdvertiseController.java
New file
@@ -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);
//    }
}
oying-system/src/main/java/com/oying/modules/message/service/MessageSystemAdvertiseService.java
New file
@@ -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;
}
oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemAdvertiseServiceImpl.java
New file
@@ -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);
    }
}
oying-system/src/main/resources/mapper/message/MessageSystemAdvertiseMapper.xml
New file
@@ -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>