diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckListFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckListFormDTO.java new file mode 100644 index 0000000000..481ff42126 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/form/TDuckListFormDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dataaggre.dto.epmettduck.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/9/17 10:47 上午 + * @DESC + */ +@Data +public class TDuckListFormDTO implements Serializable { + + private static final long serialVersionUID = 3624352114576287768L; + + public interface TDuckListForm{} + + /** + * 1:未发布,2:收集中,3:已结束 + */ + @NotNull(message = "问卷调查状态不能为空",groups = TDuckListForm.class) + private Integer status; + + @NotNull(message = "pageNo不能为空",groups = TDuckListForm.class) + private Integer pageNo; + + @NotNull(message = "pageSize不能为空",groups = TDuckListForm.class) + private Integer pageSize; + + @NotBlank(message = "orgIds不能为空",groups = TDuckListForm.class) + private String orgIds; + + private String userId; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/TDuckListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/TDuckListResultDTO.java new file mode 100644 index 0000000000..267df6a5f2 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmettduck/result/TDuckListResultDTO.java @@ -0,0 +1,96 @@ +package com.epmet.dataaggre.dto.epmettduck.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/9/17 10:47 上午 + * @DESC + */ +@Data +public class TDuckListResultDTO implements Serializable { + + private static final long serialVersionUID = 3624352114576287768L; + + /** + * 客户id + */ + private String customerId; + + /** + * 项目code + */ + private String key; + + /** + * 来源Id + */ + private String sourceId; + + /** + * 来源类型 + */ + private Integer sourceType; + + /** + * 项目名称 + */ + private String name; + + /** + * 项目描述 + */ + private String describe; + + /** + * 用户ID + */ + private String userId; + + /** + * 项目类型 + */ + private Integer type; + + /** + * 状态 + */ + private Integer status; + + /** + * 适用于哪个端 resi:居民端用户;gov:工作端用户;运营端用户:oper + */ + private String client; + + private String createdTime; + + /** + * 是否填写问卷,true:是,false:否 + */ + private Boolean fillStatus; + + /** + * 回收状态 0:未回收;1已回收 + */ + private Integer recycled; + + public TDuckListResultDTO() { + this.customerId = ""; + this.key = ""; + this.sourceId = ""; + this.sourceType = NumConstant.ONE; + this.name = ""; + this.describe = ""; + this.userId = ""; + this.type = NumConstant.ONE; + this.status = NumConstant.ONE; + this.client = ""; + this.createdTime = ""; + this.fillStatus = false; + } +} 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 afe5b4ea8c..84fc0c68d2 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 @@ -2,9 +2,14 @@ package com.epmet.dataaggre.controller; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.dto.epmettduck.form.TDuckDetailFormDTO; +import com.epmet.dataaggre.dto.epmettduck.form.TDuckListFormDTO; +import com.epmet.dataaggre.dto.epmettduck.result.TDuckListResultDTO; +import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity; import com.epmet.dataaggre.entity.epmettduck.PrUserProjectItemEntity; import com.epmet.dataaggre.service.epmettduck.PrUserProjectItemService; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +80,11 @@ public class EpmetTDuckController { } + @PostMapping("list") + public Result> queryProjectList(@RequestBody TDuckListFormDTO formDTO,@LoginUser TokenDto tokenDto){ + ValidatorUtils.validateEntity(formDTO,TDuckListFormDTO.TDuckListForm.class); + formDTO.setUserId(tokenDto.getUserId()); + return new Result>().ok(prUserProjectService.queryProjectList(formDTO)); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java index ef2cdad012..1adda97179 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrUserProjectDao.java @@ -3,9 +3,11 @@ package com.epmet.dataaggre.dao.epmettduck; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO; import com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO; +import com.epmet.dataaggre.dto.epmettduck.result.TDuckListResultDTO; import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity; import com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -46,4 +48,20 @@ public interface PrUserProjectDao extends BaseDao { * @date 2021/9/16 6:18 下午 */ List selectResults(String projectKey); + + /** + * @Description 查询范围内的问卷调查 + * @Param orgId + * @author zxc + * @date 2021/9/17 2:16 下午 + */ + List selectProjectKey(@Param("orgIds")String orgIds); + + /** + * @Description 根据keys查询project + * @Param keys + * @author zxc + * @date 2021/9/17 3:41 下午 + */ + List queryProjectList(@Param("keys")List keys, @Param("status")Integer status); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrVistRecordDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrVistRecordDao.java index 716daf1608..279884c678 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrVistRecordDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmettduck/PrVistRecordDao.java @@ -3,6 +3,9 @@ package com.epmet.dataaggre.dao.epmettduck; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.entity.epmettduck.PrVistRecordEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 用户访问问卷记录表 @@ -12,5 +15,7 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface PrVistRecordDao extends BaseDao { - + + List selectVisitRecordByUserId(@Param("userId")String userId); + } \ 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 d341cddfd1..4000d3bdc0 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 @@ -20,8 +20,10 @@ package com.epmet.dataaggre.service.epmettduck; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.epmettduck.PrUserProjectDTO; +import com.epmet.dataaggre.dto.epmettduck.form.TDuckListFormDTO; import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO; import com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO; +import com.epmet.dataaggre.dto.epmettduck.result.TDuckListResultDTO; import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity; import java.util.List; @@ -105,6 +107,8 @@ public interface PrUserProjectService extends BaseService { */ ProjectProfileResultDTO queryProjectProfile(String projectKey); + List queryProjectList(TDuckListFormDTO formDTO); + /** * 分析报告 * 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 0739d25834..78cd44a5b8 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 @@ -19,9 +19,11 @@ package com.epmet.dataaggre.service.epmettduck.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +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; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; @@ -29,16 +31,24 @@ import com.epmet.commons.tools.page.PageData; 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.InputMapDTO; import com.epmet.dataaggre.dto.epmettduck.PrUserProjectDTO; +import com.epmet.dataaggre.dto.epmettduck.form.TDuckListFormDTO; import com.epmet.dataaggre.dto.epmettduck.ProjectItemTypeEnum; import com.epmet.dataaggre.dto.epmettduck.result.AnalysisReportResDTO; import com.epmet.dataaggre.dto.epmettduck.result.ProjectProfileResultDTO; +import com.epmet.dataaggre.dto.epmettduck.result.TDuckListResultDTO; import com.epmet.dataaggre.dto.epmettduck.struct.RateExpandStruct; +import com.epmet.dataaggre.entity.epmettduck.PrPublishRangeEntity; import com.epmet.dataaggre.entity.epmettduck.PrUserProjectEntity; import com.epmet.dataaggre.entity.epmettduck.PrUserProjectResultEntity; import com.epmet.dataaggre.service.epmettduck.PrUserProjectService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -59,6 +69,9 @@ import java.util.stream.Stream; @Service public class PrUserProjectServiceImpl extends BaseServiceImpl implements PrUserProjectService { + @Autowired + private PrVistRecordDao visitRecordDao; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -124,6 +137,29 @@ public class PrUserProjectServiceImpl extends BaseServiceImpl queryProjectList(TDuckListFormDTO formDTO) { + List projectKeys = baseDao.selectProjectKey(formDTO.getOrgIds()); + if (CollectionUtils.isEmpty(projectKeys)){ + return new ArrayList<>(); + } + PageInfo projectPageInfo = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.queryProjectList(projectKeys, formDTO.getStatus())); + List result = projectPageInfo.getList(); + List records = visitRecordDao.selectVisitRecordByUserId(formDTO.getUserId()); + if (!CollectionUtils.isEmpty(records)){ + for (String r : records) { + for (TDuckListResultDTO t : result) { + if (r.equals(t.getKey())){ + t.setFillStatus(true); + continue; + } + } + } + } + return result; + } + /** * 分析报告 * diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml index 9453b32ffa..45948a5dcf 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrUserProjectDao.xml @@ -47,4 +47,26 @@ and m.project_key=#{projectKey} order by m.serial_number asc + + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrVistRecordDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrVistRecordDao.xml index 8ea675b0e9..77f2f5c68a 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrVistRecordDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmettduck/PrVistRecordDao.xml @@ -3,4 +3,10 @@ + + \ No newline at end of file