diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiGroupController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiGroupController.java index 9738a5814..6f132de78 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiGroupController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiGroupController.java @@ -3,6 +3,7 @@ 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.epdc.form.EpdcUserGroupInviteFormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO; import com.elink.esua.epdc.dto.group.GroupSettingStateDTO; @@ -210,4 +211,19 @@ public class ApiGroupController { return groupService.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 groupService.applyForGroup(userDetail, formDto); + } + } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/GroupFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/GroupFeignClient.java index 2a70bc837..49ae87729 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/GroupFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/GroupFeignClient.java @@ -180,4 +180,16 @@ public interface GroupFeignClient { */ @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/usergroup/applyForGroup", consumes = MediaType.APPLICATION_JSON_VALUE) + Result applyForGroup(GroupApplyFormDTO formDto); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/GroupFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/GroupFeignClientFallback.java index 88472de61..c8030e464 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/GroupFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/GroupFeignClientFallback.java @@ -84,4 +84,9 @@ public class GroupFeignClientFallback implements GroupFeignClient { 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); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/GroupService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/GroupService.java index be68dc992..902678854 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/GroupService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/GroupService.java @@ -162,4 +162,15 @@ public interface GroupService { */ 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/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/GroupServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/GroupServiceImpl.java index d0f165c38..40fe3c679 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/GroupServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/GroupServiceImpl.java @@ -14,6 +14,7 @@ import com.elink.esua.epdc.dto.group.result.*; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.feign.GroupFeignClient; import com.elink.esua.epdc.service.GroupService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -169,4 +170,17 @@ public class GroupServiceImpl implements GroupService { 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()); + formDto.setPartyMember(userDetail.getPartyFlag()); + return groupFeignClient.applyForGroup(formDto); + } } diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupApplyFormDTO.java b/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupApplyFormDTO.java new file mode 100644 index 000000000..e6965b443 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupApplyFormDTO.java @@ -0,0 +1,49 @@ +package com.elink.esua.epdc.dto.group.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * + * 申请入群Form DTO + * + * @Author:liuchuang + * @Date:2019/11/11 13:58 + */ +@Data +public class GroupApplyFormDTO implements Serializable { + private static final long serialVersionUID = -1708301010893268772L; + + /** + * 社群ID + */ + @NotBlank(message = "社群ID不能为空") + private String groupId; + + /** + * 用户ID + */ + private String userId; + + /** + * 用户名 + */ + private String nickname; + + /** + * 用户头像 + */ + private String userAvatar; + + /** + * 手机号 + */ + private String mobile; + + /** + * 党员标识 0:否,1:是 + */ + private String partyMember; +} diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/AppGroupController.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/AppGroupController.java index 4e5743c27..8c3c11f58 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/AppGroupController.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/AppGroupController.java @@ -187,4 +187,18 @@ public class AppGroupController { return groupService.modifyMemberState(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(@RequestBody GroupApplyFormDTO formDto) { + return groupService.applyForGroup(formDto); + } + } diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java index aee980f11..240fc2cec 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java @@ -209,4 +209,15 @@ public interface GroupService extends BaseService { */ Result modifyMemberState(GroupUserRemoveOrQuitFormDTO formDto); + /** + * + * 申请入群 + * + * @params [formDto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author liuchuang + * @since 2019/11/11 14:07 + */ + Result applyForGroup(GroupApplyFormDTO formDto); + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java index 834ca7397..5dbb85c05 100644 --- a/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java @@ -35,6 +35,7 @@ import com.elink.esua.epdc.dto.group.result.*; import com.elink.esua.epdc.modules.async.NewsTask; import com.elink.esua.epdc.modules.group.dao.GroupDao; import com.elink.esua.epdc.modules.group.entity.GroupEntity; +import com.elink.esua.epdc.modules.group.entity.UserGroupEntity; import com.elink.esua.epdc.modules.group.service.GroupService; import com.elink.esua.epdc.modules.group.service.UserGroupService; import org.apache.commons.lang3.StringUtils; @@ -292,4 +293,17 @@ public class GroupServiceImpl extends BaseServiceImpl imp newsTask.insertUserInformation(informationFormDTO); return new Result(); } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result applyForGroup(GroupApplyFormDTO formDto) { + UserGroupEntity userGroupEntity = ConvertUtils.sourceToTarget(formDto, UserGroupEntity.class); + userGroupEntity.setLordFlag(NumConstant.ZERO_STR); + userGroupEntity.setState(GroupUserStateEnum.GROUP_USER_STATE_PENDING_REVIEW.getValue()); + if (userGroupService.insert(userGroupEntity)) { + return new Result(); + } + + return new Result().error(); + } } \ No newline at end of file