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