Parcourir la source

feat(定时任务推送typer标签)

yang G il y a 5 ans
Parent
commit
317142983a

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

@@ -28,6 +28,7 @@ public interface WorkContactEmployeeMapper extends BaseMapper<WorkContactEmploye
     Integer getVoListTotal(@Param("ew") QueryWrapper<WorkContactEmployeeVo> queryWrapper);
     Integer getHubListTotal(@Param("ew") QueryWrapper<WorkContactEmployeeVo> queryWrapper);
     List<WorkContactEmployeeVo> getHubVoList( @Param("ew") QueryWrapper<WorkContactEmployeeVo> queryWrapper,@Param("offset") Integer offset ,@Param("limit") Integer limit);
+    List<WorkContactEmployeeVo> getCronHubVoList( @Param("ew") QueryWrapper<WorkContactEmployeeVo> queryWrapper,@Param("limit") Integer limit);
     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);

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

@@ -70,6 +70,23 @@
         where 1 = 1 AND ${ew.sqlSegment}
     </select>
 
+    <select id="getCronHubVoList" resultType="com.mokamrp.privates.mapper.vo.WorkContactEmployeeVo">
+        SELECT
+        a.id,
+        d.ghid as gh_id,
+        d.openid as open_id,
+        d.appid as app_id,
+        p.name as company_name
+        FROM mc_work_contact_employee_openid as d
+        LEFT JOIN mc_work_contact_employee AS a ON a.id = d.id
+        LEFT JOIN mc_corp AS p ON p.id = a.corp_id
+        <where>
+            ${ew.sqlSegment}
+        </where>
+        order by id desc
+        LIMIT #{limit}
+    </select>
+
     <select id="getHubListTotal" resultType="Integer">
         SELECT
             count(*)

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

@@ -24,6 +24,8 @@ public interface WorkContactEmployeeService extends IService<WorkContactEmployee
 
     public Map<String, Object> getHubPageList(HubWorkContactEmployeeHandle handle);
 
+    public Map<String, Object> getCronHubPageList();
+
     public void export(Downfile downFile,GetWorkContactEmployeeHandle handle);
 
     public void formatChanelCode();

+ 75 - 0
src/main/java/com/mokamrp/privates/service/impl/WorkContactEmployeeServiceImpl.java

@@ -64,6 +64,33 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
 
 
     @Override
+    public Map<String, Object> getCronHubPageList() {
+        List<Map<String,Object>> resList = new ArrayList<Map<String,Object>>();
+
+        Integer nextId = 0;
+
+        while(true){
+            QueryWrapper<WorkContactEmployeeVo> obj = new QueryWrapper<WorkContactEmployeeVo>();
+
+            if(!nextId.equals(0)){
+                obj.lt("d.id",nextId);
+            }
+
+            List<WorkContactEmployeeVo> list = mapperObj.getCronHubVoList(obj,50);
+            if(list.size() <=0){
+                break;
+            }
+
+            nextId = synTyperTag(list);
+            if(nextId.equals(0)){
+                break;
+            }
+        }
+
+        return null;
+    }
+
+    @Override
     public Map<String, Object> getHubPageList(HubWorkContactEmployeeHandle handle) {
 
         List<Map<String,Object>> resList = new ArrayList<Map<String,Object>>();
@@ -85,6 +112,54 @@ public class WorkContactEmployeeServiceImpl extends ServiceImpl<WorkContactEmplo
         return resMap;
     }
 
+    private Integer synTyperTag(List<WorkContactEmployeeVo> list){
+
+        Integer nextId = 0;
+        int j = list.size();
+        int t;
+        List<Map<String,Object>> resList = new ArrayList<Map<String,Object>>();
+
+        for (int i = 0; i < j; i++) {
+            Map<String, Object> map = new HashMap<String,Object>();       //数据采用的哈希表结构
+            if(list.get(i).getOpenId() == null || list.get(i).getOpenId().isEmpty()){
+                continue;
+            }
+            map.put("openid", list.get(i).getOpenId());
+            map.put("appid", list.get(i).getAppId());
+            map.put("private_domain", 1);
+            map.put("main_body", list.get(i).getCompanyName());
+            resList.add(map);
+            nextId = list.get(i).getId();
+        }
+
+        HttpPost post = new HttpPost("http://yitian.mokagm.com/v1/external/fans/info");
+        // (2) 使用HttpClient发送get请求,获得返回结果HttpResponse
+        DefaultHttpClient http = new DefaultHttpClient();
+        JSONObject jsobj1 = new JSONObject();
+        post.setHeader("Content-Type", "application/json");
+
+        String json =  JSON.toJSONString(resList);
+
+        StringEntity s = new StringEntity(json, "utf-8");
+        s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
+        post.setEntity(s);
+
+        try {
+            HttpResponse response = http.execute(post);
+
+            if (response.getStatusLine().getStatusCode() == 200) {
+                HttpEntity resEntity = response.getEntity();
+                String message = EntityUtils.toString(resEntity, "utf-8");
+            }
+
+
+        }catch (Exception e){
+            return nextId;
+        }
+
+        return nextId;
+    }
+
     private List<WorkContactEmployeeVo> getTyperTag(List<WorkContactEmployeeVo> list){
 
         int j = list.size();

+ 50 - 0
src/main/java/com/mokamrp/privates/tast/SynTagTask.java

@@ -0,0 +1,50 @@
+package com.mokamrp.privates.tast;
+
+import com.aliyun.datahub.client.DatahubClient;
+import com.aliyun.datahub.client.exception.DatahubClientException;
+import com.aliyun.datahub.client.model.PutRecordsResult;
+import com.aliyun.datahub.client.model.RecordEntry;
+import com.aliyun.datahub.client.model.RecordSchema;
+import com.aliyun.datahub.client.model.TupleRecordData;
+import com.mokamrp.privates.entity.JobContactEmployee;
+import com.mokamrp.privates.mapper.vo.WorkContactEmployeeHubVo;
+import com.mokamrp.privates.service.WorkContactEmployeeService;
+import com.mokamrp.privates.utils.RedisUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class SynTagTask {
+
+    @Autowired
+    private WorkContactEmployeeService workContactEmployeeService;
+
+    @Resource
+    private RedisUtil redisUtil;
+
+    @Resource
+    private DatahubClient datahubClient;
+
+    @Value("${datahub.topic}")
+    private String topic;
+
+    @Value("${datahub.project}")
+    private String project;
+
+    /**
+     * 导出任务,单进程
+     */
+    @Scheduled(cron="0 35 3,16,20 * * *")
+    public void execute() {
+        System.out.println("执行typer同步任务,当前时间"+(new Date())+",当前长度"+redisUtil.lGetListSize(JobContactEmployee.QUEUE_KEY));
+        workContactEmployeeService.getCronHubPageList();
+    }
+}