Commit 6adcad5b by 徐高华

企微托管

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