diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java new file mode 100644 index 0000000000..6dd8446aef --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 评价信息 + */ +@Data +public class EvaluateInfoDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 评价内容 + */ + private String evaluateContent; + + /** + * 满意度 - 不满意:bad、基本满意:good、非常满意:perfect + */ + private String satisfaction; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java new file mode 100644 index 0000000000..975971e403 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java @@ -0,0 +1,32 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 投票折线数据 + * @CreateTime 2020/5/11 9:36 + */ +@Data +public class PolyLineDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 投票日期 + */ + private Long voteDtae; + + /** + * 当日赞成票数量 + */ + private Integer supportIncrement; + + /** + * 当日反对票数量 + */ + private Integer oppositionIncrement; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java new file mode 100644 index 0000000000..541b1c6f58 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 提交满意度评价 + */ +@Data +public class EvaluateFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 议题Id + */ + private String IssueId; + + /** + * 满意度 - 不满意:bad、基本满意:good、非常满意:perfect + */ + private String satisfaction; + + /** + * 评价内容 + */ + private String comment; + + /** + * 用户id + */ + private String userId; + + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java new file mode 100644 index 0000000000..c61af4f268 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 满意度评价初始化 + */ +@Data +public class InitEvaluationFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 议题Id + */ + private String IssueId; + + /** + * 创建人 + */ + private String userId; + + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java new file mode 100644 index 0000000000..6b16e733ec --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 议题Id + * @Author zxc + * @Date 2020/5/11 9:30 + */ +@Data +public class IssueIdFormDTO implements Serializable { + private static final long serialVersionUID = 4859779755214503489L; + + @NotBlank(message = "议题id不能为空") + private String issueId; + +} + diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java new file mode 100644 index 0000000000..126257e37d --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java @@ -0,0 +1,32 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 表决中 支持、反对 投票 + */ +@Data +public class VoteFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 话题Id + */ + private String IssueId; + + /** + * 态度 - opposition(反对)support(赞成) + */ + private String attitude; + + /** + * 创建人 + */ + private String createdBy; + + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java new file mode 100644 index 0000000000..09d9f16635 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.result; + +import com.epmet.dto.EvaluateInfoDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 满意度评价初始化 + */ +@Data +public class InitEvaluationResultDTO implements Serializable { + + private static final long serialVersionUID = -1L; + + /** + * 评价状态:true已评价,false未评价 + */ + private Boolean status; + + /** + * 评价信息 + */ + private EvaluateInfoDTO evaluateInfo; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java new file mode 100644 index 0000000000..3d4db2594e --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java @@ -0,0 +1,32 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 表决中议题详情——支持、反对数 + */ +@Data +public class VoteResultDTO implements Serializable { + + private static final long serialVersionUID = -1L; + + /** + * 表决状态:true已表决 false未表决 + */ + private Boolean voteFlag; + + /** + * 支持数量 + */ + private Integer supportCount; + + /** + * 反对数量 + */ + private Integer oppositionCount; + + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java new file mode 100644 index 0000000000..4718a4f2f0 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dto.result; + +import com.epmet.dto.PolyLineDTO; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Author zxc + * 议题表决折线图 + * @CreateTime 2020/5/11 9:36 + */ +@Data +public class VotingTrendResultDTO implements Serializable { + + private static final long serialVersionUID = -1L; + + /** + * 应表决数量 + */ + private Integer shouldVoteCount; + + /** + * 实际表决数量 + */ + private Integer realityVoteCount; + + /** + * 截至今日赞成票总数 + */ + private Integer supportAmount; + + /** + * 截至今日反对票总数 + */ + private Integer oppositionAmount; + + /** + * 投票折线数据 + */ + private List polyLine; + +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSatisfactionDetailController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSatisfactionDetailController.java index 8772539ab3..b899a287ca 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSatisfactionDetailController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSatisfactionDetailController.java @@ -26,6 +26,9 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.IssueSatisfactionDetailDTO; +import com.epmet.dto.form.EvaluateFormDTO; +import com.epmet.dto.form.InitEvaluationFormDTO; +import com.epmet.dto.result.InitEvaluationResultDTO; import com.epmet.excel.IssueSatisfactionDetailExcel; import com.epmet.service.IssueSatisfactionDetailService; import org.springframework.beans.factory.annotation.Autowired; @@ -91,4 +94,25 @@ public class IssueSatisfactionDetailController { ExcelUtils.exportExcelToTarget(response, null, list, IssueSatisfactionDetailExcel.class); } + /** + * @Description 满意度评价初始化 + * @param formDTO + * @author zxc + */ + @PostMapping("initevaluation") + public Result initEvaluation(@RequestBody InitEvaluationFormDTO formDTO){ + return new Result().ok(issueSatisfactionDetailService.initEvaluation(formDTO)); + } + + /** + * @Description 提交满意度评价 + * @param formDTO + * @author zxc + */ + @PostMapping("evaluate") + public Result evaluate(@RequestBody EvaluateFormDTO formDTO){ + issueSatisfactionDetailService.evaluate(formDTO); + return new Result(); + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteDetailController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteDetailController.java index 981aacf50e..d7a6153418 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteDetailController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteDetailController.java @@ -17,6 +17,7 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; @@ -26,6 +27,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.IssueVoteDetailDTO; +import com.epmet.dto.form.VoteFormDTO; import com.epmet.excel.IssueVoteDetailExcel; import com.epmet.service.IssueVoteDetailService; import org.springframework.beans.factory.annotation.Autowired; @@ -91,4 +93,15 @@ public class IssueVoteDetailController { ExcelUtils.exportExcelToTarget(response, null, list, IssueVoteDetailExcel.class); } + /** + * @Description 表决中 反对、支持 投票 + * @param formDTO + * @author zxc + */ + @PostMapping("vote") + public Result vote(@RequestBody VoteFormDTO formDTO){ + issueVoteDetailService.vote(formDTO); + return new Result(); + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalController.java index ab98b72498..a1d69e59d9 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalController.java @@ -17,7 +17,9 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -26,6 +28,9 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.IssueVoteStatisticalDTO; +import com.epmet.dto.form.IssueIdFormDTO; +import com.epmet.dto.result.VoteResultDTO; +import com.epmet.dto.result.VotingTrendResultDTO; import com.epmet.excel.IssueVoteStatisticalExcel; import com.epmet.service.IssueVoteStatisticalService; import org.springframework.beans.factory.annotation.Autowired; @@ -91,4 +96,26 @@ public class IssueVoteStatisticalController { ExcelUtils.exportExcelToTarget(response, null, list, IssueVoteStatisticalExcel.class); } + /** + * @Description 表决中议题详情——支持、反对数 + * @param tokenDto + * @param formDTO + * @author zxc + */ + @PostMapping("votecount") + public Result voteCount(@LoginUser TokenDto tokenDto, @RequestBody IssueIdFormDTO formDTO){ + return new Result().ok(issueVoteStatisticalService.voteCount(tokenDto,formDTO)); + } + + + /** + * @Description 议题表决折线图 + * @param formDTO + * @author zxc + */ + @PostMapping("votingtrend") + public Result votingTrend(@RequestBody IssueIdFormDTO formDTO){ + return new Result().ok(issueVoteStatisticalService.votingTrend(formDTO)); + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSatisfactionDetailDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSatisfactionDetailDao.java index 01727f507a..0c29b55ace 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSatisfactionDetailDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSatisfactionDetailDao.java @@ -18,6 +18,8 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.EvaluateInfoDTO; +import com.epmet.dto.form.InitEvaluationFormDTO; import com.epmet.entity.IssueSatisfactionDetailEntity; import org.apache.ibatis.annotations.Mapper; @@ -29,5 +31,12 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IssueSatisfactionDetailDao extends BaseDao { - + + /** + * @Description 满意度评价初始化 + * @param formDTO + * @author zxc + */ + EvaluateInfoDTO checkSatisfaction(InitEvaluationFormDTO formDTO); + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java index f8a41e3747..1b0b35cd83 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.VoteFormDTO; import com.epmet.entity.IssueVoteDetailEntity; import org.apache.ibatis.annotations.Mapper; @@ -29,5 +30,12 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IssueVoteDetailDao extends BaseDao { - + + /** + * @Description 支持、反对校验 + * @param formDTO + * @author zxc + */ + Integer checkoutVote(VoteFormDTO formDTO); + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java index e09695b2b8..06cfea984f 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java @@ -29,5 +29,5 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IssueVoteStatisticalDailyDao extends BaseDao { - + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java index 7f833487d8..f6aa7956ee 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java @@ -18,8 +18,15 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.PolyLineDTO; +import com.epmet.dto.form.IssueIdFormDTO; +import com.epmet.dto.result.VoteResultDTO; +import com.epmet.dto.result.VotingTrendResultDTO; import com.epmet.entity.IssueVoteStatisticalEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 议题表决统计表 @@ -29,5 +36,34 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IssueVoteStatisticalDao extends BaseDao { - + + /** + * @Description 表决中议题详情——支持、反对数 + * @param issueId + * @author zxc + */ + VoteResultDTO voteCount(IssueIdFormDTO issueId); + + /** + * @Description 校验是否投票(表决中详情——支持、反对) + * @param issueId + * @param userId + * @author zxc + */ + Integer checkVote(@Param("issueId")String issueId,@Param("userId")String userId); + + /** + * @Description 议题表决折线图 + * @param issueId + * @author zxc + */ + VotingTrendResultDTO votingTrend(IssueIdFormDTO issueId); + + /** + * @Description 获取折线每天的支持、反对数量 + * @param issueId + * @author zxc + */ + List polyLineData(IssueIdFormDTO issueId); + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSatisfactionDetailService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSatisfactionDetailService.java index ab47a3797a..1abbd939af 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSatisfactionDetailService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSatisfactionDetailService.java @@ -20,6 +20,9 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IssueSatisfactionDetailDTO; +import com.epmet.dto.form.EvaluateFormDTO; +import com.epmet.dto.form.InitEvaluationFormDTO; +import com.epmet.dto.result.InitEvaluationResultDTO; import com.epmet.entity.IssueSatisfactionDetailEntity; import java.util.List; @@ -92,4 +95,18 @@ public interface IssueSatisfactionDetailService extends BaseService page(Map params) { @@ -101,4 +108,41 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl polyLineDTOS = issueVoteStatisticalDao.polyLineData(issueId); + votingTrendResultDTO.setPolyLine(polyLineDTOS); + } + return votingTrendResultDTO; + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSatisfactionDetailDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSatisfactionDetailDao.xml index 86f0a14d13..576f6b859d 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSatisfactionDetailDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSatisfactionDetailDao.xml @@ -16,5 +16,17 @@ + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml index 93a382ef60..6e6166601b 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml @@ -15,5 +15,16 @@ + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml index d34f9eb2ae..5fe5c88507 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml @@ -17,5 +17,56 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java new file mode 100644 index 0000000000..6dd8446aef --- /dev/null +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 评价信息 + */ +@Data +public class EvaluateInfoDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 评价内容 + */ + private String evaluateContent; + + /** + * 满意度 - 不满意:bad、基本满意:good、非常满意:perfect + */ + private String satisfaction; + +} diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/PolyLineDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/PolyLineDTO.java index b4fee06837..838dfbad15 100644 --- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/PolyLineDTO.java +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/PolyLineDTO.java @@ -16,28 +16,18 @@ public class PolyLineDTO implements Serializable { private static final long serialVersionUID = 1L; /** - * 话题id + * 投票日期 */ - private String topicId; + private Long voteDtae; /** - * 话题内容 + * 当日赞成票数量 */ - private String topicContent; + private Integer supportIncrement; /** - * 图片列表 + * 当日反对票数量 */ - private List topicImgs; - - /** - * 话题发表人(山东路168-尹女士) - */ - private String publishedUser; - - /** - * 话题发表时间 (时间戳 毫秒级) - */ - private Long publishedTime; + private Integer oppositionIncrement; } diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java new file mode 100644 index 0000000000..4f3b88f227 --- /dev/null +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 提交满意度评价 + */ +@Data +public class EvaluateFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 议题Id + */ + private String IssueId; + + /** + * 满意度 - 不满意:bad、基本满意:good、非常满意:perfect + */ + private String satisfaction; + + /** + * 评价内容 + */ + private String comment; + + /** + * 用户ID + */ + private String userId; + + +} diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java new file mode 100644 index 0000000000..c61af4f268 --- /dev/null +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 满意度评价初始化 + */ +@Data +public class InitEvaluationFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 议题Id + */ + private String IssueId; + + /** + * 创建人 + */ + private String userId; + + +} diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java index 6b16e733ec..9fe2c9f69c 100644 --- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java @@ -8,7 +8,6 @@ import java.io.Serializable; /** * @Description 议题Id * @Author zxc - * @Date 2020/5/11 9:30 */ @Data public class IssueIdFormDTO implements Serializable { diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java new file mode 100644 index 0000000000..6bde30f08b --- /dev/null +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java @@ -0,0 +1,32 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 表决中 支持、反对 投票 + */ +@Data +public class VoteFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 议题Id + */ + private String IssueId; + + /** + * 态度 - opposition(反对)support(赞成) + */ + private String attitude; + + /** + * 创建人 + */ + private String createdBy; + + +} diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java new file mode 100644 index 0000000000..57fece2b4d --- /dev/null +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.result; + +import com.epmet.dto.EvaluateInfoDTO; +import com.sun.org.apache.xpath.internal.operations.Bool; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 满意度评价初始化 + */ +@Data +public class InitEvaluationResultDTO implements Serializable { + + private static final long serialVersionUID = -1L; + + /** + * 评价状态:true已评价,false未评价 + */ + private Boolean status; + + /** + * 评价信息 + */ + private EvaluateInfoDTO evaluateInfo; + +} diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java new file mode 100644 index 0000000000..3d4db2594e --- /dev/null +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java @@ -0,0 +1,32 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * 表决中议题详情——支持、反对数 + */ +@Data +public class VoteResultDTO implements Serializable { + + private static final long serialVersionUID = -1L; + + /** + * 表决状态:true已表决 false未表决 + */ + private Boolean voteFlag; + + /** + * 支持数量 + */ + private Integer supportCount; + + /** + * 反对数量 + */ + private Integer oppositionCount; + + +} diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java index b92e466fce..4718a4f2f0 100644 --- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java @@ -1,8 +1,10 @@ package com.epmet.dto.result; +import com.epmet.dto.PolyLineDTO; import lombok.Data; import java.io.Serializable; +import java.util.List; /** * @Author zxc @@ -34,5 +36,9 @@ public class VotingTrendResultDTO implements Serializable { */ private Integer oppositionAmount; + /** + * 投票折线数据 + */ + private List polyLine; } diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java index 48d63f37c9..508694bfea 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java @@ -1,10 +1,17 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.RequirePermission; import com.epmet.commons.tools.enums.RequirePermissionEnum; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.EvaluateFormDTO; import com.epmet.dto.form.IssueDetailFormDTO; +import com.epmet.dto.form.IssueIdFormDTO; +import com.epmet.dto.result.InitEvaluationResultDTO; import com.epmet.dto.result.IssueDetailResultDTO; +import com.epmet.dto.result.VoteResultDTO; +import com.epmet.dto.result.VotingTrendResultDTO; import com.epmet.service.IssueService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -36,10 +43,69 @@ public class IssueController { return new Result().ok(issueService.detail(issueDetail)); } - /*@PostMapping(value = "votingtrend") - public Result<> votingTrend(){ - return - }*/ + /** + * @Description 议题表决折线图 + * @param formDTO + * @author zxc + */ + @PostMapping(value = "votingtrend") + public Result votingTrend(@RequestBody IssueIdFormDTO formDTO){ + return new Result().ok(issueService.votingTrend(formDTO)); + } + + /** + * @Description 支持议题 + * @param formDTO + * @author zxc + */ + @PostMapping(value = "support") + public Result support(@LoginUser TokenDto tokenDto, @RequestBody IssueIdFormDTO formDTO){ + issueService.support(tokenDto,formDTO); + return new Result(); + } + + /** + * @Description 反对议题 + * @param formDTO + * @author zxc + */ + @PostMapping(value = "oppose") + public Result oppose(@LoginUser TokenDto tokenDto,@RequestBody IssueIdFormDTO formDTO){ + issueService.oppose(tokenDto,formDTO); + return new Result(); + } + + /** + * @Description 表决中议题详情——支持、反对数 + * @param formDTO + * @author zxc + */ + @PostMapping(value = "vote") + public Result vote(@RequestBody IssueIdFormDTO formDTO){ + return new Result().ok(issueService.vote(formDTO)); + } + + /** + * @Description 满意度评价初始化 + * @param tokenDto + * @param issueId + * @author zxc + */ + @PostMapping("initevaluation") + public Result initEvaluation(@LoginUser TokenDto tokenDto, @RequestBody IssueIdFormDTO issueId){ + return new Result().ok(issueService.initEvaluation(tokenDto,issueId)); + } + + /** + * @Description 提交满意度评价 + * @param formDTO + * @author zxc + */ + @PostMapping("evaluate") + public Result evaluate(@LoginUser TokenDto tokenDto,@RequestBody EvaluateFormDTO formDTO){ + issueService.evaluate(tokenDto,formDTO); + return new Result(); + } } diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java index 972dad25ff..c4103e74dc 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java @@ -1,9 +1,14 @@ package com.epmet.feign; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.form.IssueDetailFormDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.InitEvaluationResultDTO; import com.epmet.dto.result.IssueResultDTO; +import com.epmet.dto.result.VoteResultDTO; +import com.epmet.dto.result.VotingTrendResultDTO; import com.epmet.feign.fallback.GovIssueFeignClientFallBack; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -22,8 +27,48 @@ public interface GovIssueFeignClient { * @Description 议题详情 * @param issueDetail * @author zxc - * @date 2020/5/11 16:50 */ @PostMapping("/gov/issue/issue/issuedetail") Result issueDetail(@RequestBody IssueDetailFormDTO issueDetail); + + /** + * @Description 表决中议题详情——支持、反对数 + * @param issueId + * @author zxc + */ + @PostMapping("/gov/issue/issuevotestatistical/votecount") + Result voteCount(@RequestBody IssueIdFormDTO issueId); + + /** + * @Description 议题表决折线图 + * @param issueId + * @author zxc + */ + @PostMapping("/gov/issue/issuevotestatistical/votingtrend") + Result votingTrend(@RequestBody IssueIdFormDTO issueId); + + /** + * @Description 表决中的 支持、反对 投票 + * @param issueId + * @author zxc + */ + @PostMapping("/gov/issue/issuevotedetail/vote") + Result vote(@RequestBody VoteFormDTO issueId); + + /** + * @Description 满意度评价初始化 + * @param formDTO + * @author zxc + */ + @PostMapping("/gov/issue/issuesatisfactiondetail/initevaluation") + Result initEvaluation(@RequestBody InitEvaluationFormDTO formDTO); + + /** + * @Description 提交满意度评价 + * @param formDTO + * @author zxc + */ + @PostMapping("/gov/issue/issuesatisfactiondetail/evaluate") + Result evaluate(@RequestBody EvaluateFormDTO formDTO); + } diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/fallback/GovIssueFeignClientFallBack.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/fallback/GovIssueFeignClientFallBack.java index 62d2ceb77b..c464a6f5a3 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/fallback/GovIssueFeignClientFallBack.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/fallback/GovIssueFeignClientFallBack.java @@ -1,10 +1,14 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.form.IssueDetailFormDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.InitEvaluationResultDTO; import com.epmet.dto.result.IssueResultDTO; +import com.epmet.dto.result.VoteResultDTO; +import com.epmet.dto.result.VotingTrendResultDTO; import com.epmet.feign.GovIssueFeignClient; import org.springframework.stereotype.Component; @@ -19,4 +23,29 @@ public class GovIssueFeignClientFallBack implements GovIssueFeignClient { public Result issueDetail(IssueDetailFormDTO issueDetail) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "issueDetail", issueDetail); } + + @Override + public Result voteCount(IssueIdFormDTO issueId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "voteCount", issueId); + } + + @Override + public Result votingTrend(IssueIdFormDTO issueId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "votingTrend", issueId); + } + + @Override + public Result vote(VoteFormDTO voteFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "vote", voteFormDTO); + } + + @Override + public Result initEvaluation(InitEvaluationFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "initEvaluation", formDTO); + } + + @Override + public Result evaluate(EvaluateFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "evaluate", formDTO); + } } diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java index 999fb46355..20eace94e3 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java @@ -1,7 +1,14 @@ package com.epmet.service; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.dto.form.EvaluateFormDTO; import com.epmet.dto.form.IssueDetailFormDTO; +import com.epmet.dto.form.IssueIdFormDTO; +import com.epmet.dto.result.InitEvaluationResultDTO; import com.epmet.dto.result.IssueDetailResultDTO; +import com.epmet.dto.result.VoteResultDTO; +import com.epmet.dto.result.VotingTrendResultDTO; +import org.springframework.web.bind.annotation.RequestBody; /** * @Author zxc @@ -17,4 +24,48 @@ public interface IssueService { */ IssueDetailResultDTO detail(IssueDetailFormDTO issueDetail); + /** + * @Description 议题表决折线图 + * @param issueId + * @author zxc + * @date 2020/5/12 8:48 + */ + VotingTrendResultDTO votingTrend(IssueIdFormDTO issueId); + + /** + * @Description 支持议题 + * @param issueId + * @author zxc + */ + void support(TokenDto tokenDto,IssueIdFormDTO issueId); + + /** + * @Description 反对议题 + * @param issueId + * @author zxc + */ + void oppose(TokenDto tokenDto,IssueIdFormDTO issueId); + + /** + * @Description 表决中议题详情——支持、反对数 + * @param issueId + * @author zxc + */ + VoteResultDTO vote(IssueIdFormDTO issueId); + + /** + * @Description 满意度评价初始化 + * @param tokenDto + * @param issueId + * @author zxc + */ + InitEvaluationResultDTO initEvaluation(TokenDto tokenDto, IssueIdFormDTO issueId); + + /** + * @Description 提交满意度评价 + * @param evaluateFormDTO + * @author zxc + */ + void evaluate(TokenDto tokenDto,EvaluateFormDTO evaluateFormDTO); + } diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index b27ed53daf..2f520351cf 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -1,20 +1,16 @@ package com.epmet.service.impl; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.TopicInfoDTO; -import com.epmet.dto.form.BelongGridNameFormDTO; -import com.epmet.dto.form.IssueDetailFormDTO; -import com.epmet.dto.form.IssueInitiatorFormDTO; -import com.epmet.dto.form.TopicInfoFormDTO; -import com.epmet.dto.result.BelongGridNameResultDTO; -import com.epmet.dto.result.IssueDetailResultDTO; -import com.epmet.dto.result.IssueInitiatorResultDTO; -import com.epmet.dto.result.IssueResultDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.*; import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.GovIssueFeignClient; import com.epmet.feign.GovOrgFeignClient; import com.epmet.feign.ResiGroupFeignClient; import com.epmet.service.IssueService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -54,18 +50,101 @@ public class IssueServiceImpl implements IssueService { //话题发起人 IssueInitiatorFormDTO initiatorFormDTO = new IssueInitiatorFormDTO(); initiatorFormDTO.setUserId(issueResult.getUserId()); - Result initiatorResult = userFeignClient.selectIssueInitiator(initiatorFormDTO); - issueDetailResult.setIssueInitiator(initiatorResult.getData().getIssueInitiator()); + if (!StringUtils.isBlank(issueResult.getUserId())) { + Result initiatorResult = userFeignClient.selectIssueInitiator(initiatorFormDTO); + issueDetailResult.setIssueInitiator(initiatorResult.getData().getIssueInitiator()); + } //网格名称 BelongGridNameFormDTO belongGridName = new BelongGridNameFormDTO(); belongGridName.setGridId(issueResult.getGridId()); - Result belongGridNameResult = govOrgFeignClient.getGridNameByGridId(belongGridName); - issueDetailResult.setBelongsGridName(belongGridNameResult.getData().getBelongsGridName()); + if (!StringUtils.isBlank(issueResult.getGridId())) { + Result belongGridNameResult = govOrgFeignClient.getGridNameByGridId(belongGridName); + issueDetailResult.setBelongsGridName(belongGridNameResult.getData().getBelongsGridName()); + } //话题信息 TopicInfoFormDTO topicInfoFormDTO = new TopicInfoFormDTO(); topicInfoFormDTO.setTopicId(issueResult.getTopicId()); - Result topicInfoDTOResult = resiGroupFeignClient.selectDetail(topicInfoFormDTO); - issueDetailResult.setTopicInfo(topicInfoDTOResult.getData()); + if (!StringUtils.isBlank(issueResult.getTopicId())) { + Result topicInfoDTOResult = resiGroupFeignClient.selectDetail(topicInfoFormDTO); + issueDetailResult.setTopicInfo(topicInfoDTOResult.getData()); + } return issueDetailResult; } + + /** + * @Description 议题表决折线图 + * @param issueId + * @author zxc + * @date 2020/5/12 8:49 + */ + @Override + public VotingTrendResultDTO votingTrend(IssueIdFormDTO issueId) { + Result votingTrendResultDTOResult = govIssueFeignClient.votingTrend(issueId); + return votingTrendResultDTOResult.getData(); + } + + /** + * @Description 支持议题 + * @param issueId + * @author zxc + */ + @Override + public void support(TokenDto tokenDto,IssueIdFormDTO issueId) { + VoteFormDTO voteFormDTO = new VoteFormDTO(); + voteFormDTO.setAttitude("support"); + voteFormDTO.setCreatedBy(tokenDto.getUserId()); + voteFormDTO.setIssueId(issueId.getIssueId()); + govIssueFeignClient.vote(voteFormDTO); + } + + /** + * @Description 反对议题 + * @param issueId + * @author zxc + */ + @Override + public void oppose(TokenDto tokenDto,IssueIdFormDTO issueId) { + VoteFormDTO voteFormDTO = new VoteFormDTO(); + voteFormDTO.setAttitude("opposition"); + voteFormDTO.setCreatedBy(tokenDto.getUserId()); + voteFormDTO.setIssueId(issueId.getIssueId()); + govIssueFeignClient.vote(voteFormDTO); + } + + /** + * @Description 表决中议题详情——支持、反对数 + * @param issueId + * @author zxc + */ + @Override + public VoteResultDTO vote(IssueIdFormDTO issueId) { + Result voteResultDTOResult = govIssueFeignClient.voteCount(issueId); + return voteResultDTOResult.getData(); + } + + /** + * @Description 满意度评价初始化 + * @param tokenDto + * @param issueId + * @author zxc + */ + @Override + public InitEvaluationResultDTO initEvaluation(TokenDto tokenDto, IssueIdFormDTO issueId) { + InitEvaluationFormDTO formDTO = new InitEvaluationFormDTO(); + formDTO.setIssueId(issueId.getIssueId()); + formDTO.setUserId(tokenDto.getUserId()); + Result initEvaluationResult = govIssueFeignClient.initEvaluation(formDTO); + return initEvaluationResult.getData(); + } + + /** + * @Description 提交满意度评价 + * @param evaluateFormDTO + * @author zxc + */ + @Override + public void evaluate(TokenDto tokenDto,EvaluateFormDTO evaluateFormDTO) { + evaluateFormDTO.setUserId(tokenDto.getUserId()); + govIssueFeignClient.evaluate(evaluateFormDTO); + } }