Browse Source

添加群组

dev_shibei_match
yinzuomei 4 years ago
parent
commit
cf17ea2587
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  2. 52
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/AddReceiverGroupFormDTO.java
  3. 17
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/AddReceiverGroupResultDTO.java
  4. 17
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/ReplyInfoResultDTO.java
  5. 45
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/InfoController.java
  6. 4
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/InfoReceiverGroupDao.java
  7. 19
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/InfoService.java
  8. 60
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/InfoServiceImpl.java
  9. 12
      epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/InfoReceiverGroupDao.xml

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -105,6 +105,8 @@ public enum EpmetErrorCode {
PLEASE_CHOOSE_RECEIVER(8609,"请选择接收人"), PLEASE_CHOOSE_RECEIVER(8609,"请选择接收人"),
REPLY_INFO_CONTENT_NOT_NULL(8610,"回复内容不能为空"), REPLY_INFO_CONTENT_NOT_NULL(8610,"回复内容不能为空"),
PLEASE_CHOOSE_MEMBER(8611,"请选择成员"),
INFO_GROUP_NAME_EXISTS(8612,"名称已存在"),
// 爱心互助 居民端 // 爱心互助 居民端
NOT_IN_THE_SIGN_IN_RANGE(8510, "您还未进入指定的签到范围~"), NOT_IN_THE_SIGN_IN_RANGE(8510, "您还未进入指定的签到范围~"),

52
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/AddReceiverGroupFormDTO.java

@ -0,0 +1,52 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Set;
/**
* @Description 发送消息-新增群组
* @Author yinzuomei
* @Date 2021/8/20 9:39 上午
*/
@Data
public class AddReceiverGroupFormDTO implements Serializable {
private static final long serialVersionUID = 6221853016790893895L;
public interface AddUserInternalGroup {
}
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
@NotBlank(message = "名称不能为空",groups = AddUserShowGroup.class)
@Length(min = 1,max = 20,groups = AddUserShowGroup.class,message = "名称最多输入20个字")
private String name;
/**
* 单独选择的人的userId集合
*/
private Set<String> staffIdList;
/**
* 按架构选择的组织或者网格或者部门的集合
*/
private Set<OrgCommonDTO> orgList;
//以下参数从token中获取
/**
* 当前用户id
*/
@NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class)
private String userId;
/**
* 当前客户id
*/
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
private String customerId;
}

17
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/AddReceiverGroupResultDTO.java

@ -0,0 +1,17 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 添加小组返参
* @Author yinzuomei
* @Date 2021/8/20 9:56 上午
*/
@Data
public class AddReceiverGroupResultDTO implements Serializable {
private static final long serialVersionUID = 4729777797252376046L;
private String receiverGroupId;
}

17
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/ReplyInfoResultDTO.java

@ -0,0 +1,17 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 回复消息返参
* @Author yinzuomei
* @Date 2021/8/20 9:51 上午
*/
@Data
public class ReplyInfoResultDTO implements Serializable {
private static final long serialVersionUID = -634463925415755405L;
private String replyId;
}

45
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/InfoController.java

@ -21,10 +21,9 @@ import com.epmet.commons.tools.annotation.LoginUser;
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.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.ReadInfoFormDTO; import com.epmet.dto.form.*;
import com.epmet.dto.form.ReadReplyFormDTO; import com.epmet.dto.result.AddReceiverGroupResultDTO;
import com.epmet.dto.form.ReplyInfoFormDTO; import com.epmet.dto.result.ReplyInfoResultDTO;
import com.epmet.dto.form.SendInfoFormDTO;
import com.epmet.dto.result.SendInfoResultDTO; import com.epmet.dto.result.SendInfoResultDTO;
import com.epmet.service.InfoService; import com.epmet.service.InfoService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -93,12 +92,11 @@ public class InfoController {
* @date 2021/8/19 5:29 下午 * @date 2021/8/19 5:29 下午
*/ */
@PostMapping("reply-info") @PostMapping("reply-info")
public Result replyInfo(@LoginUser TokenDto tokenDto,@RequestBody ReplyInfoFormDTO formDTO){ public Result<ReplyInfoResultDTO> replyInfo(@LoginUser TokenDto tokenDto, @RequestBody ReplyInfoFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId()); formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO,ReplyInfoFormDTO.AddUserInternalGroup.class); ValidatorUtils.validateEntity(formDTO,ReplyInfoFormDTO.AddUserInternalGroup.class);
infoService.replyInfo(formDTO); return new Result<ReplyInfoResultDTO>().ok(infoService.replyInfo(formDTO));
return new Result();
} }
/** /**
@ -119,4 +117,37 @@ public class InfoController {
return new Result(); return new Result();
} }
/**
* 添加群组
*
* @param tokenDto
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<AddReceiverGroupResultDTO>
* @author yinzuomei
* @date 2021/8/20 9:58 上午
*/
@PostMapping("add-receivergroup")
public Result<AddReceiverGroupResultDTO> addReceiverGroup(@LoginUser TokenDto tokenDto, @RequestBody AddReceiverGroupFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO,AddReceiverGroupFormDTO.AddUserShowGroup.class,AddReceiverGroupFormDTO.AddUserInternalGroup.class);
return new Result<AddReceiverGroupResultDTO>().ok(infoService.addReceiverGroup(formDTO));
}
} }

4
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/InfoReceiverGroupDao.java

@ -20,6 +20,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.InfoReceiverGroupEntity; import com.epmet.entity.InfoReceiverGroupEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* 消息-群组表 * 消息-群组表
@ -29,5 +30,6 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface InfoReceiverGroupDao extends BaseDao<InfoReceiverGroupEntity> { public interface InfoReceiverGroupDao extends BaseDao<InfoReceiverGroupEntity> {
int selectCountName(@Param("name") String name, @Param("customerId")String customerId, @Param("userId")String userId);
} }

19
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/InfoService.java

@ -18,10 +18,9 @@
package com.epmet.service; package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.form.ReadInfoFormDTO; import com.epmet.dto.form.*;
import com.epmet.dto.form.ReadReplyFormDTO; import com.epmet.dto.result.AddReceiverGroupResultDTO;
import com.epmet.dto.form.ReplyInfoFormDTO; import com.epmet.dto.result.ReplyInfoResultDTO;
import com.epmet.dto.form.SendInfoFormDTO;
import com.epmet.dto.result.SendInfoResultDTO; import com.epmet.dto.result.SendInfoResultDTO;
import com.epmet.entity.InfoEntity; import com.epmet.entity.InfoEntity;
@ -61,7 +60,7 @@ public interface InfoService extends BaseService<InfoEntity> {
* @author yinzuomei * @author yinzuomei
* @date 2021/8/19 5:30 下午 * @date 2021/8/19 5:30 下午
*/ */
void replyInfo(ReplyInfoFormDTO formDTO); ReplyInfoResultDTO replyInfo(ReplyInfoFormDTO formDTO);
/** /**
* 我发出的发布人点击详情后阅读回复将未读回复数置为0 * 我发出的发布人点击详情后阅读回复将未读回复数置为0
@ -72,4 +71,14 @@ public interface InfoService extends BaseService<InfoEntity> {
* @date 2021/8/19 5:51 下午 * @date 2021/8/19 5:51 下午
*/ */
void readInfoReply(ReadReplyFormDTO formDTO); void readInfoReply(ReadReplyFormDTO formDTO);
/**
* 添加群组
*
* @param formDTO
* @return com.epmet.dto.result.AddReceiverGroupResultDTO
* @author yinzuomei
* @date 2021/8/20 9:58 上午
*/
AddReceiverGroupResultDTO addReceiverGroup(AddReceiverGroupFormDTO formDTO);
} }

60
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/InfoServiceImpl.java

@ -29,6 +29,8 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserMessageConstans; import com.epmet.constant.UserMessageConstans;
import com.epmet.dao.*; import com.epmet.dao.*;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.AddReceiverGroupResultDTO;
import com.epmet.dto.result.ReplyInfoResultDTO;
import com.epmet.dto.result.SendInfoResultDTO; import com.epmet.dto.result.SendInfoResultDTO;
import com.epmet.entity.*; import com.epmet.entity.*;
import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient;
@ -187,6 +189,7 @@ public class InfoServiceImpl extends BaseServiceImpl<InfoDao, InfoEntity> implem
* @author yinzuomei * @author yinzuomei
* @date 2021/8/19 5:03 下午 * @date 2021/8/19 5:03 下午
*/ */
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void readInfo(ReadInfoFormDTO formDTO) { public void readInfo(ReadInfoFormDTO formDTO) {
//已读总人数+1 //已读总人数+1
@ -211,8 +214,9 @@ public class InfoServiceImpl extends BaseServiceImpl<InfoDao, InfoEntity> implem
* @author yinzuomei * @author yinzuomei
* @date 2021/8/19 5:30 下午 * @date 2021/8/19 5:30 下午
*/ */
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void replyInfo(ReplyInfoFormDTO formDTO) { public ReplyInfoResultDTO replyInfo(ReplyInfoFormDTO formDTO) {
//1、插入回复记录、回复附件 //1、插入回复记录、回复附件
//内容和附件 2选一 //内容和附件 2选一
if(StringUtils.isBlank(formDTO.getContent())&&CollectionUtils.isEmpty(formDTO.getAttachmentList())){ if(StringUtils.isBlank(formDTO.getContent())&&CollectionUtils.isEmpty(formDTO.getAttachmentList())){
@ -257,7 +261,9 @@ public class InfoServiceImpl extends BaseServiceImpl<InfoDao, InfoEntity> implem
infoProfileEntity.setUnReadReplyNum(infoProfileEntity.getUnReadReplyNum()+1); infoProfileEntity.setUnReadReplyNum(infoProfileEntity.getUnReadReplyNum()+1);
infoProfileDao.updateById(infoProfileEntity); infoProfileDao.updateById(infoProfileEntity);
} }
ReplyInfoResultDTO resultDTO=new ReplyInfoResultDTO();
resultDTO.setReplyId(infoReplyEntity.getId());
return resultDTO;
} }
/** /**
@ -268,6 +274,7 @@ public class InfoServiceImpl extends BaseServiceImpl<InfoDao, InfoEntity> implem
* @author yinzuomei * @author yinzuomei
* @date 2021/8/19 5:51 下午 * @date 2021/8/19 5:51 下午
*/ */
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void readInfoReply(ReadReplyFormDTO formDTO) { public void readInfoReply(ReadReplyFormDTO formDTO) {
InfoProfileEntity infoProfile = infoProfileDao.selectByInfoId(formDTO.getInfoId()); InfoProfileEntity infoProfile = infoProfileDao.selectByInfoId(formDTO.getInfoId());
@ -277,6 +284,55 @@ public class InfoServiceImpl extends BaseServiceImpl<InfoDao, InfoEntity> implem
} }
} }
/**
* 添加群组
*
* @param formDTO
* @return com.epmet.dto.result.AddReceiverGroupResultDTO
* @author yinzuomei
* @date 2021/8/20 9:58 上午
*/
@Transactional(rollbackFor = Exception.class)
@Override
public AddReceiverGroupResultDTO addReceiverGroup(AddReceiverGroupFormDTO formDTO) {
// 1、人员列表和组织列表不能同时为空
if(CollectionUtils.isEmpty(formDTO.getStaffIdList())&&CollectionUtils.isEmpty(formDTO.getOrgList())){
throw new RenException(EpmetErrorCode.PLEASE_CHOOSE_MEMBER.getCode(), EpmetErrorCode.PLEASE_CHOOSE_MEMBER.getMsg());
}
// 2、选择了组织,但是组织下没有人,也要提示给用户,:请选择成员
Set<String> orgStaffIds=queryOrgStaffIds(formDTO.getCustomerId(),formDTO.getOrgList());
if(CollectionUtils.isEmpty(formDTO.getStaffIdList())&&CollectionUtils.isEmpty(orgStaffIds)){
throw new RenException(EpmetErrorCode.PLEASE_CHOOSE_MEMBER.getCode(), EpmetErrorCode.PLEASE_CHOOSE_MEMBER.getMsg());
}
// 3、群名称是否存在
if (infoReceiverGroupDao.selectCountName(formDTO.getName().trim(),formDTO.getCustomerId(),formDTO.getUserId()) > 1) {
throw new RenException(EpmetErrorCode.INFO_GROUP_NAME_EXISTS.getCode(), EpmetErrorCode.INFO_GROUP_NAME_EXISTS.getMsg());
}
InfoReceiverGroupEntity groupEntity=new InfoReceiverGroupEntity();
groupEntity.setCustomerId(formDTO.getCustomerId());
groupEntity.setName(formDTO.getName());
groupEntity.setCreateStaffId(formDTO.getUserId());
// 4、插入小组表
infoReceiverGroupDao.insert(groupEntity);
Set<String> members=new LinkedHashSet<String>();
members.addAll(formDTO.getStaffIdList());
members.addAll(orgStaffIds);
members.forEach(memStaffId->{
// 5、插入群成员表
InfoGroupReceiversEntity memberEntity=new InfoGroupReceiversEntity();
memberEntity.setCustomerId(formDTO.getCustomerId());
memberEntity.setInfoReceiverGroupId(groupEntity.getId());
memberEntity.setStaffId(memStaffId);
infoGroupReceiversDao.insert(memberEntity);
});
// 6、返回小组id
AddReceiverGroupResultDTO resultDTO=new AddReceiverGroupResultDTO();
resultDTO.setReceiverGroupId(groupEntity.getId());
return resultDTO;
}
/** /**
* 查询架构里面的人 * 查询架构里面的人
* *

12
epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/InfoReceiverGroupDao.xml

@ -3,6 +3,16 @@
<mapper namespace="com.epmet.dao.InfoReceiverGroupDao"> <mapper namespace="com.epmet.dao.InfoReceiverGroupDao">
<select id="selectCountName" parameterType="map" resultType="int">
SELECT
count( irg.id )
FROM
info_receiver_group irg
WHERE
irg.DEL_FLAG = '0'
AND irg.`NAME` = #{name}
AND irg.CREATE_STAFF_ID = #{userId}
AND irg.CUSTOMER_ID = #{customerId}
</select>
</mapper> </mapper>
Loading…
Cancel
Save