From 50fb58286ed3b718c39a97e0987ee7561a295651 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期五, 04 七月 2025 17:56:41 +0800 Subject: [PATCH] git ch --- server/service/src/main/java/com/doumee/core/utils/Constants.java | 291 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 281 insertions(+), 10 deletions(-) diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java index 00e3625..e50d3aa 100644 --- a/server/service/src/main/java/com/doumee/core/utils/Constants.java +++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java @@ -2,12 +2,21 @@ import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.IdcardUtil; +import com.aliyun.auth.credentials.Credential; +import com.aliyun.auth.credentials.provider.StaticCredentialProvider; +import com.aliyun.sdk.service.cloudauth20190307.AsyncClient; +import com.aliyun.sdk.service.cloudauth20190307.models.Id2MetaVerifyRequest; +import com.aliyun.sdk.service.cloudauth20190307.models.Id2MetaVerifyResponse; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; +import com.doumee.dao.business.dto.ApplyPowerDTO; import com.doumee.dao.business.dto.CountCyclePriceDTO; import com.doumee.dao.business.model.*; +import com.doumee.dao.business.vo.ApplyPowerVO; import com.doumee.dao.business.vo.ChangeDealTypeVO; import com.doumee.dao.business.vo.CountCyclePriceVO; +import com.google.gson.Gson; +import darabonba.core.client.ClientOverrideConfiguration; import io.swagger.models.auth.In; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.compress.archivers.zip.Zip64Mode; @@ -21,12 +30,38 @@ import java.math.RoundingMode; import java.net.URL; import java.net.URLDecoder; +import java.time.Instant; import java.time.LocalDate; +import java.time.Period; +import java.time.ZoneId; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.Date; +import java.util.concurrent.CompletableFuture; import java.util.regex.Matcher; import java.util.regex.Pattern; + +import com.aliyun.auth.credentials.Credential; +import com.aliyun.auth.credentials.provider.StaticCredentialProvider; +import com.aliyun.core.http.HttpClient; +import com.aliyun.core.http.HttpMethod; +import com.aliyun.core.http.ProxyOptions; +import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder; +import com.aliyun.sdk.service.cloudauth20190307.models.*; +import com.aliyun.sdk.service.cloudauth20190307.*; +import com.google.gson.Gson; +import darabonba.core.RequestConfiguration; +import darabonba.core.client.ClientOverrideConfiguration; +import darabonba.core.utils.CommonUtil; +import darabonba.core.TeaPair; + +//import javax.net.ssl.KeyManager; +//import javax.net.ssl.X509TrustManager; +import java.net.InetSocketAddress; +import java.time.Duration; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.io.*; public class Constants { @@ -316,6 +351,38 @@ } return Constants.countPriceVO(countCyclePriceDTO.getStartDate(),countCyclePriceDTO.getSolutions()); } + + public static int calculateAge(String idCard,Date dateDate) { + try{ + Integer happenYear = Integer.valueOf(DateUtil.dateToString(dateDate,"yyyy")); + Integer birthYear = Integer.valueOf(idCard.substring(6,10)); + return happenYear - birthYear; + }catch (Exception e){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"骞撮緞淇℃伅閿欒"); + } + + + + + +// if (idCard == null || idCard.length() != 18) { +// throw new IllegalArgumentException("韬唤璇佸彿鐮佸繀椤绘槸18浣�"); +// } +// +// // 鎻愬彇鍑虹敓鏃ユ湡 +// String birthDateStr = idCard.substring(6, 14); // 渚嬪锛�19900101 +// LocalDate birthDate = LocalDate.parse(birthDateStr); +// Instant instant = dateDate.toInstant(); +// // 鑾峰彇褰撳墠鏃ユ湡 +// LocalDate currentDate = instant.atZone(ZoneId.systemDefault()).toLocalDate(); // 杞崲涓� LocalDate +// +// // 璁$畻骞撮緞 +// Period period = Period.between(birthDate, currentDate); +// int age = period.getYears(); // 鐩存帴鑾峰彇骞翠唤宸嵆涓哄勾榫� + +// return age; + } + public static CountCyclePriceVO countPriceVO(Date startDate, Solutions solutions){ CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO(); @@ -895,14 +962,7 @@ } - public static void main(String[] args) { - System.out.println(BigDecimal.valueOf(3.45678).setScale(2,BigDecimal.ROUND_HALF_UP)); - System.out.println(BigDecimal.valueOf(3.45678).setScale(2,BigDecimal.ROUND_DOWN)); -// System.out.println(IdcardUtil.isValidCard("340621199310134818")); -// System.out.println(IdcardUtil.isValidCard("341621199310134818")); -// System.out.println("{\"companyName\":\"搴斿疂绉戞妧\",\"endtime\":\"2024-03-01 17:19:00\",\"erpId\":\"4D40185D5BC74A13821BE46EAF8B4179\",\"erpWithVisitDTOList\":[],\"faceImg\":\"20240304/1709518170325_742.jpg\",\"idcardNo\":\"342501199609300535\",\"idcardType\":0,\"name\":\"榛勬檵\",\"phone\":\"17756328697\",\"reason\":\"鎺㈤櫓\",\"receptMemberId\":\"E7E514BD7DE3F27CE0530B630A0AEAE0\",\"starttime\":\"2024-03-01 13:18:00\"}"); - } /** * 鐢ㄦ埛绫诲瀷 0绯荤粺鐢ㄦ埛 1浼佷笟鐢ㄦ埛 2鏈嶅姟鏈烘瀯绠$悊鍛� 3鏈嶅姟鏈烘瀯瀛愯处鍙� 4缁煎悎鏈嶅姟鍗曚綅绠$悊鍛� 5缁煎悎鏈嶅姟鍗曚綅瀛愯处鍙� 6涓撳 7鍘垮尯鐢ㄦ埛 8甯傚眬鐢ㄦ埛 */ @@ -1976,7 +2036,7 @@ ACCEPTANCE(9, "宸插彈鐞�",3),//寰呯悊绠� WAIT_AUDIT_COMPENSATION(10, "寰呮牳璧�",4), COMPENSATION(11, "宸叉牳璧�",5), - CONFIRM_FEE(12, "宸茬‘璁ら噾棰�",5), + CONFIRM_FEE(12, "寰呯粨妗�",5), CLOSE_CASE(13, "宸茬粨妗�",6), RETURN(14, "宸叉挙妗�",7), ; @@ -2035,7 +2095,7 @@ SUPPLEMENT(5, "琛ュ厖璇存槑","鎻愪氦鎰忚锛�${param}"), PLATFORM_LP_DEAL(6, "骞冲彴鐞嗚禂澶勭悊","宸插湪骞冲彴瀹屾垚鐞嗚禂"), PLATFORM_REMARK(7, "澶囨敞鏍囩","${param}"), - PLATFORM_ADDCODE(8, "骞冲彴娣诲姞鎶ユ鍙�","澶囨鍙凤細${param}"), + PLATFORM_ADDCODE(8, "骞冲彴淇敼鎶ユ鍙�","澶囨鍙凤細${param}"), PLATFORM_UN_AGREE_BACK(9, "浼佷笟涓嬭浇璧勬枡",""), PLATFORM_DOWNLOAD(10, "骞冲彴涓嬭浇璧勬枡",""), PLATFORM_CHECK_PASS(11, "骞冲彴涓婁紶璧勬枡",""), @@ -2143,7 +2203,6 @@ } return null; } - // 鏅�氭柟娉� public static SettleClaimsLogParentStatus getAll(int index) { @@ -2838,5 +2897,217 @@ } + public static void initApplyStatus(InsuranceApply apply){ + apply.setStatusCollect(Constants.InsuranceApplyStatus.getCollectStatus(apply.getStatus())); + if(Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()) + || Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())){ + //濡傛灉宸插畬鎴� + if(apply.getEndTime()==null || System.currentTimeMillis()>apply.getEndTime().getTime()){ + apply.setStatusCollect(Constants.THREE);//宸茶繃鏈� + } + } + Constants.setServiceDays(apply); + apply.setStatusInfo(Constants.ApplyCollectStatus.getName(apply.getStatusCollect())); + if(Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()) + || Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.WTB_DONE.getKey()) ){ + if(apply.getStartTime().getTime()>System.currentTimeMillis()){ + apply.setStatusInfo("寰呯敓鏁�"); + }else if(apply.getEndTime().getTime()<System.currentTimeMillis()){ + apply.setStatusInfo("宸茶繃鏈�"); + }else{ + apply.setStatusInfo("淇濋殰涓�"); + } + } + } + + public static void setServiceDays(InsuranceApply insuranceApply) { + //璁剧疆鍦ㄤ繚鏃堕暱锛堝ぉ鏁帮級 + insuranceApply.setServiceDays(Constants.ZERO); + if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()) + || insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WTB_DONE.getKey())){ + //濡傛灉褰撳墠鏃堕棿澶т簬缁撴潫鏃ユ湡 鍒欎娇鐢ㄧ粨鏉熸棩鏈熷姣斿紑濮嬫棩鏈� + if(DateUtil.compareDate(new Date(),insuranceApply.getEndTime())>=Constants.ZERO){ + insuranceApply.setServiceDays( + DateUtil.daysBetweenDates(insuranceApply.getEndTime(),insuranceApply.getStartTime())+1 + ); + }else if(DateUtil.compareDate(insuranceApply.getStartTime(),new Date())>=Constants.ZERO){ + //鏈紑濮� + insuranceApply.setServiceDays(Constants.ZERO); + }else{ + insuranceApply.setServiceDays(DateUtil.daysBetweenDates(new Date(),insuranceApply.getStartTime())+1); + } + } + } + + public static ApplyPowerVO getApplyPowerStatic(ApplyPowerDTO applyPowerDTO, InsuranceApply insuranceApply, Solutions solutions){ + if(Objects.isNull(applyPowerDTO) + || Objects.isNull(applyPowerDTO.getApplyId())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍙傛暟閿欒"); + } + if(Objects.isNull(applyPowerDTO.getBeginDate())){ + applyPowerDTO.setBeginDate(new Date()); + } + ApplyPowerVO applyPowerVO = new ApplyPowerVO(); + //鑾峰彇鏂规 缁撴潫鏃堕棿 + Date endTime = insuranceApply.getEndTime(); + //鏌ヨ褰撳墠鍘诲姞淇濈殑寮�濮嬫棩鏈� yyyy-MM-dd HH:mm:ss 2024-10-29 00:00:00 + Date addStartDate = DateUtil.getMontageDate( + DateUtil.afterDateByType(applyPowerDTO.getBeginDate(),Constants.ZERO,solutions.getAddValidDays()), + 1 + ); + applyPowerVO.setAddStartDate(addStartDate); + //鍔犱繚鐢熸晥鏃ユ湡澶т簬 淇濆崟缁撴潫鏃ユ湡 鍒欎笉鍙互杩涜鍔犱繚 + if(addStartDate.getTime()>=endTime.getTime()){ + applyPowerVO.setAddTrue(Constants.ONE); + }else{ + applyPowerVO.setAddTrue(Constants.ZERO); + } + //鏌ヨ褰撳墠鍘诲噺淇濈殑寮�濮嬫棩鏈� yyyy-MM-dd HH:mm:ss 2024-10-29 00:00:00 + Date delStartDate = DateUtil.getMontageDate( + DateUtil.afterDateByType(applyPowerDTO.getBeginDate(),Constants.ZERO,solutions.getAddValidDays()), + 1 + ); + applyPowerVO.setDelStartDate(delStartDate); + //鍔犱繚鐢熸晥鏃ユ湡澶т簬 淇濆崟缁撴潫鏃ユ湡 鍒欎笉鍙互杩涜鍑忎繚 + if(delStartDate.getTime()>=endTime.getTime()){ + applyPowerVO.setDelTrue(Constants.ONE); + }else{ + applyPowerVO.setDelTrue(Constants.ZERO); + } + return applyPowerVO; + } + + public static void main(String[] args) throws Exception { +// System.out.println(BigDecimal.valueOf(3.45678).setScale(2,BigDecimal.ROUND_HALF_UP)); +// System.out.println(BigDecimal.valueOf(3.45678).setScale(2,BigDecimal.ROUND_DOWN)); +// System.out.println(IdcardUtil.isValidCard("340621199310134818")); +// System.out.println(IdcardUtil.isValidCard("341621199310134818")); + +// System.out.println("{\"companyName\":\"搴斿疂绉戞妧\",\"endtime\":\"2024-03-01 17:19:00\",\"erpId\":\"4D40185D5BC74A13821BE46EAF8B4179\",\"erpWithVisitDTOList\":[],\"faceImg\":\"20240304/1709518170325_742.jpg\",\"idcardNo\":\"342501199609300535\",\"idcardType\":0,\"name\":\"榛勬檵\",\"phone\":\"17756328697\",\"reason\":\"鎺㈤櫓\",\"receptMemberId\":\"E7E514BD7DE3F27CE0530B630A0AEAE0\",\"starttime\":\"2024-03-01 13:18:00\"}"); + +// Constants constants = new Constants(); +// constants.test("LTAI5tRBTeQKoeUs41yVdW4F","rYHEOw2l7AooAOz88JSZ2aSQxfQQTS","340621199310134818","浠诲悍"); + + + + StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() + // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. + .accessKeyId("LTAI5tKzCBb4CU1bwUfSoakP") + .accessKeySecret("7HNswKVfXJkSmiQDTT5wL3KjH1oS16") + //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // use STS token + .build()); + + // Configure the Client + AsyncClient client = AsyncClient.builder() + .region("cn-hangzhou") // Region ID + //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient) + .credentialsProvider(provider) + //.serviceConfiguration(Configuration.create()) // Service-level configuration + // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc. + .overrideConfiguration( + ClientOverrideConfiguration.create() + // Endpoint 璇峰弬鑰� https://api.aliyun.com/product/Cloudauth + .setEndpointOverride("cloudauth.aliyuncs.com") + //.setConnectTimeout(Duration.ofSeconds(30)) + ) + .build(); + + // Parameter settings for API request + Id2MetaVerifyRequest id2MetaVerifyRequest = Id2MetaVerifyRequest.builder() + .identifyNum("340621199310134818") + .userName("浠诲悍") + .paramType("normal") + // Request-level configuration rewrite, can set Http request parameters, etc. + // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders())) + .build(); + + // Asynchronously get the return value of the API request + CompletableFuture<Id2MetaVerifyResponse> response = client.id2MetaVerify(id2MetaVerifyRequest); + // Synchronously get the return value of the API request + Id2MetaVerifyResponse resp = response.get(); + System.out.println(new Gson().toJson(resp)); + // Asynchronous processing of return values + /*response.thenAccept(resp -> { + System.out.println(new Gson().toJson(resp)); + }).exceptionally(throwable -> { // Handling exceptions + System.out.println(throwable.getMessage()); + return null; + });*/ + + // Finally, close the client + client.close(); + } + + public void test(String accessKeyId,String accessKeySecret,String identifyNum,String name) throws Exception{ + +// HttpClient Configuration + /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder() + .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout time, the default is 10 seconds + .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout time, the default is 20 seconds + .maxConnections(128) // Set the connection pool size + .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout, the default is 30 seconds + // Configure the proxy + .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001)) + .setCredentials("<your-proxy-username>", "<your-proxy-password>")) + // If it is an https connection, you need to configure the certificate, or ignore the certificate(.ignoreSSL(true)) + .x509TrustManagers(new X509TrustManager[]{}) + .keyManagers(new KeyManager[]{}) + .ignoreSSL(false) + .build();*/ + + // Configure Credentials authentication information, including ak, secret, token + StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() + // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set. + .accessKeyId(System.getenv(accessKeyId)) + .accessKeySecret(System.getenv(accessKeySecret)) + //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // use STS token + .build()); + + // Configure the Client + AsyncClient client = AsyncClient.builder() + .region("cn-hangzhou") // Region ID + //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient) + .credentialsProvider(provider) + //.serviceConfiguration(Configuration.create()) // Service-level configuration + // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc. + .overrideConfiguration( + ClientOverrideConfiguration.create() + // Endpoint 璇峰弬鑰� https://api.aliyun.com/product/Cloudauth + .setEndpointOverride("cloudauth.aliyuncs.com") + //.setConnectTimeout(Duration.ofSeconds(30)) + ) + .build(); + + // Parameter settings for API request + Id2MetaVerifyRequest id2MetaVerifyRequest = Id2MetaVerifyRequest.builder() + .identifyNum(identifyNum) + .userName(name) + .paramType("normal") + // Request-level configuration rewrite, can set Http request parameters, etc. + // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders())) + .build(); + + // Asynchronously get the return value of the API request + CompletableFuture<Id2MetaVerifyResponse> response = client.id2MetaVerify(id2MetaVerifyRequest); + // Synchronously get the return value of the API request + Id2MetaVerifyResponse resp = response.get(); + System.out.println(new Gson().toJson(resp)); + // Asynchronous processing of return values + /*response.thenAccept(resp -> { + System.out.println(new Gson().toJson(resp)); + }).exceptionally(throwable -> { // Handling exceptions + System.out.println(throwable.getMessage()); + return null; + });*/ + + // Finally, close the client + client.close(); + + } + + + + + } -- Gitblit v1.9.3