diff --git a/cms/pom.xml b/cms/pom.xml
index 699863fd..393ca635 100644
--- a/cms/pom.xml
+++ b/cms/pom.xml
@@ -83,16 +83,8 @@
yo-fsesl-api
- org.springframework.cloud
- spring-cloud-starter-openfeign
-
-
- io.github.openfeign
- feign-httpclient
-
-
- io.github.openfeign
- feign-jackson
+ com.pudonghot.yo
+ yo-citic-client
org.springframework.boot
diff --git a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/CallingListPreparedServiceImpl.java b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/CallingListPreparedServiceImpl.java
index 95986333..6cd758c4 100644
--- a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/CallingListPreparedServiceImpl.java
+++ b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/CallingListPreparedServiceImpl.java
@@ -22,9 +22,9 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.beans.factory.annotation.Autowired;
import com.wacai.tigon.service.support.BaseCrudServiceSupport;
import com.pudonghot.yo.cms.service.CallingListPreparedService;
-import com.pudonghot.yo.cms.feign.service.FeignCallingListService;
import com.pudonghot.yo.model.dbobject.CallingListPreparedSummary;
import static com.pudonghot.yo.model.domain.Campaign.TargetType.QUEUE;
+import com.pudonghot.yo.citic.feign.service.FeignCiticCallingListService;
/**
* @author Donghuang
@@ -39,7 +39,7 @@ public class CallingListPreparedServiceImpl
implements CallingListPreparedService {
@Autowired
- private FeignCallingListService callingListService;
+ private FeignCiticCallingListService callingListService;
@Value("${yo.campaign.calling-list.fetch-size:24}")
private int fetchSize;
@Autowired
diff --git a/cms/src/main/resources/application.yml b/cms/src/main/resources/application.yml
index c7194a59..2b67f443 100644
--- a/cms/src/main/resources/application.yml
+++ b/cms/src/main/resources/application.yml
@@ -48,6 +48,13 @@ yo:
feign:
base-url: http://stsl.wldmz.cc/stsl-web-partner/call-data/taskdata
channel: dx-hzqw
+ citic:
+ feign:
+ base-url: http://stsl.wldmz.cc/stsl-web-partner
+ calling-list: /call-data/taskdata/dx-hzqw
+ black-list: /resource/black-list/verify
+ black-list-batch: /resource/black-list/batch-verify
+
# CAS
tigon:
shiro:
diff --git a/lib/bom/pom.xml b/lib/bom/pom.xml
index 21c5c856..b9b79120 100644
--- a/lib/bom/pom.xml
+++ b/lib/bom/pom.xml
@@ -82,6 +82,11 @@
yo-fsesl
${yo.version}
+
+ com.pudonghot.yo
+ yo-citic-client
+ ${yo.version}
+
com.pudonghot.yo
yo-fsagent-api
diff --git a/lib/citic-client/README.md b/lib/citic-client/README.md
new file mode 100644
index 00000000..a4585057
--- /dev/null
+++ b/lib/citic-client/README.md
@@ -0,0 +1 @@
+# CITIC Client
diff --git a/lib/citic-client/pom.xml b/lib/citic-client/pom.xml
new file mode 100644
index 00000000..dbb5045c
--- /dev/null
+++ b/lib/citic-client/pom.xml
@@ -0,0 +1,73 @@
+
+
+ 4.0.0
+ yo-citic-client
+ Yo CITIC Client
+ Yo CITIC Client
+ jar
+
+
+ com.pudonghot.yo
+ yo-library
+ 0.0.1-SNAPSHOT
+ ../
+
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+ org.hibernate.validator
+ hibernate-validator
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+ io.github.openfeign
+ feign-httpclient
+
+
+ io.github.openfeign
+ feign-jackson
+
+
+ org.springframework.boot
+ spring-boot-autoconfigure
+ provided
+
+
+ org.projectlombok
+ lombok
+ provided
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-log4j2
+ test
+
+
+ junit
+ junit
+ test
+
+
+
diff --git a/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/config/FeignCiticConfiguration.java b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/config/FeignCiticConfiguration.java
new file mode 100644
index 00000000..20afc0da
--- /dev/null
+++ b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/config/FeignCiticConfiguration.java
@@ -0,0 +1,13 @@
+package com.pudonghot.yo.citic.feign.config;
+
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import com.pudonghot.yo.citic.feign.service.FeignCiticCallingListService;
+
+/**
+ * @author Donghuang
+ * @date Jun 23, 2021 00:10:22
+ */
+@EnableFeignClients(basePackageClasses = FeignCiticCallingListService.class)
+public class FeignCiticConfiguration {
+}
+
diff --git a/cms/src/main/java/com/pudonghot/yo/cms/feign/config/FeignClientConfiguration.java b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/config/FeignClientConfiguration.java
similarity index 92%
rename from cms/src/main/java/com/pudonghot/yo/cms/feign/config/FeignClientConfiguration.java
rename to lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/config/FeignClientConfiguration.java
index 0564561e..1e68ac0d 100644
--- a/cms/src/main/java/com/pudonghot/yo/cms/feign/config/FeignClientConfiguration.java
+++ b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/config/FeignClientConfiguration.java
@@ -1,4 +1,4 @@
-package com.pudonghot.yo.cms.feign.config;
+package com.pudonghot.yo.citic.feign.config;
import feign.Retryer;
import feign.codec.Decoder;
@@ -24,7 +24,7 @@ public class FeignClientConfiguration {
@Bean
public RequestInterceptor requestInterceptor() {
- return reqTpl -> reqTpl.header("x-service-agent", "QINWEI");
+ return reqTpl -> reqTpl.header("x-serv-agent", "QINWEI");
}
@Bean
diff --git a/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/request/CiticBlackListVerifyFeignReq.java b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/request/CiticBlackListVerifyFeignReq.java
new file mode 100644
index 00000000..fd4fb9db
--- /dev/null
+++ b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/request/CiticBlackListVerifyFeignReq.java
@@ -0,0 +1,18 @@
+package com.pudonghot.yo.citic.feign.request;
+
+import lombok.*;
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author Donghuang
+ * @date Jun 23, 2021 00:23:21
+ */
+@Getter
+@Setter
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class CiticBlackListVerifyFeignReq {
+ @NotBlank
+ private String called;
+}
diff --git a/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/response/CiticBlackListBatchVerifyFeignResp.java b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/response/CiticBlackListBatchVerifyFeignResp.java
new file mode 100644
index 00000000..943ed7b6
--- /dev/null
+++ b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/response/CiticBlackListBatchVerifyFeignResp.java
@@ -0,0 +1,31 @@
+package com.pudonghot.yo.citic.feign.response;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import com.fasterxml.jackson.annotation.JsonAlias;
+
+/**
+ * @author Donghuang
+ * @date Jun 23, 2021 00:15:23
+ */
+@Getter
+@Setter
+@ToString
+public class CiticBlackListBatchVerifyFeignResp {
+ @JsonAlias("retcode")
+ private String code;
+ @JsonAlias("message")
+ private String error;
+
+ private BlackListFeignResp[] data;
+
+ @Getter
+ @Setter
+ @ToString
+ public static class BlackListFeignResp {
+ @JsonAlias("inBlackList")
+ private Boolean blacklist;
+ private String phone;
+ }
+}
diff --git a/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/response/CiticBlackListVerifyFeignResp.java b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/response/CiticBlackListVerifyFeignResp.java
new file mode 100644
index 00000000..e9cb47ae
--- /dev/null
+++ b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/response/CiticBlackListVerifyFeignResp.java
@@ -0,0 +1,22 @@
+package com.pudonghot.yo.citic.feign.response;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import com.fasterxml.jackson.annotation.JsonAlias;
+
+/**
+ * @author Donghuang
+ * @date Jun 23, 2021 00:15:23
+ */
+@Getter
+@Setter
+@ToString
+public class CiticBlackListVerifyFeignResp {
+ @JsonAlias("retcode")
+ private String code;
+ @JsonAlias("message")
+ private String error;
+ @JsonAlias("data")
+ private Boolean blacklist;
+}
diff --git a/cms/src/main/java/com/pudonghot/yo/cms/feign/response/RespCallingList.java b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/response/CiticCallingListFeignResp.java
similarity index 90%
rename from cms/src/main/java/com/pudonghot/yo/cms/feign/response/RespCallingList.java
rename to lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/response/CiticCallingListFeignResp.java
index 1f2cc0c3..7660ecf3 100644
--- a/cms/src/main/java/com/pudonghot/yo/cms/feign/response/RespCallingList.java
+++ b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/response/CiticCallingListFeignResp.java
@@ -1,4 +1,4 @@
-package com.pudonghot.yo.cms.feign.response;
+package com.pudonghot.yo.citic.feign.response;
import lombok.Getter;
import lombok.Setter;
@@ -12,7 +12,7 @@ import com.fasterxml.jackson.annotation.JsonAlias;
@Getter
@Setter
@ToString
-public class RespCallingList {
+public class CiticCallingListFeignResp {
@JsonAlias("retcode")
private String code;
@JsonAlias("message")
diff --git a/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/service/FeignCiticBlackListService.java b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/service/FeignCiticBlackListService.java
new file mode 100644
index 00000000..a60a2443
--- /dev/null
+++ b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/service/FeignCiticBlackListService.java
@@ -0,0 +1,59 @@
+package com.pudonghot.yo.citic.feign.service;
+
+import java.util.List;
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotEmpty;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import com.pudonghot.yo.citic.feign.config.FeignClientConfiguration;
+import com.pudonghot.yo.citic.feign.request.CiticBlackListVerifyFeignReq;
+import com.pudonghot.yo.citic.feign.response.CiticBlackListVerifyFeignResp;
+import com.pudonghot.yo.citic.feign.response.CiticBlackListBatchVerifyFeignResp;
+
+/**
+ * @author Donghuang
+ * @date Jan 07, 2020 14:36:47
+ */
+@Validated
+@FeignClient(url = "${yo.citic.feign.base-url}",
+ name = "FeignCiticBlackList",
+ configuration = FeignClientConfiguration.class)
+public interface FeignCiticBlackListService {
+
+ /**
+ * batch verify black list
+ *
+ * @param phones phones
+ * @return black list
+ */
+ @PostMapping("${yo.citic.feign.path.black-list-batch-verify:/resource/black-list/batch-verify}")
+ CiticBlackListBatchVerifyFeignResp batchVerify(
+ @RequestBody
+ @NotEmpty List phones);
+
+ /**
+ * verify black list
+ *
+ * @param req
+ * @return black list
+ */
+ @PostMapping("${yo.citic.feign.path.black-list-verify:/resource/black-list/verify}")
+ CiticBlackListVerifyFeignResp verify(
+ @Valid
+ @RequestBody
+ @NotNull CiticBlackListVerifyFeignReq req);
+
+ /**
+ * verify black list
+ *
+ * @param phone phone
+ * @return result
+ */
+ default boolean isBlack(@NotBlank final String phone) {
+ return Boolean.TRUE.equals(verify(new CiticBlackListVerifyFeignReq(phone)).getBlacklist());
+ }
+}
diff --git a/cms/src/main/java/com/pudonghot/yo/cms/feign/service/FeignCallingListService.java b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/service/FeignCiticCallingListService.java
similarity index 59%
rename from cms/src/main/java/com/pudonghot/yo/cms/feign/service/FeignCallingListService.java
rename to lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/service/FeignCiticCallingListService.java
index 26e6f51c..57ff4e45 100644
--- a/cms/src/main/java/com/pudonghot/yo/cms/feign/service/FeignCallingListService.java
+++ b/lib/citic-client/src/main/java/com/pudonghot/yo/citic/feign/service/FeignCiticCallingListService.java
@@ -1,19 +1,19 @@
-package com.pudonghot.yo.cms.feign.service;
+package com.pudonghot.yo.citic.feign.service;
import org.springframework.cloud.openfeign.FeignClient;
-import com.pudonghot.yo.cms.feign.response.RespCallingList;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestMapping;
-import com.pudonghot.yo.cms.feign.config.FeignClientConfiguration;
+import com.pudonghot.yo.citic.feign.config.FeignClientConfiguration;
+import com.pudonghot.yo.citic.feign.response.CiticCallingListFeignResp;
/**
* @author Donghuang
* @date Jan 07, 2020 14:36:47
*/
-@FeignClient(url = "${yo.campaign.calling-list.feign.base-url}",
- name = "CallingListFeign",
+@FeignClient(url = "${yo.citic.feign.base-url}",
+ name = "FeignCiticCallingList",
configuration = FeignClientConfiguration.class)
-public interface FeignCallingListService {
+public interface FeignCiticCallingListService {
/**
* fetch calling list
@@ -23,8 +23,8 @@ public interface FeignCallingListService {
* @param campaignName campaign name
* @return calling list
*/
- @RequestMapping("/${yo.campaign.calling-list.feign.channel}")
- RespCallingList fetchCallingList(
+ @RequestMapping("/${yo.citic.feign.path.calling-list:/call-data/taskdata/dx-hzqw}")
+ CiticCallingListFeignResp fetchCallingList(
@RequestParam("datanum")
int numData,
@RequestParam("taskid")
diff --git a/lib/citic-client/src/main/resources/.gitkeep b/lib/citic-client/src/main/resources/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/lib/citic-client/src/main/resources/spring/spring-http-citic-client.xml b/lib/citic-client/src/main/resources/spring/spring-http-citic-client.xml
new file mode 100644
index 00000000..50f588a9
--- /dev/null
+++ b/lib/citic-client/src/main/resources/spring/spring-http-citic-client.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/lib/citic-client/src/test/java/com/pudonghot/yo/citic/feign/TestDriver.java b/lib/citic-client/src/test/java/com/pudonghot/yo/citic/feign/TestDriver.java
new file mode 100644
index 00000000..0fb93445
--- /dev/null
+++ b/lib/citic-client/src/test/java/com/pudonghot/yo/citic/feign/TestDriver.java
@@ -0,0 +1,16 @@
+package com.pudonghot.yo.citic.feign;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ImportResource;
+
+/**
+ * @author Donghuang
+ * Aug 21, 2017 16:14
+ */
+@Slf4j
+@SpringBootApplication
+@ImportResource("classpath*:spring/spring-*.xml")
+public class TestDriver {
+
+}
diff --git a/lib/citic-client/src/test/java/com/pudonghot/yo/citic/feign/service/FeignClientTest.java b/lib/citic-client/src/test/java/com/pudonghot/yo/citic/feign/service/FeignClientTest.java
new file mode 100644
index 00000000..87325891
--- /dev/null
+++ b/lib/citic-client/src/test/java/com/pudonghot/yo/citic/feign/service/FeignClientTest.java
@@ -0,0 +1,40 @@
+package com.pudonghot.yo.citic.feign.service;
+
+import lombok.val;
+import org.junit.Test;
+import java.util.Arrays;
+import org.junit.runner.RunWith;
+import lombok.extern.slf4j.Slf4j;
+import com.pudonghot.yo.citic.feign.TestDriver;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+/**
+ * @author Donghuang
+ * Nov 28, 2017 11:01
+ */
+@Slf4j
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringBootTest(classes = TestDriver.class)
+public class FeignClientTest {
+
+ @Autowired
+ private FeignCiticBlackListService blackListService;
+ @Autowired
+ private FeignCiticCallingListService callingListService;
+
+ @Test
+ public void testBatchVerify() {
+ val resp = blackListService.batchVerify(Arrays.asList("15656232312", "13764268788"));
+ log.info("Resp: [{}]", resp);
+ log.info("Black: [{}]", blackListService.isBlack("15656232312"));
+ log.info("Black: [{}]", blackListService.isBlack("13764268788"));
+ }
+
+ @Test
+ public void testCallingList() {
+ val resp = callingListService.fetchCallingList(100, "5959", "XXX");
+ log.info("Resp: [{}]", resp);
+ }
+}
diff --git a/lib/citic-client/src/test/resources/.gitkeep b/lib/citic-client/src/test/resources/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/lib/citic-client/src/test/resources/application.yml b/lib/citic-client/src/test/resources/application.yml
new file mode 100644
index 00000000..7da99f70
--- /dev/null
+++ b/lib/citic-client/src/test/resources/application.yml
@@ -0,0 +1,13 @@
+spring:
+ application:
+ name: yo-citic-client
+
+yo:
+ citic:
+ feign:
+ # base-url: http://stsl.wldmz.cc/stsl-web-partner
+ base-url: http://e.test.bank.ecitic.com/citiccard/stsl-web-partner
+ path:
+ calling-list: /call-data/taskdata/dx-hzqw
+ black-list-verify: /resource/black-list/verify
+ black-list-batch-verify: /resource/black-list/batch-verify
diff --git a/lib/citic-client/src/test/resources/log4j2.xml b/lib/citic-client/src/test/resources/log4j2.xml
new file mode 100644
index 00000000..90faec4a
--- /dev/null
+++ b/lib/citic-client/src/test/resources/log4j2.xml
@@ -0,0 +1,33 @@
+
+
+
+ DEBUG
+ .logs
+ %-d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t][%c{1}] %m%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/citic-client/src/test/resources/spring/spring-test.xml b/lib/citic-client/src/test/resources/spring/spring-test.xml
new file mode 100644
index 00000000..09f5d599
--- /dev/null
+++ b/lib/citic-client/src/test/resources/spring/spring-test.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/lib/pom.xml b/lib/pom.xml
index 27b76fc9..96276ad6 100644
--- a/lib/pom.xml
+++ b/lib/pom.xml
@@ -37,6 +37,7 @@
mybatis-cache
shiro-cache
http-client
+ citic-client