Examples of DOService


Examples of com.exedosoft.plat.bo.DOService

    // 处理登录

    String echoStr = "";
    String returnUrl = "";

    DOService aService = DOService
        .getService("multi_tenancy_browse_byname");
    // ////////////根据用户查找租户
    BOInstance tenant = aService.getInstance(formBI.getValue("tenancyId"));
    // ////////如果租户不存在
    if (tenant == null || tenant.getName() == null) {
      ret[0] = I18n.instance().get("该账号没有被激活!");
      return ret;
    }
    log.info("当前登录的租户为::" + formBI.getValue("tenancyId"));

    // tenant data datastore url
    String multi_datasource_uid = tenant.getValue("multi_datasource_uid");
    // tenant config datastore url
    String model_datasource_uid = tenant.getValue("model_datasource_uid");

    DODataSource dataDds = dsConfig.get(multi_datasource_uid);
    DODataSource dds = dsConfig.get(model_datasource_uid);

    if (dataDds == null && dds == null) {

      DOService findDataSource = DOService
          .getService("multi_datasource_browse");

      // //data datasource
      BOInstance aBI = findDataSource.getInstance(multi_datasource_uid);
      if (aBI != null) {
        dataDds = (DODataSource) aBI.toObject(DODataSource.class);
        // /现在多租户情况下默认都是mysql
        dataDds.setDialect(DODataSource.DIALECT_MYSQL);
        dsConfig.put(multi_datasource_uid, dataDds);
      }

      // /model datasource
      aBI = findDataSource.getInstance(model_datasource_uid);
      if (aBI != null) {
        dds = (DODataSource) aBI.toObject(DODataSource.class);
        // /现在多租户情况下默认都是mysql
        dds.setDialect(DODataSource.DIALECT_MYSQL);
        dsConfig.put(model_datasource_uid, dds);
      }
    }

    if (dataDds == null || dds == null) {
      ret[0] = I18n.instance().get("该账号没有被激活或者没有正确初始化,请与管理员联系!");
      return ret;
    }

    // /globals 放到session中

    // //需要更改多租户表中,租户数据库中的数据源
    // ////每个租户为定位到某个物理数据库中
    // ///租户数据库分配
    TenancyValues tv = new TenancyValues(dds, tenant);

    tv.setDataDDS(dataDds);
    DOGlobals.getInstance().getSessoinContext().setTenancyValues(tv);

    /**
     * 查找账号
     */
    MultiAccount ma = MultiAccount.findAccount(formBI.getValue("name"),
        formBI.getValue("password"), formBI.getValue("tenancyId"));
    BOInstance user = new BOInstance();
   

    if (ma == null) {
      // //////////直接可以从用户表中访问,可以考虑,计费时根据这个表计费,肯定还需要一个计费表和这个表关联。另外一个思路是同意注册。

      String serviceName = request.getParameter("contextServiceName");
      BOInstance biUser = null;
      if (serviceName != null && !serviceName.trim().equals("")) {
        DOService findUserByUserNamePassword = DOService
            .getService(serviceName);
        List listUser = findUserByUserNamePassword.invokeSelect();
        if (listUser != null && listUser.size() > 0) {
          biUser = (BOInstance) listUser.get(0);
        }

      }
      if (biUser == null) {
        ret[0] = I18n.instance().get("账号/密码出错,请重试!");
        return ret;
      } else {
        user = biUser;
        // /设置公司名称
        user.putValue("company", tenant.getValue("l10n"));
      }

    } else {

      user.fromObject(ma);
      DOService findUserService = DOService
          .getService("do_org_user_browse");

      List corrUsers = findUserService.invokeSelect(ma.getObjUid());
      BOInstance employee = null;
      try {
        if (corrUsers == null || corrUsers.size() == 0) {
          // user.putValue("objuid",
          // ma.getObjUid());
          DOService storeUser = DOService
              .getService("do_org_user_insert");
          // /建立用户间的对应关系
          user.putValue("user_code", user.getValue("name"));
          employee = storeUser.store(user);

        } else {
          employee = (BOInstance) corrUsers.get(0);
        }
      } catch (ExedoException e) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.