Commit 8e64ca03 authored by 吴泽佳's avatar 吴泽佳

新增小程序二维码生成逻辑

parent 9405e012
package com.tanpu.feo.feojob.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.Charset;
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory){
RestTemplate restTemplate= new RestTemplate(factory);
// 支持中文编码
restTemplate.getMessageConverters().set(1,
new StringHttpMessageConverter(Charset.forName("UTF-8")));
return restTemplate;
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(5000);//单位为ms
factory.setConnectTimeout(5000);//单位为ms
return factory;
}
}
......@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.MD5;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.tanpu.feo.feojob.entity.*;
import com.tanpu.feo.feojob.jobs.dto.WorkDataDto;
......@@ -18,8 +19,10 @@ import me.chanjar.weixin.cp.bean.Gender;
import me.chanjar.weixin.cp.bean.WxCpDepart;
import me.chanjar.weixin.cp.bean.WxCpUser;
import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.util.*;
......@@ -54,6 +57,12 @@ public class OrgSyncByWxcpJob {
private OrgSyncByWxcpService orgSyncByWxcpService;
@Resource
private IfaAssetsService ifaAssetsService;
@Value("${wx.xcxqrcode}")
String qrcodeurl;
@Value("${user.wxDefaultImg}")
String wxDefaultImg;
@Resource
private RestTemplate restTemplate;
@Scheduled(cron="0 30 2 * * ?") //每日凌晨2点30执行
public void execute(){
......@@ -436,10 +445,11 @@ public class OrgSyncByWxcpJob {
continue;
}
// 更新
if (!userInfo.getUiUsername().equals(wxCpUser.getName()) || StrUtil.isBlankIfStr(userInfo.getUiHeadimgMp()) || !wxCpUser.getUserId().equals(userInfo.getWxcpUid())) {
if (!userInfo.getUiUsername().equals(wxCpUser.getName()) || StrUtil.isBlankIfStr(userInfo.getUiHeadimgMp()) || !wxCpUser.getUserId().equals(userInfo.getWxcpUid()) || StrUtil.isBlankIfStr(userInfo.getUiWechatXcxQrcode())) {
userInfo.setUiUsername(wxCpUser.getName());
userInfo.setUiHeadimgMp(wxCpUser.getThumbAvatar());
userInfo.setWxcpUid(wxCpUser.getUserId());
userInfo.setUiWechatXcxQrcode(createWechatXcxQrcode(userInfo.getId(), wxCpUser.getThumbAvatar()));
updateList.add(userInfo);
}
hashMap.remove(id);
......@@ -477,6 +487,7 @@ public class OrgSyncByWxcpJob {
userInfo.setUiRegisterTime(userInfo.getCreatetime());
userInfo.setUiChannel(null);
userInfo.setWxcpUid(wxCpUser.getUserId());
userInfo.setUiWechatXcxQrcode(createWechatXcxQrcode(userInfo.getId(),userInfo.getUiHeadimgMp()));
insertList.add(userInfo);
}
workDataDto.setDeleteList(deleteList);
......@@ -485,6 +496,26 @@ public class OrgSyncByWxcpJob {
return workDataDto;
}
private String createWechatXcxQrcode(String userId, String headImg) {
if (StrUtil.isBlank(headImg)) {
headImg = wxDefaultImg;
}
String res = restTemplate.getForObject(qrcodeurl + "?userId=" + userId + "&headimage=" + headImg + "&params=" + userId, String.class);
JSONObject jsonObject = JSONUtil.parseObj(res);
String url = null;
try {
String statusCode = (String) jsonObject.get("statusCode");
if ("0000".equals(statusCode)) {
url = (String) jsonObject.get("attributes");
}
} catch (Exception e) {
log.error("======用户:{} 生成小程序二维码失败: {}======", userId, e.getMessage());
} finally {
return url;
}
}
private String isExecute(String isAuto, List<WxCpDepartDto> wxCpDepartDtoList, String md5WxcpData) {
String digestHex = MD5.create().digestHex(JSONUtil.toJsonStr(wxCpDepartDtoList));
if (!"Y".equals(isAuto)) {
......
......@@ -34,4 +34,12 @@ spring:
# url: jdbc:mysql://rm-uf6r22t3d798q4kmkao.mysql.rds.aliyuncs.com:3306/tamp_feo_diagnose_app?useUnicode=true&characterEncoding=utf-8&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
# username: tamp_admin
# password: '@imeng123'
#用户
user:
wxDefaultImg: https://qimengimg.oss-cn-shanghai.aliyuncs.com/common/fatoolsHeadImg.png
#微信
wx:
#用户小程序二维码生成接口 wxb0e9fdb02bbfcc25为小程序appid
xcxqrcode: https://feotesttamper.tanpuyun.com/wxmini/wx/user/wx12c5764ee9aeab05/getBallCodeByDetails
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment