Răsfoiți Sursa

fix 记录此次接待周期 接待时长

zoujiajian 8 luni în urmă
părinte
comite
b61d815068

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/CorpKfServicerStatusChangeRecord.java

@@ -20,4 +20,9 @@ public class CorpKfServicerStatusChangeRecord extends BaseEntity{
 	 * 客服状态 0接待中 1.停止接待 2.暂时挂起
 	 */
 	private Integer state;
+
+	/**
+	 * 接待时长(秒)
+	 */
+	private Long receptionDuration;
 }

+ 16 - 0
netflix-service/src/main/java/com/cyksj/service/corp/impl/CorpServiceImpl.java

@@ -3,6 +3,7 @@ package com.cyksj.service.corp.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.RandomUtil;
@@ -1309,6 +1310,21 @@ public class CorpServiceImpl implements CorpService {
 				state = 1;
 			} else state = 2;
 		}
+		if (status == 1 || status == 2) {
+			//寻找上一个接待中记录
+			DateTime now = DateTime.now();
+			CorpKfServicerStatusChangeRecord jdz = corpKfServicerStatusChangeRecordMapper.selectOne(Wrappers.lambdaQuery(CorpKfServicerStatusChangeRecord.class)
+					.eq(CorpKfServicerStatusChangeRecord::getOpenKfId, openKfId)
+					.eq(CorpKfServicerStatusChangeRecord::getServicerUserid, servicerUserId)
+					.le(CorpKfServicerStatusChangeRecord::getCreatedTime, now)
+					.orderByDesc(CorpKfServicerStatusChangeRecord::getId)
+					.last("limit 1"));
+			if (jdz != null && jdz.getState() == 0) {
+				long jdzsc = DateUtil.between(jdz.getCreatedTime(), now, DateUnit.SECOND);
+				//接待时长
+				corpKfServicerStatusChangeRecord.setReceptionDuration(jdzsc);
+			}
+		}
 		corpKfServicerStatusChangeRecord.setState(state);
 		corpKfServicerStatusChangeRecordMapper.insert(corpKfServicerStatusChangeRecord);
 	}