Commit 4b818034 by 徐高华

更新活码链接数

parent b5f83612
package com.gic.haoban.manage.service.service.chat;
import java.util.List;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
......@@ -37,5 +39,7 @@ public interface GroupChatHmService {
public void discard(Long chatHmId, String wxEnterpriseId, String clerkId, String clerkName);
public void updateLinkCount(String wxEnterpriseId, Long chatHmId);
public void updateLinkCount(String wxEnterpriseId , List<Long> chatHmIdList );
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
......@@ -94,7 +95,7 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
if (null == link) {
return new Page<>();
}
chatHmIdList.add(link.getOtherChatHmId()) ;
chatHmIdList.add(link.getOtherChatHmId());
qdto.setChatHmIdList(chatHmIdList);
}
PageHelper.startPage(basePageInfo);
......@@ -271,7 +272,7 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
SecretTypeEnum.CUSTOMIZED_APP.getVal());
if (null == secretSetting) {
logger.info("没有配置代开应用");
return ServiceResponse.failure("9999","没有配置代开应用");
return ServiceResponse.failure("9999", "没有配置代开应用");
}
boolean updateFlag = false;
Long hmid = dto.getChatHmId();
......@@ -304,7 +305,7 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
ServiceResponse<Void> updateResp = this.qywxChatApiService.updateJoinWay(qwDTO.getDkCorpid(),
secretSetting.getSecretVal(), joinDTO);
if (!updateResp.isSuccess()) {
return ServiceResponse.failure("9999",updateResp.getMessage());
return ServiceResponse.failure("9999", updateResp.getMessage());
}
this.groupChatHmMapper.updateById(hm);
List<TabGroupChatHmRelation> oldList = this.groupChatHmRelationMapper.listByChatHmId(hmid);
......@@ -341,14 +342,14 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
secretSetting.getSecretVal(), joinDTO);
logger.info("addResp={}", JSON.toJSONString(addResp));
if (!addResp.isSuccess()) {
return ServiceResponse.failure("9999",addResp.getMessage());
return ServiceResponse.failure("9999", addResp.getMessage());
}
String configId = addResp.getResult();
ServiceResponse<AddJoinWayDTO> getResp = this.qywxChatApiService.getJoinWay(qwDTO.getDkCorpid(),
secretSetting.getSecretVal(), configId);
logger.info("getResp={}", JSON.toJSONString(getResp));
if (!getResp.isSuccess()) {
return ServiceResponse.failure("9999",getResp.getMessage());
return ServiceResponse.failure("9999", getResp.getMessage());
}
String qrCode = getResp.getResult().getQr_code();
hm.setWxConfigId(configId);
......@@ -379,15 +380,24 @@ public class GroupChatHmServiceImpl implements GroupChatHmService {
}
@Override
public void updateLinkCount(String wxEnterpriseId, Long chatHmId) {
List<HmLinkChatDTO> linkCount = this.hmLinkChatService.getLinkCountForHm(wxEnterpriseId,
Arrays.asList(chatHmId));
if (CollectionUtils.isNotEmpty(linkCount)) {
Integer count = linkCount.get(0).getLinkCount();
if (null != count && count != 0) {
this.groupChatHmMapper.updateLinkCount(chatHmId, count);
}
public void updateLinkCount(String wxEnterpriseId, List<Long> chatHmIdList) {
if (CollectionUtils.isNotEmpty(chatHmIdList)) {
Set<Long> set = new HashSet<>(chatHmIdList);
List<HmLinkChatDTO> linkCount = this.hmLinkChatService.getLinkCountForHm(wxEnterpriseId,
new ArrayList<>(set));
linkCount.forEach(dto -> {
Integer count = dto.getLinkCount();
if (null == count) {
count = 0;
}
this.groupChatHmMapper.updateLinkCount(dto.getChatHmId(), count);
});
}
}
@Override
public void updateLinkCount(String wxEnterpriseId, Long chatHmId) {
this.updateLinkCount(wxEnterpriseId, Arrays.asList(chatHmId));
}
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkChatQDTO;
import com.gic.haoban.manage.service.entity.hm.TabHmLink;
/**
*
......@@ -20,7 +21,7 @@ public interface HmLinkChatService {
public List<HmLinkChatDTO> listByLinkId(String wxEnterpriseId, String enterpriseId, Long linkId);
public int save(Long linkId, List<HmLinkChatDTO> list);
public int save(Long linkId, List<HmLinkChatDTO> list , Long otherHmId , TabHmLink link);
public Page<HmLinkChatDTO> listPage(HmLinkChatQDTO qdto, BasePageInfo basePageInfo);
......
package com.gic.haoban.manage.service.service.hm.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
......@@ -20,6 +18,7 @@ import com.gic.enterprise.api.service.ScreeningDetailService;
import com.gic.haoban.manage.api.dto.hm.HmLinkChatDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkChatQDTO;
import com.gic.haoban.manage.service.dao.mapper.hm.HmLinkChatMapper;
import com.gic.haoban.manage.service.entity.hm.TabHmLink;
import com.gic.haoban.manage.service.entity.hm.TabHmLinkChat;
import com.gic.haoban.manage.service.service.chat.GroupChatHmService;
import com.gic.haoban.manage.service.service.hm.HmLinkChatService;
......@@ -38,15 +37,15 @@ public class HmLinkChatServiceImpl implements HmLinkChatService {
@Override
public List<HmLinkChatDTO> listByLinkId(String wxEnterpriseId, String enterpriseId, Long linkId) {
List<HmLinkChatDTO> list = this.hmLinkChatMapper.listByLinkId(wxEnterpriseId, enterpriseId, linkId) ;
list.forEach(dto->{
dto.setEsId(HmLinkChatService.ES_ID+dto.getLinkChatId());
List<HmLinkChatDTO> list = this.hmLinkChatMapper.listByLinkId(wxEnterpriseId, enterpriseId, linkId);
list.forEach(dto -> {
dto.setEsId(HmLinkChatService.ES_ID + dto.getLinkChatId());
});
return list ;
return list;
}
@Override
public int save(Long linkId, List<HmLinkChatDTO> list) {
public int save(Long linkId, List<HmLinkChatDTO> list, Long otherHmId, TabHmLink link) {
log.info("保存群链接={}", JSON.toJSONString(list));
List<HmLinkChatDTO> updateList = list.stream().filter(dto -> null != dto.getLinkChatId())
.collect(Collectors.toList());
......@@ -75,11 +74,21 @@ public class HmLinkChatServiceImpl implements HmLinkChatService {
}
}
}
Set<Long> set = list.stream().map(dto -> dto.getChatHmId()).collect(Collectors.toSet());
List<Long> idList = new ArrayList<>(set);
for (Long id : idList) {
this.groupChatHmService.updateLinkCount(list.get(0).getWxEnterpriseId(), id);
// 更新其他链接
List<Long> idList = list.stream().map(dto -> dto.getChatHmId()).collect(Collectors.toList());
idList.add(otherHmId);
if (null != link) {
idList.add(link.getOtherChatHmId());
}
// 统计活码关联的链接数量
String wxEnterpriseId = list.get(0).getWxEnterpriseId();
String enterpriseId = list.get(0).getEnterpriseId();
List<HmLinkChatDTO> oldList = this.hmLinkChatMapper.listByLinkId(wxEnterpriseId, enterpriseId, linkId);
for (HmLinkChatDTO old : oldList) {
idList.add(old.getChatHmId());
}
this.groupChatHmService.updateLinkCount(wxEnterpriseId, idList);
return 0;
}
......
......@@ -50,9 +50,9 @@ public class HmLinkServiceImpl implements HmLinkService {
@Autowired
private WelcomeRelationService welcomeRelationService;
@Autowired
private HmLinkChatService hmLinkChatService ;
private HmLinkChatService hmLinkChatService;
@Autowired
private GroupChatHmService groupChatHmService ;
private GroupChatHmService groupChatHmService;
@Override
public HmLinkBO getByLinkId(String wxEnterpriseId, String enterprieId, Long linkId) {
......@@ -99,17 +99,19 @@ public class HmLinkServiceImpl implements HmLinkService {
}
return link;
}
private void delCache(Long linkId , String shortCode) {
private void delCache(Long linkId, String shortCode) {
String key1 = "hm:link:" + shortCode;
RedisUtil.delCache(key1) ;
RedisUtil.delCache(key1);
String key2 = "hm:link:" + linkId;
RedisUtil.delCache(key2) ;
RedisUtil.delCache(key2);
}
@Override
public List<HmLinkBO> listForSms(String wxEnterpriseId, String enterpriseId, String linkName, Integer linkType,List<String> creatorIdList) {
List<TabHmLink> list = this.linkMapper.listForSms(wxEnterpriseId, enterpriseId, linkName, linkType,creatorIdList);
public List<HmLinkBO> listForSms(String wxEnterpriseId, String enterpriseId, String linkName, Integer linkType,
List<String> creatorIdList) {
List<TabHmLink> list = this.linkMapper.listForSms(wxEnterpriseId, enterpriseId, linkName, linkType,
creatorIdList);
return EntityUtil.changeEntityListByJSON(HmLinkBO.class, list);
}
......@@ -119,10 +121,11 @@ public class HmLinkServiceImpl implements HmLinkService {
// 新增
Long linkId = dto.getLinkId();
String oldWelcomeId = null;
TabHmLink oldLink = null;
if (null == linkId) {
linkId = UniqueIdUtils.uniqueLong();
StringBuilder sb = new StringBuilder("LJ") ;
if(dto.getLinkType()<HmLinkTypeEnum.CHAT_HM_LINK_TYPE.getLinkType()) {
StringBuilder sb = new StringBuilder("LJ");
if (dto.getLinkType() < HmLinkTypeEnum.CHAT_HM_LINK_TYPE.getLinkType()) {
sb.append("0");
}
sb.append(dto.getLinkType()).append(linkId);
......@@ -134,14 +137,15 @@ public class HmLinkServiceImpl implements HmLinkService {
TabHmLink entity = EntityUtil.changeEntityByJSON(TabHmLink.class, dto);
this.linkMapper.insert(entity);
} else {
TabHmLink oldLink = this.linkMapper.selectById(linkId);
oldLink = this.linkMapper.selectById(linkId);
this.delCache(oldLink.getLinkId(), oldLink.getShortCode());
oldWelcomeId = oldLink.getWelcomeId();
TabHmLink entity = EntityUtil.changeEntityByJSON(TabHmLink.class, dto);
this.linkMapper.update(entity);
}
// 单人活码
if(dto.getLinkType()==HmLinkTypeEnum.HM_LINK_TYPE_1.getLinkType() || dto.getLinkType()==HmLinkTypeEnum.HM_LINK_TYPE_2.getLinkType()) {
if (dto.getLinkType() == HmLinkTypeEnum.HM_LINK_TYPE_1.getLinkType()
|| dto.getLinkType() == HmLinkTypeEnum.HM_LINK_TYPE_2.getLinkType()) {
if (CollectionUtils.isNotEmpty(storeList)) {
storeList.forEach(item -> {
item.setWxEnterpriseId(dto.getWxEnterpriseId());
......@@ -153,15 +157,14 @@ public class HmLinkServiceImpl implements HmLinkService {
this.hmLinkStoreService.saveStore(linkId, storeList);
}
// 群活码
if(dto.getLinkType()==HmLinkTypeEnum.CHAT_HM_LINK_TYPE.getLinkType()) {
int index = 0 ;
for(HmLinkChatDTO item : dto.getLinkChatList()) {
if (dto.getLinkType() == HmLinkTypeEnum.CHAT_HM_LINK_TYPE.getLinkType()) {
int index = 0;
for (HmLinkChatDTO item : dto.getLinkChatList()) {
item.setWxEnterpriseId(dto.getWxEnterpriseId());
item.setEnterpriseId(dto.getEnterpriseId());
item.setSortNum(index++);
}
this.hmLinkChatService.save(linkId, dto.getLinkChatList()) ;
this.groupChatHmService.updateLinkCount(dto.getWxEnterpriseId(), dto.getOtherChatHmId());
this.hmLinkChatService.save(linkId, dto.getLinkChatList() , dto.getOtherChatHmId() , oldLink);
}
return dto.getLinkCode();
}
......
......@@ -96,7 +96,7 @@ public class GroupChatHmController {
dto.setEnterpriseId(loginUser.getEnterpriseId());
ServiceResponse<GroupChatHmDTO> resp = this.groupChatHmApiService.save(dto);
if (resp.isSuccess()) {
String logContent = "新增群活码【" + dto.getChatHmCode() + "-" + dto.getName() + "】";
String logContent = "新增群活码【" + resp.getResult().getChatHmCode() + "-" + dto.getName() + "】";
GicLogRecordEvaluationContext.putAttribute("logValue", logContent);
GicLogRecordEvaluationContext.putOptTargetId(AuthWebRequestUtil.getLoginUser().getClerkId());
return RestResponse.successResult();
......
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