├── sss-ad-spring-cloud.iml
├── README.md
├── ad-gateway
├── target
│ └── classes
│ │ ├── com
│ │ └── javaedge
│ │ │ └── ad
│ │ │ ├── ZuulGatewayApplication.class
│ │ │ └── filter
│ │ │ ├── AccessLogFilter.class
│ │ │ └── PreRequestFilter.class
│ │ └── application.yml
├── src
│ └── main
│ │ ├── resources
│ │ └── application.yml
│ │ └── java
│ │ └── com
│ │ └── javaedge
│ │ └── ad
│ │ ├── ZuulGatewayApplication.java
│ │ └── filter
│ │ ├── PreRequestFilter.java
│ │ └── AccessLogFilter.java
└── pom.xml
├── .idea
├── vcs.xml
├── dictionaries
│ └── sss.xml
├── misc.xml
├── encodings.xml
├── compiler.xml
└── inspectionProfiles
│ └── Project_Default.xml
├── javaedge-ad-service
├── ad-search
│ ├── src
│ │ └── main
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── javaedge
│ │ │ │ └── ad
│ │ │ │ ├── search
│ │ │ │ ├── vo
│ │ │ │ │ ├── feature
│ │ │ │ │ │ ├── FeatureRelation.java
│ │ │ │ │ │ ├── ItFeature.java
│ │ │ │ │ │ ├── KeywordFeature.java
│ │ │ │ │ │ └── DistrictFeature.java
│ │ │ │ │ ├── media
│ │ │ │ │ │ ├── Geo.java
│ │ │ │ │ │ ├── App.java
│ │ │ │ │ │ ├── AdSlot.java
│ │ │ │ │ │ └── Device.java
│ │ │ │ │ ├── SearchRequest.java
│ │ │ │ │ └── SearchResponse.java
│ │ │ │ ├── ISearch.java
│ │ │ │ └── controller
│ │ │ │ │ └── SearchController.java
│ │ │ │ ├── sender
│ │ │ │ ├── ISender.java
│ │ │ │ └── kafka
│ │ │ │ │ └── KafkaSender.java
│ │ │ │ ├── index
│ │ │ │ ├── interest
│ │ │ │ │ ├── UnitItObject.java
│ │ │ │ │ └── UnitItIndex.java
│ │ │ │ ├── keyword
│ │ │ │ │ ├── UnitKeywordObject.java
│ │ │ │ │ └── UnitKeywordIndex.java
│ │ │ │ ├── creativeunit
│ │ │ │ │ ├── CreativeUnitObject.java
│ │ │ │ │ └── CreativeUnitIndex.java
│ │ │ │ ├── CommonStatus.java
│ │ │ │ ├── DataLevel.java
│ │ │ │ ├── district
│ │ │ │ │ ├── UnitDistrictObject.java
│ │ │ │ │ └── UnitDistrictIndex.java
│ │ │ │ ├── IndexAware.java
│ │ │ │ ├── adunit
│ │ │ │ │ ├── AdUnitConstants.java
│ │ │ │ │ ├── AdUnitIndex.java
│ │ │ │ │ └── AdUnitObject.java
│ │ │ │ ├── adplan
│ │ │ │ │ ├── AdPlanObject.java
│ │ │ │ │ └── AdPlanIndex.java
│ │ │ │ ├── creative
│ │ │ │ │ ├── CreativeObject.java
│ │ │ │ │ └── CreativeIndex.java
│ │ │ │ ├── DataTable.java
│ │ │ │ └── IndexFileLoader.java
│ │ │ │ ├── client
│ │ │ │ ├── vo
│ │ │ │ │ ├── AdPlanGetRequest.java
│ │ │ │ │ └── AdPlan.java
│ │ │ │ ├── SponsorClientHystrix.java
│ │ │ │ └── SponsorClient.java
│ │ │ │ ├── mysql
│ │ │ │ ├── dto
│ │ │ │ │ ├── Template.java
│ │ │ │ │ ├── BinlogRowData.java
│ │ │ │ │ ├── MySqlRowData.java
│ │ │ │ │ ├── JsonTable.java
│ │ │ │ │ ├── TableTemplate.java
│ │ │ │ │ └── ParseTemplate.java
│ │ │ │ ├── listener
│ │ │ │ │ ├── Ilistener.java
│ │ │ │ │ ├── IncrementListener.java
│ │ │ │ │ └── AggregationListener.java
│ │ │ │ ├── constant
│ │ │ │ │ ├── OpType.java
│ │ │ │ │ └── Constant.java
│ │ │ │ ├── BinlogConfig.java
│ │ │ │ ├── BinlogClient.java
│ │ │ │ └── TemplateHolder.java
│ │ │ │ ├── runner
│ │ │ │ └── BinlogRunner.java
│ │ │ │ ├── SearchApplication.java
│ │ │ │ ├── utils
│ │ │ │ └── CommonUtils.java
│ │ │ │ ├── controller
│ │ │ │ └── SearchController.java
│ │ │ │ ├── service
│ │ │ │ └── BinlogServiceTest.java
│ │ │ │ └── handler
│ │ │ │ └── AdLevelDataHandler.java
│ │ │ └── resources
│ │ │ ├── application.yml
│ │ │ ├── example.sql
│ │ │ └── template.json
│ └── pom.xml
├── ad-common
│ ├── src
│ │ └── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── javaedge
│ │ │ └── ad
│ │ │ ├── conf
│ │ │ ├── MyInterceptor.java
│ │ │ └── WebConfiguration.java
│ │ │ ├── exception
│ │ │ └── AdException.java
│ │ │ ├── dump
│ │ │ ├── table
│ │ │ │ ├── AdUnitItTable.java
│ │ │ │ ├── AdCreativeUnitTable.java
│ │ │ │ ├── AdUnitKeywordTable.java
│ │ │ │ ├── AdUnitDistrictTable.java
│ │ │ │ ├── AdUnitTable.java
│ │ │ │ ├── AdCreativeTable.java
│ │ │ │ └── AdPlanTable.java
│ │ │ └── DConstant.java
│ │ │ ├── annotation
│ │ │ └── IgnoreResponseAdvice.java
│ │ │ ├── vo
│ │ │ └── CommonResponse.java
│ │ │ └── advice
│ │ │ ├── GlobalExceptionAdvice.java
│ │ │ └── CommonResponseDataAdvice.java
│ └── pom.xml
├── ad-sponsor
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── javaedge
│ │ │ │ │ └── ad
│ │ │ │ │ ├── dao
│ │ │ │ │ ├── CreativeRepository.java
│ │ │ │ │ ├── unitcondition
│ │ │ │ │ │ ├── AdUnitItRepository.java
│ │ │ │ │ │ ├── AdUnitKeywordRepository.java
│ │ │ │ │ │ ├── CreativeUnitRepository.java
│ │ │ │ │ │ └── AdUnitDistrictRepository.java
│ │ │ │ │ ├── AdUserRepository.java
│ │ │ │ │ ├── AdUnitRepository.java
│ │ │ │ │ └── AdPlanRepository.java
│ │ │ │ │ ├── vo
│ │ │ │ │ ├── CreativeResponse.java
│ │ │ │ │ ├── AdUnitItResponse.java
│ │ │ │ │ ├── AdUnitDistrictResponse.java
│ │ │ │ │ ├── AdUnitKeywordResponse.java
│ │ │ │ │ ├── CreativeUnitResponse.java
│ │ │ │ │ ├── AdUnitResponse.java
│ │ │ │ │ ├── AdPlanResponse.java
│ │ │ │ │ ├── CreateUserRequest.java
│ │ │ │ │ ├── AdUnitItRequest.java
│ │ │ │ │ ├── AdUnitKeywordRequest.java
│ │ │ │ │ ├── CreateUserResponse.java
│ │ │ │ │ ├── CreativeUnitRequest.java
│ │ │ │ │ ├── AdUnitRequest.java
│ │ │ │ │ ├── AdPlanGetRequest.java
│ │ │ │ │ ├── AdUnitDistrictRequest.java
│ │ │ │ │ ├── AdPlanRequest.java
│ │ │ │ │ └── CreativeRequest.java
│ │ │ │ │ ├── service
│ │ │ │ │ ├── ICreativeService.java
│ │ │ │ │ ├── IUserService.java
│ │ │ │ │ ├── IAdUnitService.java
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── CreativeServiceImpl.java
│ │ │ │ │ │ ├── UserServiceImpl.java
│ │ │ │ │ │ ├── AdPlanServiceImpl.java
│ │ │ │ │ │ └── AdUnitServiceImpl.java
│ │ │ │ │ └── IAdPlanService.java
│ │ │ │ │ ├── constant
│ │ │ │ │ ├── CommonStatus.java
│ │ │ │ │ ├── CreativeType.java
│ │ │ │ │ ├── CreativeMaterialType.java
│ │ │ │ │ └── Constants.java
│ │ │ │ │ ├── SponsorApplication.java
│ │ │ │ │ ├── utils
│ │ │ │ │ └── CommonUtils.java
│ │ │ │ │ ├── entity
│ │ │ │ │ ├── unitcondition
│ │ │ │ │ │ ├── AdUnitIt.java
│ │ │ │ │ │ ├── AdUnitKeyword.java
│ │ │ │ │ │ ├── CreativeUnit.java
│ │ │ │ │ │ ├── AdUnitDistrict.java
│ │ │ │ │ │ └── AdUnit.java
│ │ │ │ │ ├── AdUser.java
│ │ │ │ │ ├── AdPlan.java
│ │ │ │ │ └── Creative.java
│ │ │ │ │ └── controller
│ │ │ │ │ ├── CreativeOpController.java
│ │ │ │ │ ├── UserOpController.java
│ │ │ │ │ ├── AdPlanOpController.java
│ │ │ │ │ └── AdUnitOpController.java
│ │ │ └── resources
│ │ │ │ ├── application.yml
│ │ │ │ └── ad-sponsor.sql
│ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── javaedge
│ │ │ │ └── ad
│ │ │ │ └── Application.java
│ │ │ └── resources
│ │ │ └── application.yml
│ └── pom.xml
└── pom.xml
├── ad-eureka
├── src
│ └── main
│ │ ├── resources
│ │ └── application.yml
│ │ └── java
│ │ └── com
│ │ └── javaedge
│ │ └── ad
│ │ └── EurekaApplication.java
└── pom.xml
└── pom.xml
/sss-ad-spring-cloud.iml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 基于微服务架构的广告系统
2 |
3 | # 环境参数
4 | JDK 1.8
5 | SpringCloud: Finchley.RELEASE
6 | Kafka 2.0
7 | Maven 3.5.0
8 | MySQL 5.7
9 | IDE IntelliJ IDEA: 2018.3
10 |
11 |
--------------------------------------------------------------------------------
/ad-gateway/target/classes/com/javaedge/ad/ZuulGatewayApplication.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Java-Edge/Ad/HEAD/ad-gateway/target/classes/com/javaedge/ad/ZuulGatewayApplication.class
--------------------------------------------------------------------------------
/ad-gateway/target/classes/com/javaedge/ad/filter/AccessLogFilter.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Java-Edge/Ad/HEAD/ad-gateway/target/classes/com/javaedge/ad/filter/AccessLogFilter.class
--------------------------------------------------------------------------------
/ad-gateway/target/classes/com/javaedge/ad/filter/PreRequestFilter.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Java-Edge/Ad/HEAD/ad-gateway/target/classes/com/javaedge/ad/filter/PreRequestFilter.class
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/ad-gateway/target/classes/application.yml:
--------------------------------------------------------------------------------
1 | server:
2 | port: 9000
3 | spring:
4 | application:
5 | name: ad-gateway
6 | eureka:
7 | client:
8 | service-url:
9 | defaultZone: http://server1:8000/eureka/
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/search/vo/feature/FeatureRelation.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.search.vo.feature;
2 |
3 | /**
4 | * @author sss
5 | * @date 2019-02-26
6 | */
7 | public enum FeatureRelation {
8 |
9 | OR,
10 | AND
11 | }
12 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-common/src/main/java/com/javaedge/ad/conf/MyInterceptor.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.conf;
2 |
3 | import org.springframework.web.servlet.HandlerInterceptor;
4 |
5 | /**
6 | * @author sss
7 | * @date 2019/1/31
8 | */
9 | public class MyInterceptor implements HandlerInterceptor {
10 | }
11 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-common/src/main/java/com/javaedge/ad/exception/AdException.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.exception;
2 |
3 | /**
4 | * @author sss
5 | * @date 2019/1/31
6 | */
7 | public class AdException extends Exception {
8 |
9 | public AdException(String message) {
10 | super(message);
11 | }
12 | }
--------------------------------------------------------------------------------
/ad-eureka/src/main/resources/application.yml:
--------------------------------------------------------------------------------
1 | spring:
2 | application:
3 | name: ad-eureka
4 |
5 | server:
6 | port: 8000
7 |
8 | eureka:
9 | instance:
10 | hostname: localhost
11 | client:
12 | fetch-registry: false
13 | register-with-eureka: false
14 | service-url:
15 | defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/dao/CreativeRepository.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dao;
2 |
3 | import com.javaedge.ad.entity.Creative;
4 | import org.springframework.data.jpa.repository.JpaRepository;
5 |
6 | /**
7 | * @author sss
8 | * @date 2019/2/5
9 | */
10 | public interface CreativeRepository extends JpaRepository {
11 | }
12 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/sender/ISender.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.sender;
2 |
3 | import com.javaedge.ad.mysql.dto.MySqlRowData;
4 |
5 | /**
6 | * @author sss
7 | * @date 2019-02-26
8 | */
9 | public interface ISender {
10 |
11 | /**
12 | * 发送消息到 MQ
13 | *
14 | * @param rowData
15 | */
16 | void sender(MySqlRowData rowData);
17 | }
18 |
--------------------------------------------------------------------------------
/.idea/dictionaries/sss.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | adconf
5 | creatives
6 | finchley
7 | getor
8 | javaedge
9 | kaiping
10 | pian
11 | shishusheng
12 | tiepian
13 | yyyy
14 |
15 |
16 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/dao/unitcondition/AdUnitItRepository.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dao.unitcondition;
2 |
3 | import com.javaedge.ad.entity.unitcondition.AdUnitIt;
4 | import org.springframework.data.jpa.repository.JpaRepository;
5 |
6 | /**
7 | * @author sss
8 | * @date 2019/2/5
9 | */
10 | public interface AdUnitItRepository extends JpaRepository {
11 | }
12 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/dao/unitcondition/AdUnitKeywordRepository.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dao.unitcondition;
2 |
3 | import com.javaedge.ad.entity.unitcondition.AdUnitKeyword;
4 | import org.springframework.data.jpa.repository.JpaRepository;
5 |
6 | /**
7 | * @author sss
8 | * @date 2019/2/5
9 | */
10 | public interface AdUnitKeywordRepository extends JpaRepository {
11 | }
12 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/dao/unitcondition/CreativeUnitRepository.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dao.unitcondition;
2 |
3 | import com.javaedge.ad.entity.unitcondition.CreativeUnit;
4 | import org.springframework.data.jpa.repository.JpaRepository;
5 |
6 | /**
7 | * @author sss
8 | * @date 2019/2/5
9 | */
10 | public interface CreativeUnitRepository extends JpaRepository {
11 | }
12 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/dao/unitcondition/AdUnitDistrictRepository.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dao.unitcondition;
2 |
3 | import com.javaedge.ad.entity.unitcondition.AdUnitDistrict;
4 | import org.springframework.data.jpa.repository.JpaRepository;
5 |
6 | /**
7 | * @author sss
8 | * @date 2019/2/5
9 | */
10 | public interface AdUnitDistrictRepository extends JpaRepository {
11 | }
12 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/vo/CreativeResponse.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019/2/10
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class CreativeResponse {
15 |
16 | private Long id;
17 | private String name;
18 | }
19 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/vo/AdUnitItResponse.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @author sss
11 | * @date 2019/2/7
12 | */
13 | @Data
14 | @NoArgsConstructor
15 | @AllArgsConstructor
16 | public class AdUnitItResponse {
17 |
18 | private List ids;
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-common/src/main/java/com/javaedge/ad/dump/table/AdUnitItTable.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dump.table;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-12
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class AdUnitItTable {
15 |
16 | private Long unitId;
17 | private String itTag;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/index/interest/UnitItObject.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.index.interest;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-12
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class UnitItObject {
15 |
16 | private Long unitId;
17 | private String itTag;
18 | }
19 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/vo/AdUnitDistrictResponse.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @author sss
11 | * @date 2019/2/7
12 | */
13 | @Data
14 | @NoArgsConstructor
15 | @AllArgsConstructor
16 | public class AdUnitDistrictResponse {
17 |
18 | private List ids;
19 | }
20 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/vo/AdUnitKeywordResponse.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @author sss
11 | * @date 2019/2/7
12 | */
13 | @Data
14 | @NoArgsConstructor
15 | @AllArgsConstructor
16 | public class AdUnitKeywordResponse {
17 |
18 | private List id;
19 | }
20 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/search/ISearch.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.search;
2 |
3 | import com.javaedge.ad.search.vo.SearchRequest;
4 | import com.javaedge.ad.search.vo.SearchResponse;
5 |
6 | /**
7 | * @author sss
8 | * @date 2019-02-26
9 | */
10 | public interface ISearch {
11 |
12 | /**
13 | *
14 | * @param request
15 | * @return
16 | */
17 | SearchResponse fetchAds(SearchRequest request);
18 | }
19 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/vo/CreativeUnitResponse.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @author sss
11 | * @date 2019/2/10
12 | */
13 | @Data
14 | @NoArgsConstructor
15 | @AllArgsConstructor
16 | public class CreativeUnitResponse {
17 |
18 | private List ids;
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-common/src/main/java/com/javaedge/ad/dump/table/AdCreativeUnitTable.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dump.table;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-12
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class AdCreativeUnitTable {
15 |
16 | private Long adId;
17 | private Long unitId;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/index/keyword/UnitKeywordObject.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.index.keyword;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-11
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class UnitKeywordObject {
15 |
16 | private Long unitId;
17 | private String keyword;
18 | }
19 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/search/vo/feature/ItFeature.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.search.vo.feature;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @author sss
11 | * @date 2019-02-26
12 | */
13 | @Data
14 | @NoArgsConstructor
15 | @AllArgsConstructor
16 | public class ItFeature {
17 |
18 | private List its;
19 | }
20 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-common/src/main/java/com/javaedge/ad/dump/table/AdUnitKeywordTable.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dump.table;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-12
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class AdUnitKeywordTable {
15 |
16 | private Long unitId;
17 | private String keyword;
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/vo/AdUnitResponse.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @author sss
11 | * @date 2019/2/6
12 | */
13 | @Data
14 | @NoArgsConstructor
15 | @AllArgsConstructor
16 | public class AdUnitResponse {
17 |
18 | private Long id;
19 | private String unitName;
20 | }
21 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/search/vo/feature/KeywordFeature.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.search.vo.feature;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @author sss
11 | * @date 2019-02-26
12 | */
13 | @Data
14 | @NoArgsConstructor
15 | @AllArgsConstructor
16 | public class KeywordFeature {
17 |
18 | private List keywords;
19 | }
20 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/vo/AdPlanResponse.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import org.apache.commons.lang.StringUtils;
7 |
8 | /**
9 | * @author sss
10 | * @date 2019/2/6
11 | */
12 | @Data
13 | @NoArgsConstructor
14 | @AllArgsConstructor
15 | public class AdPlanResponse {
16 |
17 | private Long id;
18 | private String planName;
19 | }
20 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/test/java/com/javaedge/ad/Application.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 |
6 | /**
7 | * @author sss
8 | * @date 2019-02-12
9 | */
10 | @SpringBootApplication
11 | public class Application {
12 |
13 | public static void main(String[] args) {
14 |
15 | SpringApplication.run(Application.class, args);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/index/creativeunit/CreativeUnitObject.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.index.creativeunit;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-12
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class CreativeUnitObject {
15 |
16 | private Long adId;
17 | private Long unitId;
18 |
19 | // adId-unitId
20 | }
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/service/ICreativeService.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.service;
2 |
3 | import com.javaedge.ad.vo.CreativeRequest;
4 | import com.javaedge.ad.vo.CreativeResponse;
5 |
6 | /**
7 | * @author sss
8 | * @date 2019/2/9
9 | */
10 | public interface ICreativeService {
11 |
12 | /**
13 | * 创建创意
14 | *
15 | * @param request
16 | * @return
17 | */
18 | CreativeResponse createCreative(CreativeRequest request);
19 | }
20 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-common/src/main/java/com/javaedge/ad/dump/table/AdUnitDistrictTable.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dump.table;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-12
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class AdUnitDistrictTable {
15 |
16 | private Long unitId;
17 | private String province;
18 | private String city;
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/client/vo/AdPlanGetRequest.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.client.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * @author sss
11 | * @date 2019-02-11
12 | */
13 | @Data
14 | @NoArgsConstructor
15 | @AllArgsConstructor
16 | public class AdPlanGetRequest {
17 |
18 | private Long userId;
19 | private List ids;
20 | }
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-common/src/main/java/com/javaedge/ad/annotation/IgnoreResponseAdvice.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * @author sss
10 | * @date 2019/1/31
11 | */
12 | @Target({ElementType.METHOD, ElementType.TYPE})
13 | @Retention(RetentionPolicy.RUNTIME)
14 | public @interface IgnoreResponseAdvice {
15 | }
16 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/index/CommonStatus.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.index;
2 |
3 | import lombok.Getter;
4 |
5 | /**
6 | * @author sss
7 | * @date 2019/2/27
8 | */
9 | @Getter
10 | public enum CommonStatus {
11 |
12 | VALID(1, "有效状态"),
13 | INVALID(0, "无效状态");
14 |
15 | private Integer status;
16 | private String desc;
17 |
18 | CommonStatus(Integer status, String desc) {
19 | this.status = status;
20 | this.desc = desc;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/search/vo/media/Geo.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.search.vo.media;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-26
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class Geo {
15 |
16 | private Float latitude;
17 | private Float longitude;
18 |
19 | private String city;
20 | private String province;
21 | }
22 |
--------------------------------------------------------------------------------
/ad-gateway/src/main/resources/application.yml:
--------------------------------------------------------------------------------
1 | server:
2 | port: 9000
3 | spring:
4 | application:
5 | name: ad-gateway
6 | eureka:
7 | client:
8 | service-url:
9 | defaultZone: http://server1:8000/eureka/
10 |
11 | zuul:
12 | prefix: /javaedge
13 | routes:
14 | sponsor:
15 | path: /ad-sponsor/**
16 | serviceId: eureka-client-ad-sponsor
17 | strip-prefix: false
18 | search:
19 | path: /ad-search/**
20 | serviceId: eureka-client-ad-search
21 | strip-prefix: false
22 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/mysql/dto/Template.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.mysql.dto;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * 表达整个模板文件
11 | *
12 | * @author sss
13 | * @date 2019-02-25
14 | */
15 | @Data
16 | @NoArgsConstructor
17 | @AllArgsConstructor
18 | public class Template {
19 |
20 | private String database;
21 | private List tableList;
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/constant/CommonStatus.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.constant;
2 |
3 | import lombok.Getter;
4 |
5 | /**
6 | * @author sss
7 | * @date 2019/2/1
8 | */
9 | @Getter
10 | public enum CommonStatus {
11 |
12 | VALID(1, "有效状态"),
13 | INVALID(0, "无效状态");
14 |
15 | private Integer status;
16 | private String desc;
17 |
18 | CommonStatus(Integer status, String desc) {
19 | this.status = status;
20 | this.desc = desc;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/constant/CreativeType.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.constant;
2 |
3 | import com.javaedge.ad.entity.Creative;
4 |
5 | /**
6 | * @author sss
7 | * @date 2019/2/4
8 | */
9 | public enum CreativeType {
10 |
11 | IMAGE(1, "图片"),
12 | VIDEO(2, "视频"),
13 | TEXT(3, "文本");
14 |
15 | private int type;
16 | private String desc;
17 |
18 | CreativeType(int type, String desc) {
19 | this.type = type;
20 | this.desc = desc;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-common/src/main/java/com/javaedge/ad/dump/table/AdUnitTable.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dump.table;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-12
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class AdUnitTable {
15 |
16 | private Long unitId;
17 | private Integer unitStatus;
18 | private Integer positionType;
19 |
20 | private Long planId;
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/index/DataLevel.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.index;
2 |
3 | import lombok.Getter;
4 |
5 | /**
6 | * @author sss
7 | * @date 2019-02-22
8 | */
9 | @Getter
10 | public enum DataLevel {
11 |
12 | LEVEL2("2", "level 2"),
13 | LEVEL3("3", "level 3"),
14 | LEVEL4("4", "level 4");
15 |
16 | private String level;
17 | private String desc;
18 |
19 | DataLevel(String level, String desc) {
20 | this.level = level;
21 | this.desc = desc;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/mysql/listener/Ilistener.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.mysql.listener;
2 |
3 | import com.javaedge.ad.mysql.dto.BinlogRowData;
4 |
5 | /**
6 | * 监听器
7 | *
8 | * @author sss
9 | * @date 2019-02-25
10 | */
11 | public interface Ilistener {
12 |
13 | /**
14 | * 对应不同表定义不同的数据更新方法,即注册不同的监听器.
15 | */
16 | void register();
17 |
18 | /**
19 | * 事件监听
20 | *
21 | * @param eventData 对应于源码中的Event对象.
22 | */
23 | void onEvent(BinlogRowData eventData);
24 | }
25 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/dao/AdUserRepository.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.dao;
2 |
3 | import com.javaedge.ad.entity.AdUser;
4 | import org.springframework.data.jpa.repository.JpaRepository;
5 |
6 | /**
7 | * @author sss
8 | * @date 2019/2/4
9 | */
10 | public interface AdUserRepository extends JpaRepository {
11 |
12 | /**
13 | * 根据用户名查找用户记录
14 | *
15 | * @param username
16 | * @return
17 | */
18 | AdUser findByUsername(String username);
19 |
20 |
21 |
22 |
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/index/district/UnitDistrictObject.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.index.district;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-12
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class UnitDistrictObject {
15 |
16 | private Long unitId;
17 | private String province;
18 | private String city;
19 |
20 | // >
21 | // province-city
22 | }
23 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/constant/CreativeMaterialType.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.constant;
2 |
3 | /**
4 | * @author sss
5 | * @date 2019/2/4
6 | */
7 | public enum CreativeMaterialType {
8 |
9 | JPG(1, "jpg"),
10 | BMP(2, "bmp"),
11 |
12 | MP4(3, "mp4"),
13 | AVI(4, "avi"),
14 |
15 | TXY(5, "txt");
16 |
17 |
18 | private int type;
19 | private String desc;
20 |
21 | CreativeMaterialType(int type, String desc) {
22 | this.type = type;
23 | this.desc = desc;
24 | }
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-sponsor/src/main/java/com/javaedge/ad/vo/CreateUserRequest.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 | import org.apache.commons.lang.StringUtils;
7 |
8 | /**
9 | * @author sss
10 | * @date 2019/2/5
11 | */
12 | @Data
13 | @NoArgsConstructor
14 | @AllArgsConstructor
15 | public class CreateUserRequest {
16 |
17 | private String username;
18 |
19 | public boolean validate() {
20 | return StringUtils.isEmpty(username);
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/ad-eureka/src/main/java/com/javaedge/ad/EurekaApplication.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.boot.autoconfigure.SpringBootApplication;
5 | import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019/1/28
10 | */
11 | @EnableEurekaServer
12 | @SpringBootApplication
13 | public class EurekaApplication {
14 |
15 | public static void main(String[] args) {
16 | SpringApplication.run(EurekaApplication.class, args);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/search/vo/media/App.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.search.vo.media;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | /**
8 | * @author sss
9 | * @date 2019-02-26
10 | */
11 | @Data
12 | @NoArgsConstructor
13 | @AllArgsConstructor
14 | public class App {
15 |
16 | // 应用编码
17 | private String appCode;
18 | // 应用名称
19 | private String appName;
20 | // 应用包名
21 | private String packageName;
22 | // activity 名称
23 | private String activityName;
24 | }
25 |
--------------------------------------------------------------------------------
/ad-gateway/src/main/java/com/javaedge/ad/ZuulGatewayApplication.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad;
2 |
3 | import org.springframework.boot.SpringApplication;
4 | import org.springframework.cloud.client.SpringCloudApplication;
5 | import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
6 |
7 |
8 | /**
9 | * @author sss
10 | * @date 2019/1/28
11 | */
12 | @EnableZuulProxy
13 | @SpringCloudApplication
14 | public class ZuulGatewayApplication {
15 |
16 | public static void main(String[] args) {
17 | SpringApplication.run(ZuulGatewayApplication.class, args);
18 | }
19 |
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/javaedge-ad-service/ad-search/src/main/java/com/javaedge/ad/mysql/dto/BinlogRowData.java:
--------------------------------------------------------------------------------
1 | package com.javaedge.ad.mysql.dto;
2 |
3 | import com.github.shyiko.mysql.binlog.event.EventType;
4 | import lombok.Data;
5 |
6 | import java.util.List;
7 | import java.util.Map;
8 |
9 | /**
10 | * 日志文件相应的Java对象
11 | *
12 | * @author sss
13 | * @date 2019-02-25
14 | */
15 | @Data
16 | public class BinlogRowData {
17 |
18 | private TableTemplate table;
19 |
20 | private EventType eventType;
21 |
22 | private List