diff --git a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java index a5ea6a1a37..b1f8dc53fc 100644 --- a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java +++ b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java @@ -25,7 +25,9 @@ import org.apache.ibatis.reflection.MetaObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.swing.text.html.Option; import java.util.Date; +import java.util.Optional; /** * 公共字段,自动填充值 @@ -80,15 +82,16 @@ public class FieldMetaObjectHandler implements MetaObjectHandler { } public Object getCreatedByFieldValue(MetaObject metaObject) { - Object value = loginUserUtil.getLoginUserId(); - if (value == null) { + Object value = null; + if (metaObject.hasGetter(FieldConstant.CREATED_BY_HUMP)) { value = metaObject.getValue(FieldConstant.CREATED_BY_HUMP); } if (value == null) { - value = Constant.APP_USER_FLAG; + + value = Optional.ofNullable(loginUserUtil.getLoginUserId()).orElse(Constant.APP_USER_FLAG); } - } + return value; } @@ -104,26 +107,34 @@ public class FieldMetaObjectHandler implements MetaObjectHandler { } public Object getUpdatedTimeByFieldValue(MetaObject metaObject) { - Object createdTime = null; - if (metaObject.hasGetter(FieldConstant.CREATED_TIME_HUMP)) { - createdTime = metaObject.getValue(FieldConstant.CREATED_TIME_HUMP); + Object updatedTime = null; + if (metaObject.hasGetter(FieldConstant.UPDATED_TIME_HUMP)) { + updatedTime = metaObject.getValue(FieldConstant.UPDATED_TIME_HUMP); } - if (createdTime == null) { - createdTime = new Date(); + if (updatedTime == null) { + if(metaObject.hasGetter(FieldConstant.CREATED_TIME_HUMP)) + updatedTime = metaObject.getValue(FieldConstant.CREATED_TIME_HUMP); + if(updatedTime == null) + updatedTime = new Date(); } - return createdTime; + return updatedTime; } public Object getUpdatedByFieldValue(MetaObject metaObject) { - Object value = loginUserUtil.getLoginUserId(); - if (value == null) { + Object value = null; + if (metaObject.hasGetter(FieldConstant.UPDATED_BY_HUMP)) { value = metaObject.getValue(FieldConstant.UPDATED_BY_HUMP); } + if (value == null) { - value = Constant.APP_USER_FLAG; + if(metaObject.hasGetter(FieldConstant.CREATED_BY_HUMP)) + value = metaObject.getValue(FieldConstant.CREATED_BY_HUMP); + + if(null == value) + value = Optional.ofNullable(loginUserUtil.getLoginUserId()).orElse(Constant.APP_USER_FLAG); } - } + return value; } @@ -157,7 +168,7 @@ public class FieldMetaObjectHandler implements MetaObjectHandler { setFieldValByName(UPDATE_DATE, new Date(), metaObject); } else if (fillEsuaEntity) { setFieldValByName(FieldConstant.UPDATED_BY_HUMP, getUpdatedByFieldValue(metaObject), metaObject); - setFieldValByName(FieldConstant.UPDATED_TIME_HUMP, new Date(), metaObject); + setFieldValByName(FieldConstant.UPDATED_TIME_HUMP, getUpdatedTimeByFieldValue(metaObject), metaObject); } } } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java new file mode 100644 index 0000000000..134124f512 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.commons.tools.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 分页通用类 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/20 17:02 + */ +@Data +public class PageFormDTO { + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotNull(message = "页码不能为空", groups = AddUserInternalGroup.class) + private Integer pageNo; + + @NotNull(message = "每页数量不能为空", groups = AddUserInternalGroup.class) + private Integer pageSize; +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java index 40375042b9..d48669325b 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java @@ -87,6 +87,10 @@ public enum RequirePermissionEnum { WORK_GRASSROOTS_ISSUE_SHIFT_PROJECT("work_grassroots_issue_shift_project", "基层治理:议题管理:转项目","转项目(选择处理部门api也需要添加此校验)"), WORK_GRASSROOTS_ISSUE_CLOSE("work_grassroots_issue_close","基层治理:议题管理:关闭议题","关闭议题"), + WORK_GRASSROOTS_ISSUE_AUDITING_LIST("work_grassroots_issue_auditing_list","基层治理:议题管理:待审核","待审核议题申请列表查询"), + WORK_GRASSROOTS_ISSUE_REJECTED_LIST("work_grassroots_issue_rejected_list","基层治理:议题管理:已驳回","已驳回议题申请列表"), + WORK_GRASSROOTS_ISSUE_AUDIT("work_grassroots_issue_audit","基层治理:议题管理:议题审核","审核(通过或驳回)议题"), + /** * 徽章 */ diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index ad25abca6a..4d3c107de3 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -48,7 +48,7 @@ public enum EpmetErrorCode { IDCARDNO_ALREADY_EXITS(8109,"系统已存在相同身份证号码,请重新输入"), IDCARDNO_ERROR(8110,"身份证号格式错误,请重新输入"), CANNOT_DELETE_PARTY_MEMBER(8111,"该用户已注册党员,不允许删除"), - GROUP_LEADER_CAN_EDIT_GROUP_INFO(8112,"只有组长才可以修改小组信息"), + GROUP_LEADER_CAN_EDIT_GROUP_INFO(8112,"只有组长才可以操作"), INVITE_NEW_MEMBER(8113,"只有讨论中的小组才可以邀请新成员"), ACT_TITLE_SCAN_FAILED(8114,"活动标题审核失败,请重新编辑"), ACT_REQ_SCAN_FAILED(8115,"活动报名条件审核失败,请重新编辑"), @@ -88,7 +88,7 @@ public enum EpmetErrorCode { TEXT_SCAN_FAILED(8503,"内容审核失败,请重新编辑"), IMG_SCAN_FAILED(8504,"图片审核失败,请重新上传"), PROJECT_IS_CLOSED(8601,"项目已结案"), - + VOTE_ISSUE_PLEASE(8602,"请先选择支持或反对,再发表您的想法"), // 爱心互助 居民端 NOT_IN_THE_SIGN_IN_RANGE(8510, "您还未进入指定的签到范围~"), // 活动报名失败,弹窗:志愿者认证 @@ -137,7 +137,11 @@ public enum EpmetErrorCode { GROUP_EDIT_ERROR(9000,"组信息编辑失败"), GROUP_NOT_EXISTS(9001,"该组不存在"), GROUP_IN_AUDITING(9002,"该组已提交编辑,处于待审核状态,完成审核前不可再次提交"), - GROUP_EDIT_NUM_LIMITED(9003,"已达编辑次数上限"); + GROUP_EDIT_NUM_LIMITED(9003,"已达编辑次数上限"), + TOPIC_SHIFTED_TO_ISSUE_UNDER_AUDITING(9004,"当前话题正在转议题审核"), + TOPIC_ALREADY_SHIFTED_TO_ISSUE(9005,"该话题已被转为议题,请勿重复操作"), + TOPIC_IS_HIDDEN(9006,"该话题已被屏蔽,请先解除屏蔽"), + TOPIC_IS_CLOSED(9008,"该话题已关闭,无法转为议题"); private int code; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpContextUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpContextUtils.java index d27da23ab7..a23b8f5d55 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpContextUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpContextUtils.java @@ -66,4 +66,20 @@ public class HttpContextUtils { } return defaultLanguage; } + + public static String getRequestServerNameAndPort() { + HttpServletRequest request = getHttpServletRequest(); + //X-Forwarded-Scheme是nginx中添加的一个header,用于获取真实的$scheme + String scheme = request.getHeader("X-Forwarded-Scheme"); + if (StringUtils.isBlank(scheme)) { + scheme = "http"; + } + + String hostAndPort = request.getHeader("Host-And-Port"); + if (StringUtils.isBlank(hostAndPort)) { + hostAndPort = request.getServerName().concat(":").concat(String.valueOf(request.getServerPort())); + } + + return String.format("%s://%s", scheme, hostAndPort); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java index 8043413311..f57bb25da3 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java @@ -40,5 +40,5 @@ public interface EpmetHeartOpenFeignClient { * @return com.epmet.commons.tools.utils.Result> */ @PostMapping("/heart/resi/act/published/{staffId}") - Result> getPublishedAct(@PathVariable String staffId); + Result> getPublishedAct(@PathVariable("staffId") String staffId); } diff --git a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/OssFeignClient.java b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/OssFeignClient.java index 47daa888cc..239ca51acc 100644 --- a/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/OssFeignClient.java +++ b/epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/OssFeignClient.java @@ -30,6 +30,8 @@ import org.springframework.web.multipart.MultipartFile; */ @FeignClient(name = ServiceConstant.EPMET_OSS_SERVER, configuration = OssFeignClient.MultipartSupportConfig.class, fallback = OssFeignClientFallback.class) +//@FeignClient(name = ServiceConstant.EPMET_OSS_SERVER, configuration = OssFeignClient.MultipartSupportConfig.class, fallback = +// OssFeignClientFallback.class) public interface OssFeignClient { /** * 文件上传 @@ -44,7 +46,7 @@ public interface OssFeignClient { Result uploadQrCode(@RequestPart(value = "file") MultipartFile file); - @Configuration + //@Configuration class MultipartSupportConfig { @Bean public Encoder feignFormEncoder() { diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java index ff52e99ce4..0f78958d58 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java +++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java @@ -159,6 +159,7 @@ public class OssController { public Result uploadQrCode(@RequestPart(value = "file") MultipartFile file) { return ossService.uploadImg(file); } + /** * 上传客户logo(考虑到以后可能会针对不同的业务有不同的限制条件,这里不再使用通用的接口 * 针对每一个业务新建上传接口) diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/AccessTokenDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/AccessTokenDTO.java new file mode 100644 index 0000000000..dac9be670e --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/AccessTokenDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @description: + * @author: liushaowen + * @date: 2020/11/17 10:07 + */ +@Data +public class AccessTokenDTO implements Serializable { + private String resiToken; + + private String workToken; + + private String errMsg; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/utils/ThirdUtils.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/utils/ThirdUtils.java new file mode 100644 index 0000000000..426bab2b82 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/utils/ThirdUtils.java @@ -0,0 +1,53 @@ +package com.epmet.utils; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.epmet.commons.tools.enums.EnvEnum; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.HttpClientManager; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.AccessTokenDTO; +import com.epmet.dto.result.CustomerTokensResultDTO; +import org.apache.commons.lang3.StringUtils; + +import java.util.HashMap; +import java.util.Map; + +/** + * @description: + * @author: liushaowen + * @date: 2020/11/17 10:04 + */ + +public class ThirdUtils { + /** + * @Description 获取AccessToken公共方法 + * @param customerId + * @return com.epmet.dto.AccessTokenDTO + * @Author liushaowen + * @Date 2020/11/17 10:09 + */ + public static AccessTokenDTO getAccessToken(String customerId) { + EnvEnum envEnum = EnvEnum.getCurrentEnv(); + AccessTokenDTO accessToken = new AccessTokenDTO(); + + String url = "https://epmet-cloud.elinkservice.cn/api/third/pacustomer/tokenlist"; + JSONObject postData = new JSONObject(); + postData.put("customerId", customerId); + String data = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(postData)).getData(); + JSONObject toResult = JSON.parseObject(data); + Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); + if (null != toResult.get("code")) { + mapToResult.setCode(((Integer) toResult.get("code")).intValue()); + } + if (!mapToResult.success()) { + accessToken.setErrMsg( StringUtils.isBlank(mapToResult.getMsg()) ? mapToResult.getInternalMsg() : mapToResult.getMsg()); + } + Object CustomerTokensResultDTO = mapToResult.getData(); + JSONObject json = JSON.parseObject(CustomerTokensResultDTO.toString()); + CustomerTokensResultDTO customerTokensResultDTO = ConvertUtils.mapToEntity(json, com.epmet.dto.result.CustomerTokensResultDTO.class); + accessToken.setResiToken(customerTokensResultDTO.getResiAuthorizerToken()); + accessToken.setWorkToken(customerTokensResultDTO.getWorkAuthorizerToken()); + return accessToken; + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationDTO.java new file mode 100644 index 0000000000..fd0cdff40e --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationDTO.java @@ -0,0 +1,133 @@ +/** + * 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.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 话题转议题申请表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-17 + */ +@Data +public class IssueApplicationDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 议题名称 + */ + private String issueTitle; + + /** + * 建议 + */ + private String suggestion; + + /** + * 审核状态:under_auditing:待审核;approved:通过;rejected:驳回;自动通过:auto_passed + */ + private String applyStatus; + + /** + * 话题id + */ + private String topicId; + + /** + * 小组id + */ + private String groupId; + + /** + * 网格ID 居民端议题对应一个网格Id + */ + private String gridId; + + /** + * 审核通过后对应的 议题id + */ + private String issueId; + + /** + * 审核通过时填写的理由 + */ + private String passedReason; + + /** + * 审批通过时工作人员id,自动通过此列不存储 + */ + private String approveStaffId; + + /** + * 删除标识 0未删除、1已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间:第一次提交审核的时间,注意和历史表的第一条记录时间一致 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + //拓展属性 + /** + * 申请id + */ + private String issueApplicationId; + + /** + * 对应issue_application.UPDATED_TIME 对应的秒级时间戳 + */ + private Long latestTime; + +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationHistoryDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationHistoryDTO.java new file mode 100644 index 0000000000..b81e50b7f8 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueApplicationHistoryDTO.java @@ -0,0 +1,110 @@ +/** + * 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.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 话题转议题审核历史表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-17 + */ +@Data +public class IssueApplicationHistoryDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户ID + */ + private String customerId; + + /** + * 话题转议题申请表 issue_application.id + */ + private String issueApplicationId; + + /** + * under_auditing:待审核; + * approved:审核通过; + * rejected:驳回; + * auto_passed:自动通过 + */ + private String actionType; + + /** + * 审核时的说明 + */ + private String reason; + + /** + * 工作端人员姓名 + */ + private String staffName; + + /** + * 删除标识:0 未删除 1已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 提交人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 修改人ID + */ + private String updatedBy; + + /** + * 修改时间 + */ + private Date updatedTime; + + //扩展属性 + /** + * =id + */ + private String historyId; + + /** + * createdTime 对应时间戳 + */ + private Long operateTime; +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java index 0da96662ee..5e7a6c8fdb 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java @@ -158,4 +158,6 @@ public class IssueDTO implements Serializable { * 议题转项目后-对应的项目id */ private String projectId; + + private String issueId; } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueSuggestionDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueSuggestionDTO.java new file mode 100644 index 0000000000..e5a3300212 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueSuggestionDTO.java @@ -0,0 +1,97 @@ +/** + * 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.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 居民端用户对议题建议或意见表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-18 + */ +@Data +public class IssueSuggestionDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 议题id + */ + private String issueId; + + /** + * 议题所属网格id + */ + private String gridId; + + /** + * 对议题的想法 + */ + private String suggestion; + + /** + * 1公开; 0匿名 + */ + private Integer publicFlag; + + /** + * 删除标识:0 未删除 1已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 提建议的人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 修改人ID + */ + private String updatedBy; + + /** + * 修改时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationDetailFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationDetailFormDTO.java new file mode 100644 index 0000000000..3cc1942473 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationDetailFormDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/17 10:10 上午 + */ +@Data +public class ApplicationDetailFormDTO implements Serializable { + + private static final long serialVersionUID = -1123940740606412101L; + + public interface ApplicationDetail{} + + /** + * 申请详情,在列表接口返参里有 + */ + @NotBlank(message = "issueApplicationId不能为空",groups = {ApplicationDetail.class}) + private String issueApplicationId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationDetailWorkFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationDetailWorkFormDTO.java new file mode 100644 index 0000000000..7f586308d7 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationDetailWorkFormDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/18 下午5:52 + */ +@Data +public class ApplicationDetailWorkFormDTO implements Serializable { + + private static final long serialVersionUID = 2611468185891863016L; + + public interface ApplicationDetailWork{} + + @NotBlank(message = "issueApplicationId不能为空",groups = {ApplicationDetailWork.class}) + private String issueApplicationId; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationHistoryFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationHistoryFormDTO.java new file mode 100644 index 0000000000..bfdf5bdced --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationHistoryFormDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/17 10:10 上午 + */ +@Data +public class ApplicationHistoryFormDTO implements Serializable { + + private static final long serialVersionUID = -1123940740606412101L; + + public interface ApplicationHistory{} + + /** + * 申请详情,在列表接口返参里有 + */ + @NotBlank(message = "issueApplicationId不能为空",groups = {ApplicationHistory.class}) + private String issueApplicationId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationHistoryWorkFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationHistoryWorkFormDTO.java new file mode 100644 index 0000000000..123a5236ff --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationHistoryWorkFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/19 下午2:05 + */ +@Data +public class ApplicationHistoryWorkFormDTO implements Serializable { + + private static final long serialVersionUID = -1609931427461117171L; + + public interface ApplicationHistoryWork{} + + @NotBlank(message = "议题ID不能为空",groups = {ApplicationHistoryWork.class}) + private String issueId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationListFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationListFormDTO.java new file mode 100644 index 0000000000..e26b2645b7 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ApplicationListFormDTO.java @@ -0,0 +1,43 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/17 10:26 上午 + */ +@Data +public class ApplicationListFormDTO implements Serializable { + + private static final long serialVersionUID = -7535577263406351310L; + + public interface ApplicationList{} + + /** + * 小组id + */ + @NotBlank(message = "小组id不能为空",groups = {ApplicationList.class}) + private String groupId; + + /** + * under_auditing:审核中,rejected:驳回 + */ + @NotBlank(message = "审核状态不能为空",groups = {ApplicationList.class}) + private String applyStatus; + + /** + * 页码 + */ + @NotNull(message = "页码不能为空",groups = {ApplicationList.class}) + private Integer pageNo; + + /** + * 每页数量 + */ + @NotNull(message = "每页数量不能为空",groups = {ApplicationList.class}) + private Integer pageSize; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java index 93dcda291b..f29b90be72 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java @@ -21,5 +21,5 @@ public class CommonGridIdFormDTO implements Serializable { @NotBlank(message = "网格Id不能为空") private String gridId; - + private String userId; } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java index 1c0af96723..a239ff390c 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java @@ -2,6 +2,7 @@ package com.epmet.dto.form; import lombok.Data; +import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -21,11 +22,13 @@ public class EvaluationListFormDTO implements Serializable { /** * 页码 */ + @NotNull(message = "pageNo不能为空") private Integer pageNo; /** * 每页数量 */ + @NotNull(message = "pageSize不能为空") private Integer pageSize; diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueAppQueryFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueAppQueryFormDTO.java new file mode 100644 index 0000000000..b623bc58fd --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueAppQueryFormDTO.java @@ -0,0 +1,47 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 查询issue_application通用入参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 16:22 + */ +@Data +public class IssueAppQueryFormDTO implements Serializable { + public interface Required{} + public interface GovFormDTO{} + /** + * 网格id + */ + @NotBlank(message = "网格id不能为空",groups={GovFormDTO.class}) + private String gridId; + + /** + * 小组id + */ + private String groupId; + + /** + * 审核状态:under_auditing:待审核;approved:通过;rejected:驳回 + */ + private String applyStatus; + + /** + * 页码 + */ + @NotNull(message = "页码不能为空",groups = {Required.class}) + private Integer pageNo; + + /** + * 每页数量 + */ + @NotNull(message = "每页数量不能为空",groups = {Required.class}) + private Integer pageSize; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueApplicationIdFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueApplicationIdFormDTO.java new file mode 100644 index 0000000000..e764d68863 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueApplicationIdFormDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 根据issue_application.id查询审核历史 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 16:55 + */ +@Data +public class IssueApplicationIdFormDTO implements Serializable { + private static final long serialVersionUID = 3222664262617695211L; + @NotBlank(message = "issueApplicationId不能为空") + private String issueApplicationId; + + public IssueApplicationIdFormDTO(String issueApplicationId) { + this.issueApplicationId = issueApplicationId; + } + + public IssueApplicationIdFormDTO() { + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueAuditionFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueAuditionFormDTO.java new file mode 100644 index 0000000000..1eb9b86791 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueAuditionFormDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Description 工作人员审核议题结果传参 + * @ClassName IssueAuditionFormDTO + * @Auth wangc + * @Date 2020-11-19 10:29 + */ +@Data +public class IssueAuditionFormDTO implements Serializable { + + private static final long serialVersionUID = 5794088085884822811L; + + /** + * 申请id + */ + @NotBlank(message = "议题申请Id不能为空") + private String issueApplicationId; + + /** + * 同意备注 驳回理由 + */ + private String reason; + + /** + * approved:审核通过, rejected:驳回 + */ + @NotBlank(message = "审核结果不能为空") + private String actionType; + + /** + * 工作人员名称 + */ + private String staffName; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java index 399062ece8..9eefc723f8 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueShiftedFromTopicFormDTO.java @@ -1,9 +1,12 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import javax.validation.Valid; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; @@ -17,86 +20,107 @@ import java.util.Date; public class IssueShiftedFromTopicFormDTO implements Serializable { private static final long serialVersionUID = -5744319584210140289L; + public interface IssueGenerationGroup extends CustomerClientShowGroup{} + + public interface PublicIssueGroup extends CustomerClientShowGroup{} + /** * 话题Id * */ - @NotBlank(message = "话题Id不能为空") + @NotBlank(message = "话题Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String topicId; /** * 议题名称 * */ - @NotBlank(message = "议题名称不能为空") + @NotBlank(message = "议题名称不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String issueTitle; /** * 建议 * */ - @NotBlank(message = "议题建议不能为空") + @NotBlank(message = "议题建议不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String suggestion; /** * 议题发起人Id * */ - @NotBlank(message = "议题发起人Id不能为空") + @NotBlank(message = "议题发起/审核人Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String userId; + /** + * 当userId为工作端审核人员时,该项存议题发起人 + */ + private String issueAuthorId; + /** * 客户Id * */ - @NotBlank(message = "客户不能为空") + @NotBlank(message = "客户不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String customerId; /** * 网格Id * */ - @NotBlank(message = "网格Id不能为空") + @NotBlank(message = "网格Id不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String gridId; /** * AgencyId当前话题所在机构Id * */ - @NotBlank(message = "机关Id不能为空") + @NotBlank(message = "机关Id不能为空",groups = {IssueGenerationGroup.class}) private String orgId; /** * 所属机关 eg:11:22:33(本机关以及上级所有机关ID) * */ - @NotBlank(message = "所属机关全路径不能为空") + @NotBlank(message = "所属机关全路径不能为空",groups = {IssueGenerationGroup.class}) private String orgIdPath; /** * 当前话题所在网格名称 - 对应议题流程的处理部门 * */ - @NotBlank(message = "网格名称不能为空") + @NotBlank(message = "网格名称不能为空",groups = {IssueGenerationGroup.class}) private String orgName; /** * 议题创建时间 * */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @NotNull(message = "创建时间不能为空",groups = {IssueGenerationGroup.class}) private Date createdTime; /** * 小组名称 - 对应议题流程的小组名称(文案) * */ - @NotBlank(message = "小组名称不能为空") + @NotBlank(message = "小组名称不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String groupName; /** * 话题发起人名称 -对应议题流程的话题发起人(文案) * */ - @NotBlank(message = "话题发起人不能为空") + @NotBlank(message = "话题发起人不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String topicAuthor; /** * 议题发起人(组长)名称 - 对应议题流程的组长名称(文案) * */ - @NotBlank(message = "组长不能为空") + @NotBlank(message = "组长不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private String issueAuthor; /** * 应表决数 * */ + @NotNull(message = "应表决数不能为空",groups = {PublicIssueGroup.class,IssueGenerationGroup.class}) private Integer votableCount; + + /** + * 议题审核参数 + */ + private IssueAuditionFormDTO audition; + + @NotNull(message = "小组Id不能为空",groups = {IssueGenerationGroup.class}) + private String groupId; + + private String issueId; } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ParameterFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ParameterFormDTO.java new file mode 100644 index 0000000000..d2a7c0f0e1 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/ParameterFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/11/18 17:21 + */ +@Data +public class ParameterFormDTO implements Serializable { + private static final long serialVersionUID = 3007336627437933281L; + /** + * 客户ID + */ + @NotBlank(message = "客户ID不能为空", groups = DefaultGroup.class) + private String customerId; + /** + * 已开启审核:open; 无需审核:close + */ + @NotBlank(message = "可滞留天数不能为空", groups = AddGroup.class) + private String auditSwitch; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/UserIssueSuggestionFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/UserIssueSuggestionFormDTO.java new file mode 100644 index 0000000000..cc03320fab --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/UserIssueSuggestionFormDTO.java @@ -0,0 +1,36 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 查询用户对于某个议题的想法 返回一条记录 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 10:09 + */ +@Data +public class UserIssueSuggestionFormDTO implements Serializable { + private static final long serialVersionUID = -8506264833919404944L; + /** + * 用户id + */ + @NotBlank(message = "userId不能为空") + private String userId; + + /** + * 议题id + */ + @NotBlank(message = "issueId不能为空") + private String issueId; + + public UserIssueSuggestionFormDTO( String userId, String issueId) { + this.userId = userId; + this.issueId = issueId; + } + + public UserIssueSuggestionFormDTO() { + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/UserPubAuditingIssueFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/UserPubAuditingIssueFormDTO.java new file mode 100644 index 0000000000..99b52b0b63 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/UserPubAuditingIssueFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 用户发起的议题列表-审核中列表 入参 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/23 9:05 + */ +@Data +public class UserPubAuditingIssueFormDTO extends PageFormDTO implements Serializable { + private static final long serialVersionUID = 6520349189385929988L; + @NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class) + private String userId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationDetailResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationDetailResultDTO.java new file mode 100644 index 0000000000..ef84d338e0 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationDetailResultDTO.java @@ -0,0 +1,54 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/17 10:12 上午 + */ +@Data +public class ApplicationDetailResultDTO implements Serializable { + + private static final long serialVersionUID = 1121268898544759693L; + + /** + * 申请ID + */ + private String issueApplicationId; + + /** + * 议题标题 + */ + private String issueTitle; + + /** + * 所属网格名称 + */ + private String gridName; + + /** + * 议题发起人 + */ + private String issuePublisher; + + /** + * 话题相关信息 + */ + private TopicInfoResultDTO topicInfo; + + private String gridId; + + private String topicId; + + private String userId; + + public ApplicationDetailResultDTO() { + this.issueTitle = ""; + this.gridName = ""; + this.issuePublisher = ""; + this.topicInfo = new TopicInfoResultDTO(); + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationDetailWorkResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationDetailWorkResultDTO.java new file mode 100644 index 0000000000..5e58db1a8f --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationDetailWorkResultDTO.java @@ -0,0 +1,62 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/18 下午5:51 + */ +@Data +public class ApplicationDetailWorkResultDTO implements Serializable { + + private static final long serialVersionUID = 7351552491300420108L; + + /** + * 申请ID + */ + private String issueApplicationId; + + /** + * 议题标题 + */ + private String issueTitle; + + /** + * 所属网格名称 + */ + private String gridName; + + /** + * 议题发起人 + */ + private String issuePublisher; + + /** + * 话题相关信息 + */ + private TopicInfoWorkResultDTO topicInfo; + + /** + * 议题建议 + */ + private String issueSuggestion; + + /** + * 议题发起人电话 + */ + private String issuePublisherMobile; + + + + public ApplicationDetailWorkResultDTO() { + this.issueApplicationId = ""; + this.issueTitle = ""; + this.gridName = ""; + this.issuePublisher = ""; + this.topicInfo = new TopicInfoWorkResultDTO(); + this.issuePublisherMobile = ""; + this.issueSuggestion = ""; + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryResDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryResDTO.java new file mode 100644 index 0000000000..07ffd0f86a --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryResDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 工作端:话题转议题申请详情- 审核历史查询 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 17:31 + */ +@Data +public class ApplicationHistoryResDTO implements Serializable { + private static final long serialVersionUID = -2680819847652745103L; + /** + * =id + */ + private String historyId; + + /** + * under_auditing:待审核; + * approved:审核通过; + * rejected:驳回; + */ + private String actionType; + + /** + * createdTime 对应时间戳 + */ + private Long operateTime; + + /** + * 审核时的说明 + */ + private String reason; + + /** + * 工作端人员姓名 + */ + private String staffName; + + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryResultDTO.java new file mode 100644 index 0000000000..b61c75415f --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryResultDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/17 10:21 上午 + */ +@Data +public class ApplicationHistoryResultDTO implements Serializable { + + private static final long serialVersionUID = 3235513565728092491L; + + /** + * 审核历史表id + */ + private String historyId; + + /** + * under_auditing:待审核; approved:已通过, rejected:已驳回 + */ + private String actionType; + + /** + * 操作时间戳 + */ + private Long operateTime; + + /** + * 驳回理由或者审核通过理由 + */ + private String reason; + + /** + * 工作人员姓名;居民端不展示此列 + */ + private String staffName; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryWorkResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryWorkResultDTO.java new file mode 100644 index 0000000000..ffbfcf483d --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationHistoryWorkResultDTO.java @@ -0,0 +1,53 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/19 下午2:08 + */ +@Data +public class ApplicationHistoryWorkResultDTO implements Serializable { + + private static final long serialVersionUID = 6310909348304378438L; + + /** + * 审核历史表id + */ + private String historyId; + + /** + * under_auditing:待审核; approved:已通过, rejected:已驳回 + */ + private String actionType; + + /** + * 操作时间戳 + */ + private Long operateTime; + + /** + * 驳回理由或者审核通过理由 + */ + private String reason; + + /** + * 工作人员姓名 + */ + private String staffName; + + @JsonIgnore + private String userId; + + public ApplicationHistoryWorkResultDTO() { + this.historyId = ""; + this.actionType = ""; + this.operateTime = NumConstant.ZERO_L; + this.reason = ""; + this.staffName = ""; + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationListResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationListResultDTO.java new file mode 100644 index 0000000000..12bec714dd --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ApplicationListResultDTO.java @@ -0,0 +1,48 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/11/17 10:31 上午 + */ +@Data +public class ApplicationListResultDTO implements Serializable { + + private static final long serialVersionUID = -4042091778432048631L; + + /** + * 申请id + */ + private String issueApplicationId; + + /** + * 议题标题 + */ + private String issueTitle; + + /** + * 建议 + */ + private String suggestion; + + /** + * 对应issue_application.UPDATED_TIME 对应的秒级时间戳 + */ + private Long time; + + /** + * 审核状态。under_auditing:审核中,approved:通过,rejected:驳回 + */ + private String applyStatus; + + public ApplicationListResultDTO() { + this.issueTitle = ""; + this.suggestion = ""; + this.time = NumConstant.ZERO_L; + this.applyStatus = ""; + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/FirstTopicShiftedToIssueApplicationResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/FirstTopicShiftedToIssueApplicationResultDTO.java new file mode 100644 index 0000000000..df37c1eec1 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/FirstTopicShiftedToIssueApplicationResultDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 话题首次提交转议题时的返参 注意:只是首次,二次提交统一调用重新编辑提交接口 + * @ClassName FirstTopicShiftedToIssueApplicationResultDTO + * @Auth wangc + * @Date 2020-11-18 16:50 + */ +@Data +public class FirstTopicShiftedToIssueApplicationResultDTO implements Serializable { + private static final long serialVersionUID = 329020301144053656L; + + public interface SwitchRequiredGroup extends CustomerClientShowGroup{} + + public interface AllowAuditionGroup extends CustomerClientShowGroup{} + + public interface ForbidAuditionGroup extends CustomerClientShowGroup{} + + /** + * 已开启审核:open; 无需审核:close + */ + @NotBlank(message = "审核开关不能为空",groups = {SwitchRequiredGroup.class,AllowAuditionGroup.class,ForbidAuditionGroup.class}) + private String auditSwitch; + + /** + * 如果无需审核,直接生成议题,返回议题Id + * 如果需要审核,该属性为空 + */ + @NotBlank(message = "议题Id不能为空",groups = {ForbidAuditionGroup.class}) + private String issueId; + + /** + * 如果需要审核,生成议题申请记录,返回申请Id + * 如果无需审核,该属性为空 + */ + @NotBlank(message = "议题审核Id不能为空",groups = {AllowAuditionGroup.class}) + private String issueApplicationId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueApplicationResDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueApplicationResDTO.java new file mode 100644 index 0000000000..1b2a91950d --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueApplicationResDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 待审核|| 已驳回 列表 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 17:22 + */ +@Data +public class IssueApplicationResDTO implements Serializable { + private static final long serialVersionUID = -1452471134719960837L; + /** + * 申请id + */ + private String issueApplicationId; + + /** + * 议题名称 + */ + private String issueTitle; + + /** + * 对应issue_application.UPDATED_TIME 对应的秒级时间戳 + */ + private Long latestTime; + + /** + * 建议 + */ + private String suggestion; + + /** + * 审核状态。under_auditing:审核中,approved:通过,rejected:驳回 + */ + private String applyStatus; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueSuggestionResDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueSuggestionResDTO.java new file mode 100644 index 0000000000..d71c26a999 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueSuggestionResDTO.java @@ -0,0 +1,55 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * 议题建议列表 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 14:00 + */ +@Data +public class IssueSuggestionResDTO implements Serializable { + private static final long serialVersionUID = -6217415454610258644L; + /** + * 建议id + */ + private String suggestionId; + + /** + * 建议内容 + */ + private String suggestion; + + /** + * 建议时间戳 + */ + private Long publishTime; + + /** + * true 公开 false 匿名 + */ + private Boolean publicFlag; + + /** + * 用户头像url + */ + private String headPhoto; + + /** + * 用户显示名称 + */ + private String userShowName; + + /** + * 态度 - opposition(反对)support(赞成) + */ + private String aititude; + + @JsonIgnore + private String userId; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/JoinVoteResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/JoinVoteResultDTO.java index 86ceda5aef..42ee2ecd47 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/JoinVoteResultDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/JoinVoteResultDTO.java @@ -17,4 +17,8 @@ public class JoinVoteResultDTO implements Serializable { */ private Boolean joinVote; + /** + * 态度 - opposition(反对)support(赞成) 如果已投票,此列有值 + */ + private String attitude; } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ParameterResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ParameterResultDTO.java new file mode 100644 index 0000000000..40f3ff5c58 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ParameterResultDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/11/18 17:25 + */ +@Data +public class ParameterResultDTO implements Serializable { + private static final long serialVersionUID = 2557066213008529836L; + private String auditSwitch; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/SaveIssueSuggestionResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/SaveIssueSuggestionResultDTO.java new file mode 100644 index 0000000000..a3c4ba85b3 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/SaveIssueSuggestionResultDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 保存居民端用户对议题的建议或意见 返回议题id, 建议id + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 13:14 + */ +@Data +public class SaveIssueSuggestionResultDTO implements Serializable { + private static final long serialVersionUID = 8199657776260756910L; + private String issueId; + /** + * issue_suggestion表主键 + */ + private String suggestionId; + +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/TopicInfoResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/TopicInfoResultDTO.java new file mode 100644 index 0000000000..574d654891 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/TopicInfoResultDTO.java @@ -0,0 +1,50 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2020/11/17 10:14 上午 + */ +@Data +public class TopicInfoResultDTO implements Serializable { + + private static final long serialVersionUID = -3445869627210569553L; + + /** + * 话题id + */ + private String topicId; + + /** + * 话题发表人昵称 + */ + private String publishedUser; + + /** + * 话题发表时间戳 + */ + private Long publishedTime; + + /** + * 话题内容 + */ + private String topicContent; + + /** + * 话题图片集合 + */ + private List topicImgs; + + public TopicInfoResultDTO() { + this.publishedUser = ""; + this.publishedTime = NumConstant.ZERO_L; + this.topicContent = ""; + this.topicImgs = new ArrayList<>(); + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/TopicInfoWorkResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/TopicInfoWorkResultDTO.java new file mode 100644 index 0000000000..261b5a1672 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/TopicInfoWorkResultDTO.java @@ -0,0 +1,61 @@ +package com.epmet.dto.result; + +import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2020/11/17 10:14 上午 + */ +@Data +public class TopicInfoWorkResultDTO implements Serializable { + + private static final long serialVersionUID = -3445869627210569553L; + + /** + * 话题id + */ + private String topicId; + + /** + * 话题发表人昵称 + */ + private String publishedUser; + + /** + * 话题发表时间戳 + */ + private Long publishedTime; + + /** + * 话题内容 + */ + private String topicContent; + + /** + * 话题图片集合 + */ + private List topicImgs; + + /** + * 话题发表人电话 + */ + private String topicPublishMobile; + + @JsonIgnore + private String topicUserId; + + public TopicInfoWorkResultDTO() { + this.topicId = ""; + this.publishedUser = ""; + this.publishedTime = NumConstant.ZERO_L; + this.topicContent = ""; + this.topicImgs = new ArrayList<>(); + this.topicPublishMobile = ""; + } +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/UserPubAuditingIssueResDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/UserPubAuditingIssueResDTO.java new file mode 100644 index 0000000000..9b47e5dda9 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/UserPubAuditingIssueResDTO.java @@ -0,0 +1,62 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 用户发起的议题列表-审核中列表 返参 + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/20 16:23 + */ +@Data +public class UserPubAuditingIssueResDTO implements Serializable { + private static final long serialVersionUID = -6452959808958252729L; + + /** + * 申请id + */ + private String issueApplicationId; + + /** + * under_auditing:待审核; rejected:驳回 + */ + private String applyStatus; + + /** + * 议题标题 + */ + private String issueTitle; + + /** + * 转议题时输入的建议 + */ + private String issueSuggestion; + + /** + * 网格名称: 组织-网格 + */ + private String gridName; + + /** + * 小组名称 + */ + private String groupName; + + /** + * 发起时间戳 + */ + private Long publishTime; + + + /** + * 网格id + */ + private String gridId; + + /** + * 小组id + */ + private String groupId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index f30a67b891..a974ae1109 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -3,19 +3,30 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IssueDTO; -import com.epmet.dto.form.MyPartIssuesFormDTO; -import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; -import com.epmet.dto.result.MyPartIssuesResultDTO; -import com.epmet.dto.result.MyPubIssuesAuditingResultDTO; +import com.epmet.dto.IssueApplicationDTO; +import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.*; import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack; +import com.epmet.resi.group.dto.group.form.AllIssueFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO; +import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; +import com.epmet.resi.group.dto.group.result.ApplicationHistoryResultDTO; +import com.epmet.resi.group.dto.group.result.ApplicationListResultDTO; +import com.epmet.resi.group.dto.group.result.*; import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO; import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -24,9 +35,38 @@ import java.util.List; * @date 2020/6/4 13:37 */ @FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class) -// @FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101") +//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101") public interface GovIssueOpenFeignClient { + /** + * @Description 待审核||已驳回 申请详情 + * @Param applicationDetailFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + @PostMapping("/gov/issue/issueapplication/applicationdetail") + Result applicationDetail(@RequestBody ApplicationDetailFormDTO applicationDetailFormDTO); + + /** + * @Description 话题转议题申请详情- 审核历史查询 + * @Param applicationHistoryFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + @PostMapping("/gov/issue/issueapplication/applicationhistory") + Result applicationHistory(@RequestBody ApplicationHistoryFormDTO applicationHistoryFormDTO); + + /** + * @Description 待审核||已驳回 申请列表 + * @Param applicationListFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + @PostMapping("/gov/issue/issueapplication/applicationlist") + Result> applicationList(@RequestBody ApplicationListFormDTO applicationListFormDTO); + + + /** * @Description 个人中心-我参与的议题列表 * @Param myPartIssuesFormDTO @@ -64,4 +104,109 @@ public interface GovIssueOpenFeignClient { */ @PostMapping("/gov/issue/issue/shiftissuetopic") Result> myShiftIssueTopics(@RequestBody MyShiftIssueTopicsFormDTO myShiftIssueTopicsFormDTO); + /** + * 小组表决中议题 + * @author zhaoqifeng + * @date 2020/11/17 14:58 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("/gov/issue/issue/groupvotinglist") + Result> getVotingListByGroup(@RequestBody AllIssueFormDTO formDTO); + + /** + * 小组已转项目议题 + * @author zhaoqifeng + * @date 2020/11/17 14:58 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("/gov/issue/issue/groupshiftprojectlist") + Result> getShiftProjectListByGroup(@RequestBody AllIssueFormDTO formDTO); + + /** + * 小组已关闭议题 + * @author zhaoqifeng + * @date 2020/11/17 14:58 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("/gov/issue/issue/groupclosedlist") + Result> getClosedListByGroup(@RequestBody AllIssueFormDTO formDTO); + + /** + * @param formDTO + * @author yinzuomei + * @description 查询用户对于某个议题的想法 返回一条记录 + * @Date 2020/11/18 10:17 + **/ + @PostMapping(value = "/gov/issue/issuesuggestion/queryuserissuesuggestion", consumes = MediaType.APPLICATION_JSON_VALUE) + Result queryIssueSuggestion(@RequestBody UserIssueSuggestionFormDTO formDTO); + + /** + * @param issueSuggestionDTO + * @author yinzuomei + * @description 保存居民端用户对议题的建议或意见 + * @Date 2020/11/18 13:24 + **/ + @PostMapping(value = "/gov/issue/issuesuggestion/save", consumes = MediaType.APPLICATION_JSON_VALUE) + Result saveIssueSuggestion(@RequestBody IssueSuggestionDTO issueSuggestionDTO); + + /** + * @param formDTO + * @author yinzuomei + * @description 分页按条件查询issue_application + * @Date 2020/11/18 16:40 + **/ + @PostMapping(value = "/gov/issue/issueapplication/listissueapp",consumes = MediaType.APPLICATION_JSON_VALUE) + Result> listIssueApp(@RequestBody IssueAppQueryFormDTO formDTO); + + /** + * @param formDTO + * @author yinzuomei + * @description 根据issue_application.id查询审核历史 + * @Date 2020/11/18 17:03 + **/ + @PostMapping(value = "/gov/issue/issueapplicationhistory/querybyissueapplicationid",consumes = MediaType.APPLICATION_JSON_VALUE) + Result> queryByIssueApplicationId(@RequestBody IssueApplicationIdFormDTO formDTO); + + /** + * @Description 根据条件查询议题申请信息 + * @param params + * @return com.epmet.commons.tools.utils.Result> + * @author wangc + * @date 2020.11.18 15:47 + */ + @GetMapping("/gov/issue/issueapplication/list") + Result> list(@RequestParam Map params); + + /** + * @Description 话题转移提接口 这里的逻辑包含 + * 是否需要审核 ,如无需审核,直接生成Issue,不需要对application做新增/更新,无需新增history + * 如需要审核,先查看是否存在application,如果有,做响应的更新,否则新增一条,并且相应地新增一条history + * 因此,二次编辑提交申请时,也将走以上逻辑,在封装好所需参数后,调用该方法即可 + * + * 注意: + * 如果想要工作端审核时,也调用该接口,需要在传参里加上审核入参DTO(IssueAuditionFormDTO) + * 如果该属性为null,则表示当前操作非审核而是居民在试图转议题 + * 在审核调用该接口之前,需要组装好生成议题所需的数据,因为是直接从gov/issue路径下调用 + * 先在gov-issue服务中查询议题的标题、建议等信息,再去gov-grid获取dataFilter数据 + * 然后去resi-group中查询话题作者昵称、议题发起人名昵称,组装好参数后可以调用下列方法 + * 如果是驳回,则不需要组装以上数据 + * @param param + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.19 10:02 + */ + @PostMapping(value = "/gov/issue/issue/topic-shift-issue") + Result topicShiftedToIssueV2(@RequestBody IssueShiftedFromTopicFormDTO param); + + /** + * @param fomrDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:21 + **/ + @PostMapping(value = "/gov/issue/issueapplication/queryuserpubauditingissues") + Result> queryUserPubAuditingIssues(@RequestBody UserPubAuditingIssueFormDTO fomrDTO); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index 8fa91ff4f7..ea59c6d349 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -4,16 +4,25 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.IssueDTO; -import com.epmet.dto.form.MyPartIssuesFormDTO; -import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; -import com.epmet.dto.result.MyPartIssuesResultDTO; -import com.epmet.dto.result.MyPubIssuesAuditingResultDTO; +import com.epmet.dto.IssueApplicationDTO; +import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.*; import com.epmet.feign.GovIssueOpenFeignClient; +import com.epmet.resi.group.dto.group.form.AllIssueFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO; +import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; +import com.epmet.resi.group.dto.group.result.ApplicationHistoryResultDTO; +import com.epmet.resi.group.dto.group.result.ApplicationListResultDTO; +import com.epmet.resi.group.dto.group.result.*; import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO; import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO; import org.springframework.stereotype.Component; import java.util.List; +import java.util.Map; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -23,6 +32,20 @@ import java.util.List; */ @Component public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient { + @Override + public Result applicationDetail(ApplicationDetailFormDTO applicationDetailFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"applicationDetail",applicationDetailFormDTO); + } + + @Override + public Result applicationHistory(ApplicationHistoryFormDTO applicationHistoryFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"applicationHistory",applicationHistoryFormDTO); + } + + @Override + public Result> applicationList(ApplicationListFormDTO applicationListFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"applicationList",applicationListFormDTO); + } @Override public Result> myPartIssues(MyPartIssuesFormDTO myPartIssuesFormDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"myPartIssues",myPartIssuesFormDTO); @@ -42,4 +65,132 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result> myShiftIssueTopics(MyShiftIssueTopicsFormDTO myShiftIssueTopicsFormDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"myShiftIssueTopics",myShiftIssueTopicsFormDTO); } + /** + * 小组表决中议题 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + * @author zhaoqifeng + * @date 2020/11/17 14:58 + */ + @Override + public Result> getVotingListByGroup(AllIssueFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getVotingListByGroup", formDTO); + } + + /** + * 小组已转项目议题 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + * @author zhaoqifeng + * @date 2020/11/17 14:58 + */ + @Override + public Result> getShiftProjectListByGroup(AllIssueFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getShiftProjectListByGroup", formDTO); + } + + /** + * 小组已关闭议题 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + * @author zhaoqifeng + * @date 2020/11/17 14:58 + */ + @Override + public Result> getClosedListByGroup(AllIssueFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "getShiftProjectListByGroup", formDTO); + } + + /** + * @param formDTO + * @author yinzuomei + * @description + * @Date 2020/11/18 10:17 + **/ + @Override + public Result queryIssueSuggestion(UserIssueSuggestionFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "queryIssueSuggestion", formDTO); + } + + /** + * @param issueSuggestionDTO + * @author yinzuomei + * @description 保存居民端用户对议题的建议或意见 + * @Date 2020/11/18 13:24 + **/ + @Override + public Result saveIssueSuggestion(IssueSuggestionDTO issueSuggestionDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "saveIssueSuggestion", issueSuggestionDTO); + } + + /** + * @param formDTO + * @author yinzuomei + * @description 分页按条件查询issue_application + * @Date 2020/11/18 16:40 + **/ + @Override + public Result> listIssueApp(IssueAppQueryFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "listIssueApp", formDTO); + } + + /** + * @param formDTO + * @author yinzuomei + * @description 根据issue_application.id查询审核历史 + * @Date 2020/11/18 17:03 + **/ + @Override + public Result> queryByIssueApplicationId(IssueApplicationIdFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "queryByIssueApplicationId", formDTO); + } + + /** + * @Description 根据条件查询议题申请信息 + * @param params + * @return com.epmet.commons.tools.utils.Result> + * @author wangc + * @date 2020.11.18 15:47 + */ + @Override + public Result> list(Map params) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "list", params); + } + + /** + * @Description 话题转移提接口 这里的逻辑包含 + * 是否需要审核 ,如无需审核,直接生成Issue,不需要对application做新增/更新,无需新增history + * 如需要审核,先查看是否存在application,如果有,做响应的更新,否则新增一条,并且相应地新增一条history + * 因此,二次编辑提交申请时,也将走以上逻辑,在封装好所需参数后,调用该方法即可 + * + * 注意: + * 如果想要工作端审核时,也调用该接口,需要在传参里加上审核入参DTO(IssueAuditionFormDTO) + * 如果该属性为null,则表示当前操作非审核而是居民在试图转议题 + * 在审核调用该接口之前,需要组装好生成议题所需的数据,因为是直接从gov/issue路径下调用 + * 先在gov-issue服务中查询议题的标题、建议等信息,再去gov-grid获取dataFilter数据 + * 然后去resi-group中查询话题作者昵称、议题发起人名昵称,组装好参数后可以调用下列方法 + * 如果是驳回,则不需要组装以上数据 + * @param param + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.19 10:02 + */ + @Override + public Result topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO param) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "topicShiftedToIssueV2", param); + } + + /** + * @param fomrDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:21 + **/ + @Override + public Result> queryUserPubAuditingIssues(UserPubAuditingIssueFormDTO fomrDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "queryUserPubAuditingIssues", fomrDTO); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/pom.xml b/epmet-module/gov-issue/gov-issue-server/pom.xml index 30dbd214f6..237ec96081 100644 --- a/epmet-module/gov-issue/gov-issue-server/pom.xml +++ b/epmet-module/gov-issue/gov-issue-server/pom.xml @@ -90,6 +90,12 @@ 2.0.0 compile + + com.epmet + epmet-user-client + 2.0.0 + compile + diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java index 42090ef7ff..9d0ac9efd7 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java @@ -94,5 +94,22 @@ public interface IssueConstant { String REVIEW_ISSUE = "议题评论失败,评论内容为:%s"; + String AUDIT_SWITCH = "audit_switch"; + String AUDIT_SWITCH_NAME = "议题发布前经网格员审核"; + String GRID = "grid"; + /** + * 审核状态:待审核 + */ + String UNDER_AUDITING="under_auditing"; + + /** + * 审核状态:通过 + */ + String APPROVED="approved"; + + /** + * 审核状态:驳回 + */ + String REJECTED="rejected"; } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java new file mode 100644 index 0000000000..63f5af6117 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationController.java @@ -0,0 +1,167 @@ +/** + * 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.controller; + +import com.epmet.commons.tools.dto.form.PageFormDTO; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.IssueApplicationDTO; +import com.epmet.dto.form.IssueAppQueryFormDTO; +import com.epmet.dto.form.UserPubAuditingIssueFormDTO; +import com.epmet.dto.result.IssueApplicationResDTO; +import com.epmet.dto.result.UserPubAuditingIssueResDTO; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO; +import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; +import com.epmet.resi.group.dto.group.result.ApplicationHistoryResultDTO; +import com.epmet.resi.group.dto.group.result.ApplicationListResultDTO; +import com.epmet.service.IssueApplicationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + + +/** + * 话题转议题申请表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-17 + */ +@RestController +@RequestMapping("issueapplication") +public class IssueApplicationController { + + @Autowired + private IssueApplicationService issueApplicationService; + + @GetMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = issueApplicationService.page(params); + return new Result>().ok(page); + } + + @GetMapping("{id}") + public Result get(@PathVariable("id") String id){ + IssueApplicationDTO data = issueApplicationService.get(id); + return new Result().ok(data); + } + + @PostMapping + public Result save(@RequestBody IssueApplicationDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + issueApplicationService.save(dto); + return new Result(); + } + + @PutMapping + public Result update(@RequestBody IssueApplicationDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + issueApplicationService.update(dto); + return new Result(); + } + + @DeleteMapping + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + issueApplicationService.delete(ids); + return new Result(); + } + + /** + * @Description 待审核||已驳回 申请详情 + * @Param applicationDetailFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + @PostMapping("applicationdetail") + public Result applicationDetail(@RequestBody ApplicationDetailFormDTO applicationDetailFormDTO){ + return new Result().ok(issueApplicationService.applicationDetail(applicationDetailFormDTO)); + } + + /** + * @Description 话题转议题申请详情- 审核历史查询 + * @Param applicationHistoryFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + @PostMapping("applicationhistory") + public Result applicationHistory(@RequestBody ApplicationHistoryFormDTO applicationHistoryFormDTO){ + return new Result().ok(issueApplicationService.applicationHistory(applicationHistoryFormDTO)); + } + + /** + * @Description 待审核||已驳回 申请列表 + * @Param applicationListFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + @PostMapping("applicationlist") + public Result> applicationList(@RequestBody ApplicationListFormDTO applicationListFormDTO){ + return new Result>().ok(issueApplicationService.applicationList(applicationListFormDTO)); + } + + /** + * @return com.epmet.commons.tools.utils.Result> + * @param formDTO + * @author yinzuomei + * @description 分页按条件查询issue_application + * @Date 2020/11/18 16:26 + **/ + @PostMapping("listissueapp") + public Result> listIssueApp(@RequestBody IssueAppQueryFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,IssueAppQueryFormDTO.Required.class); + List list=issueApplicationService.listIssueApp(formDTO); + return new Result>().ok(list); + } + /** + * @Description 根据条件查询议题申请信息 + * @param params + * @return com.epmet.commons.tools.utils.Result> + * @author wangc + * @date 2020.11.18 15:47 + */ + @GetMapping("list") + public Result> list(@RequestParam Map params){ + //此处限制必须传条件,不允许全查 + AssertUtils.isMapEmpty(params); + return new Result>().ok(issueApplicationService.list(params)); + } + + /** + * @param fomrDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:35 + **/ + @PostMapping("queryuserpubauditingissues") + public Result> queryUserPubAuditingIssues(@RequestBody UserPubAuditingIssueFormDTO fomrDTO) { + ValidatorUtils.validateEntity(fomrDTO, PageFormDTO.AddUserInternalGroup.class); + return new Result>().ok(issueApplicationService.queryUserPubAuditingIssues(fomrDTO)); + } +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationHistoryController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationHistoryController.java new file mode 100644 index 0000000000..1783042c9c --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueApplicationHistoryController.java @@ -0,0 +1,98 @@ +/** + * 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.controller; + +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.dto.IssueApplicationHistoryDTO; +import com.epmet.dto.form.IssueApplicationIdFormDTO; +import com.epmet.dto.result.ApplicationHistoryResDTO; +import com.epmet.service.IssueApplicationHistoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + + +/** + * 话题转议题审核历史表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-17 + */ +@RestController +@RequestMapping("issueapplicationhistory") +public class IssueApplicationHistoryController { + + @Autowired + private IssueApplicationHistoryService issueApplicationHistoryService; + + @GetMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = issueApplicationHistoryService.page(params); + return new Result>().ok(page); + } + + @GetMapping("{id}") + public Result get(@PathVariable("id") String id){ + IssueApplicationHistoryDTO data = issueApplicationHistoryService.get(id); + return new Result().ok(data); + } + + @PostMapping + public Result save(@RequestBody IssueApplicationHistoryDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + issueApplicationHistoryService.save(dto); + return new Result(); + } + + @PutMapping + public Result update(@RequestBody IssueApplicationHistoryDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + issueApplicationHistoryService.update(dto); + return new Result(); + } + + @DeleteMapping + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + issueApplicationHistoryService.delete(ids); + return new Result(); + } + + /** + * @param formDTO + * @author yinzuomei + * @description 根据issue_application.id查询审核历史 + * @Date 2020/11/18 16:57 + **/ + @PostMapping("querybyissueapplicationid") + public Result> queryByIssueApplicationId(@RequestBody IssueApplicationIdFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(issueApplicationHistoryService.queryByIssueApplicationId(formDTO.getIssueApplicationId())); + } +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java new file mode 100644 index 0000000000..d6519fb6e9 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueAuditController.java @@ -0,0 +1,122 @@ +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.commons.tools.validator.ValidatorUtils; +import com.epmet.constant.IssueConstant; +import com.epmet.dto.form.*; +import com.epmet.dto.result.ApplicationDetailWorkResultDTO; +import com.epmet.dto.result.ApplicationHistoryResDTO; +import com.epmet.dto.result.ApplicationHistoryWorkResultDTO; +import com.epmet.dto.result.IssueApplicationResDTO; +import com.epmet.service.IssueApplicationHistoryService; +import com.epmet.service.IssueApplicationService; +import com.epmet.service.IssueService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 基层治理-议题管理 议题审核相关API + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 17:13 + */ +@RestController +@RequestMapping("issueaudit") +public class IssueAuditController { + @Autowired + private IssueApplicationService issueApplicationService; + @Autowired + private IssueApplicationHistoryService issueApplicationHistoryService; + @Autowired + private IssueService issueService; + /** + * @param formDTO + * @author yinzuomei + * @description 待审核|| 已驳回 列表 + * @Date 2020/11/18 17:28 + * @description 待审核列表 + * @Date 2020/11/18 17:28 + **/ + @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_AUDITING_LIST) + @PostMapping("underauditinglist") + public Result> queryUnderAuditingList(@RequestBody IssueAppQueryFormDTO formDTO) { + formDTO.setApplyStatus(IssueConstant.UNDER_AUDITING); + ValidatorUtils.validateEntity(formDTO,IssueAppQueryFormDTO.Required.class,IssueAppQueryFormDTO.GovFormDTO.class); + return new Result>().ok(issueApplicationService.listIssueApp(formDTO)); + } + + /** + * @param formDTO + * @author yinzuomei + * @description 已驳回 列表 + * @Date 2020/11/18 17:28 + **/ + @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_REJECTED_LIST) + @PostMapping("rejectedlist") + public Result> queryRejectedList(@RequestBody IssueAppQueryFormDTO formDTO) { + formDTO.setApplyStatus(IssueConstant.REJECTED); + ValidatorUtils.validateEntity(formDTO,IssueAppQueryFormDTO.Required.class,IssueAppQueryFormDTO.GovFormDTO.class); + return new Result>().ok(issueApplicationService.listIssueApp(formDTO)); + } + + /** + * @return com.epmet.commons.tools.utils.Result> + * @param formDTO + * @author yinzuomei + * @description 通用查询列表接口,对其他服务开放 + * @Date 2020/11/19 13:30 + **/ + @PostMapping("applicationlist") + public Result> queryIssueAppliationList(@RequestBody IssueAppQueryFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO,IssueAppQueryFormDTO.Required.class); + return new Result>().ok(issueApplicationService.listIssueApp(formDTO)); + } + + /** + * @param formDTO + * @author yinzuomei + * @description 话题转议题申请详情- 审核历史查询 + * @Date 2020/11/18 17:40 + **/ + @PostMapping("applicationhistory") + public Result> queryApplicationHistory(@RequestBody IssueApplicationIdFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + return new Result>().ok(issueApplicationHistoryService.queryByIssueApplicationId(formDTO.getIssueApplicationId())); + } + + /** + * @Description 待审核||已驳回 申请详情  + * @Param applicationDetailWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + @PostMapping("applicationdetail") + public Result applicationDetailWork(@RequestBody ApplicationDetailWorkFormDTO applicationDetailWorkFormDTO){ + ValidatorUtils.validateEntity(applicationDetailWorkFormDTO, ApplicationDetailWorkFormDTO.ApplicationDetailWork.class); + return new Result().ok(issueApplicationHistoryService.applicationDetailWork(applicationDetailWorkFormDTO)); + } + + /** + * @Description 议题详情- 根据issueId查询审核历史 + * @Param applicationHistoryWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_DETAIL) + @PostMapping("issueaudithistory") + public Result> applicationHistoryWork(@RequestBody ApplicationHistoryWorkFormDTO applicationHistoryWorkFormDTO){ + ValidatorUtils.validateEntity(applicationHistoryWorkFormDTO,ApplicationHistoryWorkFormDTO.ApplicationHistoryWork.class); + return new Result>().ok(issueApplicationHistoryService.applicationHistoryWork(applicationHistoryWorkFormDTO)); + } + + @PostMapping("audit") + public Result audit(@LoginUser TokenDto token, @RequestBody IssueAuditionFormDTO param){ + return new Result().ok(issueService.audit(token,param)); + } +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java index f15de6e623..8ccb30aa15 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java @@ -5,6 +5,10 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.IssueDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.resi.group.dto.group.form.AllIssueFormDTO; +import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO; +import com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO; +import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import com.epmet.service.IssueService; import org.springframework.beans.factory.annotation.Autowired; @@ -62,6 +66,7 @@ public class IssueController { public Result> getShiftProjectList(@RequestBody ShiftProjectListFromDTO fromDTO) { return new Result>().ok(issueService.getShiftProjectList(fromDTO)); } + /** * @Description 话题转议题 供群组话题服务调用 * @param issueShiftedFromTopicFormDTO @@ -70,10 +75,36 @@ public class IssueController { **/ @PostMapping(value = "topicshiftissue") public Result issueShiftedToTopic(@RequestBody IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO){ - ValidatorUtils.validateEntity(issueShiftedFromTopicFormDTO); + ValidatorUtils.validateEntity(issueShiftedFromTopicFormDTO, IssueShiftedFromTopicFormDTO.IssueGenerationGroup.class); return new Result().ok(issueService.issueShiftedToTopic(issueShiftedFromTopicFormDTO)); } + /** + * @Description 话题转移提接口 这里的逻辑包含 + * 是否需要审核 ,如无需审核,直接生成Issue,不需要对application做新增/更新,无需新增history + * 如需要审核,先查看是否存在application,如果有,做响应的更新,否则新增一条,并且相应地新增一条history + * 因此,二次编辑提交申请时,也将走以上逻辑,在封装好所需参数后,调用该方法即可 + * + * 注意: + * 如果想要工作端审核时,也调用该接口,需要在传参里加上审核入参DTO(IssueAuditionFormDTO) + * 如果该属性为null,则表示当前操作非审核而是居民在试图转议题 + * 在审核调用该接口之前,需要组装好生成议题所需的数据,因为是直接从gov/issue路径下调用 + * 先在gov-issue服务中查询议题的标题、建议等信息,再去gov-grid获取dataFilter数据 + * 然后去resi-group中查询话题作者昵称、议题发起人名昵称,组装好参数后可以调用下列方法 + * 如果是驳回,则不需要组装以上数据 + * @param param + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.19 10:02 + */ + @PostMapping(value = "topic-shift-issue") + public Result topicShiftedToIssueV2(@RequestBody IssueShiftedFromTopicFormDTO param){ + ValidatorUtils.validateEntity(param, IssueShiftedFromTopicFormDTO.PublicIssueGroup.class); + return new Result().ok( + issueService.topicShiftedToIssueV2(param) + ); + } + /** * @Description 获取表决中议题列表 * @param issueListFormDTO @@ -179,5 +210,41 @@ public class IssueController { ValidatorUtils.validateEntity(myShiftIssueTopicsFormDTO, MyShiftIssueTopicsFormDTO.MyShiftIssueTopics.class); return new Result>().ok(issueService.myShiftIssueTopics(myShiftIssueTopicsFormDTO)); } + /** + * 小组表决中议题 + * @author zhaoqifeng + * @date 2020/11/17 14:58 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("groupvotinglist") + public Result> getVotingListByGroup(@RequestBody AllIssueFormDTO formDTO) { + return new Result>().ok(issueService.getVotingListByGroup(formDTO)); + } + + /** + * 小组已转项目议题 + * @author zhaoqifeng + * @date 2020/11/17 14:58 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("groupshiftprojectlist") + public Result> getShiftProjectListByGroup(@RequestBody AllIssueFormDTO formDTO) { + return new Result>().ok(issueService.getShiftProjectListByGroup(formDTO)); + } + + /** + * 小组已关闭议题 + * @author zhaoqifeng + * @date 2020/11/17 14:58 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("groupclosedlist") + public Result> getClosedListByGroup(@RequestBody AllIssueFormDTO formDTO) { + return new Result>().ok(issueService.getClosedListByGroup(formDTO)); + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueCustomerParameterController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueCustomerParameterController.java index 7371c32666..a9353aea01 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueCustomerParameterController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueCustomerParameterController.java @@ -26,6 +26,8 @@ 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.IssueCustomerParameterDTO; +import com.epmet.dto.form.ParameterFormDTO; +import com.epmet.dto.result.ParameterResultDTO; import com.epmet.excel.IssueCustomerParameterExcel; import com.epmet.service.IssueCustomerParameterService; import org.springframework.beans.factory.annotation.Autowired; @@ -43,7 +45,7 @@ import java.util.Map; * @since v1.0.0 2020-05-11 */ @RestController -@RequestMapping("issuecustomerparameter") +@RequestMapping("parameter") public class IssueCustomerParameterController { @Autowired @@ -91,4 +93,46 @@ public class IssueCustomerParameterController { ExcelUtils.exportExcelToTarget(response, null, list, IssueCustomerParameterExcel.class); } + /** + * 议题发布审核-初始化 + * @author zhaoqifeng + * @date 2020/11/18 15:26 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("reviewinit") + public Result reviewInit(@RequestBody ParameterFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, DefaultGroup.class); + ParameterResultDTO result = issueCustomerParameterService.reviewInit(formDTO); + return new Result().ok(result); + } + + /** + * 议题发布审核-保存 + * @author zhaoqifeng + * @date 2020/11/18 15:26 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("reviewsave") + public Result reviewSave(@RequestBody ParameterFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, AddGroup.class, DefaultGroup.class); + issueCustomerParameterService.reviewSave(formDTO); + return new Result(); + } + + /** + * 议题发布审核-恢复默认 + * @author zhaoqifeng + * @date 2020/11/18 15:26 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("reviewdefault") + public Result reviewDefault(@RequestBody ParameterFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, DefaultGroup.class); + issueCustomerParameterService.reviewDefault(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/IssueSuggestionController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java new file mode 100644 index 0000000000..4ce01a56d5 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSuggestionController.java @@ -0,0 +1,87 @@ +/** + * 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.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.form.EvaluationListFormDTO; +import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.result.IssueSuggestionResDTO; +import com.epmet.dto.result.SaveIssueSuggestionResultDTO; +import com.epmet.service.IssueSuggestionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +/** + * 居民端用户对议题建议或意见表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-18 + */ +@RestController +@RequestMapping("issuesuggestion") +public class IssueSuggestionController { + + @Autowired + private IssueSuggestionService issueSuggestionService; + + /** + * @param formDTO + * @author yinzuomei + * @description 查询用户对于某个议题的想法 返回一条记录 + * @Date 2020/11/18 10:12 + **/ + @PostMapping("queryuserissuesuggestion") + public Result queryUserIssueSuggestion(@RequestBody UserIssueSuggestionFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + IssueSuggestionDTO issueSuggestionDTO=issueSuggestionService.queryUserIssueSuggestion(formDTO); + return new Result().ok(issueSuggestionDTO); + } + + /** + * @param dto + * @author yinzuomei + * @description 保存居民端用户对议题的建议或意见 + * @Date 2020/11/18 13:15 + **/ + @PostMapping("save") + public Result saveIssueSuggestion(@RequestBody IssueSuggestionDTO dto) { + SaveIssueSuggestionResultDTO resultDTO = issueSuggestionService.saveIssueSuggestion(dto); + return new Result().ok(resultDTO); + } + + /** + * @param formDTO + * @author yinzuomei + * @description 议题建议列表 + * @Date 2020/11/18 14:15 + **/ + @PostMapping("list") + public Result> listIssueSug(@RequestBody EvaluationListFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + List list = issueSuggestionService.listIssueSug(formDTO); + return new Result>().ok(list); + } +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java new file mode 100644 index 0000000000..38ec62c1d6 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationDao.java @@ -0,0 +1,69 @@ +/** + * 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.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IssueApplicationDTO; +import com.epmet.dto.form.IssueAppQueryFormDTO; +import com.epmet.dto.form.UserPubAuditingIssueFormDTO; +import com.epmet.dto.result.IssueApplicationResDTO; +import com.epmet.dto.result.UserPubAuditingIssueResDTO; +import com.epmet.entity.IssueApplicationEntity; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; +import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; +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 2020-11-17 + */ +@Mapper +public interface IssueApplicationDao extends BaseDao { + + /** + * @Description 待审核||已驳回 申请详情 + * @Param applicationDetailFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + ApplicationDetailResultDTO applicationDetail(ApplicationDetailFormDTO applicationDetailFormDTO); + + + /** + * @param formDTO + * @author yinzuomei + * @description 分页按条件查询issue_application + * @Date 2020/11/18 16:28 + **/ + List selectList(IssueAppQueryFormDTO formDTO); + + /** + * @param formDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:37 + **/ + List selectUserPubAuditingIssues(UserPubAuditingIssueFormDTO formDTO); + + List selectByTopicId(@Param("topicId") String topicId); +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationHistoryDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationHistoryDao.java new file mode 100644 index 0000000000..8c2eaecb6c --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueApplicationHistoryDao.java @@ -0,0 +1,53 @@ +/** + * 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.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.ApplicationHistoryResDTO; +import com.epmet.dto.result.ApplicationHistoryWorkResultDTO; +import com.epmet.entity.IssueApplicationHistoryEntity; +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 2020-11-17 + */ +@Mapper +public interface IssueApplicationHistoryDao extends BaseDao { + + /** + * @param issueApplicationId + * @author yinzuomei + * @description 根据issue_application.id查询审核历史 + * @Date 2020/11/18 16:59 + **/ + List selectListByIssueApplicationId(String issueApplicationId); + + /** + * @Description 查询议题审核历史 + * @Param issueId + * @author zxc + * @date 2020/11/20 上午9:39 + */ + List applicationHistoryWork(@Param("issueId")String issueId); +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCustomerParameterDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCustomerParameterDao.java index 48fa1e3491..4e20988279 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCustomerParameterDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueCustomerParameterDao.java @@ -18,8 +18,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IssueCustomerParameterDTO; import com.epmet.entity.IssueCustomerParameterEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 议题客户参数定制表 @@ -29,5 +33,31 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IssueCustomerParameterDao extends BaseDao { - + + /** + * 获取客户配置 + * @author zhaoqifeng + * @date 2020/11/18 17:32 + * @param customerId + * @return java.util.List + */ + List selectParamByCustomer(@Param("customerId") String customerId); + + /** + * 删除客户配置 + * @author zhaoqifeng + * @date 2020/11/18 17:33 + * @param customerId + * @return int + */ + int deleteParamByCustomer(@Param("customerId") String customerId); + + /** + * @Description 查询客户下是否启用议题审核机制 + * @param customerId + * @return java.lang.String + * @author wangc + * @date 2020.11.19 14:11 + */ + String selectIssueAuditSwitchIfOpen(@Param("customerId") String customerId); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java index a39266ee76..4071e7fb30 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java @@ -22,6 +22,9 @@ import com.epmet.dto.IssueDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.IssueEntity; +import com.epmet.resi.group.dto.group.form.AllIssueFormDTO; +import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO; +import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -176,4 +179,32 @@ public interface IssueDao extends BaseDao { * @date 2020/11/13 3:42 下午 */ List myShiftIssueTopics(@Param("topicIds") List topicIds,@Param("customerId") String customerId); + + + /** + * 根据话题ID查找表决中议题列表 + * @author zhaoqifeng + * @date 2020/5/13 16:27 + * @param formDTO 参数 + * @return java.util.List + */ + List selectVotingListByTopic(AllIssueFormDTO formDTO); + + /** + * 根据话题ID查找已转项目议题列表 + * @author zhaoqifeng + * @date 2020/5/13 16:27 + * @param formDTO 参数 + * @return java.util.List + */ + List selectShiftIssueByTopic(AllIssueFormDTO formDTO); + + /** + * 根据话题ID查找已转项目议题列表 + * @author zhaoqifeng + * @date 2020/5/13 16:27 + * @param formDTO 参数 + * @return java.util.List + */ + List selectClosedListByTopic(AllIssueFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSuggestionDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSuggestionDao.java new file mode 100644 index 0000000000..a39aeef521 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSuggestionDao.java @@ -0,0 +1,54 @@ +/** + * 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.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.result.IssueSuggestionResDTO; +import com.epmet.entity.IssueSuggestionEntity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 居民端用户对议题建议或意见表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-18 + */ +@Mapper +public interface IssueSuggestionDao extends BaseDao { + + /** + * @return com.epmet.dto.IssueSuggestionDTO + * @param formDTO + * @author yinzuomei + * @description 查询用户对于某个议题的想法 返回一条记录 + * @Date 2020/11/18 10:12 + **/ + IssueSuggestionDTO selectUserIssueSuggestion(UserIssueSuggestionFormDTO formDTO); + + /** + * @param issueId + * @author yinzuomei + * @description 查询议题建议 + * @Date 2020/11/18 14:27 + **/ + List selectListIssueSugByIssueId(String issueId); +} \ 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 50b8ebda99..622a68e6cd 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.IssueVoteDetailDTO; import com.epmet.dto.form.VoteFormDTO; import com.epmet.dto.result.IssueAttitudeCountResultDTO; import com.epmet.dto.result.MyPartIssuesResultDTO; @@ -84,4 +85,14 @@ public interface IssueVoteDetailDao extends BaseDao { List myPartIssues(@Param("userId")String userId, @Param("topicIds")List topicIds); List myPartIssuesByTopicId(@Param("topicIds")List topicIds); + + /** + * @return com.epmet.dto.IssueVoteDetailDTO + * @param userId + * @param issueId + * @author yinzuomei + * @description 查询用户对某个议题的表决信息 + * @Date 2020/11/18 14:35 + **/ + IssueVoteDetailDTO selectUserIssueDet(@Param("userId") String userId, @Param("issueId") String issueId); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationEntity.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationEntity.java new file mode 100644 index 0000000000..8ec3f59be1 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationEntity.java @@ -0,0 +1,88 @@ +/** + * 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.entity; + +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 2020-11-17 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("issue_application") +public class IssueApplicationEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 议题名称 + */ + private String issueTitle; + + /** + * 建议 + */ + private String suggestion; + + /** + * 审核状态:under_auditing:待审核;approved:通过;rejected:驳回;自动通过:auto_passed + */ + private String applyStatus; + + /** + * 话题id + */ + private String topicId; + + /** + * 小组id + */ + private String groupId; + + /** + * 网格ID 居民端议题对应一个网格Id + */ + private String gridId; + + /** + * 审核通过后对应的 议题id + */ + private String issueId; + + /** + * 审核通过时填写的理由 + */ + private String passedReason; + + /** + * 审批通过时工作人员id,自动通过此列不存储 + */ + private String approveStaffId; + +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationHistoryEntity.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationHistoryEntity.java new file mode 100644 index 0000000000..516334333e --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueApplicationHistoryEntity.java @@ -0,0 +1,66 @@ +/** + * 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.entity; + +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 2020-11-17 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("issue_application_history") +public class IssueApplicationHistoryEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 话题转议题申请表 issue_application.id + */ + private String issueApplicationId; + + /** + * under_auditing:待审核; + * approved:审核通过; + * rejected:驳回; + * auto_passed:自动通过 + */ + private String actionType; + + /** + * 审核时的说明 + */ + private String reason; + + /** + * 工作端人员姓名 + */ + private String staffName; + +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueSuggestionEntity.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueSuggestionEntity.java new file mode 100644 index 0000000000..2d160030ab --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/entity/IssueSuggestionEntity.java @@ -0,0 +1,66 @@ +/** + * 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.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 2020-11-18 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("issue_suggestion") +public class IssueSuggestionEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * 议题id + */ + private String issueId; + + /** + * 议题所属网格id + */ + private String gridId; + + /** + * 对议题的想法 + */ + private String suggestion; + + /** + * 1公开; 0匿名 + */ + private Integer publicFlag; + +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueApplicationHistoryRedis.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueApplicationHistoryRedis.java new file mode 100644 index 0000000000..655a806b56 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueApplicationHistoryRedis.java @@ -0,0 +1,47 @@ +/** + * 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.redis; + +import com.epmet.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 话题转议题审核历史表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-17 + */ +@Component +public class IssueApplicationHistoryRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueApplicationRedis.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueApplicationRedis.java new file mode 100644 index 0000000000..9db70e4437 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueApplicationRedis.java @@ -0,0 +1,47 @@ +/** + * 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.redis; + +import com.epmet.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 话题转议题申请表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-17 + */ +@Component +public class IssueApplicationRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationHistoryService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationHistoryService.java new file mode 100644 index 0000000000..bce61424fb --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationHistoryService.java @@ -0,0 +1,124 @@ +/** + * 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.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IssueApplicationHistoryDTO; +import com.epmet.dto.form.ApplicationDetailWorkFormDTO; +import com.epmet.dto.form.ApplicationHistoryWorkFormDTO; +import com.epmet.dto.result.ApplicationDetailWorkResultDTO; +import com.epmet.dto.result.ApplicationHistoryResDTO; +import com.epmet.dto.result.ApplicationHistoryWorkResultDTO; +import com.epmet.entity.IssueApplicationHistoryEntity; + +import java.util.List; +import java.util.Map; + +/** + * 话题转议题审核历史表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-17 + */ +public interface IssueApplicationHistoryService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2020-11-17 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2020-11-17 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IssueApplicationHistoryDTO + * @author generator + * @date 2020-11-17 + */ + IssueApplicationHistoryDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2020-11-17 + */ + void save(IssueApplicationHistoryDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2020-11-17 + */ + void update(IssueApplicationHistoryDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2020-11-17 + */ + void delete(String[] ids); + + /** + * @param issueApplicationId + * @author yinzuomei + * @description 根据issue_application.id查询审核历史 + * @Date 2020/11/18 16:57 + **/ + List queryByIssueApplicationId(String issueApplicationId); + + /** + * @Description 待审核||已驳回 申请详情  + * @Param applicationDetailWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + ApplicationDetailWorkResultDTO applicationDetailWork(ApplicationDetailWorkFormDTO applicationDetailWorkFormDTO); + + /** + * @Description 议题详情- 根据issueId查询审核历史 + * @Param applicationHistoryWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + List applicationHistoryWork(ApplicationHistoryWorkFormDTO applicationHistoryWorkFormDTO); +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationService.java new file mode 100644 index 0000000000..6c2df1b318 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueApplicationService.java @@ -0,0 +1,146 @@ +/** + * 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.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IssueApplicationDTO; +import com.epmet.dto.form.IssueAppQueryFormDTO; +import com.epmet.dto.form.UserPubAuditingIssueFormDTO; +import com.epmet.dto.result.IssueApplicationResDTO; +import com.epmet.dto.result.UserPubAuditingIssueResDTO; +import com.epmet.entity.IssueApplicationEntity; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO; +import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; +import com.epmet.resi.group.dto.group.result.ApplicationHistoryResultDTO; +import com.epmet.resi.group.dto.group.result.ApplicationListResultDTO; + +import java.util.List; +import java.util.Map; + +/** + * 话题转议题申请表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-17 + */ +public interface IssueApplicationService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2020-11-17 + */ + PageData page(Map params); + + /** + * 默认查询 + * 该方法已被重写,因此直接加载XML里的mapper,而不进行切面增强,因此改写,逻辑同selectByTopicId + * @param params + * @return java.util.List + * @author generator + * @date 2020-11-17 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return IssueApplicationDTO + * @author generator + * @date 2020-11-17 + */ + IssueApplicationDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2020-11-17 + */ + void save(IssueApplicationDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2020-11-17 + */ + void update(IssueApplicationDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2020-11-17 + */ + void delete(String[] ids); + + /** + * @Description 待审核||已驳回 申请详情 + * @Param applicationDetailFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + ApplicationDetailResultDTO applicationDetail(ApplicationDetailFormDTO applicationDetailFormDTO); + + /** + * @Description 话题转议题申请详情- 审核历史查询 + * @Param applicationHistoryFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + ApplicationHistoryResultDTO applicationHistory(ApplicationHistoryFormDTO applicationHistoryFormDTO); + + /** + * @Description 待审核||已驳回 申请列表 + * @Param applicationListFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + List applicationList(ApplicationListFormDTO applicationListFormDTO); + + /** + * @return java.util.List + * @param formDTO + * @author yinzuomei + * @description 分页按条件查询issue_application + * @Date 2020/11/18 16:26 + **/ + List listIssueApp(IssueAppQueryFormDTO formDTO); + + /** + * @param fomrDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:35 + **/ + List queryUserPubAuditingIssues(UserPubAuditingIssueFormDTO fomrDTO); +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueAuditService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueAuditService.java new file mode 100644 index 0000000000..19f778fa63 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueAuditService.java @@ -0,0 +1,8 @@ +package com.epmet.service; + +/** + * @Author zxc + * @DateTime 2020/11/18 下午5:42 + */ +public interface IssueAuditService { +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueCustomerParameterService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueCustomerParameterService.java index 941d8efde9..7f265a92cb 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueCustomerParameterService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueCustomerParameterService.java @@ -20,6 +20,8 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IssueCustomerParameterDTO; +import com.epmet.dto.form.ParameterFormDTO; +import com.epmet.dto.result.ParameterResultDTO; import com.epmet.entity.IssueCustomerParameterEntity; import java.util.List; @@ -92,4 +94,40 @@ public interface IssueCustomerParameterService extends BaseService { **/ String issueShiftedToTopic(IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO); + /** + * @Description 话题转移提接口 这里的逻辑包含 + * 是否需要审核 ,如无需审核,直接生成Issue,不需要对application做新增/更新,无需新增history + * 如需要审核,先查看是否存在application,如果有,做响应的更新,否则新增一条,并且相应地新增一条history + * 因此,二次编辑提交申请时,也将走以上逻辑,在封装好所需参数后,调用该方法即可 + * + * 注意: + * 如果想要工作端审核时,也调用该接口,需要在传参里加上审核入参DTO(IssueAuditionFormDTO) + * 如果该属性为null,则表示当前操作非审核而是居民在试图转议题 + * 在审核调用该接口之前,需要组装好生成议题所需的数据,因为是直接从gov/issue路径下调用 + * 先在gov-issue服务中查询议题的标题、建议等信息,再去gov-grid获取dataFilter数据 + * 然后去resi-group中查询话题作者昵称、议题发起人名昵称,组装好参数后可以调用下列方法 + * 如果是驳回,则不需要组装以上数据 + * @param issueShiftedFromTopicFormDTO + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.19 10:02 + */ + FirstTopicShiftedToIssueApplicationResultDTO topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO issueShiftedFromTopicFormDTO); + + String audit(TokenDto token, IssueAuditionFormDTO param); + /** * @Description 表决中列表 * @param issueListForm @@ -245,4 +272,31 @@ public interface IssueService extends BaseService { */ List myShiftIssueTopics(MyShiftIssueTopicsFormDTO myShiftIssueTopicsFormDTO); + + /** + * 小组表决中议题 + * @author zhaoqifeng + * @date 2020/11/17 14:59 + * @param formDTO + * @return java.util.List + */ + List getVotingListByGroup(AllIssueFormDTO formDTO); + + /** + * 小组已转项目议题 + * @author zhaoqifeng + * @date 2020/11/17 14:59 + * @param formDTO + * @return java.util.List + */ + List getShiftProjectListByGroup(AllIssueFormDTO formDTO); + + /** + * 小组已关闭议题 + * @author zhaoqifeng + * @date 2020/11/17 14:59 + * @param formDTO + * @return java.util.List + */ + List getClosedListByGroup(AllIssueFormDTO formDTO); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java new file mode 100644 index 0000000000..a44b08085c --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSuggestionService.java @@ -0,0 +1,61 @@ +/** + * 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.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.form.EvaluationListFormDTO; +import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.result.IssueSuggestionResDTO; +import com.epmet.dto.result.SaveIssueSuggestionResultDTO; +import com.epmet.entity.IssueSuggestionEntity; + +import java.util.List; + +/** + * 居民端用户对议题建议或意见表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-18 + */ +public interface IssueSuggestionService extends BaseService { + + /** + * @param formDTO + * @author yinzuomei + * @description 查询用户对于某个议题的想法 返回一条记录 + * @Date 2020/11/18 10:12 + **/ + IssueSuggestionDTO queryUserIssueSuggestion(UserIssueSuggestionFormDTO formDTO); + + /** + * @param dto + * @author yinzuomei + * @description 保存居民端用户对议题的建议或意见 + * @Date 2020/11/18 13:16 + **/ + SaveIssueSuggestionResultDTO saveIssueSuggestion(IssueSuggestionDTO dto); + + /** + * @param formDTO + * @author yinzuomei + * @description 议题建议列表 + * @Date 2020/11/18 14:16 + **/ + List listIssueSug(EvaluationListFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationHistoryServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationHistoryServiceImpl.java new file mode 100644 index 0000000000..7caa252331 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationHistoryServiceImpl.java @@ -0,0 +1,175 @@ +/** + * 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.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.exception.RenException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dao.IssueApplicationHistoryDao; +import com.epmet.dto.IssueApplicationHistoryDTO; +import com.epmet.dto.form.ApplicationDetailWorkFormDTO; +import com.epmet.dto.form.ApplicationHistoryWorkFormDTO; +import com.epmet.dto.form.UserIdsFormDTO; +import com.epmet.dto.result.*; +import com.epmet.entity.IssueApplicationHistoryEntity; +import com.epmet.feign.EpmetUserOpenFeignClient; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; +import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; +import com.epmet.service.IssueApplicationHistoryService; +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; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 话题转议题审核历史表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-17 + */ +@Service +public class IssueApplicationHistoryServiceImpl extends BaseServiceImpl implements IssueApplicationHistoryService { + + @Autowired + private ResiGroupOpenFeignClient resiGroupOpenFeignClient; + @Autowired + private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IssueApplicationHistoryDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, IssueApplicationHistoryDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public IssueApplicationHistoryDTO get(String id) { + IssueApplicationHistoryEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IssueApplicationHistoryDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IssueApplicationHistoryDTO dto) { + IssueApplicationHistoryEntity entity = ConvertUtils.sourceToTarget(dto, IssueApplicationHistoryEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IssueApplicationHistoryDTO dto) { + IssueApplicationHistoryEntity entity = ConvertUtils.sourceToTarget(dto, IssueApplicationHistoryEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * @param issueApplicationId + * @author yinzuomei + * @description 根据issue_application.id查询审核历史 + * @Date 2020/11/18 16:57 + **/ + @Override + public List queryByIssueApplicationId(String issueApplicationId) { + return baseDao.selectListByIssueApplicationId(issueApplicationId); + } + + /** + * @Description 待审核||已驳回 申请详情  + * @Param applicationDetailWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + @Override + public ApplicationDetailWorkResultDTO applicationDetailWork(ApplicationDetailWorkFormDTO applicationDetailWorkFormDTO) { + ApplicationDetailFormDTO formDTO = new ApplicationDetailFormDTO(); + formDTO.setIssueApplicationId(applicationDetailWorkFormDTO.getIssueApplicationId()); + Result result = resiGroupOpenFeignClient.applicationDetail(formDTO); + if (!result.success()){ + throw new RenException("工作端查询待审核||已驳回 申请详情失败......"); + } + if (null == result.getData()){ + return new ApplicationDetailWorkResultDTO(); + } + ApplicationDetailWorkResultDTO applicationDetailWorkResultDTO = ConvertUtils.sourceToTarget(result.getData(), ApplicationDetailWorkResultDTO.class); + TopicInfoWorkResultDTO topicInfoWorkResultDTO = ConvertUtils.sourceToTarget(result.getData().getTopicInfo(), TopicInfoWorkResultDTO.class); + applicationDetailWorkResultDTO.setTopicInfo(topicInfoWorkResultDTO); + return applicationDetailWorkResultDTO; + } + + /** + * @Description 议题详情- 根据issueId查询审核历史 + * @Param applicationHistoryWorkFormDTO + * @author zxc + * @date 2020/11/19 下午2:26 + */ + @Override + public List applicationHistoryWork(ApplicationHistoryWorkFormDTO applicationHistoryWorkFormDTO) { + List result = baseDao.applicationHistoryWork(applicationHistoryWorkFormDTO.getIssueId()); + if (CollectionUtils.isEmpty(result)){ + return new ArrayList<>(); + } + List userIds = result.stream().map(m -> m.getUserId()).collect(Collectors.toList()); + UserIdsFormDTO form = new UserIdsFormDTO(); + form.setUserIds(userIds); + Result> listResult = epmetUserOpenFeignClient.getStaffInfoList(form); + if (!listResult.success()){ + throw new RenException("议题审核历史查询用户基本信息失败......"); + } + result.forEach(r -> listResult.getData().stream().filter(u -> r.getUserId().equals(u.getStaffId())).forEach(u -> r.setStaffName(u.getStaffName()))); + return result; + } + +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java new file mode 100644 index 0000000000..71e62d3e1f --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueApplicationServiceImpl.java @@ -0,0 +1,178 @@ +/** + * 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.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.IssueApplicationDao; +import com.epmet.dto.IssueApplicationDTO; +import com.epmet.dto.form.IssueAppQueryFormDTO; +import com.epmet.dto.form.UserPubAuditingIssueFormDTO; +import com.epmet.dto.result.IssueApplicationResDTO; +import com.epmet.dto.result.UserPubAuditingIssueResDTO; +import com.epmet.entity.IssueApplicationEntity; +import com.epmet.resi.group.dto.group.form.ApplicationDetailFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationHistoryFormDTO; +import com.epmet.resi.group.dto.group.form.ApplicationListFormDTO; +import com.epmet.resi.group.dto.group.result.ApplicationDetailResultDTO; +import com.epmet.resi.group.dto.group.result.ApplicationHistoryResultDTO; +import com.epmet.resi.group.dto.group.result.ApplicationListResultDTO; +import com.epmet.service.IssueApplicationService; +import com.github.pagehelper.PageHelper; +import com.epmet.utils.ModuleConstants; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 话题转议题申请表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-17 + */ +@Service +public class IssueApplicationServiceImpl extends BaseServiceImpl implements IssueApplicationService { + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, IssueApplicationDTO.class); + } + + /** + * @Description 该方法已被重写,因此直接加载XML里的mapper,而不进行切面增强,因此改写,逻辑同selectByTopicId + * @param params + * @return java.util.List + * @author wangc + * @date 2020.11.30 09:53 + */ + @Override + public List list(Map params) { + //List entityList = baseDao.selectList(getWrapper(params)); + return baseDao.selectByTopicId((String)params.get(ModuleConstants.FIELD_JAVA_TOPIC_ID)); + //return ConvertUtils.sourceToTarget(entityList, IssueApplicationDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + String topicId = (String)params.get(ModuleConstants.FIELD_JAVA_TOPIC_ID); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + wrapper.eq(StringUtils.isNotBlank(topicId), ModuleConstants.FIELD_SQL_TOPIC_ID, topicId); + return wrapper; + } + + @Override + public IssueApplicationDTO get(String id) { + IssueApplicationEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, IssueApplicationDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(IssueApplicationDTO dto) { + IssueApplicationEntity entity = ConvertUtils.sourceToTarget(dto, IssueApplicationEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(IssueApplicationDTO dto) { + IssueApplicationEntity entity = ConvertUtils.sourceToTarget(dto, IssueApplicationEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * @param formDTO + * @return java.util.List + * @author yinzuomei + * @description 分页按条件查询issue_application + * @Date 2020/11/18 16:26 + **/ + @Override + public List listIssueApp(IssueAppQueryFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(),formDTO.getPageSize()); + return baseDao.selectList(formDTO); + } + + /** + * @param formDTO + * @author yinzuomei + * @description 查询某个用户发起的议题列表-审核中列表(待审核+已驳回) + * @Date 2020/11/23 9:35 + **/ + @Override + public List queryUserPubAuditingIssues(UserPubAuditingIssueFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(),formDTO.getPageSize()); + return baseDao.selectUserPubAuditingIssues(formDTO); + } + + /** + * @Description 待审核||已驳回 申请详情 + * @Param applicationDetailFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + @Override + public ApplicationDetailResultDTO applicationDetail(ApplicationDetailFormDTO applicationDetailFormDTO) { + ApplicationDetailResultDTO applicationDetailResultDTO = baseDao.applicationDetail(applicationDetailFormDTO); + return applicationDetailResultDTO; + } + + /** + * @Description 话题转议题申请详情- 审核历史查询 + * @Param applicationHistoryFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + @Override + public ApplicationHistoryResultDTO applicationHistory(ApplicationHistoryFormDTO applicationHistoryFormDTO) { + return null; + } + + /** + * @Description 待审核||已驳回 申请列表 + * @Param applicationListFormDTO + * @author zxc + * @date 2020/11/17 10:45 上午 + */ + @Override + public List applicationList(ApplicationListFormDTO applicationListFormDTO) { + return null; + } + +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueAuditServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueAuditServiceImpl.java new file mode 100644 index 0000000000..b379990021 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueAuditServiceImpl.java @@ -0,0 +1,17 @@ +package com.epmet.service.impl; + +import com.epmet.service.IssueAuditService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Author zxc + * @DateTime 2020/11/18 下午5:42 + */ +@Service +@Slf4j +public class IssueAuditServiceImpl implements IssueAuditService { + + + +} diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCustomerParameterServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCustomerParameterServiceImpl.java index 1a751ab574..98899856cb 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCustomerParameterServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueCustomerParameterServiceImpl.java @@ -23,10 +23,14 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.constant.IssueConstant; import com.epmet.dao.IssueCustomerParameterDao; import com.epmet.dto.IssueCustomerParameterDTO; +import com.epmet.dto.form.ParameterFormDTO; +import com.epmet.dto.result.ParameterResultDTO; import com.epmet.entity.IssueCustomerParameterEntity; import com.epmet.service.IssueCustomerParameterService; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -96,4 +100,80 @@ public class IssueCustomerParameterServiceImpl extends BaseServiceImpl list = baseDao.selectParamByCustomer(formDTO.getCustomerId()); + if (CollectionUtils.isEmpty(list)) { + list = baseDao.selectParamByCustomer("default"); + } + list.forEach(dto -> { + switch (dto.getParameterKey()) { + case IssueConstant.AUDIT_SWITCH: + result.setAuditSwitch(dto.getParameterValue()); + break; + default: + break; + } + }); + return result; + } + + /** + * 议题发布审核-保存 + * + * @param formDTO + * @return void + * @author zhaoqifeng + * @date 2020/11/18 17:29 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void reviewSave(ParameterFormDTO formDTO) { + //删除旧配置 + baseDao.deleteParamByCustomer(formDTO.getCustomerId()); + IssueCustomerParameterEntity entity = new IssueCustomerParameterEntity(); + entity.setCustomerId(formDTO.getCustomerId()); + entity.setParameterKey(IssueConstant.AUDIT_SWITCH); + entity.setParameterName(IssueConstant.AUDIT_SWITCH_NAME); + entity.setParameterValue(formDTO.getAuditSwitch()); + entity.setDescription("已开启审核:open; 无需审核:close"); + insert(entity); + } + + /** + * 议题发布审核-恢复默认 + * + * @param formDTO + * @return void + * @author zhaoqifeng + * @date 2020/11/18 17:29 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void reviewDefault(ParameterFormDTO formDTO) { + //删除客户配置 + baseDao.deleteParamByCustomer(formDTO.getCustomerId()); + } + + /** + * @Description 查看客户是否启用议题审核机制 + * @param customerId + * @return java.lang.String + * @author wangc + * @date 2020.11.19 14:15 + */ + @Override + public String checkIssueAuditSwitchIfOpen(String customerId) { + return baseDao.selectIssueAuditSwitchIfOpen(customerId); + } + } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 94e8afc4cc..534810e8b9 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -13,20 +13,18 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; +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.ScanContentUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.IssueConstant; -import com.epmet.constant.OrgInfoConstant; import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.UserMessageConstant; import com.epmet.dao.IssueDao; import com.epmet.dao.IssueProcessDao; import com.epmet.dao.IssueProjectRelationDao; -import com.epmet.dao.IssueVoteStatisticalDao; -import com.epmet.dto.IssueDTO; -import com.epmet.dto.IssueProcessDTO; -import com.epmet.dto.IssueVoteStatisticalDTO; +import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.IssueEntity; @@ -35,28 +33,30 @@ import com.epmet.entity.IssueProjectRelationEntity; import com.epmet.feign.*; import com.epmet.redis.GovIssueRedis; import com.epmet.redis.IssueVoteDetailRedis; +import com.epmet.resi.group.dto.group.form.AllIssueFormDTO; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; +import com.epmet.resi.group.dto.group.result.GroupClosedListResultDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; +import com.epmet.resi.group.dto.group.result.GroupShiftProjectListResultDTO; +import com.epmet.resi.group.dto.group.result.GroupVotingListResultDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; +import com.epmet.resi.group.dto.topic.form.ResiTopicTurnIssueFromDTO; import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO; import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO; import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; -import com.epmet.service.IssueProcessService; -import com.epmet.service.IssueProjectRelationService; -import com.epmet.service.IssueService; -import com.epmet.service.IssueVoteStatisticalService; +import com.epmet.service.*; import com.epmet.utils.ModuleConstants; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import java.util.*; import java.util.stream.Collectors; @@ -68,6 +68,8 @@ import java.util.stream.Collectors; @Service public class IssueServiceImpl extends BaseServiceImpl implements IssueService { + protected static final Logger logger = LoggerFactory.getLogger(IssueServiceImpl.class); + @Autowired private IssueDao issueDao; @Autowired @@ -90,9 +92,6 @@ public class IssueServiceImpl extends BaseServiceImpl imp private GovOrgOpenFeignClient govOrgOpenFeignClient; @Autowired private ResiGroupOpenFeignClient resiGroupOpenFeignClient; - - protected static final Logger logger = LoggerFactory.getLogger(IssueServiceImpl.class); - @Autowired private IssueProcessService issueProcessService; @Autowired @@ -100,11 +99,19 @@ public class IssueServiceImpl extends BaseServiceImpl imp @Autowired private IssueProjectRelationService issueProjectRelationService; @Autowired - private IssueVoteStatisticalDao issueVoteStatisticalDao; + private IssueCustomerParameterService configurationParameterService; + @Autowired + private IssueApplicationService applicationService; + @Autowired + private IssueApplicationHistoryService historyService; @Autowired private EpmetUserFeignClient epmetUserFeignClient; @Autowired + private EpmetUserOpenFeignClient userOpenFeignClient; + @Autowired private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + + @Value("${openapi.scan.server.url}") private String scanApiUrl; @Value("${openapi.scan.method.textSyncScan}") @@ -249,8 +256,11 @@ public class IssueServiceImpl extends BaseServiceImpl imp issueDTO.setIssueStatus(ModuleConstants.ISSUE_STATUS_VOTING); issueDTO.setDecidedTime(issueShiftedFromTopicFormDTO.getCreatedTime()); int issueAffectedRow = baseDao.insertOne(issueDTO); - if(issueAffectedRow == NumConstant.ONE && StringUtils.isNotBlank(issueDTO.getId())){ - //2.新增议题流程 + + if(issueAffectedRow == NumConstant.ONE && (StringUtils.isNotBlank(issueDTO.getId()) || StringUtils.isNotBlank(issueDTO.getIssueId()))){ + if(StringUtils.isNotBlank(issueDTO.getIssueId())) issueDTO.setId(issueDTO.getIssueId()); + + //2.新增议题流程 IssueProcessDTO issueProcessDTO = new IssueProcessDTO(); issueProcessDTO.setIssueId(issueDTO.getId()); issueProcessDTO.setIssueStatus(ModuleConstants.ISSUE_STATUS_VOTING); @@ -271,6 +281,8 @@ public class IssueServiceImpl extends BaseServiceImpl imp ModuleConstants.FAILURE_TO_ADD_ISSUE_PROCESS_LOG_TEMPLATE,issueDTO.getId())); throw new RenException(ModuleConstants.FAILURE_TO_ADD_ISSUE_PROCESS); } + + //3.新增议题表决统计表 IssueVoteStatisticalDTO voteStatistical = new IssueVoteStatisticalDTO(); voteStatistical.setIssueId(issueDTO.getId()); @@ -283,6 +295,8 @@ public class IssueServiceImpl extends BaseServiceImpl imp issueVoteDetailRedis.set(voteInitCache); //4.该网格下表决中议题总数量+1 govIssueRedis.addWorkGrassrootsIssueRedDotValue(issueShiftedFromTopicFormDTO.getGridId()); + + if(StringUtils.isNotBlank(issueShiftedFromTopicFormDTO.getIssueId())) issueDTO.setId(issueShiftedFromTopicFormDTO.getIssueId()); return issueDTO.getId(); } logger.warn(String.format( @@ -292,6 +306,229 @@ public class IssueServiceImpl extends BaseServiceImpl imp throw new RenException(ModuleConstants.FAILURE_TO_ADD_ISSUE); } + /** + * @Description 话题转移提接口,这里的逻辑包含: + * 是否需要审核 ,如无需审核,直接生成issue,不需要对application做新增/更新,无需新增history + * 如需要审核,先查看是否存在application,如果有,做响应的更新,否则新增一条,并且相应地新增一条history + * 因此,二次编辑提交申请时,也将走以上逻辑,在封装好所需参数后,调用该方法即可 + * + * 注意: + * 如果想要工作端审核时,也调用该接口,需要在传参里加上审核入参DTO(IssueAuditionFormDTO) + * 如果该属性为null,则表示当前操作非审核而是居民在试图转议题 + * 在审核调用该接口之前,需要组装好生成议题所需的数据,因为是直接从gov/issue路径下调用 + * 先在gov-issue服务中查询议题的标题、建议等信息,再去gov-grid获取dataFilter数据 + * 然后去resi-group中查询话题作者昵称、议题发起人名昵称,组装好参数后可以调用下列方法 + * 如果是驳回,则不需要组装以上数据 + * @param param + * @return com.epmet.dto.result.FirstTopicShiftedToIssueApplicationResultDTO + * @author wangc + * @date 2020.11.19 10:02 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public FirstTopicShiftedToIssueApplicationResultDTO topicShiftedToIssueV2(IssueShiftedFromTopicFormDTO param) { + FirstTopicShiftedToIssueApplicationResultDTO result = new FirstTopicShiftedToIssueApplicationResultDTO(); + + //0.判断此次来源是否审核,是居民端还是工作端 + boolean isStaffAudition = null != param.getAudition(); + //1.查询该客户下是否开启议题审核 + //为了防止当工作人员审核时,议题审核开关被关闭,这时统一视为审核开启,将工作端的审核动作继续进行 + boolean ifOpen = isStaffAudition ? true : + !StringUtils.equals(ModuleConstants.AUDIT_SWITCH_CLOSE,configurationParameterService.checkIssueAuditSwitchIfOpen(param.getCustomerId())); + + //初始化缺省状态 : 审核中 + String defaultStatusUnderAuditing = isStaffAudition ? param.getAudition().getActionType() : + ( ifOpen ? ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING: ModuleConstants.AUDITION_TYPE_AUTO_PASSED); + + result.setAuditSwitch(ifOpen ? ModuleConstants.AUDIT_SWITCH_OPEN : ModuleConstants.AUDIT_SWITCH_CLOSE); + + //2.居民端组长提交议题审核 + + //默认打开 + //2.1查询是否存在application记录 + Map applicationParam = new HashMap<>(); + applicationParam.put(ModuleConstants.FIELD_JAVA_TOPIC_ID, param.getTopicId()); + List applicationList = applicationService.list(applicationParam); + List applyIds = new LinkedList<>(); + boolean ifRepeat = false; + //没有历史提交记录 + if (CollectionUtils.isEmpty(applicationList)) { + //审核开关开启 + if(ifOpen) { + //首次提交 新增application + IssueApplicationDTO newApplication = ConvertUtils.sourceToTarget(param, IssueApplicationDTO.class); + newApplication.setApplyStatus(defaultStatusUnderAuditing); + newApplication.setId(UUID.randomUUID().toString().replace("-", "")); + applicationService.save(newApplication); + applyIds.add(newApplication.getId()); + } + } else { + //重新提交 或 工作端审核议题 更新application + if (applicationList.size() > NumConstant.ONE) { + applicationList.sort(Comparator.comparing(IssueApplicationDTO::getUpdatedTime, Collections.reverseOrder())); + logger.error("com.epmet.service.impl.IssueServiceImpl.topicShiftedToIssueV2,查出多条转移提提交记录,话题Id:{}", param.getTopicId()); + } + if(!isStaffAudition) + if(StringUtils.equals(ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING,applicationList.iterator().next().getApplyStatus())) + ifRepeat = true; + applyIds.addAll(applicationList.stream().map(IssueApplicationDTO::getId).collect(Collectors.toList())); + } + if(!ifRepeat) { + applicationList.forEach(apply -> { + IssueApplicationDTO carrier = new IssueApplicationDTO(); + carrier.setId(apply.getId()); + carrier.setApplyStatus(defaultStatusUnderAuditing); + carrier.setSuggestion(isStaffAudition ? apply.getSuggestion() : param.getSuggestion()); + carrier.setIssueTitle(isStaffAudition ? apply.getIssueTitle() : param.getIssueTitle()); + carrier.setPassedReason(isStaffAudition ? StringUtils.equals(ModuleConstants.AUDITION_TYPE_APPROVAL,param.getAudition().getActionType()) ? param.getAudition().getReason() :null : null); + carrier.setIssueId(isStaffAudition ? StringUtils.equals(ModuleConstants.AUDITION_TYPE_APPROVAL,param.getAudition().getActionType()) ? param.getIssueId() : null : null); + carrier.setApproveStaffId(isStaffAudition ? StringUtils.equals(ModuleConstants.AUDITION_TYPE_APPROVAL,param.getAudition().getActionType()) ? param.getUserId() : null : null); + + carrier.setUpdatedTime(param.getCreatedTime()); + carrier.setUpdatedBy(param.getUserId()); + applicationService.update(carrier); + }); + + + //新增history + applyIds.forEach(id -> { + + IssueApplicationHistoryDTO history = new IssueApplicationHistoryDTO(); + history.setActionType(defaultStatusUnderAuditing); + history.setCreatedTime(param.getCreatedTime()); + history.setCustomerId(param.getCustomerId()); + history.setIssueApplicationId(id); + history.setReason(isStaffAudition ? param.getAudition().getReason() : null); + history.setStaffName(isStaffAudition ? param.getAudition().getStaffName() : null); + + historyService.save(history); + if (!ifOpen) { + IssueApplicationHistoryDTO repeatApplyRecord = new IssueApplicationHistoryDTO(); + repeatApplyRecord.setActionType(ModuleConstants.ISSUE_APPLICATION_STATUS_UNDER_AUDITING); + repeatApplyRecord.setCreatedTime(param.getCreatedTime()); + repeatApplyRecord.setCustomerId(param.getCustomerId()); + repeatApplyRecord.setIssueApplicationId(id); + + historyService.save(repeatApplyRecord); + } + }); + + } + if(CollectionUtils.isNotEmpty(applyIds)) + result.setIssueApplicationId(applyIds.iterator().next()); + + + //只有当审核开关关闭 或 工作端人员审核通过时才生成议题 + if(!ifOpen || StringUtils.equals(ModuleConstants.AUDITION_TYPE_APPROVAL,defaultStatusUnderAuditing)){ + ValidatorUtils.validateEntity(param, IssueShiftedFromTopicFormDTO.IssueGenerationGroup.class); + if(isStaffAudition) param.setUserId(param.getIssueAuthorId()); + result.setIssueId(issueShiftedToTopic(param)); + if(StringUtils.equals(ModuleConstants.AUDITION_TYPE_AUTO_PASSED,defaultStatusUnderAuditing)){ + applicationList.forEach(apply -> { + IssueApplicationDTO carrier = new IssueApplicationDTO(); + carrier.setId(apply.getId()); + carrier.setIssueId(result.getIssueId()); + carrier.setUpdatedTime(param.getCreatedTime()); + carrier.setUpdatedBy(param.getUserId()); + applicationService.update(carrier); + }); + } + + } + + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String audit(TokenDto token, IssueAuditionFormDTO param) { + + if (StringUtils.isNotBlank(param.getReason())) { + TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); + TextTaskDTO taskDTO = new TextTaskDTO(); + taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); + taskDTO.setContent(param.getReason()); + textScanParamDTO.getTasks().add(taskDTO); + Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); + if (!textSyncScanResult.success()){ + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); + } + } + } + + Date unifiedDate = new Date(); + + IssueApplicationDTO application = applicationService.get(param.getIssueApplicationId()); + if(null == application) throw new RenException("没有相应的议题申请信息"); + + IssueApplicationDTO app2update = new IssueApplicationDTO(); + //app2update.setId(param.getIssueApplicationId()); + //app2update.setApplyStatus(param.getActionType()); + //app2update.setUpdatedBy(token.getUserId()); + //app2update.setUpdatedTime(unifiedDate); + + + + //if(!StringUtils.equals(ModuleConstants.AUDITION_TYPE_REJECT,param.getActionType())){ + //app2update.setPassedReason(param.getReason()); + ResiTopicTurnIssueFromDTO form = new ResiTopicTurnIssueFromDTO(); + form.setActionType(param.getActionType()); + form.setUnifiedDate(unifiedDate);form.setUserId(application.getCreatedBy());form.setTopicId(application.getTopicId());form.setIssueId(UUID.randomUUID().toString().replaceAll("-", "")); + + Result topicInfo = resiGroupOpenFeignClient.fetchTopicInfoWhenAuditIssue(form); + if(topicInfo.success() && null != topicInfo.getData()){ + CommonGridIdFormDTO grid = new CommonGridIdFormDTO(); + grid.setGridId(application.getGridId()); + grid.setUserId(token.getUserId()); + Result dataFilter = govOrgOpenFeignClient.gridDataFilter(grid); + if(dataFilter.success() && null != dataFilter.getData()){ + com.epmet.resi.group.dto.topic.form.IssueShiftedFromTopicFormDTO issueParam = topicInfo.getData(); + IssueShiftedFromTopicFormDTO issueParam2 = + ConvertUtils.sourceToTarget(issueParam, IssueShiftedFromTopicFormDTO.class); + issueParam2.setOrgId(dataFilter.getData().getAgencyId()); + issueParam2.setOrgIdPath(dataFilter.getData().getOrgIdPath()); + issueParam2.setOrgName(dataFilter.getData().getOrgName()); + + issueParam2.setIssueTitle(application.getIssueTitle());issueParam2.setSuggestion(application.getSuggestion()); + //staffName + StaffBasicInfoFromDTO staffParam = new StaffBasicInfoFromDTO(); staffParam.setStaffId(token.getUserId()); + Result staffBasicInfo = userOpenFeignClient.getStaffBasicInfo(staffParam); + if(staffBasicInfo.success() && null != staffBasicInfo.getData()) { + param.setStaffName(staffBasicInfo.getData().getRealName()); + } + issueParam2.setAudition(param); + //如果这里不赋值,在更新application和新增applicationHistory时会检测到updatedBy和createdBy为空 + //从而去httpServletRequest中获取当前请求的userId,FIXME 但是其余字段不会! + issueParam2.setUserId(token.getUserId()); + FirstTopicShiftedToIssueApplicationResultDTO issueResult = topicShiftedToIssueV2(issueParam2); + app2update.setIssueId(issueResult.getIssueId()); + + } + }else throw new RenException(topicInfo.getInternalMsg()); + + + //发送站内信 + UserMessageFormDTO msgObj = new UserMessageFormDTO(); + msgObj.setApp(ModuleConstants.APP_RESI); + msgObj.setCustomerId(application.getCustomerId()); + msgObj.setGridId(application.getGridId()); + msgObj.setMessageContent(String.format(ModuleConstants.ISSUE_AUDIT_RESULT_MSG_CONTENT_TEMPLATE,application.getIssueTitle(),StringUtils.equals(ModuleConstants.AUDITION_TYPE_REJECT,param.getActionType()) ? ModuleConstants.ISSUE_ACTION_REJECT : ModuleConstants.ISSUE_ACTION_SHIFT)); + msgObj.setReadFlag(ReadFlagConstant.UN_READ); + msgObj.setTitle(ModuleConstants.ISSUE_AUDIT_RESULT_MSG_TITLE_TEMPLATE); + msgObj.setUserId(application.getCreatedBy()); + List msgList = new LinkedList<>();msgList.add(msgObj); + epmetMessageOpenFeignClient.saveUserMessageList(msgList); + + //} + //applicationService.update(app2update); + + + return app2update.getIssueId(); + } + /** * @Description 表决中列表 * @param issueListForm @@ -927,4 +1164,72 @@ public class IssueServiceImpl extends BaseServiceImpl imp return result; } + /** + * 小组表决中议题 + * + * @param formDTO + * @return java.util.List + * @author zhaoqifeng + * @date 2020/11/17 14:59 + */ + @Override + public List getVotingListByGroup(AllIssueFormDTO formDTO) { + //查询条件 + int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); + formDTO.setPageNo(pageIndex); + return baseDao.selectVotingListByTopic(formDTO); + } + + /** + * 小组已转项目议题 + * + * @param formDTO + * @return java.util.List + * @author zhaoqifeng + * @date 2020/11/17 14:59 + */ + @Override + public List getShiftProjectListByGroup(AllIssueFormDTO formDTO) { + List resultList = new ArrayList<>(); + //查询条件 + int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); + formDTO.setPageNo(pageIndex); + List issueList = baseDao.selectShiftIssueByTopic(formDTO); + if (CollectionUtils.isEmpty(issueList)) { + return resultList; + } + //遍历获取所有的议题Id + List issueIds = issueList.stream().map(IssueEntity::getId).collect(Collectors.toList()); + ShiftProjectsFromDTO shiftProjectsFromDTO = new ShiftProjectsFromDTO(); + shiftProjectsFromDTO.setIssueIds(issueIds); + List projectList = govProjectFeignClient.getProjectByIssue(shiftProjectsFromDTO).getData(); + resultList = issueList.stream().flatMap(issue -> projectList.stream().filter(p -> issue.getId().equals(p.getOriginId())).map(project ->{ + GroupShiftProjectListResultDTO shiftProject = new GroupShiftProjectListResultDTO(); + shiftProject.setIssueId(issue.getId()); + shiftProject.setIssueTitle(issue.getIssueTitle()); + shiftProject.setCurrentHandleDepartMent(project.getDepartmentNameList()); + shiftProject.setPublicReply(project.getPublicReply()); + shiftProject.setIssueShiftedTime(project.getCreatedTime().getTime()/NumConstant.ONE_THOUSAND); + shiftProject.setProjectStatus(project.getStatus()); + return shiftProject; + })).collect(Collectors.toList()); + return resultList; + } + + /** + * 小组已关闭议题 + * + * @param formDTO + * @return java.util.List + * @author zhaoqifeng + * @date 2020/11/17 14:59 + */ + @Override + public List getClosedListByGroup(AllIssueFormDTO formDTO) { + //查询条件 + int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); + formDTO.setPageNo(pageIndex); + return baseDao.selectClosedListByTopic(formDTO); + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueSuggestionServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueSuggestionServiceImpl.java new file mode 100644 index 0000000000..bbf037ea80 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueSuggestionServiceImpl.java @@ -0,0 +1,173 @@ +/** + * 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.service.impl; + +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.scan.param.TextScanParamDTO; +import com.epmet.commons.tools.scan.param.TextTaskDTO; +import com.epmet.commons.tools.scan.result.SyncScanResult; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.ScanContentUtils; +import com.epmet.dao.IssueSuggestionDao; +import com.epmet.dao.IssueVoteDetailDao; +import com.epmet.dto.IssueDTO; +import com.epmet.dto.IssueSuggestionDTO; +import com.epmet.dto.IssueVoteDetailDTO; +import com.epmet.dto.form.EvaluationListFormDTO; +import com.epmet.dto.form.UserIssueSuggestionFormDTO; +import com.epmet.dto.form.UserResiInfoListFormDTO; +import com.epmet.dto.result.IssueSuggestionResDTO; +import com.epmet.dto.result.SaveIssueSuggestionResultDTO; +import com.epmet.dto.result.UserResiInfoResultDTO; +import com.epmet.entity.IssueSuggestionEntity; +import com.epmet.feign.EpmetUserFeignClient; +import com.epmet.service.IssueService; +import com.epmet.service.IssueSuggestionService; +import com.github.pagehelper.PageHelper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 居民端用户对议题建议或意见表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-11-18 + */ +@Slf4j +@Service +public class IssueSuggestionServiceImpl extends BaseServiceImpl implements IssueSuggestionService { + @Autowired + private IssueService issueService; + @Value("${openapi.scan.server.url}") + private String scanApiUrl; + @Value("${openapi.scan.method.textSyncScan}") + private String textSyncScanMethod; + @Autowired + private EpmetUserFeignClient epmetUserFeignClient; + @Autowired + private IssueVoteDetailDao issueVoteDetailDao; + + /** + * @param formDTO + * @author yinzuomei + * @description 查询用户对于某个议题的想法 返回一条记录 + * @Date 2020/11/18 10:12 + **/ + @Override + public IssueSuggestionDTO queryUserIssueSuggestion(UserIssueSuggestionFormDTO formDTO) { + return baseDao.selectUserIssueSuggestion(formDTO); + } + + /** + * @param dto + * @author yinzuomei + * @description 保存居民端用户对议题的建议或意见 + * @Date 2020/11/18 13:16 + **/ + @Override + public SaveIssueSuggestionResultDTO saveIssueSuggestion(IssueSuggestionDTO dto) { + //是否表决过 + IssueVoteDetailDTO issueVoteDetailDTO = issueVoteDetailDao.selectUserIssueDet(dto.getCreatedBy(), dto.getIssueId()); + if(null==issueVoteDetailDTO){ + throw new RenException(EpmetErrorCode.VOTE_ISSUE_PLEASE.getCode()); + } + //校验建议内容 + TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); + TextTaskDTO taskDTO = new TextTaskDTO(); + taskDTO.setDataId(UUID.randomUUID().toString().replace("-", "")); + taskDTO.setContent(dto.getSuggestion()); + textScanParamDTO.getTasks().add(taskDTO); + Result textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); + if (!textSyncScanResult.success()) { + log.warn("居民端用户对议题发表建议,内容审核服务返回失败"); + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } else { + if (!textSyncScanResult.getData().isAllPass()) { + throw new RenException(EpmetErrorCode.TEXT_SCAN_FAILED.getCode()); + } + } + //赋值网格id + IssueDTO issueDTO = issueService.get(dto.getIssueId()); + if (null == issueDTO) { + throw new RenException(String.format("根据议题id%s,没有找到议题信息", dto.getIssueId())); + } + dto.setGridId(issueDTO.getGridId()); + dto.setCustomerId(issueDTO.getCustomerId()); + //插入 + IssueSuggestionEntity entity = ConvertUtils.sourceToTarget(dto, IssueSuggestionEntity.class); + insert(entity); + SaveIssueSuggestionResultDTO resultDTO = new SaveIssueSuggestionResultDTO(); + resultDTO.setIssueId(dto.getIssueId()); + resultDTO.setSuggestionId(entity.getId()); + return resultDTO; + } + + /** + * @param formDTO + * @author yinzuomei + * @description 议题建议列表 + * @Date 2020/11/18 14:16 + **/ + @Override + public List listIssueSug(EvaluationListFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); + List list = baseDao.selectListIssueSugByIssueId(formDTO.getIssueId()); + //用户信息公开的userId集合 + Set userIds = new HashSet<>(); + list.forEach(issueSuggestion -> { + if (issueSuggestion.getPublicFlag()) { + userIds.add(issueSuggestion.getUserId()); + } + IssueVoteDetailDTO issueVoteDetailDTO = issueVoteDetailDao.selectUserIssueDet(issueSuggestion.getUserId(), formDTO.getIssueId()); + issueSuggestion.setAititude(null != issueVoteDetailDTO ? issueVoteDetailDTO.getAttitude() : StrConstant.EPMETY_STR); + }); + //查询这部分人的基本信息 + if (!CollectionUtils.isEmpty(userIds)) { + Result> userInfoRes = epmetUserFeignClient.getUserResiInfoList(new UserResiInfoListFormDTO(new ArrayList<>(userIds))); + if (userInfoRes.success() && !CollectionUtils.isEmpty(userInfoRes.getData())) { + Map userBaseInfoMap = userInfoRes.getData().stream().collect(Collectors.toMap(UserResiInfoResultDTO::getUserId, Function.identity())); + //赋值 + list.forEach(issueSuggestionInfo -> { + if (issueSuggestionInfo.getPublicFlag()) { + UserResiInfoResultDTO userInfo = userBaseInfoMap.get(issueSuggestionInfo.getUserId()); + if (null != userInfo && StringUtils.isNotBlank(userInfo.getHeadPhoto())) { + issueSuggestionInfo.setHeadPhoto(userInfo.getHeadPhoto()); + } + if (null != userInfo && StringUtils.isNotBlank(userInfo.getShowName())) { + issueSuggestionInfo.setUserShowName(userInfo.getShowName()); + } + } + }); + } + } + return list; + } + +} \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java index 56d3e30f3a..386f5521ef 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteDetailServiceImpl.java @@ -17,16 +17,16 @@ package com.epmet.service.impl; -import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.constant.IssueConstant; import com.epmet.dao.IssueDao; import com.epmet.dao.IssueVoteDetailDao; @@ -179,11 +179,24 @@ public class IssueVoteDetailServiceImpl extends BaseServiceImpl NumConstant.ZERO || issuePublisher > NumConstant.ZERO || publisherResult.getCheckTopicPublisher() > NumConstant.ZERO){ resultDTO.setJoinVote(true); }else { resultDTO.setJoinVote(false); + }*/ + IssueVoteDetailDTO issueVoteDetailDTO=baseDao.selectUserIssueDet(checkVoteFormDTO.getUserId(),checkVoteFormDTO.getIssueId()); + if(null!=issueVoteDetailDTO){ + resultDTO.setJoinVote(true); + resultDTO.setAttitude(issueVoteDetailDTO.getAttitude()); + return resultDTO; + } + if (issuePublisher > NumConstant.ZERO || publisherResult.getCheckTopicPublisher() > NumConstant.ZERO){ + resultDTO.setJoinVote(true); + resultDTO.setAttitude(StrConstant.EPMETY_STR); + }else { + resultDTO.setJoinVote(false); + resultDTO.setAttitude(StrConstant.EPMETY_STR); } return resultDTO; } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java index 7418ccfdf8..7aa596b986 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java @@ -9,62 +9,66 @@ public interface ModuleConstants { /** * 议题状态:表决中 - * */ + */ String ISSUE_STATUS_VOTING = "voting"; /** * 议题状态:已转项目 - * */ + */ String ISSUE_STATUS_SHIFT_PROJECT = "shift_project"; /** * 议题状态:已关闭 - * */ + */ String ISSUE_STATUS_CLOSED = "closed"; + /** + * 议题审核状态 审核中 + */ + String ISSUE_APPLICATION_STATUS_UNDER_AUDITING = "under_auditing"; /** * 议题来源:居民段话题 - * */ + */ String ISSUE_FROM_TOPIC = "resi_topic"; /** * 议题进展-当前操作组织类型-机构 不要与数据权限混淆!!! - * */ + */ String ISSUE_PROCESS_ORG_TYPE_AGENCY = "agency"; /** * 议题进展-当前操作组织类型-部门 不要与数据权限混淆!!! - * */ + */ String ISSUE_PROCESS_ORG_TYPE_DEPT = "dept"; /** * 议题进展-当前操作组织类型-网格 不要与数据权限混淆!!! - * */ + */ String ISSUE_PROCESS_ORG_TYPE_GRID = "grid"; /** * 话题转议题流程的操作文案模板 - * */ + */ String ISSUE_PROCESS_VOTING_OPERATION_EXPLAIN_TEMPLATE = "【%s】%s发表的话题被组长%s转为议题:【%s】"; /** * 新增议题流程记录失败日志模板 - * */ + */ String FAILURE_TO_ADD_ISSUE_PROCESS_LOG_TEMPLATE = "新增议题流程记录失败,议题Id:【%s】"; /** * 新增议题记录失败日志模板 - * */ + */ String FAILURE_TO_ADD_ISSUE_LOG_TEMPLATE = "新增议题记录失败,议题来源:【%s】,议题来源Id:【%s】"; /** * 新增议题流程记录失败日志模板 - * */ + */ String FAILURE_TO_ADD_ISSUE_PROCESS = "新增议题流程记录失败】"; /** * 新增议题记录失败日志模板 - * */ + */ String FAILURE_TO_ADD_ISSUE = "新增议题记录失败,议题来源"; String EMPTY_STR = ""; @@ -81,32 +85,73 @@ public interface ModuleConstants { String FIELD_JAVA_STATISTICAL_DATE = "statisticalDate"; + String FIELD_SQL_TOPIC_ID = "TOPIC_ID"; + + String FIELD_JAVA_TOPIC_ID = "topicId"; + /** * 议题表决态度 赞成 - * */ + */ String ISSUE_VOTING_ATTITUDE_SUPPORT = "support"; /** * 议题表决态度 反对 - * */ + */ String ISSUE_VOTING_ATTITUDE_OPPOSITION = "opposition"; String CREATED_OR_UPDATED_BY_SYSTEM = "system"; /** * 缓存中应表决数 - * */ String SHOULD_VOTE_COUNT = "shouldVoteCount"; /** * 没有找到指定议题异常模板 - * */ + */ String ISSUE_NOT_FOUND_EXCEPTION_TEMPLATE = "没有找到指定议题,议题Id:【%s】"; /** * 定时任务创建的数据 created_by - * */ + */ String CREATED_BY_SYSTEM = "system"; + /** + * 议题审核动作 通过 + */ + String AUDITION_TYPE_APPROVAL = "approved"; + + /** + * 当议题开关关闭时,申请和申请历史的状态为自动通过 + * 如果是首次提交,不生成申请和申请历史记录 + * 该值只适用于二次提交时,审核开关被关闭的情况 + */ + String AUDITION_TYPE_AUTO_PASSED = "auto_passed"; + + /** + * 议题审核动作 驳回 + */ + String AUDITION_TYPE_REJECT = "rejected"; + + /** + * 议题审核开关 开启 + */ + String AUDIT_SWITCH_OPEN = "open"; + + /** + * 议题审核开关 关闭 + */ + String AUDIT_SWITCH_CLOSE = "close"; + + String APP_GOV = "gov"; + + String APP_RESI = "resi"; + + String ISSUE_AUDIT_RESULT_MSG_TITLE_TEMPLATE = "您有一条议题审核消息"; + + String ISSUE_AUDIT_RESULT_MSG_CONTENT_TEMPLATE = "您好,您的%s话题已%s,请查看。"; + + String ISSUE_ACTION_SHIFT = "转议题"; + + String ISSUE_ACTION_REJECT = "驳回"; } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.2__issue_audit_tables.sql b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.2__issue_audit_tables.sql new file mode 100644 index 0000000000..93f8c2338e --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.2__issue_audit_tables.sql @@ -0,0 +1,37 @@ +drop table if exists issue_application; +CREATE TABLE `issue_application` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(32) NOT NULL COMMENT '客户ID', + `ISSUE_TITLE` varchar(128) NOT NULL COMMENT '议题名称 ', + `SUGGESTION` varchar(1024) NOT NULL COMMENT '建议', + `APPLY_STATUS` varchar(32) NOT NULL COMMENT '审核状态:under_auditing:待审核;approved:通过;rejected:驳回', + `TOPIC_ID` varchar(32) NOT NULL COMMENT '话题id', + `GROUP_ID` varchar(64) NOT NULL COMMENT '小组id', + `GRID_ID` varchar(32) NOT NULL COMMENT '网格ID 居民端议题对应一个网格Id', + `ISSUE_ID` varchar(64) DEFAULT NULL COMMENT '审核通过后对应的 议题id', + `PASSED_REASON` varchar(1024) DEFAULT NULL COMMENT '审核通过时填写的理由', + `DEL_FLAG` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除、1已删除', + `REVISION` int(11) NOT NULL DEFAULT '0' 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='话题转议题申请表'; + +drop table if exists issue_application_history; +CREATE TABLE `issue_application_history` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(32) NOT NULL COMMENT '客户ID', + `ISSUE_APPLICATION_ID` varchar(64) NOT NULL COMMENT '话题转议题申请表 issue_application.id', + `ACTION_TYPE` varchar(32) NOT NULL COMMENT 'under_auditing:提交审核;\r\napproved:审核通过,\r\nrejected:驳回', + `REASON` varchar(1024) DEFAULT NULL COMMENT '审核时的说明', + `STAFF_NAME` varchar(255) DEFAULT NULL COMMENT '工作端人员姓名', + `DEL_FLAG` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标识:0 未删除 1已删除', + `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '创建人 提交人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '修改人ID', + `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-issue/gov-issue-server/src/main/resources/db/migration/V0.0.3__issue_sugg_tables.sql b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.3__issue_sugg_tables.sql new file mode 100644 index 0000000000..0ee88d49d5 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.3__issue_sugg_tables.sql @@ -0,0 +1,16 @@ +drop table if exists issue_suggestion; +CREATE TABLE `issue_suggestion` ( + `ID` varchar(64) NOT NULL COMMENT '主键', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id customer.id', + `ISSUE_ID` varchar(64) NOT NULL COMMENT '议题id', + `GRID_ID` varchar(64) NOT NULL COMMENT '议题所属网格id', + `SUGGESTION` varchar(512) NOT NULL COMMENT '对议题的想法', + `PUBLIC_FLAG` tinyint(1) NOT NULL COMMENT '1公开; 0匿名', + `DEL_FLAG` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标识:0 未删除 1已删除', + `REVISION` int(11) NOT NULL DEFAULT '0' COMMENT '乐观锁', + `CREATED_BY` varchar(64) NOT NULL COMMENT '提建议的人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(64) NOT NULL COMMENT '修改人ID', + `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-issue/gov-issue-server/src/main/resources/db/migration/V0.0.4__issue_audit_addautopassed.sql b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.4__issue_audit_addautopassed.sql new file mode 100644 index 0000000000..9917d87b41 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.4__issue_audit_addautopassed.sql @@ -0,0 +1,2 @@ +ALTER TABLE issue_application MODIFY APPLY_STATUS VARCHAR(32) NOT NULL comment '审核状态:under_auditing:待审核;approved:通过;rejected:驳回;自动通过:auto_passed'; +alter table issue_application_history modify ACTION_TYPE varchar(32) not null comment 'under_auditing:提交审核;approved:审核通过,rejected:驳回;auto_passed:自动通过'; \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.5__add_issue_app_col.sql b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.5__add_issue_app_col.sql new file mode 100644 index 0000000000..1d3eb52d78 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.5__add_issue_app_col.sql @@ -0,0 +1,2 @@ +ALTER TABLE issue_application +ADD COLUMN(`APPROVE_STAFF_ID` VARCHAR(64) COMMENT '审批通过时工作人员id,自动通过此列不存储'); \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.6__add_default_audit_switch.sql b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.6__add_default_audit_switch.sql new file mode 100644 index 0000000000..81d1a20cc0 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/db/migration/V0.0.6__add_default_audit_switch.sql @@ -0,0 +1 @@ +INSERT INTO `issue_customer_parameter`(`ID`, `CUSTOMER_ID`, `PARAMETER_KEY`, `PARAMETER_NAME`, `PARAMETER_VALUE`, `DESCRIPTION`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('1', 'default', 'audit_switch', '议题发布前经网格员审核', 'close', '已开启审核:open; 无需审核:close', '0', 0, 'APP_USER', '2020-11-17 09:31:03', 'APP_USER', '2020-11-17 09:31:10'); diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml new file mode 100644 index 0000000000..3d94af1c56 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationDao.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationHistoryDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationHistoryDao.xml new file mode 100644 index 0000000000..33da8566ba --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueApplicationHistoryDao.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCustomerParameterDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCustomerParameterDao.xml index d0934a775e..bdf0c549db 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCustomerParameterDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueCustomerParameterDao.xml @@ -17,6 +17,27 @@ + + DELETE FROM issue_customer_parameter + WHERE CUSTOMER_ID = #{customerId} + + + + \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml index 21a7eddace..9c4b676771 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml @@ -127,7 +127,16 @@ revision - #{id}, + + + #{issueId}, + + + #{id}, + + + + #{issueStatus}, @@ -377,6 +386,69 @@ del_flag = 0 AND source_id = #{topicId} + + + + + SELECT + * + FROM + issue_suggestion i + WHERE + i.DEL_FLAG = '0' + AND i.ISSUE_ID = #{issueId} + AND i.CREATED_BY=#{userId} + + + + + \ 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 f0d4ec2069..426c741806 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 @@ -107,4 +107,16 @@ ORDER BY i.CREATED_TIME DESC + + + \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 16201827cc..2dab8452b3 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -305,4 +305,13 @@ public interface GovOrgOpenFeignClient { @PostMapping("/gov/org/customergrid/getcustomergridbygridid") Result getCustomerGridByGridId(@RequestBody CustomerGridFormDTO customerGridFormDTO); + /** + * @param gridForm + * @return Result + * @Author wangc + * @Description 获取网格所需要的数据权限内容 + * @Date 2020/3/30 10:45 + **/ + @PostMapping("/gov/org/customergrid/griddatafilter") + Result gridDataFilter(CommonGridIdFormDTO gridForm); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 477ed6ea6f..4776dec9b6 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -177,4 +177,10 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { public Result getCustomerGridByGridId(CustomerGridFormDTO customerGridFormDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getCustomerGridByGridId", customerGridFormDTO); } + + @Override + public Result gridDataFilter(CommonGridIdFormDTO gridForm) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "gridDataFilter", gridForm); + + } } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ParameterFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ParameterFormDTO.java new file mode 100644 index 0000000000..d05c1c520c --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ParameterFormDTO.java @@ -0,0 +1,56 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/11/18 15:00 + */ +@NoArgsConstructor +@Data +public class ParameterFormDTO implements Serializable { + + private static final long serialVersionUID = 6943367994919967821L; + /** + * 客户ID + */ + @NotBlank(message = "客户ID不能为空", groups = DefaultGroup.class) + private String customerId; + /** + * 可滞留天数 + */ + @NotBlank(message = "可滞留天数不能为空", groups = AddGroup.class) + private String detentionDays; + /** + * 计算方式 工作日work 日历天calendar + */ + @NotBlank(message = "计算方式 不能为空", groups = AddGroup.class) + private String calculation; + /** + * 即将超期提醒时间 + */ + @NotBlank(message = "即将超期提醒时间不能为空", groups = AddGroup.class) + private String remindTime; + /** + * 推送时间 默认 上午8点 + */ + @NotBlank(message = "推送时间不能为空", groups = AddGroup.class) + private String pushTime; + /** + * 设定核算单位天开始时间 + */ + @NotBlank(message = "设定核算单位天开始时间不能为空", groups = AddGroup.class) + private String startTime; + /** + * 设定核算单位天结束时间 + */ + @NotBlank(message = "设定核算单位天结束时间不能为空", groups = AddGroup.class) + private String endTime; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ParameterResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ParameterResultDTO.java new file mode 100644 index 0000000000..00d2cee217 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ParameterResultDTO.java @@ -0,0 +1,39 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/11/18 15:19 + */ +@Data +public class ParameterResultDTO implements Serializable { + private static final long serialVersionUID = -2066374948905858262L; + /** + * 可滞留天数 + */ + private String detentionDays; + /** + * 计算方式 工作日work 日历天calendar + */ + private String calculation; + /** + * 即将超期提醒时间 + */ + private String remindTime; + /** + * 推送时间 默认 上午8点 + */ + private String pushTime; + /** + * 设定核算单位天开始时间 + */ + private String startTime; + /** + * 设定核算单位天结束时间 + */ + private String endTime; +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java index 2d5ae69fbb..57564203de 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java @@ -11,17 +11,17 @@ public interface ParameterKeyConstant { * 可滞留天数 */ String DETENTION_DAYS = "detention_days"; - + String DETENTION_DAYS_NAME = "可滞留天数"; /** * 计算方式 */ String CALCULATION = "calculation"; + String CALCULATION_NAME = "计算方式"; /** * 计算方式-工作日 */ String WORK = "work"; - /** * 计算方式-日历天 */ @@ -31,14 +31,26 @@ public interface ParameterKeyConstant { * 即将超期提醒时间 */ String REMIND_TIME = "remind_time"; + String REMIND_TIME_NAME = "即将超期提醒时间"; /** * 推送时间 */ String PUSH_TIME = "push_time"; + String PUSH_TIME_NAME = "推送时间"; /** * 起止时间 */ String START_AND_END_TIME = "start_and_end_time"; + /** + * 设定核算单位天开始时间 + */ + String START_TIME = "start_time"; + String START_TIME_NAME = "设定核算单位天开始时间"; + /** + * 设定核算单位天结束时间 + */ + String END_TIME = "end_time"; + String END_TIME_NAME = "设定核算单位天结束时间"; } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/CustomerProjectParameterController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/CustomerProjectParameterController.java index 93139cfa21..2dbe8c0663 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/CustomerProjectParameterController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/CustomerProjectParameterController.java @@ -26,6 +26,8 @@ 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.CustomerProjectParameterDTO; +import com.epmet.dto.form.ParameterFormDTO; +import com.epmet.dto.result.ParameterResultDTO; import com.epmet.excel.CustomerProjectParameterExcel; import com.epmet.service.CustomerProjectParameterService; import org.springframework.beans.factory.annotation.Autowired; @@ -43,7 +45,7 @@ import java.util.Map; * @since v1.0.0 2020-05-11 */ @RestController -@RequestMapping("customerprojectparameter") +@RequestMapping("parameter") public class CustomerProjectParameterController { @Autowired @@ -91,4 +93,46 @@ public class CustomerProjectParameterController { ExcelUtils.exportExcelToTarget(response, null, list, CustomerProjectParameterExcel.class); } + /** + * 滞留提醒-初始化 + * @author zhaoqifeng + * @date 2020/11/18 15:26 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("remindinit") + public Result remindInit(@RequestBody ParameterFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, DefaultGroup.class); + ParameterResultDTO result = customerProjectParameterService.remindInit(formDTO); + return new Result().ok(result); + } + + /** + * 滞留提醒-保存 + * @author zhaoqifeng + * @date 2020/11/18 15:26 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("remindsave") + public Result remindSave(@RequestBody ParameterFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, AddGroup.class, DefaultGroup.class); + customerProjectParameterService.remindSave(formDTO); + return new Result(); + } + + /** + * 滞留提醒-恢复默认 + * @author zhaoqifeng + * @date 2020/11/18 15:26 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("reminddefault") + public Result remindDefault(@RequestBody ParameterFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, DefaultGroup.class); + customerProjectParameterService.remindDefault(formDTO); + return new Result(); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java index 349b07308b..f7ae09d16e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java @@ -70,4 +70,13 @@ public interface CustomerProjectParameterDao extends BaseDao list = getParameterByCustomer(formDTO.getCustomerId()); + if (CollectionUtils.isEmpty(list)) { + list = getParameterByCustomer("default"); + } + list.forEach(dto -> { + switch (dto.getParameterKey()) { + case ParameterKeyConstant.DETENTION_DAYS: + result.setDetentionDays(dto.getParameterValue()); + break; + case ParameterKeyConstant.CALCULATION: + result.setCalculation(dto.getParameterValue()); + break; + case ParameterKeyConstant.REMIND_TIME: + result.setRemindTime(dto.getParameterValue()); + break; + case ParameterKeyConstant.PUSH_TIME: + result.setPushTime(dto.getParameterValue()); + break; + case ParameterKeyConstant.START_TIME: + result.setStartTime(dto.getParameterValue()); + break; + case ParameterKeyConstant.END_TIME: + result.setEndTime(dto.getParameterValue()); + break; + default: + break; + } + }); + return result; + } + + /** + * 滞留提醒-保存 + * + * @param formDTO + * @return void + * @author zhaoqifeng + * @date 2020/11/18 15:33 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void remindSave(ParameterFormDTO formDTO) { + List list = new ArrayList<>(); + //删除旧数据 + baseDao.deleteByCustomer(formDTO.getCustomerId()); + //可滞留天数 + CustomerProjectParameterEntity detentionDays = new CustomerProjectParameterEntity(); + detentionDays.setCustomerId(formDTO.getCustomerId()); + detentionDays.setParameterKey(ParameterKeyConstant.DETENTION_DAYS); + detentionDays.setParameterValue(formDTO.getDetentionDays()); + detentionDays.setParameterName(ParameterKeyConstant.DETENTION_DAYS_NAME); + detentionDays.setDescription("默5天"); + list.add(detentionDays); + //计算方式 工作日work 日历天calendar + CustomerProjectParameterEntity calculation = new CustomerProjectParameterEntity(); + calculation.setCustomerId(formDTO.getCustomerId()); + calculation.setParameterKey(ParameterKeyConstant.CALCULATION); + calculation.setParameterValue(formDTO.getCalculation()); + calculation.setParameterName(ParameterKeyConstant.CALCULATION_NAME); + calculation.setDescription("计算方式 工作日work 日历天calendar"); + list.add(calculation); + //即将超期提醒时间 + CustomerProjectParameterEntity remindTime = new CustomerProjectParameterEntity(); + remindTime.setCustomerId(formDTO.getCustomerId()); + remindTime.setParameterKey(ParameterKeyConstant.REMIND_TIME); + remindTime.setParameterValue(formDTO.getRemindTime()); + remindTime.setParameterName(ParameterKeyConstant.REMIND_TIME_NAME); + remindTime.setDescription("默认 当天"); + list.add(remindTime); + //推送时间 + CustomerProjectParameterEntity pushTime = new CustomerProjectParameterEntity(); + pushTime.setCustomerId(formDTO.getCustomerId()); + pushTime.setParameterKey(ParameterKeyConstant.PUSH_TIME); + pushTime.setParameterValue(formDTO.getPushTime()); + pushTime.setParameterName(ParameterKeyConstant.PUSH_TIME_NAME); + pushTime.setDescription("默认 上午8点"); + list.add(pushTime); + //设定核算单位天开始时间 + CustomerProjectParameterEntity startTime = new CustomerProjectParameterEntity(); + startTime.setCustomerId(formDTO.getCustomerId()); + startTime.setParameterKey(ParameterKeyConstant.START_TIME); + startTime.setParameterValue(formDTO.getStartTime()); + startTime.setParameterName(ParameterKeyConstant.START_TIME_NAME); + startTime.setDescription("默认 00:00:00"); + list.add(startTime); + //设定核算单位天结束时间 + CustomerProjectParameterEntity endTime = new CustomerProjectParameterEntity(); + endTime.setCustomerId(formDTO.getCustomerId()); + endTime.setParameterKey(ParameterKeyConstant.END_TIME); + endTime.setParameterValue(formDTO.getEndTime()); + endTime.setParameterName(ParameterKeyConstant.END_TIME_NAME); + endTime.setDescription("默认 23:59:00"); + list.add(endTime); + insertBatch(list); + + } + + /** + * 滞留提醒-恢复默认 + * + * @param formDTO + * @return void + * @author zhaoqifeng + * @date 2020/11/18 15:33 + */ + @Override + public void remindDefault(ParameterFormDTO formDTO) { + //删除配置 + baseDao.deleteByCustomer(formDTO.getCustomerId()); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml index 51e132a61c..0f9a7aeef7 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml @@ -17,6 +17,9 @@ + + DELETE FROM customer_project_parameter WHERE CUSTOMER_ID = #{customerId} + + SELECT + rg.id AS "groupId", + rg.group_name AS "groupName", + rg.group_head_photo AS "groupHeadPhoto", + rg.group_introduction AS "groupIntroduction", + rgc.URL AS "groupCodeUrl" + FROM + resi_group rg + LEFT JOIN resi_group_code rgc ON rgc.group_id = rg.id AND rgc.del_flag = '0' + WHERE + rg.del_flag = '0' + AND rg.id = #{groupId} + + and rg.customer_id = #{customerId} + + + and rg.grid_id = #{gridId} + + + + diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml index 3bafe14fb1..ccc4d1b945 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml @@ -150,7 +150,8 @@ AND gmo.GROUP_ID = rg.id AND gmo.OPERATE_STATUS = 'under_auditting' ) AS totalApplyingMember, - rgs.TOTAL_TOPICS + rgs.TOTAL_TOPICS, + rg.AUDIT_SWITCH FROM resi_group rg LEFT JOIN resi_group_statistical rgs ON ( rg.id = rgs.RESI_GROUP_ID ) @@ -434,4 +435,39 @@ + + + + + + + + + + + + + + + diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml index 7910965741..f125ebb551 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml @@ -30,8 +30,9 @@ gmo.CUSTOMER_USER_ID AS applyUserId, NULL AS applyUserHeadPhoto, NULL AS applyUserName, - gmo.OPERATE_DES AS applyReason, - gmo.OPERATE_STATUS as status + IFNULL(gmo.OPERATE_DES, '') AS applyReason, + gmo.OPERATE_STATUS as status, + gmo.ENTER_GROUP_TYPE as enterGroupType FROM group_memeber_operation gmo WHERE diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index 428008ded3..f51b0f7216 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -520,5 +520,12 @@ AND rt.CREATED_BY != #{userId} AND rtc.CREATED_BY = #{userId} + diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/PublishSuggestionFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/PublishSuggestionFormDTO.java new file mode 100644 index 0000000000..1261a5e83f --- /dev/null +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/PublishSuggestionFormDTO.java @@ -0,0 +1,35 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 居民端-议题发表建议 入参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 12:35 + */ +@Data +public class PublishSuggestionFormDTO implements Serializable { + private static final long serialVersionUID = 2545427013095892610L; + + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotBlank(message = "议题id不能为空", groups = {AddUserInternalGroup.class}) + private String issueId; + + @NotNull(message = "是否匿名不能为空", groups = {AddUserInternalGroup.class}) + private Boolean publicFlag; + + @Length(max = 500, message = "内容不能超过500字", groups = {AddUserShowGroup.class}) + private String suggestion; +} diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/IssueDetailResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/IssueDetailResultDTO.java index 0d95ff6c84..295522ae79 100644 --- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/IssueDetailResultDTO.java +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/IssueDetailResultDTO.java @@ -60,5 +60,18 @@ public class IssueDetailResultDTO implements Serializable { */ private String projectId = ""; + /** + * 对议题的想法 + */ + private String issueIdea; + /** + * true已发表过想法,false未发表想法 + */ + private Boolean publishIdeaFlag; + + /** + * 态度 - opposition(反对)support(赞成) + */ + private String attitude; } diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/JoinVoteResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/JoinVoteResultDTO.java index 86ceda5aef..42ee2ecd47 100644 --- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/JoinVoteResultDTO.java +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/JoinVoteResultDTO.java @@ -17,4 +17,8 @@ public class JoinVoteResultDTO implements Serializable { */ private Boolean joinVote; + /** + * 态度 - opposition(反对)support(赞成) 如果已投票,此列有值 + */ + private String attitude; } diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/PublishSuggestionResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/PublishSuggestionResultDTO.java new file mode 100644 index 0000000000..83e1359265 --- /dev/null +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/PublishSuggestionResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 居民端-议题发表建议 返参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/18 13:08 + */ +@Data +public class PublishSuggestionResultDTO implements Serializable { + private static final long serialVersionUID = -2752255960631605369L; + private String issueId; + /** + * issue_suggestion表主键 + */ + private String suggestionId; + + public PublishSuggestionResultDTO(String issueId, String suggestionId) { + this.issueId = issueId; + this.suggestionId = suggestionId; + } +} 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 a20d0e61bc..243236c3c5 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,8 +1,6 @@ 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.commons.tools.validator.ValidatorUtils; @@ -222,5 +220,17 @@ public class IssueController { return new Result>().ok(issueService.processList(issueId)); } + /** + * @param formDTO + * @author yinzuomei + * @description 居民端-议题发表建议 + * @Date 2020/11/18 13:09 + **/ + @PostMapping("publishsuggestion") + public Result publisSuggestion(@RequestBody PublishSuggestionFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,PublishSuggestionFormDTO.AddUserShowGroup.class,PublishSuggestionFormDTO.AddUserInternalGroup.class); + PublishSuggestionResultDTO resultDTO=issueService.publisSuggestion(formDTO); + return new Result().ok(resultDTO); + } } 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 d71c3e4b03..32f20b43f6 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,11 +1,9 @@ package com.epmet.service; -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.dto.form.*; import com.epmet.dto.result.*; -import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -112,4 +110,11 @@ public interface IssueService { */ List getShiftProjectList(ShiftProjectListFromDTO formDTO); + /** + * @param formDTO + * @author yinzuomei + * @description 居民端-议题发表建议 + * @Date 2020/11/18 13:11 + **/ + PublishSuggestionResultDTO publisSuggestion(PublishSuggestionFormDTO formDTO); } 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 0551eb8423..64c1d9361b 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,11 +1,14 @@ package com.epmet.service.impl; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constat.HallConstat; +import com.epmet.dto.IssueSuggestionDTO; import com.epmet.dto.form.CheckVoteFormDTO; import com.epmet.dto.TopicInfoDTO; import com.epmet.dto.form.*; @@ -38,6 +41,10 @@ public class IssueServiceImpl implements IssueService { private GovIssueFeignClient govIssueFeignClient; @Autowired private GovProjectFeignClient govProjectFeignClient; + @Autowired + private GovIssueOpenFeignClient govIssueOpenFeignClient; + @Autowired + private LoginUserUtil loginUserUtil; /** * @param issueDetail @@ -80,8 +87,14 @@ public class IssueServiceImpl implements IssueService { CheckVoteFormDTO formDTO = new CheckVoteFormDTO(); formDTO.setIssueId(issueDetail.getIssueId()); formDTO.setUserId(tokenDto.getUserId()); - JoinVoteResultDTO data = govIssueFeignClient.joinVote(formDTO).getData(); - issueDetailResult.setJoinVote(data.getJoinVote()); + Result joinVoteResultDTOResult=govIssueFeignClient.joinVote(formDTO); + if(joinVoteResultDTOResult.success()&&null!=joinVoteResultDTOResult.getData()){ + issueDetailResult.setJoinVote(joinVoteResultDTOResult.getData().getJoinVote()); + issueDetailResult.setAttitude(joinVoteResultDTOResult.getData().getAttitude()); + }else{ + issueDetailResult.setJoinVote(false); + issueDetailResult.setAttitude(StrConstant.EPMETY_STR); + } if (issueDetailResult.getIssueStatus().equals(HallConstat.SHIFT_PROJECT)){ //校验项目是否结案 IssueIdFormDTO issueId = new IssueIdFormDTO(); @@ -96,6 +109,14 @@ public class IssueServiceImpl implements IssueService { //已关闭议题,无需判断 issueDetailResult.setProjectStatus(true); } + Result issueSuggestionDTOResult=govIssueOpenFeignClient.queryIssueSuggestion(new UserIssueSuggestionFormDTO(loginUserUtil.getLoginUserId(),issueDetail.getIssueId())); + if(!issueSuggestionDTOResult.success()||null==issueSuggestionDTOResult.getData()){ + issueDetailResult.setPublishIdeaFlag(false); + issueDetailResult.setIssueIdea(StrConstant.EPMETY_STR); + }else{ + issueDetailResult.setPublishIdeaFlag(true); + issueDetailResult.setIssueIdea(issueSuggestionDTOResult.getData().getSuggestion()); + } return issueDetailResult; } @@ -108,6 +129,9 @@ public class IssueServiceImpl implements IssueService { @Override public VotingTrendResultDTO votingTrend(IssueIdFormDTO issueId) { Result votingTrendResultDTOResult = govIssueFeignClient.votingTrend(issueId); + if (!votingTrendResultDTOResult.success()){ + throw new RenException("查询议题表决折线图失败"); + } return votingTrendResultDTOResult.getData(); } @@ -151,7 +175,11 @@ public class IssueServiceImpl implements IssueService { GridIdFormDTO gridIdFormDTO = new GridIdFormDTO(); gridIdFormDTO.setGridId(gridId.getGridId()); gridIdFormDTO.setUserId(tokenDto.getUserId()); - CheckJoinTeamResultDTO check = resiGroupFeignClient.checkjointeam(gridIdFormDTO).getData(); + Result checkJoinTeam = resiGroupFeignClient.checkjointeam(gridIdFormDTO); + if (!checkJoinTeam.success()){ + throw new RenException("查询校验用户是否加入小组失败"); + } + CheckJoinTeamResultDTO check = checkJoinTeam.getData(); //未加入小组 if (check.getVoteAuthorization()==false){ voteResultDTOResult.setVoteFlag(false); @@ -159,7 +187,11 @@ public class IssueServiceImpl implements IssueService { voteResultDTOResult.setOppositionCount(NumConstant.ZERO); voteResultDTOResult.setSupportCount(NumConstant.ZERO); }else { - voteResultDTOResult = govIssueFeignClient.voteCount(issueId).getData(); + Result voteResult = govIssueFeignClient.voteCount(issueId); + if (!voteResult.success()){ + throw new RenException("查询表决中议题详情——支持、反对数失败"); + } + voteResultDTOResult = voteResult.getData(); voteResultDTOResult.setVoteAuthorization(check.getVoteAuthorization()); } return voteResultDTOResult; @@ -285,6 +317,26 @@ public class IssueServiceImpl implements IssueService { return resultList; } + /** + * @param formDTO + * @author yinzuomei + * @description 居民端-议题发表建议 + * @Date 2020/11/18 13:11 + **/ + @Override + public PublishSuggestionResultDTO publisSuggestion(PublishSuggestionFormDTO formDTO) { + IssueSuggestionDTO issueSuggestionDTO = new IssueSuggestionDTO(); + issueSuggestionDTO.setSuggestion(formDTO.getSuggestion()); + issueSuggestionDTO.setIssueId(formDTO.getIssueId()); + issueSuggestionDTO.setPublicFlag(formDTO.getPublicFlag() == true ? NumConstant.ONE : NumConstant.ZERO); + issueSuggestionDTO.setCreatedBy(loginUserUtil.getLoginUserId()); + Result result = govIssueOpenFeignClient.saveIssueSuggestion(issueSuggestionDTO); + if (result.success() && null != result.getData()) { + return new PublishSuggestionResultDTO(result.getData().getIssueId(), result.getData().getSuggestionId()); + } + throw new RenException(result.getCode()); + } + /** * @Description 议题处理进展 * @param issueId diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/UserPubAuditingIssueResultDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/UserPubAuditingIssueResultDTO.java new file mode 100644 index 0000000000..1bce77f907 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/UserPubAuditingIssueResultDTO.java @@ -0,0 +1,51 @@ +package com.epmet.resi.mine.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 个人中心-我发起的议题列表-审核中列表 返给前端DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/11/23 10:36 + */ +@Data +public class UserPubAuditingIssueResultDTO implements Serializable { + private static final long serialVersionUID = -7083622810147837717L; + /** + * 申请id + */ + private String issueApplicationId; + + /** + * under_auditing:待审核; rejected:驳回 + */ + private String applyStatus; + + /** + * 议题标题 + */ + private String issueTitle; + + /** + * 转议题时输入的建议 + */ + private String issueSuggestion; + + /** + * 网格名称: 组织-网格 + */ + private String gridName; + + /** + * 小组名称 + */ + private String groupName; + + /** + * 发起时间戳 + */ + private Long publishTime; + +} diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java index e4757758f7..c6375670b1 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java @@ -1,18 +1,16 @@ package com.epmet.modules.person.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; -import com.epmet.dto.result.MyPartIssuesResultDTO; -import com.epmet.dto.result.MyPartProjectsResultDTO; -import com.epmet.dto.result.MyPubIssuesAuditingResultDTO; -import com.epmet.dto.result.MyPubIssuesClosedResultDTO; -import com.epmet.dto.result.MyPubIssuesShiftProjectResultDTO; +import com.epmet.dto.result.*; import com.epmet.modules.person.service.IssueService; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import com.epmet.resi.mine.dto.result.UserPubAuditingIssueResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -94,4 +92,16 @@ public class IssueController { formDTO.setUserId(loginUserUtil.getLoginUserId()); return new Result>().ok(issueService.getMyPubIssuesClosed(formDTO)); } + + /** + * @param fomrDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-审核中列表 + * @Date 2020/11/23 9:07 + **/ + @PostMapping("my-pub-issues/auditinglist") + public Result> getMyPubAuditingIssues(@RequestBody PageFormDTO fomrDTO) { + ValidatorUtils.validateEntity(fomrDTO, PageFormDTO.AddUserInternalGroup.class); + return new Result>().ok(issueService.getMyPubAuditingIssues(fomrDTO)); + } } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java index b04c5082a3..b78ec5d664 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java @@ -1,13 +1,11 @@ package com.epmet.modules.person.service; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; -import com.epmet.dto.result.MyPartIssuesResultDTO; -import com.epmet.dto.result.MyPartProjectsResultDTO; -import com.epmet.dto.result.MyPubIssuesAuditingResultDTO; -import com.epmet.dto.result.MyPubIssuesClosedResultDTO; -import com.epmet.dto.result.MyPubIssuesShiftProjectResultDTO; +import com.epmet.dto.result.*; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import com.epmet.resi.mine.dto.result.UserPubAuditingIssueResultDTO; import java.util.List; @@ -55,4 +53,12 @@ public interface IssueService { * @Date 2020/11/11 13:48 **/ List getMyPubIssuesClosed(MyPubIssuesAuditingFormDTO formDTO); + + /** + * @param fomrDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-审核中列表 + * @Date 2020/11/23 9:08 + **/ + List getMyPubAuditingIssues(PageFormDTO fomrDTO); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java index c5f6e6757d..f4fbf8f8ce 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java @@ -1,24 +1,30 @@ package com.epmet.modules.person.service.impl; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.security.user.LoginUserUtil; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.IssueOpenConstant; import com.epmet.dto.IssueDTO; import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.MyPartIssuesFormDTO; import com.epmet.dto.form.MyPubIssuesAuditingFormDTO; +import com.epmet.dto.form.UserPubAuditingIssueFormDTO; import com.epmet.dto.result.*; import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.GovProjectOpenFeignClient; import com.epmet.modules.person.service.IssueService; +import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO; import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO; import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; +import com.epmet.resi.mine.dto.result.UserPubAuditingIssueResultDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -27,10 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -50,7 +53,8 @@ public class IssueServiceImpl implements IssueService { private GovProjectOpenFeignClient govProjectOpenFeignClient; @Autowired private GovOrgOpenFeignClient govOrgOpenFeignClient; - + @Autowired + private LoginUserUtil loginUserUtil; /** * @Description 个人中心-我参与的议题列表 @@ -256,4 +260,51 @@ public class IssueServiceImpl implements IssueService { } return resultDTOList; } + + /** + * @param fomrDTO + * @author yinzuomei + * @description 个人中心-我发起的议题列表-审核中列表 + * @Date 2020/11/23 9:08 + **/ + @Override + public List getMyPubAuditingIssues(PageFormDTO fomrDTO) { + UserPubAuditingIssueFormDTO userPubAuditingIssueFormDTO=new UserPubAuditingIssueFormDTO(); + userPubAuditingIssueFormDTO.setUserId(loginUserUtil.getLoginUserId()); + userPubAuditingIssueFormDTO.setPageNo(fomrDTO.getPageNo()); + userPubAuditingIssueFormDTO.setPageSize(fomrDTO.getPageSize()); + Result> resultList = issueOpenFeignClient.queryUserPubAuditingIssues(userPubAuditingIssueFormDTO); + if (!resultList.success() || CollectionUtils.isEmpty(resultList.getData())) { + return new ArrayList<>(); + } + List list = resultList.getData(); + //网格id 、 小组id + Set gridIds = new HashSet<>(); + Set groupIds = new HashSet<>(); + list.forEach(userPubAuditingIssueResDTO -> { + gridIds.add(userPubAuditingIssueResDTO.getGridId()); + groupIds.add(userPubAuditingIssueResDTO.getGroupId()); + }); + //查询网格名称、 小组名称 + Result> gridNameList = govOrgOpenFeignClient.getGridListByGridIds(new ArrayList<>(gridIds)); + if (!gridNameList.success() || CollectionUtils.isEmpty(gridNameList.getData())) { + logger.warn("个人中心-我发起的议题列表-审核中列表,查询网格名称失败......"); + } else { + //赋值 + list.forEach(resDTO -> { + gridNameList.getData().stream().filter(o -> resDTO.getGridId().equals(o.getGridId())).forEach(o -> resDTO.setGridName(o.getGridName())); + }); + } + //查询话题来源小组名称 + Result> groupInfoMapRes = resiGroupOpenFeignClient.getGroupInfo(new ArrayList<>(groupIds)); + if (!groupInfoMapRes.success() || CollectionUtils.isEmpty(groupInfoMapRes.getData())) { + logger.warn("个人中心-我发起的议题列表-审核中列表,查询小组信息失败......"); + } else { + //赋值 + list.forEach(resDTO -> { + resDTO.setGroupName(null == groupInfoMapRes.getData().get(resDTO.getGroupId()) ? "" : groupInfoMapRes.getData().get(resDTO.getGroupId()).getGroupName()); + }); + } + return ConvertUtils.sourceToTarget(list,UserPubAuditingIssueResultDTO.class); + } } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 8c6458ce44..b31f94ddff 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -411,6 +411,14 @@ public interface EpmetUserOpenFeignClient { @PostMapping("/epmetuser/govstaffrole/list-roles-by-rolekey/{role-key}") Result> listRolesByRoleKey(@PathVariable("role-key") String roleKey); + /** + * 根据userId集合查询用户注册信息 + * @author sun + */ + @PostMapping("/epmetuser/userresiinfo/getuserresiinfolist") + Result> getUserResiInfoList(@RequestBody UserResiInfoListFormDTO userResiInfoListFormDTO); + + /** * @Description 个人中心-我的建议列表 * @param dto diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index 938973838a..69371a19cd 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -283,6 +283,11 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "listRolesByRoleKey", roleKey); } + @Override + public Result> getUserResiInfoList(UserResiInfoListFormDTO fromDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserResiInfoList", fromDTO); + } + @Override public Result> myAdviceList(MyAdviceListFormDTO dto) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "myAdviceList", dto); diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index 8fc67ac69b..eb98f65a53 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -201,6 +201,7 @@ SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19 + https://epmet-dev.elinkservice.cn/api/epmetscan/api diff --git a/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml b/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml index 27c879c66b..380e974475 100644 --- a/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml +++ b/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml @@ -133,11 +133,6 @@ pagehelper: helper-dialect: mysql reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1 -dingTalk: - robot: - webHook: @dingTalk.robot.webHook@ - secret: @dingTalk.robot.secret@ - openapi: scan: server: @@ -145,3 +140,8 @@ openapi: method: imgSyncScan: /imgSyncScan textSyncScan: /textSyncScan + +dingTalk: + robot: + webHook: @dingTalk.robot.webHook@ + secret: @dingTalk.robot.secret@ \ No newline at end of file