diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java index 2a57dc6d97..f0c689c875 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java @@ -25,6 +25,7 @@ public interface NumConstant { int TWELVE = 12; int FIFTEEN = 15; + int FOURTEEN=14; int TWENTY = 20; int THIRTY = 30; int FORTY = 40; diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/ReadFlagConstant.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/ReadFlagConstant.java new file mode 100644 index 0000000000..47f90c0a37 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/ReadFlagConstant.java @@ -0,0 +1,18 @@ +package com.epmet.constant; + +/** + * @Description read已读、unread未读 + * @Author yinzuomei + * @Date 2020/4/7 14:51 + */ +public interface ReadFlagConstant { + /** + * 已读 + */ + String READ="read"; + + /** + * 未读 + */ + String UN_READ="unread"; +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/UserMessageFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/UserMessageFormDTO.java new file mode 100644 index 0000000000..f8934cc167 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/UserMessageFormDTO.java @@ -0,0 +1,59 @@ +package com.epmet.dto.form; + +import lombok.Builder; +import lombok.Data; +import net.bytebuddy.implementation.bind.annotation.Default; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description + * @Author yinzuomei + * @Date 2020/4/7 14:32 + */ +@Data +public class UserMessageFormDTO implements Serializable { + private static final long serialVersionUID = 2697079163476964749L; + + /** + * 客户id + */ + @NotBlank(message = "客户id不能为空") + private String customerId; + + /** + * app=resi时,此列为gridId,其他情况暂定 * + */ + private String gridId; + + /** + * 对应用户id + */ + @NotBlank(message = "通知用户id为空") + private String userId; + + /** + * 消息通知对象:居民端用户resi、政府端工作人员gov、运营端工作人员oper + */ + @NotBlank(message = "消息通知对象不能为空") + private String app; + + /** + * 消息标题 + */ + @NotBlank(message = "消息标题不能为空") + private String title; + + /** + * 消息通知内容 + */ + @NotBlank(message = "通知内容不能为空") + private String messageContent; + + /** + * read已读、unread未读 + */ + @NotBlank(message = "readFlag不能为空") + private String readFlag; +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/MessageFeignClient.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/MessageFeignClient.java index 0df49aee8e..355bdf2a34 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/MessageFeignClient.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/MessageFeignClient.java @@ -3,8 +3,10 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.SysSmsDTO; +import com.epmet.dto.form.UserMessageFormDTO; import com.epmet.feign.fallback.MessageFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -27,4 +29,13 @@ public interface MessageFeignClient { @GetMapping(value = "message/sms/captcha/{mobile}") Result sendSmsCaptcha(@PathVariable("mobile") String mobile); -} \ No newline at end of file + /** + * @param formDto + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 插入未读消息 + * @Date 2020/4/7 15:36 + **/ + @PostMapping(value = "message/usermessage/saveusermessage", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) + Result saveUserMessage(UserMessageFormDTO formDto); +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/MessageFeignClientFallback.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/MessageFeignClientFallback.java index d9ba149f15..cf105730e2 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/MessageFeignClientFallback.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/MessageFeignClientFallback.java @@ -4,6 +4,7 @@ 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.SysSmsDTO; +import com.epmet.dto.form.UserMessageFormDTO; import com.epmet.feign.MessageFeignClient; import org.springframework.stereotype.Component; @@ -24,4 +25,9 @@ public class MessageFeignClientFallback implements MessageFeignClient { return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "sendSmsCaptcha", mobile); } + @Override + public Result saveUserMessage(UserMessageFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "saveUserMessage", formDto); + } + } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java index ad77e7ea2a..cfe7302a4f 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java @@ -26,6 +26,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.UserMessageDTO; +import com.epmet.dto.form.UserMessageFormDTO; import com.epmet.excel.UserMessageExcel; import com.epmet.service.UserMessageService; import org.springframework.beans.factory.annotation.Autowired; @@ -45,7 +46,7 @@ import java.util.Map; @RestController @RequestMapping("usermessage") public class UserMessageController { - + @Autowired private UserMessageService userMessageService; @@ -91,4 +92,16 @@ public class UserMessageController { ExcelUtils.exportExcelToTarget(response, null, list, UserMessageExcel.class); } -} \ No newline at end of file + /** + * @param formDto + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 插入未读消息 + * @Date 2020/4/7 15:34 + **/ + @PostMapping("saveusermessage") + public Result saveUserMessage(@RequestBody UserMessageFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return userMessageService.saveUserMessage(formDto); + } +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/UserMessageService.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/UserMessageService.java index 6739dc7f8d..1e036405bb 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/UserMessageService.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/UserMessageService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.UserMessageDTO; +import com.epmet.dto.form.UserMessageFormDTO; import com.epmet.entity.UserMessageEntity; import java.util.List; @@ -101,4 +102,13 @@ public interface UserMessageService extends BaseService { * @return Result */ Result allRead(UserMessageDTO messageDTO); -} \ No newline at end of file + + /** + * @param formDto + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 插入未读消息 + * @Date 2020/4/7 15:34 + **/ + Result saveUserMessage(UserMessageFormDTO formDto); +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/UserMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/UserMessageServiceImpl.java index 2d01201a4a..953595c3bf 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/UserMessageServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/UserMessageServiceImpl.java @@ -26,6 +26,7 @@ import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.UserMessageDao; import com.epmet.dto.UserMessageDTO; +import com.epmet.dto.form.UserMessageFormDTO; import com.epmet.entity.UserMessageEntity; import com.epmet.redis.UserMessageRedis; import com.epmet.service.UserMessageService; @@ -113,4 +114,11 @@ public class UserMessageServiceImpl extends BaseServiceImpl2.0.0 compile + + com.epmet + epmet-message-client + 2.0.0 + compile + diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java new file mode 100644 index 0000000000..b72cc890cb --- /dev/null +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java @@ -0,0 +1,29 @@ +package com.epmet.modules.constant; + +/** + * @Description group模块消息通知模板 + * @Author yinzuomei + * @Date 2020/4/7 15:55 + */ +public interface UserMessageConstant { + /** + * 消息标题 + */ + String GROUP_TITLE="您有一条小组消息"; + + /** + * 组长同意入群申请,用户会收到:您有一条小组消息。 您加入的【组名】已通过审核,请查看。 + */ + String AGREE_APPLY="您加入的【%s】已通过审核,请查看"; + + /** + * 组长拒绝入群申请,用户会收到:您在【组名】的入组申请被拒绝。原因:【组长拒绝审核时输入的备注】 + */ + String DISAGREE_APPLY="您在【%s】的入组申请被拒绝。原因:【%s】"; + + /** + * 成员通过链接同意进群后,组长会收到:您的好友-【认证的居民名字 xxx路-王先生】通过邀请链接,加入了【组名】 + */ + String INVITED_JOIN_GROUP="您的好友-【%s】通过邀请连接,加入了【%s】"; + +} diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/entity/GroupInvitationEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/entity/GroupInvitationEntity.java index a5f23c21a4..5595d7fd5c 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/entity/GroupInvitationEntity.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/entity/GroupInvitationEntity.java @@ -64,7 +64,7 @@ public class GroupInvitationEntity extends BaseEpmetEntity { private String inviterContent; /** - * 邀请码有效截止时间(暂定XX天) + * 邀请码有效截止时间(暂定14天) */ private Date validEndTime; 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 index 8e36224680..dbd4e47f6e 100644 --- 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 @@ -20,12 +20,21 @@ 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.AppClientConstant; 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.constant.ReadFlagConstant; +import com.epmet.dto.UserResiInfoDTO; +import com.epmet.dto.form.UserMessageFormDTO; +import com.epmet.dto.form.UserResiInfoFormDTO; +import com.epmet.feign.MessageFeignClient; +import com.epmet.modules.constant.UserMessageConstant; +import com.epmet.modules.feign.EpmetUserFeignClient; +import com.epmet.modules.group.dao.ResiGroupDao; import com.epmet.modules.group.service.ResiGroupService; import com.epmet.modules.invitation.dao.GroupInvitationDao; import com.epmet.modules.invitation.entity.GroupInvitationEntity; @@ -76,6 +85,14 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -158,8 +175,9 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl userResiInfoDTOResult=epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO); + if(!userResiInfoDTOResult.success()||null==userResiInfoDTOResult.getData()){ + return ; + } + UserMessageFormDTO userMessage=new UserMessageFormDTO(); + userMessage.setApp(AppClientConstant.APP_RESI); + userMessage.setCustomerId(resiGroupDTO.getCustomerId()); + userMessage.setGridId(resiGroupDTO.getGridId()); + String messageContent=String.format(UserMessageConstant.INVITED_JOIN_GROUP,userResiInfoDTOResult.getData().getShowName(),resiGroupDTO.getGroupName()); + userMessage.setMessageContent(messageContent); + userMessage.setReadFlag(ReadFlagConstant.UN_READ); + userMessage.setTitle(UserMessageConstant.GROUP_TITLE); + //通知群主 + userMessage.setUserId(leader.getCustomerUserId()); + messageFeignClient.saveUserMessage(userMessage); + } + } 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 c679cb179e..56740b7cc4 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,12 +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.AppClientConstant; 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.constant.ReadFlagConstant; +import com.epmet.dto.form.UserMessageFormDTO; +import com.epmet.feign.MessageFeignClient; +import com.epmet.modules.constant.UserMessageConstant; +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; @@ -72,6 +78,12 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -266,10 +278,34 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl