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<Object> 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);
|
}
|
}
|