package com.casic.accessControl.user.web; import com.casic.accessControl.user.domain.Company; import com.casic.accessControl.user.domain.User; import com.casic.accessControl.user.dto.CompanyDto; import com.casic.accessControl.user.manager.CompanyManager; import com.casic.accessControl.util.DataTable; import com.casic.accessControl.util.StringUtils; import com.google.gson.Gson; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.util.HashMap; import java.util.List; import java.util.Map; @Controller @RequestMapping("company") public class CompanyController { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Resource private CompanyManager companyManager; @RequestMapping("company-info-list") public void list(String jsonParam, HttpServletResponse response, HttpSession session) { try { User user = (User) session.getAttribute(StringUtils.SYS_USER); DataTable<CompanyDto> companyList = companyManager.pageCompany(jsonParam, user); Gson gson = new Gson(); String json = gson.toJson(companyList); response.setCharacterEncoding("utf-8"); response.getWriter().write(json); } catch (Exception e) { e.printStackTrace(); } } @RequestMapping("company-info-delete") @ResponseBody public Map<String, Object> delete(@RequestParam(value = "id", required = true) Long id) { Map<String, Object> map = new HashMap<String, Object>(); if (id == null) { map.put("success", false); map.put("message", "删除组织需要组织ID信息"); return map; } if( id != null && id.equals(0L)){ map.put("success", false); map.put("message", "该组织不能删除"); return map; } List<Company> checkList = companyManager.getCompanisByParent(id); if(checkList != null && checkList.size() > 0){ map.put("success", false); map.put("message", "该组织存在下属组织,不能删除"); return map; } boolean temp = companyManager.deleteCompanyById(id); if (temp) { map.put("success", true); map.put("message", "组织删除成功"); } else { map.put("success", false); map.put("message", "组织删除失败"); } return map; } @RequestMapping("company-info-edit") public String edit(@RequestParam(value = "id", required = false) Long id, Model model,HttpSession session) { User user = (User) session.getAttribute(StringUtils.SYS_USER); CompanyDto companyDto = new CompanyDto(); if(id != null){ companyDto = companyManager.getCompanyDtoById(id); } List<Company> companies = companyManager.getParentCompanyList(user); List<CompanyDto> companyDtos = CompanyDto.Converts(companies); model.addAttribute("model", companyDto); model.addAttribute("companies",new Gson().toJson(companyDtos)); return "company/company-info-edit"; } @RequestMapping("company-info-save") @ResponseBody public Map<String,Object> save(@ModelAttribute CompanyDto companyDto,HttpSession session){ //分为新增用户和编辑用户两种,区分标识为companyInfo的id是否为空 Map<String, Object> map = new HashMap<String, Object>(); if(companyDto.getId() != null && companyDto.getId().equals(0L)){ map.put("success", false); map.put("message", "该组织不能编辑"); return map; } if(companyDto!=null){ if(companyManager.getCompanyByName(companyDto.getCompanyName(),companyDto.getId()) != null){ map.put("success", false); map.put("message", "数据库中存在相同名称的组织,请更改组织名称"); return map; } Company parentCompany = companyManager.getCompanyById(companyDto.getParentCompanyId()); Company company = new Company(); company.setId(companyDto.getId()); company.setCompanyName(companyDto.getCompanyName()); company.setParentCompany(parentCompany); company.setPhone(companyDto.getPhone()); company.setIsValid(1); companyManager.saveCompany(company,session); if (company.getId() == null ) {//新增组织 map.put("success", true); map.put("message", "新增组织成功"); } else { map.put("success", true); map.put("message", "编辑组织成功"); } }else{ map.put("success", false); map.put("message", "用户信息为空"); } return map; } }