Quellcode durchsuchen

修复年龄计算问题

aokunsang vor 2 Jahren
Ursprung
Commit
19ba8ea854

+ 4 - 2
src/main/java/com/platomix/userprofile/handler/core/XxhLongTagHandler.java

@@ -3,6 +3,7 @@
  */
 package com.platomix.userprofile.handler.core;
 
+import java.time.LocalDate;
 import java.util.concurrent.TimeUnit;
 
 import com.platomix.userprofile.enums.DsEnum;
@@ -33,6 +34,7 @@ public class XxhLongTagHandler extends AbstractTagHandler {
 	public void invoke(String month, String mobileLeft, String mobileRight) {
 		String lrMobileSql = mobileLeft == null || mobileRight == null ? "" : String.format(" and DEVICE_NUMBER>='%s' and DEVICE_NUMBER<'%s'", mobileLeft, mobileRight);
 		StrBuilder sqlBuilder = new StrBuilder();
+		int year = LocalDate.now().getYear();
 		sqlBuilder.appendLn(super.buildTableSql(XXH_TABLE_NAME, null, "DEVICE_NUMBER"));
 		sqlBuilder.appendLn("select DEVICE_NUMBER ,any(PROV_DESC) PROV_DESC,");
 		sqlBuilder.appendLn("any(SERVICE_TYPE) SERVICE_TYPE,any(CUST_SEX) CUST_SEX,any(CERT_AGE) CERT_AGE,any(PRODUCT_CLASS_DESC) PRODUCT_CLASS_DESC ");
@@ -43,8 +45,8 @@ public class XxhLongTagHandler extends AbstractTagHandler {
 		sqlBuilder.appendLn(String.format("	where  MONTH_ID >='202101' and  DEVICE_NUMBER not in (select DEVICE_NUMBER from ads.XXH_KUAISHOU_MONTH where 1=1 %s)  %s ",lrMobileSql,lrMobileSql));
 		sqlBuilder.appendLn("  union all ");
 		sqlBuilder.appendLn(" select MONTH_ID,DEVICE_NUMBER,  PROV_DESC, NULL as SERVICE_TYPE,if(CUST_SEX==1,'男','女') as CUST_SEX, ");
-		sqlBuilder.appendLn("  multiIf((2021-CERT_AGE)>=2010,'10后',(2021-CERT_AGE)>=2000,'00后',(2021-CERT_AGE)>=1990,'90后',(2021-CERT_AGE)>=1980,'80后', ");
-		sqlBuilder.appendLn("  (2021-CERT_AGE)>=1970,'70后',(2021-CERT_AGE)<1970,'70前','未知') as CERT_AGE, ");
+		sqlBuilder.appendLn("  multiIf(("+year+"-CERT_AGE)>=2010,'10后',("+year+"-CERT_AGE)>=2000,'00后',("+year+"-CERT_AGE)>=1990,'90后',("+year+"-CERT_AGE)>=1980,'80后', ");
+		sqlBuilder.appendLn("  ("+year+"-CERT_AGE)>=1970,'70后',("+year+"-CERT_AGE)<1970,'70前','未知') as CERT_AGE, ");
 		sqlBuilder.appendLn("  PRODUCT_CLASS_DESC ");
 		sqlBuilder.appendLn("  from ads.XXH_KUAISHOU_MONTH where 1=1 " + lrMobileSql);
 		sqlBuilder.appendLn("  ) s1 ");