diff --git a/src/main/java/com/zh/project0512/controller/wxApp/AppMessageController.java b/src/main/java/com/zh/project0512/controller/wxApp/AppMessageController.java
new file mode 100644
index 0000000..af50ccc
--- /dev/null
+++ b/src/main/java/com/zh/project0512/controller/wxApp/AppMessageController.java
@@ -0,0 +1,44 @@
+package com.zh.project0512.controller.wxApp;
+
+import com.zh.project0512.model.dto.AppMessageListDTO;
+import com.zh.project0512.model.vo.AppMessageListVo;
+import com.zh.project0512.service.IAppMessageService;
+import com.zh.project0512.utils.JwtUtil;
+import com.zh.project0512.utils.result.ResultPageInfo;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ *
+ * app消息
+ *
+ *
+ * @author zh
+ * @since 2022-05-26
+ */
+@RestController
+@RequestMapping("/wxApp/appMessage")
+@Tag(name = "app消息")
+public class AppMessageController {
+ @Resource
+ IAppMessageService appMessageService;
+
+
+ /**
+ * 查询所有的app消息
+ * @param appMessageListDTO app消息 list DTO
+ * @return 所有的app消息
+ */
+ @GetMapping("/list")
+ public ResultPageInfo list(AppMessageListDTO appMessageListDTO,@RequestHeader(value = "token") @Parameter(name = "登录token") String token){
+ String openid = new JwtUtil().parseOpenid(token);
+ return ResultPageInfo.success(appMessageService.list(appMessageListDTO,openid),"请求成功");
+ }
+
+}
diff --git a/src/main/java/com/zh/project0512/mapper/AppMessageMapper.java b/src/main/java/com/zh/project0512/mapper/AppMessageMapper.java
new file mode 100644
index 0000000..c5ca43d
--- /dev/null
+++ b/src/main/java/com/zh/project0512/mapper/AppMessageMapper.java
@@ -0,0 +1,7 @@
+package com.zh.project0512.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zh.project0512.model.AppMessage;
+
+public interface AppMessageMapper extends BaseMapper {
+}
diff --git a/src/main/java/com/zh/project0512/model/AppMessage.java b/src/main/java/com/zh/project0512/model/AppMessage.java
new file mode 100644
index 0000000..fc15de4
--- /dev/null
+++ b/src/main/java/com/zh/project0512/model/AppMessage.java
@@ -0,0 +1,65 @@
+package com.zh.project0512.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * app消息
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("appMessage")
+public class AppMessage implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键id
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ @TableField("id")
+ private Integer id;
+ /**
+ * 消息类型
+ */
+ @TableField("type")
+ private Integer type;
+ /**
+ * 标题
+ */
+ @TableField("title")
+ private String title;
+ /**
+ * 描述
+ */
+ @TableField("describe")
+ private String describe;
+ /**
+ * url
+ */
+ @TableField("url")
+ private String url;
+ /**
+ * 发送人openid
+ */
+ @TableField("sendId")
+ private String sendOpenId;
+ /**
+ * 接收人openid
+ */
+ @TableField("receiverId")
+ private String receiverOpenId;
+ /**
+ * 创建时间
+ */
+ @TableField("createDate")
+ private Date createDate;
+}
diff --git a/src/main/java/com/zh/project0512/model/dto/AppMessageListDTO.java b/src/main/java/com/zh/project0512/model/dto/AppMessageListDTO.java
new file mode 100644
index 0000000..36fb6e3
--- /dev/null
+++ b/src/main/java/com/zh/project0512/model/dto/AppMessageListDTO.java
@@ -0,0 +1,30 @@
+package com.zh.project0512.model.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * app消息 list DTO
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class AppMessageListDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 当前页数
+ */
+ private int pageNum;
+ /**
+ * 每页记录数
+ */
+ private int pageSize;
+ /**
+ * 消息类型
+ */
+ private Integer type;
+}
diff --git a/src/main/java/com/zh/project0512/model/vo/AppMessageListVo.java b/src/main/java/com/zh/project0512/model/vo/AppMessageListVo.java
new file mode 100644
index 0000000..b9f7fdd
--- /dev/null
+++ b/src/main/java/com/zh/project0512/model/vo/AppMessageListVo.java
@@ -0,0 +1,38 @@
+package com.zh.project0512.model.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * app消息 list Vo
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class AppMessageListVo implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键id
+ */
+ private Integer id;
+ /**
+ * 消息类型
+ */
+ private Integer type;
+ /**
+ * 标题
+ */
+ private String title;
+ /**
+ * 描述
+ */
+ private String describe;
+ /**
+ * url
+ */
+ private String url;
+}
diff --git a/src/main/java/com/zh/project0512/service/IAppMessageService.java b/src/main/java/com/zh/project0512/service/IAppMessageService.java
new file mode 100644
index 0000000..0a78754
--- /dev/null
+++ b/src/main/java/com/zh/project0512/service/IAppMessageService.java
@@ -0,0 +1,15 @@
+package com.zh.project0512.service;
+
+import com.zh.project0512.model.dto.AppMessageListDTO;
+import com.zh.project0512.model.vo.AppMessageListVo;
+import com.zh.project0512.utils.page.PageInfo;
+
+public interface IAppMessageService {
+ /**
+ * 查询所有的app消息
+ * @param appMessageListDTO app消息 list DTO
+ * @param openid openid
+ * @return app消息 list Vo
+ */
+ PageInfo list(AppMessageListDTO appMessageListDTO, String openid);
+}
diff --git a/src/main/java/com/zh/project0512/serviceImpl/AppMessageServiceImpl.java b/src/main/java/com/zh/project0512/serviceImpl/AppMessageServiceImpl.java
new file mode 100644
index 0000000..5c63884
--- /dev/null
+++ b/src/main/java/com/zh/project0512/serviceImpl/AppMessageServiceImpl.java
@@ -0,0 +1,46 @@
+package com.zh.project0512.serviceImpl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zh.project0512.mapper.AppMessageMapper;
+import com.zh.project0512.model.AdminRole;
+import com.zh.project0512.model.AppMessage;
+import com.zh.project0512.model.dto.AppMessageListDTO;
+import com.zh.project0512.model.vo.AdminRoleListVo;
+import com.zh.project0512.model.vo.AppMessageListVo;
+import com.zh.project0512.service.IAppMessageService;
+import com.zh.project0512.utils.PropertyUtils;
+import com.zh.project0512.utils.page.PageInfo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class AppMessageServiceImpl implements IAppMessageService {
+ @Resource
+ AppMessageMapper appMessageMapper;
+
+ @Override
+ public PageInfo list(AppMessageListDTO appMessageListDTO, String openid) {
+ ArrayList appMessageListVos = new ArrayList<>();
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq(appMessageListDTO.getType() != null,"type", appMessageListDTO.getType());
+
+ Page page = new Page<>(appMessageListDTO.getPageNum(), appMessageListDTO.getPageSize());
+ IPage appMessageIPage = appMessageMapper.selectPage(page, queryWrapper);
+ List records = appMessageIPage.getRecords();
+ if (records != null && records.size()>0){
+ for (AppMessage record : records) {
+ AppMessageListVo appMessageListVo = new AppMessageListVo();
+ PropertyUtils.copyProperties(record, appMessageListVo);
+ appMessageListVos.add(appMessageListVo);
+ }
+ }
+
+ return new PageInfo<>(appMessageIPage.getPages(), appMessageListVos, appMessageIPage.getTotal());
+ }
+}
diff --git a/src/main/java/com/zh/project0512/utils/AppMessageUtil.java b/src/main/java/com/zh/project0512/utils/AppMessageUtil.java
new file mode 100644
index 0000000..7c1846d
--- /dev/null
+++ b/src/main/java/com/zh/project0512/utils/AppMessageUtil.java
@@ -0,0 +1,46 @@
+package com.zh.project0512.utils;
+
+import com.zh.project0512.mapper.AppMessageMapper;
+import com.zh.project0512.model.AppMessage;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * app消息工具类
+ */
+@Component
+public class AppMessageUtil {
+ @Resource
+ AppMessageMapper appMessageMapper;
+
+ //解决工具类无法调用Dao层数据,数据为null
+ //静态初始化当前类
+ private static AppMessageUtil appMessageUtil;
+ //在方法上加上注解@PostConstruct,这样方法就会在bean初始化之后被spring容器执行
+ @PostConstruct
+ public void init(){
+ //声明的静态类=this
+ appMessageUtil=this;
+ }
+
+ public static Boolean sendMessage(Integer type,String title,String describe,String url,String sendOpenId,String receiverOpenId){
+ AppMessage appMessage = new AppMessage();
+ appMessage.setType(type);
+ appMessage.setTitle(title);
+ appMessage.setDescribe(describe);
+ appMessage.setUrl(url);
+ appMessage.setSendOpenId(sendOpenId);
+ appMessage.setReceiverOpenId(receiverOpenId);
+ return sendMessage(appMessage);
+ }
+
+ public static Boolean sendMessage(AppMessage appMessage){
+ appMessage.setId(null);
+ appMessage.setCreateDate(new Date());
+ int insert = appMessageUtil.appMessageMapper.insert(appMessage);
+ return insert > 0;
+ }
+}