diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/RedPointResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/RedPointResultDTO.java new file mode 100644 index 0000000000..38654cfd7c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/RedPointResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dataaggre.dto.epmettduck.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @Author zhaoqifeng + * @Date 2021/9/23 10:03 + */ +@Data +public class RedPointResultDTO implements Serializable { + private static final long serialVersionUID = -2230123089546481389L; + /** + * redPoint + */ + private String redPoint; +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java index 0570b55494..38956e9129 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetTDuckController.java @@ -137,4 +137,9 @@ public class EpmetTDuckController { ValidatorUtils.validateEntity(formDTO,ProjectKeyCommonDTO.AddUserInternalGroup.class); return new Result().ok(prUserProjectService.queryItemResDetailConcat(formDTO)); } + + @PostMapping("redpoint") + public Result redPoint(@LoginUser TokenDto tokenDto) { + return new Result().ok(prUserProjectService.redPoint(tokenDto)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrPublishRangeService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrPublishRangeService.java index bef2464a1d..d238150f46 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrPublishRangeService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrPublishRangeService.java @@ -101,4 +101,13 @@ public interface PrPublishRangeService extends BaseService * @Date 2021/9/18 15:28 */ List getRangeOrgList(String projectKey); + + /** + * @Description 获取组织范围内的问卷 + * @Param orgList + * @Return {@link List< PrPublishRangeDTO>} + * @Author zhaoqifeng + * @Date 2021/9/23 10:27 + */ + List getListByOrg(List orgList); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java index b68943ec11..2a35aa5ac1 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrUserProjectService.java @@ -19,6 +19,7 @@ package com.epmet.dataaggre.service.epmettduck; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dataaggre.dto.epmettduck.PrUserProjectDTO; import com.epmet.dataaggre.dto.epmettduck.form.ItemResDetailFormDTO; import com.epmet.dataaggre.dto.epmettduck.form.ProjectKeyCommonDTO; @@ -164,4 +165,13 @@ public interface PrUserProjectService extends BaseService { * @date 2021/9/22 2:57 下午 */ ItemResDetailConcatResultDTO queryItemResDetailConcat(ProjectKeyCommonDTO formDTO); + + /** + * 有新的问卷显示小红点 + * @Param tokenDto + * @Return {@link RedPointResultDTO} + * @Author zhaoqifeng + * @Date 2021/9/23 10:05 + */ + RedPointResultDTO redPoint(TokenDto tokenDto); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.java index a0d8f5a044..691e4cdc95 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/PrVistRecordService.java @@ -92,4 +92,13 @@ public interface PrVistRecordService extends BaseService { * @date 2021-09-15 */ void delete(String[] ids); + + /** + * @Description 获取最新访问记录 + * @Param staffId + * @Return {@link PrVistRecordDTO} + * @Author zhaoqifeng + * @Date 2021/9/23 14:16 + */ + PrVistRecordDTO getNewestRecord(String staffId); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrPublishRangeServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrPublishRangeServiceImpl.java index cc7d940a6e..d669cc59c8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrPublishRangeServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrPublishRangeServiceImpl.java @@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.dynamic.datasource.annotation.DataSource; 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.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dataaggre.constant.DataSourceConstant; @@ -124,4 +125,29 @@ public class PrPublishRangeServiceImpl extends BaseServiceImpl} + * @Author zhaoqifeng + * @Date 2021/9/23 10:27 + */ + @Override + public List getListByOrg(List orgList) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.and(w -> { + for (int i = 0; i < orgList.size(); i++) { + if (NumConstant.ZERO == i) { + w.like(PrPublishRangeEntity :: getOrgId, orgList.get(i)); + } else { + w.or().like(PrPublishRangeEntity :: getOrgId, orgList.get(i)); + } + } + }); + wrapper.orderByDesc(PrPublishRangeEntity::getCreatedTime); + List list = baseDao.selectList(wrapper); + return ConvertUtils.sourceToTarget(list, PrPublishRangeDTO.class); + } + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java index 936545842f..eeba85b869 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrUserProjectServiceImpl.java @@ -28,11 +28,14 @@ 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.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.epmettduck.PrUserProjectDao; import com.epmet.dataaggre.dao.epmettduck.PrVistRecordDao; +import com.epmet.dataaggre.dto.epmettduck.PrPublishRangeDTO; import com.epmet.dataaggre.dto.epmettduck.PrUserProjectDTO; +import com.epmet.dataaggre.dto.epmettduck.PrVistRecordDTO; import com.epmet.dataaggre.dto.epmettduck.ProjectItemTypeEnum; import com.epmet.dataaggre.dto.epmettduck.form.ItemResDetailFormDTO; import com.epmet.dataaggre.dto.epmettduck.form.ProjectKeyCommonDTO; @@ -44,6 +47,8 @@ import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity; import com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity; import com.epmet.dataaggre.service.epmettduck.PrPublishRangeService; import com.epmet.dataaggre.service.epmettduck.PrUserProjectService; +import com.epmet.dataaggre.service.epmettduck.PrVistRecordService; +import com.epmet.dataaggre.service.govorg.GovOrgService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -74,6 +79,10 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl page(Map params) { @@ -667,4 +676,35 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl orgList = govOrgService.getStaffOrgList(tokenDto.getUserId()); + List list = prPublishRangeService.getListByOrg(orgList); + if (CollectionUtils.isEmpty(list)) { + result.setRedPoint(NumConstant.ZERO_STR); + return result; + } + PrVistRecordDTO visitRecord = prVistRecordService.getNewestRecord(tokenDto.getUserId()); + if (null == visitRecord) { + result.setRedPoint(NumConstant.ONE_STR); + return result; + } + if (list.get(0).getCreatedTime().compareTo(visitRecord.getCreatedTime()) > 0) { + result.setRedPoint(NumConstant.ONE_STR); + } else { + result.setRedPoint(NumConstant.ZERO_STR); + } + return result; + } } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrVistRecordServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrVistRecordServiceImpl.java index 408701f7ce..fbc0034277 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrVistRecordServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmettduck/impl/PrVistRecordServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.dataaggre.service.epmettduck.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.dynamic.datasource.annotation.DataSource; @@ -30,6 +31,7 @@ import com.epmet.dataaggre.dto.epmettduck.PrVistRecordDTO; import com.epmet.dataaggre.entity.epmettduck.PrVistRecordEntity; import com.epmet.dataaggre.service.epmettduck.PrVistRecordService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -101,4 +103,24 @@ public class PrVistRecordServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PrVistRecordEntity::getUserId, staffId); + wrapper.orderByDesc(PrVistRecordEntity::getCreatedTime); + List list = baseDao.selectList(wrapper); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return ConvertUtils.sourceToTarget(list, PrVistRecordDTO.class).get(0); + } + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index 1bd061569e..41b97b57ac 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -145,4 +145,13 @@ public interface GovOrgService { * @Date 2021/9/17 14:03 */ List getAgencyTree(TokenDto tokenDto, SubOrgFormDTO formDTO); + + /** + * @Description 工作人员所在的组织,部门,网格 + * @Param staffId + * @Return {@link List< String>} + * @Author zhaoqifeng + * @Date 2021/9/23 10:14 + */ + List getStaffOrgList(String staffId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index a9cd8bbcf4..d4e265cdec 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -509,13 +509,27 @@ public class GovOrgServiceImpl implements GovOrgService { */ @Override public List getAgencyTree(TokenDto tokenDto, SubOrgFormDTO formDTO) { + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); List list = new ArrayList<>(); if ("resi".equals(formDTO.getClient())) { - list.add(customerAgencyDao.getResiOrgTree(formDTO.getAgencyId())); + list.add(customerAgencyDao.getResiOrgTree(staffInfo.getAgencyId())); return list; } - list.add(customerAgencyDao.getOrgTree(formDTO.getAgencyId())); + list.add(customerAgencyDao.getOrgTree(staffInfo.getAgencyId())); return list; } + /** + * @param staffId + * @Description 工作人员所在的组织,部门,网格 + * @Param staffId + * @Return {@link List< String>} + * @Author zhaoqifeng + * @Date 2021/9/23 10:14 + */ + @Override + public List getStaffOrgList(String staffId) { + return customerAgencyDao.getOrgList(staffId); + } + }