Commit 3222c2c9 by 徐高华

Merge branch 'feature/xgh/zq12' into 'master'

Feature/xgh/zq12

See merge request !2396
parents 6cb306d9 db375736
package com.gic.haoban.manage.api.dto.chat;
import java.io.Serializable;
public class GroupChatUserNoticeDTO implements Serializable {
private String enterpriseId ;
private String memberId ;
// 1入群 2退群
private int addOrQuit ;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public int getAddOrQuit() {
return addOrQuit;
}
public void setAddOrQuit(int addOrQuit) {
this.addOrQuit = addOrQuit;
}
}
......@@ -294,6 +294,15 @@ public interface ExternalClerkRelatedApiService {
boolean isExternalFriendByMemberId(String memberId, String enterpriseId);
/**
* 是否有双向好友
* @param memberId
* @param enterpriseId
* @return
*/
boolean isBothFriendByMemberId(String memberId, String enterpriseId);
/**
* 得到好友状态
*
* @param memberId 成员身份
......@@ -334,6 +343,9 @@ public interface ExternalClerkRelatedApiService {
*/
List<ExternalUserClerkDTO> listExternalClerk(String enterpriseId , String memberId) ;
// 0不是好友 1是好友 3是单向好友
int isClerkFriend(String enterpriseId , String clerkId , String memberId) ;
/**
* 单向好友数
*/
......
......@@ -182,4 +182,12 @@ public interface GroupChatApiService {
*/
public ServiceResponse<MemberGroupFriendDTO> memberIsAddGroup(String enterpriseId, String memberId) ;
/**
* 是否加入群
* @param enterpriseId
* @param memberId
* @return
*/
ServiceResponse<Boolean> isAddGroup(String enterpriseId, String memberId) ;
}
......@@ -352,7 +352,11 @@ public interface TabHaobanExternalClerkRelatedMapper {
* @author mozhu
* @date 2022-04-21 10:06:21
*/
int countByMemberId(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId);
int countByMemberId(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId );
int countBothByMemberId(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId );
List<String> getIdList(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId) ;
......@@ -446,4 +450,11 @@ public interface TabHaobanExternalClerkRelatedMapper {
TabHaobanExternalClerkRelated getDelFriend(@Param("wxEnterpriseId") String wxEnterpriseId , @Param("enterpriseId") String enterpriseId , @Param("staffId")String staffId) ;
void updateHalfTime(@Param("id") String id , @Param("delTime") Date delTime) ;
/**
* 和导购是否好友
* @param enterpriseId
* @param clerkId
* @param memberId
*/
TabHaobanExternalClerkRelated isClerkFriend(@Param("enterpriseId")String enterpriseId, @Param("clerkId")String clerkId, @Param("memberId")String memberId);
}
\ No newline at end of file
......@@ -82,6 +82,9 @@ public interface GroupChatUserMapper {
List<TabGroupChatUser> getByMember(@Param("enterpriseId")String enterpriseId, @Param("memberId")String memberId);
int isAddGroupChat(@Param("enterpriseId")String enterpriseId, @Param("memberId")String memberId);
/**
* 会员加入的社群对应的群活码id
* @param chatHmIds
......
......@@ -6,6 +6,7 @@ import com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatUserSearchQDTO;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatUser;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatUserBO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -27,4 +28,7 @@ public interface GroupChatUserService {
*/
List<TabGroupChatUser> getByMember(String enterpriseId , String memberId) ;
int isAddGroupChat(String enterpriseId, String memberId);
}
\ No newline at end of file
......@@ -12,6 +12,7 @@ import java.util.stream.Collectors;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.manage.api.dto.chat.GroupChatUserNoticeDTO;
import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper;
import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.service.chat.GroupChatActivityInviteLogService;
......@@ -185,6 +186,10 @@ public class GroupChatServiceImpl implements GroupChatService {
logger.info("群查不到,wxChatid={}", wxChatId);
return;
}
List<TabGroupChatUser> list = this.groupChatUserMapper.listAllChatUser(wxEnterpriseId,groupChat.getGroupChatId()) ;
for(TabGroupChatUser user : list) {
this.notice(user.getEnterpriseId(),user.getMemberId(),0);
}
this.groupChatMapper.updateChatStatus(groupChat.getGroupChatId(), 4);
// 更新群数量
this.updateOwnerCount(groupChat.getStaffId());
......@@ -471,7 +476,7 @@ public class GroupChatServiceImpl implements GroupChatService {
logger.info("群主离职,刷新群状态,staffId={}", staffId);
TabGroupChatOwner owner = this.groupChatOwnerMapper.selectByStaffId(staffId);
if (null != owner) {
TabHaobanStaff staff = this.staffMapper.selectByPrimaryKey(staffId);
TabHaobanStaff staff = this.staffMapper.selectByPrimaryKeyNoStatus(staffId);
this.dimissionOwner(staff.getWxEnterpriseId(), staff.getWxUserId(), staff.getWxOpenUseId());
this.updateOwnerCount(staffId);
}
......@@ -780,6 +785,7 @@ public class GroupChatServiceImpl implements GroupChatService {
TabGroupChatUser user = nowUserMap.get(userId);
if (null != user && user.getUserType() == 3) {
++quitMemberCount;
this.notice(enterpriseId,user.getMemberId(),0);
}
}
}
......@@ -972,6 +978,7 @@ public class GroupChatServiceImpl implements GroupChatService {
logger.info("匹配群客户,unionid");
user.setMemberId(member.getMemberId());
user.setUserType(3);
this.notice(enterpriseId,member.getMemberId(),1) ;
}
} else if (StringUtils.isNotBlank(externalUserId)) {
TabHaobanExternalClerkRelated related = this.externalClerkRelatedMapper
......@@ -980,6 +987,7 @@ public class GroupChatServiceImpl implements GroupChatService {
logger.info("匹配群客户,externalUserId");
user.setMemberId(related.getMemberId());
user.setUserType(3);
this.notice(enterpriseId,related.getMemberId(),1) ;
TabGroupChat group = this.groupChatMapper.selectById(groupChatId) ;
if(null != group) {
this.externalMemberService.updateMemberGrowth(related.getEnterpriseId(),related.getMemberId(), GrowthRuleEnum.ADD_HAOBAN_GROUP.getRuleCode(), "群信息",group.getName() + "(" + groupChatId + ")");
......@@ -998,11 +1006,31 @@ public class GroupChatServiceImpl implements GroupChatService {
Set<Long> groupChatIdList = list.stream().map(dto -> dto.getGroupChatId()).collect(Collectors.toSet());
groupChatIdList.forEach(groupChatId -> {
logger.info("群加会员数={}", groupChatId);
this.notice(enterpriseId,memberId,1) ;
this.groupChatMapper.addMemberCount(groupChatId);
});
}
}
public void notice(String enterpriseId,String memberId , int addOrQuit) {
logger.info("会员群发退群通知={}",memberId,addOrQuit);
if(StringUtils.isBlank(enterpriseId) || StringUtils.isBlank(memberId)) {
return;
}
JSONObject json = new JSONObject() ;
GroupChatUserNoticeDTO dto = new GroupChatUserNoticeDTO() ;
dto.setEnterpriseId(enterpriseId);
dto.setMemberId(memberId);
dto.setAddOrQuit(addOrQuit);
try {
mqClient.sendMessage("qywxAddGroupChatEvent", json.toJSONString());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private String getWxEnterpriesId(String corpid) {
TabHaobanWxEnterprise wxEnterprise = this.wxEnterpriseService.getEnterpriseBycorpId(corpid);
if (wxEnterprise == null) {
......
......@@ -72,4 +72,9 @@ public class GroupChatUserServiceImpl implements GroupChatUserService {
public List<TabGroupChatUser> getByMember(String enterpriseId, String memberId) {
return this.groupChatUserMapper.getByMember(enterpriseId,memberId);
}
@Override
public int isAddGroupChat(String enterpriseId, String memberId) {
return this.groupChatUserMapper.isAddGroupChat(enterpriseId,memberId) ;
}
}
\ No newline at end of file
......@@ -692,6 +692,12 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
return count > 0;
}
@Override
public boolean isBothFriendByMemberId(String memberId, String enterpriseId) {
int count = tabHaobanExternalClerkRelatedMapper.countBothByMemberId(memberId, enterpriseId);
return count > 0;
}
/**
* 更新新的外部联系人id
*
......@@ -844,6 +850,18 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
@Override
public int isClerkFriend(String enterpriseId, String clerkId, String memberId) {
TabHaobanExternalClerkRelated tab = this.tabHaobanExternalClerkRelatedMapper.isClerkFriend(enterpriseId,clerkId,memberId) ;
if(null == tab) {
return 0 ;
}
if(tab.getExternalStatus()==3) {
return 3 ;
}
return 1;
}
@Override
public ExternalClerkRelatedDTO getDelFriend(String wxEnterpriseId, String enterpriseId, String staffId) {
TabHaobanExternalClerkRelated tab = this.tabHaobanExternalClerkRelatedMapper.getDelFriend(wxEnterpriseId,enterpriseId,staffId) ;
if(null != tab) {
......
......@@ -337,4 +337,9 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
}
return ServiceResponse.success(null);
}
@Override
public ServiceResponse<Boolean> isAddGroup(String enterpriseId, String memberId) {
return ServiceResponse.success(this.groupChatUserService.isAddGroupChat(enterpriseId,memberId)>0);
}
}
......@@ -709,6 +709,14 @@
and status_flag = 1
</select>
<select id="countBothByMemberId" resultType="int">
select count(*)
from tab_haoban_external_clerk_related
where enterprise_id = #{enterpriseId}
and member_id = #{memberId}
and status_flag = 1 and external_status = 1
</select>
<select id="getIdList" resultType="string">
select external_clerk_related_id from tab_haoban_external_clerk_related
where enterprise_id = #{enterpriseId} and member_id = #{memberId} and status_flag = 1
......@@ -940,6 +948,12 @@
and staff_id =#{staffId} and enterprise_id=#{enterpriseId} limit 1
</select>
<select id="isClerkFriend" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from tab_haoban_external_clerk_related
where enterprise_id = #{enterpriseId} and status_flag = 1
and member_id =#{memberId} and clerk_id=#{clerkId} limit 1
</select>
<update id="updateHalfTime">
update tab_haoban_external_clerk_related set
half_del_time = #{delTime}
......
......@@ -336,6 +336,12 @@
select <include refid="Base_Column_List"/> from tab_haoban_group_chat_user where enterprise_id = #{enterpriseId}
and member_id = #{memberId} and status_flag = 1 and delete_flag = 0 order by create_time desc
</select>
<select id="isAddGroupChat" resultType="int">
select count(*) from tab_haoban_group_chat_user where enterprise_id = #{enterpriseId}
and member_id = #{memberId} and status_flag = 1 and delete_flag = 0
</select>
<select id="listMemberChatHmIdByChatHmIdsAndMemberId"
resultType="com.gic.haoban.manage.service.pojo.bo.chat.GroupChatHmMemberRelationBO">
select chat_hm_id chatHmId, member_id memberId
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment