@Produces(MediaType.APPLICATION_JSON + ";charset=UTF-8")
 @Path("/list")
 @GET
 public String list() {
   List<Authority> list = authorityService.list();
   List<SubAuthority> listNew = new ArrayList<SubAuthority>();
   // List<AuthorityPower> authorityPowerList = authorityPowerService.getAuthorityPowerList();
   for (Authority a : list) {
     SubAuthority subAuthority = new SubAuthority();
     String authorityName = a.getName();
     subAuthority.setId(a.getId());
     subAuthority.setName(authorityName);
     subAuthority.setDescription(a.getDescription());
     subAuthority.setStatus(a.getStatus());
     List<String> resourceList = authorityPowerService.getResourcesByAuthorityName(authorityName);
     String resources = "";
     for (String s : resourceList) {
       String s2 = s + ";";
       resources += s2;
       System.out.println(">>>>>>>>" + s);
     }
     System.out.println("<<<<<<<<" + resources);
     String r1;
     if (resources.equals("")) {
       r1 = "";
     } else {
       r1 = resources.substring(0, resources.length() - 1);
     }
     System.out.println(">>>>>>>>" + r1);
     // String r2 = "\'"+r1+"\'";
     /*String resource="";
     int length = authorityPowerList.size();
     for(int i = 0;i<length;i++){
         String authorityName = authorityPowerList.get(i).getAuthorityName();
         if(authorityName.equals(a.getName())){
             String s = "\'"+authorityPowerList.get(i).getPowerResource()+"\'";
             resource +=s ;
         }
     } */
     subAuthority.setResource(r1);
     listNew.add(subAuthority);
   }
   return JsonResultUtils.getObjectResultByStringAsDefault(listNew, JsonResultUtils.Code.SUCCESS);
 }
 @Produces(MediaType.APPLICATION_JSON + ";charset=UTF-8")
 @Path("/delete")
 @POST
 public String delete(@FormParam("jsonString") String jsonString) {
   Authority authority = JsonMapper.buildNonDefaultMapper().fromJson(jsonString, Authority.class);
   String authorityName = authority.getName();
   int numDeleted = authorityPowerService.deleteByAuthorityName(authorityName);
   int result = authorityService.delete(authority);
   List<UserAuthority> userAuthorityList = userAuthorityService.findByAuthorityName(authorityName);
   if (userAuthorityList.size() > 0) {
     for (UserAuthority ua : userAuthorityList) {
       String userName = ua.getUserName();
       User user = userService.findByName(userName);
       String role = user.getRole();
       String[] roles = role.split(";");
       String[] newRoles = new String[roles.length - 1];
       int temp = 0;
       for (int i = 0; i < roles.length; i++) {
         if (!roles[i].equals(authorityName)) {
           newRoles[temp] = roles[i] + ";";
           temp++;
         }
       }
       String roles2 = "";
       String nr;
       for (int i = 0; i < newRoles.length; i++) {
         roles2 += newRoles[i];
       }
       if (roles2.equals("")) {
         nr = "";
       } else {
         nr = roles2.substring(0, roles2.length() - 1);
       }
       user.setRole(nr);
       userService.update(user);
       userAuthorityService.delete(ua);
     }
   }
   if ((result > 0) && (numDeleted >= 0)) {
     return JsonResultUtils.getCodeAndMesByStringAsDefault(JsonResultUtils.Code.SUCCESS);
   } else {
     return JsonResultUtils.getCodeAndMesByStringAsDefault(JsonResultUtils.Code.ERROR);
   }
 }
  @Produces(MediaType.APPLICATION_JSON + ";charset=UTF-8")
  @Path("/add")
  @POST
  public String add(
      @FormParam("name") String name,
      @FormParam("description") String description,
      @FormParam("status") String status,
      @FormParam("resource") String resource) {
    /*if(name==null || name.trim().equals("") || description==null || description.trim().equals("") || status==null || status.trim().equals("")){
        return JsonResultUtils.getCodeAndMesByString(JsonResultUtils.Code.ERROR.getCode(), "参数不能为空!");
    }*/
    long existAuthorityId;
    try {
      existAuthorityId = authorityService.getIdByName(name);

    } catch (Exception ex) {
      existAuthorityId = 0;
    }
    if (existAuthorityId == 0) {
      Authority authority = new Authority();
      authority.setName(name);
      authority.setDescription(description);
      authority.setStatus(Integer.parseInt(status));
      authorityService.add(authority);
      long currentAuthorityId = authorityService.getIdByName(name);
      String[] resourceArray = resource.split(";");
      for (int i = 0; i < resourceArray.length; i++) {
        long powerId = powerService.getIdByResource(resourceArray[i]);
        AuthorityPower authorityPower = new AuthorityPower();
        authorityPower.setAuthorityId(currentAuthorityId);
        authorityPower.setPowerId(powerId);
        authorityPower.setPowerResource(resourceArray[i]);
        authorityPower.setAuthorityName(name);
        authorityPowerService.add(authorityPower);
      }
      return JsonResultUtils.getCodeAndMesByStringAsDefault(JsonResultUtils.Code.SUCCESS);
    } else {
      return JsonResultUtils.getObjectResultByStringAsDefault("fail", JsonResultUtils.Code.ERROR);
    }
  }
 @Produces(MediaType.APPLICATION_JSON + ";charset=UTF-8")
 @Path("/update")
 @POST
 public String update(@FormParam("jsonString") String jsonString) {
   SubAuthority subAuthority =
       JsonMapper.buildNonDefaultMapper().fromJson(jsonString, SubAuthority.class);
   long authorityId = subAuthority.getId();
   String authorityName = subAuthority.getName();
   String authorityDescription = subAuthority.getDescription();
   int authorityStatus = subAuthority.getStatus();
   String resource = subAuthority.getResource();
   Authority authority = new Authority();
   authority.setId(authorityId);
   authority.setName(authorityName);
   authority.setDescription(authorityDescription);
   authority.setStatus(authorityStatus);
   int deleted = authorityPowerService.deleteByAuthorityName(authorityName);
   if (deleted >= 0) {
     int result = authorityService.update(authority);
     String[] resourceArray = resource.split(";");
     for (int i = 0; i < resourceArray.length; i++) {
       Long powId = powerService.getIdByResource(resourceArray[i]);
       AuthorityPower authorityPower = new AuthorityPower();
       authorityPower.setAuthorityId(authorityId);
       authorityPower.setPowerId(powId);
       authorityPower.setPowerResource(resourceArray[i]);
       authorityPower.setAuthorityName(authorityName);
       authorityPowerService.add(authorityPower);
     }
     if (result > 0) {
       return JsonResultUtils.getCodeAndMesByStringAsDefault(JsonResultUtils.Code.SUCCESS);
     } else {
       return JsonResultUtils.getCodeAndMesByStringAsDefault(JsonResultUtils.Code.ERROR);
     }
   } else {
     return JsonResultUtils.getCodeAndMesByStringAsDefault(JsonResultUtils.Code.ERROR);
   }
 }