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 b9b252dcad..9321d14e60 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 @@ -9,7 +9,9 @@ public enum EpmetErrorCode { CANNOT_JOIN_GROUP(8001, "只有认证党员和居民才可以加入小组,请选择您的身份"), CANNOT_CREATE_GROUP(8002, "只有党员和热心居民才能创建小组,请选择您的身份"), GROUP_ALREADY_EXISTED(8003,"您的组名已存在,请重新修改"), - ALREADY_APPLIED_GROUP(8004,"该群已申请过,请耐心等待审核"); + ALREADY_APPLIED_GROUP(8004,"该群已申请过,请耐心等待审核"), + ONLY_LEADER_CAN_INVITE(8005,"抱歉,只有群主才可以邀请新成员"), + LOSE_EFFICACY(8006,"链接已失效"); private int value; private String name; diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-job/epmet-job-server/src/main/resources/bootstrap.yml index f402978001..2be4349624 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-job/epmet-job-server/src/main/resources/bootstrap.yml @@ -4,6 +4,8 @@ server: context-path: /job spring: + main: + allow-bean-definition-overriding: true application: name: epmet-job-server #环境 dev|test|prod diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml index f34d2325d4..f44a4099e0 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml @@ -4,6 +4,8 @@ server: context-path: /message spring: + main: + allow-bean-definition-overriding: true application: name: epmet-message-server #环境 dev|test|prod diff --git a/epmet-module/epmet-oss/epmet-oss-server/pom.xml b/epmet-module/epmet-oss/epmet-oss-server/pom.xml index 28570008ee..ea11cf21ef 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/pom.xml +++ b/epmet-module/epmet-oss/epmet-oss-server/pom.xml @@ -92,12 +92,6 @@ fastdfs-client ${fastdfs.version} - - - io.github.openfeign - feign-httpclient - 10.3.0 - diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java index c3f44bbc57..3fe7b82bca 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.*; * @dscription * @date 2020/3/19 9:32 */ -@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, path="/epmetuser", fallback = EpmetUserFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, path="/epmetuser", fallback = EpmetUserFeignClientFallback.class,url = "http://localhost:8087") public interface EpmetUserFeignClient { /** diff --git a/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml b/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml index cfe7b27b8a..9852c40609 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml +++ b/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml @@ -4,6 +4,8 @@ server: context-path: /oper/access spring: + main: + allow-bean-definition-overriding: true application: name: oper-access-server #环境 dev|test|prod diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml b/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml index 5979925078..74241043ea 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml +++ b/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml @@ -4,6 +4,8 @@ server: context-path: /oper/crm spring: + main: + allow-bean-definition-overriding: true application: name: oper-crm-server #环境 dev|test|prod diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml index 4cbec67c8a..d64cf2db02 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml @@ -4,6 +4,8 @@ server: context-path: /oper/customize spring: + main: + allow-bean-definition-overriding: true application: name: oper-customize-server #环境 dev|test|prod diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/form/ResiQueryCommentFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/form/ResiQueryCommentFormDTO.java new file mode 100644 index 0000000000..b761f8c4fe --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/form/ResiQueryCommentFormDTO.java @@ -0,0 +1,10 @@ +package com.epmet.resi.group.dto.comment.form; + +/** + * @Description + * @ClassName ResiCommentFormDTO + * @Author wangc + * @date 2020.04.01 17:14 + */ +public class ResiCommentFormDTO { +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/result/ResiCommentResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/result/ResiCommentResultDTO.java new file mode 100644 index 0000000000..dc37f30728 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/result/ResiCommentResultDTO.java @@ -0,0 +1,10 @@ +package com.epmet.resi.group.dto.comment.result; + +/** + * @Description + * @ClassName ResiCommentResultDTO + * @Author wangc + * @date 2020.04.01 17:07 + */ +public class ResiCommentResultDTO { +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/GroupInvitationDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/GroupInvitationDTO.java new file mode 100644 index 0000000000..b4bc7fe18a --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/GroupInvitationDTO.java @@ -0,0 +1,101 @@ +/** + * 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.resi.group.dto.invitation; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 群邀请记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-03-31 + */ +@Data +public class GroupInvitationDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键(可能跟epmet-user的personnel_invite的[邀请Id]关联) + */ + private String id; + + /** + * 邀请人id(customer_user.id) + */ + private String inviterUserId; + + /** + * 邀请人所属客户id + */ + private String inviterCustomerId; + + /** + * 邀请网格id + */ + private String inviterGridId; + + /** + * 邀请小组id(resi_group.id) + */ + private String resiGroupId; + + /** + * 邀请内容 + */ + private String inviterContent; + + /** + * 邀请码有效截止时间(暂定XX天) + */ + private Date validEndTime; + + /** + * 删除标记 0:未删除,1:已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人(customer_user.id) + */ + private String createdBy; + + /** + * 创建时间(邀请时间) + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/AccetInvitationFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/AccetInvitationFormDTO.java new file mode 100644 index 0000000000..532b86c68d --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/AccetInvitationFormDTO.java @@ -0,0 +1,31 @@ +package com.epmet.resi.group.dto.invitation.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 同意邀请进组 + * @Author yinzuomei + * @Date 2020/3/31 23:45 + */ +@Data +public class AccetInvitationFormDTO implements Serializable { + private static final long serialVersionUID = 132547449950577938L; + + /** + * 邀请id + */ + @NotBlank(message="邀请链接id不能为空") + private String invitationId; + + /** + * 当前登录用户id由TokenDto赋值 + */ + @NotBlank(message="当前用户id不能为空") + private String userId; + + @NotBlank(message = "app不能为空") + private String app; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/CreateGroupInvitationFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/CreateGroupInvitationFormDTO.java new file mode 100644 index 0000000000..2c474460f0 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/CreateGroupInvitationFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.resi.group.dto.invitation.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 生成邀请链接入参 + * @Author yinzuomei + * @Date 2020/3/31 22:46 + */ +@Data +public class CreateGroupInvitationFormDTO implements Serializable { + private static final long serialVersionUID = 5703017117444559566L; + + /** + * 要审核的组id + */ + @NotBlank(message="groupId不能为空") + private String groupId; + + /** + * 当前登录用户id由TokenDto赋值 + */ + @NotBlank(message="当前用户id不能为空") + private String userId; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/LinkGroupInfoFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/LinkGroupInfoFormDTO.java new file mode 100644 index 0000000000..eab8aa8247 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/LinkGroupInfoFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.resi.group.dto.invitation.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 根据群邀请连接查询群基本信息入参DTO + * @Author yinzuomei + * @Date 2020/3/31 23:12 + */ +@Data +public class LinkGroupInfoFormDTO implements Serializable { + private static final long serialVersionUID = 7069116393380944951L; + + /** + * 邀请id + */ + @NotBlank(message="邀请链接id不能为空") + private String invitationId; + + /** + * 当前登录用户id由TokenDto赋值 + */ + private String userId; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/CreateGroupInvitationResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/CreateGroupInvitationResultDTO.java new file mode 100644 index 0000000000..b8d3a690c0 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/CreateGroupInvitationResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.resi.group.dto.invitation.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 生成邀请链接返参 + * @Author yinzuomei + * @Date 2020/3/31 22:49 + */ +@Data +public class CreateGroupInvitationResultDTO implements Serializable { + private static final long serialVersionUID = 5142118627780324057L; + + /** + * 邀请id + */ + private String invitationId; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/LinkGroupInfoResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/LinkGroupInfoResultDTO.java new file mode 100644 index 0000000000..b856309601 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/LinkGroupInfoResultDTO.java @@ -0,0 +1,51 @@ +package com.epmet.resi.group.dto.invitation.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 根据群邀请连接查询群基本信息入参DTO 小组邀请界面信息 + * @Author yinzuomei + * @Date 2020/3/31 23:18 + */ +@Data +public class LinkGroupInfoResultDTO implements Serializable { + private static final long serialVersionUID = 8860336693592035343L; + + /** + * 群组id + */ + private String groupId; + + /** + * 群组头像 + */ + private String groupHeadPhoto; + + /** + * 组长名称!!!!!!!! + * 暂定街道-姓名 + */ + private String leaderName; + + /** + * 群组名称 + */ + private String groupName; + + /** + * 组介绍 + */ + private String groupIntroduction; + + /** + * 成员总数 + */ + private Integer totalMember; + + /** + * 党员总数 + */ + private Integer totalPartyMember; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiCommentFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiPublishCommentFormDTO.java similarity index 100% rename from epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiCommentFormDTO.java rename to epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiPublishCommentFormDTO.java diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java new file mode 100644 index 0000000000..b3bf01b5d9 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java @@ -0,0 +1,10 @@ +package com.epmet.resi.group.dto.topic.form; + +/** + * @Description + * @ClassName ResiTopicOperationFormDTO + * @Author wangc + * @date 2020.04.01 15:32 + */ +public class ResiTopicOperationFormDTO { +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java new file mode 100644 index 0000000000..547448bdb8 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java @@ -0,0 +1,10 @@ +package com.epmet.resi.group.dto.topic.result; + +/** + * @Description + * @ClassName ResiTopicDetailResultDTO + * @Author wangc + * @date 2020.04.01 16:03 + */ +public class ResiTopicDetailResultDTO { +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java new file mode 100644 index 0000000000..533b67db56 --- /dev/null +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java @@ -0,0 +1,10 @@ +package com.epmet.modules.comment.controller; + +/** + * @Description + * @ClassName ResiCommentController + * @Author wangc + * @date 2020.04.01 18:00 + */ +public class ResiCommentController { +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java index 73eb3ef5a7..f999d2ed8f 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java @@ -24,6 +24,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.UserResiInfoFormDTO; import com.epmet.modules.group.entity.ResiGroupEntity; +import com.epmet.resi.group.dto.UserRoleDTO; import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.form.*; import com.epmet.resi.group.dto.group.result.CreatedResultDTO; @@ -192,4 +193,15 @@ public interface ResiGroupService extends BaseService { * @Date 2020/3/31 13:22 **/ Result disagreeApplyGroup(DisAgreeApplyGroupFormDTO disAgreeApplyGroupFormDTO); + + /** + * @return com.epmet.resi.group.dto.UserRoleDTO + * @param app + * @param userId + * @param customerId + * @Author yinzuomei + * @Description 判断用户当前角色 + * @Date 2020/4/1 0:00 + **/ + UserRoleDTO checkPartyMemberOrWarmHeated(String app, String userId, String customerId); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index 8d34a45b92..e4fb6a8ade 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -82,8 +82,6 @@ import java.util.Map; @Service public class ResiGroupServiceImpl extends BaseServiceImpl implements ResiGroupService { private Logger logger = LoggerFactory.getLogger(getClass()); - @Autowired - private ResiGroupRedis resiGroupRedis; @Autowired private ResiGroupMemberService resiGroupMemberService; @@ -293,10 +291,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl resiGroupEntityList = this.getResiGroupEntityList(applyCreateGroupFormDTO); if (null != resiGroupEntityList && resiGroupEntityList.size() > 0) { - Result errorResult = new Result(); - errorResult.setCode(EpmetErrorCode.GROUP_ALREADY_EXISTED.getValue()); - errorResult.setMsg(EpmetErrorCode.GROUP_ALREADY_EXISTED.getName()); - return errorResult; + return new Result().error(EpmetErrorCode.GROUP_ALREADY_EXISTED.getValue(),EpmetErrorCode.GROUP_ALREADY_EXISTED.getName()); } //2、插入一条待审核的组信息 ResiGroupEntity resiGroupEntity = this.structureResiGroupEntity(applyCreateGroupFormDTO); @@ -377,10 +372,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl result = epmetUserFeignClient.getUserResiInfoDTO(resiUserInfoFormDTO); if (!result.success() || null == result.getData() || StringUtils.isBlank(result.getData().getRegMobile())) { logger.info("居民注册信息查询失败"); - Result errorResult = new Result(); - errorResult.setCode(EpmetErrorCode.CANNOT_JOIN_GROUP.getValue()); - errorResult.setMsg(EpmetErrorCode.CANNOT_JOIN_GROUP.getName()); - return errorResult; + return new Result().error(EpmetErrorCode.CANNOT_JOIN_GROUP.getValue(),EpmetErrorCode.CANNOT_JOIN_GROUP.getName()); } return new Result(); } @@ -415,10 +407,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl + * 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.modules.invitation.controller; + +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.commons.tools.validator.ValidatorUtils; +import com.epmet.modules.invitation.service.GroupInvitationService; +import com.epmet.resi.group.dto.invitation.form.AccetInvitationFormDTO; +import com.epmet.resi.group.dto.invitation.form.CreateGroupInvitationFormDTO; +import com.epmet.resi.group.dto.invitation.form.LinkGroupInfoFormDTO; +import com.epmet.resi.group.dto.invitation.result.CreateGroupInvitationResultDTO; +import com.epmet.resi.group.dto.invitation.result.LinkGroupInfoResultDTO; +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; + + +/** + * 群邀请记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-03-31 + */ +@RestController +@RequestMapping("invitation") +public class GroupInvitationController { + + @Autowired + private GroupInvitationService groupInvitationService; + + /** + * @param tokenDto + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 生成邀请 + * @Date 2020/3/31 22:50 + **/ + @PostMapping("creategroupinvitation") + public Result createGroupInvitation(@LoginUser TokenDto tokenDto, + @RequestBody CreateGroupInvitationFormDTO formDTO) { + formDTO.setUserId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO); + return groupInvitationService.createGroupInvitation(formDTO); + } + + /** + * @param tokenDto + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 根据群邀请连接查询群基本信息 + * @Date 2020/3/31 23:11 + **/ + @PostMapping("getlinkgroupinfo") + public Result getLinkGroupInfo(@LoginUser TokenDto tokenDto, + @RequestBody LinkGroupInfoFormDTO formDTO) { + formDTO.setUserId(tokenDto.getUserId()); + ValidatorUtils.validateEntity(formDTO); + return groupInvitationService.getLinkGroupInfo(formDTO); + } + + /** + * @param tokenDto + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 同意邀请进组 + * @Date 2020/3/31 23:47 + **/ + @PostMapping("acceptinvitation") + public Result accetInvitation(@LoginUser TokenDto tokenDto, + @RequestBody AccetInvitationFormDTO formDTO) { + formDTO.setUserId(tokenDto.getUserId()); + formDTO.setApp(tokenDto.getApp()); + ValidatorUtils.validateEntity(formDTO); + return groupInvitationService.accetInvitation(formDTO); + } +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/dao/.gitkeep b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/dao/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/dao/GroupInvitationDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/dao/GroupInvitationDao.java new file mode 100644 index 0000000000..c521956b8b --- /dev/null +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/dao/GroupInvitationDao.java @@ -0,0 +1,44 @@ +/** + * 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.modules.invitation.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.modules.invitation.entity.GroupInvitationEntity; +import com.epmet.resi.group.dto.invitation.form.LinkGroupInfoFormDTO; +import com.epmet.resi.group.dto.invitation.result.LinkGroupInfoResultDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 群邀请记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-03-31 + */ +@Mapper +public interface GroupInvitationDao extends BaseDao { + + /** + * @param groupId + * @return com.epmet.resi.group.dto.invitation.result.LinkGroupInfoResultDTO + * @Author yinzuomei + * @Description 根据群邀请连接查询群基本信息 + * @Date 2020/3/31 23:22 + **/ + LinkGroupInfoResultDTO selectLinkGroupInfo(@Param("groupId") String groupId); +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/entity/.gitkeep b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/entity/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicCommentEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/entity/GroupInvitationEntity.java similarity index 65% rename from epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicCommentEntity.java rename to epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/entity/GroupInvitationEntity.java index f42668e9cb..a5f23c21a4 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicCommentEntity.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/entity/GroupInvitationEntity.java @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package com.epmet.modules.topic.entity; +package com.epmet.modules.invitation.entity; import com.baomidou.mybatisplus.annotation.TableName; @@ -26,31 +26,46 @@ import lombok.EqualsAndHashCode; import java.util.Date; /** - * 话题评论表 + * 群邀请记录表 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-03-31 */ @Data @EqualsAndHashCode(callSuper=false) -@TableName("resi_topic_comment") -public class ResiTopicCommentEntity extends BaseEpmetEntity { +@TableName("group_invitation") +public class GroupInvitationEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; /** - * 评论内容 + * 邀请人id(customer_user.id) */ - private String commentContent; + private String inviterUserId; /** - * 话题Id,来自resi_topic + * 邀请人所属客户id */ - private String topicId; + private String inviterCustomerId; /** - * 评论状态 + * 邀请网格id */ - private String status; + private String inviterGridId; + + /** + * 邀请小组id(resi_group.id) + */ + private String resiGroupId; + + /** + * 邀请内容 + */ + private String inviterContent; + + /** + * 邀请码有效截止时间(暂定XX天) + */ + private Date validEndTime; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/excel/.gitkeep b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/excel/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/GroupInvitationService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/GroupInvitationService.java new file mode 100644 index 0000000000..adc45ff5b2 --- /dev/null +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/GroupInvitationService.java @@ -0,0 +1,128 @@ +/** + * 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.modules.invitation.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; +import com.epmet.modules.invitation.entity.GroupInvitationEntity; +import com.epmet.resi.group.dto.invitation.GroupInvitationDTO; +import com.epmet.resi.group.dto.invitation.form.AccetInvitationFormDTO; +import com.epmet.resi.group.dto.invitation.form.CreateGroupInvitationFormDTO; +import com.epmet.resi.group.dto.invitation.form.LinkGroupInfoFormDTO; +import com.epmet.resi.group.dto.invitation.result.CreateGroupInvitationResultDTO; +import com.epmet.resi.group.dto.invitation.result.LinkGroupInfoResultDTO; + +import java.util.List; +import java.util.Map; + +/** + * 群邀请记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-03-31 + */ +public interface GroupInvitationService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2020-03-31 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2020-03-31 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return GroupInvitationDTO + * @author generator + * @date 2020-03-31 + */ + GroupInvitationDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2020-03-31 + */ + void save(GroupInvitationDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2020-03-31 + */ + void update(GroupInvitationDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2020-03-31 + */ + void delete(String[] ids); + + /** + * @return com.epmet.commons.tools.utils.Result + * @param formDTO + * @Author yinzuomei + * @Description 生成邀请连接 + * @Date 2020/3/31 22:50 + **/ + Result createGroupInvitation(CreateGroupInvitationFormDTO formDTO); + + /** + * @return com.epmet.commons.tools.utils.Result + * @param formDTO + * @Author yinzuomei + * @Description 根据群邀请连接查询群基本信息 + * @Date 2020/3/31 23:20 + **/ + Result getLinkGroupInfo(LinkGroupInfoFormDTO formDTO); + + /** + * @return com.epmet.commons.tools.utils.Result + * @param formDTO + * @Author yinzuomei + * @Description 同意邀请进组 + * @Date 2020/3/31 23:47 + **/ + Result accetInvitation(AccetInvitationFormDTO formDTO); +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/.gitkeep b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java new file mode 100644 index 0000000000..8e36224680 --- /dev/null +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java @@ -0,0 +1,252 @@ +/** + * 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.modules.invitation.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.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.modules.group.service.ResiGroupService; +import com.epmet.modules.invitation.dao.GroupInvitationDao; +import com.epmet.modules.invitation.entity.GroupInvitationEntity; +import com.epmet.modules.invitation.service.GroupInvitationService; +import com.epmet.modules.member.dao.ResiGroupMemberDao; +import com.epmet.modules.member.service.GroupMemeberOperationService; +import com.epmet.modules.member.service.ResiGroupMemberService; +import com.epmet.modules.utils.ModuleConstant; +import com.epmet.resi.group.constant.EnterGroupTypeConstant; +import com.epmet.resi.group.constant.GroupStateConstant; +import com.epmet.resi.group.constant.LeaderFlagConstant; +import com.epmet.resi.group.constant.MemberStateConstant; +import com.epmet.resi.group.dto.UserRoleDTO; +import com.epmet.resi.group.dto.group.ResiGroupDTO; +import com.epmet.resi.group.dto.invitation.GroupInvitationDTO; +import com.epmet.resi.group.dto.invitation.form.AccetInvitationFormDTO; +import com.epmet.resi.group.dto.invitation.form.CreateGroupInvitationFormDTO; +import com.epmet.resi.group.dto.invitation.form.LinkGroupInfoFormDTO; +import com.epmet.resi.group.dto.invitation.result.CreateGroupInvitationResultDTO; +import com.epmet.resi.group.dto.invitation.result.LinkGroupInfoResultDTO; +import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO; +import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; +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 java.util.*; + +/** + * 群邀请记录表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-03-31 + */ +@Service +public class GroupInvitationServiceImpl extends BaseServiceImpl implements GroupInvitationService { + + @Autowired + private ResiGroupMemberDao resiGroupMemberDao; + + @Autowired + private ResiGroupService resiGroupService; + + @Autowired + private ResiGroupMemberService resiGroupMemberService; + + @Autowired + private GroupMemeberOperationService groupMemeberOperationService; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, GroupInvitationDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, GroupInvitationDTO.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 GroupInvitationDTO get(String id) { + GroupInvitationEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, GroupInvitationDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(GroupInvitationDTO dto) { + GroupInvitationEntity entity = ConvertUtils.sourceToTarget(dto, GroupInvitationEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(GroupInvitationDTO dto) { + GroupInvitationEntity entity = ConvertUtils.sourceToTarget(dto, GroupInvitationEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 生成邀请连接 + * @Date 2020/3/31 22:50 + **/ + @Override + public Result createGroupInvitation(CreateGroupInvitationFormDTO formDTO) { + //1、只有群主可以邀请新成员 + ResiGroupMemberDTO resiGroupMemberDTO = resiGroupMemberDao.selectGroupMemberInfo(formDTO.getGroupId(), formDTO.getUserId()); + if (null == resiGroupMemberDTO) { + return new Result<>(); + } + if (null != resiGroupMemberDTO && !LeaderFlagConstant.GROUP_LEADER.equals(resiGroupMemberDTO.getGroupLeaderFlag())) { + return new Result().error(EpmetErrorCode.ONLY_LEADER_CAN_INVITE.getValue(), + EpmetErrorCode.ONLY_LEADER_CAN_INVITE.getName()); + } + //2、审核通过(讨论中)的群才可以分享邀请连接 + ResiGroupDTO resiGroupDTO = resiGroupService.get(formDTO.getGroupId()); + if(!GroupStateConstant.GROUP_APPROVED.equals(resiGroupDTO.getState())){ + return new Result().error(ModuleConstant.CANNOT_SHARED); + } + //3、插入一条邀请记录 + GroupInvitationEntity groupInvitationEntity = new GroupInvitationEntity(); + groupInvitationEntity.setInviterUserId(formDTO.getUserId()); + groupInvitationEntity.setInviterCustomerId(resiGroupDTO.getCustomerId()); + groupInvitationEntity.setInviterGridId(resiGroupDTO.getGridId()); + //暂定7天有效期 + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + NumConstant.SEVEN); + groupInvitationEntity.setValidEndTime(calendar.getTime()); + insert(groupInvitationEntity); + CreateGroupInvitationResultDTO resultDTO = new CreateGroupInvitationResultDTO(); + resultDTO.setInvitationId(groupInvitationEntity.getId()); + return new Result().ok(resultDTO); + } + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 根据群邀请连接查询群基本信息 + * @Date 2020/3/31 23:20 + **/ + @Override + public Result getLinkGroupInfo(LinkGroupInfoFormDTO formDTO) { + //校验是否存在该邀请连接 + Result validResult = this.checkLinkValid(formDTO.getInvitationId()); + if(!validResult.success()){ + return new Result().error(validResult.getCode(),validResult.getMsg()); + } + LinkGroupInfoResultDTO linkGroupInfoResultDTO = baseDao.selectLinkGroupInfo(validResult.getData().getResiGroupId()); + return new Result().ok(linkGroupInfoResultDTO); + } + + private Result checkLinkValid(String invitationId){ + //校验是否存在该邀请连接 + GroupInvitationDTO groupInvitationDTO = this.get(invitationId); + //Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时,返回false; + if (null == groupInvitationDTO) { + return new Result().error(EpmetErrorCode.LOSE_EFFICACY.getValue(),EpmetErrorCode.LOSE_EFFICACY.getName()); + } + if (null != groupInvitationDTO && groupInvitationDTO.getValidEndTime().after(new Date())) { + return new Result().error(EpmetErrorCode.LOSE_EFFICACY.getValue(),EpmetErrorCode.LOSE_EFFICACY.getName()); + } + return new Result().ok(groupInvitationDTO); + } + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 同意邀请进组 + * @Date 2020/3/31 23:47 + **/ + @Override + public Result accetInvitation(AccetInvitationFormDTO formDTO) { + //1、申请是否有效 + Result validResult = this.checkLinkValid(formDTO.getInvitationId()); + if(!validResult.success()){ + return new Result().error(validResult.getCode(),validResult.getMsg()); + } + //2、校验是否已经注册居民 + ResiGroupDTO resiGroupDTO = resiGroupService.get(validResult.getData().getResiGroupId()); + if (null != resiGroupDTO) { + UserRoleDTO userRoleDTO = resiGroupService.checkPartyMemberOrWarmHeated(formDTO.getApp(), + formDTO.getUserId(), + resiGroupDTO.getCustomerId()); + if (NumConstant.ZERO_STR.equals(userRoleDTO.getRegisteredResiFlag())) { + return new Result().error(EpmetErrorCode.CANNOT_JOIN_GROUP.getValue(),EpmetErrorCode.CANNOT_JOIN_GROUP.getName()); + } + } + //3、新增一条邀请入群、直接审核通过的入群记录 + GroupMemeberOperationDTO groupMemeberOperation = new GroupMemeberOperationDTO(); + groupMemeberOperation.setGroupId(resiGroupDTO.getId()); + groupMemeberOperation.setCustomerUserId(formDTO.getUserId()); + groupMemeberOperation.setGroupId(resiGroupDTO.getId()); + groupMemeberOperation.setOperateStatus(MemberStateConstant.APPROVED); + groupMemeberOperation.setEnterGroupType(EnterGroupTypeConstant.INVITED); + groupMemeberOperation.setCreatedBy(formDTO.getUserId()); + groupMemeberOperation.setOperateUserId(formDTO.getUserId()); + groupMemeberOperationService.save(groupMemeberOperation); + //4、直接加入群成员关系表 + ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO(); + resiGroupMemberDTO.setCustomerUserId(groupMemeberOperation.getCustomerUserId()); + resiGroupMemberDTO.setResiGroupId(groupMemeberOperation.getGroupId()); + resiGroupMemberDTO.setGroupLeaderFlag(LeaderFlagConstant.GROUP_MEMBER); + resiGroupMemberDTO.setEnterGroupType(groupMemeberOperation.getEnterGroupType()); + resiGroupMemberDTO.setStatus(MemberStateConstant.APPROVED); + resiGroupMemberDTO.setCreatedBy(groupMemeberOperation.getCustomerUserId()); + resiGroupMemberService.save(resiGroupMemberDTO); + //5、修改群统计值 + UserRoleDTO userRoleDTO = resiGroupService.checkPartyMemberOrWarmHeated(formDTO.getApp(), + formDTO.getUserId(), + resiGroupDTO.getCustomerId()); + resiGroupMemberDao.updateResiGroupStatistical(groupMemeberOperation.getGroupId(), userRoleDTO); + //6、发送消息 TODO + return new Result(); + } + +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java index 308999e187..737474d53d 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java @@ -85,5 +85,15 @@ public interface ResiGroupMemberDao extends BaseDao { * @Description 查看用户是否存在有效的入群申请 * @Date 2020/3/31 14:52 **/ - GroupMemeberOperationDTO selectGroupMemberOperationUnderAudit(@Param("userId") String userId, @Param("groupId") String groupId); + GroupMemeberOperationDTO selectGroupMemberOperationLatest(@Param("userId") String userId, @Param("groupId") String groupId); + + /** + * @return com.epmet.resi.group.dto.member.ResiGroupMemberDTO + * @param groupId + * @param userId + * @Author yinzuomei + * @Description 根据组id+用户id查询成员信息 + * @Date 2020/3/31 16:06 + **/ + ResiGroupMemberDTO selectGroupMemberInfo(@Param("groupId") String groupId, @Param("userId")String userId); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java index b217cc764f..c679cb179e 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java @@ -20,22 +20,18 @@ package com.epmet.modules.member.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.EpmetRoleKeyConstant; +import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.form.UserRoleFormDTO; -import com.epmet.dto.result.UserRoleResultDTO; -import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.group.service.ResiGroupService; import com.epmet.modules.member.dao.ResiGroupMemberDao; import com.epmet.modules.member.entity.ResiGroupMemberEntity; -import com.epmet.modules.member.redis.ResiGroupMemberRedis; import com.epmet.modules.member.service.GroupMemeberOperationService; import com.epmet.modules.member.service.ResiGroupMemberService; +import com.epmet.modules.utils.ModuleConstant; import com.epmet.resi.group.constant.EnterGroupTypeConstant; import com.epmet.resi.group.constant.LeaderFlagConstant; import com.epmet.resi.group.constant.MemberStateConstant; @@ -66,8 +62,6 @@ import java.util.Map; @Service public class ResiGroupMemberServiceImpl extends BaseServiceImpl implements ResiGroupMemberService { private Logger logger = LoggerFactory.getLogger(getClass()); - @Autowired - private ResiGroupMemberRedis resiGroupMemberRedis; @Autowired private GroupMemeberOperationService groupMemeberOperationService; @@ -78,9 +72,6 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -162,26 +153,23 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl list = baseDao.selectListGroupMember(groupMemberListFormDTO); + if (null != list && list.size() > 0) { + for (GroupMemberListResultDTO groupMemberListResultDTO : list) { + groupMemberListResultDTO.setUserShowName("测试昵称"); + groupMemberListResultDTO.setHeadPhoto("https://wx.qlogo.cn/mmopen/vi_32/PiajxSqBRaEIXGqhj0JakGnhk0L4x31XuWyQM4OxnriaKD4GuAgr8GdLpwu8jphH0oQPbPy0pepWU5iciaIeQwUJPg/132"); + + } + } return new Result>().ok(list); } @@ -224,6 +219,12 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl list = baseDao.selectListApplyingMember(applyingMemberFormDTO); + if (null != list && list.size() > 0) { + for (ApplyingMemberResultDTO applyingMemberResultDTO : list) { + applyingMemberResultDTO.setApplyUserName("测试昵称"); + applyingMemberResultDTO.setApplyUserHeadPhoto("https://wx.qlogo.cn/mmopen/vi_32/PiajxSqBRaEIXGqhj0JakGnhk0L4x31XuWyQM4OxnriaKD4GuAgr8GdLpwu8jphH0oQPbPy0pepWU5iciaIeQwUJPg/132"); + } + } return new Result>().ok(list); } @@ -236,10 +237,20 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl> userRoleListResult = epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO); - if (!userRoleListResult.success()) { - logger.info("获取用户角色feign调用失败" + userRoleListResult.getMsg()); - return userRoleDTO; - } - List userRoleList = userRoleListResult.getData(); - if (null == userRoleList || userRoleList.size() == 0) { - return userRoleDTO; - } - for (UserRoleResultDTO userRoleResultDTO : userRoleList) { - if (EpmetRoleKeyConstant.PARTYMEMBER.equals(userRoleResultDTO.getRoleKey())) { - userRoleDTO.setPartymemberFlag(NumConstant.ONE_STR); - } - if (EpmetRoleKeyConstant.WARMHEARTED.equals(userRoleResultDTO.getRoleKey())) { - userRoleDTO.setWarmHeartedFlag(NumConstant.ONE_STR); - } - if (EpmetRoleKeyConstant.REGISTERED_RESI.equals(userRoleResultDTO.getRoleKey())) { - userRoleDTO.setRegisteredResiFlag(NumConstant.ONE_STR); - } - } - return userRoleDTO; - } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java index c1217d2932..575da97f9d 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java @@ -77,4 +77,24 @@ public interface ModuleConstant extends Constant { * 逻辑删除标识 未删除 * */ String DEL_FLAG = "0"; + + /** + * 组长审批时校验申请单是否存在 + */ + String APPLY_NOEXISTS="申请单被删除"; + + /** + * 组长审批时校验当前用户身份 + */ + String CANNOT_AUDIT_APPLY="只有群主才可以审批入群申请"; + + /** + * 申请入群是校验是否已经在群内 + */ + String ALREADY_IN_GROUP="已经在群内,无需申请"; + + /** + * 生成邀请新成员链接时,判断群状态 + */ + String CANNOT_SHARED="只有讨论中的群才可以邀请新成员"; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/invitation/GroupInvitationDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/invitation/GroupInvitationDao.xml new file mode 100644 index 0000000000..b814840946 --- /dev/null +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/invitation/GroupInvitationDao.xml @@ -0,0 +1,25 @@ + + + + + + + + + + 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 4a47034b33..2ae5acd289 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 @@ -74,11 +74,24 @@ - select gmo.* from group_memeber_operation gmo where gmo.DEL_FLAG='0' - and gmo.OPERATE_STATUS='under_auditting' and gmo.CUSTOMER_USER_ID=#{userId} and gmo.GROUP_ID=#{groupId} + order by gmo.CREATED_TIME desc + limit 1 + + + + diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java index d034f07265..fbb6686ec6 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java @@ -2,6 +2,7 @@ package com.epmet.modules.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.form.ResiRegisterFormDTO; import com.epmet.dto.result.LatestGridInfoResultDTO; import com.epmet.dto.result.ResiRegisterResultDTO; @@ -35,4 +36,11 @@ public interface EpmetUserFeignClient { **/ @PostMapping(value = "epmetuser/userresiregistervisit/init") Result init(ResiRegisterFormDTO formDTO); + + /** + * @Author sun + * @Description 居民端-居民注册信息提交 + **/ + @PostMapping(value = "epmetuser/userresiinfo/submit") + Result submit(UserResiInfoDTO userResiInfoDTO); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/ResiPartymemberFeignClient.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/ResiPartymemberFeignClient.java index 042adc8dad..d22948a183 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/ResiPartymemberFeignClient.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/ResiPartymemberFeignClient.java @@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.modules.feign.fallback.ResiPartymemberFeignClientFallBack; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; +import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -22,4 +23,11 @@ public interface ResiPartymemberFeignClient { **/ @PostMapping(value = "resi/partymember/resiwarmheartedapply/init") Result init(ResiWarmheartedFormDTO formDTO); + + /** + * @Author sun + * @Description 居民端-热心居民申请-提交申请数据 + **/ + @PostMapping(value = "resi/partymember/resiwarmheartedapply/submit") + Result submit(ResiWarmheartedSubmitFormDTO formDTO); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java index 190298d177..fddff4a777 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java @@ -3,6 +3,7 @@ package com.epmet.modules.feign.fallback; 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.UserResiInfoDTO; import com.epmet.dto.form.ResiRegisterFormDTO; import com.epmet.dto.result.LatestGridInfoResultDTO; import com.epmet.dto.result.ResiRegisterResultDTO; @@ -39,4 +40,16 @@ public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient { public Result init(ResiRegisterFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "init", formDTO); } + + /** + * @Author sun + * @Description 居民端-居民注册信息提交 + * @Date 2020/3/30 + **/ + @Override + public Result submit(UserResiInfoDTO userResiInfoDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "submit", userResiInfoDTO); + } + + } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/ResiPartymemberFeignClientFallBack.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/ResiPartymemberFeignClientFallBack.java index 6580756d0e..da9c740fd4 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/ResiPartymemberFeignClientFallBack.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/ResiPartymemberFeignClientFallBack.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.modules.feign.ResiPartymemberFeignClient; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; +import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; import org.springframework.stereotype.Component; @@ -26,4 +27,14 @@ public class ResiPartymemberFeignClientFallBack implements ResiPartymemberFeignC public Result init(ResiWarmheartedFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "init", formDTO); } + + /** + * @Author sun + * @Description 居民端-热心居民申请-提交申请数据 + * @Date 2020/3/30 + **/ + @Override + public Result submit(ResiWarmheartedSubmitFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "submit", formDTO); + } } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/controller/ResiRegisterController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/controller/ResiRegisterController.java index 58128b7e19..2bb24c3a1f 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/controller/ResiRegisterController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/controller/ResiRegisterController.java @@ -3,9 +3,11 @@ package com.epmet.modules.resiregister.controller; 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.UserResiInfoDTO; import com.epmet.dto.form.ResiRegisterFormDTO; import com.epmet.dto.result.ResiRegisterResultDTO; import com.epmet.modules.resiregister.service.ResiRegisterService; +import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -22,7 +24,7 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("resiregister") public class ResiRegisterController { @Autowired - private ResiRegisterService resiMineGridService; + private ResiRegisterService resiRegisterService; /** * @param @@ -32,7 +34,18 @@ public class ResiRegisterController { **/ @PostMapping("init") public Result init(@LoginUser TokenDto tokenDTO, @RequestBody ResiRegisterFormDTO resiRegisterFormDTO) { - return resiMineGridService.init(tokenDTO, resiRegisterFormDTO); + return resiRegisterService.init(tokenDTO, resiRegisterFormDTO); } + /** + * @param + * @Author sun + * @Description 居民端-居民注册信息提交 + **/ + @PostMapping("submit") + public Result submit(@LoginUser TokenDto tokenDTO, @RequestBody UserResiInfoDTO userResiInfoDTO) { + return resiRegisterService.submit(tokenDTO, userResiInfoDTO); + } + + } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/ResiRegisterService.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/ResiRegisterService.java index 1b439f38db..5c4780b0f1 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/ResiRegisterService.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/ResiRegisterService.java @@ -2,6 +2,7 @@ package com.epmet.modules.resiregister.service; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.form.ResiRegisterFormDTO; import com.epmet.dto.result.ResiRegisterResultDTO; @@ -22,4 +23,13 @@ public interface ResiRegisterService { */ Result init(TokenDto tokenDTO, ResiRegisterFormDTO formDTO); + /** + * 居民端-居民注册信息提交 + * + * @param + * @return void + * @author sun + */ + Result submit(TokenDto tokenDTO, UserResiInfoDTO userResiInfoDTO); + } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/impl/ResiRegisterServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/impl/ResiRegisterServiceImpl.java index 7b7f1fd0d0..f7324d7c42 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/impl/ResiRegisterServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/resiregister/service/impl/ResiRegisterServiceImpl.java @@ -2,6 +2,7 @@ package com.epmet.modules.resiregister.service.impl; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.form.ResiRegisterFormDTO; import com.epmet.dto.result.ResiRegisterResultDTO; import com.epmet.modules.feign.EpmetUserFeignClient; @@ -30,4 +31,13 @@ public class ResiRegisterServiceImpl implements ResiRegisterService { formDTO.setUserId(tokenDTO.getUserId()); return epmetUserFeignClient.init(formDTO); } + + @Override + public Result submit(TokenDto tokenDTO, UserResiInfoDTO userResiInfoDTO) { + if (null == tokenDTO || StringUtils.isBlank(tokenDTO.getUserId())) { + return new Result().error(ModuleConstant.USER_NOT_NULL); + } + userResiInfoDTO.setUserId(tokenDTO.getUserId()); + return epmetUserFeignClient.submit(userResiInfoDTO); + } } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedController.java index 1d16ebf454..0f3d22fe2f 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedController.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.modules.warmhearted.service.ResiWarmheartedService; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; +import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -39,8 +40,8 @@ public class ResiWarmheartedController { * @Description 居民端-热心居民申请-提交申请数据 **/ @PostMapping("submit") - public Result submit(@LoginUser TokenDto tokenDTO, @RequestBody ResiWarmheartedFormDTO resiWarmheartedFormDTO) { - return resiWarmheartedService.init(tokenDTO, resiWarmheartedFormDTO); + public Result submit(@LoginUser TokenDto tokenDTO, @RequestBody ResiWarmheartedSubmitFormDTO formDTO) { + return resiWarmheartedService.submit(tokenDTO, formDTO); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedService.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedService.java index a02d86f29f..12924304d3 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedService.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedService.java @@ -3,6 +3,7 @@ package com.epmet.modules.warmhearted.service; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; +import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; /** @@ -21,4 +22,13 @@ public interface ResiWarmheartedService { */ Result init(TokenDto tokenDTO, ResiWarmheartedFormDTO formDTO); + /** + * 居民端-热心居民申请-提交申请数据 + * + * @param + * @return void + * @author sun + */ + Result submit(TokenDto tokenDTO, ResiWarmheartedSubmitFormDTO formDTO); + } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedServiceImpl.java index c83c97e3af..0239db3aa2 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedServiceImpl.java @@ -6,6 +6,7 @@ import com.epmet.modules.feign.ResiPartymemberFeignClient; import com.epmet.modules.utils.ModuleConstant; import com.epmet.modules.warmhearted.service.ResiWarmheartedService; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; +import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -30,4 +31,13 @@ public class ResiWarmheartedServiceImpl implements ResiWarmheartedService { formDTO.setUserId(tokenDTO.getUserId()); return resiPartymemberFeignClient.init(formDTO); } + + @Override + public Result submit(TokenDto tokenDTO, ResiWarmheartedSubmitFormDTO formDTO) { + if (null == tokenDTO || StringUtils.isBlank(tokenDTO.getUserId())) { + return new Result().error(ModuleConstant.USER_NOT_NULL); + } + formDTO.setUserId(tokenDTO.getUserId()); + return resiPartymemberFeignClient.submit(formDTO); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmheartedSubmitFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmheartedSubmitFormDTO.java new file mode 100644 index 0000000000..f631a278b9 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmheartedSubmitFormDTO.java @@ -0,0 +1,65 @@ +/** + * 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.resi.partymember.dto.warmhearted.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + + +/** + * 居民端-热心居民申请-提交申请数据-配置入参 + * @author sun + */ +@Data +public class ResiWarmheartedSubmitFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id CUSTOMER.id + */ + @NotBlank(message = "客户ID不能为空") + private String customerId; + + /** + * 网格Id + */ + @NotBlank(message = "网格ID不能为空") + private String gridId; + + /** + * 热心居民申请行为记录表Id + */ + @NotBlank(message = "行为记录表ID不能为空") + private String resiWarmVisitId; + + /** + * 申请理由(300字) + */ + @NotBlank(message = "申请理由不能为空") + private String reason; + + /** + * 用户Id + */ + @NotBlank(message = "用户ID不能为空") + private String userId; + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/result/ResiWarmheartedResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/result/ResiWarmheartedResultDTO.java index d6338f9b26..24cb26bda8 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/result/ResiWarmheartedResultDTO.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/result/ResiWarmheartedResultDTO.java @@ -40,6 +40,6 @@ public class ResiWarmheartedResultDTO implements Serializable { /** * 热心居民申请访问记录表(resi_warmhearted_visit)Id */ - private String resiWarmheartedVisitId; + private String resiWarmVisitId; } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmheartedVisitConstant.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmheartedVisitConstant.java index 31199697f9..a7da270749 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmheartedVisitConstant.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmheartedVisitConstant.java @@ -10,6 +10,7 @@ package com.epmet.modules.warmhearted.constant; /** * 常量 + * * @author sun * @since 1.0.0 */ @@ -28,5 +29,25 @@ public interface ResiWarmheartedVisitConstant { /** * 最后一次操作行为-提交失败 */ - String FAILD="faild"; + String FAILD = "faild"; + + /** + * 热心居民申请-审核状态-待审核 + */ + String UNDER_AUDITTING = "under_auditting"; + + /** + * 热心居民申请-审核状态-审核通过 + */ + String APPROVED = "approved"; + + /** + * 热心居民申请-审核状态-未通过 + */ + String REJECTED = "rejected"; + + /** + * 数据库操作异常 + */ + String OPERATION_EXCEPTION = "数据库操作异常!"; } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedApplyController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedApplyController.java index cf9f8d7b7b..430be44a6c 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedApplyController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedApplyController.java @@ -29,6 +29,7 @@ import com.epmet.modules.warmhearted.excel.ResiWarmheartedApplyExcel; import com.epmet.modules.warmhearted.service.ResiWarmheartedApplyService; import com.epmet.resi.partymember.dto.warmhearted.ResiWarmheartedApplyDTO; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; +import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -94,8 +95,13 @@ public class ResiWarmheartedApplyController { } @PostMapping("init") - public Result init(@RequestBody ResiWarmheartedFormDTO resiWarmheartedFormDTO){ - return resiWarmheartedApplyService.getResiWarmheartedApply(resiWarmheartedFormDTO); + public Result init(@RequestBody ResiWarmheartedFormDTO formDTO){ + return resiWarmheartedApplyService.init(formDTO); + } + + @PostMapping("submit") + public Result submit(@RequestBody ResiWarmheartedSubmitFormDTO formDTO){ + return resiWarmheartedApplyService.submit(formDTO); } } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/dao/ResiWarmheartedApplyDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/dao/ResiWarmheartedApplyDao.java index ad326b0f38..8283fc3f4c 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/dao/ResiWarmheartedApplyDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/dao/ResiWarmheartedApplyDao.java @@ -18,6 +18,7 @@ package com.epmet.modules.warmhearted.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.commons.tools.utils.Result; import com.epmet.modules.warmhearted.entity.ResiWarmheartedApplyEntity; import com.epmet.resi.partymember.dto.warmhearted.ResiWarmheartedApplyDTO; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; @@ -38,4 +39,6 @@ public interface ResiWarmheartedApplyDao extends BaseDao { void saveResiWarmheartedVisit(ResiWarmheartedVisitDTO resiWarmheartedVisitDTO); + void updateResiWarmVisitById(ResiWarmheartedVisitDTO resiWarmheartedVisitDTO); } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedApplyService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedApplyService.java index de325fdd16..385e1dd47f 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedApplyService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedApplyService.java @@ -23,13 +23,14 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.modules.warmhearted.entity.ResiWarmheartedApplyEntity; import com.epmet.resi.partymember.dto.warmhearted.ResiWarmheartedApplyDTO; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; +import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; import java.util.List; import java.util.Map; /** - * 热心居民申请表 + * 热心居民申请表 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-03-30 @@ -103,5 +104,14 @@ public interface ResiWarmheartedApplyService extends BaseService getResiWarmheartedApply(ResiWarmheartedFormDTO formDTO); + Result init(ResiWarmheartedFormDTO formDTO); + + /** + * 居民端-热心居民申请-提交申请数据 + * + * @param + * @return void + * @author sun + */ + Result submit(ResiWarmheartedSubmitFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedVisitService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedVisitService.java index 5547cfa243..cbeecf870f 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedVisitService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedVisitService.java @@ -19,9 +19,11 @@ package com.epmet.modules.warmhearted.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; import com.epmet.modules.warmhearted.entity.ResiWarmheartedVisitEntity; import com.epmet.resi.partymember.dto.warmhearted.ResiWarmheartedVisitDTO; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; +import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; import java.util.List; @@ -103,4 +105,13 @@ public interface ResiWarmheartedVisitService extends BaseService implements ResiWarmheartedApplyService { + private static final Logger log = LoggerFactory.getLogger(ResiWarmheartedApplyServiceImpl.class); @Autowired private ResiWarmheartedApplyRedis resiWarmheartedApplyRedis; @Autowired @@ -112,7 +120,7 @@ public class ResiWarmheartedApplyServiceImpl extends BaseServiceImpl getResiWarmheartedApply(ResiWarmheartedFormDTO formDTO) { + public Result init(ResiWarmheartedFormDTO formDTO) { //1:热心居民申请行为记录表新增数据 ResiWarmheartedResultDTO resiWarmheartedResultDTO = resiWarmheartedVisitService.saveResiWarmheartedVisit(formDTO); //2:查询是否已申请热心居民 @@ -126,5 +134,39 @@ public class ResiWarmheartedApplyServiceImpl extends BaseServiceImpl().ok(resiWarmheartedResultDTO); } + @Override + public Result submit(ResiWarmheartedSubmitFormDTO formDTO) { + //1:将申请记录存入热心居民申请表中 + saveResiWarmApply(formDTO); + //2:将最后一次操作行为更新到热心居民申请行为记录表中 + resiWarmheartedVisitService.updateResiWarmVisit(formDTO); + return new Result(); + } + + /** + * 热心居民申请表新增数据 + * @param formDTO + * @return + */ + @Transactional(rollbackFor = Exception.class) + public void saveResiWarmApply(ResiWarmheartedSubmitFormDTO formDTO) { + Date date = new Date(); + ResiWarmheartedApplyDTO resiWarmheartedApplyDTO = new ResiWarmheartedApplyDTO(); + resiWarmheartedApplyDTO.setCustomerId(formDTO.getCustomerId()); + resiWarmheartedApplyDTO.setGridId(formDTO.getGridId()); + resiWarmheartedApplyDTO.setUserId(formDTO.getUserId()); + resiWarmheartedApplyDTO.setReason(formDTO.getReason()); + resiWarmheartedApplyDTO.setResiWarmVisitId(formDTO.getResiWarmVisitId()); + resiWarmheartedApplyDTO.setAuditStatus(ResiWarmheartedVisitConstant.UNDER_AUDITTING); + //UUID + resiWarmheartedApplyDTO.setId(IdWorker.get32UUID()); + resiWarmheartedApplyDTO.setDelFlag(NumConstant.ZERO); + resiWarmheartedApplyDTO.setRevision(NumConstant.ZERO); + resiWarmheartedApplyDTO.setCreatedBy(formDTO.getUserId()); + resiWarmheartedApplyDTO.setCreatedTime(date); + resiWarmheartedApplyDTO.setUpdatedBy(formDTO.getUserId()); + resiWarmheartedApplyDTO.setUpdatedTime(date); + resiWarmheartedApplyDao.saveResiWarmApply(resiWarmheartedApplyDTO); + } } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedVisitServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedVisitServiceImpl.java index b2841e1b14..c9a5b1ec0b 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedVisitServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedVisitServiceImpl.java @@ -25,6 +25,7 @@ import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.Result; import com.epmet.modules.warmhearted.constant.ResiWarmheartedVisitConstant; import com.epmet.modules.warmhearted.dao.ResiWarmheartedVisitDao; import com.epmet.modules.warmhearted.entity.ResiWarmheartedVisitEntity; @@ -32,6 +33,7 @@ import com.epmet.modules.warmhearted.redis.ResiWarmheartedVisitRedis; import com.epmet.modules.warmhearted.service.ResiWarmheartedVisitService; import com.epmet.resi.partymember.dto.warmhearted.ResiWarmheartedVisitDTO; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; +import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -73,8 +75,8 @@ public class ResiWarmheartedVisitServiceImpl extends BaseServiceImpl getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + 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); @@ -130,8 +132,26 @@ public class ResiWarmheartedVisitServiceImpl extends BaseServiceImpl + + INSERT INTO resi_warmhearted_apply ( + id, + customer_id, + grid_id, + user_id, + reason, + audit_status, + refuse_reason, + resi_warm_visit_id, + del_flag, + revision, + created_by, + created_time, + updated_by, + updated_time + )VALUES( + #{id}, + #{customerId}, + #{gridId}, + #{userId}, + #{reason}, + #{auditStatus}, + #{refuseReason}, + #{resiWarmVisitId}, + #{delFlag}, + #{revision}, + #{createdBy}, + #{createdTime}, + #{updatedBy}, + #{updatedTime} + ) + + - \ No newline at end of file + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml index 7398491796..b84364b43d 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/RegisterRelationDao.xml @@ -19,6 +19,40 @@ + + INSERT INTO register_relation ( + id, + customer_id, + grid_id, + user_id, + first_register, + register, + participation, + del_flag, + revision, + created_by, + created_time, + updated_by, + updated_time + ) + VALUES + ( + #{id}, + #{customerId}, + #{gridId}, + #{userId}, + #{firstRegister}, + #{register}, + #{participation}, + #{delFlag}, + #{revision}, + #{createdBy}, + #{createdTime}, + #{updatedBy}, + #{updatedTime} + ) + + + + UPDATE user_resi_register_visit + SET last_operate_visit = #{lastOperateVisit}, + updated_by = #{updatedBy}, + updated_time = #{updatedTime} + WHERE id = #{id} + \ No newline at end of file