|
@@ -1,9 +1,73 @@
|
|
|
package com.tzld.piaoquan.wecom.job;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.tzld.piaoquan.wecom.dao.mapper.StaffMapper;
|
|
|
+import com.tzld.piaoquan.wecom.model.bo.XxlJobParam;
|
|
|
+import com.tzld.piaoquan.wecom.model.po.Staff;
|
|
|
+import com.tzld.piaoquan.wecom.model.po.StaffExample;
|
|
|
+import com.tzld.piaoquan.wecom.service.AccessTokenService;
|
|
|
+import com.tzld.piaoquan.wecom.utils.HttpClientUtil;
|
|
|
+import com.tzld.piaoquan.wecom.utils.HttpPoolClient;
|
|
|
+import com.tzld.piaoquan.wecom.utils.LarkRobotUtil;
|
|
|
+import com.xxl.job.core.biz.model.ReturnT;
|
|
|
+import com.xxl.job.core.handler.annotation.XxlJob;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import static com.tzld.piaoquan.wecom.common.constant.WeComConstant.GET_WE_COM_EXTERNAL_CONTACT_LIST;
|
|
|
+import static com.tzld.piaoquan.wecom.common.constant.WeComConstant.GET_WE_COM_FOLLOW_USER_LIST;
|
|
|
+
|
|
|
+@Slf4j
|
|
|
@Component
|
|
|
public class WeComStaffDataJob {
|
|
|
|
|
|
-
|
|
|
+ private static final HttpPoolClient httpPoolClientDefault = HttpClientUtil.create(30000, 30000, 2000, 5000, 5, 30000);
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AccessTokenService accessTokenService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private StaffMapper staffMapper;
|
|
|
+
|
|
|
+ @XxlJob("insertStaffJob")
|
|
|
+ public ReturnT<String> insertStaff(String param) {
|
|
|
+ try {
|
|
|
+ List<String> carrierIdList = getCarrierIdList();
|
|
|
+ for (String carrierId: carrierIdList){
|
|
|
+ StaffExample example = new StaffExample();
|
|
|
+ example.createCriteria().andCarrierIdEqualTo(carrierId);
|
|
|
+ List<Staff> staffList = staffMapper.selectByExample(example);
|
|
|
+ if(CollectionUtils.isEmpty(staffList)){
|
|
|
+ Staff staff = new Staff();
|
|
|
+ staff.setCarrierId(carrierId);
|
|
|
+ staff.setRemark("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ LarkRobotUtil.sendMessage("更新员工失败");
|
|
|
+ log.error("insertStaff error",e);
|
|
|
+ }
|
|
|
+ return ReturnT.SUCCESS;
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<String> getCarrierIdList() throws IOException {
|
|
|
+ String weComAccessToken = accessTokenService.getWeComAccessToken();
|
|
|
+ String url = String.format(GET_WE_COM_FOLLOW_USER_LIST + "?access_token=%s", weComAccessToken);
|
|
|
+ String res = httpPoolClientDefault.get(url);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
+ Integer errcode = jsonObject.getInteger("errcode");
|
|
|
+ if (errcode == 0) {
|
|
|
+ return jsonObject.getJSONArray("follow_user").stream().map(String::valueOf).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
}
|