diff --git a/epdc-cloud-api/pom.xml b/epdc-cloud-api/pom.xml index 0e29977..080a880 100644 --- a/epdc-cloud-api/pom.xml +++ b/epdc-cloud-api/pom.xml @@ -100,6 +100,12 @@ epdc-commons-api-version-control ${epdc-cloud-commons.version} + + com.esua.epdc.yushan + epdc-cloud-property-client + 1.0.0 + compile + @@ -222,7 +228,7 @@ true 47.104.224.45:8848 47.104.85.99 - 6a3577b4-7b79-43f6-aebb-9c3f31263f6a + de000340-5fc4-45aa-bdbc-dd96852012ad wx3ef8f2cd12a19fcb @@ -230,14 +236,11 @@ 111 111 - - - - wx5d3e97461d248397 - bfed51b731e53db9affb9e6131e7ae12 + wx50ebeb95943868cd + c2719c261fe87b3e2d572552d2c8275d - wx9f20a46906ab2c3e - dc13065f79429979d9f687d249eb5c4e + wx6d45fd2f4dfe7ce4 + 54a30a48b100bbad20d7823cd9e1fb17 wxfa4afaa2b5f9c876 7db9f049c78c9a6cafa673deebe8330d diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiActPhraseController.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiActPhraseController.java index 0a563cd..0d3ef0a 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiActPhraseController.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiActPhraseController.java @@ -26,7 +26,7 @@ public class ApiActPhraseController { * @date 2019/12/13 14:41 */ @PostMapping("sagenumAddOne") - public Result sagenumAddOneById(String id) { + public Result sagenumAddOneById(@RequestBody String id) { return actPhraseService.sagenumAddOneById(id); } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiPropertyController.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiPropertyController.java new file mode 100644 index 0000000..6519e9e --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiPropertyController.java @@ -0,0 +1,294 @@ +package com.elink.esua.epdc.controller; + +import com.elink.esua.epdc.common.token.dto.TokenDto; +import com.elink.esua.epdc.commons.tools.annotation.LoginUser; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; +import com.elink.esua.epdc.dto.comment.TopicCommentFormDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentStatementFormDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentsFormDTO; +import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO; +import com.elink.esua.epdc.dto.group.form.*; +import com.elink.esua.epdc.dto.group.result.*; +import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO; +import com.elink.esua.epdc.dto.topic.form.TopicCloseFormDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; +import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO; +import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO; +import com.elink.esua.epdc.dto.topic.result.TopicListResultDTO; +import com.elink.esua.epdc.service.PropertyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author: qushutong + * @Date: 2020/5/12 11:11 + * @Description: 物业相关 + */ +@RestController +@RequestMapping("property") +public class ApiPropertyController { + @Autowired + private PropertyService propertyService; + + + /** + * 社群详情 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @params [userDetail, id] + * @author liuchuang + * @since 2019/10/22 15:14 + */ + @GetMapping("group/detail/{id}") + public Result detail(@LoginUser TokenDto userDetail, @PathVariable("id") String id) { + return propertyService.getGroupDetail(userDetail, id); + } + + /** + * 修改群介绍 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/10/22 15:33 + */ + @PostMapping("group/modifyIntroduction") + public Result modifyIntroduction(@LoginUser TokenDto userDetail, @RequestBody GroupIntroductionFormDTO formDto) { + return propertyService.modifyIntroduction(userDetail, formDto); + } + + /** + * 修改群头像 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/10/22 17:25 + */ + @PostMapping("group/modifyAvatar") + public Result modifyAvatar(@LoginUser TokenDto userDetail, @RequestBody GroupModifyAvatarFormDTO formDto) { + return propertyService.modifyAvatar(userDetail, formDto); + } + + /** + * 社群成员列表(待审核/审核通过) + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 9:13 + */ + @GetMapping("group/listOfMember") + public Result> listOfMember(GroupUsersFormDTO formDto) { + return propertyService.listOfMember(formDto); + } + + /** + * 移除社群成员 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 10:35 + */ + @PostMapping("group/removeMember") + public Result removeMember(@LoginUser TokenDto userDetail, @RequestBody GroupUserRemoveOrQuitFormDTO formDto) { + return propertyService.removeMember(userDetail, formDto); + } + + /** + * 退出社群 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 10:40 + */ + @PostMapping("group/quitGroup") + public Result quitGroup(@LoginUser TokenDto userDetail, @RequestBody GroupUserRemoveOrQuitFormDTO formDto) { + return propertyService.quitGroup(userDetail, formDto); + } + + /** + * 添加成员列表 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 16:39 + */ + @GetMapping("group/getInviteList") + public Result> getInviteList(@LoginUser TokenDto userDetail, EpdcUserGroupInviteFormDTO formDto) { + return propertyService.listOfInviteUsers(userDetail, formDto); + } + + /** + * 添加社群成员 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/6 9:17 + */ + @PostMapping("group/addMember") + public Result addMember(@RequestBody GroupAddUserFormDTO formDto) { + return propertyService.saveGroupUsers(formDto); + } + + /** + * 审核入群申请 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/6 13:22 + */ + @PostMapping("group/reviewApply") + public Result reviewApply(@RequestBody GroupUserReviewFormDTO formDto) { + return propertyService.updateGroupUsers(formDto); + } + + /** + * 申请入群 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/11 14:00 + */ + @PostMapping("group/applyForGroup") + public Result applyForGroup(@LoginUser TokenDto userDetail, @RequestBody GroupApplyFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return propertyService.applyForGroup(userDetail, formDto); + } + + + /** + * 发布话题 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/11/6 14:46 + */ + @PostMapping("topic/submit") + public Result submit(@LoginUser TokenDto userDetail, @RequestBody TopicSubmitFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return propertyService.saveTopic(userDetail, formDto); + } + + /** + * 话题列表 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/11/11 15:04 + */ + @GetMapping("topic/list") + public Result> listTopic(@LoginUser TokenDto userDetail, TopicListFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return propertyService.listOfTopic(userDetail, formDto); + } + + + /** + * 话题详情 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [id] + * @author liuchuang + * @since 2019/11/7 15:37 + */ + @GetMapping("topic/detail/{id}") + public Result topicDetail(@LoginUser TokenDto userDetail, @PathVariable("id") String id) { + return propertyService.getTopicDetailById(userDetail, id); + } + + /** + * 关闭话题 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/7 16:10 + */ + @PostMapping("topic/close") + public Result close(@LoginUser TokenDto userDetail, @RequestBody TopicCloseFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return propertyService.closeTopic(userDetail, formDto); + } + + /** + * 物业项目列表 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author zhangyuan + * @since 2020/5/13 16:10 + */ + @GetMapping("projectList") + public Result projectList(@LoginUser TokenDto userDetail, ProjectListFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return propertyService.projectList(userDetail, formDto); + } + + /** + * 物业项目详情 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author zhangyuan + * @since 2020/5/13 16:10 + */ + @GetMapping("projectDetail/{propertyProjectId}") + public Result projectDetail(@LoginUser TokenDto userDetail, @PathVariable("propertyProjectId") String propertyProjectId) { + return propertyService.projectDetail(userDetail, propertyProjectId); + } + + /** + * @author: qushutong + * @Date: 2020/5/14 16:48 + * @Description:提交评论或回复接口 + */ + @PostMapping("comment/submit") + public Result submit(@LoginUser TokenDto userDetail, @RequestBody TopicCommentFormDTO topicCommentFormDTO) { + return propertyService.submit(userDetail, topicCommentFormDTO); + } + + /** + * 评论(赞/踩) + */ + @PostMapping("comment/statement") + public Result statement(@LoginUser TokenDto userDetail, @RequestBody TopicCommentStatementFormDTO topicCommentStatementFormDTO) { + return propertyService.statement(userDetail, topicCommentStatementFormDTO); + } + + /** + * 评论列表 + */ + @GetMapping("comment/list") + public Result listOfComments(@LoginUser TokenDto userDetail, TopicCommentsFormDTO topicCommentsFormDTO) { + return propertyService.listOfComments(userDetail, topicCommentsFormDTO); + } + + /** + * + * 我的话题列表 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/11/11 15:04 + */ + @GetMapping("topic/listOfMine") + public Result> listTopicOfMine(@LoginUser TokenDto userDetail, TopicListFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return propertyService.listTopicOfMine(userDetail, formDto); + } +} diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/PropertyFeignClient.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/PropertyFeignClient.java new file mode 100644 index 0000000..a35bcc2 --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/PropertyFeignClient.java @@ -0,0 +1,246 @@ +package com.elink.esua.epdc.feign; + +import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.comment.TopicCommentFormDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentStatementFormDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentsFormDTO; +import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO; +import com.elink.esua.epdc.dto.group.form.*; +import com.elink.esua.epdc.dto.group.result.*; +import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO; +import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO; +import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO; +import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO; +import com.elink.esua.epdc.dto.topic.form.*; +import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO; +import com.elink.esua.epdc.dto.topic.result.TopicListResultDTO; +import com.elink.esua.epdc.feign.fallback.PropertyFeignClientFallback; +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 java.util.List; + + +/** + * @author: qushutong + * @Date: 2020/5/12 13:19 + * @Description: 物业相关 + */ +@FeignClient(name = ServiceConstant.EPDC_PROPERTY_SERVER, fallback = PropertyFeignClientFallback.class) +public interface PropertyFeignClient { + + + /** + * 社群详情 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/10/22 15:09 + */ + @GetMapping(value = "property/epdc-app/group/detail", consumes = MediaType.APPLICATION_JSON_VALUE) + Result detail(GroupDetailForMobileEndFormDTO formDto); + + /** + * 修改群介绍 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/10/22 15:36 + */ + @PostMapping(value = "property/epdc-app/group/modifyIntroduction", consumes = MediaType.APPLICATION_JSON_VALUE) + Result modifyIntroduction(GroupIntroductionFormDTO formDto); + + /** + * 修改群头像 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/10/22 17:29 + */ + @PostMapping(value = "property/epdc-app/group/modifyAvatar", consumes = MediaType.APPLICATION_JSON_VALUE) + Result modifyAvatar(GroupModifyAvatarFormDTO formDto); + + /** + * 社群成员列表(待审核/审核通过) + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 9:16 + */ + @GetMapping(value = "property/epdc-app/group/listOfMember", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> listOfMember(GroupUsersFormDTO formDto); + + /** + * 移除社群成员 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 10:47 + */ + @PostMapping(value = "property/epdc-app/group/removeMember", consumes = MediaType.APPLICATION_JSON_VALUE) + Result removeMember(GroupUserRemoveOrQuitFormDTO formDto); + + /** + * 退出社群 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 10:47 + */ + @PostMapping(value = "property/epdc-app/group/quitGroup", consumes = MediaType.APPLICATION_JSON_VALUE) + Result quitGroup(GroupUserRemoveOrQuitFormDTO formDto); + + /** + * 添加成员列表 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 16:38 + */ + @GetMapping(value = "property/epdc-app/usergroup/getInviteList", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> getInviteList(EpdcUserGroupInviteFormDTO formDto); + + /** + * 添加成员 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/6 9:37 + */ + @PostMapping(value = "property/epdc-app/usergroup/addMember", consumes = MediaType.APPLICATION_JSON_VALUE) + Result addMember(GroupAddUserFormDTO formDto); + + /** + * 审核入群申请 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/6 13:26 + */ + @PostMapping(value = "property/epdc-app/usergroup/reviewApply", consumes = MediaType.APPLICATION_JSON_VALUE) + Result reviewApply(GroupUserReviewFormDTO formDto); + + /** + * 申请入群 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/11 14:04 + */ + @PostMapping(value = "property/epdc-app/group/applyForGroup", consumes = MediaType.APPLICATION_JSON_VALUE) + Result applyForGroup(GroupApplyFormDTO formDto); + + /** + * 更新社群用户党员标识并加入关联的所有网格党员群 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/11 14:32 + */ + @PostMapping(value = "property/epdc-app/usergroup/partyMember", consumes = MediaType.APPLICATION_JSON_VALUE) + Result updateUserPartyMember(GroupUserPartyMemberFormDTO formDto); + + /** + * 用户加入党员群 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/21 10:35 + */ + @PostMapping(value = "property/epdc-app/group/joinPartyGroup", consumes = MediaType.APPLICATION_JSON_VALUE) + Result joinGridPartyGroup(@RequestBody List formDto); + + + /** + * 发布话题 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/6 15:40 + */ + @PostMapping(value = "property/epdc-app/topic/submit", consumes = MediaType.APPLICATION_JSON_VALUE) + Result submit(TopicSubmitFormDTO formDto); + + /** + * 话题详情 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [id] + * @author liuchuang + * @since 2019/11/7 15:37 + */ + @GetMapping(value = "property/epdc-app/topic/detail", consumes = MediaType.APPLICATION_JSON_VALUE) + Result detail(TopicDetailFormDTO formDto); + + /** + * 话题列表 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @params [formDto] + * @author liuchuang + * @since 2019/11/11 15:06 + */ + @GetMapping(value = "property/epdc-app/topic/list", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> listOfTopic(TopicListFormDTO formDto); + + /** + * 关闭话题 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/7 16:14 + */ + @PostMapping(value = "property/epdc-app/topic/close", consumes = MediaType.APPLICATION_JSON_VALUE) + Result close(TopicCloseFormDTO formDto); + + /** + * 物业项目列表 + * + * @return ProjectListResultDTO + * @params [formDto] + * @author ZHANGYUAN + * @since 2020/5/13 15:06 + */ + @GetMapping(value = "property/epdc-app/project/list", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> projectList(ProjectListFormDTO formDto); + + /** + * 物业项目详情 + * @return ProjectDetailResultDTO + * @params [formDto] + * @author ZHANGYUAN + * @since 2020/5/13 15:06 + */ + @GetMapping(value = "property/epdc-app/project/detail", consumes = MediaType.APPLICATION_JSON_VALUE) + Result projectDetail(ProjectDetailFormDTO formDto); + + @PostMapping(value = "property/epdc-app/comment/submit", consumes = MediaType.APPLICATION_JSON_VALUE) + Result submit(TopicCommentFormDTO commentFormDTO); + + @PostMapping(value = "property/epdc-app/comment/statement", consumes = MediaType.APPLICATION_JSON_VALUE) + Result statement(TopicCommentStatementFormDTO commentStatementFormDTO); + + @GetMapping(value = "property/epdc-app/comment/list", consumes = MediaType.APPLICATION_JSON_VALUE) + Result listOfComments(TopicCommentsFormDTO formDto); + +} diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/PropertyFeignClientFallback.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/PropertyFeignClientFallback.java new file mode 100644 index 0000000..aeb299d --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/PropertyFeignClientFallback.java @@ -0,0 +1,144 @@ +package com.elink.esua.epdc.feign.fallback; + +import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; +import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.comment.TopicCommentFormDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentStatementFormDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentsFormDTO; +import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO; +import com.elink.esua.epdc.dto.group.GroupSettingStateDTO; +import com.elink.esua.epdc.dto.group.form.*; +import com.elink.esua.epdc.dto.group.result.*; +import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO; +import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO; +import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO; +import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO; +import com.elink.esua.epdc.dto.topic.form.*; +import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO; +import com.elink.esua.epdc.dto.topic.result.TopicListResultDTO; +import com.elink.esua.epdc.feign.GroupFeignClient; +import com.elink.esua.epdc.feign.PropertyFeignClient; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.PathVariable; + +import java.util.List; + + +/** + * @author: qushutong + * @Date: 2020/5/12 13:19 + * @Description: 物业相关 + */ +@Component +public class PropertyFeignClientFallback implements PropertyFeignClient { + + + @Override + public Result detail(GroupDetailForMobileEndFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "detail", formDto); + } + + @Override + public Result modifyIntroduction(GroupIntroductionFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "modifyIntroduction", formDto); + } + + @Override + public Result modifyAvatar(GroupModifyAvatarFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "modifyAvatar", formDto); + } + + @Override + public Result> listOfMember(GroupUsersFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "listOfMember", formDto); + } + + @Override + public Result removeMember(GroupUserRemoveOrQuitFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "removeMember", formDto); + } + + @Override + public Result quitGroup(GroupUserRemoveOrQuitFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "quitGroup", formDto); + } + + @Override + public Result> getInviteList(EpdcUserGroupInviteFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "getInviteList", formDto); + } + + @Override + public Result addMember(GroupAddUserFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "addMember", formDto); + } + + @Override + public Result reviewApply(GroupUserReviewFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "reviewApply", formDto); + } + + @Override + public Result applyForGroup(GroupApplyFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "applyForGroup", formDto); + } + + @Override + public Result updateUserPartyMember(GroupUserPartyMemberFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "updateUserPartyMember", formDto); + } + + @Override + public Result joinGridPartyGroup(List formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "joinGridPartyGroup", formDto); + } + + + @Override + public Result submit(TopicSubmitFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "submit", formDto); + } + + @Override + public Result detail(TopicDetailFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "detail", formDto); + } + + @Override + public Result close(TopicCloseFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "close", formDto); + } + + + @Override + public Result> listOfTopic(TopicListFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "listOfTopic", formDto); + } + + @Override + public Result> projectList(ProjectListFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "projectList", formDto); + } + + @Override + public Result projectDetail(ProjectDetailFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_PROPERTY_SERVER, "projectDetail", formDto); + } + public Result submit(TopicCommentFormDTO commentFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "submit", commentFormDTO); + } + + @Override + public Result statement(TopicCommentStatementFormDTO commentStatementFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "statement", commentStatementFormDTO); + } + + @Override + public Result listOfComments(TopicCommentsFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "listOfComments", formDto); + } + +} diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/PropertyService.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/PropertyService.java new file mode 100644 index 0000000..71e24c5 --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/PropertyService.java @@ -0,0 +1,222 @@ +package com.elink.esua.epdc.service; + +import com.elink.esua.epdc.common.token.dto.TokenDto; +import com.elink.esua.epdc.commons.tools.annotation.LoginUser; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.comment.TopicCommentFormDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentStatementFormDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentsFormDTO; +import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO; +import com.elink.esua.epdc.dto.group.form.*; +import com.elink.esua.epdc.dto.group.result.*; +import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO; +import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO; +import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO; +import com.elink.esua.epdc.dto.topic.form.TopicCloseFormDTO; +import com.elink.esua.epdc.dto.topic.form.TopicListFormDTO; +import com.elink.esua.epdc.dto.topic.form.TopicSubmitFormDTO; +import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO; +import com.elink.esua.epdc.dto.topic.result.TopicListResultDTO; + +import java.util.List; + + +/** + * @author: qushutong + * @Date: 2020/5/12 13:21 + * @Description: 物先相关 + */ +public interface PropertyService { + + + /** + * 社群详情 + * + * @return com.elink.esua.epdc.dto.group.result.GroupDetailForMobileEndResultDTO + * @params [userDetail, id] + * @author liuchuang + * @since 2019/10/22 15:15 + */ + Result getGroupDetail(TokenDto userDetail, String id); + + /** + * 修改群介绍 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/10/22 15:34 + */ + Result modifyIntroduction(TokenDto userDetail, GroupIntroductionFormDTO formDto); + + /** + * 修改群头像 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/10/22 17:26 + */ + Result modifyAvatar(TokenDto userDetail, GroupModifyAvatarFormDTO formDto); + + /** + * 社群成员列表(待审核/审核通过) + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 9:14 + */ + Result> listOfMember(GroupUsersFormDTO formDto); + + /** + * 移除社群成员 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/10/23 10:43 + */ + Result removeMember(TokenDto userDetail, GroupUserRemoveOrQuitFormDTO formDto); + + /** + * 退出社群 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/10/23 10:43 + */ + Result quitGroup(TokenDto userDetail, GroupUserRemoveOrQuitFormDTO formDto); + + /** + * 添加成员列表 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 16:40 + */ + Result> listOfInviteUsers(TokenDto userDetail, EpdcUserGroupInviteFormDTO formDto); + + /** + * 添加社群成员 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/6 9:18 + */ + Result saveGroupUsers(GroupAddUserFormDTO formDto); + + /** + * 审核入群申请 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author liuchuang + * @since 2019/11/6 13:23 + */ + Result updateGroupUsers(GroupUserReviewFormDTO formDto); + + /** + * 申请入群 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/11/11 14:02 + */ + Result applyForGroup(TokenDto userDetail, GroupApplyFormDTO formDto); + + + /** + * 发布话题 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/11/6 14:51 + */ + Result saveTopic(TokenDto userDetail, TopicSubmitFormDTO formDto); + + /** + * 话题详情 + * + * @return com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO + * @params [id] + * @author liuchuang + * @since 2019/11/7 15:34 + */ + Result getTopicDetailById(TokenDto userDetail, String id); + + /** + * 关闭话题 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/11/7 16:11 + */ + Result closeTopic(TokenDto userDetail, TopicCloseFormDTO formDto); + + + /** + * 话题列表 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/11/11 15:05 + */ + Result> listOfTopic(TokenDto userDetail, TopicListFormDTO formDto); + + /** + * 物业项目列表 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/11/11 15:05 + */ + Result> projectList(TokenDto userDetail, ProjectListFormDTO formDto); + + /** + * 物业项目详情 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @params [userDetail, formDto] + * @author liuchuang + * @since 2019/11/11 15:05 + */ + Result projectDetail(TokenDto userDetail, String id); + + /** + * 提交评论或回复接口 + */ + Result submit(@LoginUser TokenDto userDetail, TopicCommentFormDTO topicCommentFormDTO); + + /** + * 评论(赞/踩) + */ + Result statement(@LoginUser TokenDto userDetail, TopicCommentStatementFormDTO topicCommentStatementFormDTO); + + + /** + * 评论列表 + */ + Result listOfComments(TokenDto userDetail, TopicCommentsFormDTO topicCommentsFormDTO); + + /** + * + * 我的话题列表 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/11/11 15:50 + */ + Result> listTopicOfMine(TokenDto userDetail, TopicListFormDTO formDto); +} diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/PropertyServiceImpl.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/PropertyServiceImpl.java new file mode 100644 index 0000000..ec71333 --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/PropertyServiceImpl.java @@ -0,0 +1,272 @@ +package com.elink.esua.epdc.service.impl; + +import com.elink.esua.epdc.async.WxMaSecCheckTask; +import com.elink.esua.epdc.common.token.dto.TokenDto; +import com.elink.esua.epdc.commons.tools.enums.UserTagEnum; +import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentFormDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentStatementFormDTO; +import com.elink.esua.epdc.dto.comment.TopicCommentsFormDTO; +import com.elink.esua.epdc.dto.comment.result.EventCommentsResultDTO; +import com.elink.esua.epdc.dto.enums.TopicStateEnum; +import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO; +import com.elink.esua.epdc.dto.group.form.*; +import com.elink.esua.epdc.dto.group.result.*; +import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO; +import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO; +import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO; +import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO; +import com.elink.esua.epdc.dto.topic.form.*; +import com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO; +import com.elink.esua.epdc.dto.topic.result.TopicListResultDTO; +import com.elink.esua.epdc.feign.AdminFeignClient; +import com.elink.esua.epdc.feign.PropertyFeignClient; +import com.elink.esua.epdc.service.PropertyService; +import com.elink.esua.epdc.utils.UserTagUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + + +/** + * @author: qushutong + * @Date: 2020/5/12 13:23 + * @Description: 社群相关 + */ +@Service +public class PropertyServiceImpl implements PropertyService { + + @Autowired + private AdminFeignClient adminFeignClient; + + @Autowired + private PropertyFeignClient propertyFeignClient; + + @Autowired + private WxMaSecCheckTask wxMaSecCheckTask; + + @Override + public Result getGroupDetail(TokenDto userDetail, String id) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + GroupDetailForMobileEndFormDTO formDto = new GroupDetailForMobileEndFormDTO(); + formDto.setId(id); + formDto.setUserId(userDetail.getUserId()); + return propertyFeignClient.detail(formDto); + } + + @Override + public Result modifyIntroduction(TokenDto userDetail, GroupIntroductionFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setUserId(userDetail.getUserId()); + return propertyFeignClient.modifyIntroduction(formDto); + } + + @Override + public Result modifyAvatar(TokenDto userDetail, GroupModifyAvatarFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setUserId(userDetail.getUserId()); + return propertyFeignClient.modifyAvatar(formDto); + } + + @Override + public Result> listOfMember(GroupUsersFormDTO formDto) { + return propertyFeignClient.listOfMember(formDto); + } + + @Override + public Result removeMember(TokenDto userDetail, GroupUserRemoveOrQuitFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setOperatorId(userDetail.getUserId()); + return propertyFeignClient.removeMember(formDto); + } + + @Override + public Result quitGroup(TokenDto userDetail, GroupUserRemoveOrQuitFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setOperatorId(userDetail.getUserId()); + formDto.setUserId(userDetail.getUserId()); + return propertyFeignClient.quitGroup(formDto); + } + + @Override + public Result> listOfInviteUsers(TokenDto userDetail, EpdcUserGroupInviteFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setGridId(userDetail.getGridId()); + return propertyFeignClient.getInviteList(formDto); + } + + @Override + public Result saveGroupUsers(GroupAddUserFormDTO formDto) { + return propertyFeignClient.addMember(formDto); + } + + @Override + public Result updateGroupUsers(GroupUserReviewFormDTO formDto) { + return propertyFeignClient.reviewApply(formDto); + } + + @Override + public Result applyForGroup(TokenDto userDetail, GroupApplyFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setUserId(userDetail.getUserId()); + formDto.setNickname(userDetail.getNickname()); + formDto.setUserAvatar(userDetail.getFaceImg()); + formDto.setMobile(userDetail.getMobile()); + if (UserTagUtils.containIdentity(userDetail.getUserTagInfos(), UserTagEnum.PARTY_MEMBER)) { + formDto.setPartyMember(YesOrNoEnum.YES.value()); + } else { + formDto.setPartyMember(YesOrNoEnum.NO.value()); + } + return propertyFeignClient.applyForGroup(formDto); + } + + + @Override + public Result saveTopic(TokenDto userDetail, TopicSubmitFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + //获取所有上级机构名称和ID拼接 + Result dtoResult = adminFeignClient.getParentAndAllDept(userDetail.getGridId()); + ParentAndAllDeptDTO deptDTO = dtoResult.getData(); + // 父所有部门 + formDto.setParentDeptIds(deptDTO.getParentDeptIds()); + formDto.setParentDeptNames(deptDTO.getParentDeptNames()); + // 所有部门 + formDto.setAllDeptIds(deptDTO.getAllDeptIds()); + formDto.setAllDeptNames(deptDTO.getAllDeptNames()); + // 网格 + formDto.setGrid(deptDTO.getGrid()); + formDto.setGridId(deptDTO.getGridId()); + + formDto.setUserId(userDetail.getUserId()); + formDto.setUserFace(userDetail.getFaceImg()); + formDto.setNickname(userDetail.getNickname()); + if (UserTagUtils.containIdentity(userDetail.getUserTagInfos(), UserTagEnum.PARTY_MEMBER)) { + formDto.setPartyMember(YesOrNoEnum.YES.value()); + } else { + formDto.setPartyMember(YesOrNoEnum.NO.value()); + } + formDto.setMobile(userDetail.getMobile()); + formDto.setState(TopicStateEnum.TOPIC_STATE_IN_CONVERSATION.getValue()); + + return propertyFeignClient.submit(formDto); + } + + @Override + public Result getTopicDetailById(TokenDto userDetail, String id) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + TopicDetailFormDTO formDto = new TopicDetailFormDTO(); + formDto.setId(id); + formDto.setUserId(userDetail.getUserId()); + return propertyFeignClient.detail(formDto); + } + + @Override + public Result closeTopic(TokenDto userDetail, TopicCloseFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setUserId(userDetail.getUserId()); + return propertyFeignClient.close(formDto); + } + + + @Override + public Result> listOfTopic(TokenDto userDetail, TopicListFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setGridId(userDetail.getGridId()); + formDto.setCurrentUserId(userDetail.getUserId()); + return propertyFeignClient.listOfTopic(formDto); + } + + @Override + public Result> projectList(TokenDto userDetail, ProjectListFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setUserId(userDetail.getUserId()); + formDto.setGridId(userDetail.getGridId()); + return propertyFeignClient.projectList(formDto); + } + + @Override + public Result projectDetail(TokenDto userDetail, String id) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + ProjectDetailFormDTO formDto = new ProjectDetailFormDTO(); + formDto.setId(id); + formDto.setUserId(userDetail.getUserId()); + formDto.setGridId(userDetail.getGridId()); + return propertyFeignClient.projectDetail(formDto); + } + + @Override + public Result submit(TokenDto userDetail, TopicCommentFormDTO topicCommentFormDTO) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + // 上传内容安全检查 + wxMaSecCheckTask.checkMessage(topicCommentFormDTO.getContent()); + topicCommentFormDTO.setUserId(userDetail.getUserId()); + topicCommentFormDTO.setUserName(userDetail.getNickname()); + topicCommentFormDTO.setUserFace(userDetail.getFaceImg()); + if (UserTagUtils.containIdentity(userDetail.getUserTagInfos(), UserTagEnum.PARTY_MEMBER)) { + topicCommentFormDTO.setPartyFlag(YesOrNoEnum.YES.value()); + } else { + topicCommentFormDTO.setPartyFlag(YesOrNoEnum.NO.value()); + } + return propertyFeignClient.submit(topicCommentFormDTO); + } + + @Override + public Result statement(TokenDto userDetail, TopicCommentStatementFormDTO topicCommentStatementFormDTO) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + topicCommentStatementFormDTO.setUseId(userDetail.getUserId()); + topicCommentStatementFormDTO.setUserName(userDetail.getNickname()); + return propertyFeignClient.statement(topicCommentStatementFormDTO); + } + + @Override + public Result listOfComments(TokenDto userDetail, TopicCommentsFormDTO topicCommentsFormDTO) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + topicCommentsFormDTO.setUserId(userDetail.getUserId()); + return propertyFeignClient.listOfComments(topicCommentsFormDTO); + } + + @Override + public Result> listTopicOfMine(TokenDto userDetail, TopicListFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setUserId(userDetail.getUserId()); + return propertyFeignClient.listOfTopic(formDto); + } +}