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; } }