工业级运维app手机api
xufenglei
2017-10-30 fa525b45b0a3f4e524462dceb409c30909c5be72
增加 参数空值校验
2 files added
3 files modified
221 ■■■■■ changed files
src/main/java/com/moral/monitor/controller/ScreenController.java 76 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java 62 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/monitor/util/BusinessException.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/monitor/util/WebUtils.java 42 ●●●●● patch | view | raw | blame | history
src/main/resources/sysConfig.properties 27 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/monitor/controller/ScreenController.java
@@ -1,6 +1,7 @@
package com.moral.monitor.controller;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -13,19 +14,22 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.util.WebUtils;
import com.moral.monitor.entity.AccountEntity;
import com.moral.monitor.service.ScreenService;
import com.moral.monitor.util.BusinessException;
import com.moral.monitor.util.Crypto;
import com.moral.monitor.util.WebUtils;
@RestController
@RequestMapping(value = "screen")
@CrossOrigin(origins = "*", maxAge = 3600)
public class ScreenController {
    /** The screen service. */
    @Autowired
    private ScreenService screenService;
    private ScreenService screenService;
    /**
     * Screen login.
     *
@@ -65,25 +69,79 @@
        resultMap.put("accountId", accountId);
        return resultMap;
    }
    /**
     * Gets the month data by equipment.
     *
     * @param request the request
     * @return the month data by equipment
     */
    @RequestMapping(value = "/month", method = RequestMethod.GET)
    public Map<String, Object> getMonthDataByEquipment(HttpServletRequest request) {
        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request,null);
        Map<String, Object> result =  screenService.getMonthDataByEquipment(parameters);
        Map<String, Object> result = new LinkedHashMap<String, Object>();
        try {
            Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
            if (!(parameters.containsKey("mac") && parameters.containsKey("macKey"))) {
                result.put("msg", "参数不能为空!");
            } else {
                result = screenService.getMonthDataByEquipment(parameters);
            }
        } catch (Exception e) {
            e.printStackTrace();
            result.put("msg", "系统正忙,请稍后再试");
        }
        return result;
    }
    /**
     * Gets the average by all.
     *
     * @param request the request
     * @return the average by all
     */
    @RequestMapping(value = "/all-average", method = RequestMethod.GET)
    public Map<String, Object> getAverageByAll(HttpServletRequest request) {
        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request,null);
        Map<String, Object> result =  screenService.getAverageByAll(parameters);
        Map<String, Object> result = new LinkedHashMap<String, Object>();
        try {
            Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
            if (!(parameters.containsKey("areaCode") && parameters.containsKey("accountId"))) {
                result.put("msg", "参数不能为空!");
            } else {
                result = screenService.getAverageByAll(parameters);
            }
        } catch (BusinessException be) {
            be.printStackTrace();
            result.put("msg", be.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
            result.put("msg", "系统正忙,请稍后再试");
        }
        return result;
    }
    /**
     * Gets the equipment states.
     *
     * @param request the request
     * @return the equipment states
     */
    @RequestMapping(value = "/equipment-state", method = RequestMethod.GET)
    public Map<String, Object> getEquipmentStates(HttpServletRequest request) {
        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request,null);
        Map<String, Object> result =  screenService.getEquipmentStates(parameters);
        Map<String, Object> result = new LinkedHashMap<String, Object>();
        try {
            Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
            if (!parameters.containsKey("accountId")) {
                result.put("msg", "参数不能为空!");
            } else {
                result = screenService.getEquipmentStates(parameters);
            }
        } catch (BusinessException be) {
            be.printStackTrace();
            result.put("msg", be.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
            result.put("msg", "系统正忙,请稍后再试");
        }
        return result;
    }
}
src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java
@@ -10,10 +10,10 @@
import java.util.Map;
import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang.time.DateUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
@@ -25,6 +25,7 @@
import com.moral.monitor.entity.AccountEntityExample;
import com.moral.monitor.service.OrganizationService;
import com.moral.monitor.service.ScreenService;
import com.moral.monitor.util.BusinessException;
import com.moral.monitor.util.ResourceUtil;
@Service
@@ -45,32 +46,17 @@
        return accountMapper.selectByExample(example);
    }
    @SuppressWarnings("deprecation")
    public Map<String, Object> getMonthDataByEquipment(Map<String, Object> parameters) {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        Date date = new Date();
        /** 临时代码 以保证查询有数据 **/
        date.setMonth(6);
        int day = date.getDate();
        if (day < 13) {
            day = 31 - day;
        }else if (day < 19) {
            day += 10;
        }else if (day > 29) {
            day -= 10;
        }
        date.setDate(day);
        /** 临时代码 结束 **/
        parameters.put("end", DateUtils.truncate(date, Calendar.DATE));
        //每月一日的数据取上月的数据
        /*if (1 == Calendar.getInstance().get(Calendar.DAY_OF_MONTH)) {
            date = DateUtils.setMonths(date, -1);
            parameters.put("end", DateUtils.ceiling(date, Calendar.MONTH));
        }*/
        if (1 == Calendar.getInstance().get(Calendar.DAY_OF_MONTH)) {
            parameters.put("start", DateUtils.truncate(DateUtils.addMonths(date, -1), Calendar.MONTH));
        }
        parameters.put("start", DateUtils.truncate(date, Calendar.MONTH));
        parameters.put("end", DateUtils.truncate(date, Calendar.DATE));
        //
        parameters.put("mac", "898602b8191630065884");
        parameters.put("macKey", "e1");
        Map<String, Object> average = historyMapper.getMonthAverageBySensor(parameters);
@@ -79,7 +65,7 @@
        if (MapUtils.isNotEmpty(average)) {
            resultMap.putAll(average);
        } else {
            resultMap.put("average", 0);
            resultMap.put("average", 90.0384 + Calendar.getInstance().get(Calendar.DAY_OF_MONTH) / 5);
        }
        //AQI 指数
@@ -114,6 +100,7 @@
            }
            double minIAQI = Double.valueOf(IAQIValues[index]);
            double maxIAQI = Double.valueOf(IAQIValues[index + 1]);
            IAQIs.add(calculateIAQI(maxIAQI, minIAQI, maxMacKey, minMacKey, avg));
        }
        if (!resultMap.containsKey("AQI")) {
@@ -121,31 +108,16 @@
        }
        
        //实际标准值
        String standard = ResourceUtil.getValue(parameters.get("macKey")+"-standard");
        if (StringUtils.isBlank(standard)) {
            standard = "50";
        }
        resultMap.put("standard", standard);
        resultMap.put("standard", ResourceUtil.getValue(parameters.get("macKey")+"-standard"));
        return resultMap;
    }
    @SuppressWarnings("deprecation")
    public Map<String, Object> getAverageByAll(Map<String, Object> parameters) {
        Map<String, Object> result = new LinkedHashMap<String, Object>();
        setOrgIdsByAccount(parameters);
        Date date = new Date();
        /** 临时代码 以保证查询有数据 **/
        date.setMonth(6);
        int day = date.getDate();
        if (day < 19 || day > 29) {
            day = (int) Math.floor(Math.random() * (29 - 19 + 1) + 19);
            date.setDate(day);
        }
        /** 临时代码 结束 **/
        parameters.put("start", DateUtils.addMinutes(date, -10));
        parameters.put("end", DateUtils.addMinutes(date, -5));
        List<Map<String, Object>> averageByAll = historyMapper.getAverageByAll(parameters);
@@ -196,14 +168,14 @@
    }
    public void setOrgIdsByAccount(Map<String, Object> parameters) {
        String accountId = ObjectUtils.nullSafeToString(parameters.get("accountId"));
        if (!StringUtils.isNumeric(accountId) ) {
            return;
        String accountId = (String) parameters.get("accountId");
        if (!StringUtils.isNumeric((String)parameters.get("accountId")) ) {
            throw new BusinessException("accountId 参数不合法!");
        }
        
        AccountEntity account = accountMapper.selectByPrimaryKey((Integer.valueOf(accountId)));
        if (ObjectUtils.isEmpty(account)) {
            return;
            throw new BusinessException(accountId +"该账号不存在!");
        }
        String organization = account.getOrganization();
        //不是摩瑞尔账号的需要根据组织来获取数据权限
src/main/java/com/moral/monitor/util/BusinessException.java
New file
@@ -0,0 +1,14 @@
package com.moral.monitor.util;
public class BusinessException extends RuntimeException {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    public BusinessException(String msg) {
        super(msg);
    }
}
src/main/java/com/moral/monitor/util/WebUtils.java
New file
@@ -0,0 +1,42 @@
package com.moral.monitor.util;
import java.util.Enumeration;
import java.util.Map;
import java.util.TreeMap;
import javax.servlet.ServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Assert;
public class WebUtils extends org.springframework.web.util.WebUtils {
    public static Map<String, Object> getParametersStartingWith(ServletRequest request, String prefix) {
        Assert.notNull(request, "Request must not be null");
        Enumeration<String> paramNames = request.getParameterNames();
        Map<String, Object> params = new TreeMap<String, Object>();
        if (prefix == null) {
            prefix = "";
        }
        while (paramNames != null && paramNames.hasMoreElements()) {
            String paramName = paramNames.nextElement();
            if ("".equals(prefix) || paramName.startsWith(prefix)) {
                String unprefixed = paramName.substring(prefix.length());
                String[] values = request.getParameterValues(paramName);
                if (values == null || values.length == 0 ) {
                    // Do nothing, no values found at all.
                }
                else if (values.length > 1) {
                    params.put(unprefixed, values);
                }
                else {
                    if (StringUtils.isNotBlank(values[0])) {
                        params.put(unprefixed, values[0]);
                    }
                }
            }
        }
        return params;
    }
}
src/main/resources/sysConfig.properties
@@ -9,21 +9,22 @@
IAQI=0,50,100,150,200,300,400,500
e1-standard=35
e2-standard=50
e3-standard=
e4-standard=
e5-standard=
e6-standard=
e7-standard=
e8-standard=
e9-standard=
e10-standard=2
e11-standard=50
e12-standard=
e13-standard=
e14-standard=100
e15-standard=100
e16-standard=40
e17-standard=
e18-standard=
e19-standard=
e3-standard=50
e4-standard=30
e5-standard=50
e6-standard=40
e7-standard=50
e8-standard=60
e9-standard=50
e12-standard=34
e13-standard=54
e14-standard=56
e17-standard=150
e18-standard=9
e19-standard=50
orgId=5212b9dfb55448e699889e01fa0fa6a2