From fab731eb5bf0194e47bb9034af1a23b102a04213 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 20 Aug 2021 18:21:02 +0800 Subject: [PATCH] mysent --- .../dto/message/form/MySentFormDTO.java | 33 ++++++++ .../dto/message/result/MySentResDTO.java | 29 +++++++ .../dataaggre/controller/InfoController.java | 19 +++++ .../dao/epmetmessage/InfoProfileDao.java | 46 +++++++++++ .../epmetmessage/InfoProfileEntity.java | 78 +++++++++++++++++++ .../epmetmessage/EpmetMessageService.java | 12 +++ .../impl/EpmetMessageServiceImpl.java | 17 ++++ .../mapper/epmetmessage/InfoProfileDao.xml | 52 +++++++++++++ .../mapper/epmetmessage/InfoReceiversDao.xml | 4 +- .../V0.3.16__add_infocontent_idx.sql | 3 +- 10 files changed, 290 insertions(+), 3 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/message/form/MySentFormDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/message/result/MySentResDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetmessage/InfoProfileDao.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetmessage/InfoProfileEntity.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoProfileDao.xml diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/message/form/MySentFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/message/form/MySentFormDTO.java new file mode 100644 index 0000000000..91af2354d2 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/message/form/MySentFormDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dataaggre.dto.message.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 我发出的消息列表查询 + * @Author yinzuomei + * @Date 2021/8/20 2:58 下午 + */ +@Data +public class MySentFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = 2007425752362914036L; + + private String content; + + //以下参数从token中获取 + /** + * 当前用户id + */ + @NotBlank(message = "userId不能为空",groups =PageFormDTO.AddUserInternalGroup.class) + private String userId; + + /** + * 当前客户id + */ + @NotBlank(message = "customerId不能为空",groups = PageFormDTO.AddUserInternalGroup.class) + private String customerId; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/message/result/MySentResDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/message/result/MySentResDTO.java new file mode 100644 index 0000000000..21a8a7c613 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/message/result/MySentResDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dataaggre.dto.message.result; + +import com.epmet.commons.tools.dto.form.FileCommonDTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @Description 我发送的消息列表 + * @Author yinzuomei + * @Date 2021/8/20 3:01 下午 + */ +@Data +public class MySentResDTO implements Serializable { + private static final long serialVersionUID = -6765856639039569052L; + private String infoId; + private String content; + private Date publishTime; + private Integer totalReceiver; + private Integer readTotal; + private String firstAttId; + /** + * 附件列表 列表默认返回一个 + */ + private List attachmentList; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/InfoController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/InfoController.java index 0b9b807162..bdb94bac56 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/InfoController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/InfoController.java @@ -9,10 +9,12 @@ import com.epmet.dataaggre.dto.govorg.form.ReceiversFormDTO; import com.epmet.dataaggre.dto.govorg.result.ReceiversResultDTO; import com.epmet.dataaggre.dto.message.form.InfoGroupDetailFormDTO; import com.epmet.dataaggre.dto.message.form.InfoRepliesFormDTO; +import com.epmet.dataaggre.dto.message.form.MySentFormDTO; import com.epmet.dataaggre.dto.message.result.InfoGroupDetailResDTO; import com.epmet.dataaggre.dto.message.result.InfoRedDotResultDTO; import com.epmet.dataaggre.dto.message.result.InfoReplyResDTO; import com.epmet.dataaggre.dto.message.result.MyInfoGroupResultDTO; +import com.epmet.dataaggre.dto.message.result.MySentResDTO; import com.epmet.dataaggre.service.epmetmessage.EpmetMessageService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -105,4 +107,21 @@ public class InfoController { return new Result().ok(epmetMessageService.redDot(tokenDto.getUserId())); } + + /** + * 发送消息-我发送的列表 可根据内容搜索 + * + * @param tokenDto + * @param mySentFormDTO + * @return com.epmet.commons.tools.utils.Result> + * @author yinzuomei + * @date 2021/8/20 3:02 下午 + */ + @PostMapping("sentlist") + public Result> queryMySent(@LoginUser TokenDto tokenDto, @RequestBody MySentFormDTO mySentFormDTO){ + mySentFormDTO.setCustomerId(tokenDto.getCustomerId()); + mySentFormDTO.setUserId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(mySentFormDTO,PageFormDTO.AddUserInternalGroup.class); + return new Result>().ok(epmetMessageService.queryMySent(mySentFormDTO)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetmessage/InfoProfileDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetmessage/InfoProfileDao.java new file mode 100644 index 0000000000..5fa41fede6 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetmessage/InfoProfileDao.java @@ -0,0 +1,46 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dataaggre.dao.epmetmessage; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.message.result.MySentResDTO; +import com.epmet.dataaggre.entity.epmetmessage.InfoProfileEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 消息概要表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-08-18 + */ +@Mapper +public interface InfoProfileDao extends BaseDao { + + /** + * 我发出的消息列表 + * + * @param publishStaffId + * @return java.util.List + * @author yinzuomei + * @date 2021/8/20 3:46 下午 + */ + List selectListMySent(@Param("publishStaffId") String publishStaffId,@Param("content") String content); +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetmessage/InfoProfileEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetmessage/InfoProfileEntity.java new file mode 100644 index 0000000000..769e95ad69 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetmessage/InfoProfileEntity.java @@ -0,0 +1,78 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dataaggre.entity.epmetmessage; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 消息概要表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-08-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("info_profile") +public class InfoProfileEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户id + */ + private String customerId; + + /** + * 消息主表的id + */ + private String infoId; + + /** + * 发布人id + */ + private String publishStaffId; + + /** + * 内容概要,取前100字 + */ + private String content; + + /** + * 附件ID,第一个用于展示 + */ + private String firstAttId; + + /** + * 应读人数 + */ + private Integer totalReceiver; + + /** + * 已读人数,插入是为0 + */ + private Integer readTotal; + + /** + * 未读的回复数量:发布人每次查看详情后,置为0;接收人回复一条+1 + */ + private Integer unReadReplyNum; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/EpmetMessageService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/EpmetMessageService.java index 43477866a3..43afe5795c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/EpmetMessageService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/EpmetMessageService.java @@ -4,10 +4,12 @@ import com.epmet.dataaggre.dto.govorg.form.ReceiversFormDTO; import com.epmet.dataaggre.dto.govorg.result.ReceiversResultDTO; import com.epmet.dataaggre.dto.message.form.InfoGroupDetailFormDTO; import com.epmet.dataaggre.dto.message.form.InfoRepliesFormDTO; +import com.epmet.dataaggre.dto.message.form.MySentFormDTO; import com.epmet.dataaggre.dto.message.result.InfoGroupDetailResDTO; import com.epmet.dataaggre.dto.message.result.InfoRedDotResultDTO; import com.epmet.dataaggre.dto.message.result.InfoReplyResDTO; import com.epmet.dataaggre.dto.message.result.MyInfoGroupResultDTO; +import com.epmet.dataaggre.dto.message.result.MySentResDTO; import java.util.List; @@ -62,4 +64,14 @@ public interface EpmetMessageService { * @date 2021/8/20 3:38 下午 */ InfoRedDotResultDTO redDot(String userId); + + /** + * 发送消息-我发送的列表 可根据内容搜索 + * + * @param mySentFormDTO + * @return java.util.List + * @author yinzuomei + * @date 2021/8/20 3:03 下午 + */ + List queryMySent(MySentFormDTO mySentFormDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/impl/EpmetMessageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/impl/EpmetMessageServiceImpl.java index 6d1c3ff183..0d602e6589 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/impl/EpmetMessageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetmessage/impl/EpmetMessageServiceImpl.java @@ -10,12 +10,14 @@ import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.dataaggre.constant.DataSourceConstant; +import com.epmet.dataaggre.dao.epmetmessage.InfoProfileDao; import com.epmet.dataaggre.dao.epmetmessage.InfoReceiversDao; import com.epmet.dataaggre.dto.govorg.ReceiverDTO; import com.epmet.dataaggre.dto.govorg.form.ReceiversFormDTO; import com.epmet.dataaggre.dto.govorg.result.ReceiversResultDTO; import com.epmet.dataaggre.dto.message.form.InfoGroupDetailFormDTO; import com.epmet.dataaggre.dto.message.form.InfoRepliesFormDTO; +import com.epmet.dataaggre.dto.message.form.MySentFormDTO; import com.epmet.dataaggre.dto.message.result.*; import com.epmet.dataaggre.entity.epmetmessage.InfoReceiversEntity; import com.epmet.dataaggre.service.epmetmessage.EpmetMessageService; @@ -45,6 +47,8 @@ public class EpmetMessageServiceImpl implements EpmetMessageService { private InfoReceiversDao infoReceiversDao; @Autowired private CustomerStaffRedis customerStaffRedis; + @Autowired + private InfoProfileDao infoProfileDao; /** * @param formDTO @@ -190,5 +194,18 @@ public class EpmetMessageServiceImpl implements EpmetMessageService { return null; } + /** + * 发送消息-我发送的列表 可根据内容搜索 + * + * @param formDTO + * @return java.util.List + * @author yinzuomei + * @date 2021/8/20 3:03 下午 + */ + @Override + public List queryMySent(MySentFormDTO formDTO) { + PageInfo data = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> infoProfileDao.selectListMySent(formDTO.getUserId(),formDTO.getContent())); + return data.getList(); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoProfileDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoProfileDao.xml new file mode 100644 index 0000000000..5b67409a73 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoProfileDao.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoReceiversDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoReceiversDao.xml index 179b3469fd..a97dddcecf 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoReceiversDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetmessage/InfoReceiversDao.xml @@ -4,7 +4,7 @@ - + @@ -63,7 +63,7 @@ - + diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.16__add_infocontent_idx.sql b/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.16__add_infocontent_idx.sql index 8290297c71..4e49a38915 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.16__add_infocontent_idx.sql +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/db/migration/V0.3.16__add_infocontent_idx.sql @@ -1 +1,2 @@ -alter table info add fulltext index idx_fulltext_infocontent(content); +alter table info add fulltext index idx_fulltext_infocontent(content) WITH PARSER ngram; +drop index idx_fulltext_infocontent on info;