Browse Source

根据链接查询群组信息接口修改记录用户邀请关系

dev_shibei_match
yinzuomei 5 years ago
parent
commit
18d88eca54
  1. 4
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/LinkGroupInfoFormDTO.java
  2. 13
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/LinkGroupInfoDTO.java
  3. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java
  4. 6
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallback.java
  5. 82
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java
  6. 2
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/invitation/GroupInvitationDao.xml
  7. 54
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserInvitationFormDTO.java
  8. 19
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserInvitationController.java
  9. 18
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserInvitationDao.java
  10. 13
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserInvitationService.java
  11. 27
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserInvitationServiceImpl.java
  12. 15
      epmet-user/epmet-user-server/src/main/resources/mapper/UserInvitationDao.xml

4
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/form/LinkGroupInfoFormDTO.java

@ -20,8 +20,12 @@ public class LinkGroupInfoFormDTO implements Serializable {
@NotBlank(message="邀请链接id不能为空") @NotBlank(message="邀请链接id不能为空")
private String invitationId; private String invitationId;
@NotBlank(message = "邀请场景不能为空")
private String inviteSource;
/** /**
* 当前登录用户id由TokenDto赋值 * 当前登录用户id由TokenDto赋值
*/ */
@NotBlank(message = "当前登录用户id不能为空")
private String userId; private String userId;
} }

13
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/invitation/result/LinkGroupInfoDTO.java

@ -12,11 +12,22 @@ import java.io.Serializable;
@Data @Data
public class LinkGroupInfoDTO implements Serializable { public class LinkGroupInfoDTO implements Serializable {
private static final long serialVersionUID = 6136787210623326830L; private static final long serialVersionUID = 6136787210623326830L;
/** /**
* 群组id * 群组id
*/ */
private String groupId; private String groupId;
/**
* 客户id
*/
private String customerId;
/**
* 网格id
*/
private String gridId;
/** /**
* 群组头像 * 群组头像
*/ */
@ -24,7 +35,7 @@ public class LinkGroupInfoDTO implements Serializable {
/** /**
* 组长名称 * 组长名称
* 暂定街道- * 暂定街道-女士/男士
*/ */
private String leaderName; private String leaderName;

11
epmet-module/resi-group/resi-group-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.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.UserInvitationFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO; import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.UserResiInfoListFormDTO; import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.form.UserRoleFormDTO; import com.epmet.dto.form.UserRoleFormDTO;
@ -52,4 +53,14 @@ public interface EpmetUserFeignClient {
**/ **/
@PostMapping(value = "epmetuser/userresiinfo/getuserresiinfolist", consumes = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "epmetuser/userresiinfo/getuserresiinfolist", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<UserResiInfoResultDTO>> getUserResiInfoList(@RequestBody UserResiInfoListFormDTO userResiInfoListFormDTO); Result<List<UserResiInfoResultDTO>> getUserResiInfoList(@RequestBody UserResiInfoListFormDTO userResiInfoListFormDTO);
/**
* @param userInvitationFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 保存或者更新人员邀请关系表
* @Date 2020/4/10 0:58
**/
@PostMapping(value = "epmetuser/userinvitation/saveuserinvitation", consumes = MediaType.APPLICATION_JSON_VALUE)
Result saveUserInvitation(@RequestBody UserInvitationFormDTO userInvitationFormDTO);
} }

6
epmet-module/resi-group/resi-group-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.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.UserInvitationFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO; import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.UserResiInfoListFormDTO; import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.form.UserRoleFormDTO; import com.epmet.dto.form.UserRoleFormDTO;
@ -35,4 +36,9 @@ public class EpmetUserFeignClientFallback implements EpmetUserFeignClient {
public Result<List<UserResiInfoResultDTO>> getUserResiInfoList(UserResiInfoListFormDTO userResiInfoListFormDTO) { public Result<List<UserResiInfoResultDTO>> getUserResiInfoList(UserResiInfoListFormDTO userResiInfoListFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserResiInfoList", userResiInfoListFormDTO); return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserResiInfoList", userResiInfoListFormDTO);
} }
@Override
public Result saveUserInvitation(UserInvitationFormDTO userInvitationFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "saveUserInvitation", userInvitationFormDTO);
}
} }

82
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/invitation/service/impl/GroupInvitationServiceImpl.java

@ -29,7 +29,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.ReadFlagConstant;
import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.form.UserInvitationFormDTO;
import com.epmet.dto.form.UserMessageFormDTO; import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO; import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO;
@ -199,14 +199,15 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
**/ **/
@Override @Override
public Result<LinkGroupInfoResultDTO> getLinkGroupInfo(LinkGroupInfoFormDTO formDTO) { public Result<LinkGroupInfoResultDTO> getLinkGroupInfo(LinkGroupInfoFormDTO formDTO) {
//校验是否存在该邀请连接 //0、校验是否存在该邀请连接(判断是会否被删除连接、是否失效、群状态)
Result<GroupInvitationDTO> validResult = this.checkLinkValid(formDTO.getInvitationId()); Result<GroupInvitationDTO> validResult = this.checkLinkValid(formDTO.getInvitationId());
if (!validResult.success()) { if (!validResult.success()) {
return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(), validResult.getMsg()); return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(), validResult.getMsg());
} }
GroupInvitationDTO groupInvitationDTO=validResult.getData();
LinkGroupInfoResultDTO linkGroupInfoResultDTO = new LinkGroupInfoResultDTO(); LinkGroupInfoResultDTO linkGroupInfoResultDTO = new LinkGroupInfoResultDTO();
//1、查询是否在群内 //1、查询是否在群内
ResiGroupMemberDTO resiGroupMemberDTO = resiGroupMemberDao.selectGroupMemberInfo(validResult.getData().getResiGroupId(), formDTO.getUserId()); ResiGroupMemberDTO resiGroupMemberDTO = resiGroupMemberDao.selectGroupMemberInfo(groupInvitationDTO.getResiGroupId(), formDTO.getUserId());
if (null != resiGroupMemberDTO && !MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())) { if (null != resiGroupMemberDTO && !MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())) {
linkGroupInfoResultDTO.setInGroup(Constant.YES); linkGroupInfoResultDTO.setInGroup(Constant.YES);
return new Result<LinkGroupInfoResultDTO>().ok(linkGroupInfoResultDTO); return new Result<LinkGroupInfoResultDTO>().ok(linkGroupInfoResultDTO);
@ -214,7 +215,7 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
linkGroupInfoResultDTO.setInGroup(Constant.NO); linkGroupInfoResultDTO.setInGroup(Constant.NO);
} }
//2、查询组信息 //2、查询组信息
LinkGroupInfoDTO groupInfo = baseDao.selectLinkGroupInfo(validResult.getData().getResiGroupId()); LinkGroupInfoDTO groupInfo = baseDao.selectLinkGroupInfo(groupInvitationDTO.getResiGroupId());
//3、获取组长信息 //3、获取组长信息
Result<UserResiInfoResultDTO> groupLeaderUserInfo = this.getGroupLeaderUserInfo(groupInfo.getGroupId()); Result<UserResiInfoResultDTO> groupLeaderUserInfo = this.getGroupLeaderUserInfo(groupInfo.getGroupId());
if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) { if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) {
@ -223,9 +224,36 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
logger.info("组长注册信息查询失败" + groupLeaderUserInfo.getMsg()); logger.info("组长注册信息查询失败" + groupLeaderUserInfo.getMsg());
} }
linkGroupInfoResultDTO.setGroupInfo(groupInfo); linkGroupInfoResultDTO.setGroupInfo(groupInfo);
//4、记录用户邀请关系
this.saveUserInvitation(groupInvitationDTO,formDTO);
return new Result<LinkGroupInfoResultDTO>().ok(linkGroupInfoResultDTO); return new Result<LinkGroupInfoResultDTO>().ok(linkGroupInfoResultDTO);
} }
/**
* @param groupInvitationDTO
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 记录用户邀请关系
* @Date 2020/4/10 1:01
**/
private Result saveUserInvitation(GroupInvitationDTO groupInvitationDTO, LinkGroupInfoFormDTO formDTO) {
UserInvitationFormDTO userInvitationFormDTO = new UserInvitationFormDTO();
userInvitationFormDTO.setCustomerId(groupInvitationDTO.getInviterCustomerId());
userInvitationFormDTO.setGridId(groupInvitationDTO.getInviterGridId());
userInvitationFormDTO.setInviterUserId(groupInvitationDTO.getInviterUserId());
userInvitationFormDTO.setInviteeUserId(formDTO.getUserId());
userInvitationFormDTO.setInviteSource(formDTO.getInviteSource());
userInvitationFormDTO.setInviteSourceId(formDTO.getInvitationId());
Result result = epmetUserFeignClient.saveUserInvitation(userInvitationFormDTO);
if (!result.success()) {
logger.info("人员邀请关系记录失败" + result.getMsg());
} else {
logger.info("人员邀请关系记录成功");
}
return result;
}
/** /**
* @param groupId * @param groupId
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.UserResiInfoDTO> * @return com.epmet.commons.tools.utils.Result<com.epmet.dto.UserResiInfoDTO>
@ -259,6 +287,17 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
if (null != groupInvitationDTO && !groupInvitationDTO.getValidEndTime().after(new Date())) { if (null != groupInvitationDTO && !groupInvitationDTO.getValidEndTime().after(new Date())) {
return new Result<GroupInvitationDTO>().error(EpmetErrorCode.LOSE_EFFICACY.getValue(), EpmetErrorCode.LOSE_EFFICACY.getName()); return new Result<GroupInvitationDTO>().error(EpmetErrorCode.LOSE_EFFICACY.getValue(), EpmetErrorCode.LOSE_EFFICACY.getName());
} }
ResiGroupEntity resiGroupEntity = resiGroupDao.selectById(groupInvitationDTO.getResiGroupId());
if (null == resiGroupEntity) {
logger.info("组不存在");
//TODO
} else if (null != resiGroupEntity && GroupStateConstant.GROUP_CLOSED.equals(resiGroupEntity.getState())) {
logger.info("组已经关闭");
//TODO
} else if (null != resiGroupEntity && GroupStateConstant.GROUP_HIDDEN.equals(resiGroupEntity.getState())) {
logger.info("组已屏蔽");
//TODO
}
return new Result<GroupInvitationDTO>().ok(groupInvitationDTO); return new Result<GroupInvitationDTO>().ok(groupInvitationDTO);
} }
@ -276,8 +315,9 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
if (!validResult.success()) { if (!validResult.success()) {
return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(), validResult.getMsg()); return new Result<LinkGroupInfoResultDTO>().error(validResult.getCode(), validResult.getMsg());
} }
GroupInvitationDTO groupInvitationDTO=validResult.getData();
//2、校验是否已经注册居民 //2、校验是否已经注册居民
ResiGroupDTO resiGroupDTO = resiGroupService.get(validResult.getData().getResiGroupId()); ResiGroupDTO resiGroupDTO = resiGroupService.get(groupInvitationDTO.getResiGroupId());
if (null != resiGroupDTO) { if (null != resiGroupDTO) {
UserRoleDTO userRoleDTO = resiGroupService.checkPartyMemberOrWarmHeated(formDTO.getApp(), UserRoleDTO userRoleDTO = resiGroupService.checkPartyMemberOrWarmHeated(formDTO.getApp(),
formDTO.getUserId(), formDTO.getUserId(),
@ -292,13 +332,12 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
groupMemeberOperation.setCustomerUserId(formDTO.getUserId()); groupMemeberOperation.setCustomerUserId(formDTO.getUserId());
groupMemeberOperation.setOperateStatus(MemberStateConstant.APPROVED); groupMemeberOperation.setOperateStatus(MemberStateConstant.APPROVED);
groupMemeberOperation.setEnterGroupType(EnterGroupTypeConstant.INVITED); groupMemeberOperation.setEnterGroupType(EnterGroupTypeConstant.INVITED);
groupMemeberOperation.setCreatedBy(formDTO.getUserId());
groupMemeberOperation.setOperateUserId(formDTO.getUserId()); groupMemeberOperation.setOperateUserId(formDTO.getUserId());
groupMemeberOperationService.save(groupMemeberOperation); groupMemeberOperationService.save(groupMemeberOperation);
//4、直接加入群成员关系表 //4、直接加入群成员关系表
//如果是之前被移除的,则修改resi_group_member记录 //如果是之前被移除的,则修改resi_group_member记录
ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO(); ResiGroupMemberDTO resiGroupMemberDTO = new ResiGroupMemberDTO();
ResiGroupMemberDTO resiGroupMember = resiGroupMemberDao.selectGroupMemberInfo(validResult.getData().getResiGroupId(), formDTO.getUserId()); ResiGroupMemberDTO resiGroupMember = resiGroupMemberDao.selectGroupMemberInfo(groupInvitationDTO.getResiGroupId(), formDTO.getUserId());
if (null != resiGroupMember) { if (null != resiGroupMember) {
resiGroupMemberDTO.setId(resiGroupMember.getId()); resiGroupMemberDTO.setId(resiGroupMember.getId());
} }
@ -315,31 +354,28 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
resiGroupDTO.getCustomerId()); resiGroupDTO.getCustomerId());
resiGroupMemberDao.updateResiGroupStatistical(groupMemeberOperation.getGroupId(), userRoleDTO); resiGroupMemberDao.updateResiGroupStatistical(groupMemeberOperation.getGroupId(), userRoleDTO);
//6、发送消息 //6、发送消息
this.sendMessageToLeader(formDTO, resiGroupDTO); this.sendMessageToLeader(formDTO, resiGroupDTO,groupInvitationDTO);
return new Result(); return new Result();
} }
/** /**
* @param formDTO * @param formDTO 当前用户信息
* @param resiGroupDTO * @param resiGroupDTO 群组信息
* @param groupInvitationDTO 邀请信息
* @return void * @return void
* @Author yinzuomei * @Author yinzuomei
* @Description 用户通过邀请进群之后通知群主您的好友-认证的居民名字 xxx路-王先生通过邀请链接加入了组名 * @Description 用户通过邀请进群之后通知群主您的好友-认证的居民名字 xxx路-王先生通过邀请链接加入了组名
* @Date 2020/4/7 14:46 * @Date 2020/4/7 14:46
**/ **/
private void sendMessageToLeader(AccetInvitationFormDTO formDTO, ResiGroupDTO resiGroupDTO) { private Result sendMessageToLeader(AccetInvitationFormDTO formDTO, ResiGroupDTO resiGroupDTO, GroupInvitationDTO groupInvitationDTO) {
//1、查询群主信息 //1、根据用户id用户认证注册信息
ResiGroupMemberDTO leader = resiGroupDao.selectGroupLeader(resiGroupDTO.getId());
if (null == leader) {
return;
}
//2、根据用户id用户认证注册信息
UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO(); UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO();
userResiInfoFormDTO.setUserId(formDTO.getUserId()); userResiInfoFormDTO.setUserId(formDTO.getUserId());
userResiInfoFormDTO.setCustomerId(resiGroupDTO.getCustomerId()); userResiInfoFormDTO.setCustomerId(resiGroupDTO.getCustomerId());
Result<UserResiInfoResultDTO> userResiInfoDTOResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO); Result<UserResiInfoResultDTO> userResiInfoDTOResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO);
if (!userResiInfoDTOResult.success() || null == userResiInfoDTOResult.getData()) { if (!userResiInfoDTOResult.success() || null == userResiInfoDTOResult.getData()) {
return; logger.info("查询居民注册信息失败");
return new Result();
} }
UserMessageFormDTO userMessage = new UserMessageFormDTO(); UserMessageFormDTO userMessage = new UserMessageFormDTO();
userMessage.setApp(AppClientConstant.APP_RESI); userMessage.setApp(AppClientConstant.APP_RESI);
@ -350,8 +386,14 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl<GroupInvitationD
userMessage.setReadFlag(ReadFlagConstant.UN_READ); userMessage.setReadFlag(ReadFlagConstant.UN_READ);
userMessage.setTitle(UserMessageConstant.GROUP_TITLE); userMessage.setTitle(UserMessageConstant.GROUP_TITLE);
//通知群主 //通知群主
userMessage.setUserId(leader.getCustomerUserId()); userMessage.setUserId(groupInvitationDTO.getInviterUserId());
messageFeignClient.saveUserMessage(userMessage); Result result = messageFeignClient.saveUserMessage(userMessage);
if (result.success()) {
logger.info("通知群主有新成员入群成功");
} else {
logger.info("通知群主有新成员入群失败" + result.getMsg());
}
return result;
} }
} }

2
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/invitation/GroupInvitationDao.xml

@ -7,6 +7,8 @@
<select id="selectLinkGroupInfo" parameterType="map" resultType="com.epmet.resi.group.dto.invitation.result.LinkGroupInfoDTO"> <select id="selectLinkGroupInfo" parameterType="map" resultType="com.epmet.resi.group.dto.invitation.result.LinkGroupInfoDTO">
SELECT SELECT
rg.id AS groupId, rg.id AS groupId,
rg.CUSTOMER_ID as customerId,
rg.GRID_ID as gridId,
rg.GROUP_HEAD_PHOTO AS groupHeadPhoto, rg.GROUP_HEAD_PHOTO AS groupHeadPhoto,
rg.GROUP_NAME AS groupName, rg.GROUP_NAME AS groupName,
rg.GROUP_INTRODUCTION AS groupIntroduction, rg.GROUP_INTRODUCTION AS groupIntroduction,

54
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserInvitationFormDTO.java

@ -0,0 +1,54 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
/**
* @Description 记录用户邀请关系入参DTO
* @Author yinzuomei
* @Date 2020/4/10 0:16
*/
@Data
public class UserInvitationFormDTO implements Serializable {
private static final long serialVersionUID = 5896435058363486373L;
/**
* 客户Id (customer.id)
*/
@NotBlank(message = "客户id不能为空")
private String customerId;
/**
* 网格Id (customer_grid.id)
*/
@NotBlank(message = "网格id不能为空")
private String gridId;
/**
* 邀请人Id
*/
@NotBlank(message = "邀请人id不能为空")
private String inviterUserId;
/**
* 被邀请人Id
*/
@NotBlank(message = "被邀请人id不能为空")
private String inviteeUserId;
/**
* 邀请场景 (value:feature+action)
*/
@NotBlank(message = "邀请场景不能为空")
private String inviteSource;
/**
* 邀请记录Id
*/
@NotBlank(message = "邀请记录id不能为空")
private String inviteSourceId;
}

19
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserInvitationController.java

@ -23,15 +23,17 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup; 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.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.UserInvitationDTO; import com.epmet.dto.UserInvitationDTO;
import com.epmet.dto.form.UserInvitationFormDTO;
import com.epmet.excel.UserInvitationExcel; import com.epmet.excel.UserInvitationExcel;
import com.epmet.service.UserInvitationService; import com.epmet.service.UserInvitationService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -45,7 +47,7 @@ import java.util.Map;
@RestController @RestController
@RequestMapping("userinvitation") @RequestMapping("userinvitation")
public class UserInvitationController { public class UserInvitationController {
@Autowired @Autowired
private UserInvitationService userInvitationService; private UserInvitationService userInvitationService;
@ -91,4 +93,15 @@ public class UserInvitationController {
ExcelUtils.exportExcelToTarget(response, null, list, UserInvitationExcel.class); ExcelUtils.exportExcelToTarget(response, null, list, UserInvitationExcel.class);
} }
} /**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 保存或者更新人员邀请关系表
* @Date 2020/4/10 0:28
**/
@PostMapping("saveuserinvitation")
public Result saveUserInvitation(@RequestBody @Valid UserInvitationFormDTO formDTO) {
return userInvitationService.saveUserInvitation(formDTO);
}
}

18
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserInvitationDao.java

@ -18,8 +18,10 @@
package com.epmet.dao; package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.UserInvitationDTO;
import com.epmet.entity.UserInvitationEntity; import com.epmet.entity.UserInvitationEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* 人员邀请关系表 记录user之间的邀请关系 * 人员邀请关系表 记录user之间的邀请关系
@ -29,5 +31,17 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface UserInvitationDao extends BaseDao<UserInvitationEntity> { public interface UserInvitationDao extends BaseDao<UserInvitationEntity> {
} /**
* @param inviteeUserId 被邀请人id
* @param inviteSourceId 邀请链接id
* @param inviteSource 邀请场景
* @return com.epmet.dto.UserInvitationDTO
* @Author yinzuomei
* @Description 根据被邀请人id邀请链接id邀请场景查询人员邀请记录
* @Date 2020/4/10 0:36
**/
UserInvitationDTO selectUserInvitation(@Param("inviteeUserId") String inviteeUserId,
@Param("inviteSourceId") String inviteSourceId,
@Param("inviteSource") String inviteSource);
}

13
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserInvitationService.java

@ -19,7 +19,9 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserInvitationDTO; import com.epmet.dto.UserInvitationDTO;
import com.epmet.dto.form.UserInvitationFormDTO;
import com.epmet.entity.UserInvitationEntity; import com.epmet.entity.UserInvitationEntity;
import java.util.List; import java.util.List;
@ -92,4 +94,13 @@ public interface UserInvitationService extends BaseService<UserInvitationEntity>
* @date 2020-03-30 * @date 2020-03-30
*/ */
void delete(String[] ids); void delete(String[] ids);
}
/**
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 保存或者更新人员邀请关系表
* @Date 2020/4/10 0:36
**/
Result saveUserInvitation(UserInvitationFormDTO formDTO);
}

27
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserInvitationServiceImpl.java

@ -23,8 +23,10 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.UserInvitationDao; import com.epmet.dao.UserInvitationDao;
import com.epmet.dto.UserInvitationDTO; import com.epmet.dto.UserInvitationDTO;
import com.epmet.dto.form.UserInvitationFormDTO;
import com.epmet.entity.UserInvitationEntity; import com.epmet.entity.UserInvitationEntity;
import com.epmet.redis.UserInvitationRedis; import com.epmet.redis.UserInvitationRedis;
import com.epmet.service.UserInvitationService; import com.epmet.service.UserInvitationService;
@ -34,6 +36,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -101,4 +104,26 @@ public class UserInvitationServiceImpl extends BaseServiceImpl<UserInvitationDao
baseDao.deleteBatchIds(Arrays.asList(ids)); baseDao.deleteBatchIds(Arrays.asList(ids));
} }
} @Override
public Result saveUserInvitation(UserInvitationFormDTO formDTO) {
UserInvitationDTO userInvitationDTO = baseDao.selectUserInvitation(formDTO.getInviteeUserId(),
formDTO.getInviteSourceId(),
formDTO.getInviteSource());
if (null == userInvitationDTO) {
UserInvitationDTO insertUserInvitationDTO = new UserInvitationDTO();
insertUserInvitationDTO.setCustomerId(formDTO.getCustomerId());
insertUserInvitationDTO.setGridId(formDTO.getGridId());
insertUserInvitationDTO.setInvitationTime(new Date());
insertUserInvitationDTO.setInviteeUserId(formDTO.getInviteeUserId());
insertUserInvitationDTO.setInviterUserId(formDTO.getInviterUserId());
insertUserInvitationDTO.setInviteSource(formDTO.getInviteSource());
insertUserInvitationDTO.setInviteSourceId(formDTO.getInviteSourceId());
this.save(insertUserInvitationDTO);
} else {
userInvitationDTO.setInvitationTime(new Date());
this.update(userInvitationDTO);
}
return new Result();
}
}

15
epmet-user/epmet-user-server/src/main/resources/mapper/UserInvitationDao.xml

@ -20,5 +20,16 @@
<result property="updatedTime" column="UPDATED_TIME"/> <result property="updatedTime" column="UPDATED_TIME"/>
</resultMap> </resultMap>
<!-- 根据被邀请人id、邀请链接id、邀请场景查询人员邀请记录 -->
</mapper> <select id="selectUserInvitation" parameterType="map" resultType="com.epmet.dto.UserInvitationDTO">
SELECT
*
FROM
user_invitation ui
WHERE
ui.DEL_FLAG = '0'
AND ui.INVITEE_USER_ID = #{inviteeUserId}
AND ui.INVITE_SOURCE_ID = #{inviteSourceId}
AND ui.INVITE_SOURCE = #{inviteSource}
</select>
</mapper>

Loading…
Cancel
Save