Browse Source

Merge branch 'master' into test

yangzian 3 years ago
parent
commit
75ddf9b0df

File diff suppressed because it is too large
+ 9 - 0
ruixuan-admin/src/main/resources/application-prod.yml


+ 10 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/constant/RobotConstant.java

@@ -12,10 +12,20 @@ public class RobotConstant {
     public static final String REQUEST_PREFIX = "http://jiqiren-external-api.weiwenjia.com";
 
     /**
+     * 回调地址
+     */
+    public static final String CALL_BACK_URL = "http://ruixuan.api.tjyourong.com.cn/sale/saleClueInfoController/robotCallbackUrl";
+
+    /**
      * 刷新token
      */
     public static final String REFRESH_TOKEN = REQUEST_PREFIX+"/api/v1/authorize";
 
+    /**
+     * 导入电话号码
+     */
+    public static final String CUSTOMER_IMPORT = REQUEST_PREFIX+"/api/v1/customer/import";
+
 
 
 

+ 30 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/controller/SaleClueInfoController.java

@@ -16,10 +16,12 @@ import com.ruixuan.salesLeads.pojo.SaleClueRecordInfoPojo;
 import com.ruixuan.salesLeads.pojo.TestPojo;
 import com.ruixuan.salesLeads.pojo.vo.SaleRecordVo;
 import com.ruixuan.salesLeads.pojo.vo.SaleTaskInfoVo;
+import com.ruixuan.salesLeads.service.ISaleClueCallRecordService;
 import com.ruixuan.salesLeads.service.ISaleClueInfoService;
 import com.ruixuan.salesLeads.service.ITestService;
 import com.ruixuan.salesLeads.service.impl.TelephoneRobotServiceImpl;
 import io.swagger.annotations.*;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
@@ -40,6 +42,7 @@ import java.util.stream.Collectors;
  */
 
 
+@Slf4j
 @Api(tags = "销售线索",description = "saleClueInfoController")
 @RestController
 @RequestMapping("sale/saleClueInfoController")
@@ -239,9 +242,36 @@ public class SaleClueInfoController extends BaseController {
 
 
 
+    @Autowired
+    private ISaleClueCallRecordService saleClueCallRecordService;
+
+
+
+    @ApiOperation(value = "回调地址",notes = "回调地址")
+    @PostMapping(value = "/robotCallbackUrl")
+    public JSONObject robotCallbackUrl(@RequestBody JSONObject json){
+        saleClueCallRecordService.SaleClueCallRecordMapper(json.toJSONString());
+        log.info("callBackUrl----->>>{}",json);
+        return json;
+    }
+
 
 
 
+    @ApiOperation(value = "外呼机器人-导入号码",notes = "外呼机器人-导入号码")
+    @PostMapping(value = "/importRobotTelephone")
+    public ResultResponse importRobotTelephone(@ApiParam(value = "卖家ids") @RequestParam(value = "sellerIds") List<Long> sellerIds,
+                                               @ApiParam(value = "用户id") @RequestParam(value = "userId") String userId
+                                               ){
+
+        if (sellerIds.size() > 5000){
+            return ResultResponse.error("单次最大导入号码数量不能超过5000条!");
+        }
+
+        return telephoneRobotService.importRobotTelephone(sellerIds,userId);
+    }
+
+
 
 
 

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

@@ -0,0 +1,26 @@
+package com.ruixuan.salesLeads.mapper;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruixuan.salesLeads.pojo.SaleClueCallRecordPojo;
+import com.ruixuan.salesLeads.pojo.TestPojo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: TODO
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+public interface SaleClueCallRecordMapper {
+
+    void addSaleCallRecord(String str);
+
+    SaleClueCallRecordPojo getSaleClueCallRecordInfo();
+
+    void updateCallRecordUser(String userId);
+
+}

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

@@ -0,0 +1,32 @@
+package com.ruixuan.salesLeads.pojo;
+
+
+import com.ruixuan.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: demo-测试
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+
+@Data
+@ApiModel(value = "saleClueCallRecordPojo", description = "销售线索通话记录")
+public class SaleClueCallRecordPojo {
+
+
+    private int id;
+    private String content;
+    private int createUserId;
+    private String createUserName;
+    private List successList;
+    private List errorList;
+
+
+}

+ 19 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/ISaleClueCallRecordService.java

@@ -0,0 +1,19 @@
+package com.ruixuan.salesLeads.service;
+
+import com.ruixuan.common.core.domain.ResultResponse;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: demo测试
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+public interface ISaleClueCallRecordService {
+
+
+    void SaleClueCallRecordMapper(String str);
+
+
+}

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

@@ -21,4 +21,6 @@ public interface ITelephoneRobotService {
 
     JSONObject getTelephoneRobotToken();
 
+    ResultResponse importRobotTelephone(List<Long> sellerIds,String userId);
+
 }

+ 35 - 0
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/SaleClueCallRecordServiceImpl.java

@@ -0,0 +1,35 @@
+package com.ruixuan.salesLeads.service.impl;
+
+import com.ruixuan.common.core.domain.ResultResponse;
+import com.ruixuan.common.utils.PageUtils;
+import com.ruixuan.salesLeads.mapper.SaleClueCallRecordMapper;
+import com.ruixuan.salesLeads.mapper.TestMapper;
+import com.ruixuan.salesLeads.pojo.TestPojo;
+import com.ruixuan.salesLeads.service.ISaleClueCallRecordService;
+import com.ruixuan.salesLeads.service.ITestService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ***************************************************
+ *
+ * @Auther: zianY
+ * @Descipion: demo测试
+ * @CreateDate: 2022-05-19
+ * ****************************************************
+ */
+@Service
+public class SaleClueCallRecordServiceImpl implements ISaleClueCallRecordService {
+
+
+    @Autowired
+    private SaleClueCallRecordMapper saleClueCallRecordMapper;
+
+
+    @Override
+    public void SaleClueCallRecordMapper(String str) {
+        saleClueCallRecordMapper.addSaleCallRecord(str);
+    }
+}

+ 69 - 8
ruixuan-salesLeads/src/main/java/com.ruixuan.salesLeads/service/impl/TelephoneRobotServiceImpl.java

@@ -1,8 +1,10 @@
 package com.ruixuan.salesLeads.service.impl;
 
 import com.alibaba.excel.EasyExcel;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageInfo;
+import com.google.gson.JsonObject;
 import com.ruixuan.common.core.domain.ResultResponse;
 import com.ruixuan.common.core.page.TableDataInfo;
 import com.ruixuan.common.core.redis.RedisCache;
@@ -13,14 +15,8 @@ import com.ruixuan.common.utils.file.FileTypeUtils;
 import com.ruixuan.common.utils.http.HttpUtil;
 import com.ruixuan.salesLeads.constant.RobotConstant;
 import com.ruixuan.salesLeads.listener.ImportExcelListener;
-import com.ruixuan.salesLeads.mapper.SaleClueDistributionInfoMapper;
-import com.ruixuan.salesLeads.mapper.SaleClueInfoMapper;
-import com.ruixuan.salesLeads.mapper.SaleClueRecordInfoMapper;
-import com.ruixuan.salesLeads.mapper.SaleQuotaInfoMapper;
-import com.ruixuan.salesLeads.pojo.SaleClueDistributionInfoPojo;
-import com.ruixuan.salesLeads.pojo.SaleClueInfoPojo;
-import com.ruixuan.salesLeads.pojo.SaleClueRecordInfoPojo;
-import com.ruixuan.salesLeads.pojo.SaleQuotaInfoPojo;
+import com.ruixuan.salesLeads.mapper.*;
+import com.ruixuan.salesLeads.pojo.*;
 import com.ruixuan.salesLeads.pojo.vo.SaleRecordVo;
 import com.ruixuan.salesLeads.pojo.vo.SaleTaskInfoVo;
 import com.ruixuan.salesLeads.service.ISaleClueInfoService;
@@ -62,6 +58,12 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private SaleClueInfoMapper saleClueInfoMapper;
+
+    @Autowired
+    private SaleClueCallRecordMapper saleClueCallRecordMapper;
+
 
     /**
      *
@@ -95,4 +97,63 @@ public class TelephoneRobotServiceImpl implements ITelephoneRobotService {
 
 
 
+
+    @Override
+    public ResultResponse importRobotTelephone(List<Long> sellerIds,String userId){
+        Map<String,String> headers = new HashMap<>();
+        Map<String,Object> result = new HashMap<>();
+        result.put("taskId",123);
+        result.put("batchId",123);
+        result.put("callBackUrl",RobotConstant.CALL_BACK_URL);
+        result.put("canCover",true);
+
+        List customerList = new ArrayList();
+        for (Long sellerId : sellerIds) {
+            SaleRecordVo saleInfo = saleClueInfoMapper.selectSaleClueInfoBySellerId(sellerId);
+            Map<String,Object> param = new HashMap<>();
+            param.put("id",saleInfo.getSellerId());
+            param.put("name",saleInfo.getSellerName());
+            param.put("companyName","");
+            param.put("phone","17778037644");
+            param.put("website","");
+            customerList.add(param);
+        }
+        result.put("customerList",customerList);
+
+        //headers.put("Auth-Token","eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJndW95YW5saW5nIiwiZXhwIjoxNjU4MTMyMjEyfQ.OyhpastRRzBxAlSc8JOfdxO3rK3NG592U3Qlh752xDQ");
+
+        JSONObject tokenObj = redisCache.getCacheObject("salesLeads:robotToken:str");
+        if (!StringUtils.isEmpty(tokenObj)){
+            log.info("导入时获取redis中的token信息----->>>{}",tokenObj);
+            headers.put("Auth-Token",tokenObj.getString("token"));
+        }else {
+            getTelephoneRobotToken();
+            log.info("导入时redis中的token信息已失效,重新获取token----->>>{}");
+        }
+        String content = HttpUtil.httpPostRequest(RobotConstant.CUSTOMER_IMPORT,result,headers);
+        JSONObject jsonObject = JSONObject.parseObject(content);
+        if (!"0".equals(jsonObject.getString("code"))){
+            return ResultResponse.error("导入数据接口异常======>>>>>"+jsonObject);
+        }
+
+
+        //更新记录 用户
+        saleClueCallRecordMapper.updateCallRecordUser(userId);
+
+        //查询导入回调记录
+        SaleClueCallRecordPojo callRecordPojo = saleClueCallRecordMapper.getSaleClueCallRecordInfo();
+        String record = callRecordPojo.getContent();
+        JSONObject recordJson = JSONObject.parseObject(record);
+        JSONArray success = recordJson.getJSONArray("success");
+        JSONArray error = recordJson.getJSONArray("error");
+
+        Map<String,Object> map = new HashMap();
+        map.put("successList",success);
+        map.put("errorList",error);
+        return ResultResponse.successMsg("导入记录查询成功。",map);
+    }
+
+
+
+
 }

+ 46 - 0
ruixuan-salesLeads/src/main/resources/mapper/salesLeads/SaleClueCallRecordMapper.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruixuan.salesLeads.mapper.SaleClueCallRecordMapper">
+
+
+	<!--  -->
+	<insert id="addSaleCallRecord">
+		replace into sale_clue_call_record(
+		content
+	)
+		values
+			(
+			#{content}
+
+			)
+
+	</insert>
+
+
+
+	<select id="getSaleClueCallRecordInfo" resultType="com.ruixuan.salesLeads.pojo.SaleClueCallRecordPojo">
+		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
+		limit 1
+	</select>
+
+
+	<!-- 修改用户id -->
+	<update id="updateCallRecordUser">
+		UPDATE sale_clue_call_record
+		SET create_user_id = #{userId}
+			ORDER BY
+		create_time DESC
+		LIMIT 1
+
+	</update>
+
+
+
+</mapper> 

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

@@ -229,7 +229,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
 
-	<!-- 卖家id 查询销售记录信息  -->
+	<!-- 卖家id 查询销售信息  -->
 	<select id="selectSaleClueInfoBySellerId" resultType="com.ruixuan.salesLeads.pojo.vo.SaleRecordVo">
 		SELECT
 		s.id,