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; + } +}