From 197ad1cdbaf0d7bda97debf602f7b516621bc63e Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 2 Feb 2023 10:31:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9E=E4=BA=8B=E6=8C=87=E5=8D=97=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E8=BF=94=E5=9B=9E=E5=B7=B2=E8=AF=BB=EF=BC=8C=E6=9C=AA?= =?UTF-8?q?=E8=AF=BB=E3=80=82=E9=98=85=E8=AF=BB=E8=AF=A6=E6=83=85=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/form/GuideListFormDTO.java | 8 ++++ .../epmet/dto/result/GuideListResultDTO.java | 6 +++ .../com/epmet/controller/GuideController.java | 4 +- .../java/com/epmet/dao/GuideReaderDao.java | 16 +++++++ .../com/epmet/entity/GuideReaderEntity.java | 44 +++++++++++++++++++ .../com/epmet/service/GuideReaderService.java | 34 ++++++++++++++ .../java/com/epmet/service/GuideService.java | 2 +- .../service/impl/GuideReaderServiceImpl.java | 35 +++++++++++++++ .../epmet/service/impl/GuideServiceImpl.java | 23 ++++++---- .../db/migration/V0.0.12__guide_reader.sql | 14 ++++++ .../src/main/resources/mapper/GuideDao.xml | 5 ++- .../main/resources/mapper/GuideReaderDao.xml | 21 +++++++++ 12 files changed, 201 insertions(+), 11 deletions(-) create mode 100644 epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/GuideReaderDao.java create mode 100644 epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/GuideReaderEntity.java create mode 100644 epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideReaderService.java create mode 100644 epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideReaderServiceImpl.java create mode 100644 epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.12__guide_reader.sql create mode 100644 epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideReaderDao.xml diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/GuideListFormDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/GuideListFormDTO.java index d8edcf1308..212cfd9a7a 100644 --- a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/GuideListFormDTO.java +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/GuideListFormDTO.java @@ -16,7 +16,15 @@ import java.io.Serializable; public class GuideListFormDTO extends PageFormDTO implements Serializable { private static final long serialVersionUID = -4471422632936288213L; + /** + * tokenDto.customerId + */ private String customerId; + + /** + * tokenDto.userId + */ + private String userId; /** * 组织ID */ diff --git a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/GuideListResultDTO.java b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/GuideListResultDTO.java index 7cd2400afa..f4b2403608 100644 --- a/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/GuideListResultDTO.java +++ b/epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/GuideListResultDTO.java @@ -32,4 +32,10 @@ public class GuideListResultDTO implements Serializable { * 更新时间 */ private Date updatedTime; + + /** + * 1:已读 + * 0:未读 + */ + private Integer readFlag; } \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/GuideController.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/GuideController.java index 8fe57c6f76..a1586ee736 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/GuideController.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/GuideController.java @@ -100,8 +100,10 @@ public class GuideController { */ @PostMapping("list") public Result> guideList(@LoginUser TokenDto tokenDto, @RequestBody GuideListFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); ValidatorUtils.validateEntity(formDTO, PageFormDTO.AddUserInternalGroup.class); - PageData page = guideService.guideList(tokenDto, formDTO); + PageData page = guideService.guideList(formDTO); return new Result>().ok(page); } diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/GuideReaderDao.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/GuideReaderDao.java new file mode 100644 index 0000000000..a7f5887077 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/GuideReaderDao.java @@ -0,0 +1,16 @@ +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.GuideReaderEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 办事指南阅读记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-02-02 + */ +@Mapper +public interface GuideReaderDao extends BaseDao { + +} \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/GuideReaderEntity.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/GuideReaderEntity.java new file mode 100644 index 0000000000..b5b1f881fc --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/GuideReaderEntity.java @@ -0,0 +1,44 @@ +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 办事指南阅读记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-02-02 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("guide_reader") +public class GuideReaderEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 办事指南id + */ + private String guideId; + + /** + * 用户id;进入过办事指南详情就算是已读 + */ + private String userId; + + /** + * 工作端:gov;居民端:resi + */ + private String userType; + +} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideReaderService.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideReaderService.java new file mode 100644 index 0000000000..646a578a72 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideReaderService.java @@ -0,0 +1,34 @@ +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.entity.GuideReaderEntity; + +/** + * 办事指南阅读记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-02-02 + */ +public interface GuideReaderService extends BaseService { + + /** + * 单条查询 + * + * @param guideId + * @param userId + * @return GuideReaderDTO + * @author generator + * @date 2023-02-02 + */ + GuideReaderEntity get(String guideId,String userId); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2023-02-02 + */ + void save(GuideReaderEntity dto); +} \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideService.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideService.java index a2493a88ac..6f5d3c7071 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideService.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideService.java @@ -109,7 +109,7 @@ public interface GuideService extends BaseService { * @Author zhaoqifeng * @Date 2021/9/7 14:00 */ - PageData guideList(TokenDto tokenDto, GuideListFormDTO formDTO); + PageData guideList(GuideListFormDTO formDTO); /** * 添加指南 diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideReaderServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideReaderServiceImpl.java new file mode 100644 index 0000000000..e66e635289 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideReaderServiceImpl.java @@ -0,0 +1,35 @@ +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.dao.GuideReaderDao; +import com.epmet.entity.GuideReaderEntity; +import com.epmet.service.GuideReaderService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 办事指南阅读记录 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2023-02-02 + */ +@Service +public class GuideReaderServiceImpl extends BaseServiceImpl implements GuideReaderService { + + @Override + public GuideReaderEntity get(String guideId,String userId) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(GuideReaderEntity::getGuideId,guideId) + .eq(GuideReaderEntity::getUserId,userId); + GuideReaderEntity entity = baseDao.selectOne(queryWrapper); + return entity; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(GuideReaderEntity entity) { + insert(entity); + } + +} \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideServiceImpl.java index d93f21b2af..6c22b22f8d 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideServiceImpl.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideServiceImpl.java @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -31,6 +32,7 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.constant.OrgInfoConstant; import com.epmet.dao.GuideDao; import com.epmet.dto.GuideDTO; @@ -38,10 +40,7 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.GuideDetailResultDTO; import com.epmet.dto.result.GuideListResultDTO; import com.epmet.dto.result.OrgResultDTO; -import com.epmet.entity.GuideAttachmentEntity; -import com.epmet.entity.GuideEntity; -import com.epmet.entity.GuideExternalLinkEntity; -import com.epmet.entity.GuideModuleEntity; +import com.epmet.entity.*; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.service.*; import com.github.pagehelper.PageHelper; @@ -140,15 +139,14 @@ public class GuideServiceImpl extends BaseServiceImpl imp * @Date 2021/9/7 14:00 */ @Override - public PageData guideList(TokenDto tokenDto, GuideListFormDTO formDTO) { + public PageData guideList(GuideListFormDTO formDTO) { PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); - formDTO.setCustomerId(tokenDto.getCustomerId()); List list = baseDao.getGuideList(formDTO); if (CollectionUtils.isNotEmpty(list)) { list.forEach(item -> { - CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), item.getCreatedId()); + CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), item.getCreatedId()); if (null == staffInfoCache) { - item.setCategoryName(""); + item.setCategoryName(StrConstant.EPMETY_STR); } else { item.setCreatedName(staffInfoCache.getRealName()); } @@ -390,6 +388,15 @@ public class GuideServiceImpl extends BaseServiceImpl imp if (null != guideCollectionService.getCollection(tokenDto, formDTO.getGuideId())) { result.setCollectionFlag(NumConstant.ONE_STR); } + //记录已读未读 + if (null == SpringContextUtils.getBean(GuideReaderService.class).get(formDTO.getGuideId(), tokenDto.getUserId())) { + GuideReaderEntity guideReaderEntity=new GuideReaderEntity(); + guideReaderEntity.setGuideId(formDTO.getGuideId()); + guideReaderEntity.setCustomerId(formDTO.getCustomerId()); + guideReaderEntity.setUserId(tokenDto.getUserId()); + guideReaderEntity.setUserType(tokenDto.getApp()); + SpringContextUtils.getBean(GuideReaderService.class).save(guideReaderEntity); + } return result; } diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.12__guide_reader.sql b/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.12__guide_reader.sql new file mode 100644 index 0000000000..eb1fb181c0 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.12__guide_reader.sql @@ -0,0 +1,14 @@ +CREATE TABLE `guide_reader` ( + `ID` varchar(64) NOT NULL COMMENT 'ID', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID', + `GUIDE_ID` varchar(64) NOT NULL COMMENT '办事指南id', + `USER_ID` varchar(64) NOT NULL COMMENT '用户id;进入过办事指南详情就算是已读', + `USER_TYPE` varchar(10) NOT NULL COMMENT '工作端:gov;居民端:resi', + `DEL_FLAG` int(11) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='办事指南阅读记录'; \ No newline at end of file diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideDao.xml index d3d5c34a56..06e0fa5407 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideDao.xml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideDao.xml @@ -26,7 +26,10 @@ g.TITLE AS "title", gc.CATEGORY_NAME AS "categoryName", g.CREATED_BY AS "createdId", - g.UPDATED_TIME AS "updatedTime" + g.UPDATED_TIME AS "updatedTime", + if(exists( select gr.id from guide_reader gr + where gr.del_flag='0' + and gr.GUIDE_ID=g.id),1,0) AS readFlag FROM guide g INNER JOIN guide_category gc ON g.CATEGORY_CODE = gc.CATEGORY_CODE AND gc.DEL_FLAG = 0 AND gc.CUSTOMER_ID = #{customerId} diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideReaderDao.xml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideReaderDao.xml new file mode 100644 index 0000000000..0c1d006449 --- /dev/null +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideReaderDao.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file