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 index c2dfa6b..a48c196 100644 --- 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 @@ -1,7 +1,23 @@ package com.elink.esua.epdc.controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +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.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.GroupDetailForMobileEndResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupUserListResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupsOfMineResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupsOfRecommendResultDTO; +import com.elink.esua.epdc.service.GroupService; +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 @@ -11,5 +27,203 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("property/group") public class ApiPropertyController { - + @Autowired + private PropertyService propertyService; + + /** + * + * 创建社群 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/17 13:58 + */ + @PostMapping("create") + public Result createGroup(@LoginUser TokenDto userDetail, @RequestBody GroupCreateFormDTO formDto) { + return propertyService.saveGroup(userDetail, formDto); + } + + /** + * + * 解散社群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/21 9:51 + */ + @PostMapping("disband") + public Result disbandGroup(@LoginUser TokenDto userDetail, @RequestBody GroupSettingStateDTO formDto) { + return propertyService.disbandGroup(userDetail, formDto); + } + + /** + * + * 我的群列表 + * + * @params [userDetail] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/10/21 17:20 + */ + @GetMapping("listOfMine") + public Result> groupsOfMine(@LoginUser TokenDto userDetail) { + return propertyService.listGroupsOfMine(userDetail); + } + + /** + * + * 推荐群列表 + * + * @params [userDetail] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/10/22 13:53 + */ + @GetMapping("listOfRecommend") + public Result> groupsOfRecommend(@LoginUser TokenDto userDetail) { + return propertyService.listGroupsOfRecommend(userDetail); + } + + /** + * + * 社群详情 + * + * @params [userDetail, id] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/10/22 15:14 + */ + @GetMapping("detail/{id}") + public Result detail(@LoginUser TokenDto userDetail, @PathVariable("id") String id) { + return propertyService.getGroupDetail(userDetail, id); + } + + /** + * + * 修改群介绍 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/22 15:33 + */ + @PostMapping("modifyIntroduction") + public Result modifyIntroduction(@LoginUser TokenDto userDetail, @RequestBody GroupIntroductionFormDTO formDto) { + return propertyService.modifyIntroduction(userDetail, formDto); + } + + /** + * + * 修改群头像 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/22 17:25 + */ + @PostMapping("modifyAvatar") + public Result modifyAvatar(@LoginUser TokenDto userDetail, @RequestBody GroupModifyAvatarFormDTO formDto) { + return propertyService.modifyAvatar(userDetail, formDto); + } + + /** + * + * 社群成员列表(待审核/审核通过) + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/23 9:13 + */ + @GetMapping("listOfMember") + public Result> listOfMember(GroupUsersFormDTO formDto) { + return propertyService.listOfMember(formDto); + } + + /** + * + * 移除社群成员 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/23 10:35 + */ + @PostMapping("removeMember") + public Result removeMember(@LoginUser TokenDto userDetail, @RequestBody GroupUserRemoveOrQuitFormDTO formDto) { + return propertyService.removeMember(userDetail, formDto); + } + + /** + * + * 退出社群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/23 10:40 + */ + @PostMapping("quitGroup") + public Result quitGroup(@LoginUser TokenDto userDetail, @RequestBody GroupUserRemoveOrQuitFormDTO formDto) { + return propertyService.quitGroup(userDetail, formDto); + } + + /** + * + * 添加成员列表 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/10/23 16:39 + */ + @GetMapping("getInviteList") + public Result> getInviteList(@LoginUser TokenDto userDetail, EpdcUserGroupInviteFormDTO formDto) { + return propertyService.listOfInviteUsers(userDetail, formDto); + } + + /** + * + * 添加社群成员 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/6 9:17 + */ + @PostMapping("addMember") + public Result addMember(@RequestBody GroupAddUserFormDTO formDto) { + return propertyService.saveGroupUsers(formDto); + } + + /** + * + * 审核入群申请 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/6 13:22 + */ + @PostMapping("reviewApply") + public Result reviewApply(@RequestBody GroupUserReviewFormDTO formDto) { + return propertyService.updateGroupUsers(formDto); + } + + /** + * + * 申请入群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/11 14:00 + */ + @PostMapping("applyForGroup") + public Result applyForGroup(@LoginUser TokenDto userDetail, @RequestBody GroupApplyFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return propertyService.applyForGroup(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..3034cf0 --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/PropertyFeignClient.java @@ -0,0 +1,222 @@ +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.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.GroupDetailForMobileEndResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupUserListResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupsOfMineResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupsOfRecommendResultDTO; +import com.elink.esua.epdc.feign.fallback.GroupFeignClientFallback; +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_GROUP_SERVER, fallback = GroupFeignClientFallback.class) +public interface PropertyFeignClient { + + /** + * + * 创建社群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/17 14:44 + */ + @PostMapping(value = "group/epdc-app/group/create", consumes = MediaType.APPLICATION_JSON_VALUE) + Result createGroup(GroupCreateFormDTO formDto); + + /** + * + * 解散社群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/21 9:54 + */ + @PostMapping(value = "group/epdc-app/group/operate", consumes = MediaType.APPLICATION_JSON_VALUE) + Result disbandGroup(GroupSettingStateDTO formDto); + + /** + * + * 我的群列表 + * + * @params [formDTO] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/10/21 17:26 + */ + @GetMapping(value = "group/epdc-app/group/listOfMine", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> listGroupsOfMine(GroupsOfMineFormDTO formDto); + + /** + * + * 推荐群列表 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/10/22 13:51 + */ + @GetMapping(value = "group/epdc-app/group/listOfRecommend", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> listGroupsOfRecommend(GroupsOfMineFormDTO formDto); + + /** + * + * 社群详情 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/22 15:09 + */ + @GetMapping(value = "group/epdc-app/group/detail", consumes = MediaType.APPLICATION_JSON_VALUE) + Result detail(GroupDetailForMobileEndFormDTO formDto); + + /** + * + * 修改群介绍 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/22 15:36 + */ + @PostMapping(value = "group/epdc-app/group/modifyIntroduction", consumes = MediaType.APPLICATION_JSON_VALUE) + Result modifyIntroduction(GroupIntroductionFormDTO formDto); + + /** + * + * 修改群头像 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/22 17:29 + */ + @PostMapping(value = "group/epdc-app/group/modifyAvatar", consumes = MediaType.APPLICATION_JSON_VALUE) + Result modifyAvatar(GroupModifyAvatarFormDTO formDto); + + /** + * + * 社群成员列表(待审核/审核通过) + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/23 9:16 + */ + @GetMapping(value = "group/epdc-app/group/listOfMember", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> listOfMember(GroupUsersFormDTO formDto); + + /** + * + * 移除社群成员 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/23 10:47 + */ + @PostMapping(value = "group/epdc-app/group/removeMember", consumes = MediaType.APPLICATION_JSON_VALUE) + Result removeMember(GroupUserRemoveOrQuitFormDTO formDto); + + /** + * + * 退出社群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/23 10:47 + */ + @PostMapping(value = "group/epdc-app/group/quitGroup", consumes = MediaType.APPLICATION_JSON_VALUE) + Result quitGroup(GroupUserRemoveOrQuitFormDTO formDto); + + /** + * + * 添加成员列表 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/10/23 16:38 + */ + @GetMapping(value = "group/epdc-app/usergroup/getInviteList", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> getInviteList(EpdcUserGroupInviteFormDTO formDto); + + /** + * + * 添加成员 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/6 9:37 + */ + @PostMapping(value = "group/epdc-app/usergroup/addMember", consumes = MediaType.APPLICATION_JSON_VALUE) + Result addMember(GroupAddUserFormDTO formDto); + + /** + * + * 审核入群申请 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/6 13:26 + */ + @PostMapping(value = "group/epdc-app/usergroup/reviewApply", consumes = MediaType.APPLICATION_JSON_VALUE) + Result reviewApply(GroupUserReviewFormDTO formDto); + + /** + * + * 申请入群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/11 14:04 + */ + @PostMapping(value = "group/epdc-app/group/applyForGroup", consumes = MediaType.APPLICATION_JSON_VALUE) + Result applyForGroup(GroupApplyFormDTO formDto); + + /** + * + * 更新社群用户党员标识并加入关联的所有网格党员群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/11 14:32 + */ + @PostMapping(value = "group/epdc-app/usergroup/partyMember", consumes = MediaType.APPLICATION_JSON_VALUE) + Result updateUserPartyMember(GroupUserPartyMemberFormDTO formDto); + + /** + * + * 用户加入党员群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/21 10:35 + */ + @PostMapping(value = "group/epdc-app/group/joinPartyGroup", consumes = MediaType.APPLICATION_JSON_VALUE) + Result joinGridPartyGroup(@RequestBody List 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..876874b --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/PropertyFeignClientFallback.java @@ -0,0 +1,108 @@ +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.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.GroupDetailForMobileEndResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupUserListResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupsOfMineResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupsOfRecommendResultDTO; +import com.elink.esua.epdc.feign.GroupFeignClient; +import com.elink.esua.epdc.feign.PropertyFeignClient; +import org.springframework.stereotype.Component; + +import java.util.List; + + +/** + * @author: qushutong + * @Date: 2020/5/12 13:19 + * @Description: 物业相关 + */ +@Component +public class PropertyFeignClientFallback implements PropertyFeignClient { + + @Override + public Result createGroup(GroupCreateFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "createGroup", formDto); + } + + @Override + public Result disbandGroup(GroupSettingStateDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "disbandGroup", formDto); + } + + @Override + public Result> listGroupsOfMine(GroupsOfMineFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "listGroupsOfMine", formDto); + } + + @Override + public Result> listGroupsOfRecommend(GroupsOfMineFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "listGroupsOfRecommend", formDto); + } + + @Override + public Result detail(GroupDetailForMobileEndFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "detail", formDto); + } + + @Override + public Result modifyIntroduction(GroupIntroductionFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "modifyIntroduction", formDto); + } + + @Override + public Result modifyAvatar(GroupModifyAvatarFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "modifyAvatar", formDto); + } + + @Override + public Result> listOfMember(GroupUsersFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "listOfMember", formDto); + } + + @Override + public Result removeMember(GroupUserRemoveOrQuitFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "removeMember", formDto); + } + + @Override + public Result quitGroup(GroupUserRemoveOrQuitFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "quitGroup", formDto); + } + + @Override + public Result> getInviteList(EpdcUserGroupInviteFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "getInviteList", formDto); + } + + @Override + public Result addMember(GroupAddUserFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "addMember", formDto); + } + + @Override + public Result reviewApply(GroupUserReviewFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "reviewApply", formDto); + } + + @Override + public Result applyForGroup(GroupApplyFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "applyForGroup", formDto); + } + + @Override + public Result updateUserPartyMember(GroupUserPartyMemberFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "updateUserPartyMember", formDto); + } + + @Override + public Result joinGridPartyGroup(List formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "joinGridPartyGroup", 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..7eeb16c --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/PropertyService.java @@ -0,0 +1,178 @@ +package com.elink.esua.epdc.service; + +import com.elink.esua.epdc.common.token.dto.TokenDto; +import com.elink.esua.epdc.commons.tools.utils.Result; +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.GroupDetailForMobileEndResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupUserListResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupsOfMineResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupsOfRecommendResultDTO; + +import java.util.List; + + +/** + * @author: qushutong + * @Date: 2020/5/12 13:21 + * @Description: 物先相关 + */ +public interface PropertyService { + + /** + * + * 创建社群 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/17 13:58 + */ + Result saveGroup(TokenDto userDetail, GroupCreateFormDTO formDto); + + /** + * + * 解散社群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/21 9:51 + */ + Result disbandGroup(TokenDto userDetail, GroupSettingStateDTO dto); + + /** + * + * 我的群列表 + * + * @params [userDetail] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/10/21 17:21 + */ + Result> listGroupsOfMine(TokenDto userDetail); + + /** + * + * 推荐群列表 + * + * @params [userDetail] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/10/22 13:54 + */ + Result> listGroupsOfRecommend(TokenDto userDetail); + + /** + * + * 社群详情 + * + * @params [userDetail, id] + * @return com.elink.esua.epdc.dto.group.result.GroupDetailForMobileEndResultDTO + * @author liuchuang + * @since 2019/10/22 15:15 + */ + Result getGroupDetail(TokenDto userDetail, String id); + + /** + * + * 修改群介绍 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/22 15:34 + */ + Result modifyIntroduction(TokenDto userDetail, GroupIntroductionFormDTO formDto); + + /** + * + * 修改群头像 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/22 17:26 + */ + Result modifyAvatar(TokenDto userDetail, GroupModifyAvatarFormDTO formDto); + + /** + * + * 社群成员列表(待审核/审核通过) + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/23 9:14 + */ + Result> listOfMember(GroupUsersFormDTO formDto); + + /** + * + * 移除社群成员 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/23 10:43 + */ + Result removeMember(TokenDto userDetail, GroupUserRemoveOrQuitFormDTO formDto); + + /** + * + * 退出社群 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/10/23 10:43 + */ + Result quitGroup(TokenDto userDetail, GroupUserRemoveOrQuitFormDTO formDto); + + /** + * + * 添加成员列表 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author liuchuang + * @since 2019/10/23 16:40 + */ + Result> listOfInviteUsers(TokenDto userDetail, EpdcUserGroupInviteFormDTO formDto); + + /** + * + * 添加社群成员 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/6 9:18 + */ + Result saveGroupUsers(GroupAddUserFormDTO formDto); + + /** + * + * 审核入群申请 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/6 13:23 + */ + Result updateGroupUsers(GroupUserReviewFormDTO formDto); + + /** + * + * 申请入群 + * + * @params [userDetail, formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/11 14:02 + */ + Result applyForGroup(TokenDto userDetail, GroupApplyFormDTO 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..9f703b2 --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/PropertyServiceImpl.java @@ -0,0 +1,201 @@ +package com.elink.esua.epdc.service.impl; + +import com.elink.esua.epdc.common.token.dto.TokenDto; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; +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.enums.GroupStateEnum; +import com.elink.esua.epdc.dto.enums.GroupUserStateEnum; +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.GroupDetailForMobileEndResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupUserListResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupsOfMineResultDTO; +import com.elink.esua.epdc.dto.group.result.GroupsOfRecommendResultDTO; +import com.elink.esua.epdc.feign.AdminFeignClient; +import com.elink.esua.epdc.feign.GroupFeignClient; +import com.elink.esua.epdc.service.GroupService; +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 GroupFeignClient groupFeignClient; + + @Override + public Result saveGroup(TokenDto userDetail, GroupCreateFormDTO 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.setGroupCategory(NumConstant.ONE_STR); + formDto.setState(GroupStateEnum.GROUP_STATE_PENDING_REVIEW.getValue()); + // 群主信息 + GroupUserFormDTO groupUserFormDTO = new GroupUserFormDTO(); + groupUserFormDTO.setUserId(userDetail.getUserId()); + groupUserFormDTO.setNickname(userDetail.getNickname()); + groupUserFormDTO.setUserAvatar(userDetail.getFaceImg()); + groupUserFormDTO.setMobile(userDetail.getMobile()); + // 判断当前用户是否为党员 + if (!UserTagUtils.containIdentity(userDetail.getUserTagInfos(), UserTagEnum.PARTY_MEMBER)) { + return new Result().error("您当前身份不是党员,不能创建社群"); + } + groupUserFormDTO.setPartyMember(YesOrNoEnum.YES.value()); + groupUserFormDTO.setLordFlag(NumConstant.ONE_STR); + groupUserFormDTO.setState(GroupUserStateEnum.GROUP_USER_STATE_EXAMINATION_PASSED.getValue()); + formDto.setGroupUserFormDTO(groupUserFormDTO); + + return groupFeignClient.createGroup(formDto); + } + + @Override + public Result disbandGroup(TokenDto userDetail, GroupSettingStateDTO dto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + dto.setState(GroupStateEnum.GROUP_STATE_DISBANDED.getValue()); + dto.setUserId(userDetail.getUserId()); + return groupFeignClient.disbandGroup(dto); + } + + @Override + public Result> listGroupsOfMine(TokenDto userDetail) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + GroupsOfMineFormDTO formDto = new GroupsOfMineFormDTO(); + formDto.setUserId(userDetail.getUserId()); + formDto.setGridId(userDetail.getGridId()); + return groupFeignClient.listGroupsOfMine(formDto); + } + + @Override + public Result> listGroupsOfRecommend(TokenDto userDetail) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + GroupsOfMineFormDTO formDto = new GroupsOfMineFormDTO(); + formDto.setUserId(userDetail.getUserId()); + formDto.setGridId(userDetail.getGridId()); + return groupFeignClient.listGroupsOfRecommend(formDto); + } + + @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 groupFeignClient.detail(formDto); + } + + @Override + public Result modifyIntroduction(TokenDto userDetail, GroupIntroductionFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setUserId(userDetail.getUserId()); + return groupFeignClient.modifyIntroduction(formDto); + } + + @Override + public Result modifyAvatar(TokenDto userDetail, GroupModifyAvatarFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setUserId(userDetail.getUserId()); + return groupFeignClient.modifyAvatar(formDto); + } + + @Override + public Result> listOfMember(GroupUsersFormDTO formDto) { + return groupFeignClient.listOfMember(formDto); + } + + @Override + public Result removeMember(TokenDto userDetail, GroupUserRemoveOrQuitFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setOperatorId(userDetail.getUserId()); + return groupFeignClient.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 groupFeignClient.quitGroup(formDto); + } + + @Override + public Result> listOfInviteUsers(TokenDto userDetail, EpdcUserGroupInviteFormDTO formDto) { + if (null == userDetail) { + return new Result().error("获取用户信息失败"); + } + formDto.setGridId(userDetail.getGridId()); + return groupFeignClient.getInviteList(formDto); + } + + @Override + public Result saveGroupUsers(GroupAddUserFormDTO formDto) { + return groupFeignClient.addMember(formDto); + } + + @Override + public Result updateGroupUsers(GroupUserReviewFormDTO formDto) { + return groupFeignClient.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 groupFeignClient.applyForGroup(formDto); + } +}