|
|
@@ -171,7 +171,7 @@ public class QwDataCallbackService {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- logger.info("已通过 getPermanentCode 异步完成主体 {} 的永久授权码更新",
|
|
|
+ logger.info("已通过 getPermanentCode 异步完成主体 {} 的永久授权码更新",
|
|
|
permanentCode.getAuth_corp_info() != null ? permanentCode.getAuth_corp_info().getCorp_name() : corpId);
|
|
|
}
|
|
|
|
|
|
@@ -277,25 +277,39 @@ public class QwDataCallbackService {
|
|
|
|
|
|
break;
|
|
|
case "change_contact" :
|
|
|
+
|
|
|
if (changeType.equals("create_user")){
|
|
|
String userID = root.getElementsByTagName("UserID").item(0).getTextContent();
|
|
|
QwUser qw = qwUserMapper.selectQwUserByCorpIdAndUserId(corpId, userID);
|
|
|
- QwUser qwUser = new QwUser();
|
|
|
- qwUser.setQwUserId(userID);
|
|
|
- qwUser.setCreateTime(new Date());
|
|
|
- qwUser.setCorpId(corpId);
|
|
|
-
|
|
|
- if (qw==null){
|
|
|
- String serverQwUserName = qwApiService.getServerQwUserName(corpId, qwCompany.getOpenSecret(), userID,qwCompany.getPermanentCode());
|
|
|
+ String accessToken = qwApiService.getToken(corpId, qwCompany.getPermanentCode());
|
|
|
+ String qwOpenUserId = qwApiService.getOpenUserid(accessToken, userID, corpId);
|
|
|
+ String serverQwUserName = qwApiService.getServerQwUserName(corpId, qwCompany.getOpenSecret(), userID, qwCompany.getPermanentCode());
|
|
|
+ QwOpenidByUserParams param1=new QwOpenidByUserParams();
|
|
|
+ param1.setUserid(userID);
|
|
|
+ QwOpenidResult qwOpenid = qwApiService.useridToOpenid(param1, corpId);
|
|
|
+ String department = root.getElementsByTagName("Department").item(0).getTextContent().toString();
|
|
|
+ if (qw == null){
|
|
|
+ // 第一次回调,插入基础数据
|
|
|
+ QwUser qwUser = new QwUser();
|
|
|
qwUser.setQwUserId(userID);
|
|
|
- qwUser.setDepartment(root.getElementsByTagName("Department").item(0).getTextContent().toString());
|
|
|
+ qwUser.setCreateTime(new Date());
|
|
|
+ qwUser.setCorpId(corpId);
|
|
|
+ qwUser.setQwOpenUserId(qwOpenUserId);
|
|
|
+ qwUser.setDepartment(department);
|
|
|
qwUser.setQwUserName(serverQwUserName);
|
|
|
- QwOpenidByUserParams param1=new QwOpenidByUserParams();
|
|
|
- param1.setUserid(userID);
|
|
|
- QwOpenidResult qwOpenid = qwApiService.useridToOpenid(param1, corpId);
|
|
|
- qwUser.setOpenid(qwOpenid.getOpenid());
|
|
|
+ qwUser.setOpenid(qwOpenid != null ? qwOpenid.getOpenid() : null);
|
|
|
qwUserMapper.insertQwUser(qwUser);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
+ // 第二次回调,补充更新 qwUserName 和 openid
|
|
|
+ if (serverQwUserName != null && !serverQwUserName.isEmpty()) {
|
|
|
+ qw.setQwUserName(serverQwUserName);
|
|
|
+ }
|
|
|
+ if (qwOpenid != null && qwOpenid.getOpenid() != null && !qwOpenid.getOpenid().isEmpty()) {
|
|
|
+ qw.setOpenid(qwOpenid.getOpenid());
|
|
|
+ }
|
|
|
+ if (qw.getQwOpenUserId() == null || qw.getQwOpenUserId().isEmpty()) {
|
|
|
+ qw.setQwOpenUserId(qwOpenUserId);
|
|
|
+ }
|
|
|
qw.setIsDel(0);
|
|
|
qw.setUpdateTime(new Date());
|
|
|
qwUserMapper.updateQwUser(qw);
|