Ver código fonte

外呼机器人-通话记录

yangzian 2 anos atrás
pai
commit
95a8f0eaae

+ 14 - 7
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/controller/SaleClueInfoController.java

@@ -12,10 +12,7 @@ import com.ruixuan.common.utils.StringUtils;
 import com.ruixuan.common.utils.file.FileTypeUtils;
 import com.ruixuan.common.utils.http.HttpUtil;
 import com.ruixuan.salesLeads.listener.ImportExcelListener;
-import com.ruixuan.salesLeads.pojo.SaleClueCallRecordPojo;
-import com.ruixuan.salesLeads.pojo.SaleClueInfoPojo;
-import com.ruixuan.salesLeads.pojo.SaleClueRecordInfoPojo;
-import com.ruixuan.salesLeads.pojo.TestPojo;
+import com.ruixuan.salesLeads.pojo.*;
 import com.ruixuan.salesLeads.pojo.vo.SaleRecordVo;
 import com.ruixuan.salesLeads.pojo.vo.SaleTaskInfoVo;
 import com.ruixuan.salesLeads.service.ISaleClueCallRecordService;
@@ -259,10 +256,10 @@ public class SaleClueInfoController extends BaseController {
 
 
 
-    @ApiOperation(value = "外呼机器人-导入号码",notes = "外呼机器人-导入号码")
+    @ApiOperation(value = "外呼机器人-导入号码",notes = "外呼机器人-导入号码(可以传多个销售线索id,英文逗号分割)")
     //@RateLimiter(count = 1)
     @PostMapping(value = "/importRobotTelephone")
-    public ResultResponse importRobotTelephone(@ApiParam(value = "卖家ids") @RequestParam(value = "sellerIds") List<Long> sellerIds,
+    public ResultResponse importRobotTelephone(@ApiParam(value = "销售线索ids,英文逗号分割") @RequestParam(value = "ids") List<Long> sellerIds,
                                                @ApiParam(value = "用户id") @RequestParam(value = "userId") String userId) throws Exception {
         if (sellerIds.size() > 5000){
             return ResultResponse.error("单次最大导入号码数量不能超过5000条!");
@@ -271,7 +268,7 @@ public class SaleClueInfoController extends BaseController {
     }
 
 
-    @ApiOperation(value = "外呼机器人-外呼记录查询",notes = "外呼机器人-外呼记录查询")
+    @ApiOperation(value = "外呼机器人-导入的电话记录查询",notes = "外呼机器人-导入的电话记录查询")
     @GetMapping(value = "/getRobotTelephoneRecordList")
     public ResultResponse<List<SaleClueCallRecordPojo>> getRobotTelephoneRecordList(){
         return telephoneRobotService.getRobotTelephoneRecordList();
@@ -279,6 +276,16 @@ public class SaleClueInfoController extends BaseController {
 
 
 
+    @ApiOperation(value = "外呼机器人-通话记录查询",notes = "外呼机器人-通话记录查询")
+    @GetMapping(value = "/getRobotTelephoneResultList")
+    public ResultResponse<List<SaleClueCallResultPojo>> getRobotTelephoneResultList(@ApiParam("创建时间") @RequestParam(value = "createTime",required = false) String createTime,
+                                                                                    @ApiParam("销售线索状态 1-未开始 2-进行中 3-已结束") @RequestParam(value = "sellerName",required = false) Integer state){
+
+        return telephoneRobotService.getRobotTelephoneResultList(createTime,state);
+    }
+
+
+
 
 
 }

+ 2 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleClueCallRecordMapper.java

@@ -21,6 +21,8 @@ public interface SaleClueCallRecordMapper {
 
     List<SaleClueCallRecordPojo> getSaleClueCallRecordInfo();
 
+    SaleClueCallRecordPojo selectCallRecordInfo();
+
     void updateCallRecordUser(@Param("userId") String userId,@Param("taskId") String taskId);
 
 }

+ 4 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleClueCallResultMapper.java

@@ -17,6 +17,10 @@ import java.util.List;
 public interface SaleClueCallResultMapper {
 
 
+    //保存通话记录
     void addSaleCallResult(SaleClueCallResultPojo callResultPojo);
 
+    //查询 通话记录
+    List<SaleClueCallResultPojo> getSaleClueCallResultList(@Param("createTime")String createTime,@Param("state")Integer state);
+
 }

+ 2 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/mapper/SaleClueInfoMapper.java

@@ -94,6 +94,8 @@ public interface SaleClueInfoMapper {
      */
      SaleRecordVo selectSaleClueInfoBySellerId(@Param(value = "sellerId") Long sellerId);
 
+     SaleRecordVo selectSaleClueInfoById(@Param(value = "id") int id);
+
     /**
      * 修改销售线索 销售类别 电销或面销
      * @param sellerId 卖家id

+ 6 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleClueCallRecordPojo.java

@@ -27,6 +27,12 @@ public class SaleClueCallRecordPojo {
     @ApiModelProperty("原始内容")
     private String content;
 
+    @ApiModelProperty("任务id")
+    private Long taskId;
+
+    @ApiModelProperty("创建时间")
+    private String cteateTime;
+
     @ApiModelProperty("创建人")
     private int createUserId;
 

+ 22 - 1
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/pojo/SaleClueCallResultPojo.java

@@ -92,6 +92,27 @@ public class SaleClueCallResultPojo {
     private Date createTime;
 
 
+    @ApiModelProperty("卖家id")
+    private String seller_id;
+
+    @ApiModelProperty("卖家昵称")
+    private String seller_name;
+
+    @ApiModelProperty("行业")
+    private String industryName;
+
+    @ApiModelProperty("销售姓名")
+    private String saleName;
+
+    @ApiModelProperty("销售线索状态 1-未开始 2-进行中 3-已结束")
+    private String state;
+
+
+
+
+
+
+
     //电话号码 解密
     public static String decryptPhone(String phone){
         //String phone = "c9Xk2jegP5sH54hMJRIumWIWTUnXKsiUHJuX3LZTuWhua7ZU+5Xse8KEPKWqjadHH73a/TT/hi0NmObyHTJjVvvx0VcSCDCnXSUZJxW4wK5kUrwo9btHU8gLf7OhOdfYG99OxNzwfogk/1PShmgVls6wZMybtu3PDTGvAwFeuWo=";
@@ -139,7 +160,7 @@ public class SaleClueCallResultPojo {
 
 
     public static void main(String[] args) {
-
+        //System.out.println(decryptPhone(null));
 
     }
 

+ 2 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/ITelephoneRobotService.java

@@ -25,4 +25,6 @@ public interface ITelephoneRobotService {
 
     ResultResponse getRobotTelephoneRecordList();
 
+    ResultResponse getRobotTelephoneResultList(String createTime,Integer state);
+
 }

+ 41 - 7
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/TelephoneRobotServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ruixuan.salesLeads.service.impl;
 
 import com.alibaba.excel.EasyExcel;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageInfo;
@@ -27,6 +28,7 @@ import com.ruixuan.system.domain.SysIndustryInfo;
 import com.ruixuan.system.mapper.SysAreaInfoMapper;
 import com.ruixuan.system.mapper.SysIndustryInfoMapper;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -61,6 +63,9 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
     @Autowired
     private SaleClueCallRecordMapper saleClueCallRecordMapper;
 
+    @Autowired
+    private SaleClueCallResultMapper saleClueCallResultMapper;
+
 
     /**
      *
@@ -117,12 +122,14 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
         result.put("canCover",true);
         List customerList = new ArrayList();
         for (Long sellerId : sellerIds) {
-            SaleRecordVo saleInfo = saleClueInfoMapper.selectSaleClueInfoBySellerId(sellerId);
+            //SaleRecordVo saleInfo = saleClueInfoMapper.selectSaleClueInfoBySellerId(sellerId);
+            //销售线索id查询
+            SaleRecordVo saleInfo = saleClueInfoMapper.selectSaleClueInfoById(sellerId.intValue());
             Map<String,Object> param = new HashMap<>();
-            param.put("id",saleInfo.getSellerId().intValue());
+            param.put("id",saleInfo.getId());
             param.put("name",saleInfo.getSellerId());
             param.put("companyName",saleInfo.getSellerName());
-            param.put("phone","17778037644");
+            param.put("phone","123");
             param.put("website","");
             customerList.add(param);
         }
@@ -138,6 +145,7 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
         }
         headers.put("Auth-Token",JSONObject.parseObject(tokenObj.getString("data")).getString("token"));
         String content = HttpUtil.httpPostRequest(RobotConstant.CUSTOMER_IMPORT,result,headers);
+        log.info("调用第三方接口------入参---{}-----返回信息---》》》》{}",result,content);
         JSONObject jsonObject = JSONObject.parseObject(content);
         if (!"0".equals(jsonObject.getString("code"))){
             log.info("导入数据接口异常======>>>>>{}"+jsonObject);
@@ -148,10 +156,18 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
         //更新最新的记录 用户信息
         //1分钟只能调取导入接口一次 所以可以保证最新的记录就是刚通过回调接口回来的数据信息
         saleClueCallRecordMapper.updateCallRecordUser(userId,flowCode);
-        log.info("------>>>>>>修改用户信息");
-        //JSONArray success = jsonObject.getJSONArray("success");
-        //JSONArray error = jsonObject.getJSONArray("error");
-        return ResultResponse.successMsg("导入记录成功"+customerList.size()+"条",null);
+        log.info("------更新操作用户-------");
+        //查询 最新的记录
+        SaleClueCallRecordPojo recordPojo = saleClueCallRecordMapper.selectCallRecordInfo();
+        JSONObject jsonContent = JSONObject.parseObject(recordPojo.getContent());
+        JSONArray success = jsonContent.getJSONArray("success");
+        recordPojo.setSuccessList(success);
+        JSONArray error = jsonContent.getJSONArray("error");
+        recordPojo.setErrorList(error);
+        return ResultResponse.successMsg("本次导入记录,成功"+ (StringUtils.isEmpty(success) ? 0 : success.size()) + "条;失败"+
+        (StringUtils.isEmpty(error) ? 0 : error.size())+"条。",recordPojo);
+
+
     }
 
 
@@ -179,6 +195,24 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
         return ResultResponse.successMsg("查询导入记录成功。",callRecordList);
     }
 
+    /**
+     *
+     * @description: 通话记录
+     *
+     * @param createTime 创建时间
+     * @param state 销售线索状态 1-未开始 2-进行中 3-已结束
+     * @return: com.ruixuan.common.core.domain.ResultResponse
+     * @author: zianY
+     */
+    @Override
+    public ResultResponse getRobotTelephoneResultList(String createTime,Integer state){
+
+        PageUtils.startPage();
+        //查询导入记录
+        List<SaleClueCallResultPojo> callResultList = saleClueCallResultMapper.getSaleClueCallResultList(createTime,state);
+
+        return ResultResponse.successMsg("查询通话记录成功。",callResultList);
+    }
 
 
 

+ 12 - 1
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueCallRecordMapper.xml

@@ -22,13 +22,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 <!-- 查询 导入记录-->
 	<select id="getSaleClueCallRecordInfo" resultType="com.ruixuan.salesLeads.pojo.SaleClueCallRecordPojo">
 		SELECT
-		id,content,create_user_id,
+		id,content,create_user_id,create_time,task_id,
 		(SELECT u.nick_name from sys_user u where u.user_id = create_user_id) createUserName
 		FROM
 		sale_clue_call_record
 		ORDER BY create_time DESC
 	</select>
 
+<!-- 查询 最新 导入记录-->
+	<select id="selectCallRecordInfo" resultType="com.ruixuan.salesLeads.pojo.SaleClueCallRecordPojo">
+		SELECT
+		id,content,create_user_id,create_time,task_id,
+		(SELECT u.nick_name from sys_user u where u.user_id = create_user_id) createUserName
+		FROM
+		sale_clue_call_record
+		ORDER BY create_time DESC
+		limit 1
+	</select>
+
 
 	<!-- 修改用户id -->
 	<update id="updateCallRecordUser">

+ 42 - 17
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueCallResultMapper.xml

@@ -57,26 +57,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</insert>
 
 
-<!-- 查询 导入记录-->
-	<select id="getSaleClueCallRecordInfo" resultType="com.ruixuan.salesLeads.pojo.SaleClueCallRecordPojo">
+<!-- 查询 通话记录-->
+	<select id="getSaleClueCallResultList" resultType="com.ruixuan.salesLeads.pojo.SaleClueCallResultPojo">
 		SELECT
-		id,content,create_user_id,
-		(SELECT u.nick_name from sys_user u where u.user_id = create_user_id) createUserName
-		FROM
-		sale_clue_call_record
-		ORDER BY create_time DESC
-	</select>
+			r.id,
+			r.organization_id,
+			r.organization_name,
+			r.user_id,
+			r.user_name,
+			r.customer_id,
+			r.customer_name,
+			r.customer_phone,
+			r.customer_company_name,
+			r.label_type,
+			r.started_at,
+			r.duration,
+			r.recordUrl,
+			r.survey_id,
+			r.survey_name,
+			r.group_id,
+			r.group_name,
+			r.job_id,
+			r.focus,
+			r.content,
+			r.create_time ,
+			c.seller_id,
+			c.seller_name,
+			(SELECT name from sys_industry_info i where i.id = c.industry_id) industryName,
+			(SELECT u.nick_name FROM sys_user u WHERE u.user_id = c.sale_id ) saleName,
+			c.`state`
+		FROM `ruixuan`.`sale_clue_call_result` r
+		LEFT JOIN sale_clue_info c on c.telephone = r.customer_phone
+
+		<where>
+			<if test="createTime !=null and createTime != ''">
+				and DATE_FORMAT(r.create_time,'%Y-%m-%d') = #{createTime}
+			</if>
+			<if test="state !=null and state != ''">
+				and c.state = #{state}
+			</if>
+		</where>
+		ORDER BY r.create_time DESC
 
 
-	<!-- 修改用户id -->
-	<update id="updateCallRecordUser">
-		UPDATE sale_clue_call_record
-		SET create_user_id = #{userId},
-		    task_id = #{taskId}
-			ORDER BY
-		create_time DESC
-		LIMIT 1
-	</update>
+
+	</select>
 
 
 

+ 39 - 0
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueInfoMapper.xml

@@ -273,6 +273,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</select>
 
 
+	<!-- 销售线索id 查询销售信息  -->
+	<select id="selectSaleClueInfoById" resultType="com.ruixuan.salesLeads.pojo.vo.SaleRecordVo">
+		SELECT
+		s.id,
+		s.sales_leads_type,
+		s.seller_id,
+		s.seller_name,
+		s.fans,
+		s.industry_id,
+		(SELECT name from sys_industry_info i where i.id = s.industry_id) industryName,
+		s.province_id,
+		(SELECT name from sys_area_info a WHERE a.`code` = s.province_id) provinceName,
+		s.city_id,
+		(SELECT name from sys_area_info a WHERE a.`code` = s.city_id) cityName,
+		s.telephone,
+		s.provider_flag,
+		s.transition_flag,
+		s.upload_date,
+		s.distribution_sale_flag,
+		s.sale_id,
+		(SELECT u.nick_name FROM sys_user u WHERE u.user_id = s.sale_id ) saleName,
+		s.state,
+		s.offline_sale_flag,
+		s.create_user_id,
+		s.create_time,
+		q.nearly_thirty_days,
+		q.gmv_month,
+		q.gmv,
+		q.mtd_date,
+		q.mtd
+		FROM
+		sale_clue_info s
+		LEFT JOIN sale_quota_info q on s.seller_id = q.seller_id
+		where s.id = #{id}
+		ORDER BY q.create_time DESC
+		limit 1
+	</select>
+
+
 
 	<!--  修改销售线索 销售类别 电销或面销 -->
 	<update id="updateSaleClueOfflineFlag">