@GET
 @Produces(MediaType.TEXT_PLAIN)
 @Path("{timeStamp}")
 public String getIt(@PathParam("timeStamp") String timestamp) {
   int id = supervisorOnDuty(timestamp);
   Supervisor supervisor = new Supervisor(id);
   String msg = supervisor.showmsg();
   return msg;
 }
Example #2
0
 /**
  * Record the execution sequence.
  *
  * @param pSession
  */
 public void record(RecordingSession pSession) {
   if (pSession == null) {
     _supervisor.echo("Empty Recording Session at " + getDefiningClassSignature());
     return;
   }
   try {
     pSession.recording();
   } catch (ExecutionException ignore) {
     _supervisor.echo("Error Recording at " + getDefiningClassSignature());
   }
 }
Example #3
0
  /**
   * 添加操作记录
   *
   * @param type
   * @param fileName
   * @param error
   * @return
   */
  private static int createOperation(int type, String fileName, ErrorInfo error) {
    error.clear();
    t_db_operations op = new t_db_operations();
    op.supervisor_id = Supervisor.currSupervisor().id;
    op.time = new Date();
    op.ip = DataUtil.getIp();
    op.type = type;
    op.filename = fileName;

    try {
      op.save();
    } catch (Exception e) {
      e.printStackTrace();
      Logger.info(e.getMessage());
      error.code = -1;
      error.msg = "数据库异常";
      JPA.setRollbackOnly();

      return error.code;
    }

    error.code = 0;

    return error.code;
  }
Example #4
0
  /**
   * 重置(还原出厂设置)
   *
   * @param error
   * @return
   */
  public static int reset(ErrorInfo error) {
    error.clear();

    String backupFileName = backup(false, error);

    if (null == backupFileName) {
      return error.code;
    }

    if (0 != createOperation(DBOperationType.RESET, backupFileName, error)) {
      return error.code;
    }

    DealDetail.supervisorEvent(
        Supervisor.currSupervisor().id, SupervisorEvent.DB_RESET, "还原出厂初始数据", error);

    if (error.code < 0) {
      JPA.setRollbackOnly();

      return error.code;
    }

    if (0
        != MySQLTool.executeSqlFile(
            username, password, host, port, database, resetFileName, error)) {
      JPA.setRollbackOnly();

      return error.code;
    }

    error.code = 0;
    error.msg = "还原出厂设置成功";

    return error.code;
  }
Example #5
0
  /**
   * 还原数据库
   *
   * @param fileName
   * @param error
   * @return
   */
  public static int recover(String fileName, ErrorInfo error) {
    error.clear();

    if (StringUtils.isBlank(fileName)) {
      error.code = -1;
      error.msg = "恢复文件不能为空";

      return error.code;
    }

    String backupFileName = backup(false, error);

    if (null == backupFileName) {
      return error.code;
    }

    if (0 != createOperation(DBOperationType.RECOVER, backupFileName, error)) {
      return error.code;
    }

    DealDetail.supervisorEvent(
        Supervisor.currSupervisor().id, SupervisorEvent.DB_RECOVER, "还原运营数据", error);

    if (error.code < 0) {
      JPA.setRollbackOnly();

      return error.code;
    }

    String decryptFileName = Constants.SQL_PATH + UUID.randomUUID().toString() + ".sql";

    if (!FileEncrypt.decrypt(fileName, decryptFileName, Constants.ENCRYPTION_KEY)) {
      error.code = -1;
      error.msg = "还原数据库失败";

      return error.code;
    }

    if (0
        != MySQLTool.executeSqlFile(
            username, password, host, port, database, decryptFileName, error)) {
      JPA.setRollbackOnly();

      return error.code;
    }

    if (!new File(decryptFileName).delete()) {
      error.code = -1;
      error.msg = "还原数据库失败";

      return error.code;
    }

    error.code = 0;
    error.msg = "还原数据库成功";

    return error.code;
  }
Example #6
0
  /**
   * 上架/下架
   *
   * @param pid 产品ID
   * @param isUse 状态值
   * @param error 信息值
   * @return ? > 0 : success; ? < 0 : fail
   */
  public static void editStatus(long pid, boolean isUse, ErrorInfo error) {
    error.clear();

    String hql = "update t_products set is_use=? where id=?";

    Query query = JPA.em().createQuery(hql);
    query.setParameter(1, isUse);
    query.setParameter(2, pid);

    int rows = 0;

    try {
      rows = query.executeUpdate();
    } catch (Exception e) {
      e.printStackTrace();
      Logger.error("产品->上架/下架:" + e.getMessage());
      error.msg = error.FRIEND_INFO + "上架/下架失败!";

      return;
    }

    if (rows == 0) {
      JPA.setRollbackOnly();
      error.code = -1;
      error.msg = "设置失败!";

      return;
    }

    /* 添加事件 */
    if (isUse) {
      DealDetail.supervisorEvent(
          Supervisor.currSupervisor().id, SupervisorEvent.ENABLE_PRODUCT, "启用借款标产品", error);
    } else {
      DealDetail.supervisorEvent(
          Supervisor.currSupervisor().id, SupervisorEvent.ENABLE_PRODUCT, "暂停借款标产品", error);
    }

    if (error.code < 0) {
      JPA.setRollbackOnly();
      error.msg = "设置失败!";

      return;
    }
  }
Example #7
0
 /**
  * Capture the execution as an invocation.
  *
  * @param proxy
  * @param method
  * @param args
  * @return
  */
 public Object captureExecution(Object proxy, Method method, Object[] args) {
   Object _caller = _callerStack.peek();
   Invocation invocation = new Invocation(_caller, proxy, method, args, null);
   _supervisor._invocations.add(invocation);
   _callerStack.push(proxy);
   _supervisor.echo("Capturing " + invocation.getString());
   Object target = _supervisor._attachments.getTarget(proxy);
   if (target == null) {
     String message = "No Target Attached at " + getCallingClassSignature();
     _supervisor.echo(message);
     throw new ExecutionException(message);
   }
   Object theReturnValue = executeMethod(target, method, args);
   invocation._result = new InvocationResult();
   invocation._result.setReturn(theReturnValue);
   _callerStack.pop();
   return theReturnValue;
 }
Example #8
0
  /**
   * 改变合作机构状态(正常/暂停)
   *
   * @param aid 机构ID
   * @param isUse 正常/暂停
   * @param error 信息值
   */
  public static void editStatus(long aid, boolean isUse, ErrorInfo error) {
    error.clear();

    String hql = "update t_agencies set is_use=? where id=?";
    Query query = JPA.em().createQuery(hql);
    query.setParameter(1, isUse);
    query.setParameter(2, aid);

    int rows = 0;

    try {
      rows = query.executeUpdate();
    } catch (Exception e) {
      e.printStackTrace();
      Logger.error("合作机构->正常/暂停:" + e.getMessage());
      error.msg = error.FRIEND_INFO + "设置失败!";

      return;
    }

    if (rows == 0) {
      JPA.setRollbackOnly();
      error.code = -1;
      error.msg = "设置失败!";

      return;
    }

    /* 添加事件 */
    if (isUse)
      DealDetail.supervisorEvent(
          Supervisor.currSupervisor().id, SupervisorEvent.ENABLE_AGENCY, "启用合作机构", error);
    else
      DealDetail.supervisorEvent(
          Supervisor.currSupervisor().id, SupervisorEvent.NOT_ENABLE_AGENCY, "暂停合作机构", error);
    if (error.code < 0) {
      JPA.setRollbackOnly();
      error.msg = "设置失败!";

      return;
    }

    error.code = 0;
  }
Example #9
0
 /**
  * Execute the method on the attached target.
  *
  * @param pObject
  * @param pMethod
  * @param pArgs
  * @return
  */
 Object executeMethod(Object pObject, Method pMethod, Object[] pArgs) {
   Object result = null;
   try {
     result = pMethod.invoke(pObject, pArgs);
   } catch (Exception e) {
     String message;
     message = "Error Capturing " + getCallingClassSignature();
     _supervisor.echo(message);
     throw new ExecutionException(message);
   }
   return result;
 }
Example #10
0
  /**
   * 添加
   *
   * @param info 信息值
   * @return ? > 0 : success; ? < 0 : fail
   */
  public void create(ErrorInfo error) {
    error.clear();

    t_products product = new t_products();
    product.is_use = Constants.ENABLE;
    product.is_agency = Constants.NOT_IS_AGENCY;
    // product.fee_description = this.feeDescription; // 手续费描述(常量值读取拼接,无需编辑)

    /* 添加基本信息 */
    error.code = this.addOrEdit(product);

    if (error.code < 0) {
      error.code = -1;
      error.msg = error.FRIEND_INFO + "添加基本信息失败!";

      return;
    }

    /* 添加对应的审核资料 */
    error.code = this.addProductAudit(product.id, product.mark);

    if (error.code < 0) {
      error.code = -2;
      error.msg = error.FRIEND_INFO + "添加审核资料失败!";

      return;
    }

    /* 添加标签和字段 */
    error.code = this.addProductLableAndFiled(product.id, error);

    if (error.code < 0) {
      error.code = -3;
      error.msg = error.FRIEND_INFO + "添加产品标签/字段失败!";

      return;
    }

    /* 添加事件 */
    DealDetail.supervisorEvent(
        Supervisor.currSupervisor().id, SupervisorEvent.CREATE_PRODUCT, "添加产品", error);

    if (error.code < 0) {
      JPA.setRollbackOnly();
      error.msg = "保存失败!";

      return;
    }
  }
Example #11
0
  /** 添加合作机构 */
  public void createAgency(ErrorInfo error) {
    t_agencies agency = new t_agencies();
    agency.time = new Date(); // 当前时间
    agency.name = this.name;
    agency.credit_level = this.creditLevel;
    agency.introduction = this.introduction;
    agency.id_number = this.id_number;
    agency.imageFilenames = this.imageFilenames; // 借款图片
    agency.is_use = Constants.ENABLE; // 默认为启动

    try {
      agency.save();
    } catch (Exception e) {
      e.printStackTrace();
      Logger.error("合作机构->添加合作机构:" + e.getMessage());
      error.msg = "添加失败!";
      this._id = -1;

      return;
    }

    if (agency.id < 0) {
      error.msg = "添加失败!";

      return;
    }

    /* 添加事件 */
    DealDetail.supervisorEvent(
        Supervisor.currSupervisor().id, SupervisorEvent.CREATE_AGENCY, "添加合作机构", error);

    if (error.code < 0) {
      JPA.setRollbackOnly();
      error.msg = "添加失败!";

      return;
    }

    error.code = 0;
  }
Example #12
0
  /**
   * 备份数据库
   *
   * @param isVisual 是否在数据库操作记录表中可见
   * @param error
   * @return
   */
  public static String backup(boolean isVisual, ErrorInfo error) {
    error.clear();

    String fileName = Constants.SQL_PATH + UUID.randomUUID().toString();
    FileUtil.getStore(Constants.SQL_PATH);

    if (0 != MySQLTool.dumpSqlFile(username, password, host, port, database, fileName, error)) {
      return null;
    }

    if (!FileEncrypt.encrypt(fileName, Constants.ENCRYPTION_KEY)) {
      error.code = -1;
      error.msg = "备份数据库失败";

      return null;
    }

    if (isVisual) {
      if (0 != createOperation(DBOperationType.BACKUP, fileName, error)) {
        return null;
      }

      DealDetail.supervisorEvent(
          Supervisor.currSupervisor().id, SupervisorEvent.DB_BACKUP, "备份数据", error);

      if (error.code < 0) {
        JPA.setRollbackOnly();

        return null;
      }
    }

    error.code = 0;
    error.msg = "备份数据库成功";

    return fileName;
  }
Example #13
0
  /**
   * 编辑
   *
   * @param id 产品ID
   * @param error 信息值
   * @return ? > 0 : success; ? < 0 : fail
   */
  public void edit(long id, ErrorInfo error) {
    error.clear();

    t_products product = null;

    try {
      product = t_products.findById(id);
    } catch (Exception e) {
      e.printStackTrace();
      Logger.error("产品->编辑:" + e.getMessage());
      error.code = -1;
      error.msg = error.FRIEND_INFO + "编辑失败!";

      return;
    }

    if (null == product) {
      error.code = -2;
      error.msg = error.FRIEND_INFO + "编辑失败!";

      return;
    }

    /* 添加基本信息 */
    error.code = this.addOrEdit(product);

    if (error.code < 0) {
      error.code = -3;
      error.msg = error.FRIEND_INFO + "编辑失败!";

      return;
    }

    /* 删除作废的审核资料 */
    error.code = ProductAuditItem.deleteProductAudit(id);

    if (error.code < 0) {
      error.code = -4;
      error.msg = error.FRIEND_INFO + "编辑失败!";

      return;
    }

    /* 添加对应的审核资料 */
    error.code = this.addProductAudit(id, product.mark);

    if (error.code < 0) {
      error.code = -5;
      error.msg = error.FRIEND_INFO + "编辑失败!";

      return;
    }

    /* 编辑标签和字段 */
    error.code = this.editFiledConten();

    if (error.code < 0) {
      error.code = -6;
      error.msg = error.FRIEND_INFO + "编辑失败!";

      return;
    }

    /* 添加事件 */
    DealDetail.supervisorEvent(
        Supervisor.currSupervisor().id, SupervisorEvent.EDIT_PRODUCT, "编辑产品", error);

    if (error.code < 0) {
      JPA.setRollbackOnly();
      error.msg = "保存失败!";

      return;
    }
  }
Example #14
0
 /*
  * (non-Javadoc)
  *
  * @see
  * org.openiam.idm.srvc.user.service.UserDataService#removeSupervisor(org
  * .openiam.idm.srvc.user.dto.Supervisor)
  */
 @Transactional
 public void removeSupervisor(Supervisor supervisor) {
   if (supervisor == null) throw new NullPointerException("supervisor is null");
   this.supervisorDao.remove(supervisor.getOrgStructureId());
 }