zoujiajian пре 1 година
родитељ
комит
43c3e49063

+ 12 - 0
netflix-dao/src/main/java/com/cyksj/model/request/sys/SysCorpFollowReq.java

@@ -3,6 +3,8 @@ package com.cyksj.model.request.sys;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 项目名: yhlxj
  * 文件名: SysCorpFollowReq
@@ -39,6 +41,16 @@ public class SysCorpFollowReq {
 	 */
 	private String toFollowId;
 
+	/**
+	 * 转接数量
+	 */
+	private Integer transNum;
+
+	/**
+	 * 转接用户列表
+	 */
+	private List<String> transUserIds;
+
 	private Integer status;
 
 	private String img;

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/corp/kf/CorpKfService.java

@@ -30,5 +30,5 @@ public interface CorpKfService {
 
 	String getUrl(String openKfId, String scene) throws Exception;
 
-	void transCustomer(String followId, String toFollowId) throws Exception;
+	void transCustomer(String followId, String toFollowId, Integer transNum, List<String> transUserIds) throws Exception;
 }

+ 5 - 3
netflix-service/src/main/java/com/cyksj/service/corp/kf/impl/CorpKfServiceImpl.java

@@ -1,5 +1,6 @@
 package com.cyksj.service.corp.kf.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -260,7 +261,7 @@ public class CorpKfServiceImpl implements CorpKfService {
 	 * 转接客服
 	 */
 	@Override
-	public void transCustomer(String followId, String toFollowId) throws Exception {
+	public void transCustomer(String followId, String toFollowId, Integer transNum, List<String> transUserIds) throws Exception {
 		List<CorpKfAccountFollow> corpKfAccountFollows = corpKfAccountFollowMapper.selectList(Wrappers.lambdaQuery(CorpKfAccountFollow.class)
 				.apply(" and JSON_CONTAINS(user_id_list,'\"%s\"')", followId));
 		List<String> openKfIds = new ArrayList<>();
@@ -275,8 +276,9 @@ public class CorpKfServiceImpl implements CorpKfService {
 			}
 		}
 		List<CorpKfServicerSessionRecord> corpKfServicerSessionRecords = corpKfServicerSessionRecordMapper.selectList(Wrappers.lambdaQuery(CorpKfServicerSessionRecord.class)
-				.eq(CorpKfServicerSessionRecord::getServiceState, 0));
-
+				.eq(CorpKfServicerSessionRecord::getServiceState, 0)
+				.apply(transNum != null, String.format("order by rand() limit %s", transNum))
+				.in(CollUtil.isNotEmpty(transUserIds), CorpKfServicerSessionRecord::getExternalUserid, transUserIds));
 		String corpId = yhlxWxCorpConfig.getCorpId();
 		//添加对应客服
 		for (String openKfId : openKfIds) {

+ 1 - 1
netflix-web/src/main/java/com/cyksj/web/controller/sys/SysCorpFollowController.java

@@ -131,7 +131,7 @@ public class SysCorpFollowController {
 		String toFollowId = req.getToFollowId();
 		Long sid = req.getSid();
 		SysCorpFollowRelate sysCorpFollowRelate = sysCorpFollowRelateMapper.selectById(sid);
-		corpKfService.transCustomer(sysCorpFollowRelate.getFollowId(), toFollowId);
+		corpKfService.transCustomer(sysCorpFollowRelate.getFollowId(), toFollowId, req.getTransNum(), req.getTransUserIds());
 		sysCorpFollowRelate.setToFollowId(toFollowId);
 		sysCorpFollowRelateMapper.updateById(sysCorpFollowRelate);
 		return GatewayResponse.SUCCESS.newBuilder().toResult();