@Override
  public Response<Boolean> topicWithSupplier(Long solutionId, Long topicId, BaseUser user) {
    Response<Boolean> result = new Response<Boolean>();

    if (solutionId == null) {
      log.error("update requirement solution need solutionId");
      result.setError("solution.id.null");
      return result;
    }

    // 验证用户是否已登入
    if (user == null) {
      log.error("create requirement solution, user must login.");
      result.setError("user.not.login");
      return result;
    }

    try {
      RequirementSolution requirementSolution = requirementSolutionDao.findById(solutionId);

      // 需要保证该方案处于3:方案交互 or 4:方案综投.需求才能被更改
      RequirementStatus[] statuses = {RequirementStatus.SOL_INTERACTIVE, RequirementStatus.SOL_END};
      Response<Boolean> statusRes =
          checkRequirementStatus(requirementSolution.getRequirementId(), statuses);
      if (!statusRes.isSuccess()) {
        log.error("check requirement status failed, error code={}", statusRes.getError());
        result.setError(statusRes.getError());
        return result;
      }
      if (!statusRes.getResult()) {
        log.error("requirement status can't allow suppler update solution.");
        result.setError("solution.status.notUpdate");
        return result;
      }

      RequirementSolution solution = new RequirementSolution();
      solution.setId(solutionId);
      solution.setTopicId(topicId);
      result.setResult(requirementSolutionDao.update(solution));
    } catch (Exception e) {
      log.error(
          "update requirement solution failed, solutionId={}, error code={}",
          solutionId,
          Throwables.getStackTraceAsString(e));
      result.setError("solution.update.failed");
    }

    return result;
  }
 @Override
 public RequirementSolution load(Long solutionId) throws Exception {
   // 查询需求详细信息
   return requirementSolutionDao.findById(solutionId);
 }