Browse Source

用户外呼每天统计表更新接口开发

anderx 1 year ago
parent
commit
650c35cee4

+ 59 - 0
src/main/java/com/goafanti/admin/bo/CallDaysSumBo.java

@@ -0,0 +1,59 @@
+package com.goafanti.admin.bo;
+
+public class CallDaysSumBo {
+    private String aid;
+    private String dates;
+    private Integer callDurationSum;
+    private Integer callSum;
+    private Integer connectSum;
+    private Integer validSum;
+
+
+    public String getAid() {
+        return aid;
+    }
+
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    public String getDates() {
+        return dates;
+    }
+
+    public void setDates(String dates) {
+        this.dates = dates;
+    }
+
+    public Integer getCallDurationSum() {
+        return callDurationSum;
+    }
+
+    public void setCallDurationSum(Integer callDurationSum) {
+        this.callDurationSum = callDurationSum;
+    }
+
+    public Integer getCallSum() {
+        return callSum;
+    }
+
+    public void setCallSum(Integer callSum) {
+        this.callSum = callSum;
+    }
+
+    public Integer getConnectSum() {
+        return connectSum;
+    }
+
+    public void setConnectSum(Integer connectSum) {
+        this.connectSum = connectSum;
+    }
+
+    public Integer getValidSum() {
+        return validSum;
+    }
+
+    public void setValidSum(Integer validSum) {
+        this.validSum = validSum;
+    }
+}

+ 10 - 0
src/main/java/com/goafanti/common/controller/PublicController.java

@@ -991,6 +991,16 @@ public class PublicController extends CertifyApiController {
 		return new Result<>().data(userOutboundService.pushCallCompleted(in));
 	}
 
+	/**
+	 * 外呼数据统计处理
+	 *
+	 */
+	@PostMapping("/pullAllCall")
+	@ResponseBody
+	public Result pullAllCall() {
+		return new Result<>().data(userOutboundService.pushAllCall());
+	}
+
 
 //	/**
 //	 * OCR识别

+ 2 - 0
src/main/java/com/goafanti/common/dao/AdminCallDayMapper.java

@@ -91,5 +91,7 @@ public interface AdminCallDayMapper {
 
 
     AdminStatisticsBo selectByAidCount(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+
 }
 

+ 3 - 0
src/main/java/com/goafanti/common/dao/CallLogMapper.java

@@ -1,6 +1,7 @@
 package com.goafanti.common.dao;
 
 import com.goafanti.admin.bo.AdminStatisticsBo;
+import com.goafanti.admin.bo.CallDaysSumBo;
 import com.goafanti.common.model.CallLog;
 import org.apache.ibatis.annotations.Param;
 
@@ -84,5 +85,7 @@ public interface CallLogMapper {
 
 
     AdminStatisticsBo selectAdminCallSum(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    List<CallDaysSumBo> selectAllCount();
 }
 

+ 1 - 0
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -35,6 +35,7 @@
         <result property="expenseSuperExamine" column="expense_super_examine" jdbcType="INTEGER"/>
         <result property="publicCarbonCopy" column="public_carbon_copy" jdbcType="VARCHAR"/>
         <result property="callNo" column="call_no" jdbcType="VARCHAR"/>
+        <result property="teamId" column="team_id" jdbcType="INTEGER"/>
     </resultMap>
 
     <sql id="AdminAllSql">

+ 8 - 0
src/main/java/com/goafanti/common/mapper/CallLogMapper.xml

@@ -209,6 +209,14 @@
         </where>
         )x group by x.aid
     </select>
+    <select id="selectAllCount" resultType="com.goafanti.admin.bo.CallDaysSumBo">
+        SELECT x.aid,x.dates,sum(x.duration) callDurationSum,sum(x.counts) callSum,
+        sum(x.connectSum)connectSum,sum(x.validSum)validSum
+        from (SELECT b.aid,b.duration ,1 counts,if(b.duration>0 and b.duration &lt; 5,1,0)connectSum,
+        if(b.duration>=5,1,0)validSum,DATE_FORMAT(b.create_time,'%Y-%m-%d') dates
+        from  call_log b)x
+        group by x.aid,x.dates
+    </select>
 
 
 </mapper>

+ 2 - 0
src/main/java/com/goafanti/customer/service/UserOutboundService.java

@@ -20,4 +20,6 @@ public interface UserOutboundService {
 
     Object userCallList(InputUserCallList in);
 
+
+    Object pushAllCall();
 }

+ 40 - 0
src/main/java/com/goafanti/customer/service/impl/UserOutboundServiceImpl.java

@@ -2,6 +2,7 @@ package com.goafanti.customer.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.goafanti.admin.bo.CallDaysSumBo;
 import com.goafanti.common.bo.Error;
 import com.goafanti.common.bo.InputCallCompleter;
 import com.goafanti.common.bo.Result;
@@ -25,6 +26,7 @@ import org.springframework.web.socket.TextMessage;
 
 import javax.annotation.Resource;
 import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -57,6 +59,8 @@ public class UserOutboundServiceImpl extends BaseMybatisDao<CallLogMapper> imple
     private CallLogMapper callLogMapper;
     @Resource
     private AdminCallDayMapper adminCallDayMapper;
+    @Resource
+    private SalesTeamMapper salesTeamMapper;
 
     @Override
     public Object checkUser(Integer type) {
@@ -290,5 +294,41 @@ public class UserOutboundServiceImpl extends BaseMybatisDao<CallLogMapper> imple
         return res;
     }
 
+    @Override
+    public Object pushAllCall() {
+        List<CallDaysSumBo> callDaysSumBos = callLogMapper.selectAllCount();
+        DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE;
+        for (CallDaysSumBo e : callDaysSumBos) {
+            Admin admin = adminMapper.queryById(e.getAid());
+
+            AdminCallDay adminCallDay = new AdminCallDay();
+            adminCallDay.setAid(e.getAid());
+            adminCallDay.setName(admin.getName());
+            adminCallDay.setTeamId(admin.getTeamId());
+            if (admin.getTeamId()!=null){
+                SalesTeam salesTeam = salesTeamMapper.queryById(admin.getTeamId());
+                adminCallDay.setTeamName(salesTeam.getName());
+            }
+            adminCallDay.setCallSum(e.getCallSum());
+            adminCallDay.setDayDate(DateUtils.parseDate(e.getDates()));
+            adminCallDay.setCallDurationSum(e.getCallDurationSum());
+            adminCallDay.setValidSum(e.getValidSum());
+            adminCallDay.setConnectSum(e.getConnectSum());
+            LocalDate parse = LocalDate.parse(e.getDates(), formatter);
+            AdminCallDay adminCallDay1 = adminCallDayMapper.selectByAidAndDay(e.getAid(), parse);
+            if (adminCallDay1==null){
+                adminCallDayMapper.insert(adminCallDay);
+            }else {
+                adminCallDay.setId(adminCallDay1.getId());
+                adminCallDayMapper.update(adminCallDay);
+            }
+
+        }
+
+        return 1;
+    }
+
+
+
 
 }