com.neusoft.mid.clwapi.service.monitor.monitorServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.neusoft.mid.clwapi.service.monitor.monitorServiceImpl.java

Source

/**
 * @(#)monitorServiceImpl.java 2013-3-26
 *
 * Copyright 2013 Neusoft Group Ltd. All rights reserved.
 * Neusoft PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.neusoft.mid.clwapi.service.monitor;

import java.util.List;

import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Response;

import org.apache.commons.lang.StringUtils;
import org.apache.cxf.jaxrs.ext.MessageContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

import com.neusoft.mid.clwapi.common.ErrorConstant;
import com.neusoft.mid.clwapi.common.ModCommonConstant;
import com.neusoft.mid.clwapi.common.UserInfoKey;
import com.neusoft.mid.clwapi.entity.monitor.CarOrgInfo;
import com.neusoft.mid.clwapi.entity.monitor.MonitorResp;
import com.neusoft.mid.clwapi.entity.monitor.RealTimeInfo;
import com.neusoft.mid.clwapi.exception.common.ApplicationException;
import com.neusoft.mid.clwapi.mapper.MonitorMapper;
import com.neusoft.mid.clwapi.tools.BusinessUtil;
import com.neusoft.mid.clwapi.tools.CheckRequestParam;
import com.neusoft.mid.clwapi.tools.JacksonUtils;

/**
 * @author <a href="mailto:suyingtao@neusoft.com">suyingtao </a>
 * @version $Revision 1.0 $ 2013-3-26 ?1:05:36
 */
public class monitorServiceImpl implements monitorService {

    /**
     * .
     */
    private static Logger logger = LoggerFactory.getLogger(ModCommonConstant.LOGGER_NAME);

    @Autowired
    private MonitorMapper monitorMapper;

    @Context
    private MessageContext context;

    /**
     * ?.
     * 
     * @param token
     *            ?.
     * @return ???.
     */
    @Override
    public String getMonitorInfo(String token) {
        String epid = context.getHttpHeaders().getHeaderString(UserInfoKey.ENTERPRISE_ID);
        String orgID = context.getHttpHeaders().getHeaderString(UserInfoKey.ORGANIZATION_ID);
        logger.info("-?ID:" + epid + ",ID:" + orgID);

        if (CheckRequestParam.isEmpty(epid) || CheckRequestParam.isEmpty(orgID)) {
            logger.info("-?IDID");
            throw new ApplicationException(ErrorConstant.ERROR90000, Response.Status.INTERNAL_SERVER_ERROR);
        }

        logger.info("");
        MonitorResp result = monitorMapper.getETCarsNum(epid, orgID);

        logger.info("???");
        List<CarOrgInfo> carinfos = monitorMapper.getETCarAngOrg(epid, orgID);

        result.setCarInfos(carinfos);
        return JacksonUtils.toJsonRuntimeException(result);
    }

    /**
     * ??.
     * 
     * @param token
     *            ?.
     * @param vin
     *            VIN.
     * @return ?.
     */
    @Override
    public Response getRealTimeInfo(String token, String vin) {
        vin = StringUtils.strip(vin);
        String epid = context.getHttpHeaders().getHeaderString(UserInfoKey.ENTERPRISE_ID);
        logger.info("--?ID:" + epid + ",VIN:" + vin);

        if (CheckRequestParam.isEmpty(epid)) {
            logger.info("--?ID");
            throw new ApplicationException(ErrorConstant.ERROR90000, Response.Status.INTERNAL_SERVER_ERROR);
        }

        logger.info("?");
        RealTimeInfo car = monitorMapper.getRealInfobyVIN(epid, vin);
        if (CheckRequestParam.isEmpty(car)) {
            logger.info("--VIN" + vin + "?");
            return Response.status(Response.Status.NO_CONTENT).header(HttpHeaders.CACHE_CONTROL, "no-store")
                    .header("Pragma", "no-cache").build();
        }

        logger.info("???ID");
        car.setAlarmIDs(BusinessUtil.decodeAlarmStr(car.getAlarmStr()));
        car.setAlarmStr(null);

        logger.info("???");
        String[] passengers = monitorMapper.getPassengersbyVIN(vin);
        if (!CheckRequestParam.isEmpty(passengers)) {
            car.setPassengers(passengers);
        }
        return Response.ok(JacksonUtils.toJsonRuntimeException(car)).header(HttpHeaders.CACHE_CONTROL, "no-store")
                .header("Pragma", "no-cache").build();
    }

}