换装
This commit is contained in:
parent
d17b974c74
commit
aad9bd45c4
@ -35,7 +35,7 @@ public class U3dMsg {
|
||||
/**
|
||||
* 扩展参数
|
||||
*/
|
||||
private String extParam;
|
||||
private String exParam;
|
||||
/**
|
||||
* 坐标x
|
||||
*/
|
||||
|
||||
@ -10,12 +10,12 @@ import com.qiuguo.iot.box.websocket.api.domain.box.resp.BoxMessageResp;
|
||||
import com.qiuguo.iot.data.constants.YunxiRabbitConst;
|
||||
import com.qiuguo.iot.data.entity.device.DeviceUserBindEntity;
|
||||
import com.qiuguo.iot.data.entity.device.DeviceUserTalkRecordEntity;
|
||||
import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity;
|
||||
import com.qiuguo.iot.data.entity.system.SystemTalkBindDeviceEntity;
|
||||
import com.qiuguo.iot.data.entity.system.SystemTalkBindU3dEntity;
|
||||
import com.qiuguo.iot.data.request.device.DeviceUserBindRequest;
|
||||
import com.qiuguo.iot.data.request.qwen.TongYiCommunicationRest;
|
||||
import com.qiuguo.iot.data.request.system.SystemTalkBindDeviceRequest;
|
||||
import com.qiuguo.iot.data.request.system.SystemTalkBindU3dRequest;
|
||||
import com.qiuguo.iot.data.request.third.ThirdWeatherInfoRequest;
|
||||
import com.qiuguo.iot.data.resp.third.MusicResp;
|
||||
import com.qiuguo.iot.data.resp.third.weather.TianqiapiItemResp;
|
||||
@ -107,7 +107,7 @@ public class BaseWebSocketProcess {
|
||||
systemTalkBindDeviceService.selectSystemTalkBindDeviceByRequest(systemTalkBindDeviceRequest).map(sd -> {
|
||||
TuyaQuery query = new TuyaQuery();
|
||||
query.setDeviceId(db.getOtherDeviceId());
|
||||
query.setValue(u3dMsg.getExtParam());
|
||||
query.setValue(u3dMsg.getExParam());
|
||||
query.setUserHandlingDeviceId(sd.getUserHandlingId());
|
||||
tuyaDeviceService.controlDevice(query).map(isOk ->{
|
||||
log.info("U3D打开设备调用情况{}", isOk);
|
||||
@ -176,19 +176,20 @@ public class BaseWebSocketProcess {
|
||||
sendMq(JSONObject.toJSONString(u3dMsg));
|
||||
}
|
||||
|
||||
private void toU3DMq(Action action, SystemTalkBindU3dEntity systemTalkBindU3dEntity, Long metaId){
|
||||
private void toU3DMq(SystemTalkBindU3dEntity systemTalkBindU3dEntity, Long metaId){
|
||||
|
||||
U3dMsg u3dMsg = new U3dMsg();
|
||||
u3dMsg.setMsgType(systemTalkBindU3dEntity.getU3dType());
|
||||
u3dMsg.setMetaId(metaId);
|
||||
u3dMsg.setScenceId(action.getDeviceUserBindEntity().getScenceId());
|
||||
//u3dMsg.setScenceId(action.getDeviceUserBindEntity().getScenceId());
|
||||
u3dMsg.setExParam(systemTalkBindU3dEntity.getAnswerAction());
|
||||
u3dMsg.setStatusId(systemTalkBindU3dEntity.getU3dStatusId());
|
||||
|
||||
sendMq(JSONObject.toJSONString(u3dMsg));
|
||||
}
|
||||
|
||||
private void sendMq(String msg){
|
||||
log.info("通知U3DMQ");
|
||||
log.info("通知U3DMQ{}", msg);
|
||||
try{
|
||||
//发送消息到MQ,通知U3D
|
||||
mqService.sendMessageWithConfirmation(YunxiRabbitConst.EXCHANGE_YUNXI_EVENT,
|
||||
@ -392,29 +393,40 @@ public class BaseWebSocketProcess {
|
||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy年M月d日 H时m分 星期E");
|
||||
sendMessage(action, baseSession, action.getTime().getDetailTime().format(df), AskTypeEnum.TTS.getCode());
|
||||
}else if(action.getSystemTalkAnswerConfigEntity().getAnswerType().equals(AskTypeEnum.U3D.getCode())){
|
||||
systemTalkBindU3dService.selectSystemTalkBindU3dBySystemTalkId(action.getSystemTalkAnswerConfigEntity().getId())
|
||||
.defaultIfEmpty(new SystemTalkBindU3dEntity())
|
||||
.map(systemTalkBindU3d ->{
|
||||
if(systemTalkBindU3d.getId() == null){
|
||||
sendMessage(action, baseSession, "暂时不支持该指令", AskTypeEnum.TTS.getCode());
|
||||
return systemTalkBindU3d;
|
||||
}
|
||||
//数字人的id直接用用户id来代替
|
||||
if(U3dMsgTypeEnum.DANCE.getCode().equals(systemTalkBindU3d.getU3dType())){
|
||||
//推送客户端跳舞
|
||||
BoxMessageResp resp = new BoxMessageResp();
|
||||
resp.setType(AskTypeEnum.U3D.getCode());
|
||||
resp.setText("开始跳舞");
|
||||
ActionResp actionResp = new ActionResp();
|
||||
actionResp.setType(7);
|
||||
resp.setAction(actionResp);
|
||||
sendMessage(action, baseSession, resp);
|
||||
}else{
|
||||
//推送MQ换装
|
||||
toU3DMq(action, systemTalkBindU3d, baseSession.getUserId());
|
||||
}
|
||||
SystemTalkBindU3dRequest request = new SystemTalkBindU3dRequest();
|
||||
request.setSystemTalkId(action.getSystemTalkAnswerConfigEntity().getId());
|
||||
request.setAskCommon(action.getActionCommand());
|
||||
systemTalkBindU3dService.selectSystemTalkBindU3dByRequest(request)
|
||||
.defaultIfEmpty(new SystemTalkBindU3dEntity())
|
||||
.map(systemTalkBindU3d ->{
|
||||
if(systemTalkBindU3d.getId() == null){
|
||||
sendMessage(action, baseSession, "暂时不支持该指令", AskTypeEnum.TTS.getCode());
|
||||
return systemTalkBindU3d;
|
||||
}
|
||||
//数字人的id直接用用户id来代替
|
||||
if(U3dMsgTypeEnum.DANCE.getCode().equals(systemTalkBindU3d.getU3dType())){
|
||||
//推送客户端跳舞
|
||||
BoxMessageResp resp = new BoxMessageResp();
|
||||
resp.setType(AskTypeEnum.U3D.getCode());
|
||||
resp.setText("开始跳舞");
|
||||
ActionResp actionResp = new ActionResp();
|
||||
actionResp.setType(7);
|
||||
resp.setAction(actionResp);
|
||||
sendMessage(action, baseSession, resp);
|
||||
}else{
|
||||
//推送MQ换装
|
||||
toU3DMq(systemTalkBindU3d, baseSession.getUserId());
|
||||
DeviceUserTalkRecordEntity talkRecord = new DeviceUserTalkRecordEntity();
|
||||
talkRecord.setAskType(AskTypeEnum.U3D.getCode());
|
||||
talkRecord.setAskValue(action.getAsk());
|
||||
talkRecord.setAskKey(action.getAction());
|
||||
talkRecord.setAnswerValue("正在" + action.getAction() + ",请稍候");
|
||||
talkRecord.setUserId(baseSession.getUserId());
|
||||
talkRecord.setDeviceId(baseSession.getDeviceId());
|
||||
deviceUserTalkRecordService.insertDeviceUserTalkRecord(talkRecord).subscribe();
|
||||
}
|
||||
|
||||
return systemTalkBindU3d;
|
||||
return systemTalkBindU3d;
|
||||
}).subscribe();
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user