Browse Source

楼院小组-删除组成员接口首次提交

dev_shibei_match
sunyuchao 5 years ago
parent
commit
f70ce9dd05
  1. 38
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/RemoveMemberFormDTO.java
  2. 39
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java
  3. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupStatisticalDao.java
  4. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupStatisticalService.java
  5. 70
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupStatisticalServiceImpl.java
  6. 13
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java
  7. 13
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/GroupMemeberOperationService.java
  8. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java
  9. 22
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/GroupMemeberOperationServiceImpl.java
  10. 47
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  11. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java
  12. 36
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  13. 45
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  14. 31
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupStatisticalDao.xml
  15. 31
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml

38
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/form/RemoveMemberFormDTO.java

@ -0,0 +1,38 @@
package com.epmet.resi.group.dto.member.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 楼院小组--删除组成员
* @Author sun
*/
@Data
public class RemoveMemberFormDTO implements Serializable {
private static final long serialVersionUID = 1626650057895049665L;
/**
* 群组成员关系表
*/
@NotBlank(message = "成员Id不能为空")
private String memerId;
/**
* 显示是否要屏蔽该成员的全部话题,1是0否
*/
@NotBlank(message = "是否屏蔽成员话题不能为空")
private String hideFlag;
/**
* 当前登录用户id
*/
private String userId;
/**
* 所属app
*/
private String app;
}

39
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java

@ -6,24 +6,35 @@ package com.epmet.modules.constant;
* @Date 2020/4/7 15:55 * @Date 2020/4/7 15:55
*/ */
public interface UserMessageConstant { public interface UserMessageConstant {
/** /**
* 消息标题 * 消息标题
*/ */
String GROUP_TITLE="您有一条小组消息"; String GROUP_TITLE = "您有一条小组消息";
/** /**
* 组长同意入群申请用户会收到您有一条小组消息 您加入的组名已通过审核请查看 * 组长同意入群申请用户会收到您有一条小组消息 您加入的组名已通过审核请查看
*/ */
String AGREE_APPLY="您加入的【%s】已通过审核,请查看"; String AGREE_APPLY = "您加入的【%s】已通过审核,请查看";
/** /**
* 组长拒绝入群申请用户会收到您在组名的入组申请被拒绝原因组长拒绝审核时输入的备注 * 组长拒绝入群申请用户会收到您在组名的入组申请被拒绝原因组长拒绝审核时输入的备注
*/ */
String DISAGREE_APPLY="您在【%s】的入组申请被拒绝。原因:【%s】"; String DISAGREE_APPLY = "您在【%s】的入组申请被拒绝。原因:【%s】";
/**
* 成员通过链接同意进群后组长会收到您的好友-认证的居民名字 xxx路-王先生通过邀请链接加入了组名
*/
String INVITED_JOIN_GROUP = "您的好友-【%s】通过邀请连接,加入了【%s】";
String DATA_ACQUISITION_FAILED = "数据库数据获取失败";
String DELETE_SUCCESS = "组成员删除成功";
String DELETE_FAILED = "组成员删除失败";
/** /**
* 成员通过链接同意进群后组长会收到您的好友-认证的居民名字 xxx路-王先生通过邀请链接加入了组名 * 删除组成员时对应话题操作日志表设置默认的屏蔽理由
*/ */
String INVITED_JOIN_GROUP="您的好友-【%s】通过邀请连接,加入了【%s】"; String DELETE_MEMBER_REASON = "删除组成员,屏蔽该成员话题";
} }

10
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupStatisticalDao.java

@ -20,14 +20,22 @@ package com.epmet.modules.group.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.group.entity.ResiGroupStatisticalEntity; import com.epmet.modules.group.entity.ResiGroupStatisticalEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* 群组统计信息表 * 群组统计信息表
* *
* @author generator generator@elink-cn.com * @author generator generator@elink-cn.comH
* @since v1.0.0 2020-03-31 * @since v1.0.0 2020-03-31
*/ */
@Mapper @Mapper
public interface ResiGroupStatisticalDao extends BaseDao<ResiGroupStatisticalEntity> { public interface ResiGroupStatisticalDao extends BaseDao<ResiGroupStatisticalEntity> {
/**
* 根据组Id查询群组统计信息表数据
* @param resiGroupId
* @return
* @author sun
*/
ResiGroupStatisticalEntity selectByResiGroupId(@Param("resiGroupId") String resiGroupId);
} }

11
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupStatisticalService.java

@ -19,8 +19,11 @@ package com.epmet.modules.group.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.modules.group.entity.ResiGroupStatisticalEntity; import com.epmet.modules.group.entity.ResiGroupStatisticalEntity;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.resi.group.dto.group.ResiGroupStatisticalDTO; import com.epmet.resi.group.dto.group.ResiGroupStatisticalDTO;
import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -92,4 +95,12 @@ public interface ResiGroupStatisticalService extends BaseService<ResiGroupStatis
* @date 2020-03-31 * @date 2020-03-31
*/ */
void delete(String[] ids); void delete(String[] ids);
/**
* 删除组成员--修改resi_group_statistical成员总数-1,普通居民总数-1热心居民或者党员数根据被删除的用户身份来判断
*
* @param resiGroupMemberEntity
* @author sun
*/
Result upGroupStatistical(RemoveMemberFormDTO removeMemberFormDTO, ResiGroupMemberEntity resiGroupMemberEntity);
} }

70
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupStatisticalServiceImpl.java

@ -20,14 +20,25 @@ package com.epmet.modules.group.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; 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.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
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.utils.Result;
import com.epmet.dto.form.UserRoleFormDTO;
import com.epmet.dto.result.UserRoleResultDTO;
import com.epmet.modules.constant.UserMessageConstant;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.group.dao.ResiGroupStatisticalDao; import com.epmet.modules.group.dao.ResiGroupStatisticalDao;
import com.epmet.modules.group.entity.ResiGroupEntity;
import com.epmet.modules.group.entity.ResiGroupStatisticalEntity; import com.epmet.modules.group.entity.ResiGroupStatisticalEntity;
import com.epmet.modules.group.service.ResiGroupStatisticalService; import com.epmet.modules.group.service.ResiGroupStatisticalService;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.resi.group.dto.group.ResiGroupStatisticalDTO; import com.epmet.resi.group.dto.group.ResiGroupStatisticalDTO;
import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -44,6 +55,11 @@ import java.util.Map;
@Service @Service
public class ResiGroupStatisticalServiceImpl extends BaseServiceImpl<ResiGroupStatisticalDao, ResiGroupStatisticalEntity> implements ResiGroupStatisticalService { public class ResiGroupStatisticalServiceImpl extends BaseServiceImpl<ResiGroupStatisticalDao, ResiGroupStatisticalEntity> implements ResiGroupStatisticalService {
@Autowired
private ResiGroupServiceImpl resiGroupServiceImpl;
@Autowired
private EpmetUserFeignClient epmetUserFeignClient;
@Override @Override
public PageData<ResiGroupStatisticalDTO> page(Map<String, Object> params) { public PageData<ResiGroupStatisticalDTO> page(Map<String, Object> params) {
IPage<ResiGroupStatisticalEntity> page = baseDao.selectPage( IPage<ResiGroupStatisticalEntity> page = baseDao.selectPage(
@ -60,8 +76,8 @@ public class ResiGroupStatisticalServiceImpl extends BaseServiceImpl<ResiGroupSt
return ConvertUtils.sourceToTarget(entityList, ResiGroupStatisticalDTO.class); return ConvertUtils.sourceToTarget(entityList, ResiGroupStatisticalDTO.class);
} }
private QueryWrapper<ResiGroupStatisticalEntity> getWrapper(Map<String, Object> params){ private QueryWrapper<ResiGroupStatisticalEntity> getWrapper(Map<String, Object> params) {
String id = (String)params.get(FieldConstant.ID_HUMP); String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<ResiGroupStatisticalEntity> wrapper = new QueryWrapper<>(); QueryWrapper<ResiGroupStatisticalEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
@ -96,4 +112,54 @@ public class ResiGroupStatisticalServiceImpl extends BaseServiceImpl<ResiGroupSt
baseDao.deleteBatchIds(Arrays.asList(ids)); baseDao.deleteBatchIds(Arrays.asList(ids));
} }
/**
* 删除组成员--修改resi_group_statistical成员总数-1,普通居民总数-1
* 热心居民或者党员数根据被删除的用户身份来判断
*
* @param resiGroupMemberEntity
* @author sun
*/
@Override
public Result upGroupStatistical(RemoveMemberFormDTO removeMemberFormDTO, ResiGroupMemberEntity resiGroupMemberEntity) {
Result result = new Result();
ResiGroupStatisticalEntity entity = baseDao.selectByResiGroupId(resiGroupMemberEntity.getResiGroupId());
if (null == entity) {
result.error(UserMessageConstant.DATA_ACQUISITION_FAILED);
return result;
}
//成员总数
entity.setTotalMembers(entity.getTotalMembers() - NumConstant.ONE);
//普通居民总数
entity.setTotalNormalMemebers(entity.getTotalNormalMemebers() - NumConstant.ONE);
//1:根据组Id查询客户Id
ResiGroupEntity resiGroupEntity = resiGroupServiceImpl.selectById(entity.getResiGroupId());
if (null == resiGroupEntity) {
result.error(UserMessageConstant.DATA_ACQUISITION_FAILED);
return result;
}
//2:根据客户Id、用户Id查询被删除成员角色
UserRoleFormDTO userRoleFormDTO = new UserRoleFormDTO();
userRoleFormDTO.setApp(removeMemberFormDTO.getApp());
userRoleFormDTO.setCustomerId(resiGroupEntity.getCustomerId());
userRoleFormDTO.setUserId(resiGroupMemberEntity.getCustomerUserId());
Result<List<UserRoleResultDTO>> resultList = epmetUserFeignClient.getUserRoleInfo(userRoleFormDTO);
if (!resultList.success()) {
result.error(UserMessageConstant.DATA_ACQUISITION_FAILED);
return result;
}
for (UserRoleResultDTO userRole : resultList.getData()) {
if (EpmetRoleKeyConstant.WARMHEARTED.equals(userRole.getRoleKey())) {
//热心居民总数
entity.setTotalEarnestMemebers(entity.getTotalEarnestMemebers() - NumConstant.ONE);
break;
} else if (EpmetRoleKeyConstant.WARMHEARTED.equals(userRole.getRoleKey())) {
//党员总数
entity.setTotalPartyMembers(entity.getTotalPartyMembers() - NumConstant.ONE);
break;
}
}
baseDao.updateById(entity);
return result;
}
} }

13
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java

@ -122,4 +122,17 @@ public class ResiGroupMemberController {
ValidatorUtils.validateEntity(disagreeApplyFormDTO); ValidatorUtils.validateEntity(disagreeApplyFormDTO);
return resiGroupMemberService.disAgreeApply(disagreeApplyFormDTO); return resiGroupMemberService.disAgreeApply(disagreeApplyFormDTO);
} }
/**
* @Author sun
* @Description 楼院小组--删除组成员
**/
@PostMapping("removemember")
public Result removeMember(@LoginUser TokenDto tokenDto, @RequestBody RemoveMemberFormDTO removeMemberFormDTO) {
removeMemberFormDTO.setUserId(tokenDto.getUserId());
removeMemberFormDTO.setApp(tokenDto.getApp());
ValidatorUtils.validateEntity(removeMemberFormDTO);
return resiGroupMemberService.removeMember(removeMemberFormDTO);
}
} }

13
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/GroupMemeberOperationService.java

@ -19,8 +19,11 @@ package com.epmet.modules.member.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.modules.member.entity.GroupMemeberOperationEntity; import com.epmet.modules.member.entity.GroupMemeberOperationEntity;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO; import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -92,4 +95,14 @@ public interface GroupMemeberOperationService extends BaseService<GroupMemeberOp
* @date 2020-03-29 * @date 2020-03-29
*/ */
void delete(String[] ids); void delete(String[] ids);
/**
* 删除组成员--group_member_operation新增一条记录
*
* @param resiGroupMemberEntity
* @return Result
* @author sun
* @date 2020-03-29
*/
Result saveMemberOperation(RemoveMemberFormDTO removeMemberFormDTO, ResiGroupMemberEntity resiGroupMemberEntity);
} }

8
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/ResiGroupMemberService.java

@ -160,4 +160,12 @@ public interface ResiGroupMemberService extends BaseService<ResiGroupMemberEntit
* @Date 2020/4/8 12:37 * @Date 2020/4/8 12:37
**/ **/
void saveOrUpdate(ResiGroupMemberDTO resiGroupMemberDTO); void saveOrUpdate(ResiGroupMemberDTO resiGroupMemberDTO);
/**
* @param removeMemberFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author sun
* @Description 楼院小组--删除组成员
**/
Result removeMember(RemoveMemberFormDTO removeMemberFormDTO);
} }

22
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/GroupMemeberOperationServiceImpl.java

@ -23,11 +23,15 @@ 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.modules.member.dao.GroupMemeberOperationDao; import com.epmet.modules.member.dao.GroupMemeberOperationDao;
import com.epmet.modules.member.entity.GroupMemeberOperationEntity; import com.epmet.modules.member.entity.GroupMemeberOperationEntity;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.modules.member.redis.GroupMemeberOperationRedis; import com.epmet.modules.member.redis.GroupMemeberOperationRedis;
import com.epmet.modules.member.service.GroupMemeberOperationService; import com.epmet.modules.member.service.GroupMemeberOperationService;
import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO; import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -65,8 +69,8 @@ public class GroupMemeberOperationServiceImpl extends BaseServiceImpl<GroupMemeb
return ConvertUtils.sourceToTarget(entityList, GroupMemeberOperationDTO.class); return ConvertUtils.sourceToTarget(entityList, GroupMemeberOperationDTO.class);
} }
private QueryWrapper<GroupMemeberOperationEntity> getWrapper(Map<String, Object> params){ private QueryWrapper<GroupMemeberOperationEntity> getWrapper(Map<String, Object> params) {
String id = (String)params.get(FieldConstant.ID_HUMP); String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<GroupMemeberOperationEntity> wrapper = new QueryWrapper<>(); QueryWrapper<GroupMemeberOperationEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
@ -101,4 +105,18 @@ public class GroupMemeberOperationServiceImpl extends BaseServiceImpl<GroupMemeb
baseDao.deleteBatchIds(Arrays.asList(ids)); baseDao.deleteBatchIds(Arrays.asList(ids));
} }
@Override
public Result saveMemberOperation(RemoveMemberFormDTO removeMemberFormDTO, ResiGroupMemberEntity resiGroupMemberEntity) {
GroupMemeberOperationEntity entity = new GroupMemeberOperationEntity();
entity.setCustomerUserId(resiGroupMemberEntity.getCustomerUserId());
entity.setGroupId(resiGroupMemberEntity.getResiGroupId());
entity.setOperateStatus(MemberStateConstant.REMOVED);
entity.setEnterGroupType(resiGroupMemberEntity.getEnterGroupType());
entity.setGroupInvitationId(resiGroupMemberEntity.getGroupInvitationId());
//entity.setOperateDes("");
entity.setOperateUserId(removeMemberFormDTO.getUserId());
baseDao.insert(entity);
return new Result();
}
} }

47
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java

@ -35,10 +35,12 @@ import com.epmet.feign.MessageFeignClient;
import com.epmet.modules.constant.UserMessageConstant; import com.epmet.modules.constant.UserMessageConstant;
import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.group.service.ResiGroupService; import com.epmet.modules.group.service.ResiGroupService;
import com.epmet.modules.group.service.ResiGroupStatisticalService;
import com.epmet.modules.member.dao.ResiGroupMemberDao; import com.epmet.modules.member.dao.ResiGroupMemberDao;
import com.epmet.modules.member.entity.ResiGroupMemberEntity; import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.modules.member.service.GroupMemeberOperationService; import com.epmet.modules.member.service.GroupMemeberOperationService;
import com.epmet.modules.member.service.ResiGroupMemberService; import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.modules.topic.service.ResiTopicService;
import com.epmet.modules.utils.ModuleConstant; import com.epmet.modules.utils.ModuleConstant;
import com.epmet.resi.group.constant.EnterGroupTypeConstant; import com.epmet.resi.group.constant.EnterGroupTypeConstant;
import com.epmet.resi.group.constant.LeaderFlagConstant; import com.epmet.resi.group.constant.LeaderFlagConstant;
@ -87,6 +89,12 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
@Autowired @Autowired
private MessageFeignClient messageFeignClient; private MessageFeignClient messageFeignClient;
@Autowired
private ResiGroupStatisticalService resiGroupStatisticalService;
@Autowired
private ResiTopicService resiTopicService;
@Override @Override
public PageData<ResiGroupMemberDTO> page(Map<String, Object> params) { public PageData<ResiGroupMemberDTO> page(Map<String, Object> params) {
IPage<ResiGroupMemberEntity> page = baseDao.selectPage( IPage<ResiGroupMemberEntity> page = baseDao.selectPage(
@ -405,4 +413,43 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
userMessage.setUserId(groupMemeberOperationDTO.getCustomerUserId()); userMessage.setUserId(groupMemeberOperationDTO.getCustomerUserId());
messageFeignClient.saveUserMessage(userMessage); messageFeignClient.saveUserMessage(userMessage);
} }
/**
* @param removeMemberFormDTO
* @return com.epmet.commons.tools.utils.Result
* @Author sun
* @Description 楼院小组--删除组成员
**/
@Override
@Transactional(rollbackFor = Exception.class)
public Result removeMember(RemoveMemberFormDTO removeMemberFormDTO) {
Result result = new Result();
//1、resi_group_member表中的status置为removed,删除标记置为1
ResiGroupMemberEntity entity = new ResiGroupMemberEntity();
entity.setId(removeMemberFormDTO.getMemerId());
entity.setStatus(MemberStateConstant.REMOVED);
baseDao.updateById(entity);
//2、group_member_operation新增一条记录
ResiGroupMemberEntity resiGroupMemberEntity = baseDao.selectById(removeMemberFormDTO.getMemerId());
if (null == resiGroupMemberEntity) {
logger.error(UserMessageConstant.DATA_ACQUISITION_FAILED);
result.error(UserMessageConstant.DELETE_FAILED);
return result;
}
groupMemeberOperationService.saveMemberOperation(removeMemberFormDTO, resiGroupMemberEntity);
//3、修改resi_group_statistical表数据:成员总数-1,普通居民总数-1,热心居民或者党员数根据被删除的用户身份来判断
result = resiGroupStatisticalService.upGroupStatistical(removeMemberFormDTO, resiGroupMemberEntity);
if (!result.success()) {
logger.error(UserMessageConstant.DATA_ACQUISITION_FAILED);
result.error(UserMessageConstant.DELETE_FAILED);
return result;
}
//4、之前这个人发布的话题根据前端传过来的屏蔽标志更新话题状态(移除一条话题在话题操作日志表添加一条日志)
if (removeMemberFormDTO.getHideFlag().equals(NumConstant.ONE_STR)) {
resiTopicService.upResiTopic(removeMemberFormDTO, resiGroupMemberEntity);
}
//5、评论和产品沟通后,说可以留着。
//result.setMsg(UserMessageConstant.DELETE_SUCCESS);
return result;
}
} }

10
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java

@ -20,6 +20,7 @@ package com.epmet.modules.topic.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.topic.entity.ResiTopicEntity; import com.epmet.modules.topic.entity.ResiTopicEntity;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO; import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -90,4 +91,13 @@ public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
* @Date 2020.04.01 15:21 * @Date 2020.04.01 15:21
**/ **/
int updateBatch(List<ResiTopicEntity> list); int updateBatch(List<ResiTopicEntity> list);
/**
* @Description 批量更新
* @Param List<ResiTopicEntity>
* @return int
* @Author wangc
* @Date 2020.04.01 15:21
**/
List<ResiTopicDTO> selectTopicList(ResiTopicDTO resiTopicDTO);
} }

36
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java

@ -21,7 +21,9 @@ 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.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.modules.topic.entity.ResiTopicEntity; import com.epmet.modules.topic.entity.ResiTopicEntity;
import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO;
@ -103,82 +105,88 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
void delete(String[] ids); void delete(String[] ids);
/** /**
* @return Result
* @Description 创建话题接口具体逻辑包括1.身份校验 2.创建话题 3.话题操作记录 * @Description 创建话题接口具体逻辑包括1.身份校验 2.创建话题 3.话题操作记录
* @Param tokenDto * @Param tokenDto
* @Param resiTopicPublishFormDTO * @Param resiTopicPublishFormDTO
* @return Result
* @Author wangc * @Author wangc
* @Date 2020.03.31 13:19 * @Date 2020.03.31 13:19
**/ **/
Result createTopic(TokenDto tokenDto, ResiTopicPublishFormDTO resiTopicPublishFormDTO); Result createTopic(TokenDto tokenDto, ResiTopicPublishFormDTO resiTopicPublishFormDTO);
/** /**
* @return Result<List < ResiTopicInfoResultDTO>>
* @Description 查看组内最近十条话题 * @Description 查看组内最近十条话题
* @Param tokenDto * @Param tokenDto
* @Param groupId * @Param groupId
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc * @Author wangc
* @Date 2020.04.01 08:59 * @Date 2020.04.01 08:59
**/ **/
Result<List<ResiTopicInfoResultDTO>> getLatestTopics(TokenDto tokenDto,String groupId); Result<List<ResiTopicInfoResultDTO>> getLatestTopics(TokenDto tokenDto, String groupId);
/** /**
* @Description 查看历史话题(分页,允许状态筛选) * @return Result<List < ResiTopicInfoResultDTO>>
* @Description 查看历史话题(分页, 允许状态筛选)
* @Param tokenDto * @Param tokenDto
* @Param ResiTopicPageFormDTO.class * @Param ResiTopicPageFormDTO.class
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc * @Author wangc
* @Date 2020.04.01 10:36 * @Date 2020.04.01 10:36
**/ **/
Result<List<ResiTopicInfoResultDTO>> getPastTopicList(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO); Result<List<ResiTopicInfoResultDTO>> getPastTopicList(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO);
/** /**
* @return Result
* @Description 屏蔽话题 * @Description 屏蔽话题
* @Param tokenDto * @Param tokenDto
* @Param ResiTopicHiddenFormDTO.class * @Param ResiTopicHiddenFormDTO.class
* @return Result
* @Author wangc * @Author wangc
* @Date 2020.04.01 12:38 * @Date 2020.04.01 12:38
**/ **/
Result hideTopic(TokenDto tokenDto,ResiTopicOperationFormDTO hiddenFormDTO); Result hideTopic(TokenDto tokenDto, ResiTopicOperationFormDTO hiddenFormDTO);
/** /**
* @return Result
* @Description 批量取消屏蔽 * @Description 批量取消屏蔽
* @Param tokenDto * @Param tokenDto
* @Param topicIds * @Param topicIds
* @return Result
* @Author wangc * @Author wangc
* @Date 2020.04.01 14:17 * @Date 2020.04.01 14:17
**/ **/
Result cancelHiddenTopics(TokenDto tokenDto,List<String> topicIds); Result cancelHiddenTopics(TokenDto tokenDto, List<String> topicIds);
/** /**
* @return Result.class
* @Description 关闭话题 * @Description 关闭话题
* @Param tokenDto * @Param tokenDto
* @Param ResiTopicOperationFormDTO.class * @Param ResiTopicOperationFormDTO.class
* @return Result.class
* @Author wangc * @Author wangc
* @Date 2020.04.01 15:37 * @Date 2020.04.01 15:37
**/ **/
Result closeTopic(TokenDto tokenDto,ResiTopicOperationFormDTO closeFormDTO); Result closeTopic(TokenDto tokenDto, ResiTopicOperationFormDTO closeFormDTO);
/** /**
* @return ResiTopicDetailResultDTO
* @Description 查看话题详情 * @Description 查看话题详情
* @Param tokenDto * @Param tokenDto
* @Param topicId * @Param topicId
* @return ResiTopicDetailResultDTO
* @Author wangc * @Author wangc
* @Date 2020.04.01 15:56 * @Date 2020.04.01 15:56
**/ **/
Result<ResiTopicDetailResultDTO> getTopicDetail(TokenDto tokenDto, String topicId); Result<ResiTopicDetailResultDTO> getTopicDetail(TokenDto tokenDto, String topicId);
/** /**
* @return List<ResiTopicInfoResultDTO>
* @Description 屏蔽话题列表查询 * @Description 屏蔽话题列表查询
* @Param tokenDto * @Param tokenDto
* @Param ResiTopicPageFormDTO.class * @Param ResiTopicPageFormDTO.class
* @return List<ResiTopicInfoResultDTO>
* @Author wangc * @Author wangc
* @Date 2020.04.01 16:45 * @Date 2020.04.01 16:45
**/ **/
Result<List<ResiTopicInfoResultDTO>> getHiddenTopics(TokenDto tokenDto,ResiTopicPageFormDTO topicPageFormDTO); Result<List<ResiTopicInfoResultDTO>> getHiddenTopics(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO);
/**
* @Description 删除组成员--根据前端传过来的屏蔽标志更新话题状态
* @Author sun
**/
Result upResiTopic(RemoveMemberFormDTO removeMemberFormDTO, ResiGroupMemberEntity entity);
} }

45
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -30,12 +30,14 @@ import com.epmet.commons.tools.utils.Result;
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.result.UserResiInfoResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.modules.constant.UserMessageConstant;
import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.group.dao.ResiGroupDao; import com.epmet.modules.group.dao.ResiGroupDao;
import com.epmet.modules.group.dao.ResiGroupStatisticalDao; import com.epmet.modules.group.dao.ResiGroupStatisticalDao;
import com.epmet.modules.group.entity.ResiGroupEntity; import com.epmet.modules.group.entity.ResiGroupEntity;
import com.epmet.modules.group.entity.ResiGroupStatisticalEntity; import com.epmet.modules.group.entity.ResiGroupStatisticalEntity;
import com.epmet.modules.member.dao.ResiGroupMemberDao; import com.epmet.modules.member.dao.ResiGroupMemberDao;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.modules.member.service.ResiGroupMemberService; import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.modules.topic.dao.ResiTopicAttachmentDao; import com.epmet.modules.topic.dao.ResiTopicAttachmentDao;
import com.epmet.modules.topic.dao.ResiTopicCommentDao; import com.epmet.modules.topic.dao.ResiTopicCommentDao;
@ -44,11 +46,13 @@ import com.epmet.modules.topic.dao.ResiTopicOperationDao;
import com.epmet.modules.topic.entity.ResiTopicAttachmentEntity; import com.epmet.modules.topic.entity.ResiTopicAttachmentEntity;
import com.epmet.modules.topic.entity.ResiTopicEntity; import com.epmet.modules.topic.entity.ResiTopicEntity;
import com.epmet.modules.topic.entity.ResiTopicOperationEntity; import com.epmet.modules.topic.entity.ResiTopicOperationEntity;
import com.epmet.modules.topic.service.ResiTopicOperationService;
import com.epmet.modules.topic.service.ResiTopicService; import com.epmet.modules.topic.service.ResiTopicService;
import com.epmet.modules.utils.ModuleConstant; import com.epmet.modules.utils.ModuleConstant;
import com.epmet.resi.group.constant.MemberStateConstant; import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.constant.TopicConstant; import com.epmet.resi.group.constant.TopicConstant;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO; import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.member.form.RemoveMemberFormDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO; import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO;
@ -100,6 +104,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
@Autowired @Autowired
RedisUtils redisUtil; RedisUtils redisUtil;
@Autowired
private ResiTopicOperationService resiTopicOperationService;
@Override @Override
public PageData<ResiTopicDTO> page(Map<String, Object> params) { public PageData<ResiTopicDTO> page(Map<String, Object> params) {
@ -583,4 +590,42 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
} }
} }
} }
/**
* @Description 删除组成员--根据前端传过来的屏蔽标志更新话题状态
* (移除一条话题在话题操作日志表添加一条日志)
* @Author sun
**/
@Override
public Result upResiTopic(RemoveMemberFormDTO removeMemberFormDTO, ResiGroupMemberEntity resiGroupMemberEntity) {
Result result = new Result();
ResiTopicDTO resiTopicDTO = new ResiTopicDTO();
resiTopicDTO.setGroupId(resiGroupMemberEntity.getResiGroupId());
resiTopicDTO.setCreatedBy(resiGroupMemberEntity.getCustomerUserId());
//1:查询被删除成员在该小组所创建的所有话题
List<ResiTopicDTO> list = baseDao.selectTopicList(resiTopicDTO);
if (null == list || list.size() < 1) {
return result;
}
//2:批量更新话题状态
List<String> ids = new ArrayList<>();
List<ResiTopicOperationEntity> topicOperationList = new ArrayList<>();
ResiTopicOperationEntity resiTopicOperationEntity = null;
for (ResiTopicDTO dto : list) {
ids.add(dto.getId());
resiTopicOperationEntity = new ResiTopicOperationEntity();
resiTopicOperationEntity.setTopicId(dto.getId());
resiTopicOperationEntity.setOperationType(TopicConstant.HIDDEN);
resiTopicOperationEntity.setOperationReason(UserMessageConstant.DELETE_MEMBER_REASON);
resiTopicOperationEntity.setDelFlag(NumConstant.ZERO_STR);
resiTopicOperationEntity.setRevision(NumConstant.ZERO);
resiTopicOperationEntity.setCreatedBy(removeMemberFormDTO.getUserId());
resiTopicOperationEntity.setUpdatedBy(removeMemberFormDTO.getUserId());
topicOperationList.add(resiTopicOperationEntity);
}
baseDao.cancelHiddenOrCloseBatch(ids, removeMemberFormDTO.getUserId(),TopicConstant.HIDDEN);
//3:批量新增对应的话题操作日志
resiTopicOperationService.insertBatch(topicOperationList);
return result;
}
} }

31
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupStatisticalDao.xml

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.modules.group.dao.ResiGroupStatisticalDao">
<sql id="sql">
rgs.id AS "id",
rgs.resi_group_id AS "resiGroupId",
rgs.total_members AS "totalMembers",
rgs.total_topics AS "totalTopics",
rgs.total_issues AS "totalIssues",
rgs.total_party_members AS "totalPartyMembers",
rgs.total_earnest_memebers AS "totalEarnestMemebers",
rgs.total_normal_memebers AS "totalNormalMemebers",
rgs.del_flag AS "delFlag",
rgs.revision AS "revision",
rgs.created_by AS "createdBy",
rgs.created_time AS "createdTime",
rgs.updated_by AS "updatedBy",
rgs.updated_time AS "updatedTime"
</sql>
<select id="selectByResiGroupId" resultType="com.epmet.modules.group.entity.ResiGroupStatisticalEntity">
SELECT
<include refid="sql"></include>
FROM resi_group_statistical rgs
WHERE rgs.del_flag = '0'
AND rgs.resi_group_id = #{resiGroupId}
</select>
</mapper>

31
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml

@ -3,6 +3,24 @@
<mapper namespace="com.epmet.modules.topic.dao.ResiTopicDao"> <mapper namespace="com.epmet.modules.topic.dao.ResiTopicDao">
<sql id="sql">
rt.id AS "id",
rt.group_id AS "groupId",
rt.topic_content AS "topicContent",
rt.status AS "status",
rt.province AS "province",
rt.city AS "city",
rt.area AS "area",
rt.address AS "address",
rt.longitude AS "longitude",
rt.dimension AS "dimension",
rt.del_flag AS "delFlag",
rt.revision AS "revision",
rt.created_by AS "createdBy",
rt.created_time AS "createdTime",
rt.updated_by AS "updatedBy",
rt.updated_time AS "updatedTime"
</sql>
<!-- 新增话题 --> <!-- 新增话题 -->
<insert id="insertOne" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.epmet.modules.topic.entity.ResiTopicEntity"> <insert id="insertOne" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.epmet.modules.topic.entity.ResiTopicEntity">
@ -177,6 +195,19 @@
</select> </select>
<select id="selectTopicList" resultType="com.epmet.resi.group.dto.topic.ResiTopicDTO">
SELECT
<include refid="sql"></include>
FROM resi_topic rt
WHERE rt.del_flag = '0'
<if test='null != groupId and "" != groupId'>
AND rt.group_id = #{groupId}
</if>
<if test='null != createdBy and "" != createdBy'>
AND rt.created_by = #{createdBy}
</if>
</select>
<!-- 单条更新 --> <!-- 单条更新 -->
<update id="update" parameterType="com.epmet.modules.topic.entity.ResiTopicEntity"> <update id="update" parameterType="com.epmet.modules.topic.entity.ResiTopicEntity">

Loading…
Cancel
Save