package com.asofdate.hauth.controller; import com.asofdate.hauth.authentication.JwtService; import com.asofdate.hauth.dto.AuthDTO; import com.asofdate.hauth.entity.OrgEntity; import com.asofdate.hauth.service.AuthService; import com.asofdate.hauth.service.OrgService; import com.asofdate.utils.Hret; import com.asofdate.utils.JoinCode; import com.asofdate.utils.RetMsg; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * Created by hzwy23 on 2017/6/18. */ @RestController @RequestMapping(value = "/v1/auth/org") @Api("机构定义管理") public class OrgController { @Autowired private AuthService authService; @Autowired private OrgService orgService; @RequestMapping(method = RequestMethod.GET) public List findAll(HttpServletRequest request) { String domainId = request.getParameter("domain_id"); if (domainId == null || domainId.isEmpty()) { domainId = JwtService.getConnUser(request).getDomainID(); } return orgService.findAll(domainId); } @RequestMapping(method = RequestMethod.GET, value = "/sub") public List findSub(HttpServletResponse response, HttpServletRequest request) { String orgUnitId = request.getParameter("org_unit_id"); String domainId = request.getParameter("domain_id"); return orgService.findSub(domainId, orgUnitId); } @RequestMapping(method = RequestMethod.POST) public String add(HttpServletResponse response, HttpServletRequest request) { OrgEntity orgEntity = parse(request); RetMsg retMsg = orgService.add(orgEntity); if (retMsg.checkCode()) { return Hret.success(retMsg); } response.setStatus(retMsg.getCode()); return Hret.error(retMsg); } @RequestMapping(method = RequestMethod.PUT) public String update(HttpServletResponse response, HttpServletRequest request) { OrgEntity orgEntity = parse(request); RetMsg retMsg = orgService.update(orgEntity); if (retMsg.checkCode()) { return Hret.success(retMsg); } response.setStatus(retMsg.getCode()); return Hret.error(retMsg); } @RequestMapping(value = "/delete", method = RequestMethod.POST) public String delete(HttpServletResponse response, HttpServletRequest request) { String json = request.getParameter("JSON"); List<OrgEntity> list = new GsonBuilder().create().fromJson(json, new TypeToken<List<OrgEntity>>() { }.getType()); ; for (OrgEntity m : list) { String orgId = m.getOrg_id(); String domainId = m.getDomain_id(); AuthDTO authDTO = authService.domainAuth(request, domainId, "w"); if (!authDTO.getStatus()) { return Hret.error(403, "您没有权限删除域【" + domainId + "】中的机构信息", null); } } RetMsg retMsg = orgService.delete(list); if (retMsg.checkCode()) { return Hret.success(retMsg); } response.setStatus(retMsg.getCode()); return Hret.error(retMsg); } private OrgEntity parse(HttpServletRequest request) { OrgEntity orgEntity = new OrgEntity(); String codeNumber = request.getParameter("Org_unit_id"); String domainId = request.getParameter("Domain_id"); orgEntity.setCode_number(codeNumber); orgEntity.setOrg_desc(request.getParameter("Org_unit_desc")); orgEntity.setDomain_id(domainId); orgEntity.setUp_org_id(request.getParameter("Up_org_id")); String orgUnitId = JoinCode.join(domainId, codeNumber); orgEntity.setOrg_id(orgUnitId); String userId = JwtService.getConnUser(request).getUserId(); orgEntity.setCreate_user(userId); orgEntity.setModify_user(userId); return orgEntity; } }