| src/main/java/com/product/saas/config/SaasConst.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/product/saas/controller/SaasClientController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/product/saas/controller/SystemContractController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/product/saas/service/SaasClientService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/product/saas/service/SystemContractService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/product/saas/service/TenantApplyService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/product/saas/config/SaasConst.java
@@ -9,6 +9,8 @@ //表å常é public static final String PRODUCT_SYS_TENANT_APPLY = "product_sys_tenant_apply"; public static final String PRODUCT_SYS_CLIENTS = "product_sys_clients"; public static final String PRODUCT_SYS_CONTRACT = "product_sys_contract"; //åæ®µå¸¸é } src/main/java/com/product/saas/controller/SaasClientController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,68 @@ package com.product.saas.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.product.admin.config.SystemCode; import com.product.core.controller.support.AbstractBaseController; import com.product.core.entity.FieldSetEntity; import com.product.module.sys.version.ApiVersion; import com.product.saas.config.SaasCode; import com.product.saas.config.SaasConst; import com.product.saas.service.SaasClientService; import com.product.util.BaseUtil; /** * SAASç³»ç»ç§æ· * */ @RequestMapping("/api/saas-client") @RestController public class SaasClientController extends AbstractBaseController{ @Autowired SaasClientService saasClientService; /** * ç§æ·å表 * @param request * @return */ @RequestMapping("/list-client/{version}") @ApiVersion(1) public String listClient(HttpServletRequest request) { try { FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, SaasConst.PRODUCT_SYS_CLIENTS); if(BaseUtil.strIsNull(fse.getString(SaasConst.CPAGE)) || BaseUtil.strIsNull(fse.getString(SaasConst.PAGESIZE))) { return error(SystemCode.SYSTEM_CPAGES_NOT_NULL.getValue(), SystemCode.SYSTEM_CPAGES_NOT_NULL.getText()); } return OK_List(saasClientService.listClient(fse)); } catch (Exception e) { e.printStackTrace(); return error(SaasCode.TENANT_INFO_GET_LIST_FAIL.getValue(), SaasCode.TENANT_INFO_GET_LIST_FAIL.getText() + e.getMessage()); } } /** * ç§æ·å表 * @param request * @return */ @RequestMapping("/find-client/{version}") @ApiVersion(1) public String findClient(HttpServletRequest request) { try { FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, SaasConst.PRODUCT_SYS_CLIENTS); if(BaseUtil.strIsNull(fse.getUUID())) { return error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText()); } return OK_List(saasClientService.findClient(fse.getUUID())); } catch (Exception e) { e.printStackTrace(); return error(SaasCode.TENANT_INFO_GET_LIST_FAIL.getValue(), SaasCode.TENANT_INFO_GET_LIST_FAIL.getText() + e.getMessage()); } } } src/main/java/com/product/saas/controller/SystemContractController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,44 @@ package com.product.saas.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.product.admin.config.SystemCode; import com.product.saas.config.SaasConst; import com.product.saas.service.SystemContractService; import com.product.core.controller.support.AbstractBaseController; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.module.sys.version.ApiVersion; import com.product.util.BaseUtil; @RequestMapping("/api/system-contract") @RestController public class SystemContractController extends AbstractBaseController{ @Autowired SystemContractService systemContractService; /** * è·åç§æ·ææ°ååä¿¡æ¯ * @param request * @return */ @RequestMapping("/find-contract/{version}") @ApiVersion(1) public String findContract(HttpServletRequest request){ try { FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, SaasConst.PRODUCT_SYS_CONTRACT); return OK_List(systemContractService.findContract(fse.getString("uuid"))); } catch (BaseException e) { e.printStackTrace(); return this.error(e); }catch (Exception e){ e.printStackTrace(); return error(SystemCode.GET_FUNCTION_TREE_FAIL.getValue(),SystemCode.GET_FUNCTION_TREE_FAIL.getText()+e.getMessage()); } } } src/main/java/com/product/saas/service/SaasClientService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,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); } } src/main/java/com/product/saas/service/SystemContractService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,118 @@ package com.product.saas.service; import java.io.File; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.product.core.cache.DataPoolCacheImpl; import com.product.core.config.Global; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.core.service.support.AbstractBaseService; import com.product.saas.config.SaasCode; import com.product.saas.config.SaasConst; import cn.hutool.core.io.FileUtil; @Component public class SystemContractService extends AbstractBaseService{ @Autowired BaseDao baseDao; /** * è·ååå详æ (æµç¨è¯¦æ è°ç¨) * @param fse * @return * @throws BaseException */ public FieldSetEntity findContract(FieldSetEntity fse) throws BaseException { return findContract(fse.getUUID()); } /** * è·åååä¿¡æ¯ * @param clientUUID * @return */ public FieldSetEntity findContract(String uuid) { // è·åååä¿¡æ¯ FieldSetEntity fseContract = baseDao.getFieldSetEntityBySQL("SELECT A.*,B.client_unit_type FROM product_sys_contract A LEFT JOIN product_sys_clients B ON B.uuid = A.client_uuid WHERE A.uuid = ?", new Object[] {uuid}, false); if(fseContract != null) { DataTableEntity dteClient = DataPoolCacheImpl.getInstance().getCacheData("客æ·ä¿¡æ¯", new String[]{fseContract.getString("client_uuid")}); fseContract.setValue("client_unit_type", dteClient.getFieldSetEntity(0).getString("client_unit_type")); fseContract.setValue("expiration_date", dteClient.getFieldSetEntity(0).getString("expiration_date")); } return fseContract; } /** * ååæµç¨ç»æè¦çLicenseï¼ç»æèç¹å¤çå¨è°ç¨ï¼ * * @param fseContract */ public void contractFinish(FieldSetEntity fseContract) { // String isPayment = fseContract.getString("is_payment"); FieldSetEntity fseClient = baseDao.getFieldSetEntity(SaasConst.PRODUCT_SYS_CLIENTS, fseContract.getString(SaasConst.CLIENT_UUID), false); copyLicense(fseContract.getString("license_doc"), fseClient.getString("client_code")); } /** * å¤å¶licenseå°æå®ç®å½ * @param fileUUID éä»¶UUID * @param clientCode 客æ·ç¼ç */ public void copyLicense(String fileUUID, String clientCode) { // è·åæä»¶ä¿¡æ¯ FieldSetEntity fse = baseDao.getFieldSetEntity(SaasConst.PRODUCT_SYS_ATTACHMENTS, fileUUID, false); if (fse == null) { throw new BaseException(SaasCode.TENANT_APPLY_LICENSE_DATA_NO_EXIST.getValue(), SaasCode.TENANT_APPLY_LICENSE_DATA_NO_EXIST.getText()); } // æå»ºæºæä»¶è·¯å¾ String baseDir = System.getProperty("user.dir"); String localDir = Global.getSystemConfig("local.dir", ""); String attachmentUrl = fse.getString("attachment_url"); String attachmentTitle = fse.getString("attachment_title"); String filePath = baseDir + File.separator + localDir + File.separator + attachmentUrl + File.separator + attachmentTitle; // æ£æ¥æºæä»¶æ¯å¦åå¨ if (!FileUtil.exist(filePath)) { throw new BaseException(SaasCode.TENANT_APPLY_LICENSE_FILE_NO_EXIST.getValue(), SaasCode.TENANT_APPLY_LICENSE_FILE_NO_EXIST.getText()); } // æå»ºç®æ ç®å½ String targetDir = baseDir + File.separator + "resources" + File.separator; FileUtil.mkdir(targetDir); // æå»ºç®æ æä»¶åï¼license + clientCode + .dat // æ 论åæä»¶æ¯å¦ææ©å±åï¼é½ä½¿ç¨.datæ©å±å String targetFileName = "license" + clientCode + ".dat"; String targetPath = targetDir + targetFileName; // å¤å¶æä»¶ try { // 使ç¨Hutoolå¤å¶ï¼ç¬¬ä¸ä¸ªåæ°true表示è¦çå·²åå¨çæä»¶ FileUtil.copy(filePath, targetPath, true); // éªè¯å¤å¶ç»æ if (FileUtil.exist(targetPath)) { long sourceSize = FileUtil.size(new File(filePath)); long targetSize = FileUtil.size(new File(targetPath)); if (sourceSize != targetSize) { throw new BaseException(SaasCode.TENANT_APPLY_LICENSE_FILE_COPY_FAIL.getValue(), SaasCode.TENANT_APPLY_LICENSE_FILE_COPY_FAIL.getValue() + "ç®æ æä»¶ä¸å®æ´"); } } else { throw new BaseException(SaasCode.TENANT_APPLY_LICENSE_FILE_COPY_FAIL.getValue(), SaasCode.TENANT_APPLY_LICENSE_FILE_COPY_FAIL.getValue() + "ç®æ æä»¶ä¸åå¨"); } } catch (Exception e) { throw new BaseException(SaasCode.TENANT_APPLY_LICENSE_FILE_COPY_FAIL.getValue(), SaasCode.TENANT_APPLY_LICENSE_FILE_COPY_FAIL.getValue() + e.getMessage()); } } } src/main/java/com/product/saas/service/TenantApplyService.java
@@ -225,8 +225,9 @@ FieldSetEntity fseOrgUnit = new FieldSetEntity(CmnConst.PRODUCT_SYS_ORG_LEVELS); fseOrgUnit.setValue("client_uuid", fseClient.getUUID()); fseOrgUnit.setValue("org_level_name", fseApply.getString("unit_name")); fseOrgUnit.setValue("org_level_all", fseApply.getString("unit_name")); fseOrgUnit.setValue("org_level_code", codeService.createCode("product_sys_org_levels", "org_level_code", null)); fseOrgUnit.setValue("org_level_all", "æé½XXXX软件æéå ¬å¸>" + fseApply.getString("unit_name")); fseOrgUnit.setValue("org_level_code", codeService.createCode("product_sys_org_levels", "org_level_code", "001")); fseOrgUnit.setValue("org_level_code_parent", "001"); fseOrgUnit.setValue("org_level_type", 0); fseOrgUnit.setValue("sequence", 1); fseOrgUnit.setValue(CmnConst.CREATED_BY, "1"); @@ -256,6 +257,7 @@ fseManager.setValue(CmnConst.CREATED_BY, "1"); fseManager.setValue(CmnConst.CREATED_UTC_DATETIME, new Date()); baseDao.add(fseManager); baseDao.executeUpdate("UPDATE product_sys_tenant_apply SET client_uuid = ? WHERE uuid = ?", new Object[] {fseClient.getUUID(), fseApply.getUUID()}); } /**