feat: 新增【根据业务数据id批量获取联系人列表】的接口

This commit is contained in:
weizhiqiang 2024-05-31 08:34:06 +08:00
parent 95ef5f461f
commit 919de23c2e
3 changed files with 36 additions and 0 deletions

View file

@ -100,4 +100,18 @@ public class ContactsController {
contactsService.queryContactsListByObject(inputObject, outputObject);
}
/**
* 根据业务数据id批量获取联系人列表
*
* @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象
*/
@ApiOperation(id = "queryContactsListByObjectIds", value = "根据业务数据id批量获取联系人列表", method = "POST", allUse = "2")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "objectIds", name = "objectIds", value = "业务数据id集合", required = "json")})
@RequestMapping("/post/ContactsController/queryContactsListByObjectIds")
public void queryContactsListByObjectIds(InputObject inputObject, OutputObject outputObject) {
contactsService.queryContactsListByObjectIds(inputObject, outputObject);
}
}

View file

@ -21,4 +21,5 @@ public interface ContactsService extends SkyeyeTeamAuthService<Contacts> {
void queryContactsListByObject(InputObject inputObject, OutputObject outputObject);
void queryContactsListByObjectIds(InputObject inputObject, OutputObject outputObject);
}

View file

@ -4,9 +4,12 @@
package com.skyeye.contacts.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeTeamAuthServiceImpl;
import com.skyeye.common.constans.CommonNumConstants;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.enumeration.DeleteFlagEnum;
import com.skyeye.common.enumeration.IsDefaultEnum;
@ -23,6 +26,7 @@ import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @ClassName: ContactsServiceImpl
@ -83,4 +87,21 @@ public class ContactsServiceImpl extends SkyeyeTeamAuthServiceImpl<ContactsDao,
outputObject.setBeans(contactsList);
outputObject.settotal(contactsList.size());
}
@Override
public void queryContactsListByObjectIds(InputObject inputObject, OutputObject outputObject) {
String objectIdsStr = inputObject.getParams().get("objectIds").toString();
List<String> objectIds = JSONUtil.toList(objectIdsStr, null);
if (CollectionUtil.isEmpty(objectIds)) {
return;
}
objectIds = objectIds.stream().distinct().collect(Collectors.toList());
QueryWrapper<Contacts> queryWrapper = new QueryWrapper<>();
queryWrapper.in(MybatisPlusUtil.toColumns(Contacts::getObjectId), objectIds);
queryWrapper.eq(MybatisPlusUtil.toColumns(Contacts::getDeleteFlag), DeleteFlagEnum.NOT_DELETE.getKey());
List<Contacts> contactsList = list(queryWrapper);
Map<String, List<Contacts>> result = contactsList.stream().collect(Collectors.groupingBy(Contacts::getObjectId));
outputObject.setBean(result);
outputObject.settotal(CommonNumConstants.NUM_ONE);
}
}