Commit 50e3e303 by 徐高华

其他链接保存逻辑

parent 9545c8cf
......@@ -5,7 +5,6 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO;
import com.gic.haoban.manage.service.entity.hm.TabHmLink;
/**
......@@ -65,7 +64,4 @@ public interface HmLinkMapper {
public List<TabHmLink> queryPageRelationList(@Param("pageId") Long pageId,
@Param("enterpriseId") String enterpriseId, @Param("searchText") String searchText);
public List<HmLinkChatDTO> getLinkCountForHm(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("chatHmIdList") List<Long> chatHmIdList) ;
}
\ No newline at end of file
......@@ -30,8 +30,17 @@ public class TabHmLinkChat implements Serializable{
private java.util.Date updateTime;
private Integer deleteFlag;
private Long linkId ;
private Integer otherFlag = 0 ;
public Long getLinkId() {
public Integer getOtherFlag() {
return otherFlag;
}
public void setOtherFlag(Integer otherFlag) {
this.otherFlag = otherFlag;
}
public Long getLinkId() {
return linkId;
}
......
......@@ -386,35 +386,14 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
Set<Long> set = new HashSet<>(chatHmIdList);
List<HmLinkChatDTO> linkGroup = this.hmLinkChatService.getLinkCountForHm(wxEnterpriseId,
new ArrayList<>(set));
List<String> otherIdList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(linkGroup)) {
for (HmLinkChatDTO item : linkGroup) {
otherIdList.add(item.getChatHmId() + "_" + item.getLinkId());
}
}
List<HmLinkChatDTO> otherList = this.hmLinkMapper.getLinkCountForHm(wxEnterpriseId, chatHmIdList);
for (HmLinkChatDTO dto : otherList) {
String tmp = dto.getChatHmId() + "_" + dto.getLinkId();
if (!otherIdList.contains(tmp)) {
linkGroup.add(dto);
}
}
Map<Long, List<HmLinkChatDTO>> map = linkGroup.stream()
.collect(Collectors.groupingBy(HmLinkChatDTO::getChatHmId));
Set<Long> allSet = map.keySet();
Iterator<Long> it = allSet.iterator();
while (it.hasNext()) {
Long key = it.next();
int count = 0;
for (HmLinkChatDTO item : map.get(key)) {
count += item.getLinkCount();
}
this.groupChatHmMapper.updateLinkCount(key, count);
}
for(Long id : chatHmIdList) {
if(!allSet.contains(id)) {
List<Long> allList = linkGroup.stream().map(dto -> dto.getLinkChatId()).collect(Collectors.toList());
linkGroup.forEach(dto -> {
Long hmId = dto.getChatHmId();
int count = dto.getLinkCount();
this.groupChatHmMapper.updateLinkCount(hmId, count);
});
for (Long id : chatHmIdList) {
if (!allList.contains(id)) {
this.groupChatHmMapper.updateLinkCount(id, 0);
}
}
......
package com.gic.haoban.manage.service.service.hm.impl;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
......@@ -82,13 +83,32 @@ public class HmLinkChatServiceImpl implements HmLinkChatService {
// 更新其他链接
List<Long> idList = list.stream().map(dto -> dto.getChatHmId()).collect(Collectors.toList());
idList.add(otherHmId);
boolean addOther = false;
if (null != link) {
idList.add(link.getOtherChatHmId());
if (otherHmId.equals(link.getOtherChatHmId())) {
this.hmLinkChatMapper.delete(linkId, Arrays.asList(link.getOtherChatHmId()));
addOther = true;
}
} else {
addOther = true;
}
if (addOther) {
TabHmLinkChat other = new TabHmLinkChat();
other.setOtherFlag(1);
other.setWxEnterpriseId(wxEnterpriseId);
other.setEnterpriseId(enterpriseId);
other.setLinkId(linkId);
other.setLinkChatId(UniqueIdUtils.uniqueLong());
this.hmLinkChatMapper.insert(other);
}
// 统计活码关联的链接数量
for (HmLinkChatDTO old : oldList) {
idList.add(old.getChatHmId());
}
this.groupChatHmService.updateLinkCount(wxEnterpriseId, idList);
return 0;
}
......
......@@ -14,6 +14,7 @@
<result column="update_time" property="updateTime" />
<result column="delete_flag" property="deleteFlag" />
<result column="link_id" property="linkId" />
<result column="other_flag" property="otherFlag"/>
</resultMap>
<sql id="Base_Column_List">
link_chat_id,
......@@ -25,7 +26,7 @@
sort_num,
create_time,
update_time,
delete_flag , link_id
delete_flag , link_id , other_flag
</sql>
<!-- ===================== 新增 ======================== -->
<insert id="insert"
......@@ -41,7 +42,7 @@
sort_num,
create_time,
update_time,
delete_flag , link_id
delete_flag , link_id , other_flag
)VALUES(
#{linkChatId},
#{wxEnterpriseId},
......@@ -53,7 +54,7 @@
now(),
now(),
0 ,
#{linkId}
#{linkId} , #{otherFlag}
)
]]>
</insert>
......@@ -90,17 +91,17 @@
filter_json filterJson ,
chat_hm_id chatHmId,
member_type memberType
from tab_haoban_hm_link_chat where link_id = #{linkId} and wx_enterprise_id = #{wxEnterpriseId} and enterprise_id = #{enterpriseId}
from tab_haoban_hm_link_chat where link_id = #{linkId} and wx_enterprise_id = #{wxEnterpriseId} and enterprise_id = #{enterpriseId} and other_flag = 0
</select>
<select id="getLinkCountForHm" resultType="com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO">
select chat_hm_id chatHmId, link_id linkId , COUNT(*) linkCount from tab_haoban_hm_link_chat where wx_enterprise_id = #{wxEnterpriseId}
select chat_hm_id chatHmId, COUNT(DISTINCT(link_id)) linkCount linkCount from tab_haoban_hm_link_chat where wx_enterprise_id = #{wxEnterpriseId}
and chat_hm_id in
<foreach collection="chatHmIdList" item="item" separator="," index="index" close=")" open="(">
#{item}
</foreach>
and delete_flag = 0 group by chat_hm_id , link_id
and delete_flag = 0 group by chat_hm_id
</select>
......
......@@ -164,14 +164,5 @@
and ( link_code = #{searchText} or name like CONCAT('%', #{searchText},'%'))
</if>
</select>
<select id="getLinkCountForHm" resultType="com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO">
select other_chat_hm_id chatHmId, link_id linkId , 1 linkCount from tab_haoban_hm_link where wx_enterprise_id = #{wxEnterpriseId}
and other_chat_hm_id in
<foreach collection="chatHmIdList" item="item" separator="," index="index" close=")" open="(">
#{item}
</foreach>
</select>
</mapper>
\ No newline at end of file
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