Newer
Older
EMS-WEB-3.0 / src / main / java / com / casic / accessControl / feature / web / FeatureController.java
wxn on 9 Aug 2016 7 KB first commit
package com.casic.accessControl.feature.web;

import com.casic.accessControl.common.CommonEnum;
import com.casic.accessControl.core.mapper.JsonMapper;
import com.casic.accessControl.feature.domain.Feature;
import com.casic.accessControl.feature.dto.FeatureDto;
import com.casic.accessControl.feature.dto.OrgDto;
import com.casic.accessControl.feature.manager.FeatureManager;
import com.casic.accessControl.marker.domain.Marker;
import com.casic.accessControl.user.domain.Company;
import com.casic.accessControl.user.domain.Role;
import com.casic.accessControl.user.domain.User;
import com.casic.accessControl.user.manager.CompanyManager;
import com.casic.accessControl.user.manager.UserManager;
import com.casic.accessControl.util.DataTable;
import com.casic.accessControl.util.StringUtils;
import com.casic.accessControl.xls.Common;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import sun.org.mozilla.javascript.internal.EcmaError;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.*;

/**
 * 提供http访问接口
 * Created by lenovo on 2016/5/16.
 */
@Controller
@RequestMapping(value = "feature")
public class FeatureController {
    @Autowired
    private FeatureManager featureManager;
    @Autowired
    private UserManager userManager;
    @Autowired
    private CompanyManager companyManager;

    @RequestMapping(value = "org-list")
    @ResponseBody
    public String getOrgList(@RequestParam(required = true) Integer type, HttpSession session) {
        User user = (User) session.getAttribute(StringUtils.SYS_USER);//获取当前登录用户
        Company company = user.getCompany();
        return featureManager.getOrgList(type, company);
    }

    @RequestMapping(value = "org-list-na")
    @ResponseBody
    public Map<String, String> getOrgListNa(@RequestParam Long userId) {//na端所有传过来的userid都是公司id
        Map<String, String> res = new HashMap<String, String>();
        res.put("message", "列表获取失败");
        try {
//            User user = userManager.getUserById(userId);//获取当前登录用户
//            Company company = user.getCompany();
            Company company = companyManager.getCompanyById(userId);
            String areas = featureManager.getOrgList(CommonEnum.FEATURE_TYPE.AREA.getIndex(), company);
            String lines = featureManager.getOrgList(CommonEnum.FEATURE_TYPE.LINE.getIndex(), company);
            res.put("feature", areas);
            res.put("line", lines);
        } catch (Exception e) {
            return res;
        }
        res.put("message", "成功获取");
        return res;
    }

    @RequestMapping(value = "getFeature")
    @ResponseBody
    public Map<String, Object> getFeaturesByUser(@RequestParam(required = true) Integer type, HttpSession session) {

        Map<String, Object> result = new HashMap<String, Object>();
        User user = (User) session.getAttribute(StringUtils.SYS_USER);//获取当前登录用户
        List<FeatureDto> list = featureManager.getFeaturesByUser(type, user);
        if (list == null) {//获取列表失败
            result.put("message", "获取列表出现错误");
            return result;
        } else {
            result.put("data", list);
            result.put("message", "获取列表成功");
        }
        return result;
    }

    @RequestMapping(value = "getSubFeatureList")
    public void getSubFeatureList(@RequestParam(required = true) String jsonParams, @RequestParam(required = false) Long parentId, HttpServletResponse response, HttpSession session) {
        User user = (User) session.getAttribute(StringUtils.SYS_USER);//获取当前登录用户
        Feature parent = featureManager.getFeatureById(parentId);
        DataTable<FeatureDto> dtoDataTable = featureManager.getPageFeatureListByTye(jsonParams, parent, user);
        Gson gson = new Gson();
        String json = gson.toJson(dtoDataTable);
        response.setCharacterEncoding("utf-8");
        try {
            response.getWriter().write(json);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @RequestMapping(value = "delete")
    @ResponseBody
    public Map<String, Object> deleteFeatureById(@RequestParam(required = true) Long id, HttpSession session) {
        HashMap<String, Object> result = new HashMap<String, Object>();
        User user = (User) session.getAttribute(StringUtils.SYS_USER);//获取当前登录用户

        try {
            String res = featureManager.invalidFeature(id.toString());
            if (StringUtils.isBlank(res)) {
                result.put("message", "删除失败");
            } else {
                result.put("message", "删除成功");
                result.put("success", true);
            }
        } catch (Exception e) {
            result.put("message", "删除失败");
        }
        return result;
    }

    @RequestMapping(value = "save")
    @ResponseBody
    public Map<String, Object> save(@RequestParam(required = true) String params, HttpSession session) {
        Gson gson = new Gson();
        HashMap<String, Object> result = new HashMap<String, Object>();
        User user = (User) session.getAttribute(StringUtils.SYS_USER);//获取当前登录用户

        Map markers = gson.fromJson(params, HashMap.class);
        String featureName = (String) markers.get("featureName");
        String memo = (String) markers.get("memo") == null ? "" : (String) markers.get("memo");
        Long parentId = Long.valueOf(StringUtils.isBlank((String) markers.get("parentId")) ? "-1" : (String) markers.get("parentId"));//不知为什么转过来为Double
        Long id = Long.valueOf(StringUtils.isBlank((String) markers.get("id")) ? "-1" : (String) markers.get("id"));


        if (StringUtils.isBlank(featureName) || parentId.equals(-1L)) {
            result.put("message", "必要参数未传送");
            return result;
        }
        Feature feature = new Feature();
        feature.setValid(1);
        Feature parent = featureManager.getFeatureById(parentId);
        feature.setParent(parent);
        feature.setFeatureName(featureName);
        feature.setMemo(memo);
        feature.setOwner(user);
        feature.setCompany(user.getCompany());
        feature.setType(parent.getType());
        if (!id.equals(-1L)) {
            feature.setId(id);
        }
        try {
            featureManager.saveOrupdateFeature(feature, user);
            result.put("message", "保存成功");
            result.put("success", true);
        } catch (Exception e) {
            result.put("message", "保存失败");
        }
        return result;

    }


    @RequestMapping(value = "getFeatureById")
    @ResponseBody
    public Map<String, Object> getFeatureById(@RequestParam(required = true) Long id) {
        HashMap<String, Object> result = new HashMap<String, Object>();
        try {
            FeatureDto feature = featureManager.getFeatureDtoById(id);
            result.put("data", feature);
            result.put("message", "获取成功");
            result.put("success", true);
        } catch (Exception e) {
            result.put("message", "获取失败");
        }
        return result;

    }

}