|
@@ -1,19 +1,27 @@
|
|
|
package com.cyksj.web.controller.manage.corp.wxkf;
|
|
package com.cyksj.web.controller.manage.corp.wxkf;
|
|
|
|
|
|
|
|
|
|
+import cn.dev33.satoken.stp.StpUtil;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.dto.Result;
|
|
import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
-import com.cyksj.model.entity.CorpKfAccount;
|
|
|
|
|
-import com.cyksj.model.entity.CorpKfAccountFollow;
|
|
|
|
|
-import com.cyksj.model.entity.CorpKfAccountSessionConfig;
|
|
|
|
|
|
|
+import com.cyksj.mapper.corp.CorpFollowMapper;
|
|
|
|
|
+import com.cyksj.model.entity.*;
|
|
|
|
|
+import com.cyksj.model.views.CorpKfServicerSessionRecordView;
|
|
|
import com.cyksj.service.corp.kf.CorpKfService;
|
|
import com.cyksj.service.corp.kf.CorpKfService;
|
|
|
|
|
+import com.cyksj.service.mange.cms.service.CmsUserService;
|
|
|
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.MapBuilder;
|
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
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.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 项目名: yhlxj2
|
|
* 项目名: yhlxj2
|
|
@@ -31,6 +39,10 @@ public class CorpKfController {
|
|
|
|
|
|
|
|
private final HttpServletRequest request;
|
|
private final HttpServletRequest request;
|
|
|
|
|
|
|
|
|
|
+ private final CmsUserService cmsUserService;
|
|
|
|
|
+
|
|
|
|
|
+ private final CorpFollowMapper corpFollowMapper;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 添加客服账号
|
|
* 添加客服账号
|
|
@@ -95,4 +107,51 @@ public class CorpKfController {
|
|
|
corpKfService.setKfAccountDuty(corpKfAccountFollows);
|
|
corpKfService.setKfAccountDuty(corpKfAccountFollows);
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ //===============================================数据统计========================================================================
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 数据统计
|
|
|
|
|
+ */
|
|
|
|
|
+ @GetMapping("/get/statistics")
|
|
|
|
|
+ public Result<SearchResult<CorpKfServicerStatistic>> getStatisticsData() {
|
|
|
|
|
+ long adminId = StpUtil.getLoginIdAsLong();
|
|
|
|
|
+ Boolean rootRole = cmsUserService.isRootRole(adminId);
|
|
|
|
|
+ MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
|
|
|
|
|
+ if (!rootRole) {
|
|
|
|
|
+ List<String> userids = corpFollowMapper.selectList(Wrappers.lambdaQuery(CorpFollow.class)
|
|
|
|
|
+ .eq(CorpFollow::getCmsUserId, adminId)).stream().map(CorpFollow::getUserid).collect(Collectors.toList());
|
|
|
|
|
+ builder.field(CorpKfServicerStatistic::getServicerUserId, userids).op(Operator.InList);
|
|
|
|
|
+ }
|
|
|
|
|
+ SearchResult<CorpKfServicerStatistic> search = beanSearcher.search(CorpKfServicerStatistic.class, builder.build());
|
|
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //===============================================聊天记录========================================================================
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 会话记录
|
|
|
|
|
+ */
|
|
|
|
|
+ @GetMapping("/get/session")
|
|
|
|
|
+ public Result<SearchResult<CorpKfServicerSessionRecordView>> getSession(String keyword) {
|
|
|
|
|
+ MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
|
|
|
|
|
+ if(StringUtils.isNotBlank(keyword)){
|
|
|
|
|
+ builder.put("keyword", String.format("where q.msg_content like '%s%%')",keyword));
|
|
|
|
|
+ }
|
|
|
|
|
+ SearchResult<CorpKfServicerSessionRecordView> search = beanSearcher.search(CorpKfServicerSessionRecordView.class, builder.build());
|
|
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取聊天记录
|
|
|
|
|
+ */
|
|
|
|
|
+ @GetMapping("/get/session/chat")
|
|
|
|
|
+ public Result<SearchResult<CorpKfAccountSessionChat>> getSessionChat(){
|
|
|
|
|
+ Map<String, Object> build = MapUtils.flatBuilder(request.getParameterMap()).build();
|
|
|
|
|
+ SearchResult<CorpKfAccountSessionChat> search = beanSearcher.search(CorpKfAccountSessionChat.class, build);
|
|
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(search);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|