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