|
@@ -1,14 +1,19 @@
|
|
|
package com.cyksj.web.controller.sys;
|
|
package com.cyksj.web.controller.sys;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
+import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.config.corp.YHLXWxCorpConfig;
|
|
import com.cyksj.config.corp.YHLXWxCorpConfig;
|
|
|
import com.cyksj.dto.Result;
|
|
import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
import com.cyksj.mapper.SysCorpFollowRelateMapper;
|
|
import com.cyksj.mapper.SysCorpFollowRelateMapper;
|
|
|
import com.cyksj.mapper.corp.CorpUserFollowRelationMapper;
|
|
import com.cyksj.mapper.corp.CorpUserFollowRelationMapper;
|
|
|
|
|
+import com.cyksj.mapper.corp.kf.CorpKfAccountFollowMapper;
|
|
|
|
|
+import com.cyksj.model.entity.CorpKfAccountFollow;
|
|
|
import com.cyksj.model.entity.SysCorpFollow;
|
|
import com.cyksj.model.entity.SysCorpFollow;
|
|
|
import com.cyksj.model.entity.SysCorpFollowRelate;
|
|
import com.cyksj.model.entity.SysCorpFollowRelate;
|
|
|
import com.cyksj.model.request.sys.SysCorpFollowReq;
|
|
import com.cyksj.model.request.sys.SysCorpFollowReq;
|
|
|
|
|
+import com.cyksj.model.views.CorpKfAccountChildView;
|
|
|
import com.cyksj.model.views.CorpKfTransUserView;
|
|
import com.cyksj.model.views.CorpKfTransUserView;
|
|
|
import com.cyksj.model.views.SysCorpFollowView;
|
|
import com.cyksj.model.views.SysCorpFollowView;
|
|
|
import com.cyksj.model.views.SysCorpMasterFollowView;
|
|
import com.cyksj.model.views.SysCorpMasterFollowView;
|
|
@@ -18,14 +23,17 @@ import com.cyksj.service.corp.kf.CorpKfService;
|
|
|
import com.cyksj.service.sys.SysCorpFollowService;
|
|
import com.cyksj.service.sys.SysCorpFollowService;
|
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
|
import com.ejlchina.searcher.SearchResult;
|
|
import com.ejlchina.searcher.SearchResult;
|
|
|
|
|
+import com.ejlchina.searcher.param.Operator;
|
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
|
|
|
+import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -60,6 +68,8 @@ public class SysCorpFollowController {
|
|
|
|
|
|
|
|
private final SysCorpFollowRelateMapper sysCorpFollowRelateMapper;
|
|
private final SysCorpFollowRelateMapper sysCorpFollowRelateMapper;
|
|
|
|
|
|
|
|
|
|
+ private final CorpKfAccountFollowMapper corpKfAccountFollowMapper;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 新增客服
|
|
* 新增客服
|
|
|
*/
|
|
*/
|
|
@@ -143,7 +153,7 @@ public class SysCorpFollowController {
|
|
|
String toFollowId = req.getToFollowId();
|
|
String toFollowId = req.getToFollowId();
|
|
|
Long sid = req.getSid();
|
|
Long sid = req.getSid();
|
|
|
SysCorpFollowRelate sysCorpFollowRelate = sysCorpFollowRelateMapper.selectById(sid);
|
|
SysCorpFollowRelate sysCorpFollowRelate = sysCorpFollowRelateMapper.selectById(sid);
|
|
|
- corpKfService.transCustomer(sysCorpFollowRelate.getFollowId(), toFollowId, req.getTransNum(), req.getTransUserIds());
|
|
|
|
|
|
|
+ corpKfService.transCustomer(sysCorpFollowRelate.getFollowId(), toFollowId, req.getTransNum(), req.getTransUserIds(), req.getOpenKfId());
|
|
|
sysCorpFollowRelate.setToFollowId(toFollowId);
|
|
sysCorpFollowRelate.setToFollowId(toFollowId);
|
|
|
sysCorpFollowRelateMapper.updateById(sysCorpFollowRelate);
|
|
sysCorpFollowRelateMapper.updateById(sysCorpFollowRelate);
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
@@ -157,4 +167,25 @@ public class SysCorpFollowController {
|
|
|
SearchResult<CorpKfTransUserView> search = beanSearcher.search(CorpKfTransUserView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
|
|
SearchResult<CorpKfTransUserView> search = beanSearcher.search(CorpKfTransUserView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 客服账号级联
|
|
|
|
|
+ */
|
|
|
|
|
+ @GetMapping("/get/corp/kf/account/users")
|
|
|
|
|
+ public Result<List<CorpKfAccountChildView>> getCorpKfAccountUsers() throws Exception {
|
|
|
|
|
+ List<CorpKfAccountChildView> corpKfAccountChildViews = beanSearcher.searchAll(CorpKfAccountChildView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
|
|
|
|
|
+ for (CorpKfAccountChildView data : corpKfAccountChildViews) {
|
|
|
|
|
+ List<CorpKfAccountFollow> corpKfAccountFollows = corpKfAccountFollowMapper.selectList(Wrappers.lambdaQuery(CorpKfAccountFollow.class)
|
|
|
|
|
+ .eq(CorpKfAccountFollow::getOpenKfId, data.getOpenKfId()));
|
|
|
|
|
+ Set<String> followIds = new HashSet<>();
|
|
|
|
|
+ for (CorpKfAccountFollow corpKfAccountFollow : corpKfAccountFollows) {
|
|
|
|
|
+ followIds.addAll(Jsons.parseList(corpKfAccountFollow.getUserIdList(), String.class));
|
|
|
|
|
+ }
|
|
|
|
|
+ List<CorpKfAccountChildView.CorpKfFollowView> corpKfFollowViews = beanSearcher.searchAll(CorpKfAccountChildView.CorpKfFollowView.class, MapUtils.builder()
|
|
|
|
|
+ .field(CorpKfAccountChildView.CorpKfFollowView::getFollowId, followIds).op(Operator.InList)
|
|
|
|
|
+ .build());
|
|
|
|
|
+ data.setChild(corpKfFollowViews);
|
|
|
|
|
+ }
|
|
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(corpKfAccountChildViews);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|