package com.java110.common.cmd.machineTranslate; import com.alibaba.fastjson.JSONObject; import com.java110.core.annotation.Java110Cmd; import com.java110.core.context.ICmdDataFlowContext; import com.java110.core.event.cmd.CmdEvent; import com.java110.core.event.service.api.ServiceDataFlowEventPublishing; import com.java110.core.event.service.api.ServiceDataFlowListener; import com.java110.intf.common.IFileInnerServiceSMO; import com.java110.intf.common.IFileRelInnerServiceSMO; import com.java110.intf.common.IMachineInnerServiceSMO; import com.java110.intf.common.IMachineTranslateInnerServiceSMO; import com.java110.intf.community.ICommunityInnerServiceSMO; import com.java110.intf.user.IOwnerInnerServiceSMO; import com.java110.utils.constant.CommonConstant; import com.java110.utils.constant.ServiceCodeMachineTranslateConstant; import com.java110.utils.exception.CmdException; import com.java110.utils.util.Assert; import com.java110.utils.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import java.text.ParseException; import java.util.List; import java.util.Map; @Java110Cmd(serviceCode = "machineTranslate.machineHeartbeart") public class MachineHeartbeatCmd extends BaseMachineCmd{ @Autowired private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl; @Autowired private IMachineInnerServiceSMO machineInnerServiceSMOImpl; @Autowired private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl; @Autowired private ICommunityInnerServiceSMO communityInnerServiceSMOImpl; @Autowired private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl; @Autowired private IFileInnerServiceSMO fileInnerServiceSMOImpl; @Override public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException { Map reqHeader = context.getReqHeaders(); //设备通用校验 //super.validateMachineHeader(event, reqJson); if (StringUtil.isEmpty(reqHeader.get("command"))) { reqHeader.put("command", "gettask"); } } @Override public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException { Map reqHeader = context.getReqHeaders(); String command = reqHeader.get("command"); String serviceCode = ""; //校验报文格式信息, 不做判断 让下游判断 /*if (!validateMachineBody(event, context, reqJson, machineInnerServiceSMOImpl)) { return; }*/ //获取任务 if ("gettask".equals(command)) { serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_GET_TASK_INFO; } else if ("getface".equals(command)) { serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_QUERY_USER_INFO; } else if ("record".equals(command)) { serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_UPLOAD_FACE_LOG; } else if ("report".equals(command)) { //this.report(event, context, reqJson, reqHeader, headers); // return; serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_CMD_RESULT; } else { JSONObject outParam = new JSONObject(); outParam.put("code", -1); outParam.put("message", "当前不支持该命令" + command); ResponseEntity responseEntity = new ResponseEntity<>(outParam.toJSONString(), HttpStatus.OK); context.setResponseEntity(responseEntity); return; } //获取下游侦听处理类 // List listeners = ServiceDataFlowEventPublishing.getListeners(serviceCode, CommonConstant.HTTP_METHOD_POST); // Assert.listOnlyOne(listeners, "存在多个侦听来处理门禁对接,是不允许的"); // // //调用相应侦听来处理业务逻辑 // ServiceDataFlowListener listener = listeners.get(0); // listener.soService(event); } }