feat:机器人消息模板管理

This commit is contained in:
zuoqinbo 2023-10-13 14:49:21 +08:00
parent 3949e365e9
commit 73e8458a8a
6 changed files with 48 additions and 10 deletions

View File

@ -67,12 +67,11 @@ public interface RobotInfoApi {
/**
* Mobile移动端-查询当前所有运行中的机器人列表
* 暂定
* 包含模板信息标签信息
* @return 所有机器人的列表信息包含标签以及消息模板信息
*/
@GetMapping("api/im/robot/msgTemplate/list")
ApiResult<List<RobotMsgTemplateResp>> queryRunningRobots();
@GetMapping("api/im/robot/enabled/list")
ApiResult<List<RobotInfoResp>> queryRunningRobots();
}

View File

@ -56,4 +56,9 @@ public class RobotInfoResp {
private Integer msgTemplateTotal;
/**
* 机器人消息模板列表
*/
private List<String> msgTemplateList;
}

View File

@ -1,6 +1,7 @@
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\feign\AccountApi.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\feign\RobotTagApi.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\feign\MessageApi.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\RobotMsgTemplateReq.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\resp\UserAccountResp.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\RobotAccountReq.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\UserAccountReq.java
@ -11,6 +12,7 @@ D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\RobotInfoR
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\UpdateRobotTagReq.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\MessageInfo.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\feign\RobotInfoApi.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\feign\RobotMsgTemplateApi.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\RobotPageQuery.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\req\RobotTagQuery.java
D:\im-center\im-center-api\src\main\java\cn\axzo\im\center\api\vo\resp\MessageResp.java

View File

@ -57,8 +57,8 @@ public class RobotInfoController implements RobotInfoApi {
}
@Override
public ApiResult<List<RobotMsgTemplateResp>> queryRunningRobots() {
List<RobotMsgTemplateResp> robotTagResp = infoService.queryRunningRobotList();
public ApiResult<List<RobotInfoResp>> queryRunningRobots() {
List<RobotInfoResp> robotTagResp = infoService.queryRunningRobotList();
return ApiResult.ok(robotTagResp);
}
}

View File

@ -13,12 +13,15 @@ import cn.axzo.im.center.common.enums.RobotStatusEnum;
import cn.axzo.im.dao.repository.RobotInfoDao;
import cn.axzo.im.dao.repository.RobotTagDao;
import cn.axzo.im.entity.RobotInfo;
import cn.axzo.im.entity.RobotMsgTemplate;
import cn.axzo.im.entity.RobotTag;
import cn.axzo.im.utils.BeanConvertUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.C;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RestController;
@ -27,6 +30,9 @@ import javax.validation.Valid;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* im
@ -43,10 +49,15 @@ public class RobotInfoService {
@Resource
private RobotInfoDao robotInfoDao;
@Resource
private RobotTagDao robotTagDao;
@Resource
private RobotMsgTemplateService templateService;
@Resource
private RobotTagService robotTagService;
@Transactional(rollbackFor = Exception.class)
public RobotInfoResp saveRobotInfo(@Valid RobotInfoReq robotInfoRequest) {
verifyRobotName(robotInfoRequest.getNickName(), null);
@ -112,6 +123,10 @@ public class RobotInfoService {
RobotInfoResp robotInfoResp = BeanMapper.map(robotInfo, RobotInfoResp.class);
List<RobotTag> robotTags = robotTagDao.queryRobotTagValidList(tagIdList);
List<RobotTagResp> robotTagsResp = BeanMapper.copyList(robotTags, RobotTagResp.class);
robotTagsResp.stream().forEach(robotTag -> {
int useCount = robotTagService.findTagUseCount(Integer.parseInt(String.valueOf(robotTag.getId())));
robotTag.setUseCount(useCount);
});
robotInfoResp.setRobotTagList(robotTagsResp);
return robotInfoResp;
}
@ -125,13 +140,30 @@ public class RobotInfoService {
List<RobotInfoResp> list = BeanMapper.copyList(robotInfoIPage.getRecords(), RobotInfoResp.class);
PageResp<RobotInfoResp> pageOfRobotInfoResp = PageResp.list(robotInfoIPage.getCurrent(), robotInfoIPage.getSize(),
robotInfoIPage.getTotal(), list);
list.stream().forEach(robotInfoResp -> {
RobotMsgTemplateResp robotMsgTemplate = templateService.queryRobotMsgTemplateList(robotInfoResp.getRobotId());
if (robotMsgTemplate != null) {
robotInfoResp.setMsgTemplateList(robotMsgTemplate.getMsgTemplateList());
}
});
return pageOfRobotInfoResp;
}
public List<RobotMsgTemplateResp> queryRunningRobotList() {
public List<RobotInfoResp> queryRunningRobotList() {
List<RobotInfo> runningRobots = robotInfoDao.queryRunningRobotList();
List<RobotMsgTemplateResp> msgTemplateResps = BeanMapper.copyList(runningRobots, RobotMsgTemplateResp.class);
return msgTemplateResps;
if (CollectionUtils.isEmpty(runningRobots)) {
throw new ServiceException("当前无可用的机器人[状态为已启用]!");
}
List<RobotInfoResp> robotInfoRespList = runningRobots.stream().map(new Function<RobotInfo, RobotInfoResp>() {
@Override
public RobotInfoResp apply(RobotInfo robotInfo) {
RobotInfoResp robotInfoResp = findRobotInfoById(robotInfo.getId());
RobotMsgTemplateResp robotMsgTemplate = templateService.queryRobotMsgTemplateList(robotInfoResp.getRobotId());
robotInfoResp.setMsgTemplateList(robotMsgTemplate.getMsgTemplateList());
return robotInfoResp;
}
}).collect(Collectors.toList());
return robotInfoRespList;
}
public void updateRobotStatus(String robotId, String imAccount) {

View File

@ -102,7 +102,7 @@ public class RobotTagService {
return null;
}
private int findTagUseCount(int robotTagId) {
public int findTagUseCount(int robotTagId) {
List<RobotInfo> robotInfoList = robotInfoDao.queryAllCreatedRobotList();
final int[] useCount = {0};
robotInfoList.stream().forEach(robotInfo -> {