杜洪波
2026-03-24 616ca0caf25685efec6094686f01c0413f869af9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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);
    }
}