package com.product.saas.service; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.service.support.AbstractBaseService; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.module.sys.entity.SystemUser; import com.product.util.BaseUtil; /** * 租户信息 * */ @Service public class SaasClientService extends AbstractBaseService{ @Autowired BaseDao baseDao; /** * 租户列表 * @param fse * @return */ public DataTableEntity listClient(FieldSetEntity fse) { SystemUser user = SpringMVCContextHolder.getCurrentUser(); if (user == null) { return null; } List param = new ArrayList<>();; StringBuilder sql = new StringBuilder(); sql.append("\n SELECT"); sql.append("\n A.uuid,A.client_name,A.client_unit_type,A.platform_admin,A.expiration_date,B.apply_status,"); sql.append("\n E.user_name AS client_admin,E.user_mobile_number AS client_admin_phone,E.user_primary_email AS client_admin_email "); sql.append("\n FROM product_sys_clients A"); sql.append("\n LEFT JOIN product_sys_tenant_apply B ON B.client_uuid = A.uuid "); sql.append("\n LEFT JOIN product_sys_org_levels C ON C.client_uuid = A.uuid AND C.org_level_type = 0 "); sql.append("\n LEFT JOIN product_sys_org_manager D ON D.org_level_uuid = C.uuid "); sql.append("\n LEFT JOIN product_sys_users E ON E.user_id = D.user_id "); sql.append("\n WHERE A.uuid != '00000000-0000-0000-0000-000000000000' "); FieldSetEntity fsePost = user.getJobPost(); if(fsePost.getString("job_post_name").contains("平台管理员")) { param.add(user.getUser_id()); sql.append("\n AND A.platform_admin = ?"); } DataTableEntity dte = baseDao.listTable(sql.toString(), param.toArray(), fse.getInteger("pagesize"), fse.getInteger("cpage")); if (!BaseUtil.dataTableIsEmpty(dte)) { baseDao.loadPromptData(dte); } return dte; } /** * 租户详情 * @param uuid * @return */ public FieldSetEntity findClient(String uuid) { StringBuilder sql = new StringBuilder(); sql.append("\n SELECT A.*,B.legal_person,B.credit_code,B.business_license,E.user_name,E.user_mobile_number,E.user_primary_email "); sql.append("\n FROM product_sys_clients A "); sql.append("\n LEFT JOIN product_sys_tenant_apply B ON B.client_uuid = A.uuid "); sql.append("\n LEFT JOIN product_sys_org_levels C ON C.client_uuid = A.uuid AND C.org_level_type = 0 "); sql.append("\n LEFT JOIN product_sys_org_manager D ON D.org_level_uuid = C.uuid "); sql.append("\n LEFT JOIN product_sys_users E ON E.user_id = D.user_id "); sql.append("\n WHERE A.uuid = ? "); return baseDao.getFieldSetEntityBySQL(sql.toString(), new Object[] {uuid}, false); } }