package com.ld.igds.phone.service.impl; import com.alibaba.fastjson.JSONObject; import com.ld.igds.sec.manager.SecManager; import com.ld.igds.constant.RespCodeEnum; import com.ld.igds.data.PageResponse; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.io.request.ExeDevice; import com.ld.igds.io.response.DeviceControlResponse; import com.ld.igds.phone.constant.PhoneConstant; import com.ld.igds.phone.dto.AuthUser; import com.ld.igds.phone.dto.PhoneResponse; import com.ld.igds.phone.param.ParamExeDevice; import com.ld.igds.phone.param.PhoneRequest; import com.ld.igds.phone.service.PhoneService; import com.ld.igds.phone.util.PhoneRespUtil; import com.ld.igds.sec.dto.SecurityParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * 设备控制-门禁操作 * * @author chen */ @Service public class ServiceImpl5405 implements PhoneService { @Autowired private SecManager securityManager; @Override public String getInterfaceId() { return PhoneConstant.API_PHONE_5405; } @SuppressWarnings("unchecked") @Override public PhoneResponse execute(PhoneRequest req, AuthUser authUser) throws Exception { SecurityParam param = new SecurityParam(); List list = new ArrayList<>(); ExeDevice device; //转化请求的设备参数 for (JSONObject jsonObject : req.getData1()) { ParamExeDevice paramExeDevice = JSONObject.parseObject(jsonObject.toString(), ParamExeDevice.class); device = new ExeDevice(); device.setId(paramExeDevice.getId()); device.setCompanyId(authUser.getCompanyId()); device.setDepotId(paramExeDevice.getDepotId()); device.setPassCode(paramExeDevice.getPassCode()); device.setName(paramExeDevice.getName()); device.setSerId(paramExeDevice.getSerId()); device.setType(paramExeDevice.getType()); device.setLink(paramExeDevice.getLink()); device.setTargetStatus(paramExeDevice.getTargetStatus()); list.add(device); } param.setDeviceList(list); param.setDepotId(list.get(0).getDepotId()); param.setCompanyId(authUser.getCompanyId()); //先验证门禁权限码 PageResponse resp = securityManager.checkToken(req.getOutId(), param.getDepotId(), authUser.getDeptId(), authUser.getCompanyId()); if (!RespCodeEnum.CODE_0000.getCode().equals(resp.getCode())) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, resp.getMsg()); } //执行操作 DeviceControlResponse response = securityManager.controlDevice(param); if (OrderRespEnum.ORDER_ERROR.getCode().equals(response.getCode())) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, response.getMsg()); } else { return PhoneRespUtil.success(response.getMsg(), req); } } }