| | |
| | | import com.product.core.entity.FieldSetEntity; |
| | | import com.product.core.service.support.AbstractBaseService; |
| | | import com.product.core.spring.context.SpringMVCContextHolder; |
| | | import com.product.core.transfer.Transactional; |
| | | import com.product.module.sys.entity.SystemUser; |
| | | import com.product.saas.service.idel.ISaasClientService; |
| | | import com.product.util.BaseUtil; |
| | | |
| | | /** |
| | |
| | | * |
| | | */ |
| | | @Service |
| | | public class SaasClientService extends AbstractBaseService{ |
| | | public class SaasClientService extends AbstractBaseService implements ISaasClientService{ |
| | | |
| | | @Autowired |
| | | BaseDao baseDao; |
| | |
| | | if (user == null) { |
| | | return null; |
| | | } |
| | | List<Object> param = new ArrayList<>();; |
| | | 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 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 = ?"); |
| | | if (fsePost == null) { |
| | | param.add(user.getClient_uuid()); |
| | | sql.append("\n AND A.uuid = ?"); |
| | | } else { |
| | | 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)) { |
| | |
| | | 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); |
| | | FieldSetEntity fseClient = baseDao.getFieldSetEntityBySQL(sql.toString(), new Object[] {uuid}, false); |
| | | if(fseClient != null) { |
| | | DataTableEntity dtClientChange = baseDao.listTable("product_sys_tenant_change", "client_uuid = ?", new Object[] {uuid}); |
| | | if (!BaseUtil.dataTableIsEmpty(dtClientChange)) { |
| | | baseDao.loadPromptData(dtClientChange); |
| | | } |
| | | fseClient.addSubDataTable(dtClientChange); |
| | | } |
| | | return fseClient; |
| | | } |
| | | |
| | | /** |
| | | * 租户信息变更列表 |
| | | * @param fse |
| | | * @return |
| | | */ |
| | | public DataTableEntity listClientChange(FieldSetEntity fse) { |
| | | SystemUser user = SpringMVCContextHolder.getCurrentUser(); |
| | | if (user == null) { |
| | | return null; |
| | | } |
| | | List<Object> param = new ArrayList<>(); |
| | | StringBuilder sql = new StringBuilder(); |
| | | sql.append("\n SELECT * FROM product_sys_tenant_change A"); |
| | | sql.append("\n LEFT JOIN product_sys_clients B ON B.uuid = A.client_uuid"); |
| | | FieldSetEntity fsePost = user.getJobPost(); |
| | | String filter = fse.getString("filter"); |
| | | if (fsePost == null) { |
| | | param.add(user.getClient_uuid()); |
| | | sql.append("\n WHERE client_uuid = ?"); |
| | | if ("entrance".equals(filter)) { |
| | | sql.append("\n AND (change_status IS NULL OR change_status = 0)"); |
| | | } else { |
| | | sql.append("\n AND (change_status = 1 OR change_status = 2)"); |
| | | } |
| | | } else { |
| | | if(fsePost.getString("job_post_name").contains("平台管理员")) { |
| | | param.add(user.getUser_id()); |
| | | sql.append("\n WHERE B.platform_admin = ?"); |
| | | if ("entrance".equals(filter)) { |
| | | sql.append("\n AND change_status = 1"); |
| | | } else { |
| | | sql.append("\n AND change_status = 2"); |
| | | } |
| | | } |
| | | } |
| | | sql.append("\n ORDER BY created_utc_datetime"); |
| | | DataTableEntity dte = baseDao.listTable(sql.toString(), param.toArray(), fse.getInteger("pagesize"), fse.getInteger("cpage")); |
| | | if (!BaseUtil.dataTableIsEmpty(dte)) { |
| | | baseDao.loadPromptData(dte); |
| | | } |
| | | return dte; |
| | | } |
| | | |
| | | /** |
| | | * 客户信息变更进程 |
| | | * @param fseChange |
| | | * @return |
| | | */ |
| | | @Transactional |
| | | public boolean clientChangeProcess(FieldSetEntity fseChange) { |
| | | String changeStatus = fseChange.getString("change_status"); |
| | | if (BaseUtil.strIsNull(changeStatus) || "0".equals(changeStatus)) { |
| | | // 租户管理员提交变更 |
| | | fseChange.setValue("change_status", 1); |
| | | } else { |
| | | // 管理员确认变更 |
| | | String clientUUID = fseChange.getString("client_uuid"); |
| | | String newClientName = fseChange.getString("new_client_name"); |
| | | if (!BaseUtil.strIsNull(newClientName)) { |
| | | String oldClientName = fseChange.getString("old_client_name"); |
| | | // 变更客户名称 |
| | | baseDao.executeUpdate("UPDATE product_sys_clients SET client_name = ? WHERE uuid = ?", new Object[] {newClientName, clientUUID}); |
| | | // 变更组织机构名称,全称 |
| | | baseDao.executeUpdate("UPDATE product_sys_org_levels SET org_level_name = REPLACE(org_level_name, ?, ?),org_level_all = REPLACE(org_level_all, ?, ?) WHERE org_level_all LIKE ?", |
| | | new Object[] {oldClientName, newClientName, oldClientName, newClientName, "%"+oldClientName+"%"}); |
| | | } |
| | | String newClientAdmin = fseChange.getString("new_client_admin"); |
| | | if (!BaseUtil.strIsNull(newClientAdmin)) { |
| | | // String oldClientAdmin = fseChange.getString("old_client_admin"); |
| | | // 去掉旧管理员 |
| | | // 生成新管理员 |
| | | } |
| | | String newBusinessLicense = fseChange.getString("new_business_license"); |
| | | if (!BaseUtil.strIsNull(newBusinessLicense)) { |
| | | // String oldBusinessLicense = fseChange.getString("old_business_license"); |
| | | // 将新营业执照归入客户信息中 |
| | | baseDao.executeUpdate("UPDATE product_sys_tenant_apply SET business_license = ? WHERE client_uuid = ?", new Object[] {newBusinessLicense, clientUUID}); |
| | | } |
| | | fseChange.setValue("change_status", 2); |
| | | } |
| | | return baseDao.saveFieldSetEntity(fseChange); |
| | | } |
| | | } |