Commit 6adcad5b by 徐高华

企微托管

parent 45775ce3
...@@ -10,7 +10,6 @@ import com.gic.haoban.manage.api.service.OpenStaffApiService; ...@@ -10,7 +10,6 @@ import com.gic.haoban.manage.api.service.OpenStaffApiService;
import com.gic.haoban.task.manage.api.dto.open.OpenQwMessageDTO; import com.gic.haoban.task.manage.api.dto.open.OpenQwMessageDTO;
import com.gic.haoban.task.manage.api.enums.OpenQwMsgTypeEnum; import com.gic.haoban.task.manage.api.enums.OpenQwMsgTypeEnum;
import com.gic.mq.sdk.GicMQClient; import com.gic.mq.sdk.GicMQClient;
import io.reactivex.Completable;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -30,69 +29,69 @@ public class QywxCallbackController extends WebBaseController { ...@@ -30,69 +29,69 @@ public class QywxCallbackController extends WebBaseController {
GicMQClient gicMQClient = GICMQClientUtil.getClientInstance(); GicMQClient gicMQClient = GICMQClientUtil.getClientInstance();
@Autowired @Autowired
private OpenStaffApiService openStaffApiService; private OpenStaffApiService openStaffApiService ;
@Autowired @Autowired
private com.gic.haoban.task.manage.api.service.OpenQwApiService openQwApiService; private com.gic.haoban.task.manage.api.service.OpenQwApiService openQwApiService ;
@RequestMapping("qywx-msg-notice") @RequestMapping("qywx-msg-notice")
@IgnoreLogin @IgnoreLogin
public Object callback(HttpServletRequest request, HttpServletResponse response) { public Object callback(HttpServletRequest request , HttpServletResponse response) {
try { try {
String body = IOUtils.toString(request.getInputStream()); String body = IOUtils.toString(request.getInputStream()) ;
logger.info("企微消息下发={}", body); logger.info("企微消息下发={}",body);
JSONObject jsonObject = JSONObject.parseObject(body); JSONObject jsonObject = JSONObject.parseObject(body) ;
int type = jsonObject.getIntValue("type"); int type = jsonObject.getIntValue("type") ;
String uuid = jsonObject.getString("uuid"); String uuid = jsonObject.getString("uuid") ;
Long qwStaffId = jsonObject.getLong("vid"); Long qwStaffId = jsonObject.getLong("vid") ;
JSONObject json = jsonObject.getJSONObject("json"); JSONObject json = jsonObject.getJSONObject("json") ;
this.post(type, uuid, json, qwStaffId); this.post(type,uuid,json , qwStaffId);
Map<String, String> map = new HashMap<>(); Map<String,String> map = new HashMap<>() ;
map.put("errcode", "0"); map.put("errcode","0") ;
map.put("errmsg", "ok"); map.put("errmsg","ok") ;
return map; return map ;
} catch (Exception e) { }catch (Exception e) {
logger.info("异常", e); logger.info("异常",e);
} }
return "ok"; return "ok" ;
} }
private void post(int type, String uuid, JSONObject json, Long qwStaffId) { private void post(int type , String uuid , JSONObject json , Long qwStaffId) {
switch (type) { switch (type) {
case 116002: case 116002:
this.addFriend(json, qwStaffId); this.addFriend(json , qwStaffId) ;
break; break;
case 102000: case 102000:
this.chat(uuid, json); this.chat(uuid,json) ;
break; break;
case 100001: case 100001 :
this.v100001(uuid, json); this.v100001(uuid,json) ;
break; break;
case 100002: case 100002 :
this.v100002(uuid, json); this.v100002(uuid,json) ;
break; break;
case 100003: case 100003 :
this.v100003(uuid, json); this.v100003(uuid,json) ;
break; break;
case 100004: case 100004 :
this.v100004(uuid, json); this.v100004(uuid,json) ;
break; break;
case 100005: case 100005 :
this.close(uuid, OpenStaffOfflineEnum.OFFLINE3); this.close(uuid,OpenStaffOfflineEnum.OFFLINE3) ;
break; break;
case 104001: case 104001 :
this.loginSuccess(uuid, json); this.loginSuccess(uuid,json) ;
break; break;
case 100012: case 100012 :
this.v100012(uuid, json); this.v100012(uuid,json) ;
break; break;
case 100009: case 100009 :
this.v100009(uuid, json); this.v100009(uuid,json) ;
break; break;
case 100008: case 100008:
this.close(uuid, OpenStaffOfflineEnum.OFFLINE4); this.close(uuid,OpenStaffOfflineEnum.OFFLINE4);
break; break;
case 100007: case 100007:
this.close(uuid, OpenStaffOfflineEnum.OFFLINE2); this.close(uuid,OpenStaffOfflineEnum.OFFLINE2);
break; break;
default: default:
break; break;
...@@ -134,18 +133,20 @@ public class QywxCallbackController extends WebBaseController { ...@@ -134,18 +133,20 @@ public class QywxCallbackController extends WebBaseController {
this.openQwApiService.saveNotice(json.toJSONString()); this.openQwApiService.saveNotice(json.toJSONString());
return; return;
} }
List<String> msgList = Arrays.asList("0", "2", "101"); // 6 位置
if (!msgList.contains(msgtype + "")) { // 41 名片
List<String> msgList = Arrays.asList("0","2","101","6","41") ;
if(!msgList.contains(msgtype+"")) {
logger.info("不处理的消息"); logger.info("不处理的消息");
return; return ;
} }
logger.info("处理消息"); logger.info("处理消息");
int isRoom = json.getIntValue("is_room"); int isRoom = json.getIntValue("is_room") ;
Long receiver = json.getLong("receiver"); Long receiver = json.getLong("receiver") ;
Long sender = json.getLong("sender"); Long sender = json.getLong("sender") ;
String content = json.getString("content"); String content = json.getString("content") ;
String fileId = json.getString("file_id"); String fileId = json.getString("file_id") ;
Long roomId = json.getLong("room_conversation_id"); Long roomId = json.getLong("room_conversation_id") ;
OpenQwMessageDTO msg = new OpenQwMessageDTO(); OpenQwMessageDTO msg = new OpenQwMessageDTO();
msg.setIsRoom(isRoom); msg.setIsRoom(isRoom);
msg.setUuid(uuid); msg.setUuid(uuid);
...@@ -155,15 +156,36 @@ public class QywxCallbackController extends WebBaseController { ...@@ -155,15 +156,36 @@ public class QywxCallbackController extends WebBaseController {
msg.setRoomId(roomId); msg.setRoomId(roomId);
msg.setFileId(fileId); msg.setFileId(fileId);
msg.setSendTime(json.getLong("send_time")); msg.setSendTime(json.getLong("send_time"));
if (msgtype == 101) { if(msgtype==101) {
msg.setAeskey(json.getString("aeskey")); msg.setAeskey(json.getString("aeskey"));
} }
if (msgtype == 14) { if(msgtype==14) {
msg.setAeskey(json.getString("aes_key")); msg.setAeskey(json.getString("aes_key"));
} }
msg.setOpenimCdnAuthkey(json.getString("openim_cdn_authkey")); msg.setOpenimCdnAuthkey(json.getString("openim_cdn_authkey"));
if (msgtype == 101 || msgtype == 14) { if(msgtype==101 || msgtype==14) {
msg.setMsgtype(OpenQwMsgTypeEnum.IMAGE); msg.setMsgtype(OpenQwMsgTypeEnum.IMAGE);
}else if(msgtype==6) {
msg.setMsgtype(OpenQwMsgTypeEnum.LOCAL);
msg.setContent(json.getString("address"));
}else if (msgtype==41) {
msg.setMsgtype(OpenQwMsgTypeEnum.NAME);
msg.setContent(json.getString("nickname"));
}else if (msgtype==40) {
msg.setMsgtype(OpenQwMsgTypeEnum.VIDEO_TEL);
msg.setContent(json.getString("nickname"));
}else if (msgtype==15) {
msg.setMsgtype(OpenQwMsgTypeEnum.VIDEO);
msg.setContent(json.getString("nickname"));
}else if (msgtype==41) {
msg.setMsgtype(OpenQwMsgTypeEnum.NAME);
msg.setContent(json.getString("nickname"));
}else if (msgtype==41) {
msg.setMsgtype(OpenQwMsgTypeEnum.NAME);
msg.setContent(json.getString("nickname"));
}else if (msgtype==41) {
msg.setMsgtype(OpenQwMsgTypeEnum.NAME);
msg.setContent(json.getString("nickname"));
} else { } else {
msg.setMsgtype(OpenQwMsgTypeEnum.text); msg.setMsgtype(OpenQwMsgTypeEnum.text);
} }
...@@ -176,57 +198,50 @@ public class QywxCallbackController extends WebBaseController { ...@@ -176,57 +198,50 @@ public class QywxCallbackController extends WebBaseController {
} }
private void setSendType(int msgtype, OpenQwMessageDTO msg) { private void setSendType(int msgtype , OpenQwMessageDTO msg) {
if (msgtype == 101) { if(msgtype==101) {
msg.setSendType(2); msg.setSendType(2);
} else if (msgtype == 14) { }else if(msgtype==14) {
msg.setSendType(1); msg.setSendType(1);
} else { }else {
msg.setSendType(0); msg.setSendType(0);
} }
} }
private void v100012(String uuid, JSONObject json) { private void v100012(String uuid , JSONObject json) {
logger.info("需要二次扫码"); logger.info("需要二次扫码");
this.openStaffApiService.update2QrcodeFlag(uuid); this.openStaffApiService.update2QrcodeFlag(uuid) ;
} }
private void v100009(String uuid , JSONObject json) {
private void v100009(String uuid, JSONObject json) {
logger.info("超时未扫码关闭"); logger.info("超时未扫码关闭");
this.openStaffApiService.updateLoginStep(uuid, QwOpenStepEnum.step3.getStep()); this.openStaffApiService.updateLoginStep(uuid, QwOpenStepEnum.step3.getStep()) ;
} }
private void v100001(String uuid , JSONObject json) {
private void v100001(String uuid, JSONObject json) { logger.info("用户扫码={}",uuid);
logger.info("用户扫码={}", uuid); this.openStaffApiService.updateLoginStep(uuid,QwOpenStepEnum.step1.getStep()) ;
this.openStaffApiService.updateLoginStep(uuid, QwOpenStepEnum.step1.getStep()); }
} private void v100004(String uuid , JSONObject json) {
logger.info("需要输入验证码校验={}",uuid);
private void v100004(String uuid, JSONObject json) { this.openStaffApiService.updateValiFlag(uuid) ;
logger.info("需要输入验证码校验={}", uuid); }
this.openStaffApiService.updateValiFlag(uuid); private void v100002(String uuid , JSONObject json) {
} logger.info("验证码校验成功返回={}",uuid);
this.openStaffApiService.updateLoginStep(uuid,QwOpenStepEnum.step4.getStep()) ;
private void v100002(String uuid, JSONObject json) { }
logger.info("验证码校验成功返回={}", uuid); private void loginSuccess(String uuid , JSONObject json) {
this.openStaffApiService.updateLoginStep(uuid, QwOpenStepEnum.step4.getStep()); logger.info("登录成功={}",uuid);
} Long qwCorpId = json.getLong("corp_id") ;
Long qwUserid = json.getLong("user_id") ;
private void loginSuccess(String uuid, JSONObject json) { String corpName = json.getString("corp_name") ;
logger.info("登录成功={}", uuid); this.openStaffApiService.login(uuid,qwCorpId,corpName,qwUserid) ;
Long qwCorpId = json.getLong("corp_id"); }
Long qwUserid = json.getLong("user_id"); private void close(String uuid , OpenStaffOfflineEnum offlineEnum) {
String corpName = json.getString("corp_name"); logger.info("退出={}",uuid);
this.openStaffApiService.login(uuid, qwCorpId, corpName, qwUserid); this.openStaffApiService.logout(uuid, offlineEnum) ;
} }
private void v100003(String uuid , JSONObject json) {
private void close(String uuid, OpenStaffOfflineEnum offlineEnum) { logger.info("取消登录={}",uuid);
logger.info("退出={}", uuid); this.openStaffApiService.updateLoginStep(uuid,QwOpenStepEnum.step2.getStep()) ;
this.openStaffApiService.logout(uuid, offlineEnum);
}
private void v100003(String uuid, JSONObject json) {
logger.info("取消登录={}", uuid);
this.openStaffApiService.updateLoginStep(uuid, QwOpenStepEnum.step2.getStep());
} }
} }
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