فهرست منبع

增加变色龙登陆爬虫

xuzuoyun 5 سال پیش
والد
کامیت
4827ef2878
25فایلهای تغییر یافته به همراه384 افزوده شده و 2 حذف شده
  1. 2 0
      module-common/src/main/java/cn/com/ctop/common/module/entity/BindAccountLogin.java
  2. 3 2
      module-common/src/main/java/cn/com/ctop/common/module/utils/ChaojiyingUtils.java
  3. 15 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/entity/PangolinApp.java
  4. 17 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/entity/PangolinChannel.java
  5. 21 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/entity/PangolinReportAccountDaily.java
  6. 22 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/entity/PangolinReportBillMonth.java
  7. 22 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/entity/PangolinReportChannelDaily.java
  8. 32 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/job/PangolinLoginJob.java
  9. 7 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinAppMapper.java
  10. 7 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinChannelMapper.java
  11. 7 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinReportAccountDailyMapper.java
  12. 7 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinReportBillMonthMapper.java
  13. 7 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinReportChannelDailyMapper.java
  14. 7 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinAppService.java
  15. 7 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinChannelService.java
  16. 5 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinLoginService.java
  17. 7 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinReportAccountDailyService.java
  18. 7 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinReportBillMonthService.java
  19. 7 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinReportChannelDailyService.java
  20. 13 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinAppServiceImpl.java
  21. 11 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinChannelServiceImpl.java
  22. 118 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinLoginServiceImpl.java
  23. 11 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinReportAccountDailyServiceImpl.java
  24. 11 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinReportBillMonthServiceImpl.java
  25. 11 0
      module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinReportChannelDailyServiceImpl.java

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/entity/BindAccountLogin.java

@@ -99,4 +99,6 @@ public class BindAccountLogin {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
+
+    private String cookie;
 }

+ 3 - 2
module-common/src/main/java/cn/com/ctop/common/module/utils/ChaojiyingUtils.java

@@ -10,12 +10,13 @@ public class ChaojiyingUtils {
     private static String password = "heaven";
     private static Integer softId = 901055;
 
-    public static String process(String imageBase64) {
+    public static String process(String imageBase64,int code) {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("user", username);
         params.put("pass", password);
         params.put("softid", softId);
-        params.put("codetype", 9005);
+//        params.put("codetype", 9005);
+        params.put("codetype", code);
         params.put("file_base64", imageBase64);
         Map<String, String> headers = new HashMap<String, String>();
         headers.put("Content-Type", "application/json");

+ 15 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/entity/PangolinApp.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.crawler.modules.pangolin.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("ctop_pangolin_app")
+public class PangolinApp {
+    @TableId(value = "id", type = IdType.INPUT)
+    private Long id;
+    private String name;
+    private String accountName;
+}

+ 17 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/entity/PangolinChannel.java

@@ -0,0 +1,17 @@
+package cn.com.ctop.crawler.modules.pangolin.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("ctop_pangolin_channel")
+public class PangolinChannel {
+    @TableId(value = "id", type = IdType.INPUT)
+    private Long id;
+    private Long appId;
+    private String name;
+    private String accountName;
+
+}

+ 21 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/entity/PangolinReportAccountDaily.java

@@ -0,0 +1,21 @@
+package cn.com.ctop.crawler.modules.pangolin.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("ctop_pangolin_report_account_daily")
+public class PangolinReportAccountDaily {
+    private Date date;
+    @TableId(value = "id", type = IdType.INPUT)
+    private String accountName;
+    private String appName;
+    private Integer externalActivation;
+    private BigDecimal retentionRatio;
+    private BigDecimal totalPrice;
+}

+ 22 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/entity/PangolinReportBillMonth.java

@@ -0,0 +1,22 @@
+package cn.com.ctop.crawler.modules.pangolin.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@TableName("ctop_pangolin_report_bill_month")
+public class PangolinReportBillMonth {
+    private Integer year;
+    private Integer month;
+    @TableId(value = "id", type = IdType.INPUT)
+    private Integer appId;
+    private String os;
+    private Integer sumInternalActivations;
+    private BigDecimal actualTotalPrice;
+    private BigDecimal estimatedTotalPrice;
+    private BigDecimal accountQualityScore;
+}

+ 22 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/entity/PangolinReportChannelDaily.java

@@ -0,0 +1,22 @@
+package cn.com.ctop.crawler.modules.pangolin.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("ctop_pangolin_report_channel_daily")
+public class PangolinReportChannelDaily {
+    private Date date;
+    @TableId(value = "id", type = IdType.INPUT)
+    private String channelName;
+    private String appName;
+    private String os;
+    private Integer externalActivation;
+    private BigDecimal retentionRatio;
+    private BigDecimal totalPrice;
+}

+ 32 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/job/PangolinLoginJob.java

@@ -0,0 +1,32 @@
+package cn.com.ctop.crawler.modules.pangolin.job;
+
+import cn.com.ctop.common.module.entity.BindAccountLogin;
+import cn.com.ctop.common.module.service.IBindAccountLoginService;
+import cn.com.ctop.crawler.modules.pangolin.service.PangolinLoginService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+public class PangolinLoginJob implements Job {
+    @Autowired
+    private IBindAccountLoginService bindAccountLoginService;
+    @Autowired
+    private PangolinLoginService pangolinLoginService;
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        QueryWrapper<BindAccountLogin> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("login_type","pangolin");
+        queryWrapper.eq("status",1);
+        queryWrapper.isNull("cookie");
+        List<BindAccountLogin> list = bindAccountLoginService.list(queryWrapper);
+        if (list != null && list.size() > 0){
+            for (BindAccountLogin bindAccountLogin:list){
+                pangolinLoginService.pangolinLogin(bindAccountLogin.getAccountName(),bindAccountLogin.getPassword());
+            }
+        }
+    }
+}

+ 7 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinAppMapper.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.crawler.modules.pangolin.mapper;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinApp;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface PangolinAppMapper extends BaseMapper<PangolinApp> {
+}

+ 7 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinChannelMapper.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.crawler.modules.pangolin.mapper;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinChannel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface PangolinChannelMapper extends BaseMapper<PangolinChannel> {
+}

+ 7 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinReportAccountDailyMapper.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.crawler.modules.pangolin.mapper;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinReportAccountDaily;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface PangolinReportAccountDailyMapper extends BaseMapper<PangolinReportAccountDaily> {
+}

+ 7 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinReportBillMonthMapper.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.crawler.modules.pangolin.mapper;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinReportBillMonth;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface PangolinReportBillMonthMapper extends BaseMapper<PangolinReportBillMonth> {
+}

+ 7 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/mapper/PangolinReportChannelDailyMapper.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.crawler.modules.pangolin.mapper;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinReportChannelDaily;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface PangolinReportChannelDailyMapper extends BaseMapper<PangolinReportChannelDaily> {
+}

+ 7 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinAppService.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.crawler.modules.pangolin.service;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinApp;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface PangolinAppService extends IService<PangolinApp> {
+}

+ 7 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinChannelService.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.crawler.modules.pangolin.service;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinChannel;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface PangolinChannelService extends IService<PangolinChannel> {
+}

+ 5 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinLoginService.java

@@ -0,0 +1,5 @@
+package cn.com.ctop.crawler.modules.pangolin.service;
+
+public interface PangolinLoginService {
+    public void pangolinLogin(String username,String password);
+}

+ 7 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinReportAccountDailyService.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.crawler.modules.pangolin.service;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinReportAccountDaily;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface PangolinReportAccountDailyService extends IService<PangolinReportAccountDaily> {
+}

+ 7 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinReportBillMonthService.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.crawler.modules.pangolin.service;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinReportBillMonth;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface PangolinReportBillMonthService extends IService<PangolinReportBillMonth> {
+}

+ 7 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/PangolinReportChannelDailyService.java

@@ -0,0 +1,7 @@
+package cn.com.ctop.crawler.modules.pangolin.service;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinReportChannelDaily;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface PangolinReportChannelDailyService extends IService<PangolinReportChannelDaily> {
+}

+ 13 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinAppServiceImpl.java

@@ -0,0 +1,13 @@
+package cn.com.ctop.crawler.modules.pangolin.service.impl;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinApp;
+import cn.com.ctop.crawler.modules.pangolin.mapper.PangolinAppMapper;
+import cn.com.ctop.crawler.modules.pangolin.mapper.PangolinChannelMapper;
+import cn.com.ctop.crawler.modules.pangolin.service.PangolinAppService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PangolinAppServiceImpl extends ServiceImpl<PangolinAppMapper, PangolinApp> implements PangolinAppService {
+
+}

+ 11 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinChannelServiceImpl.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.crawler.modules.pangolin.service.impl;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinChannel;
+import cn.com.ctop.crawler.modules.pangolin.mapper.PangolinChannelMapper;
+import cn.com.ctop.crawler.modules.pangolin.service.PangolinChannelService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PangolinChannelServiceImpl extends ServiceImpl<PangolinChannelMapper, PangolinChannel> implements PangolinChannelService {
+}

+ 118 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinLoginServiceImpl.java

@@ -0,0 +1,118 @@
+package cn.com.ctop.crawler.modules.pangolin.service.impl;
+
+import cn.com.ctop.common.module.entity.BindAccountLogin;
+import cn.com.ctop.common.module.service.IBindAccountLoginService;
+import cn.com.ctop.common.module.utils.ChaojiyingUtils;
+import cn.com.ctop.common.module.utils.HttpUtils2;
+import cn.com.ctop.crawler.modules.pangolin.service.PangolinLoginService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.gson.Gson;
+import org.apache.http.impl.client.BasicCookieStore;
+import org.apache.http.impl.cookie.BasicClientCookie;
+import org.openqa.selenium.*;
+import org.openqa.selenium.chrome.ChromeDriver;
+import org.openqa.selenium.chrome.ChromeOptions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import java.util.*;
+
+
+@Service
+public class PangolinLoginServiceImpl implements PangolinLoginService {
+    @Autowired
+    private IBindAccountLoginService bindAccountLoginService;
+    @Value("${jeecg.path.chrome-driver}")
+    private String chromeDriver;
+
+    public static void main(String[] args){
+        PangolinLoginServiceImpl loginService = new PangolinLoginServiceImpl();
+        loginService.pangolinLogin("douyin_novel60","BpGT7afFWU");
+        String result = HttpUtils2.httpGetRequest("https://pangolin.bytedance.com/api/search/external_default");
+        System.out.println(result);
+    }
+    public void pangolinLogin(String username,String password) {
+        System.getProperties().setProperty("webdriver.chrome.driver", chromeDriver);
+        String url = "https://pangolin.bytedance.com/auth/login";
+        ChromeOptions chromeOptions = new ChromeOptions();
+        chromeOptions.addArguments("--headless");
+        chromeOptions.addArguments("--incognito");
+        chromeOptions.addArguments("--disable-gpu");
+        chromeOptions.addArguments("--window-size=1920,1080");
+        chromeOptions.addArguments("--user-agent=" + HttpUtils2.USER_AGENT);
+        chromeOptions.setAcceptInsecureCerts(true);
+        WebDriver webDriver = new ChromeDriver(chromeOptions);
+        try {
+            Thread.sleep(3000L);
+            HttpUtils2.cookieStore = new BasicCookieStore();
+            webDriver.manage().deleteAllCookies();
+            //获取登录页面
+            webDriver.get(url);
+            List<WebElement> list = webDriver.findElements(By.xpath("//input[@id='captcha']"));
+            do {
+                Thread.sleep(3000L);
+                WebElement accountElement = webDriver.findElement(By.xpath("//input[@id='username']"));
+                accountElement.sendKeys(username);
+                Thread.sleep(3000L);
+                WebElement passwordElement = webDriver.findElement(By.xpath("//input[@id='password']"));
+                passwordElement.sendKeys(password);
+                WebElement captchaElement = webDriver.findElement(By.xpath("//div[@class='ant-form-item-control ']/img"));
+                String outputType = captchaElement.getScreenshotAs(OutputType.BASE64);
+                String res = ChaojiyingUtils.process(outputType,1902);
+                ObjectMapper mapper = new ObjectMapper();
+                JsonNode n = mapper.readTree(res);
+                String captcha = n.get("pic_str").asText();
+                WebElement captchaInputElement = webDriver.findElement(By.xpath("//input[@id='captcha']"));
+                captchaInputElement.sendKeys(captcha);
+                WebElement loginElement = webDriver.findElement(By.xpath("//button[@type='submit']"));
+                Thread.sleep(3000L);
+                //点击登录
+                loginElement.click();
+                Thread.sleep(3000L);
+                webDriver.get("https://pangolin.bytedance.com");
+                list = webDriver.findElements(By.xpath("//input[@id='captcha']"));
+            }while (list != null && list.size() > 0);
+
+
+
+            Set<Cookie> cookies = webDriver.manage().getCookies();
+            List<String> cookieList = new ArrayList<>();
+            Iterator iterator = cookies.iterator();
+            while (iterator.hasNext()) {
+                String cookieStr = iterator.next().toString();
+                cookieList.add(cookieStr);
+                String[] cookieArray = cookieStr.split(";");
+                Map<String, String> cookieMap = new HashMap<String, String>();
+                for (String cookie : cookieArray) {
+                    String[] kv = cookie.split("=");
+                    if (kv.length > 1) {
+                        cookieMap.put(kv[0].trim(), kv[1].trim());
+                    }
+                }
+                BasicClientCookie clientCookie = new BasicClientCookie(cookieArray[0].split("=")[0],
+                        cookieArray[0].split("=")[1]);
+                clientCookie.setDomain("pangolin.bytedance.com");
+                clientCookie.setPath(cookieMap.get("path"));
+                HttpUtils2.cookieStore.addCookie(clientCookie);
+            }
+
+            QueryWrapper<BindAccountLogin> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("account_name",username);
+            queryWrapper.eq("login_type","pangolin");
+            BindAccountLogin bindAccountLogin = bindAccountLoginService.getOne(queryWrapper);
+            if (bindAccountLogin != null){
+                bindAccountLogin.setCookie(new Gson().toJson(cookieList));
+                bindAccountLoginService.updateById(bindAccountLogin);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            webDriver.manage().deleteAllCookies();
+//            webDriver.close();
+            webDriver.quit();
+        }
+    }
+
+}

+ 11 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinReportAccountDailyServiceImpl.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.crawler.modules.pangolin.service.impl;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinReportAccountDaily;
+import cn.com.ctop.crawler.modules.pangolin.mapper.PangolinReportAccountDailyMapper;
+import cn.com.ctop.crawler.modules.pangolin.service.PangolinReportAccountDailyService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PangolinReportAccountDailyServiceImpl extends ServiceImpl<PangolinReportAccountDailyMapper, PangolinReportAccountDaily> implements PangolinReportAccountDailyService {
+}

+ 11 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinReportBillMonthServiceImpl.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.crawler.modules.pangolin.service.impl;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinReportBillMonth;
+import cn.com.ctop.crawler.modules.pangolin.mapper.PangolinReportBillMonthMapper;
+import cn.com.ctop.crawler.modules.pangolin.service.PangolinReportBillMonthService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PangolinReportBillMonthServiceImpl extends ServiceImpl<PangolinReportBillMonthMapper, PangolinReportBillMonth> implements PangolinReportBillMonthService {
+}

+ 11 - 0
module-crawler/src/main/java/cn/com/ctop/crawler/modules/pangolin/service/impl/PangolinReportChannelDailyServiceImpl.java

@@ -0,0 +1,11 @@
+package cn.com.ctop.crawler.modules.pangolin.service.impl;
+
+import cn.com.ctop.crawler.modules.pangolin.entity.PangolinReportChannelDaily;
+import cn.com.ctop.crawler.modules.pangolin.mapper.PangolinReportChannelDailyMapper;
+import cn.com.ctop.crawler.modules.pangolin.service.PangolinReportChannelDailyService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PangolinReportChannelDailyServiceImpl extends ServiceImpl<PangolinReportChannelDailyMapper, PangolinReportChannelDaily> implements PangolinReportChannelDailyService {
+}