瀏覽代碼

fix(增加匹配限制,优化执行时间)

yang G 5 年之前
父節點
當前提交
f44cb23457

+ 1 - 2
src/main/java/com/mokamrp/privates/mapper/WorkContactEmployeeMapper.java

@@ -32,6 +32,5 @@ public interface WorkContactEmployeeMapper extends BaseMapper<WorkContactEmploye
     List<HashMap<String, Object>> getContactTagList(@Param("ew") QueryWrapper<WorkContactEmployeeVo> queryWrapper);
     void updateChannelCode(@Param("id") Integer id,@Param("codeId") Integer codeId);
     List<WorkContactEmployeeHubVo> getCorpEmployeeContact(@Param("ew") QueryWrapper<WorkContactEmployeeHubVo> queryWrapper);
-
-
+    void updateOpenid(@Param("id") Integer id,@Param("label") String label,@Param("platform") String platform,@Param("typer_date") String typer_date);
 }

+ 10 - 0
src/main/java/com/mokamrp/privates/mapper/WorkContactEmployeeMapper.xml

@@ -87,6 +87,13 @@
         LIMIT #{limit}
     </select>
 
+    <update id="updateOpenid" >
+        update mc_work_contact_employee_openid
+        set label = #{label} ,platform = #{platform} ,typer_date = #{typer_date}
+        where id = #{id}
+    </update>
+
+
     <select id="getHubListTotal" resultType="Integer">
         SELECT
             count(*)
@@ -111,6 +118,8 @@
                e.`name`          AS employee_name,
                p.`name`          as company_name,
                a.contact_id,
+               d.platform,
+               d.label as typer_tag,
                a.state,
                d.ghid as gh_id,
                d.openid as open_id,
@@ -122,6 +131,7 @@
                  LEFT JOIN mc_work_contact_employee_openid AS d ON d.id = a.id
                  LEFT JOIN mc_corp AS p ON p.id = a.corp_id
         where 1 = 1 AND ${ew.sqlSegment}
+        order by id desc
         LIMIT #{limit} offset #{offset}
     </select>
 

+ 2 - 0
src/main/java/com/mokamrp/privates/service/WorkContactEmployeeService.java

@@ -32,5 +32,7 @@ public interface WorkContactEmployeeService extends IService<WorkContactEmployee
 
     public void sendToDatahub();
 
+    public List<Integer> getNovelIds();
+
     public List<WorkContactEmployeeHubVo> getCorpEmployeeContact(Integer corpId, Integer maxId);
 }

+ 43 - 6
src/main/java/com/mokamrp/privates/service/impl/WorkContactEmployeeServiceImpl.java

@@ -31,7 +31,9 @@ import org.apache.http.protocol.HTTP;
 import org.apache.http.util.EntityUtils;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.annotation.Id;
 import org.springframework.stereotype.Service;
+import org.thymeleaf.expression.Ids;
 
 import java.io.ByteArrayInputStream;
 import java.text.SimpleDateFormat;
@@ -62,7 +64,6 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
     @Autowired
     private WorkContactEmployeeMapper mapperObj;
 
-
     @Override
     public Map<String, Object> getCronHubPageList() {
         List<Map<String,Object>> resList = new ArrayList<Map<String,Object>>();
@@ -71,12 +72,13 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
 
         while(true){
             QueryWrapper<WorkContactEmployeeVo> obj = new QueryWrapper<WorkContactEmployeeVo>();
+            obj.in("a.corp_id",getNovelIds());
 
             if(!nextId.equals(0)){
                 obj.lt("d.id",nextId);
             }
 
-            List<WorkContactEmployeeVo> list = mapperObj.getCronHubVoList(obj,50);
+            List<WorkContactEmployeeVo> list = mapperObj.getCronHubVoList(obj,100);
             if(list.size() <=0){
                 break;
             }
@@ -91,20 +93,32 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
     }
 
     @Override
+    public List<Integer> getNovelIds(){
+        List<Integer> ids = new ArrayList<Integer>();
+        ids.add(63);
+        ids.add(64);
+        ids.add(65);
+        ids.add(66);
+        return ids;
+    }
+
+    @Override
     public Map<String, Object> getHubPageList(HubWorkContactEmployeeHandle handle) {
 
         List<Map<String,Object>> resList = new ArrayList<Map<String,Object>>();
 
         QueryWrapper<WorkContactEmployeeVo> obj = getHubWrapper(handle);
+
         Integer offset = PageUtil.getOffset(handle.getPage(),handle.getPagesize());
         List<WorkContactEmployeeVo> list = mapperObj.getHubVoList(obj,offset,handle.getPagesize());
         Integer total = mapperObj.getHubListTotal(obj);
         Map<String, Object> resMap = new HashMap<String, Object>();
 
         //请求typer,匹配typer标签
-        if (list.size() > 0) {
+        /*if (list.size() > 0) {
             list = getTyperTag(list);
         }
+         */
 
         resMap.put("list", list);
         resMap.put("total", total);
@@ -116,6 +130,7 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
 
         Integer nextId = 0;
         int j = list.size();
+        JSONArray responseList = new JSONArray();
         int t;
         List<Map<String,Object>> resList = new ArrayList<Map<String,Object>>();
 
@@ -146,17 +161,38 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
 
         try {
             HttpResponse response = http.execute(post);
-
             if (response.getStatusLine().getStatusCode() == 200) {
                 HttpEntity resEntity = response.getEntity();
                 String message = EntityUtils.toString(resEntity, "utf-8");
+                JSONObject jsonObject = JSON.parseObject(message);
+                Object resMap;
+                if (jsonObject.get("data") != null) {
+                    responseList = jsonObject.getJSONArray("data");
+                }
             }
-
-
         }catch (Exception e){
+            System.out.println(e.getMessage());
             return nextId;
         }
 
+        int resLen = responseList.size();
+        Date d = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String dateString =  sdf.format(d);
+        for (int i = 0; i < j; i++) {
+            list.get(i).setPlatform("");
+            for(t=0;t<resLen;t++) {
+                //匹配成功的
+                if(list.get(i).getOpenId() != null && responseList.getJSONObject(t).get("openid").equals(list.get(i).getOpenId())){
+                    mapperObj.updateOpenid(
+                            list.get(i).getId(),
+                            responseList.getJSONObject(t).get("label").toString(),
+                            responseList.getJSONObject(t).get("platform").toString(),
+                            dateString
+                    );
+                }
+            }
+        }
         return nextId;
     }
 
@@ -363,6 +399,7 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
     private QueryWrapper<WorkContactEmployeeVo> getHubWrapper(HubWorkContactEmployeeHandle handle) {
 
         QueryWrapper<WorkContactEmployeeVo> obj = new QueryWrapper<WorkContactEmployeeVo>();
+        obj.in("a.corp_id",getNovelIds());
 
         Integer gender = handle.getGender();
         String name = handle.getName();