提交 ee422d06 编写于 作者: Y YaoYuHang

社群运营 - 代码优化、新客获取详情问题解决

上级 844e64a4
...@@ -84,7 +84,7 @@ public class WeCommunityPresTagGroupController extends BaseController { ...@@ -84,7 +84,7 @@ public class WeCommunityPresTagGroupController extends BaseController {
if (StringUtils.isNull(taskVo)) { if (StringUtils.isNull(taskVo)) {
return AjaxResult.error(HttpStatus.NOT_FOUND, "群活码不存在"); return AjaxResult.error(HttpStatus.NOT_FOUND, "群活码不存在");
} }
return AjaxResult.success(); return AjaxResult.success(taskVo);
} }
/** /**
......
...@@ -2,6 +2,7 @@ package com.linkwechat.wecom.domain.vo; ...@@ -2,6 +2,7 @@ package com.linkwechat.wecom.domain.vo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -11,6 +12,7 @@ import lombok.NoArgsConstructor; ...@@ -11,6 +12,7 @@ import lombok.NoArgsConstructor;
* @Date 2021/3/26 14:21 * @Date 2021/3/26 14:21
*/ */
@Data @Data
@Builder
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class WeGroupCodeVo { public class WeGroupCodeVo {
......
...@@ -2,6 +2,7 @@ package com.linkwechat.wecom.factory.impl.customer; ...@@ -2,6 +2,7 @@ package com.linkwechat.wecom.factory.impl.customer;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.linkwechat.common.config.CosConfig;
import com.linkwechat.common.constant.WeConstans; import com.linkwechat.common.constant.WeConstans;
import com.linkwechat.common.enums.MediaType; import com.linkwechat.common.enums.MediaType;
import com.linkwechat.common.utils.StringUtils; import com.linkwechat.common.utils.StringUtils;
...@@ -49,6 +50,12 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { ...@@ -49,6 +50,12 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
private IWeTaskFissionService weTaskFissionService; private IWeTaskFissionService weTaskFissionService;
private ThreadLocal<WeFlowerCustomerRel> weFlowerCustomerRelThreadLocal = new ThreadLocal<>(); private ThreadLocal<WeFlowerCustomerRel> weFlowerCustomerRelThreadLocal = new ThreadLocal<>();
@Autowired
private IWeGroupCodeService weGroupCodeService;
@Autowired
private CosConfig cosConfig;
@Override @Override
public void eventHandle(WxCpXmlMessageVO message) { public void eventHandle(WxCpXmlMessageVO message) {
if (message.getExternalUserId() != null) { if (message.getExternalUserId() != null) {
...@@ -61,7 +68,7 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { ...@@ -61,7 +68,7 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
if (message.getState() != null && message.getWelcomeCode() != null) { if (message.getState() != null && message.getWelcomeCode() != null) {
if (isFission(message.getState())) { if (isFission(message.getState())) {
taskFissionRecordHandle(message.getState(), message.getWelcomeCode(), message.getUserId(), message.getExternalUserId()); taskFissionRecordHandle(message.getState(), message.getWelcomeCode(), message.getUserId(), message.getExternalUserId());
}else { } else {
empleCodeHandle(message.getState(), message.getWelcomeCode(), message.getUserId(), message.getExternalUserId()); empleCodeHandle(message.getState(), message.getWelcomeCode(), message.getUserId(), message.getExternalUserId());
} }
} }
...@@ -123,13 +130,15 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { ...@@ -123,13 +130,15 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
log.info("执行发送欢迎语>>>>>>>>>>>>>>>"); log.info("执行发送欢迎语>>>>>>>>>>>>>>>");
WeWelcomeMsg.WeWelcomeMsgBuilder weWelcomeMsgBuilder = WeWelcomeMsg.builder().welcome_code(wecomCode); WeWelcomeMsg.WeWelcomeMsgBuilder weWelcomeMsgBuilder = WeWelcomeMsg.builder().welcome_code(wecomCode);
WeEmpleCodeDto messageMap = weEmpleCodeService.selectWelcomeMsgByState(state); WeEmpleCodeDto messageMap = weEmpleCodeService.selectWelcomeMsgByState(state);
if (messageMap != null) {
if (StringUtils.isNotNull(messageMap)) {
String empleCodeId = messageMap.getEmpleCodeId(); String empleCodeId = messageMap.getEmpleCodeId();
//查询活码对应标签 //查询活码对应标签
List<WeEmpleCodeTag> tagList = weEmpleCodeTagService.list(new LambdaQueryWrapper<WeEmpleCodeTag>() List<WeEmpleCodeTag> tagList = weEmpleCodeTagService.list(new LambdaQueryWrapper<WeEmpleCodeTag>()
.eq(WeEmpleCodeTag::getEmpleCodeId, empleCodeId)); .eq(WeEmpleCodeTag::getEmpleCodeId, empleCodeId));
//查询外部联系人与通讯录关系数据 //查询外部联系人与通讯录关系数据
WeFlowerCustomerRel weFlowerCustomerRel = weFlowerCustomerRelService.getOne(new LambdaQueryWrapper<WeFlowerCustomerRel>() WeFlowerCustomerRel weFlowerCustomerRel = weFlowerCustomerRelService
.getOne(new LambdaQueryWrapper<WeFlowerCustomerRel>()
.eq(WeFlowerCustomerRel::getUserId, userId) .eq(WeFlowerCustomerRel::getUserId, userId)
.eq(WeFlowerCustomerRel::getExternalUserid, externalUserId)); .eq(WeFlowerCustomerRel::getExternalUserid, externalUserId));
//为外部联系人添加员工活码标签 //为外部联系人添加员工活码标签
...@@ -146,22 +155,24 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { ...@@ -146,22 +155,24 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
}); });
weFlowerCustomerTagRelService.saveOrUpdateBatch(weFlowerCustomerTagRels); weFlowerCustomerTagRelService.saveOrUpdateBatch(weFlowerCustomerTagRels);
}); });
// 发送欢迎语
log.debug(">>>>>>>>>欢迎语查询结果:{}", JSONObject.toJSONString(messageMap)); log.debug(">>>>>>>>>欢迎语查询结果:{}", JSONObject.toJSONString(messageMap));
if (messageMap != null) { // 设定欢迎语文字
if (StringUtils.isNotEmpty(messageMap.getWelcomeMsg())) { if (StringUtils.isNotEmpty(messageMap.getWelcomeMsg())) {
weWelcomeMsgBuilder.text(WeWelcomeMsg.Text.builder() weWelcomeMsgBuilder.text(WeWelcomeMsg.Text.builder().content(messageMap.getWelcomeMsg()).build());
.content(messageMap.getWelcomeMsg()).build());
} }
if (StringUtils.isNotEmpty(messageMap.getCategoryId())) { // 设置欢迎语图片
WeMediaDto weMediaDto = weMaterialService // 新客拉群创建的员工活码欢迎语图片(群活码图片)
.uploadTemporaryMaterial(messageMap.getMaterialUrl(), MediaType.IMAGE.getMediaType(),messageMap.getMaterialName()); String codeUrl = weGroupCodeService.selectGroupCodeUrlByEmplCodeState(state);
Optional.ofNullable(weMediaDto).ifPresent(media -> { if (StringUtils.isNotNull(codeUrl)) {
weWelcomeMsgBuilder.image(WeWelcomeMsg.Image.builder().media_id(media.getMedia_id()) buildWelcomeMsgImg(weWelcomeMsgBuilder, codeUrl, codeUrl.replaceAll(cosConfig.getImgUrlPrefix(), ""));
.pic_url(media.getUrl()).build());
});
} }
weCustomerService.sendWelcomeMsg(weWelcomeMsgBuilder.build()); // 普通员工活码欢迎语图片
else if (StringUtils.isNotEmpty(messageMap.getCategoryId())) {
buildWelcomeMsgImg(weWelcomeMsgBuilder, messageMap.getMaterialUrl(), messageMap.getMaterialName());
} }
weCustomerService.sendWelcomeMsg(weWelcomeMsgBuilder.build());
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -170,11 +181,20 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { ...@@ -170,11 +181,20 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
} }
private boolean isFission(String str) { private boolean isFission(String str) {
if (str.indexOf(WeConstans.FISSION_PREFIX) != -1){ return str.contains(WeConstans.FISSION_PREFIX);
return true;
}
return false;
} }
/**
* 构建欢迎语的图片部分
*
* @param builder 欢迎语builder
* @param picUrl 图片链接
* @param fileName 图片名称
*/
private void buildWelcomeMsgImg(WeWelcomeMsg.WeWelcomeMsgBuilder builder, String picUrl, String fileName) {
WeMediaDto weMediaDto = weMaterialService.uploadTemporaryMaterial(picUrl, MediaType.IMAGE.getMediaType(), fileName);
Optional.ofNullable(weMediaDto).ifPresent(media -> {
builder.image(WeWelcomeMsg.Image.builder().media_id(media.getMedia_id()).pic_url(media.getUrl()).build());
});
}
} }
...@@ -101,4 +101,11 @@ public interface WeGroupCodeMapper extends BaseMapper<WeGroupCode> ...@@ -101,4 +101,11 @@ public interface WeGroupCodeMapper extends BaseMapper<WeGroupCode>
* @return 总扫码次数 * @return 总扫码次数
*/ */
int selectScanTimesByGroupCodeId(Long groupCodeId); int selectScanTimesByGroupCodeId(Long groupCodeId);
/**
* 通过员工活码获取群活码,用于新客自动拉群。
* @param state 员工活码state
* @return 群活码URL
*/
String selectGroupCodeUrlByEmplCodeState(String state);
} }
...@@ -94,4 +94,11 @@ public interface IWeGroupCodeService extends IService<WeGroupCode> { ...@@ -94,4 +94,11 @@ public interface IWeGroupCodeService extends IService<WeGroupCode> {
*/ */
WeGroupCode getWeGroupByUuid(String uuid); WeGroupCode getWeGroupByUuid(String uuid);
/**
* 通过员工活码获取群活码,用于新客自动拉群。
* @param state 员工活码state
* @return 群活码URL
*/
String selectGroupCodeUrlByEmplCodeState(String state);
} }
...@@ -53,10 +53,9 @@ public interface IWePresTagGroupTaskService { ...@@ -53,10 +53,9 @@ public interface IWePresTagGroupTaskService {
/** /**
* 更新老客户标签建群任务 * 更新老客户标签建群任务
* * @param taskId 待更新任务id
* @param wePresTagGroupTaskDto 更新数据 * @param wePresTagGroupTaskDto 更新数据
* @return 结果 * @return 更新条数
* @taskId 待更新任务id
*/ */
int updateTask(Long taskId, WePresTagGroupTaskDto wePresTagGroupTaskDto); int updateTask(Long taskId, WePresTagGroupTaskDto wePresTagGroupTaskDto);
......
package com.linkwechat.wecom.service.impl; package com.linkwechat.wecom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.linkwechat.common.utils.StringUtils; import com.linkwechat.common.utils.StringUtils;
import com.linkwechat.wecom.domain.WeGroupCode; import com.linkwechat.wecom.domain.WeGroupCode;
...@@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -58,7 +59,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG ...@@ -58,7 +59,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
taskVo.setKeywordList(taskKeywordList); taskVo.setKeywordList(taskKeywordList);
} }
// 群活码信息 // 群活码信息
taskVo.setGroupCodeInfo(this.getGroupVoByTaskId(taskVo.getGroupCodeId())); setGroupCodeVoByTask(taskVo);
// 通过群活码id查询对应的群 // 通过群活码id查询对应的群
List<String> groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId()); List<String> groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId());
groupNameList.removeIf(Objects::isNull); groupNameList.removeIf(Objects::isNull);
...@@ -83,7 +84,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG ...@@ -83,7 +84,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
taskVo.setKeywordList(keywordList); taskVo.setKeywordList(keywordList);
} }
// 群活码 // 群活码
taskVo.setGroupCodeInfo(this.getGroupVoByTaskId(taskVo.getGroupCodeId())); setGroupCodeVoByTask(taskVo);
// 群聊名称列表 // 群聊名称列表
List<String> groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId()); List<String> groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId());
groupNameList.removeIf(Objects::isNull); groupNameList.removeIf(Objects::isNull);
...@@ -127,9 +128,9 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG ...@@ -127,9 +128,9 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
public int updateTask(WeKeywordGroupTask task, String[] keywords) { public int updateTask(WeKeywordGroupTask task, String[] keywords) {
if (taskMapper.updateById(task) == 1) { if (taskMapper.updateById(task) == 1) {
// 删除原有的关键词 // 删除原有的关键词
QueryWrapper<WeKeywordGroupTaskKeyword> taskKwQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeKeywordGroupTaskKeyword> keywordWrapper = new LambdaQueryWrapper<>();
taskKwQueryWrapper.eq("task_id", task.getTaskId()); keywordWrapper.eq(WeKeywordGroupTaskKeyword::getTaskId, task.getTaskId());
taskKwMapper.delete(taskKwQueryWrapper); taskKwMapper.delete(keywordWrapper);
// 再重新插入新的关键词 // 再重新插入新的关键词
List<WeKeywordGroupTaskKeyword> taskKeywordList = Arrays List<WeKeywordGroupTaskKeyword> taskKeywordList = Arrays
.stream(keywords) .stream(keywords)
...@@ -153,14 +154,17 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG ...@@ -153,14 +154,17 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
@Transactional @Transactional
public int batchRemoveTaskByIds(Long[] ids) { public int batchRemoveTaskByIds(Long[] ids) {
// 移除其所有关键词对象 // 移除其所有关键词对象
QueryWrapper<WeKeywordGroupTaskKeyword> taskKwQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeKeywordGroupTaskKeyword> keywordWrapper = new LambdaQueryWrapper<>();
taskKwQueryWrapper.in("task_id", Arrays.asList(ids)); keywordWrapper.in(WeKeywordGroupTaskKeyword::getTaskId, Arrays.asList(ids));
taskKwMapper.delete(taskKwQueryWrapper); taskKwMapper.delete(keywordWrapper);
QueryWrapper<WeKeywordGroupTask> taskQueryWrapper = new QueryWrapper<>();
taskKwQueryWrapper.in("task_id", Arrays.asList(ids)); LambdaQueryWrapper<WeKeywordGroupTask> taskWrapper = new LambdaQueryWrapper<>();
return taskMapper.delete(taskQueryWrapper); taskWrapper.in(WeKeywordGroupTask::getTaskId, Arrays.asList(ids));
return taskMapper.delete(taskWrapper);
} }
/*
*/
/** /**
* 检测任务名是否唯一 * 检测任务名是否唯一
* *
...@@ -186,7 +190,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG ...@@ -186,7 +190,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
taskVo.setKeywordList(this.getTaskKeywordList(taskVo.getTaskId())); taskVo.setKeywordList(this.getTaskKeywordList(taskVo.getTaskId()));
List<String> groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId()); List<String> groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId());
// 群活码 // 群活码
taskVo.setGroupCodeInfo(this.getGroupVoByTaskId(taskVo.getGroupCodeId())); setGroupCodeVoByTask(taskVo);
// 群名称列表 // 群名称列表
groupNameList.removeIf(StringUtils::isNull); groupNameList.removeIf(StringUtils::isNull);
taskVo.setGroupNameList(groupNameList); taskVo.setGroupNameList(groupNameList);
...@@ -200,23 +204,23 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG ...@@ -200,23 +204,23 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl<WeKeywordG
* @param taskId 任务id * @param taskId 任务id
*/ */
private List<WeKeywordGroupTaskKeyword> getTaskKeywordList(Long taskId) { private List<WeKeywordGroupTaskKeyword> getTaskKeywordList(Long taskId) {
QueryWrapper<WeKeywordGroupTaskKeyword> taskKeywordQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeKeywordGroupTaskKeyword> wrapper = new LambdaQueryWrapper<>();
taskKeywordQueryWrapper.eq("task_id", taskId); wrapper.eq(WeKeywordGroupTaskKeyword::getTaskId, taskId);
return taskKwMapper.selectList(taskKeywordQueryWrapper); return taskKwMapper.selectList(wrapper);
} }
/** /**
* 获取群活码简略信息 * 获取群活码简略信息
* * @param taskVo 关键词任务信息
* @param groupCodeId 群活码id
* @return 群活码简略信息
*/ */
private WeGroupCodeVo getGroupVoByTaskId(Long groupCodeId) { private void setGroupCodeVoByTask(WeKeywordGroupTaskVo taskVo) {
WeGroupCode groupCode = groupCodeMapper.selectWeGroupCodeById(groupCodeId); WeGroupCode groupCode = groupCodeMapper.selectWeGroupCodeById(taskVo.getGroupCodeId());
Optional.ofNullable(groupCode).ifPresent(code -> {
WeGroupCodeVo groupCodeVo = new WeGroupCodeVo(); WeGroupCodeVo groupCodeVo = new WeGroupCodeVo();
groupCodeVo.setId(groupCode.getId()); groupCodeVo.setId(code.getId());
groupCodeVo.setCodeUrl(groupCode.getCodeUrl()); groupCodeVo.setCodeUrl(code.getCodeUrl());
groupCodeVo.setUuid(groupCode.getUuid()); groupCodeVo.setUuid(code.getUuid());
return groupCodeVo; taskVo.setGroupCodeInfo(groupCodeVo);
});
} }
} }
package com.linkwechat.wecom.service.impl; package com.linkwechat.wecom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.linkwechat.common.enums.WeEmpleCodeType; import com.linkwechat.common.enums.WeEmpleCodeType;
import com.linkwechat.common.exception.wecom.WeComException; import com.linkwechat.common.exception.wecom.WeComException;
...@@ -162,7 +162,7 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr ...@@ -162,7 +162,7 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
// 更新员工活码以及其对应的 "联系我" 配置 // 更新员工活码以及其对应的 "联系我" 配置
WeEmpleCode weEmplCode = weEmpleCodeMapper.selectWeEmpleCodeById(communityNewGroup.getEmplCodeId()); WeEmpleCode weEmplCode = weEmpleCodeMapper.selectWeEmpleCodeById(communityNewGroup.getEmplCodeId());
// 更改员工活码的扫码标签、使用员工 // 更改员工活码的扫码标签、使用员工
getScopsAndTags(weEmplCode, communityNewGroupDto); setScopsAndTags(weEmplCode, communityNewGroupDto);
// 更新使用场景、欢迎语、是否验证 // 更新使用场景、欢迎语、是否验证
weEmplCode.setScenario(communityNewGroupDto.getCodeName()); weEmplCode.setScenario(communityNewGroupDto.getCodeName());
weEmplCode.setWelcomeMsg(communityNewGroupDto.getWelcomeMsg()); weEmplCode.setWelcomeMsg(communityNewGroupDto.getWelcomeMsg());
...@@ -210,8 +210,8 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr ...@@ -210,8 +210,8 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
WeEmpleCode weEmpleCode = new WeEmpleCode(); WeEmpleCode weEmpleCode = new WeEmpleCode();
// 获取员工和扫码标签 // 设置员工和扫码标签
getScopsAndTags(weEmpleCode, communityNewGroupDto); setScopsAndTags(weEmpleCode, communityNewGroupDto);
// 固定为多人类型 // 固定为多人类型
weEmpleCode.setCodeType(WeEmpleCodeType.MULTI.getType()); weEmpleCode.setCodeType(WeEmpleCodeType.MULTI.getType());
...@@ -231,10 +231,15 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr ...@@ -231,10 +231,15 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
return weEmpleCode; return weEmpleCode;
} }
private void getScopsAndTags(WeEmpleCode weEmpleCode, WeCommunityNewGroupDto communityNewGroupDto) { /**
* 设置员工活码的标签列表和员工列表
* @param weEmpleCode 员工活码
* @param communityNewGroupDto 新客拉群信息
*/
private void setScopsAndTags(WeEmpleCode weEmpleCode, WeCommunityNewGroupDto communityNewGroupDto) {
// 获取活码员工列表 TODO user_id是对应business_id? // 获取活码员工列表 TODO user_id是对应business_id?
QueryWrapper<WeUser> userQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeUser> userQueryWrapper = new LambdaQueryWrapper<>();
userQueryWrapper.in("user_id", communityNewGroupDto.getEmplList()); userQueryWrapper.in(WeUser::getUserId, communityNewGroupDto.getEmplList());
List<WeUser> weUserList = weUserMapper.selectList(userQueryWrapper); List<WeUser> weUserList = weUserMapper.selectList(userQueryWrapper);
List<WeEmpleCodeUseScop> weEmpleCodeUseScopList = weUserList.stream().map(e -> { List<WeEmpleCodeUseScop> weEmpleCodeUseScopList = weUserList.stream().map(e -> {
WeEmpleCodeUseScop scop = new WeEmpleCodeUseScop(); WeEmpleCodeUseScop scop = new WeEmpleCodeUseScop();
...@@ -248,8 +253,8 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr ...@@ -248,8 +253,8 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
// 获取活码标签 // 获取活码标签
List<String> tagIdList = communityNewGroupDto.getTagList(); List<String> tagIdList = communityNewGroupDto.getTagList();
QueryWrapper<WeTag> tagQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeTag> tagQueryWrapper = new LambdaQueryWrapper<>();
tagQueryWrapper.in("tag_id", tagIdList); tagQueryWrapper.in(WeTag::getTagId, tagIdList);
List<WeTag> weTagList = weTagMapper.selectList(tagQueryWrapper); List<WeTag> weTagList = weTagMapper.selectList(tagQueryWrapper);
List<WeEmpleCodeTag> weEmpleCodeTagList = weTagList.stream().map(e -> { List<WeEmpleCodeTag> weEmpleCodeTagList = weTagList.stream().map(e -> {
WeEmpleCodeTag tag = new WeEmpleCodeTag(); WeEmpleCodeTag tag = new WeEmpleCodeTag();
...@@ -267,21 +272,32 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr ...@@ -267,21 +272,32 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
* @param vo 新客自动拉群 * @param vo 新客自动拉群
*/ */
private void getCompleteEmplCodeInfo(WeCommunityNewGroupVo vo) { private void getCompleteEmplCodeInfo(WeCommunityNewGroupVo vo) {
// 获取群活码信息 // 设置员工活码信息
WeEmpleCode empleCode = weEmpleCodeMapper.selectWeEmpleCodeById(vo.getEmplCodeId());
Optional.ofNullable(empleCode).ifPresent(e -> {
vo.setEmplCodeUrl(e.getQrCode());
vo.setWelcomeMsg(e.getWelcomeMsg());
vo.setSkipVerify(e.getSkipVerify());
});
// 设置群活码信息
WeGroupCode weGroupCode = weGroupCodeMapper.selectWeGroupCodeById(vo.getGroupCodeId()); WeGroupCode weGroupCode = weGroupCodeMapper.selectWeGroupCodeById(vo.getGroupCodeId());
WeGroupCodeVo weGroupCodeVo = new WeGroupCodeVo(); Optional.ofNullable(weGroupCode).ifPresent(e -> {
BeanUtils.copyProperties(weGroupCode, weGroupCodeVo); WeGroupCodeVo groupCodeVo = WeGroupCodeVo
vo.setGroupCodeInfo(weGroupCodeVo); .builder()
.id(e.getId())
.codeUrl(e.getCodeUrl())
.uuid(e.getUuid())
.build();
BeanUtils.copyProperties(e, groupCodeVo);
vo.setGroupCodeInfo(groupCodeVo);
});
// 获取员工列表信息 // 获取员工列表信息
List<WeEmpleCodeUseScop> empleCodeUseScopList = empleCodeUseScopMapper.selectWeEmpleCodeUseScopListById(vo.getEmplCodeId()); List<WeEmpleCodeUseScop> empleCodeUseScopList = empleCodeUseScopMapper.selectWeEmpleCodeUseScopListById(vo.getEmplCodeId());
vo.setEmplList(empleCodeUseScopList); vo.setEmplList(empleCodeUseScopList);
// 获取员工活码信息
WeEmpleCode empleCode = weEmpleCodeMapper.selectWeEmpleCodeById(vo.getEmplCodeId());
vo.setEmplCodeUrl(empleCode.getQrCode());
vo.setWelcomeMsg(empleCode.getWelcomeMsg());
// 获取相关群聊信息 // 获取相关群聊信息
List<WeGroup> groupList = weGroupCodeMapper.selectWeGroupListByGroupCodeId(vo.getGroupCodeId()); List<WeGroup> groupList = weGroupCodeMapper.selectWeGroupListByGroupCodeId(vo.getGroupCodeId());
vo.setGroupList(groupList); vo.setGroupList(groupList);
...@@ -289,7 +305,5 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr ...@@ -289,7 +305,5 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl<WeCommunityNewGr
// 获取标签信息 // 获取标签信息
List<WeEmpleCodeTag> tagList = empleCodeTagMapper.selectWeEmpleCodeTagListById(vo.getEmplCodeId()); List<WeEmpleCodeTag> tagList = empleCodeTagMapper.selectWeEmpleCodeTagListById(vo.getEmplCodeId());
vo.setTagList(tagList); vo.setTagList(tagList);
vo.setSkipVerify(empleCode.getSkipVerify());
} }
} }
...@@ -4,7 +4,6 @@ import java.util.List; ...@@ -4,7 +4,6 @@ import java.util.List;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.linkwechat.common.config.CosConfig;
import com.linkwechat.common.exception.wecom.WeComException; import com.linkwechat.common.exception.wecom.WeComException;
import com.linkwechat.wecom.domain.WeGroupCodeActual; import com.linkwechat.wecom.domain.WeGroupCodeActual;
import com.linkwechat.wecom.mapper.WeCommunityNewGroupMapper; import com.linkwechat.wecom.mapper.WeCommunityNewGroupMapper;
...@@ -151,7 +150,7 @@ public class WeGroupCodeServiceImpl extends ServiceImpl<WeGroupCodeMapper,WeGrou ...@@ -151,7 +150,7 @@ public class WeGroupCodeServiceImpl extends ServiceImpl<WeGroupCodeMapper,WeGrou
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int deleteWeGroupCodeById(Long id) public int deleteWeGroupCodeById(Long id)
{ {
// 需要删除新拉群信息 // 需要删除新拉群信息
communityNewGroupMapper.removeWeCommunityNewGroupByGroupCodeId(id); communityNewGroupMapper.removeWeCommunityNewGroupByGroupCodeId(id);
return weGroupCodeMapper.deleteWeGroupCodeById(id); return weGroupCodeMapper.deleteWeGroupCodeById(id);
} }
...@@ -178,4 +177,14 @@ public class WeGroupCodeServiceImpl extends ServiceImpl<WeGroupCodeMapper,WeGrou ...@@ -178,4 +177,14 @@ public class WeGroupCodeServiceImpl extends ServiceImpl<WeGroupCodeMapper,WeGrou
public WeGroupCode getWeGroupByUuid(String uuid) { public WeGroupCode getWeGroupByUuid(String uuid) {
return weGroupCodeMapper.getWeGroupByUuid(uuid); return weGroupCodeMapper.getWeGroupByUuid(uuid);
} }
/**
* 通过员工活码获取群活码,用于新客自动拉群。
* @param state 员工活码state
* @return 群活码URL
*/
@Override
public String selectGroupCodeUrlByEmplCodeState(String state) {
return weGroupCodeMapper.selectGroupCodeUrlByEmplCodeState(state);
}
} }
package com.linkwechat.wecom.service.impl; package com.linkwechat.wecom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.linkwechat.common.core.domain.entity.WeCorpAccount; import com.linkwechat.common.core.domain.entity.WeCorpAccount;
import com.linkwechat.common.enums.CommunityTaskType; import com.linkwechat.common.enums.CommunityTaskType;
...@@ -139,8 +139,8 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup ...@@ -139,8 +139,8 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
// 再插入新数据 // 再插入新数据
this.saveChatAndMaterialBinds(ruleId, groupIdList, materialIdList); this.saveChatAndMaterialBinds(ruleId, groupIdList, materialIdList);
// 删除旧图片 // 删除旧图片
QueryWrapper<WeGroupSopPic> queryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeGroupSopPic> queryWrapper = new LambdaQueryWrapper<>();
sopPicMapper.delete(queryWrapper.eq("rule_id", ruleId)); sopPicMapper.delete(queryWrapper.eq(WeGroupSopPic::getRuleId, ruleId));
// 保留新上传的图片 // 保留新上传的图片
List<WeGroupSopPic> sopPicList = picUrlList.stream().map(picUrl -> new WeGroupSopPic(ruleId, picUrl)).collect(Collectors.toList()); List<WeGroupSopPic> sopPicList = picUrlList.stream().map(picUrl -> new WeGroupSopPic(ruleId, picUrl)).collect(Collectors.toList());
...@@ -164,16 +164,17 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup ...@@ -164,16 +164,17 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
int affectedRows = groupSopMapper.deleteBatchIds(Arrays.asList(ids)); int affectedRows = groupSopMapper.deleteBatchIds(Arrays.asList(ids));
if (affectedRows > 0) { if (affectedRows > 0) {
// 解除群聊和素材关联 // 解除群聊和素材关联
QueryWrapper<WeGroupSopChat> sopGroupQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeGroupSopChat> groupQueryWrapper = new LambdaQueryWrapper<>();
sopGroupQueryWrapper.in("rule_id", Arrays.asList(ids)); groupQueryWrapper.in(WeGroupSopChat::getRuleId, Arrays.asList(ids));
sopChatMapper.delete(sopGroupQueryWrapper); sopChatMapper.delete(groupQueryWrapper);
QueryWrapper<WeGroupSopMaterial> sopMaterialQueryWrapper = new QueryWrapper<>();
sopMaterialQueryWrapper.in("rule_id", Arrays.asList(ids)); LambdaQueryWrapper<WeGroupSopMaterial> materialQueryWrapper = new LambdaQueryWrapper<>();
sopMaterialMapper.delete(sopMaterialQueryWrapper); materialQueryWrapper.in(WeGroupSopMaterial::getRuleId, Arrays.asList(ids));
sopMaterialMapper.delete(materialQueryWrapper);
// 删除手动上传的图片 // 删除手动上传的图片
QueryWrapper<WeGroupSopPic> picQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeGroupSopPic> picQueryWrapper = new LambdaQueryWrapper<>();
picQueryWrapper.in("rule_id", Arrays.asList(ids)); picQueryWrapper.in(WeGroupSopPic::getRuleId, Arrays.asList(ids));
sopPicMapper.delete(picQueryWrapper); sopPicMapper.delete(picQueryWrapper);
} }
return affectedRows; return affectedRows;
...@@ -216,8 +217,8 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup ...@@ -216,8 +217,8 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
} }
// 设置图片列表 // 设置图片列表
QueryWrapper<WeGroupSopPic> picQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeGroupSopPic> picQueryWrapper = new LambdaQueryWrapper<>();
picQueryWrapper.eq("rule_id", ruleId); picQueryWrapper.eq(WeGroupSopPic::getRuleId, ruleId);
List<WeGroupSopPic> sopPicList = sopPicMapper.selectList(picQueryWrapper); List<WeGroupSopPic> sopPicList = sopPicMapper.selectList(picQueryWrapper);
if (StringUtils.isNotEmpty(sopPicList)) { if (StringUtils.isNotEmpty(sopPicList)) {
List<String> picUrlList = sopPicList.stream().map(WeGroupSopPic::getPicUrl).collect(Collectors.toList()); List<String> picUrlList = sopPicList.stream().map(WeGroupSopPic::getPicUrl).collect(Collectors.toList());
...@@ -255,12 +256,14 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup ...@@ -255,12 +256,14 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
* @param ruleId 规则id * @param ruleId 规则id
*/ */
private void deleteChatAndMaterialBinds(Long ruleId) { private void deleteChatAndMaterialBinds(Long ruleId) {
QueryWrapper<WeGroupSopChat> sopChatQueryWrapper = new QueryWrapper<>(); // 删除群聊绑定
sopChatQueryWrapper.eq("rule_id", ruleId); LambdaQueryWrapper<WeGroupSopChat> chatQueryWrapper = new LambdaQueryWrapper<>();
sopChatMapper.delete(sopChatQueryWrapper); chatQueryWrapper.eq(WeGroupSopChat::getRuleId, ruleId);
QueryWrapper<WeGroupSopMaterial> sopMaterialQueryWrapper = new QueryWrapper<>(); sopChatMapper.delete(chatQueryWrapper);
sopMaterialQueryWrapper.eq("rule_id", ruleId); // 删除素材绑定
sopMaterialMapper.delete(sopMaterialQueryWrapper); LambdaQueryWrapper<WeGroupSopMaterial> materialQueryWrapper = new LambdaQueryWrapper<>();
materialQueryWrapper.eq(WeGroupSopMaterial::getRuleId, ruleId);
sopMaterialMapper.delete(materialQueryWrapper);
} }
/** /**
...@@ -306,11 +309,11 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup ...@@ -306,11 +309,11 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
* @return 群聊信息列表 * @return 群聊信息列表
*/ */
private List<WeGroup> getGroupListByRuleId(Long ruleId) { private List<WeGroup> getGroupListByRuleId(Long ruleId) {
QueryWrapper<WeGroup> groupQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeGroup> groupQueryWrapper = new LambdaQueryWrapper<>();
List<String> chatIdList = groupSopMapper.getChatIdListByRuleId(ruleId); List<String> chatIdList = groupSopMapper.getChatIdListByRuleId(ruleId);
List<WeGroup> groupList = new ArrayList<>(); List<WeGroup> groupList = new ArrayList<>();
if (StringUtils.isNotEmpty(chatIdList)) { if (StringUtils.isNotEmpty(chatIdList)) {
groupQueryWrapper.in("chat_id", chatIdList); groupQueryWrapper.in(WeGroup::getChatId, chatIdList);
groupList = groupMapper.selectList(groupQueryWrapper); groupList = groupMapper.selectList(groupQueryWrapper);
} }
return groupList; return groupList;
...@@ -326,10 +329,13 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup ...@@ -326,10 +329,13 @@ public class WeGroupSopServiceImpl extends ServiceImpl<WeGroupSopMapper, WeGroup
// 构造请求参数 // 构造请求参数
WeMessagePushDto pushDto = new WeMessagePushDto(); WeMessagePushDto pushDto = new WeMessagePushDto();
// 查询群聊列表,获取群主列表 // 查询群聊列表,获取群主列表
QueryWrapper<WeGroup> queryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WeGroup> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in("chat_id", groupIdList); queryWrapper.in(WeGroup::getChatId, groupIdList);
List<WeGroup> groupList = groupMapper.selectList(queryWrapper); List<WeGroup> groupList = groupMapper.selectList(queryWrapper);
String toUser = groupList.stream().map(WeGroup::getOwner).collect(Collectors.joining("|")); String toUser = groupList
.stream()
.map(WeGroup::getOwner)
.collect(Collectors.joining("|"));
pushDto.setTouser(toUser); pushDto.setTouser(toUser);
// 获取agentId // 获取agentId
......
...@@ -2,8 +2,8 @@ package com.linkwechat.wecom.service.impl; ...@@ -2,8 +2,8 @@ package com.linkwechat.wecom.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.linkwechat.common.core.domain.entity.WeCorpAccount; import com.linkwechat.common.core.domain.entity.WeCorpAccount;
import com.linkwechat.common.enums.ChatType; import com.linkwechat.common.enums.ChatType;
...@@ -159,30 +159,29 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas ...@@ -159,30 +159,29 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas
List<Long> ids = Arrays.asList(idList); List<Long> ids = Arrays.asList(idList);
// 解除关联的标签 // 解除关联的标签
QueryWrapper<WePresTagGroupTaskTag> taskTagQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WePresTagGroupTaskTag> tagQueryWrapper = new LambdaQueryWrapper<>();
taskTagQueryWrapper.in("task_id", ids); tagQueryWrapper.in(WePresTagGroupTaskTag::getTaskId, ids);
taskTagMapper.delete(taskTagQueryWrapper); taskTagMapper.delete(tagQueryWrapper);
// 解除关联的员工 // 解除关联的员工
QueryWrapper<WePresTagGroupTaskScope> taskScopeQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WePresTagGroupTaskScope> scopeQueryWrapper = new LambdaQueryWrapper<>();
taskScopeQueryWrapper.in("task_id", ids); scopeQueryWrapper.in(WePresTagGroupTaskScope::getTaskId, ids);
taskScopeMapper.delete(taskScopeQueryWrapper); taskScopeMapper.delete(scopeQueryWrapper);
// 删除其用户统计 // 删除其用户统计
QueryWrapper<WePresTagGroupTaskStat> statQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WePresTagGroupTaskStat> statQueryWrapper = new LambdaQueryWrapper<>();
statQueryWrapper.in("task_id", ids); statQueryWrapper.in(WePresTagGroupTaskStat::getTaskId, ids);
taskStatMapper.delete(statQueryWrapper); taskStatMapper.delete(statQueryWrapper);
// 删除task // 最后删除task
QueryWrapper<WePresTagGroupTask> taskQueryWrapper = new QueryWrapper<>(); LambdaQueryWrapper<WePresTagGroupTask> taskQueryWrapper = new LambdaQueryWrapper<>();
taskQueryWrapper.in("task_id", ids); taskQueryWrapper.in(WePresTagGroupTask::getTaskId, ids);
return taskMapper.delete(taskQueryWrapper); return taskMapper.delete(taskQueryWrapper);
} }
/** /**
* 更新老客户标签建群任务 * 更新老客户标签建群任务
* * @param taskId 待更新任务id
* @param wePresTagGroupTaskDto 更新数据 * @param wePresTagGroupTaskDto 更新数据
* @return 结果 * @return 更新条数
* @taskId 待更新任务id
*/ */
@Override @Override
@Transactional(rollbackFor = RuntimeException.class) @Transactional(rollbackFor = RuntimeException.class)
...@@ -192,22 +191,25 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas ...@@ -192,22 +191,25 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas
wePresTagGroupTask.setTaskId(taskId); wePresTagGroupTask.setTaskId(taskId);
wePresTagGroupTask.setUpdateBy(SecurityUtils.getUsername()); wePresTagGroupTask.setUpdateBy(SecurityUtils.getUsername());
if (taskMapper.updateTask(wePresTagGroupTask) > 0) { if (taskMapper.updateTask(wePresTagGroupTask) > 0) {
// 更新标签
// 先删除旧标签 // 更新标签 - 先删除旧标签
QueryWrapper<WePresTagGroupTaskTag> taskTagQueryWrapper = new QueryWrapper<>(); LambdaUpdateWrapper<WePresTagGroupTaskTag> taskTagQueryWrapper = new LambdaUpdateWrapper<>();
taskTagQueryWrapper.eq("task_id", taskId); taskTagQueryWrapper.eq(WePresTagGroupTaskTag::getTaskId, taskId);
taskTagMapper.delete(taskTagQueryWrapper); taskTagMapper.delete(taskTagQueryWrapper);
// 再添加新标签 // 更新标签 - 再添加新标签
List<String> tagIdList = wePresTagGroupTaskDto.getTagList(); List<String> tagIdList = wePresTagGroupTaskDto.getTagList();
if (CollectionUtil.isNotEmpty(tagIdList)) { if (CollectionUtil.isNotEmpty(tagIdList)) {
List<WePresTagGroupTaskTag> wePresTagGroupTaskTagList = tagIdList.stream().map(id -> new WePresTagGroupTaskTag(taskId, id)).collect(Collectors.toList()); List<WePresTagGroupTaskTag> wePresTagGroupTaskTagList = tagIdList
.stream()
.map(id -> new WePresTagGroupTaskTag(taskId, id))
.collect(Collectors.toList());
taskTagMapper.batchBindsTaskTags(wePresTagGroupTaskTagList); taskTagMapper.batchBindsTaskTags(wePresTagGroupTaskTagList);
} }
// 先解除旧的员工绑定信息 // 先解除旧的员工绑定信息
QueryWrapper<WePresTagGroupTaskScope> taskScopeQueryWrapper = new QueryWrapper<>(); LambdaUpdateWrapper<WePresTagGroupTaskScope> scopeQueryWrapper = new LambdaUpdateWrapper<>();
taskScopeQueryWrapper.eq("task_id", taskId); scopeQueryWrapper.eq(WePresTagGroupTaskScope::getTaskId, taskId);
taskScopeMapper.delete(taskScopeQueryWrapper); taskScopeMapper.delete(scopeQueryWrapper);
// 再重新绑定员工信息 // 再重新绑定员工信息
List<String> userIdList = wePresTagGroupTaskDto.getScopeList(); List<String> userIdList = wePresTagGroupTaskDto.getScopeList();
...@@ -380,7 +382,7 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas ...@@ -380,7 +382,7 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas
text.setContent(task.getWelcomeMsg()); text.setContent(task.getWelcomeMsg());
queryData.setText(text); queryData.setText(text);
// 群活码图片(上传临时文件获取media_id) TODO 过期问题? // 群活码图片(上传临时文件获取media_id)
ImageMessageDto image = new ImageMessageDto(); ImageMessageDto image = new ImageMessageDto();
WeGroupCode groupCode = groupCodeMapper.selectWeGroupCodeById(task.getGroupCodeId()); WeGroupCode groupCode = groupCodeMapper.selectWeGroupCodeById(task.getGroupCodeId());
WeMediaDto mediaDto = materialService.uploadTemporaryMaterial(groupCode.getCodeUrl(), MediaType.IMAGE.getMediaType(), "临时文件"); WeMediaDto mediaDto = materialService.uploadTemporaryMaterial(groupCode.getCodeUrl(), MediaType.IMAGE.getMediaType(), "临时文件");
...@@ -397,9 +399,9 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas ...@@ -397,9 +399,9 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl<WePresTagGroupTas
SendMessageResultDto resultDto = customerMessagePushClient.sendCustomerMessageToUser(queryData); SendMessageResultDto resultDto = customerMessagePushClient.sendCustomerMessageToUser(queryData);
// 设定该任务的msgid // 设定该任务的msgid
UpdateWrapper<WePresTagGroupTask> updateWrapper = new UpdateWrapper<>(); LambdaUpdateWrapper<WePresTagGroupTask> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq("task_id", task.getTaskId()); updateWrapper.eq(WePresTagGroupTask::getTaskId, task.getTaskId());
updateWrapper.set("msgid", resultDto.getMsgid()); updateWrapper.set(WePresTagGroupTask::getMsgid, resultDto.getMsgid());
this.update(updateWrapper); this.update(updateWrapper);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -51,7 +51,6 @@ ...@@ -51,7 +51,6 @@
IFNULL((SELECT count(1) FROM we_group_code_actual WHERE group_code_id = w.id AND TIMESTAMPDIFF(DAY, sysdate(), effect_time ) &lt; 3), 0) AS about_to_expire_codes IFNULL((SELECT count(1) FROM we_group_code_actual WHERE group_code_id = w.id AND TIMESTAMPDIFF(DAY, sysdate(), effect_time ) &lt; 3), 0) AS about_to_expire_codes
FROM FROM
we_group_code w we_group_code w
</sql> </sql>
<select id="selectWeGroupCodeList" parameterType="WeGroupCode" resultMap="WeGroupCodeResult"> <select id="selectWeGroupCodeList" parameterType="WeGroupCode" resultMap="WeGroupCodeResult">
...@@ -116,6 +115,20 @@ ...@@ -116,6 +115,20 @@
wgc.id = #{groupCodeId} wgc.id = #{groupCodeId}
</select> </select>
<select id="selectGroupCodeUrlByEmplCodeState" parameterType="String" resultType="String">
SELECT DISTINCT
wgc.code_url
FROM
we_group_code wgc
LEFT JOIN we_community_new_group wcn ON wgc.id = wcn.group_code_id
LEFT JOIN we_emple_code wec ON wec.id = wcn.empl_code_id
WHERE
wgc.del_flag = 0
AND wcn.del_flag = 0
AND wec.del_flag = 0
AND wec.state = #{state}
</select>
<select id="checkActivityNameUnique" parameterType="String" resultType="int"> <select id="checkActivityNameUnique" parameterType="String" resultType="int">
select count(1) from we_group_code where activity_name = #{activityName} limit 1 select count(1) from we_group_code where activity_name = #{activityName} limit 1
</select> </select>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册