From ee422d0686b7538d730722f00d69508c42f98699 Mon Sep 17 00:00:00 2001 From: YaoYuHang Date: Mon, 26 Apr 2021 16:47:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A4=BE=E7=BE=A4=E8=BF=90=E8=90=A5=20-=20?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96=E3=80=81=E6=96=B0=E5=AE=A2?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=AF=A6=E6=83=85=E9=97=AE=E9=A2=98=E8=A7=A3?= =?UTF-8?q?=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WeCommunityPresTagGroupController.java | 2 +- .../wecom/domain/vo/WeGroupCodeVo.java | 2 + .../WeCallBackAddExternalContactImpl.java | 68 ++++++++++++------- .../wecom/mapper/WeGroupCodeMapper.java | 7 ++ .../wecom/service/IWeGroupCodeService.java | 7 ++ .../service/IWePresTagGroupTaskService.java | 5 +- .../WeCommunityKeywordToGroupServiceImpl.java | 56 ++++++++------- .../impl/WeCommunityNewGroupServiceImpl.java | 54 +++++++++------ .../service/impl/WeGroupCodeServiceImpl.java | 13 +++- .../service/impl/WeGroupSopServiceImpl.java | 54 ++++++++------- .../impl/WePresTagGroupTaskServiceImpl.java | 60 ++++++++-------- .../mapper/wecom/WeGroupCodeMapper.xml | 15 +++- 12 files changed, 213 insertions(+), 130 deletions(-) diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityPresTagGroupController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityPresTagGroupController.java index 6ab2df6c..cda94d9e 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityPresTagGroupController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityPresTagGroupController.java @@ -84,7 +84,7 @@ public class WeCommunityPresTagGroupController extends BaseController { if (StringUtils.isNull(taskVo)) { return AjaxResult.error(HttpStatus.NOT_FOUND, "群活码不存在"); } - return AjaxResult.success(); + return AjaxResult.success(taskVo); } /** diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupCodeVo.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupCodeVo.java index 91740e0b..51a7371f 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupCodeVo.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupCodeVo.java @@ -2,6 +2,7 @@ package com.linkwechat.wecom.domain.vo; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @@ -11,6 +12,7 @@ import lombok.NoArgsConstructor; * @Date 2021/3/26 14:21 */ @Data +@Builder @NoArgsConstructor @AllArgsConstructor public class WeGroupCodeVo { diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddExternalContactImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddExternalContactImpl.java index cacf32f8..a30154a2 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddExternalContactImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddExternalContactImpl.java @@ -2,6 +2,7 @@ package com.linkwechat.wecom.factory.impl.customer; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.linkwechat.common.config.CosConfig; import com.linkwechat.common.constant.WeConstans; import com.linkwechat.common.enums.MediaType; import com.linkwechat.common.utils.StringUtils; @@ -49,6 +50,12 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { private IWeTaskFissionService weTaskFissionService; private ThreadLocal weFlowerCustomerRelThreadLocal = new ThreadLocal<>(); + @Autowired + private IWeGroupCodeService weGroupCodeService; + + @Autowired + private CosConfig cosConfig; + @Override public void eventHandle(WxCpXmlMessageVO message) { if (message.getExternalUserId() != null) { @@ -61,7 +68,7 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { if (message.getState() != null && message.getWelcomeCode() != null) { if (isFission(message.getState())) { taskFissionRecordHandle(message.getState(), message.getWelcomeCode(), message.getUserId(), message.getExternalUserId()); - }else { + } else { empleCodeHandle(message.getState(), message.getWelcomeCode(), message.getUserId(), message.getExternalUserId()); } } @@ -123,15 +130,17 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { log.info("执行发送欢迎语>>>>>>>>>>>>>>>"); WeWelcomeMsg.WeWelcomeMsgBuilder weWelcomeMsgBuilder = WeWelcomeMsg.builder().welcome_code(wecomCode); WeEmpleCodeDto messageMap = weEmpleCodeService.selectWelcomeMsgByState(state); - if (messageMap != null) { + + if (StringUtils.isNotNull(messageMap)) { String empleCodeId = messageMap.getEmpleCodeId(); //查询活码对应标签 List tagList = weEmpleCodeTagService.list(new LambdaQueryWrapper() .eq(WeEmpleCodeTag::getEmpleCodeId, empleCodeId)); //查询外部联系人与通讯录关系数据 - WeFlowerCustomerRel weFlowerCustomerRel = weFlowerCustomerRelService.getOne(new LambdaQueryWrapper() - .eq(WeFlowerCustomerRel::getUserId, userId) - .eq(WeFlowerCustomerRel::getExternalUserid, externalUserId)); + WeFlowerCustomerRel weFlowerCustomerRel = weFlowerCustomerRelService + .getOne(new LambdaQueryWrapper() + .eq(WeFlowerCustomerRel::getUserId, userId) + .eq(WeFlowerCustomerRel::getExternalUserid, externalUserId)); //为外部联系人添加员工活码标签 List weFlowerCustomerTagRels = new ArrayList<>(); Optional.ofNullable(weFlowerCustomerRel).ifPresent(weFlowerCustomerRel1 -> { @@ -146,22 +155,24 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { }); weFlowerCustomerTagRelService.saveOrUpdateBatch(weFlowerCustomerTagRels); }); + + // 发送欢迎语 log.debug(">>>>>>>>>欢迎语查询结果:{}", JSONObject.toJSONString(messageMap)); - if (messageMap != null) { - if (StringUtils.isNotEmpty(messageMap.getWelcomeMsg())) { - weWelcomeMsgBuilder.text(WeWelcomeMsg.Text.builder() - .content(messageMap.getWelcomeMsg()).build()); - } - if (StringUtils.isNotEmpty(messageMap.getCategoryId())) { - WeMediaDto weMediaDto = weMaterialService - .uploadTemporaryMaterial(messageMap.getMaterialUrl(), MediaType.IMAGE.getMediaType(),messageMap.getMaterialName()); - Optional.ofNullable(weMediaDto).ifPresent(media -> { - weWelcomeMsgBuilder.image(WeWelcomeMsg.Image.builder().media_id(media.getMedia_id()) - .pic_url(media.getUrl()).build()); - }); - } - weCustomerService.sendWelcomeMsg(weWelcomeMsgBuilder.build()); + // 设定欢迎语文字 + if (StringUtils.isNotEmpty(messageMap.getWelcomeMsg())) { + weWelcomeMsgBuilder.text(WeWelcomeMsg.Text.builder().content(messageMap.getWelcomeMsg()).build()); + } + // 设置欢迎语图片 + // 新客拉群创建的员工活码欢迎语图片(群活码图片) + String codeUrl = weGroupCodeService.selectGroupCodeUrlByEmplCodeState(state); + if (StringUtils.isNotNull(codeUrl)) { + buildWelcomeMsgImg(weWelcomeMsgBuilder, codeUrl, codeUrl.replaceAll(cosConfig.getImgUrlPrefix(), "")); + } + // 普通员工活码欢迎语图片 + else if (StringUtils.isNotEmpty(messageMap.getCategoryId())) { + buildWelcomeMsgImg(weWelcomeMsgBuilder, messageMap.getMaterialUrl(), messageMap.getMaterialName()); } + weCustomerService.sendWelcomeMsg(weWelcomeMsgBuilder.build()); } } catch (Exception e) { e.printStackTrace(); @@ -170,11 +181,20 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { } private boolean isFission(String str) { - if (str.indexOf(WeConstans.FISSION_PREFIX) != -1){ - return true; - } - return false; + return str.contains(WeConstans.FISSION_PREFIX); } - + /** + * 构建欢迎语的图片部分 + * + * @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()); + }); + } } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java index 864d34ed..d218d959 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java @@ -101,4 +101,11 @@ public interface WeGroupCodeMapper extends BaseMapper * @return 总扫码次数 */ int selectScanTimesByGroupCodeId(Long groupCodeId); + + /** + * 通过员工活码获取群活码,用于新客自动拉群。 + * @param state 员工活码state + * @return 群活码URL + */ + String selectGroupCodeUrlByEmplCodeState(String state); } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeService.java index 439bbbda..e0b4cf3a 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeService.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeService.java @@ -94,4 +94,11 @@ public interface IWeGroupCodeService extends IService { */ WeGroupCode getWeGroupByUuid(String uuid); + /** + * 通过员工活码获取群活码,用于新客自动拉群。 + * @param state 员工活码state + * @return 群活码URL + */ + String selectGroupCodeUrlByEmplCodeState(String state); + } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWePresTagGroupTaskService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWePresTagGroupTaskService.java index 44b814a5..ec211e43 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWePresTagGroupTaskService.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWePresTagGroupTaskService.java @@ -53,10 +53,9 @@ public interface IWePresTagGroupTaskService { /** * 更新老客户标签建群任务 - * + * @param taskId 待更新任务id * @param wePresTagGroupTaskDto 更新数据 - * @return 结果 - * @taskId 待更新任务id + * @return 更新条数 */ int updateTask(Long taskId, WePresTagGroupTaskDto wePresTagGroupTaskDto); diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityKeywordToGroupServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityKeywordToGroupServiceImpl.java index 3f51bf1b..624fced9 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityKeywordToGroupServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityKeywordToGroupServiceImpl.java @@ -1,6 +1,6 @@ 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.linkwechat.common.utils.StringUtils; import com.linkwechat.wecom.domain.WeGroupCode; @@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.stream.Collectors; /** @@ -58,7 +59,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId()); groupNameList.removeIf(Objects::isNull); @@ -83,7 +84,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId()); groupNameList.removeIf(Objects::isNull); @@ -127,9 +128,9 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl taskKwQueryWrapper = new QueryWrapper<>(); - taskKwQueryWrapper.eq("task_id", task.getTaskId()); - taskKwMapper.delete(taskKwQueryWrapper); + LambdaQueryWrapper keywordWrapper = new LambdaQueryWrapper<>(); + keywordWrapper.eq(WeKeywordGroupTaskKeyword::getTaskId, task.getTaskId()); + taskKwMapper.delete(keywordWrapper); // 再重新插入新的关键词 List taskKeywordList = Arrays .stream(keywords) @@ -153,14 +154,17 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl taskKwQueryWrapper = new QueryWrapper<>(); - taskKwQueryWrapper.in("task_id", Arrays.asList(ids)); - taskKwMapper.delete(taskKwQueryWrapper); - QueryWrapper taskQueryWrapper = new QueryWrapper<>(); - taskKwQueryWrapper.in("task_id", Arrays.asList(ids)); - return taskMapper.delete(taskQueryWrapper); + LambdaQueryWrapper keywordWrapper = new LambdaQueryWrapper<>(); + keywordWrapper.in(WeKeywordGroupTaskKeyword::getTaskId, Arrays.asList(ids)); + taskKwMapper.delete(keywordWrapper); + + LambdaQueryWrapper taskWrapper = new LambdaQueryWrapper<>(); + taskWrapper.in(WeKeywordGroupTask::getTaskId, Arrays.asList(ids)); + return taskMapper.delete(taskWrapper); } +/* + */ /** * 检测任务名是否唯一 * @@ -186,7 +190,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId()); // 群活码 - taskVo.setGroupCodeInfo(this.getGroupVoByTaskId(taskVo.getGroupCodeId())); + setGroupCodeVoByTask(taskVo); // 群名称列表 groupNameList.removeIf(StringUtils::isNull); taskVo.setGroupNameList(groupNameList); @@ -200,23 +204,23 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl getTaskKeywordList(Long taskId) { - QueryWrapper taskKeywordQueryWrapper = new QueryWrapper<>(); - taskKeywordQueryWrapper.eq("task_id", taskId); - return taskKwMapper.selectList(taskKeywordQueryWrapper); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WeKeywordGroupTaskKeyword::getTaskId, taskId); + return taskKwMapper.selectList(wrapper); } /** * 获取群活码简略信息 - * - * @param groupCodeId 群活码id - * @return 群活码简略信息 + * @param taskVo 关键词任务信息 */ - private WeGroupCodeVo getGroupVoByTaskId(Long groupCodeId) { - WeGroupCode groupCode = groupCodeMapper.selectWeGroupCodeById(groupCodeId); - WeGroupCodeVo groupCodeVo = new WeGroupCodeVo(); - groupCodeVo.setId(groupCode.getId()); - groupCodeVo.setCodeUrl(groupCode.getCodeUrl()); - groupCodeVo.setUuid(groupCode.getUuid()); - return groupCodeVo; + private void setGroupCodeVoByTask(WeKeywordGroupTaskVo taskVo) { + WeGroupCode groupCode = groupCodeMapper.selectWeGroupCodeById(taskVo.getGroupCodeId()); + Optional.ofNullable(groupCode).ifPresent(code -> { + WeGroupCodeVo groupCodeVo = new WeGroupCodeVo(); + groupCodeVo.setId(code.getId()); + groupCodeVo.setCodeUrl(code.getCodeUrl()); + groupCodeVo.setUuid(code.getUuid()); + taskVo.setGroupCodeInfo(groupCodeVo); + }); } } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityNewGroupServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityNewGroupServiceImpl.java index 9d5e7575..be1f2f35 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityNewGroupServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityNewGroupServiceImpl.java @@ -1,6 +1,6 @@ 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.linkwechat.common.enums.WeEmpleCodeType; import com.linkwechat.common.exception.wecom.WeComException; @@ -162,7 +162,7 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl userQueryWrapper = new QueryWrapper<>(); - userQueryWrapper.in("user_id", communityNewGroupDto.getEmplList()); + LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); + userQueryWrapper.in(WeUser::getUserId, communityNewGroupDto.getEmplList()); List weUserList = weUserMapper.selectList(userQueryWrapper); List weEmpleCodeUseScopList = weUserList.stream().map(e -> { WeEmpleCodeUseScop scop = new WeEmpleCodeUseScop(); @@ -248,8 +253,8 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl tagIdList = communityNewGroupDto.getTagList(); - QueryWrapper tagQueryWrapper = new QueryWrapper<>(); - tagQueryWrapper.in("tag_id", tagIdList); + LambdaQueryWrapper tagQueryWrapper = new LambdaQueryWrapper<>(); + tagQueryWrapper.in(WeTag::getTagId, tagIdList); List weTagList = weTagMapper.selectList(tagQueryWrapper); List weEmpleCodeTagList = weTagList.stream().map(e -> { WeEmpleCodeTag tag = new WeEmpleCodeTag(); @@ -267,21 +272,32 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl { + vo.setEmplCodeUrl(e.getQrCode()); + vo.setWelcomeMsg(e.getWelcomeMsg()); + vo.setSkipVerify(e.getSkipVerify()); + }); + + // 设置群活码信息 WeGroupCode weGroupCode = weGroupCodeMapper.selectWeGroupCodeById(vo.getGroupCodeId()); - WeGroupCodeVo weGroupCodeVo = new WeGroupCodeVo(); - BeanUtils.copyProperties(weGroupCode, weGroupCodeVo); - vo.setGroupCodeInfo(weGroupCodeVo); + Optional.ofNullable(weGroupCode).ifPresent(e -> { + WeGroupCodeVo groupCodeVo = WeGroupCodeVo + .builder() + .id(e.getId()) + .codeUrl(e.getCodeUrl()) + .uuid(e.getUuid()) + .build(); + BeanUtils.copyProperties(e, groupCodeVo); + vo.setGroupCodeInfo(groupCodeVo); + }); // 获取员工列表信息 List empleCodeUseScopList = empleCodeUseScopMapper.selectWeEmpleCodeUseScopListById(vo.getEmplCodeId()); vo.setEmplList(empleCodeUseScopList); - // 获取员工活码信息 - WeEmpleCode empleCode = weEmpleCodeMapper.selectWeEmpleCodeById(vo.getEmplCodeId()); - vo.setEmplCodeUrl(empleCode.getQrCode()); - vo.setWelcomeMsg(empleCode.getWelcomeMsg()); - // 获取相关群聊信息 List groupList = weGroupCodeMapper.selectWeGroupListByGroupCodeId(vo.getGroupCodeId()); vo.setGroupList(groupList); @@ -289,7 +305,5 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl tagList = empleCodeTagMapper.selectWeEmpleCodeTagListById(vo.getEmplCodeId()); vo.setTagList(tagList); - - vo.setSkipVerify(empleCode.getSkipVerify()); } } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupCodeServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupCodeServiceImpl.java index 1e1aea30..576f5540 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupCodeServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupCodeServiceImpl.java @@ -4,7 +4,6 @@ import java.util.List; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.linkwechat.common.config.CosConfig; import com.linkwechat.common.exception.wecom.WeComException; import com.linkwechat.wecom.domain.WeGroupCodeActual; import com.linkwechat.wecom.mapper.WeCommunityNewGroupMapper; @@ -151,7 +150,7 @@ public class WeGroupCodeServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - sopPicMapper.delete(queryWrapper.eq("rule_id", ruleId)); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + sopPicMapper.delete(queryWrapper.eq(WeGroupSopPic::getRuleId, ruleId)); // 保留新上传的图片 List sopPicList = picUrlList.stream().map(picUrl -> new WeGroupSopPic(ruleId, picUrl)).collect(Collectors.toList()); @@ -164,16 +164,17 @@ public class WeGroupSopServiceImpl extends ServiceImpl 0) { // 解除群聊和素材关联 - QueryWrapper sopGroupQueryWrapper = new QueryWrapper<>(); - sopGroupQueryWrapper.in("rule_id", Arrays.asList(ids)); - sopChatMapper.delete(sopGroupQueryWrapper); - QueryWrapper sopMaterialQueryWrapper = new QueryWrapper<>(); - sopMaterialQueryWrapper.in("rule_id", Arrays.asList(ids)); - sopMaterialMapper.delete(sopMaterialQueryWrapper); + LambdaQueryWrapper groupQueryWrapper = new LambdaQueryWrapper<>(); + groupQueryWrapper.in(WeGroupSopChat::getRuleId, Arrays.asList(ids)); + sopChatMapper.delete(groupQueryWrapper); + + LambdaQueryWrapper materialQueryWrapper = new LambdaQueryWrapper<>(); + materialQueryWrapper.in(WeGroupSopMaterial::getRuleId, Arrays.asList(ids)); + sopMaterialMapper.delete(materialQueryWrapper); // 删除手动上传的图片 - QueryWrapper picQueryWrapper = new QueryWrapper<>(); - picQueryWrapper.in("rule_id", Arrays.asList(ids)); + LambdaQueryWrapper picQueryWrapper = new LambdaQueryWrapper<>(); + picQueryWrapper.in(WeGroupSopPic::getRuleId, Arrays.asList(ids)); sopPicMapper.delete(picQueryWrapper); } return affectedRows; @@ -216,8 +217,8 @@ public class WeGroupSopServiceImpl extends ServiceImpl picQueryWrapper = new QueryWrapper<>(); - picQueryWrapper.eq("rule_id", ruleId); + LambdaQueryWrapper picQueryWrapper = new LambdaQueryWrapper<>(); + picQueryWrapper.eq(WeGroupSopPic::getRuleId, ruleId); List sopPicList = sopPicMapper.selectList(picQueryWrapper); if (StringUtils.isNotEmpty(sopPicList)) { List picUrlList = sopPicList.stream().map(WeGroupSopPic::getPicUrl).collect(Collectors.toList()); @@ -255,12 +256,14 @@ public class WeGroupSopServiceImpl extends ServiceImpl sopChatQueryWrapper = new QueryWrapper<>(); - sopChatQueryWrapper.eq("rule_id", ruleId); - sopChatMapper.delete(sopChatQueryWrapper); - QueryWrapper sopMaterialQueryWrapper = new QueryWrapper<>(); - sopMaterialQueryWrapper.eq("rule_id", ruleId); - sopMaterialMapper.delete(sopMaterialQueryWrapper); + // 删除群聊绑定 + LambdaQueryWrapper chatQueryWrapper = new LambdaQueryWrapper<>(); + chatQueryWrapper.eq(WeGroupSopChat::getRuleId, ruleId); + sopChatMapper.delete(chatQueryWrapper); + // 删除素材绑定 + LambdaQueryWrapper materialQueryWrapper = new LambdaQueryWrapper<>(); + materialQueryWrapper.eq(WeGroupSopMaterial::getRuleId, ruleId); + sopMaterialMapper.delete(materialQueryWrapper); } /** @@ -306,11 +309,11 @@ public class WeGroupSopServiceImpl extends ServiceImpl getGroupListByRuleId(Long ruleId) { - QueryWrapper groupQueryWrapper = new QueryWrapper<>(); + LambdaQueryWrapper groupQueryWrapper = new LambdaQueryWrapper<>(); List chatIdList = groupSopMapper.getChatIdListByRuleId(ruleId); List groupList = new ArrayList<>(); if (StringUtils.isNotEmpty(chatIdList)) { - groupQueryWrapper.in("chat_id", chatIdList); + groupQueryWrapper.in(WeGroup::getChatId, chatIdList); groupList = groupMapper.selectList(groupQueryWrapper); } return groupList; @@ -326,10 +329,13 @@ public class WeGroupSopServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.in("chat_id", groupIdList); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(WeGroup::getChatId, groupIdList); List 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); // 获取agentId diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java index 5cb6e996..5327dbc2 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java @@ -2,8 +2,8 @@ package com.linkwechat.wecom.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.linkwechat.common.core.domain.entity.WeCorpAccount; import com.linkwechat.common.enums.ChatType; @@ -159,30 +159,29 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl ids = Arrays.asList(idList); // 解除关联的标签 - QueryWrapper taskTagQueryWrapper = new QueryWrapper<>(); - taskTagQueryWrapper.in("task_id", ids); - taskTagMapper.delete(taskTagQueryWrapper); + LambdaQueryWrapper tagQueryWrapper = new LambdaQueryWrapper<>(); + tagQueryWrapper.in(WePresTagGroupTaskTag::getTaskId, ids); + taskTagMapper.delete(tagQueryWrapper); // 解除关联的员工 - QueryWrapper taskScopeQueryWrapper = new QueryWrapper<>(); - taskScopeQueryWrapper.in("task_id", ids); - taskScopeMapper.delete(taskScopeQueryWrapper); + LambdaQueryWrapper scopeQueryWrapper = new LambdaQueryWrapper<>(); + scopeQueryWrapper.in(WePresTagGroupTaskScope::getTaskId, ids); + taskScopeMapper.delete(scopeQueryWrapper); // 删除其用户统计 - QueryWrapper statQueryWrapper = new QueryWrapper<>(); - statQueryWrapper.in("task_id", ids); + LambdaQueryWrapper statQueryWrapper = new LambdaQueryWrapper<>(); + statQueryWrapper.in(WePresTagGroupTaskStat::getTaskId, ids); taskStatMapper.delete(statQueryWrapper); - // 删除task - QueryWrapper taskQueryWrapper = new QueryWrapper<>(); - taskQueryWrapper.in("task_id", ids); + // 最后删除task + LambdaQueryWrapper taskQueryWrapper = new LambdaQueryWrapper<>(); + taskQueryWrapper.in(WePresTagGroupTask::getTaskId, ids); return taskMapper.delete(taskQueryWrapper); } /** * 更新老客户标签建群任务 - * + * @param taskId 待更新任务id * @param wePresTagGroupTaskDto 更新数据 - * @return 结果 - * @taskId 待更新任务id + * @return 更新条数 */ @Override @Transactional(rollbackFor = RuntimeException.class) @@ -192,22 +191,25 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl 0) { - // 更新标签 - // 先删除旧标签 - QueryWrapper taskTagQueryWrapper = new QueryWrapper<>(); - taskTagQueryWrapper.eq("task_id", taskId); + + // 更新标签 - 先删除旧标签 + LambdaUpdateWrapper taskTagQueryWrapper = new LambdaUpdateWrapper<>(); + taskTagQueryWrapper.eq(WePresTagGroupTaskTag::getTaskId, taskId); taskTagMapper.delete(taskTagQueryWrapper); - // 再添加新标签 + // 更新标签 - 再添加新标签 List tagIdList = wePresTagGroupTaskDto.getTagList(); if (CollectionUtil.isNotEmpty(tagIdList)) { - List wePresTagGroupTaskTagList = tagIdList.stream().map(id -> new WePresTagGroupTaskTag(taskId, id)).collect(Collectors.toList()); + List wePresTagGroupTaskTagList = tagIdList + .stream() + .map(id -> new WePresTagGroupTaskTag(taskId, id)) + .collect(Collectors.toList()); taskTagMapper.batchBindsTaskTags(wePresTagGroupTaskTagList); } // 先解除旧的员工绑定信息 - QueryWrapper taskScopeQueryWrapper = new QueryWrapper<>(); - taskScopeQueryWrapper.eq("task_id", taskId); - taskScopeMapper.delete(taskScopeQueryWrapper); + LambdaUpdateWrapper scopeQueryWrapper = new LambdaUpdateWrapper<>(); + scopeQueryWrapper.eq(WePresTagGroupTaskScope::getTaskId, taskId); + taskScopeMapper.delete(scopeQueryWrapper); // 再重新绑定员工信息 List userIdList = wePresTagGroupTaskDto.getScopeList(); @@ -380,7 +382,7 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("task_id", task.getTaskId()); - updateWrapper.set("msgid", resultDto.getMsgid()); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(WePresTagGroupTask::getTaskId, task.getTaskId()); + updateWrapper.set(WePresTagGroupTask::getMsgid, resultDto.getMsgid()); this.update(updateWrapper); } catch (Exception e) { e.printStackTrace(); diff --git a/linkwe-wecom/src/main/resources/mapper/wecom/WeGroupCodeMapper.xml b/linkwe-wecom/src/main/resources/mapper/wecom/WeGroupCodeMapper.xml index eaa3a17e..815ce5d1 100644 --- a/linkwe-wecom/src/main/resources/mapper/wecom/WeGroupCodeMapper.xml +++ b/linkwe-wecom/src/main/resources/mapper/wecom/WeGroupCodeMapper.xml @@ -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 ) < 3), 0) AS about_to_expire_codes FROM we_group_code w - + + -- GitLab