/**
   * @Title: getMenu @Description: TODO @Autohr guoxuelian#symdata.cn
   *
   * @param @param username
   * @param @param systemId
   * @param @return
   * @param @throws DatabaseException
   * @return TransDto
   * @throws 2015年9月14日下午3:48:49
   */
  @RequestMapping(value = "/menu", method = RequestMethod.POST)
  public TransDto getMenu(String username, String systemId) throws DatabaseException {
    TransDto dto = new TransDto();

    if (!StringUtils.isNotBlank(username) || !StringUtils.isNotBlank(systemId)) {
      dto.setError(ErrorCode.ERR1001.getCode(), ErrorCode.ERR1001.getDescription(), null);
      return dto;
    }
    User user = userService.findByUsername(username);
    if (user == null) {
      dto.setError(ErrorCode.ERR1002.getCode(), ErrorCode.ERR1002.getDescription(), null);
      return dto;
    }
    List<MenuDto> menuListDto = remoteInterface.getMenu(user, systemId);
    dto.setDefaultSuccess(menuListDto);
    return dto;
  }
  /**
   * @param username
   * @param password
   * @return @Description:用户查询 @Author:zhangnan#symdata @Since:2015年9月6日 下午8:11:16 @Version:1.0
   */
  @RequestMapping(value = "/queryUser", method = RequestMethod.POST)
  public TransDto login(String username) throws DatabaseException {
    TransDto dto = new TransDto();
    UserDto userDto = null;

    if (!StringUtils.isNotBlank(username)) {
      dto.setError(ErrorCode.ERR1001.getCode(), ErrorCode.ERR1001.getDescription(), null);
      return dto;
    }
    User user = userService.findByUsername(username);
    if (user == null) {
      dto.setError(ErrorCode.ERR1002.getCode(), ErrorCode.ERR1002.getDescription(), null);
      return dto;
    }
    userDto = remoteInterface.remoteLogin(user, username);
    dto.setDefaultSuccess(userDto);
    return dto;
  }
 /**
  * @param id
  * @param redirectAttributes
  * @return @Description:删除菜单 @Author:zhangnan#symdata @Since:2015年9月8日 下午3:20:30 @Version:1.0
  */
 @RequiresPermissions("power:menu:delete")
 @RequestMapping(value = "/enable")
 public @ResponseBody Map<String, Object> enable(User user) throws DatabaseException {
   Map<String, Object> data = Maps.newConcurrentMap();
   if (!StringUtils.isNotBlank(user.getId())) {
     data.put("message", Message.error(ErrorCode.ERR1001.getDescription()));
     return data;
   }
   menuService.updateMenuIsEnable(user.getId());
   data.put("message", SUCCESS_MESSAGE);
   return data;
 }
 /**
  * @param id 菜单id
  * @param ids 角色id
  * @param model
  * @return
  * @throws DatabaseException @Description: @Author:zhangnan#symdata @Since:2015年12月22日
  *     下午2:22:52 @Version:1.0
  */
 @RequiresPermissions("power:menu:authorize")
 @RequestMapping(value = "/authorizeMenuRoleOperate")
 public @ResponseBody Map<String, Object> authorizeMenuRoleOperate(
     String id, String ids, ModelMap model) throws DatabaseException {
   Map<String, Object> data = Maps.newConcurrentMap();
   if (!StringUtils.isNotBlank(id)) {
     data.put("message", Message.error(ErrorCode.ERR1001.getDescription()));
     return data;
   }
   menuService.authorizeMenuRoleOperate(id, ids);
   data.put("message", SUCCESS_MESSAGE);
   return data;
 }
 /**
  * @Title: saveDataField @Description: 保存操作 @Autohr guoxuelian#symdata.cn
  *
  * @param @param dataField
  * @param @param dto
  * @param @return
  * @return TransDto
  * @throws 2015年9月12日下午3:10:43
  */
 @RequiresPermissions("power:datafield:add")
 @RequestMapping(value = "/save")
 public @ResponseBody Map<String, Object> saveDataField(DataField dataField, TransDto dto)
     throws DatabaseException {
   Map<String, Object> data = Maps.newConcurrentMap();
   if (!StringUtils.isNotBlank(dataField.getCode())
       || !StringUtils.isNotBlank(dataField.getName())) {
     data.put("message", Message.error(ErrorCode.ERR1001.getDescription()));
     return data;
   }
   dataFieldService.save(dataField);
   data.put("message", SUCCESS_MESSAGE);
   return data;
 }
 /**
  * @param menu
  * @param redirectAttributes
  * @param model
  * @return @Description:更新菜单信息 @Author:zhangnan#symdata @Since:2015年9月8日 下午3:26:21 @Version:1.0
  */
 @RequiresPermissions("power:menu:edit")
 @RequestMapping(value = "/update")
 public @ResponseBody Map<String, Object> modify(Menu menu) throws DatabaseException {
   Map<String, Object> data = Maps.newConcurrentMap();
   if (!StringUtils.isNotBlank(menu.getId())
       || !StringUtils.isNotBlank(menu.getCode())
       || !StringUtils.isNotBlank(menu.getName())
       || !StringUtils.isNotBlank(menu.getSystemMark())) {
     data.put("message", Message.error(ErrorCode.ERR1001.getDescription()));
     return data;
   }
   menuService.update(menu);
   data.put("message", SUCCESS_MESSAGE);
   return data;
 }
  /**
   * @Title: modifyPassword @Description: 修改密码 @Autohr guoxuelian#symdata.cn
   *
   * @param @param username
   * @param @param newPwd
   * @param @param oldPwd
   * @param @return
   * @param @throws DatabaseException
   * @return TransDto
   * @throws 2015年9月16日下午5:03:52
   */
  @RequestMapping(value = "/modifyPassword", method = RequestMethod.POST)
  public TransDto modifyPassword(String username, String newPwd, String oldPwd)
      throws DatabaseException {
    TransDto dto = new TransDto();

    if (!StringUtils.isNotBlank(username)
        || !StringUtils.isNotBlank(newPwd)
        || !StringUtils.isNotBlank(oldPwd)) { // 参数错误
      dto.setError(ErrorCode.ERR1001.getCode(), ErrorCode.ERR1001.getDescription(), null);
      return dto;
    }
    User user = userService.findByUsername(username);
    if (user == null) { // 找不到该用户
      dto.setError(ErrorCode.ERR1002.getCode(), ErrorCode.ERR1002.getDescription(), null);
      return dto;
    }
    if (!oldPwd.equals(user.getPassword())) { // 老密码错误
      dto.setError(ErrorCode.ERR1003.getCode(), ErrorCode.ERR1003.getDescription(), null);
      return dto;
    }
    remoteInterface.updatePassword(username, newPwd);
    dto.setDefaultSuccess(null);
    return dto;
  }