瀏覽代碼

first commit

zxa635525728 1 年之前
當前提交
d0a1981da9
共有 100 個文件被更改,包括 19062 次插入 和 0 次删除
  1. 二進制
      .DS_Store
  2. 4 0
      .gitattributes
  3. 12 0
      .github/FUNDING.yml
  4. 11 0
      .github/ISSUE_TEMPLATE
  5. 14 0
      .github/PULL_REQUEST_TEMPLATE
  6. 17 0
      .github/workflows/maven.yml
  7. 34 0
      .gitignore
  8. 674 0
      LICENSE
  9. 32 0
      NOTICE
  10. 638 0
      README.md
  11. 233 0
      job-bytedance/pom.xml
  12. 22 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/BytedanceJobApplication.java
  13. 13 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/config/MybatisPlusConfig.java
  14. 60 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/config/XxlJobConfig.java
  15. 268 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/controller/BytedanceController.java
  16. 60 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/annotation/Dict.java
  17. 41 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/constant/BytedanceConstant.java
  18. 99 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/constant/CtopAdConstant.java
  19. 17 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/constant/KuaishouConstant.java
  20. 198 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/ByteDanceAdvertiserReportDTO.java
  21. 203 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/ByteDanceNewMaterialReport.java
  22. 373 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/ByteDanceV3AdvertiserReportDTO.java
  23. 105 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAdGet.java
  24. 329 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAdReportDaily.java
  25. 332 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAdReportHourly.java
  26. 338 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAdvertiserReportDaily.java
  27. 337 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAdvertiserReportHourly.java
  28. 83 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAgentReportDaily.java
  29. 120 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAgentReportHourly.java
  30. 27 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAudiencePackageGet.java
  31. 34 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCampaignGet.java
  32. 325 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCampaignReportDaily.java
  33. 328 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCampaignReportHourly.java
  34. 202 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCdpProject.java
  35. 37 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCreativeGet.java
  36. 330 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCreativeReportDaily.java
  37. 333 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCreativeReportHourly.java
  38. 32 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceFileImageGet.java
  39. 41 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceFileVideoGet.java
  40. 15 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceMaterialAttributes.java
  41. 363 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceMaterialReportDaily.java
  42. 41 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedancePromotionList.java
  43. 1427 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceV3ProjectReportDaily.java
  44. 1433 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceV3ProjectReportHourly.java
  45. 1437 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceV3PromotionProjectReportDaily.java
  46. 46 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/MediaSendAlarmRecord.java
  47. 99 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/OauthToken.java
  48. 153 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/Project.java
  49. 172 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/UserAllocation.java
  50. 53 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/enums/InventoryEnum.java
  51. 108 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/enums/MaterialEnum.java
  52. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/ByteDanceAdvertisePlanHourlyMapper.java
  53. 15 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdGetMapper.java
  54. 15 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdReportDailyMapper.java
  55. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdReportHourlyMapper.java
  56. 18 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdvertiserHourlyReportMapper.java
  57. 28 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdvertiserReportDailyMapper.java
  58. 15 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdvertiserReportHourlyMapper.java
  59. 13 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAgentReportDailyMapper.java
  60. 15 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAgentReportHourlyMapper.java
  61. 13 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAudiencePackageGetMapper.java
  62. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCampaignGetMapper.java
  63. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCampaignReportDailyMapper.java
  64. 13 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCampaignReportHourlyMapper.java
  65. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCreativeGetMapper.java
  66. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCreativeReportDailyMapper.java
  67. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCreativeReportHourlyMapper.java
  68. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceFileImageGetMapper.java
  69. 16 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceFileVideoGetMapper.java
  70. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceFundMapper.java
  71. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceMaterialReportDailyMapper.java
  72. 20 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceNewMaterialReportMapper.java
  73. 28 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceProjectMapper.java
  74. 14 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedancePromotionListMapper.java
  75. 32 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/OauthTokenMapper.java
  76. 72 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/UserAllocationMapper.java
  77. 18 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/WexinConfigMapper.java
  78. 98 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdGetMapper.xml
  79. 337 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdReportDailyMapper.xml
  80. 364 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdReportHourlyMapper.xml
  81. 20 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdvertiserHourlyReportMapper.xml
  82. 2300 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdvertiserReportDailyMapper.xml
  83. 849 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdvertiserReportHourlyMapper.xml
  84. 84 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAgentReportDailyMapper.xml
  85. 139 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAgentReportHourlyMapper.xml
  86. 32 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAudiencePackageGetMapper.xml
  87. 45 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCampaignGetMapper.xml
  88. 361 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCampaignReportDailyMapper.xml
  89. 336 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCampaignReportHourlyMapper.xml
  90. 47 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCreativeGetMapper.xml
  91. 366 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCreativeReportDailyMapper.xml
  92. 368 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCreativeReportHourlyMapper.xml
  93. 38 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceFileImageGetMapper.xml
  94. 68 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceFileVideoGetMapper.xml
  95. 72 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceFundMapper.xml
  96. 440 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceMaterialReportDailyMapper.xml
  97. 300 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceNewMaterialReportMapper.xml
  98. 163 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceProjectMapper.xml
  99. 47 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedancePromotionListMapper.xml
  100. 0 0
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/OauthTokenMapper.xml

二進制
.DS_Store


+ 4 - 0
.gitattributes

@@ -0,0 +1,4 @@
+*.js linguist-language=Java
+*.css linguist-language=Java
+*.html linguist-language=Java
+*.ftl linguist-language=Java.github

+ 12 - 0
.github/FUNDING.yml

@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: ['https://www.xuxueli.com/page/donate.html']  # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

+ 11 - 0
.github/ISSUE_TEMPLATE

@@ -0,0 +1,11 @@
+Please answer some questions before submitting your issue. Thanks!
+
+### Which version of XXL-JOB do you using?
+
+### Expected behavior
+
+### Actual behavior
+
+### Steps to reproduce the behavior
+
+### Other information

+ 14 - 0
.github/PULL_REQUEST_TEMPLATE

@@ -0,0 +1,14 @@
+**What kind of change does this PR introduce?** (check at least one)
+
+- [ ] Bugfix
+- [ ] Feature
+- [ ] Code style update
+- [ ] Refactor
+- [ ] Build-related changes
+- [ ] Other, please describe:
+
+
+**The description of the PR:**
+
+
+**Other information:**

+ 17 - 0
.github/workflows/maven.yml

@@ -0,0 +1,17 @@
+name: Java CI
+
+on: [push]
+
+jobs:
+  build:
+
+    runs-on: ubuntu-latest
+
+    steps:
+    - uses: actions/checkout@v1
+    - name: Set up JDK 1.8
+      uses: actions/setup-java@v1
+      with:
+        java-version: 1.8
+    - name: Build with Maven
+      run: mvn -B package --file pom.xml

+ 34 - 0
.gitignore

@@ -0,0 +1,34 @@
+# Created by .ignore support plugin (hsz.mobi)
+### Example user template template
+### Example user template
+
+# IntelliJ project files
+.idea
+**/*.iml
+out
+gen
+### Java template
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+**/target/
+#application.yml

+ 674 - 0
LICENSE

@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    {one line to give the program's name and a brief idea of what it does.}
+    Copyright (C) {year}  {name of author}
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    {project}  Copyright (C) {year}  {fullname}
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.

+ 32 - 0
NOTICE

@@ -0,0 +1,32 @@
+Copyright (c) 2015-present, xuxueli.
+
+Dependencies:
+================================================================
+
+Spring:
+
+  * LICENSE:
+    * http://www.apache.org/licenses/LICENSE-2.0 (Apache License 2.0)
+  * HOMEPAGE:
+    * http://www.springsource.org
+
+Netty:
+
+  * LICENSE:
+    * http://www.apache.org/licenses/LICENSE-2.0 (Apache License 2.0)
+  * HOMEPAGE:
+    * https://github.com/netty/netty
+
+Hessian:
+
+  * LICENSE:
+    * http://www.apache.org/licenses/LICENSE-2.0 (Apache License 2.0)
+  * HOMEPAGE:
+    * http://hessian.caucho.com
+
+SLF4J:
+
+  * LICENSE:
+    * http://www.apache.org/licenses/LICENSE-2.0 (Apache License 2.0)
+  * HOMEPAGE:
+    * http://www.slf4j.org

+ 638 - 0
README.md

@@ -0,0 +1,638 @@
+<p align="center" >
+    <img src="https://www.xuxueli.com/doc/static/xxl-job/images/xxl-logo.jpg" width="150">
+    <h3 align="center">XXL-JOB</h3>
+    <p align="center">
+        XXL-JOB, a distributed task scheduling framework.
+        <br>
+        <a href="https://www.xuxueli.com/xxl-job/"><strong>-- Home Page --</strong></a>
+        <br>
+        <br>
+        <a href="https://github.com/xuxueli/xxl-job/actions">
+            <img src="https://github.com/xuxueli/xxl-job/workflows/Java%20CI/badge.svg" >
+        </a>
+        <a href="https://maven-badges.herokuapp.com/maven-central/com.xuxueli/xxl-job/">
+            <img src="https://maven-badges.herokuapp.com/maven-central/com.xuxueli/xxl-job/badge.svg" >
+        </a>
+        <a href="https://github.com/xuxueli/xxl-job/releases">
+         <img src="https://img.shields.io/github/release/xuxueli/xxl-job.svg" >
+        </a>
+        <a href="https://github.com/xuxueli/xxl-job/">
+            <img src="https://img.shields.io/github/stars/xuxueli/xxl-job" >
+        </a>
+        <a href="https://hub.docker.com/r/xuxueli/xxl-job-admin/">
+            <img src="https://img.shields.io/docker/pulls/xuxueli/xxl-job-admin" >
+        </a>
+        <a href="http://www.gnu.org/licenses/gpl-3.0.html">
+         <img src="https://img.shields.io/badge/license-GPLv3-blue.svg" >
+        </a>
+        <a href="https://www.xuxueli.com/page/donate.html">
+           <img src="https://img.shields.io/badge/%24-donate-ff69b4.svg?style=flat" >
+        </a>
+    </p>
+</p>
+
+
+## Introduction
+XXL-JOB is a distributed task scheduling framework. 
+It's core design goal is to develop quickly and learn simple, lightweight, and easy to expand. 
+Now, it's already open source, and many companies use it in production environments, real "out-of-the-box".
+
+XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
+
+
+## Documentation
+- [中文文档](https://www.xuxueli.com/xxl-job/)
+- [English Documentation](https://www.xuxueli.com/xxl-job/en/)
+
+
+## Communication    
+- [社区交流](https://www.xuxueli.com/page/community.html)
+
+
+## Features
+- 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
+- 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
+- 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;
+- 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA;
+- 5、注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
+- 6、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
+- 7、触发策略:提供丰富的任务触发策略,包括:Cron触发、固定间隔触发、固定延时触发、API(事件)触发、人工触发、父子任务触发;
+- 8、调度过期策略:调度中心错过调度时间的补偿处理策略,包括:忽略、立即补偿触发一次等;
+- 9、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
+- 10、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
+- 11、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;
+- 12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;
+- 13、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
+- 14、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
+- 15、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
+- 16、故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动Failover切换到一台正常的执行器发送调度请求。
+- 17、任务进度监控:支持实时监控任务进度;
+- 18、Rolling实时日志:支持在线查看调度结果,并且支持以Rolling方式实时查看执行器输出的完整的执行日志;
+- 19、GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持30个版本的历史版本回溯。
+- 20、脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python、NodeJS、PHP、PowerShell等类型脚本;
+- 21、命令行任务:原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
+- 22、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;
+- 23、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;
+- 24、自定义任务参数:支持在线配置调度任务入参,即时生效;
+- 25、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
+- 26、数据加密:调度中心和执行器之间的通讯进行数据加密,提升调度信息安全性;
+- 27、邮件报警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
+- 28、推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
+- 29、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
+- 30、全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行;
+- 31、跨语言:调度中心与执行器提供语言无关的 RESTful API 服务,第三方任意语言可据此对接调度中心或者实现执行器。除此之外,还提供了 “多任务模式”和“httpJobHandler”等其他跨语言方案;
+- 32、国际化:调度中心支持国际化设置,提供中文、英文两种可选语言,默认为中文;
+- 33、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;
+- 34、线程池隔离:调度线程池进行隔离拆分,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;
+- 35、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
+- 36、权限控制:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;
+
+
+## Development
+于2015年中,我在github上创建XXL-JOB项目仓库并提交第一个commit,随之进行系统结构设计,UI选型,交互设计……
+
+于2015-11月,XXL-JOB终于RELEASE了第一个大版本V1.0, 随后我将之发布到OSCHINA,XXL-JOB在OSCHINA上获得了@红薯的热门推荐,同期分别达到了OSCHINA的“热门动弹”排行第一和git.oschina的开源软件月热度排行第一,在此特别感谢红薯,感谢大家的关注和支持。
+
+于2015-12月,我将XXL-JOB发表到我司内部知识库,并且得到内部同事认可。
+
+于2016-01月,我司展开XXL-JOB的内部接入和定制工作,在此感谢袁某和尹某两位同事的贡献,同时也感谢内部其他给与关注与支持的同事。
+
+于2017-05-13,在上海举办的 "[第62期开源中国源创会](https://www.oschina.net/event/2236961)" 的 "放码过来" 环节,我登台对XXL-JOB做了演讲,台下五百位在场观众反响热烈([图文回顾](https://www.oschina.net/question/2686220_2242120) )。
+
+于2017-10-22,又拍云 Open Talk 联合 Spring Cloud 中国社区举办的 "[进击的微服务实战派上海站](https://opentalk.upyun.com/303.html)",我登台对XXL-JOB做了演讲,现场观众反响热烈并在会后与XXL-JOB用户热烈讨论交流。
+
+于2017-12-11,XXL-JOB有幸参会《[InfoQ ArchSummit全球架构师峰会](http://bj2017.archsummit.com/)》,并被拍拍贷架构总监"杨波老师"在专题 "[微服务原理、基础架构和开源实践](http://bj2017.archsummit.com/training/2)" 中现场介绍。
+
+于2017-12-18,XXL-JOB参与"[2017年度最受欢迎中国开源软件](http://www.oschina.net/project/top_cn_2017?sort=1)"评比,在当时已录入的约九千个国产开源项目中角逐,最终进入了前30强。
+
+于2018-01-15,XXL-JOB参与"[2017码云最火开源项目](https://www.oschina.net/news/92438/2017-mayun-top-50)"评比,在当时已录入的约六千五百个码云项目中角逐,最终进去了前20强。
+
+于2018-04-14,iTechPlus在上海举办的 "[2018互联网开发者大会](http://www.itdks.com/eventlist/detail/2065)",我登台对XXL-JOB做了演讲,现场观众反响热烈并在会后与XXL-JOB用户热烈讨论交流。
+
+于2018-05-27,在上海举办的 "[第75期开源中国源创会](https://www.oschina.net/event/2278742)" 的 "架构" 主题专场,我登台进行“基础架构与中间件图谱”主题演讲,台下上千位在场观众反响热烈([图文回顾](https://www.oschina.net/question/3802184_2280606) )。
+
+于2018-12-05,XXL-JOB参与"[2018年度最受欢迎中国开源软件](https://www.oschina.net/project/top_cn_2018?sort=1)"评比,在当时已录入的一万多个开源项目中角逐,最终排名第19名。
+
+于2019-12-10,XXL-JOB参与"[2019年度最受欢迎中国开源软件](https://www.oschina.net/project/top_cn_2019)"评比,在当时已录入的一万多个开源项目中角逐,最终排名"开发框架和基础组件类"第9名。
+
+于2020-11-16,XXL-JOB参与"[2020年度最受欢迎中国开源软件](https://www.oschina.net/project/top_cn_2020)"评比,在当时已录入的一万多个开源项目中角逐,最终排名"开发框架和基础组件类"第8名。
+
+> 我司大众点评目前已接入XXL-JOB,内部别名《Ferrari》(Ferrari基于XXL-JOB的V1.1版本定制而成,新接入应用推荐升级最新版本)。
+据最新统计, 自2016-01-21接入至2017-12-01期间,该系统已调度约100万次,表现优异。新接入应用推荐使用最新版本,因为经过数十个版本的更新,系统的任务模型、UI交互模型以及底层调度通讯模型都有了较大的优化和提升,核心功能更加稳定高效。
+
+至今,XXL-JOB已接入多家公司的线上产品线,接入场景如电商业务,O2O业务和大数据作业等,截止最新统计时间为止,XXL-JOB已接入的公司包括不限于:
+    
+	- 1、大众点评【美团点评】
+	- 2、山东学而网络科技有限公司;
+	- 3、安徽慧通互联科技有限公司;
+	- 4、人人聚财金服;
+	- 5、上海棠棣信息科技股份有限公司
+	- 6、运满满【运满满】
+	- 7、米其林 (中国区)【米其林】
+	- 8、妈妈联盟
+	- 9、九樱天下(北京)信息技术有限公司
+	- 10、万普拉斯科技有限公司【一加手机】
+	- 11、上海亿保健康管理有限公司
+	- 12、海尔馨厨【海尔】
+	- 13、河南大红包电子商务有限公司
+	- 14、成都顺点科技有限公司
+	- 15、深圳市怡亚通
+	- 16、深圳麦亚信科技股份有限公司
+	- 17、上海博莹科技信息技术有限公司
+	- 18、中国平安科技有限公司【中国平安】
+	- 19、杭州知时信息科技有限公司
+	- 20、博莹科技(上海)有限公司
+	- 21、成都依能股份有限责任公司
+	- 22、湖南高阳通联信息技术有限公司
+	- 23、深圳市邦德文化发展有限公司
+	- 24、福建阿思可网络教育有限公司
+	- 25、优信二手车【优信】
+	- 26、上海悠游堂投资发展股份有限公司【悠游堂】
+	- 27、北京粉笔蓝天科技有限公司
+	- 28、中秀科技(无锡)有限公司
+	- 29、武汉空心科技有限公司
+	- 30、北京蚂蚁风暴科技有限公司
+	- 31、四川互宜达科技有限公司
+	- 32、钱包行云(北京)科技有限公司
+	- 33、重庆欣才集团
+    - 34、咪咕互动娱乐有限公司【中国移动】
+    - 35、北京诺亦腾科技有限公司
+    - 36、增长引擎(北京)信息技术有限公司
+    - 37、北京英贝思科技有限公司
+    - 38、刚泰集团
+    - 39、深圳泰久信息系统股份有限公司
+    - 40、随行付支付有限公司
+    - 41、广州瀚农网络科技有限公司
+    - 42、享点科技有限公司
+    - 43、杭州比智科技有限公司
+    - 44、圳临界线网络科技有限公司
+    - 45、广州知识圈网络科技有限公司
+    - 46、国誉商业上海有限公司
+    - 47、海尔消费金融有限公司,嗨付、够花【海尔】
+    - 48、广州巴图鲁信息科技有限公司
+    - 49、深圳市鹏海运电子数据交换有限公司
+    - 50、深圳市亚飞电子商务有限公司
+    - 51、上海趣医网络有限公司
+    - 52、聚金资本
+    - 53、北京父母邦网络科技有限公司
+    - 54、中山元赫软件科技有限公司
+    - 55、中商惠民(北京)电子商务有限公司
+    - 56、凯京集团
+    - 57、华夏票联(北京)科技有限公司
+    - 58、拍拍贷【拍拍贷】
+    - 59、北京尚德机构在线教育有限公司
+    - 60、任子行股份有限公司
+    - 61、北京时态电子商务有限公司
+    - 62、深圳卷皮网络科技有限公司
+    - 63、北京安博通科技股份有限公司
+    - 64、未来无线网
+    - 65、厦门瓷禧网络有限公司
+    - 66、北京递蓝科软件股份有限公司
+    - 67、郑州创海软件科技公司
+    - 68、北京国槐信息科技有限公司
+    - 69、浪潮软件集团
+    - 70、多立恒(北京)信息技术有限公司
+    - 71、广州极迅客信息科技有限公司
+    - 72、赫基(中国)集团股份有限公司
+    - 73、海投汇
+    - 74、上海润益创业孵化器管理股份有限公司
+    - 75、汉纳森(厦门)数据股份有限公司
+    - 76、安信信托
+    - 77、岚儒财富
+    - 78、捷道软件
+    - 79、湖北享七网络科技有限公司
+    - 80、湖南创发科技责任有限公司
+    - 81、深圳小安时代互联网金融服务有限公司
+    - 82、湖北享七网络科技有限公司
+    - 83、钱包行云(北京)科技有限公司
+    - 84、360金融【360】
+    - 85、易企秀
+    - 86、摩贝(上海)生物科技有限公司
+    - 87、广东芯智慧科技有限公司
+    - 88、联想集团【联想】
+    - 89、怪兽充电
+    - 90、行圆汽车
+    - 91、深圳店店通科技邮箱公司
+    - 92、京东【京东】
+    - 93、米庄理财
+    - 94、咖啡易融
+    - 95、梧桐诚选
+    - 96、恒大地产【恒大】
+    - 97、昆明龙慧
+    - 98、上海涩瑶软件
+    - 99、易信【网易】
+    - 100、铜板街
+    - 101、杭州云若网络科技有限公司
+    - 102、特百惠(中国)有限公司
+    - 103、常山众卡运力供应链管理有限公司
+    - 104、深圳立创电子商务有限公司
+    - 105、杭州智诺科技股份有限公司
+    - 106、北京云漾信息科技有限公司
+    - 107、深圳市多银科技有限公司
+    - 108、亲宝宝
+    - 109、上海博卡软件科技有限公司
+    - 110、智慧树在线教育平台
+    - 111、米族金融
+    - 112、北京辰森世纪
+    - 113、云南滇医通
+    - 114、广州市分领网络科技有限责任公司
+    - 115、浙江微能科技有限公司
+    - 116、上海馨飞电子商务有限公司
+    - 117、上海宝尊电子商务有限公司
+    - 118、直客通科技技术有限公司
+    - 119、科度科技有限公司
+    - 120、上海数慧系统技术有限公司
+    - 121、我的医药网
+    - 122、多粉平台
+    - 123、铁甲二手机
+    - 124、上海海新得数据技术有限公司
+    - 125、深圳市珍爱网信息技术有限公司【珍爱网】
+    - 126、小蜜蜂
+    - 127、吉荣数科技
+    - 128、上海恺域信息科技有限公司
+    - 129、广州荔支网络有限公司【荔枝FM】
+    - 130、杭州闪宝科技有限公司
+    - 131、北京互联新网科技发展有限公司
+    - 132、誉道科技
+    - 133、山西兆盛房地产开发有限公司
+    - 134、北京蓝睿通达科技有限公司
+    - 135、月亮小屋(中国)有限公司【蓝月亮】
+    - 136、青岛国瑞信息技术有限公司
+    - 137、博雅云计算(北京)有限公司
+    - 138、华泰证券香港子公司
+    - 139、杭州东方通信软件技术有限公司
+    - 140、武汉博晟安全技术股份有限公司
+    - 141、深圳市六度人和科技有限公司
+    - 142、杭州趣维科技有限公司(小影)
+    - 143、宁波单车侠之家科技有限公司【单车侠】
+    - 144、丁丁云康信息科技(北京)有限公司
+    - 145、云钱袋
+    - 146、南京中兴力维
+    - 147、上海矽昌通信技术有限公司
+    - 148、深圳萨科科技
+    - 149、中通服创立科技有限责任公司
+    - 150、深圳市对庄科技有限公司
+    - 151、上证所信息网络有限公司
+    - 152、杭州火烧云科技有限公司【婚礼纪】
+    - 153、天津青芒果科技有限公司【芒果头条】
+    - 154、长飞光纤光缆股份有限公司
+    - 155、世纪凯歌(北京)医疗科技有限公司
+    - 156、浙江霖梓控股有限公司
+    - 157、江西腾飞网络技术有限公司
+    - 158、安迅物流有限公司
+    - 159、肉联网
+    - 160、北京北广梯影广告传媒有限公司
+    - 161、上海数慧系统技术有限公司
+    - 162、大志天成
+    - 163、上海云鹊医
+    - 164、上海云鹊医
+    - 165、墨迹天气【墨迹天气】
+    - 166、上海逸橙信息科技有限公司
+    - 167、沅朋物联
+    - 168、杭州恒生云融网络科技有限公司
+    - 169、绿米联创
+    - 170、重庆易宠科技有限公司
+    - 171、安徽引航科技有限公司(乐职网)
+    - 172、上海数联医信企业发展有限公司
+    - 173、良彬建材
+    - 174、杭州求是同创网络科技有限公司
+    - 175、荷马国际
+    - 176、点雇网
+    - 177、深圳市华星光电技术有限公司
+    - 178、厦门神州鹰软件科技有限公司
+    - 179、深圳市招商信诺人寿保险有限公司
+    - 180、上海好屋网信息技术有限公司
+    - 181、海信集团【海信】
+    - 182、信凌可信息科技(上海)有限公司
+    - 183、长春天成科技发展有限公司
+    - 184、用友金融信息技术股份有限公司【用友】
+    - 185、北京咖啡易融有限公司
+    - 186、国投瑞银基金管理有限公司
+    - 187、晋松(上海)网络信息技术有限公司
+    - 188、深圳市随手科技有限公司【随手记】
+    - 189、深圳水务科技有限公司
+    - 190、易企秀【易企秀】
+    - 191、北京磁云科技
+    - 192、南京蜂泰互联网科技有限公司
+    - 193、章鱼直播
+    - 194、奖多多科技
+    - 195、天津市神州商龙科技股份有限公司
+    - 196、岩心科技
+    - 197、车码科技(北京)有限公司
+    - 198、贵阳市投资控股集团
+    - 199、康旗股份
+    - 200、龙腾出行
+    - 201、杭州华量软件
+    - 202、合肥顶岭医疗科技有限公司
+    - 203、重庆表达式科技有限公司
+    - 204、上海米道信息科技有限公司
+    - 205、北京益友会科技有限公司
+    - 206、北京融贯电子商务有限公司
+    - 207、中国外汇交易中心
+    - 208、中国外运股份有限公司
+    - 209、中国上海晓圈教育科技有限公司
+    - 210、普联软件股份有限公司
+    - 211、北京科蓝软件股份有限公司
+    - 212、江苏斯诺物联科技有限公司
+    - 213、北京搜狐-狐友【搜狐】
+    - 214、新大陆网商金融
+    - 215、山东神码中税信息科技有限公司
+    - 216、河南汇顺网络科技有限公司
+    - 217、北京华夏思源科技发展有限公司
+    - 218、上海东普信息科技有限公司
+    - 219、上海鸣勃网络科技有限公司
+    - 220、广东学苑教育发展有限公司
+    - 221、深圳强时科技有限公司
+    - 222、上海云砺信息科技有限公司
+    - 223、重庆愉客行网络有限公司
+    - 224、数云
+    - 225、国家电网运检部
+    - 226、杭州找趣
+    - 227、浩鲸云计算科技股份有限公司
+    - 228、科大讯飞【科大讯飞】
+    - 229、杭州行装网络科技有限公司
+    - 230、即有分期金融
+    - 231、深圳法司德信息科技有限公司
+    - 232、上海博复信息科技有限公司
+    - 233、杭州云嘉云计算有限公司
+    - 234、有家民宿(有家美宿)
+    - 235、北京赢销通软件技术有限公司
+    - 236、浙江聚有财金融服务外包有限公司
+    - 237、易族智汇(北京)科技有限公司
+    - 238、合肥顶岭医疗科技开发有限公司
+    - 239、车船宝(深圳)旭珩科技有限公司)
+    - 240、广州富力地产有限公司
+    - 241、氢课(上海)教育科技有限公司
+    - 242、武汉氪细胞网络技术有限公司
+    - 243、杭州有云科技有限公司
+    - 244、上海仙豆智能机器人有限公司
+    - 245、拉卡拉支付股份有限公司【拉卡拉】
+    - 246、虎彩印艺股份有限公司
+    - 247、北京数微科技有限公司
+    - 248、广东智瑞科技有限公司
+    - 249、找钢网
+    - 250、九机网
+    - 251、杭州跑跑网络科技有限公司
+    - 252、深圳未来云集
+    - 253、杭州每日给力科技有限公司
+    - 254、上海齐犇信息科技有限公司
+    - 255、滴滴出行【滴滴】
+    - 256、合肥云诊信息科技有限公司
+    - 257、云知声智能科技股份有限公司
+    - 258、南京坦道科技有限公司
+    - 259、爱乐优(二手平台)
+    - 260、猫眼电影(私有化部署)【猫眼电影】
+    - 261、美团大象(私有化部署)【美团大象】
+    - 262、作业帮教育科技(北京)有限公司【作业帮】
+    - 263、北京小年糕互联网技术有限公司
+    - 264、山东矩阵软件工程股份有限公司
+    - 265、陕西国驿软件科技有限公司
+    - 266、君开信息科技
+    - 267、村鸟网络科技有限责任公司
+    - 268、云南国际信托有限公司
+    - 269、金智教育
+    - 270、珠海市筑巢科技有限公司
+    - 271、上海百胜软件股份有限公司
+    - 272、深圳市科盾科技有限公司
+    - 273、哈啰出行【哈啰】
+    - 274、途虎养车【途虎】
+    - 275、卡思优派人力资源集团
+    - 276、南京观为智慧软件科技有限公司
+    - 277、杭州城市大脑科技有限公司
+    - 278、猿辅导【猿辅导】
+    - 279、洛阳健创网络科技有限公司
+    - 280、魔力耳朵
+    - 281、亿阳信通
+    - 282、上海招鲤科技有限公司
+    - 283、四川商旅无忧科技服务有限公司
+    - 284、UU跑腿
+    - 285、北京老虎证券【老虎证券】
+    - 286、悠活省吧(北京)网络科技有限公司
+    - 287、F5未来商店
+    - 288、深圳环阳通信息技术有限公司
+    - 289、遠傳電信
+    - 290、作业帮(北京)教育科技有限公司【作业帮】
+    - 291、成都科鸿智信科技有限公司
+    - 292、北京木屋时代科技有限公司
+    - 293、大学通(哈尔滨)科技有限责任公司
+    - 294、浙江华坤道威数据科技有限公司
+    - 295、吉祥航空【吉祥航空】
+    - 296、南京圆周网络科技有限公司
+    - 297、广州市洋葱omall电子商务
+    - 298、天津联物科技有限公司
+    - 299、跑哪儿科技(北京)有限公司
+    - 300、深圳市美西西餐饮有限公司(喜茶)
+    - 301、平安不动产有限公司【平安】
+    - 302、江苏中海昇物联科技有限公司
+    - 303、湖南牙医帮科技有限公司
+    - 304、重庆民航凯亚信息技术有限公司(易通航)
+    - 305、递易(上海)智能科技有限公司
+    - 306、亚朵
+    - 307、浙江新课堂教育股份有限公司
+    - 308、北京蜂创科技有限公司
+    - 309、德一智慧城市信息系统有限公司
+    - 310、北京翼点科技有限公司
+    - 311、湖南智数新维度信息科技有限公司
+    - 312、北京玖扬博文文化发展有限公司
+    - 313、上海宇珩信息科技有限公司
+    - 314、全景智联(武汉)科技有限公司
+    - 315、天津易客满国际物流有限公司
+    - 316、南京爱福路汽车科技有限公司
+    - 317、我房旅居集团
+    - 318、湛江亲邻科技有限公司
+    - 319、深圳市姜科网络有限公司
+    - 320、青岛日日顺物流有限公司
+    - 321、南京太川信息技术有限公司
+    - 322、美图之家科技有限公司【美图】
+    - 323、南京太川信息技术有限公司
+    - 324、众薪科技(北京)有限公司
+    - 325、武汉安安物联科技有限公司
+    - 326、北京智客朗道网络科技有限公司
+    - 327、深圳市超级猩猩健身管理管理有限公司
+    - 328、重庆达志科技有限公司
+    - 329、上海享评信息科技有限公司
+    - 330、薪得付信息科技
+    - 331、跟谁学
+    - 332、中道(苏州)旅游网络科技有限公司
+    - 333、广州小卫科技有限公司
+    - 334、上海非码网络科技有限公司
+    - 335、途家网网络技术(北京)有限公司【途家】
+    - 336、广州辉凡信息科技有限公司
+    - 337、天维尔信息科技股份有限公司
+    - 338、上海极豆科技有限公司
+    - 339、苏州触达信息技术有限公司
+    - 340、北京热云科技有限公司
+    - 341、中智企服(北京)科技有限公司
+    - 342、易联云计算(杭州)有限责任公司
+    - 343、青岛航空股份有限公司【青岛航空】
+    - 344、山西博睿通科技有限公司
+    - 345、网易杭州网络有限公司【网易】
+    - 346、北京果果乐学科技有限公司
+    - 347、百望股份有限公司
+    - 348、中保金服(深圳)科技有限公司
+    - 349、天津运友物流科技股份有限公司
+    - 350、广东创能科技股份有限公司
+    - 351、上海倚博信息科技有限公司
+    - 352、深圳百果园实业(集团)股份有限公司
+    - 353、广州细刻网络科技有限公司
+    - 354、武汉鸿业众创科技有限公司
+    - 355、金锡科技(广州)有限公司
+    - 356、易瑞国际电子商务有限公司
+    - 357、奇点云
+    - 358、中视信息科技有限公司
+    - 359、开源项目:datax-web
+    - 360、云知声智能科技股份有限公司
+    - 361、开源项目:bboss
+    - 362、成都深驾科技有限公司
+    - 363、FunPlus【趣加】
+    - 364、杭州创匠信科技有限公司
+    - 365、龙匠(北京)科技发展有限公司
+    - 366、广州一链通互联网科技有限公司
+    - 367、上海星艾网络科技有限公司
+    - 368、虎博网络技术(上海)有限公司
+    - 369、青岛优米信息技术有限公司
+    - 370、八维通科技有限公司
+    - 371、烟台合享智星数据科技有限公司
+    - 372、东吴证券股份有限公司
+    - 373、中通云仓股份有限公司【中通】
+    - 374、北京加菲猫科技有限公司
+    - 375、北京匠心演绎科技有限公司
+    - 376、宝贝走天下
+    - 377、厦门众库科技有限公司
+    - 378、海通证券数据中心
+    - 389、湖南快乐通宝小额贷款有限公司
+    - 380、浙江大华技术股份有限公司
+    - 381、杭州魔筷科技有限公司
+    - 382、青岛掌讯通区块链科技有限公司
+    - 383、新大陆金融科技
+    - 384、常州玺拓软件科技有限公司
+    - 385、北京正保网格教育科技有限公司
+    - 386、统一企业(中国)投资有限公司【统一】
+    - 387、微革网络科技有限公司
+    - 388、杭州融易算科技有限公司
+    - 399、青岛上啥班网络科技有限公司
+    - 390、京东酒世界
+    - 391、杭州爱博仕科技有限公司
+    - 392、五星金服控股有限公司
+    - 393、福建乐摩物联科技有限公司
+    - 394、百炼智能科技有限公司
+    - 395、山东能源数智云科技有限公司
+    - 396、招商局能源运输股份有限公司
+    - 397、三一集团【三一】
+    - 398、东巴文(深圳)健康管理有限公司
+    - 399、索易软件
+    - 400、深圳市宁远科技有限公司
+    - 401、熙牛医疗
+    - 402、南京智鹤电子科技有限公司
+    - 403、嘀嗒出行【嘀嗒出行】
+    - 404、广州虎牙信息科技有限公司【虎牙】
+    - 405、广州欧莱雅百库网络科技有限公司【欧莱雅】
+    - 406、微微科技有限公司
+    - 407、我爱我家房地产经纪有限公司【我爱我家】
+    - 408、九号发现
+    - 409、薪人薪事
+    - 410、武汉氪细胞网络技术有限公司
+    - 411、广州市斯凯奇商业有限公司
+    - 412、微淼商学院
+    - 413、杭州车盛科技有限公司
+    - 414、深兰科技(上海)有限公司
+    - 415、安徽中科美络信息技术有限公司
+    - 416、比亚迪汽车工业有限公司【比亚迪】
+    - 417、湖南小桔信息技术有限公司
+    - 418、安徽科大国创软件科技有限公司
+    - 419、克而瑞
+    - 420、陕西云基华海信息技术有限公司
+    - 421、安徽深宁科技有限公司
+    - 422、广东康爱多数字健康有限公司
+    - 423、嘉里电子商务
+    - 424、上海时代光华教育发展有限公司
+    - 425、CityDo
+    - 426、上海禹知信息科技有限公司
+    - 427、广东智瑞科技有限公司
+    - 428、西安爱铭网络科技有限公司
+    - 429、心医国际数字医疗系统(大连)有限公司
+    - 430、乐其电商
+    - 431、锐达科技
+    - 432、天津长城滨银汽车金融有限公司
+    - 433、代码网
+    - 434、东莞市东城乔伦软件开发工作室
+    - 435、浙江百应科技有限公司
+    - 436、上海力爱帝信息技术有限公司(Red E)
+    - 437、云徙科技有限公司
+    - 438、北京康智乐思网络科技有限公司【大姨吗APP】
+    - 439、安徽开元瞬视科技有限公司
+    - 440、立方
+    - 441、厦门纵行科技
+    - 442、乐山-菲尼克斯半导体有限公司
+    - 443、武汉光谷联合集团有限公司
+    - 444、上海金仕达软件科技有限公司
+    - 445、深圳易世通达科技有限公司
+    - 446、爱动超越人工智能科技(北京)有限责任公司
+    - 447、迪普信(北京)科技有限公司
+    - 448、掌站科技(北京)有限公司
+    - 449、深圳市华云中盛股份有限公司
+    - 450、上海原圈科技有限公司
+    - 451、广州赞赏信息科技有限公司
+    - 452、Amber Group
+    - 453、德威国际货运代理(上海)公司
+    - 454、浙江杰夫兄弟智慧科技有限公司
+    - 455、信也科技
+    - 456、开思时代科技(深圳)有限公司
+    - 457、大连槐德科技有限公司
+    - 458、同程生活
+    - 459、松果出行
+    - 460、企鹅杏仁集团
+    - 461、宁波科云信息科技有限公司
+    - 462、上海格蓝威驰信息科技有限公司
+    - 463、杭州趣淘鲸科技有限公司
+    - 464、湖州市数字惠民科技有限公司
+    - 465、乐普(北京)医疗器械股份有限公司
+    - 466、广州市晴川高新技术开发有限公司
+    - 467、山西缇客科技有限公司
+    - 468、徐州卡西穆电子商务有限公司
+    - 469、格创东智科技有限公司
+    - 470、世纪龙信息网络有限责任公司
+    - 471、邦道科技有限公司
+    - 472、河南中盟新云科技股份有限公司
+    - 473、横琴人寿保险有限公司
+    - 474、上海海隆华钟信息技术有限公司
+    - 475、上海久湛
+    - 476、上海仙豆智能机器人有限公司
+    - 477、广州汇尚网络科技有限公司
+    - 478、深圳市阿卡索资讯股份有限公司
+    - 479、青岛佳家康健康管理有限责任公司
+    - 480、蓝城兄弟
+    - 481、成都天府通金融服务股份有限公司
+    - 482、深圳云镖网络科技有限公司
+    - 483、上海影创科技
+    - 484、成都艾拉物联
+    - 485、北京客邻尚品网络技术有限公司
+    - 486、IT实战联盟
+    - 487、杭州尤拉夫科技有限公司
+    - 488、中大检测(湖南)股份有限公司
+    - ……
+
+> 更多接入的公司,欢迎在 [登记地址](https://github.com/xuxueli/xxl-job/issues/1 ) 登记,登记仅仅为了产品推广。
+
+欢迎大家的关注和使用,XXL-JOB也将拥抱变化,持续发展。
+
+
+## Contributing
+Contributions are welcome! Open a pull request to fix a bug, or open an [Issue](https://github.com/xuxueli/xxl-job/issues/) to discuss a new feature or change.
+
+欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 [Issue](https://github.com/xuxueli/xxl-job/issues/) 讨论新特性或者变更。
+
+
+## Copyright and License
+This product is open source and free, and will continue to provide free community technical support. Individual or enterprise users are free to access and use.
+
+- Licensed under the GNU General Public License (GPL) v3.
+- Copyright (c) 2015-present, xuxueli.
+
+产品开源免费,并且将持续提供免费的社区技术支持。个人或企业内部可自由的接入和使用。
+
+
+## Donate
+No matter how much the donation amount is enough to express your thought, thank you very much :)     [To donate](https://www.xuxueli.com/page/donate.html )
+
+无论捐赠金额多少都足够表达您这份心意,非常感谢 :)      [前往捐赠](https://www.xuxueli.com/page/donate.html )

+ 233 - 0
job-bytedance/pom.xml

@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>cn.com.ctop</groupId>
+    <artifactId>job-bytedance</artifactId>
+    <version>2.3.1-SNAPSHOT</version>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.1.3.RELEASE</version>
+        <relativePath/>
+    </parent>
+    <properties>
+        <java.version>1.8</java.version>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <mybatis-plus.version>3.0.6</mybatis-plus.version>
+        <druid.version>1.1.10</druid.version>
+        <commons.version>2.6</commons.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.mybatis.generator</groupId>
+            <artifactId>mybatis-generator-core</artifactId>
+            <version>1.3.2</version>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+            <version>1.9.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-aop</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.xuxueli</groupId>
+            <artifactId>xxl-job-core</artifactId>
+            <version>2.3.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>${commons.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>${commons.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+        <!-- mybatis-plus -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>${mybatis-plus.version}</version>
+        </dependency>
+        <!-- druid -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>${druid.version}</version>
+        </dependency>
+        <!-- 动态数据源 -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>2.5.4</version>
+        </dependency>
+        <!-- junit -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+            <scope>test</scope>
+        </dependency>
+        <!-- json -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.56</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus</artifactId>
+            <version>3.3.1.tmp</version>
+        </dependency>
+        <!--mysql-->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>5.1.47</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-cp</artifactId>
+            <version>3.6.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>net.sourceforge.jtds</groupId>
+            <artifactId>jtds</artifactId>
+            <version>1.3.1</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+            <version>4.4</version>
+        </dependency>
+        <dependency>
+            <groupId>com.squareup.retrofit2</groupId>
+            <artifactId>retrofit</artifactId>
+            <version>2.6.0</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>1.11</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>4.5.11</version>
+        </dependency>
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jeecgframework</groupId>
+            <artifactId>autopoi-web</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+
+        <!-- Redis -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+            <version>2.6.2</version>
+        </dependency>
+
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.mybatis.generator</groupId>
+                <artifactId>mybatis-generator-maven-plugin</artifactId>
+                <version>1.3.2</version>
+                <configuration>
+                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
+                    <verbose>true</verbose>
+                    <overwrite>true</overwrite>
+                </configuration>
+            </plugin>
+        </plugins>
+        <resources>
+            <resource>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**/*.yml</include>
+                    <include>**/*.properties</include>
+                    <include>**/*.xml</include>
+                </includes>
+                <filtering>false</filtering>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+                <includes>
+                    <include>**/*.yml</include>
+                    <include>**/*.properties</include>
+                    <include>**/*.xml</include>
+                </includes>
+                <filtering>false</filtering>
+            </resource>
+        </resources>
+    </build>
+
+</project>

+ 22 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/BytedanceJobApplication.java

@@ -0,0 +1,22 @@
+package cn.com.ctop.job.bytedance;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+@Slf4j
+@SpringBootApplication
+@ComponentScan(basePackages = {"cn.com.ctop"})
+@Configuration
+public class BytedanceJobApplication {
+    public static void main(String[] args){
+
+        SpringApplication.run(BytedanceJobApplication.class, args);
+
+        log.info("\n----------------------------------------------------------\n\t" +
+                "job service is running\n\t" +
+                "----------------------------------------------------------");
+    }
+
+}

+ 13 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/config/MybatisPlusConfig.java

@@ -0,0 +1,13 @@
+package cn.com.ctop.job.bytedance.config;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@MapperScan(value = { "cn.com.ctop.**.mapper*"})
+
+public class MybatisPlusConfig {
+
+
+
+}

+ 60 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/config/XxlJobConfig.java

@@ -0,0 +1,60 @@
+package cn.com.ctop.job.bytedance.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * xxl-job config
+ *
+ * @author xuxueli 2017-04-28
+ */
+@Configuration
+public class XxlJobConfig {
+  @Value("${xxl.job.admin.addresses}")
+  private String adminAddresses;
+
+  @Value("${xxl.job.executor.appname}")
+  private String appName;
+
+  @Value("${xxl.job.executor.ip}")
+  private String ip;
+
+  @Value("${xxl.job.executor.port}")
+  private int port;
+
+  @Value("${xxl.job.accessToken}")
+  private String accessToken;
+
+  @Value("${xxl.job.executor.logpath}")
+  private String logPath;
+
+  @Value("${xxl.job.executor.logretentiondays}")
+  private int logRetentionDays;
+
+  @Bean
+  public XxlJobSpringExecutor xxlJobExecutor() {
+    XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+    xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+    xxlJobSpringExecutor.setAppname(appName);
+    xxlJobSpringExecutor.setIp(ip);
+    xxlJobSpringExecutor.setPort(port);
+    xxlJobSpringExecutor.setAccessToken(accessToken);
+    xxlJobSpringExecutor.setLogPath(logPath);
+    xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+    return xxlJobSpringExecutor;
+  }
+
+  /**
+   * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
+   *
+   * <p>1、引入依赖: <dependency> <groupId>org.springframework.cloud</groupId>
+   * <artifactId>spring-cloud-commons</artifactId> <version>${version}</version> </dependency>
+   *
+   * <p>2、配置文件,或者容器启动变量 spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
+   *
+   * <p>3、获取IP String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+   */
+}

+ 268 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/controller/BytedanceController.java

@@ -0,0 +1,268 @@
+package cn.com.ctop.job.bytedance.controller;
+
+import cn.com.ctop.job.bytedance.data.constant.CtopAdConstant;
+import cn.com.ctop.job.bytedance.data.entity.OauthToken;
+import cn.com.ctop.job.bytedance.data.service.IByteDanceAdvertiserDataService;
+import cn.com.ctop.job.bytedance.data.service.IByteDanceHourlyAccountWarningService;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceCampaignReportDailyService;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceCampaignReportHourlyService;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceCreativeReportDailyService;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceCreativeReportHourlyService;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceFileVideoGetService;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceFundService;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceMaterialReportDailyService;
+import cn.com.ctop.job.bytedance.data.service.IBytedanceProjectService;
+import cn.com.ctop.job.bytedance.data.service.IOauthTokenService;
+import cn.com.ctop.job.bytedance.data.utils.Check;
+import cn.com.ctop.job.bytedance.data.utils.DateUtils;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.xxl.job.core.context.XxlJobHelper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * zian Y
+ * 2022/2/9
+ **/
+
+@RestController
+@RequestMapping("/bytedance/bytedanceController")
+@Api(tags = "头条")
+@Slf4j
+public class BytedanceController {
+    @Autowired
+    private IOauthTokenService tokenService;
+
+    @Autowired
+    private IBytedanceFileVideoGetService fileVideoService;
+
+
+    @ApiOperation(value = "根据账户获取视频素材-账户/素材id 下全部视频素材", notes = "根据账户获取视频素材-账户/素材id 下全部视频素材")
+    @PostMapping(value = "/getBytedanceVideoByAccountId")
+    public Map<String, String> getBytedanceVideoByAccountId(@RequestBody JSONObject jsonObject) {
+        Long accountId = jsonObject.getLong("accountId");
+        JSONArray dataList = jsonObject.getJSONArray("materialIds");
+        List<Long> materialIds = Check.isNull(dataList) ? null : JSONArray.parseObject(dataList.toJSONString(), List.class);
+
+        String token = tokenService.getByAccountId(accountId);
+        OauthToken oauthToken = new OauthToken();
+        oauthToken.setAccessToken(token);
+        oauthToken.setAccountId(accountId);
+        return fileVideoService.getBytedanceVideoByAccountId(oauthToken, materialIds, 1, 100);
+    }
+
+    @GetMapping(value = "/testC")
+    public void testC(Long accountId) {
+        String token = tokenService.getByAccountId(accountId);
+        OauthToken oauthToken = new OauthToken();
+        oauthToken.setAccessToken(token);
+        oauthToken.setAccountId(accountId);
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        listService.checkAdvertiserProject(oauthToken, nowDate, 1);
+    }
+
+    @Autowired
+    private IByteDanceHourlyAccountWarningService byteDanceHourlyAccountWarningService;
+    static ExecutorService executorService = Executors.newFixedThreadPool(3);
+
+    @GetMapping(value = "/testD")
+    public void testD() {
+        List<Long> tokens = tokenService.getAllToutiaoAccountIds();
+        String nowDateStr = DateUtils.getNowDate("yyyy-MM-dd");
+        Integer nowDateInt = DateUtils.getIntegerDate(nowDateStr);
+        Integer yesterdaInt = DateUtils.getIntegerDate(DateUtils.getAnotherDay("yyyy-MM-dd", nowDateStr, -1));
+        tokens.forEach(accountId -> byteDanceHourlyAccountWarningService.byteDanceAccountWarning(accountId, nowDateInt, yesterdaInt));
+
+
+    }
+
+
+    private static ExecutorService dailyExecutorService = Executors.newFixedThreadPool(10);
+    @Autowired
+    private IByteDanceAdvertiserDataService advertiserDataService;
+
+    @Autowired
+    IBytedanceCreativeReportDailyService creativeReportDailyService;
+    @Autowired
+    IBytedanceCreativeReportHourlyService creativeReportHourlyService;
+    @Autowired
+    IBytedanceCampaignReportHourlyService campaignReportHourlyService;
+    @Autowired
+    IBytedanceCampaignReportDailyService campaignReportDailyService;
+    @Autowired
+    private IBytedanceMaterialReportDailyService materialReportDailyService;
+    @Autowired
+    private IByteDanceAdvertiserDataService advertiserDataServices;
+    @Autowired
+    private IBytedanceProjectService listService;
+
+    @GetMapping(value = "/testReport")
+    public String testReport() {
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        //昨天
+        String yesterda = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+
+//        List<Long> accountIds = tokenService.getAllToutiaoAccountIds();
+        List<JSONObject> accountIds = tokenService.getByProjectId(18450885L);
+
+    /*    for (JSONObject obj : accountIds) {
+//            String token = tokenService.getByAccountId(id);
+            OauthToken oauthToken = new OauthToken();
+            oauthToken.setAccessToken(obj.getString("accessToken"));
+            oauthToken.setAccountId(obj.getLong("accountId"));
+            dailyExecutorService.submit(
+                    new Runnable() {
+                        @Override
+                        public void run() {
+                            try {
+                                Thread.sleep(500);
+//                                fileVideoService.getFileVideoData(oauthToken, null, null, 1, 100);
+
+                                advertiserDataService.getAdvertiserReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    });
+
+        }*/
+        return "ok";
+    }
+
+
+    @GetMapping(value = "/testReportHour")
+    public String testReportHour() {
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String yesterda = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+
+        //获取 两个日期之间的所有 日期
+        List<String> dates = DateUtils.getAllDatesOfTwoTimes("2024-05-29", "2024-06-11");
+
+//                tokenService.getAllToutiaoAccountIds();
+        List<Long> accountIds = new ArrayList<>();
+        accountIds.add(1799928973572105l);
+        accountIds.add(1800189297615018l);
+        for (String date : dates) {
+            for (Long id : accountIds) {
+                String token = tokenService.getByAccountId(id);
+                OauthToken oauthToken = new OauthToken();
+                oauthToken.setAccessToken(token);
+                oauthToken.setAccountId(id);
+                dailyExecutorService.submit(
+                        new Runnable() {
+                            @Override
+                            public void run() {
+                                try {
+                                    Thread.sleep(500);
+//                                    materialReportDailyService.bytedanceDailyMaterialReportJobV3Video(oauthToken, yesterda2, yesterda, 1, 100);
+//                                    listService.getProjectList(oauthToken, start, yesterda, 1);
+//                                    advertiserDataService.getV3AdvertiserReport(oauthToken, start, yesterda, CtopAdConstant.BYTEDAN1CE_REPORT_V3_TYPE_DAILY);
+//                                    materialReportDailyService.bytedanceDailyMaterialReportJobV3Video(oauthToken, "2024-01-01", "2024-01-10", 1, 100);
+//                                    materialReportDailyService.bytedanceDailyMaterialReportJobV3Image(oauthToken, yesterda2, yesterda, 1, 100);
+//                                    advertiserDataService.getV3PromotionProjectReport(oauthToken, date, date, CtopAdConstant.BYTEDANCE_REPORT_V3_TYPE_HOURLY);
+                                    advertiserDataService.getAdvertiserReport(oauthToken, date, date, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
+
+//                                    advertiserDataService.getV3PromotionProjectReport(oauthToken, date, date, CtopAdConstant.BYTEDANCE_REPORT_V3_TYPE_DAILY);
+//                                    advertiserDataService.getV3PromotionMaterialReport(oauthToken, "2023-05-01", "2023-05-31", CtopAdConstant.BYTEDANCE_REPORT_V3_TYPE_DAILY);
+//                                    advertiserDataServices.getPositionAdvertiserReport(oauthToken, "2023-07-01", "2023-07-18", CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
+                                } catch (Exception e) {
+                                    e.printStackTrace();
+                                }
+                            }
+                        });
+            }
+        }
+        return "ok";
+    }
+
+    @GetMapping(value = "/testOneReport")
+    public String testOneReport(Long accountId) {
+        String token = tokenService.getByAccountId(accountId);
+//        String token = tokenService.getAgentToken(accountId);
+        if (Check.isNull(token)) {
+            log.error("此账户未获取到相关token,accountId:{}", accountId);
+            return "no";
+        }
+        OauthToken oauthToken = new OauthToken();
+        oauthToken.setAccessToken(token);
+        oauthToken.setAccountId(accountId);
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String yesterda = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+        String start = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -2);
+
+
+        Date getDate = new Date();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH");
+        String hour = simpleDateFormat.format(getDate);
+        dailyExecutorService.submit(
+                new Runnable() {
+                    @Override
+                    public void run() {
+                        try {
+                            Thread.sleep(500);
+                            advertiserDataService.getAdvertiserReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_TYPE_HOURLY);
+
+//                            materialReportDailyService.bytedanceDailyMaterialReportJobV3Video(oauthToken, start, yesterda, 1, 100);
+//                            advertiserDataService.getV3AdvertiserConfig(oauthToken);
+//                            advertiserDataService.getV3PromotionMaterialReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_V3_TYPE_DAILY);
+//                            advertiserDataService.getV3AdvertiserReport(oauthToken, nowDate, nowDate, CtopAdConstant.BYTEDANCE_REPORT_V3_TYPE_HOURLY);
+//                            listService.getProjectList(oauthToken, start, yesterda, 1);
+//                            materialReportDailyService.bytedanceDailyMaterialReportJobV3Image(oauthToken, yesterda2, yesterda, 1, 100);
+//                            advertiserDataServices.getPositionAdvertiserReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
+//                            advertiserDataService.getAgentReport(oauthToken, yesterda, yesterda, CtopAdConstant.BYTEDANCE_REPORT_TYPE_DAILY);
+
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                });
+        return "ok";
+    }
+
+    @GetMapping(value = "/test1")
+    public void test1(Long accountId) {
+        String token = tokenService.getByAccountId(accountId);
+        OauthToken oauthToken = new OauthToken();
+        oauthToken.setAccessToken(token);
+        oauthToken.setAccountId(accountId);
+        log.info("获取头条视频全量素材---账户--{}======》》》", oauthToken.getAccountId());
+        fileVideoService.getFileVideoData(oauthToken, null, null, 1, 100);
+    }
+
+    @Autowired
+    private IBytedanceFundService bytedanceFundService;
+
+    @GetMapping(value = "/getReports")
+    public void getReports() {
+        List<JSONObject> tokens = tokenService.getAgentTokens();
+        String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
+        String yesterda = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
+      /*  String yesterda2 = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -2);
+        String yesterda3 = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -3);*/
+        for (JSONObject obj : tokens) {
+            advertiserDataService.getAgentReport(obj, yesterda, yesterda);
+          /*  advertiserDataService.getAgentReport(obj, yesterda2, yesterda2);
+            advertiserDataService.getAgentReport(obj, yesterda3, yesterda3);*/
+
+        }
+
+    }
+
+
+}

+ 60 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/annotation/Dict.java

@@ -0,0 +1,60 @@
+package cn.com.ctop.job.bytedance.data.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ *  类描述:  字典注解
+ * 作    者: dangzhenghui
+ * 日    期: 2019年03月17日-下午9:37:16
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Dict {
+    /**
+     * 方法描述:  数据code
+     * 作    者: dangzhenghui
+     * 日    期: 2019年03月17日-下午9:37:16
+     *
+     * @return 返回类型: String
+     */
+    String dicCode();
+
+    /**
+     * 方法描述:  数据Text
+     * 作    者: dangzhenghui
+     * 日    期: 2019年03月17日-下午9:37:16
+     *
+     * @return 返回类型: String
+     */
+    String dicText() default "";
+
+    /**
+     * 方法描述: 数据字典表
+     * 作    者: dangzhenghui
+     * 日    期: 2019年03月17日-下午9:37:16
+     *
+     * @return 返回类型: String
+     */
+    String dictTable() default "";
+
+    /**
+     * 方法描述: 数据字典表
+     * 作    者: dangzhenghui
+     * 日    期: 2019年03月17日-下午9:37:16
+     *
+     * @return 返回类型: String
+     */
+    String extendsKey() default "";
+
+    /**
+     * 方法描述: 数据字典表
+     * 作    者: dangzhenghui
+     * 日    期: 2019年03月17日-下午9:37:16
+     *
+     * @return 返回类型: String
+     */
+    String extendsValue() default "";
+}

+ 41 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/constant/BytedanceConstant.java

@@ -0,0 +1,41 @@
+package cn.com.ctop.job.bytedance.data.constant;
+
+public class BytedanceConstant {
+    /**
+     * 报表
+     */
+    public static final String BYTEDANCE_V2_AD_GET = "/2/ad/get/";
+
+    public static final String BYTEDANCE_V2_REPORT_AD_GET = "/2/report/ad/get/";
+
+    public static final String BYTEDANCE_V2_REPORT_advertiser_GET = "/2/report/advertiser/get/";
+
+    public static final String BYTEDANCE_V2_REPORT_AGENT_GET_V2 = "/2/report/agent/get_v2/";
+
+    public static final String BYTEDANCE_V2_AUDIENCE_PACKAGE_GET = "/2/audience_package/get/";
+
+    public static final String BYTEDANCE_V2_CAMPAIGN_GET = "/2/campaign/get/";
+
+    public static final String BYTEDANCE_V2_REPORT_CAMPAIGN_GET = "/2/report/campaign/get/";
+
+    public static final String BYTEDANCE_V2_CREATIVE_GET = "/2/creative/get/";
+
+    public static final String BYTEDANCE_V2_REPORT_CREATIVE_GET = "/2/report/creative/get/";
+
+    public static final String BYTEDANCE_V2_FILE_IMAGE_GET = "/2/file/image/get/";
+
+    public static final String BYTEDANCE_V2_FILE_VIDEO_GET = "/2/file/video/get/";
+
+    public static final String BYTEDANCE_V2_MATERIAL_ATTRIBUTES = "/2/file/material_attributes/list/";
+
+    public static final String BYTEDANCE_V2_REPORT_INTEGRATED_GET = "/2/report/integrated/get/";
+
+    public static final String BYTEDANCE_V3_REPORT_INTEGRATED_GET = "/v3.0/report/custom/get/";
+
+    public static final String BYTEDANCE_V3_CONFIG_ADVERTISER_GET = "/v3.0/report/custom/config/get/";
+
+    public static final String BYTEDANCE_V3_PROMOTION_LIST_GET = "/v3.0/promotion/list/";
+
+    public static final String BYTEDANCE_V3_PROJECT_LIST_GET = "/v3.0/project/list/";
+    public static final String BYTEDANCE_FUND_GET = "https://ad.oceanengine.com/open_api/2/advertiser/fund/get/";
+}

+ 99 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/constant/CtopAdConstant.java

@@ -0,0 +1,99 @@
+package cn.com.ctop.job.bytedance.data.constant;
+
+import java.math.BigDecimal;
+
+/**
+ * 广告相关常量数据
+ */
+public class CtopAdConstant {
+    //头条
+    public static final String PLATFORM_TYPE_BYTEDANCE = "1";
+    public static final  int PLATFORM_TYPE_BYTEDANCE_INT = 1;
+    //快手
+    public static final String PLATFORM_TYPE_KUAISHOU = "2";
+    public static final  int   PLATFORM_TYPE_KUAISHOU_INT = 2;
+    //头条内广
+    public static final String PLATFORM_TYPE_BYTEDANCE_INSIDE = "3";
+    public static final  int PLATFORM_TYPE_BYTEDANCE_INSIDE_INT = 3;
+    //头条内广
+    public static final String PLATFORM_TYPE_KUAISHOU_INSIDE = "4";
+    public static final  int PLATFORM_TYPE_KUAISHOU_INSIDE_INT = 4;
+
+    public static final String PLATFORM_TYPE_PANGOLIN = "5";
+
+    public static final String PLATFORM_TYPE_BYTEDANCE_PY = "bytedance";
+    public static final String PLATFORM_TYPE_KUAISHOU_PY = "kuaishou";
+    public static final String PLATFORM_TYPE_PANGOLIN_PY = "pangolin";
+
+    public static final String BYTEDANCE_REPORT_TYPE_DAILY = "STAT_TIME_GRANULARITY_DAILY";
+    public static final String BYTEDANCE_REPORT_TYPE_HOURLY = "STAT_TIME_GRANULARITY_HOURLY";
+
+    public static final String BYTEDANCE_REPORT_V3_TYPE_DAILY = "stat_time_day";
+    public static final String BYTEDANCE_REPORT_V3_TYPE_HOURLY = "stat_time_hour";
+
+    public static final String UREPORT_PREVIEW_URL_PREFIX = "/jeecg-boot/ureport/designer?_u=mysql:";
+
+
+    public static final String CTOP_ORGCODE_NORTH_CHINA_PREFIX = "A01";
+    public static final String CTOP_ORGCODE_EAST_CHINA_PREFIX = "A02";
+
+    public static final String KUAISHOU_LOAD_JOB_TYPE_HISTORY = "history";
+    public static final String KUAISHOU_LOAD_JOB_TYPE_DAILY = "daily";
+
+    public static final String BYTEDANCE_LOAD_JOB_TYPE_ASYNC = "async";
+    public static final String BYTEDANCE_LOAD_JOB_TYPE_DAILY = "daily";
+
+    /**
+     * 销售角色Id
+     */
+    public static final String SYSTEM_SALE_CODE = "75ee837e6f3de29c0e3ed75d4629438e";
+
+    /**
+     * 销售AM角色Id
+     */
+    public static final String SYSTEM_SALE_AM_CODE = "f5a68aa2acf86e842100f0fa4b050d28";
+
+    /**
+     * 头条销售媒体季度任务
+     */
+    public static final BigDecimal BYTEDANCE_MEDIA_TASK_COST = new BigDecimal("150000000");
+    /**
+     * 快手销售媒体季度任务
+     */
+    public static final BigDecimal KUAISHOU_MEDIA_TASK_COST = new BigDecimal("147000000");
+    /**
+     * 头条销售季度个人任务
+     */
+    public static final BigDecimal BYTEDANCE_PERSONAL_TASK_COST = new BigDecimal("2400000");
+    /**
+     * 快手销售季度个人任务
+     */
+    public static final BigDecimal KUAISHOU_PERSONAL_TASK_COST = new BigDecimal("2400000");
+
+    /**
+     * 华北快手销售机构号
+     */
+    public static final String HB_KUAISHOU_SALE_ORG_CODE = "A01A11A01";
+    /**
+     * 华北头条销售机构号
+     */
+    public static final String HB_BYTEDANCE_SALE_ORG_CODE = "A01A11A02";
+
+    public static final String BYTEDANCE_GENDER_TYPE_NONE = "NONE";
+    public static final String BYTEDANCE_GENDER_TYPE_GENDER_MALE = "GENDER_MALE";
+    public static final String BYTEDANCE_GENDER_TYPE_GENDER_FEMALE = "GENDER_FEMALE";
+
+
+    public static final Integer COMMON_STATUS_ENABLED = 1;
+
+    public static final Integer COMMON_STATUS_NOT_ENABLED = 0;
+
+    public static final String COMMON_ORDER_TYPE_ASC = "asc";
+    public static final String COMMON_ORDER_TYPE_DESC = "desc";
+
+    /**
+     * 视频类型
+     */
+    public static final String VIDEO_TYPR_ZR = "真人";
+    public static final String VIDEO_TYPR_ZZ = "制作";
+}

+ 17 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/constant/KuaishouConstant.java

@@ -0,0 +1,17 @@
+package cn.com.ctop.job.bytedance.data.constant;
+
+public class KuaishouConstant {
+
+    /**
+     * 报表
+     */
+    public static final String ACCOUNT_REPORT = "/rest/openapi/v1/report/account_report";
+    public static final String CAMPAIGN_REPORT = "/rest/openapi/v1/report/campaign_report";
+    public static final String UNIT_REPORT = "/rest/openapi/v1/report/unit_report";
+    public static final String CREATIVE_REPORT = "/rest/openapi/v1/report/creative_report";
+    public static final String PROGRAM_CREATIVE_REPORT = "/rest/openapi/v1/report/program_creative_report";
+    public static final String MATERIAL_REPORT = "/rest/openapi/v1/report/material_report";
+    public static final String SEND_URL = "http://192.168.0.85:8765/webhook/account_report";
+    public static final String VIDEO_LIST = "/rest/openapi/v1/file/ad/video/list";
+
+}

+ 198 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/ByteDanceAdvertiserReportDTO.java

@@ -0,0 +1,198 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class ByteDanceAdvertiserReportDTO implements Serializable {
+    private Long advertiserId;
+    private String startDate;
+    private String endDate;
+    private Integer pageSize;
+    private Integer page;
+    private String timeGranularity;
+
+    private List<String> fields;
+
+
+
+    public List<String> getFieldsList(){
+        List<String> fields = new ArrayList<>();
+        fields.add("cost");
+        fields.add("show");
+        fields.add("avg_show_cost");
+        fields.add("avg_click_cost");
+        fields.add("click");
+        fields.add("ctr");
+        fields.add("convert");
+        fields.add("convert_cost");
+        fields.add("convert_rate");
+        fields.add("deep_convert");
+        fields.add("deep_convert_cost");
+        fields.add("deep_convert_rate");
+        fields.add("attribution_convert");
+        fields.add("attribution_convert_cost");
+        fields.add("attribution_deep_convert");
+        fields.add("attribution_deep_convert_cost");
+        fields.add("download_start");
+        fields.add("download_start_cost");
+        fields.add("download_start_rate");
+        fields.add("download_finish");
+        fields.add("download_finish_cost");
+        fields.add("download_finish_rate");
+        fields.add("install_finish");
+        fields.add("install_finish_cost");
+        fields.add("install_finish_rate");
+        fields.add("active");
+        fields.add("active_cost");
+        fields.add("active_rate");
+        fields.add("register");
+        fields.add("active_register_cost");
+        fields.add("active_register_rate");
+        fields.add("attribution_next_day_open_cnt");
+        fields.add("attribution_next_day_open_cost");
+        fields.add("attribution_next_day_open_rate");
+        fields.add("next_day_open");
+        fields.add("game_addiction");
+        fields.add("game_addiction_cost");
+        fields.add("game_addiction_rate");
+        fields.add("pay_count");
+        fields.add("active_pay_cost");
+        fields.add("active_pay_rate");
+        fields.add("game_pay_count");
+        fields.add("game_pay_cost");
+        fields.add("attribution_game_pay_7d_count");
+        fields.add("attribution_game_pay_7d_cost");
+        fields.add("attribution_active_pay_7d_per_count");
+        fields.add("loan_completion");
+        fields.add("loan_completion_cost");
+        fields.add("loan_completion_rate");
+        fields.add("pre_loan_credit");
+        fields.add("pre_loan_credit_cost");
+        fields.add("loan_credit");
+        fields.add("loan_credit_cost");
+        fields.add("loan_credit_rate");
+        fields.add("in_app_uv");
+        fields.add("in_app_detail_uv");
+        fields.add("in_app_cart");
+        fields.add("in_app_pay");
+        fields.add("in_app_order");
+        fields.add("phone");
+        fields.add("form");
+        fields.add("map_search");
+        fields.add("button");
+        fields.add("view");
+        fields.add("download");
+        fields.add("qq");
+        fields.add("lottery");
+        fields.add("vote");
+        fields.add("message");
+        fields.add("redirect");
+        fields.add("shopping");
+        fields.add("consult");
+        fields.add("wechat");
+        fields.add("wechat_login_count");
+        fields.add("attribution_wechat_login_30d_count");
+        fields.add("wechat_login_cost");
+        fields.add("attribution_wechat_login_30d_cost");
+        fields.add("wechat_first_pay_count");
+        fields.add("attribution_wechat_first_pay_30d_count");
+        fields.add("wechat_first_pay_cost");
+        fields.add("attribution_wechat_first_pay_30d_cost");
+        fields.add("wechat_first_pay_rate");
+        fields.add("attribution_wechat_first_pay_30d_rate");
+        fields.add("wechat_pay_amount");
+        fields.add("attribution_wechat_pay_30d_amount");
+        fields.add("attribution_wechat_pay_30d_roi");
+        fields.add("phone_connect");
+        fields.add("phone_confirm");
+        fields.add("phone_effective");
+        fields.add("consult_effective");
+        fields.add("coupon");
+        fields.add("coupon_single_page");
+        fields.add("redirect_to_shop");
+        fields.add("poi_address_click");
+        fields.add("poi_collect");
+        fields.add("luban_order_cnt");
+        fields.add("luban_order_stat_amount");
+        fields.add("luban_order_roi");
+        fields.add("luban_live_enter_cnt");
+        fields.add("live_watch_one_minute_count");
+        fields.add("luban_live_follow_cnt");
+        fields.add("live_fans_club_join_cnt");
+        fields.add("luban_live_comment_cnt");
+        fields.add("luban_live_share_cnt");
+        fields.add("luban_live_gift_cnt");
+        fields.add("luban_live_gift_amount");
+        fields.add("luban_live_slidecart_click_cnt");
+        fields.add("luban_live_click_product_cnt");
+        fields.add("luban_live_pay_order_count");
+        fields.add("luban_live_pay_order_stat_cost");
+        //fields.add("live_pay_order_cost_per_order");
+        fields.add("total_play");
+        fields.add("valid_play");
+        fields.add("valid_play_cost");
+        fields.add("valid_play_rate");
+        fields.add("play_25_feed_break");
+        fields.add("play_50_feed_break");
+        fields.add("play_100_feed_break");
+        //fields.add("play_25_feed_break_rate");
+        //fields.add("play_50_feed_break_rate");
+        //fields.add("play_100_feed_break_rate");
+        //fields.add("play_75_feed_break_rate");
+        fields.add("average_play_time_per_play");
+        //fields.add("play_over");
+        fields.add("play_over_rate");
+        fields.add("wifi_play_rate");
+        fields.add("wifi_play");
+        fields.add("card_show");
+        //fields.add("play_duration_2s_rate");
+        //fields.add("play_duration_3s_rate");
+        //fields.add("play_duration_5s_rate");
+        //fields.add("play_duration_10s_rate");
+        fields.add("advanced_creative_phone_click");
+        fields.add("advanced_creative_counsel_click");
+        fields.add("advanced_creative_form_click");
+        fields.add("advanced_creative_coupon_addition");
+        fields.add("advanced_creative_form_submit");
+        fields.add("share");
+        fields.add("comment");
+        fields.add("like");
+        fields.add("follow");
+        //fields.add("dislike");
+        //fields.add("report");
+        fields.add("message_action");
+        fields.add("home_visited");
+        fields.add("ies_challenge_click");
+        fields.add("ies_music_click");
+        fields.add("location_click");
+        fields.add("click_download");
+        fields.add("click_call_dy");
+        fields.add("click_shopwindow");
+        fields.add("click_website");
+        fields.add("click_landing_page");
+        //fields.add("interact_per_cost");
+        //fields.add("convert_show_rate");
+        //fields.add("cpc");
+        //fields.add("cpm");
+        //fields.add("cpa");
+        fields.add("submit_certification_count");
+        fields.add("approval_count");
+        fields.add("first_order_count");
+        fields.add("first_rental_order_count");
+        fields.add("commute_first_pay_count");
+        fields.add("live_component_click_count");
+        fields.add("live_component_click_cost");
+        fields.add("live_component_click_rate");
+        fields.add("stat_pay_amount");
+        return fields;
+
+    }
+
+
+
+
+}

+ 203 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/ByteDanceNewMaterialReport.java

@@ -0,0 +1,203 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+public class ByteDanceNewMaterialReport implements Serializable {
+    private Long advertiserId;
+    /**
+     * 项目ID
+     */
+
+    private Long cdpProjectId;
+    /**
+     * 项目名称
+     */
+
+    private String cdpProjectName;
+    /**
+     * 广告ID
+     */
+
+    private Long promotionId;
+    /**
+     * 广告名称
+     */
+    private String promotionName;
+    private String adPlatformMaterialName;
+    private BigDecimal statCost;
+    private String materialId;
+    private Integer statDatetime;
+    //private Integer promotionId;
+    //private Integer projectId;
+    private Integer showCnt;
+    private BigDecimal cpmPlatform;
+    private Integer clickCnt;
+    private BigDecimal ctr;
+    private BigDecimal cpcPlatform;
+    private Integer convertCnt;
+    private BigDecimal conversionCost;
+    private BigDecimal conversionRate;
+    private Integer deepConvertCnt;
+    private BigDecimal deepConvertCost;
+    private BigDecimal deepConvertRate;
+    private Integer clickStartCnt;
+    private BigDecimal clickStartCost;
+    private BigDecimal clickStartRate;
+    private Integer downloadFinishCnt;
+    private BigDecimal downloadFinishCost;
+    private BigDecimal downloadFinishRate;
+    private Integer installFinishCnt;
+    private BigDecimal installFinishCost;
+    private BigDecimal installFinishRate;
+    private Integer active;
+    private BigDecimal activeCost;
+    private BigDecimal activeRate;
+    private Integer activeRegister;
+    private BigDecimal activeRegisterCost;
+    private BigDecimal activeRegisterRate;
+    private Integer gameAddiction;
+    private BigDecimal gameAddictionCost;
+    private BigDecimal gameAddictionRate;
+    private Integer attributionNextDayOpenCnt;
+    private BigDecimal attributionNextDayOpenCost;
+    private BigDecimal attributionNextDayOpenRate;
+    private Integer nextDayOpen;
+    private Integer activePay;
+    private BigDecimal activePayCost;
+    private BigDecimal activePayRate;
+    private Integer gamePayCount;
+    private BigDecimal gamePayCost;
+    private Integer attributionGamePay7dCount;
+    private BigDecimal attributionGamePay7dCost;
+    //private Integer attributionGamePay7dPerCount;
+    private Integer inAppUv;
+    private Integer inAppDetailUv;
+    private Integer inAppCart;
+    private Integer inAppPay;
+    private Integer inAppOrder;
+    private BigDecimal attributionGameInAppLtv1day;
+    private BigDecimal attributionGameInAppLtv2days;
+    private BigDecimal attributionGameInAppLtv3days;
+    private BigDecimal attributionGameInAppLtv4days;
+    private BigDecimal attributionGameInAppLtv5days;
+    private BigDecimal attributionGameInAppLtv6days;
+    private BigDecimal attributionGameInAppLtv7days;
+    private BigDecimal attributionGameInAppLtv8days;
+    private BigDecimal attributionGameInAppRoi1day;
+    private BigDecimal attributionGameInAppRoi2days;
+    private BigDecimal attributionGameInAppRoi3days;
+    private BigDecimal attributionGameInAppRoi4days;
+    private BigDecimal attributionGameInAppRoi5days;
+    private BigDecimal attributionGameInAppRoi6days;
+    private BigDecimal attributionGameInAppRoi7days;
+    private BigDecimal attributionGameInAppRoi8days;
+    //private Integer attributionDayActivePayCount;
+    //private Integer attributionDayActivePayCost;
+    //private Integer attributionDayActivePayRate;
+    private Integer activePayIntraDayCount;
+    private BigDecimal activePayIntraDayCost;
+    private BigDecimal activePayIntraDayRate;
+    private String deliveryMode;
+
+
+    public static String getParamsFields() {
+        StringBuilder stringBuilder = new StringBuilder();
+        stringBuilder.append("[");
+        stringBuilder.append("\"stat_cost\"").append(",");
+//        stringBuilder.append("\"material_id\"").append(",");
+//        stringBuilder.append("\"stat_datetime\"").append(",");
+//        stringBuilder.append("\"promotion_id\"");
+//        stringBuilder.append("\"project_id\"");
+        stringBuilder.append("\"show_cnt\"").append(",");
+        stringBuilder.append("\"cpm_platform\"").append(",");
+        stringBuilder.append("\"click_cnt\"").append(",");
+        stringBuilder.append("\"ctr\"").append(",");
+        stringBuilder.append("\"cpc_platform\"").append(",");
+        stringBuilder.append("\"convert_cnt\"").append(",");
+        stringBuilder.append("\"conversion_cost\"").append(",");
+        stringBuilder.append("\"conversion_rate\"").append(",");
+        stringBuilder.append("\"deep_convert_cnt\"").append(",");
+
+        stringBuilder.append("\"deep_convert_cost\"").append(",");
+        stringBuilder.append("\"deep_convert_rate\"").append(",");
+        stringBuilder.append("\"click_start_cnt\"").append(",");
+
+        stringBuilder.append("\"click_start_cost\"").append(",");
+        stringBuilder.append("\"click_start_rate\"").append(",");
+        stringBuilder.append("\"download_finish_cnt\"").append(",");
+        stringBuilder.append("\"download_finish_cost\"").append(",");
+        stringBuilder.append("\"download_finish_rate\"").append(",");
+
+        stringBuilder.append("\"install_finish_cnt\"").append(",");
+        stringBuilder.append("\"install_finish_cost\"").append(",");
+        stringBuilder.append("\"install_finish_rate\"").append(",");
+        stringBuilder.append("\"active\"").append(",");
+        stringBuilder.append("\"active_cost\"").append(",");
+        stringBuilder.append("\"active_rate\"").append(",");
+
+
+        stringBuilder.append("\"active_register\"").append(",");
+        stringBuilder.append("\"active_register_cost\"").append(",");
+        stringBuilder.append("\"active_register_rate\"").append(",");
+        stringBuilder.append("\"game_addiction\"").append(",");
+        stringBuilder.append("\"game_addiction_cost\"").append(",");
+        stringBuilder.append("\"game_addiction_rate\"").append(",");
+
+        stringBuilder.append("\"attribution_next_day_open_cnt\"").append(",");
+        stringBuilder.append("\"attribution_next_day_open_cost\"").append(",");
+        stringBuilder.append("\"attribution_next_day_open_rate\"").append(",");
+        stringBuilder.append("\"next_day_open\"").append(",");
+        stringBuilder.append("\"active_pay\"").append(",");
+        stringBuilder.append("\"active_pay_cost\"").append(",");
+
+        stringBuilder.append("\"active_pay_rate\"").append(",");
+        stringBuilder.append("\"game_pay_count\"").append(",");
+        stringBuilder.append("\"game_pay_cost\"").append(",");
+
+        stringBuilder.append("\"attribution_game_pay_7d_count\"").append(",");
+        stringBuilder.append("\"attribution_game_pay_7d_cost\"").append(",");
+
+//         stringBuilder.append("\"attribution_game_pay_7d_per_count\"").append(",");
+
+        stringBuilder.append("\"in_app_uv\"").append(",");
+        stringBuilder.append("\"in_app_detail_uv\"").append(",");
+        stringBuilder.append("\"in_app_cart\"").append(",");
+        stringBuilder.append("\"in_app_pay\"").append(",");
+        stringBuilder.append("\"in_app_order\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_ltv_1day\"").append(",");
+
+        stringBuilder.append("\"attribution_game_in_app_ltv_2days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_ltv_3days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_ltv_4days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_ltv_5days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_ltv_6days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_ltv_7days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_ltv_8days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_roi_1day\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_roi_2days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_roi_3days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_roi_4days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_roi_5days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_roi_6days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_roi_7days\"").append(",");
+        stringBuilder.append("\"attribution_game_in_app_roi_8days\"").append(",");
+
+//        stringBuilder.append("\"attribution_day_active_pay_count\"").append(",");
+//        stringBuilder.append("\"attribution_day_active_pay_cost\"").append(",");
+//        stringBuilder.append("\"attribution_day_active_pay_rate\"").append(",");
+
+        stringBuilder.append("\"active_pay_intra_day_count\"").append(",");
+        stringBuilder.append("\"active_pay_intra_day_cost\"").append(",");
+        stringBuilder.append("\"active_pay_intra_day_rate\"");
+//        stringBuilder.append("\"delivery_mode\"");
+
+        stringBuilder.append("]");
+        return stringBuilder.toString();
+    }
+
+
+}

+ 373 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/ByteDanceV3AdvertiserReportDTO.java

@@ -0,0 +1,373 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Data
+public class ByteDanceV3AdvertiserReportDTO {
+
+    private static final long serialVersionUID = 3674054148513217865L;
+
+    private Long advertiserId;
+    private String dimensions;
+    private String metrics;
+    private String startTime;
+    private String endTime;
+    private Integer pageSize;
+    private Integer page;
+    private String orderBy;
+    private String filters;
+    private String dataTopic;
+
+    public ByteDanceV3AdvertiserReportDTO() {
+    }
+
+    private static final ObjectMapper mapper = new ObjectMapper();
+
+    public ByteDanceV3AdvertiserReportDTO(Long advertiserId, List<String> dimensions, String dataTopic, String startTime, String endTime, Integer pageSize) {
+        try {
+            this.advertiserId = advertiserId;
+            this.dimensions = mapper.writeValueAsString(dimensions);
+
+            this.dataTopic = dataTopic;
+            if ("MATERIAL_DATA".equals(dataTopic)) {
+                this.metrics = mapper.writeValueAsString(getParamsMaterialFields());
+            }else{
+                this.metrics = mapper.writeValueAsString(getParamsFields());
+            }
+
+            this.startTime = startTime;
+            this.endTime = endTime;
+            this.pageSize = pageSize;
+            List<JSONObject> orderBy = new ArrayList<>();
+            JSONObject ord = new JSONObject();
+            ord.put("field", "stat_cost");
+            ord.put("type", "ASC");
+            orderBy.add(ord);
+            this.orderBy = mapper.writeValueAsString(orderBy);
+
+            List<JSONObject> filters = new ArrayList<>();
+            JSONObject filter = new JSONObject();
+            filter.put("field", "stat_cost");
+            filter.put("type", 3);
+            filter.put("operator", 4);
+            filter.put("values", Arrays.asList("0"));
+            filters.add(filter);
+            this.filters = mapper.writeValueAsString(filters);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static List<String> getParamsFields() {
+        List<String> fields = new ArrayList<>();
+        fields.add("stat_cost");
+        fields.add("show_cnt");
+        fields.add("cpm_platform");
+        fields.add("click_cnt");
+        fields.add("ctr");
+        fields.add("cpc_platform");
+        fields.add("attribution_convert_cnt");
+        fields.add("attribution_convert_cost");
+        fields.add("attribution_conversion_rate");
+        fields.add("attribution_deep_convert_cnt");
+        fields.add("attribution_deep_convert_cost");
+        fields.add("attribution_deep_convert_rate");
+        fields.add("convert_cnt");
+        fields.add("conversion_cost");
+        fields.add("conversion_rate");
+        fields.add("deep_convert_cnt");
+        fields.add("deep_convert_cost");
+        fields.add("deep_convert_rate");
+        fields.add("click_start_cnt");
+        fields.add("click_start_cost");
+        fields.add("click_start_rate");
+        fields.add("download_finish_cnt");
+        fields.add("download_finish_cost");
+        fields.add("download_finish_rate");
+        fields.add("install_finish_cnt");
+        fields.add("install_finish_cost");
+        fields.add("install_finish_rate");
+        fields.add("active");
+        fields.add("active_cost");
+        fields.add("active_rate");
+        fields.add("active_register");
+        fields.add("active_register_cost");
+        fields.add("active_register_rate");
+        fields.add("game_addiction");
+        fields.add("game_addiction_cost");
+        fields.add("game_addiction_rate");
+        fields.add("attribution_next_day_open_cnt");
+        fields.add("attribution_next_day_open_cost");
+        fields.add("attribution_next_day_open_rate");
+        fields.add("next_day_open");
+        fields.add("active_pay");
+        fields.add("active_pay_cost");
+        fields.add("active_pay_rate");
+        fields.add("game_pay_count");
+        fields.add("game_pay_cost");
+        fields.add("attribution_game_pay_7d_count");
+        fields.add("attribution_game_pay_7d_cost");
+        fields.add("attribution_active_pay_7d_per_count");
+        fields.add("in_app_uv");
+        fields.add("in_app_detail_uv");
+        fields.add("in_app_cart");
+        fields.add("in_app_pay");
+        fields.add("in_app_order");
+        fields.add("attribution_retention_2d_cnt");
+        fields.add("attribution_retention_2d_cost");
+        fields.add("attribution_retention_2d_rate");
+        fields.add("attribution_retention_3d_cnt");
+        fields.add("attribution_retention_3d_cost");
+        fields.add("attribution_retention_3d_rate");
+        fields.add("attribution_retention_4d_cnt");
+        fields.add("attribution_retention_4d_cost");
+        fields.add("attribution_retention_4d_rate");
+        fields.add("attribution_retention_5d_cnt");
+        fields.add("attribution_retention_5d_cost");
+        fields.add("attribution_retention_5d_rate");
+        fields.add("attribution_retention_6d_cnt");
+        fields.add("attribution_retention_6d_cost");
+        fields.add("attribution_retention_6d_rate");
+        fields.add("attribution_retention_7d_cnt");
+        fields.add("attribution_retention_7d_cost");
+        fields.add("attribution_retention_7d_rate");
+        fields.add("attribution_retention_7d_sum_cnt");
+        fields.add("attribution_retention_7d_total_cost");
+        fields.add("attribution_billing_game_pay_7d_count");
+        fields.add("attribution_billing_game_pay_7d_cost");
+        fields.add("attribution_billing_game_in_app_ltv_1day");
+        fields.add("attribution_billing_game_in_app_ltv_2days");
+        fields.add("attribution_billing_game_in_app_ltv_3days");
+        fields.add("attribution_billing_game_in_app_ltv_4days");
+        fields.add("attribution_billing_game_in_app_ltv_5days");
+        fields.add("attribution_billing_game_in_app_ltv_6days");
+        fields.add("attribution_billing_game_in_app_ltv_7days");
+        fields.add("attribution_billing_game_in_app_roi_1day");
+        fields.add("attribution_billing_game_in_app_roi_2days");
+        fields.add("attribution_billing_game_in_app_roi_3days");
+        fields.add("attribution_billing_game_in_app_roi_4days");
+        fields.add("attribution_billing_game_in_app_roi_5days");
+        fields.add("attribution_billing_game_in_app_roi_6days");
+        fields.add("attribution_billing_game_in_app_roi_7days");
+        fields.add("attribution_active_pay");
+        fields.add("attribution_active_pay_cost");
+        fields.add("attribution_active_pay_rate");
+        fields.add("stat_pay_amount");
+        fields.add("pay_amount_roi");
+        fields.add("phone");
+        fields.add("form");
+        fields.add("form_submit");
+        fields.add("map");
+        fields.add("button");
+        fields.add("view");
+        fields.add("download_start");
+        fields.add("qq");
+        fields.add("lottery");
+        fields.add("vote");
+        fields.add("message");
+        fields.add("redirect");
+        fields.add("shopping");
+        fields.add("consult");
+        fields.add("consult_effective");
+        fields.add("phone_confirm");
+        fields.add("phone_connect");
+        fields.add("phone_effective");
+        fields.add("coupon");
+        fields.add("coupon_single_page");
+        fields.add("redirect_to_shop");
+        fields.add("poi_address_click");
+        fields.add("poi_collect");
+        fields.add("customer_effective");
+        fields.add("attribution_customer_effective");
+        fields.add("attribution_customer_effective_cost");
+        fields.add("attribution_clue_pay_succeed");
+        fields.add("attribution_clue_pay_succeed_cost");
+        fields.add("attribution_clue_interflow");
+        fields.add("attribution_clue_interflow_cost");
+        fields.add("attribution_clue_high_intention");
+        fields.add("attribution_clue_high_intention_cost");
+        fields.add("attribution_clue_confirm");
+        fields.add("attribution_clue_confirm_cost");
+        fields.add("consult_clue");
+        fields.add("attribution_work_wechat_added_count");
+        fields.add("attribution_work_wechat_unfriend_count");
+        fields.add("attribution_game_in_app_ltv_1day");
+        fields.add("attribution_game_in_app_ltv_2days");
+        fields.add("attribution_game_in_app_ltv_3days");
+        fields.add("attribution_game_in_app_ltv_4days");
+        fields.add("attribution_game_in_app_ltv_5days");
+        fields.add("attribution_game_in_app_ltv_6days");
+        fields.add("attribution_game_in_app_ltv_7days");
+        fields.add("attribution_game_in_app_ltv_8days");
+        fields.add("attribution_game_in_app_roi_1day");
+        fields.add("attribution_game_in_app_roi_2days");
+        fields.add("attribution_game_in_app_roi_3days");
+        fields.add("attribution_game_in_app_roi_4days");
+        fields.add("attribution_game_in_app_roi_5days");
+        fields.add("attribution_game_in_app_roi_6days");
+        fields.add("attribution_game_in_app_roi_7days");
+        fields.add("attribution_game_in_app_roi_8days");
+        fields.add("attribution_day_active_pay_count");
+        fields.add("attribution_day_active_pay_cost");
+        fields.add("attribution_day_active_pay_rate");
+        fields.add("active_pay_intra_day_count");
+        fields.add("active_pay_intra_day_cost");
+        fields.add("active_pay_intra_day_rate");
+        fields.add("attribution_micro_game_0d_ltv");
+        fields.add("attribution_micro_game_3d_ltv");
+        fields.add("attribution_micro_game_7d_ltv");
+        fields.add("attribution_micro_game_0d_roi");
+        fields.add("attribution_micro_game_3d_roi");
+        fields.add("attribution_micro_game_7d_roi");
+        fields.add("loan_completion");
+        fields.add("loan_completion_cost");
+        fields.add("loan_completion_rate");
+        fields.add("pre_loan_credit");
+        fields.add("pre_loan_credit_cost");
+        fields.add("loan_credit");
+        fields.add("loan_credit_cost");
+        fields.add("loan_credit_rate");
+        fields.add("loan");
+        fields.add("loan_cost");
+        fields.add("loan_rate");
+        fields.add("premium_payment_count");
+        fields.add("premium_payment_cost");
+        fields.add("insurance_lt_roi");
+        fields.add("bankcard_information_count");
+        fields.add("personal_information_count");
+        fields.add("certification_information_count");
+        fields.add("open_account_count");
+        fields.add("first_class_count");
+        fields.add("second_class_count");
+        fields.add("unfollow_in_wechat_count");
+        fields.add("in_wechat_pay_count");
+        fields.add("attribution_work_wechat_dialog_count");
+        fields.add("low_loan_credit_count");
+        fields.add("high_loan_credit_count");
+        fields.add("withdraw_m2_count");
+        fields.add("attribution_conversion_class_count");
+        fields.add("in_app_order_gmv");
+        fields.add("in_app_order_roi");
+        fields.add("in_app_pay_gmv");
+        fields.add("in_app_pay_roi");
+        fields.add("total_play");
+        fields.add("play_duration_3s");
+        fields.add("valid_play");
+        fields.add("valid_play_cost");
+        fields.add("valid_play_rate");
+        fields.add("valid_play_of_mille");
+        fields.add("valid_play_cost_of_mille");
+        fields.add("play_25_feed_break");
+        fields.add("play_50_feed_break");
+        fields.add("play_75_feed_break");
+        fields.add("play_99_feed_break");
+        fields.add("average_play_time_per_play");
+        fields.add("play_over_rate");
+        fields.add("wifi_play_rate");
+        fields.add("card_show");
+        fields.add("dy_like");
+        fields.add("dy_comment");
+        fields.add("dy_share");
+        fields.add("ad_dislike_cnt");
+        fields.add("ad_report_cnt");
+        fields.add("ies_challenge_click");
+        fields.add("ies_music_click");
+        fields.add("location_click");
+        fields.add("dy_home_visited");
+        fields.add("dy_follow");
+        fields.add("message_action");
+        fields.add("click_landing_page");
+        fields.add("click_shopwindow");
+        fields.add("click_website");
+        fields.add("click_call_dy");
+        fields.add("click_download");
+        fields.add("luban_live_enter_cnt");
+        fields.add("live_watch_one_minute_count");
+        fields.add("luban_live_follow_cnt");
+        fields.add("luban_live_share_cnt");
+        fields.add("luban_live_comment_cnt");
+        fields.add("live_component_click_count");
+        fields.add("live_component_click_cost");
+        fields.add("live_component_click_rate");
+        return fields;
+    }
+
+
+    public static List<String> getParamsMaterialFields() {
+        List<String> fields = new ArrayList<>();
+        fields.add("stat_cost");
+        fields.add("cpm_platform");
+        fields.add("show_cnt");
+        fields.add("click_cnt");
+        fields.add("ctr");
+        fields.add("cpc_platform");
+        fields.add("convert_cnt");
+        fields.add("conversion_cost");
+        fields.add("conversion_rate");
+        fields.add("deep_convert_cnt");
+        fields.add("deep_convert_cost");
+        fields.add("deep_convert_rate");
+        fields.add("click_start_cnt");
+        fields.add("click_start_cost");
+        fields.add("click_start_rate");
+        fields.add("download_finish_cnt");
+        fields.add("download_finish_cost");
+        fields.add("download_finish_rate");
+        fields.add("install_finish_cnt");
+        fields.add("install_finish_cost");
+        fields.add("install_finish_rate");
+        fields.add("active");
+        fields.add("active_cost");
+        fields.add("active_rate");
+        fields.add("active_register");
+        fields.add("active_register_cost");
+        fields.add("active_register_rate");
+        fields.add("game_addiction");
+        fields.add("game_addiction_cost");
+        fields.add("game_addiction_rate");
+        fields.add("attribution_next_day_open_cnt");
+        fields.add("attribution_next_day_open_cost");
+        fields.add("attribution_next_day_open_rate");
+        fields.add("next_day_open");
+        fields.add("active_pay");
+        fields.add("active_pay_cost");
+        fields.add("active_pay_rate");
+        fields.add("game_pay_count");
+        fields.add("game_pay_cost");
+        fields.add("attribution_game_pay_7d_count");
+        fields.add("attribution_game_pay_7d_cost");
+        fields.add("in_app_uv");
+        fields.add("in_app_detail_uv");
+        fields.add("in_app_cart");
+        fields.add("in_app_pay");
+        fields.add("in_app_order");
+        fields.add("attribution_game_in_app_ltv_1day");
+        fields.add("attribution_game_in_app_ltv_2days");
+        fields.add("attribution_game_in_app_ltv_3days");
+        fields.add("attribution_game_in_app_ltv_4days");
+        fields.add("attribution_game_in_app_ltv_5days");
+        fields.add("attribution_game_in_app_ltv_6days");
+        fields.add("attribution_game_in_app_ltv_7days");
+        fields.add("attribution_game_in_app_ltv_8days");
+        fields.add("attribution_game_in_app_roi_1day");
+        fields.add("attribution_game_in_app_roi_2days");
+        fields.add("attribution_game_in_app_roi_3days");
+        fields.add("attribution_game_in_app_roi_4days");
+        fields.add("attribution_game_in_app_roi_5days");
+        fields.add("attribution_game_in_app_roi_6days");
+        fields.add("attribution_game_in_app_roi_7days");
+        fields.add("attribution_game_in_app_roi_8days");
+        fields.add("active_pay_intra_day_count");
+        fields.add("active_pay_intra_day_cost");
+        fields.add("active_pay_intra_day_rate");
+        return fields;
+    }
+
+}

+ 105 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAdGet.java

@@ -0,0 +1,105 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class BytedanceAdGet {
+    private Long id;
+
+    private Long accountId;
+
+    private String name;
+
+    private Long campaignId;
+
+    private String operation;
+
+    private String planModifyTime;
+
+    private String deliveryRange;
+
+    private String unionVideoType;
+
+    private String deepBidType;
+
+    private BigDecimal deepCpaBid;
+
+    private String adModifyTime;
+
+    private String adCreateTime;
+
+    private String budgetMode;
+
+    private BigDecimal budget;
+
+    private String toutiaoStatus;
+
+    private String optStatus;
+
+    private String startTime;
+
+    private String endTime;
+
+    private BigDecimal bid;
+
+    private String pricing;
+
+    private String scheduleType;
+
+    private String scheduleTime;
+
+    private String flowControlMode;
+
+    private String downloadType;
+
+    private String externalUrl;
+
+    private String appType;
+
+    private String auditRejectReason;
+
+    private BigDecimal cpaBid;
+
+    private Integer cpaSkipFirstPhrase;
+
+    private Long convertId;
+
+    private String hideIfConverted;
+
+    private Integer hideIfExists;
+
+    private String modifyTime;
+
+    private String gender;
+
+    private String platform;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    private Integer planStatus;
+
+    private String convertedTimeDuration;
+
+    private BigDecimal lubanRoiGoal;
+
+    private BigDecimal roiGoal;
+
+    private String inventoryType;
+
+    private Long audiencePackageId;
+
+    private String openUrl;
+
+    private String toutiaoPackage;
+
+    private String audience;
+
+    private String downloadUrl;
+
+
+}

+ 329 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAdReportDaily.java

@@ -0,0 +1,329 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BytedanceAdReportDaily {
+    private Long advertiserId;
+
+    private Long campaignId;
+
+    private Long adId;
+
+    private String statDatetime;
+
+    private String campaignName;
+
+    private String adName;
+
+    private BigDecimal cost;
+
+    private Long show;
+
+    private BigDecimal avgShowCost;
+
+    private Long click;
+
+    private BigDecimal avgClickCost;
+
+    private BigDecimal ctr;
+
+    private Long convert;
+
+    private BigDecimal convertCost;
+
+    private BigDecimal convertRate;
+
+    private Long deepConvert;
+
+    private BigDecimal deepConvertCost;
+
+    private BigDecimal deepConvertRate;
+
+    private Long attributionConvert;
+
+    private BigDecimal attributionConvertCost;
+
+    private Long attributionDeepConvert;
+
+    private BigDecimal attributionDeepConvertCost;
+
+    private Long downloadStart;
+
+    private BigDecimal downloadStartCost;
+
+    private BigDecimal downloadStartRate;
+
+    private Long downloadFinish;
+
+    private BigDecimal downloadFinishCost;
+
+    private BigDecimal downloadFinishRate;
+
+    private Long clickInstall;
+
+    private Long installFinish;
+
+    private BigDecimal installFinishCost;
+
+    private BigDecimal installFinishRate;
+
+    private Long active;
+
+    private BigDecimal activeCost;
+
+    private BigDecimal activeRate;
+
+    private BigDecimal register;
+
+    private BigDecimal activeRegisterCost;
+
+    private Float activeRegisterRate;
+
+    private Long nextDayOpen;
+
+    private BigDecimal nextDayOpenCost;
+
+    private BigDecimal nextDayOpenRate;
+
+    private Long attributionNextDayOpenCnt;
+
+    private BigDecimal attributionNextDayOpenCost;
+
+    private BigDecimal attributionNextDayOpenRate;
+
+    private Long gameAddiction;
+
+    private BigDecimal gameAddictionCost;
+
+    private BigDecimal gameAddictionRate;
+
+    private Long payCount;
+
+    private BigDecimal activePayCost;
+
+    private BigDecimal activePayRate;
+
+    private Long loanCompletion;
+
+    private BigDecimal loanCompletionCost;
+
+    private BigDecimal loanCompletionRate;
+
+    private Long preLoanCredit;
+
+    private BigDecimal preLoanCreditCost;
+
+    private Long loanCredit;
+
+    private BigDecimal loanCreditCost;
+
+    private BigDecimal loanCreditRate;
+
+    private Long inAppUv;
+
+    private Long inAppDetailUv;
+
+    private Long inAppCart;
+
+    private Long inAppPay;
+
+    private Long inAppOrder;
+
+    private Long attributionGamePay7dCount;
+
+    private BigDecimal attributionGamePay7dCost;
+
+    private Long attributionActivePay7dPerCount;
+
+    private BigDecimal gamePayCost;
+
+    private Long gamePayCount;
+
+    private Long phone;
+
+    private Long form;
+
+    private Long mapSearch;
+
+    private Long button;
+
+    private Long view;
+
+    private Long download;
+
+    private Long qq;
+
+    private Long lottery;
+
+    private Long vote;
+
+    private Long message;
+
+    private Long redirect;
+
+    private Long shopping;
+
+    private Long consult;
+
+    private Long wechat;
+
+    private Long phoneConfirm;
+
+    private Long phoneConnect;
+
+    private Long consultEffective;
+
+    private Long coupon;
+
+    private Long couponSinglePage;
+
+    private Long redirectToShop;
+
+    private Long poiCollect;
+
+    private Long poiAddressClick;
+
+    private Long lubanOrderCnt;
+
+    private BigDecimal lubanOrderStatAmount;
+
+    private BigDecimal lubanOrderRoi;
+
+    private Long lubanLiveEnterCnt;
+
+    private Long liveWatchOneMinuteCount;
+
+    private Long lubanLiveFollowCnt;
+
+    private Long liveFansClubJoinCnt;
+
+    private Long lubanLiveCommentCnt;
+
+    private Long lubanLiveShareCnt;
+
+    private Long lubanLiveGiftCnt;
+
+    private BigDecimal lubanLiveGiftAmount;
+
+    private Long lubanLiveSlidecartClickCnt;
+
+    private Long lubanLiveClickProductCnt;
+
+    private Long lubanLivePayOrderCount;
+
+    private BigDecimal lubanLivePayOrderStatCost;
+
+    private Long liveComponentClickCount;
+
+    private BigDecimal liveComponentClickCost;
+
+    private BigDecimal liveComponentClickRate;
+
+    private Long wechatLoginCount;
+
+    private Long attributionWechatLogin30dCount;
+
+    private BigDecimal wechatLoginCost;
+
+    private BigDecimal attributionWechatLogin30dCost;
+
+    private Long wechatFirstPayCount;
+
+    private Long attributionWechatFirstPay30dCount;
+
+    private BigDecimal wechatFirstPayCost;
+
+    private BigDecimal attributionWechatFirstPay30dCost;
+
+    private BigDecimal wechatFirstPayRate;
+
+    private BigDecimal attributionWechatFirstPay30dRate;
+
+    private BigDecimal wechatPayAmount;
+
+    private BigDecimal attributionWechatPay30dAmount;
+
+    private BigDecimal attributionWechatPay30dRoi;
+
+    private Long phoneEffective;
+
+    private Long totalPlay;
+
+    private Long validPlay;
+
+    private BigDecimal validPlayCost;
+
+    private BigDecimal validPlayRate;
+
+    private Long play25FeedBreak;
+
+    private Long play50FeedBreak;
+
+    private Long play75FeedBreak;
+
+    private Long play100FeedBreak;
+
+    private BigDecimal averagePlayTimePerPlay;
+
+    private BigDecimal playOverRate;
+
+    private BigDecimal wifiPlayRate;
+
+    private Long wifiPlay;
+
+    private Long playDurationSum;
+
+    private Long advancedCreativePhoneClick;
+
+    private Long advancedCreativeCounselClick;
+
+    private Long advancedCreativeFormClick;
+
+    private Long advancedCreativeCouponAddition;
+
+    private Long advancedCreativeFormSubmit;
+
+    private Long cardShow;
+
+    private Long share;
+
+    private Long comment;
+
+    private Long like;
+
+    private Long follow;
+
+    private Long homeVisited;
+
+    private Long iesChallengeClick;
+
+    private Long iesMusicClick;
+
+    private Long locationClick;
+
+    private Long messageAction;
+
+    private Long clickLandingPage;
+
+    private Long clickShopwindow;
+
+    private Long clickWebsite;
+
+    private Long clickDownload;
+
+    private Long clickCallDy;
+
+    private Long submitCertificationCount;
+
+    private Long approvalCount;
+
+    private Long firstRentalOrderCount;
+
+    private Long firstOrderCount;
+
+    private Long commuteFirstPayCount;
+
+}

+ 332 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAdReportHourly.java

@@ -0,0 +1,332 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BytedanceAdReportHourly {
+    private Long advertiserId;
+
+    private Long campaignId;
+
+    private Long adId;
+
+    private String statDatetime;
+
+    private Integer hour;
+
+    private String campaignName;
+
+    private String adName;
+
+    private BigDecimal cost;
+
+    private Long show;
+
+    private BigDecimal avgShowCost;
+
+    private Long click;
+
+    private BigDecimal avgClickCost;
+
+    private BigDecimal ctr;
+
+    private Long convert;
+
+    private BigDecimal convertCost;
+
+    private BigDecimal convertRate;
+
+    private Long deepConvert;
+
+    private BigDecimal deepConvertCost;
+
+    private BigDecimal deepConvertRate;
+
+    private Long attributionConvert;
+
+    private BigDecimal attributionConvertCost;
+
+    private Long attributionDeepConvert;
+
+    private BigDecimal attributionDeepConvertCost;
+
+    private Long downloadStart;
+
+    private BigDecimal downloadStartCost;
+
+    private BigDecimal downloadStartRate;
+
+    private Long downloadFinish;
+
+    private BigDecimal downloadFinishCost;
+
+    private BigDecimal downloadFinishRate;
+
+    private Long clickInstall;
+
+    private Long installFinish;
+
+    private BigDecimal installFinishCost;
+
+    private BigDecimal installFinishRate;
+
+    private Long active;
+
+    private BigDecimal activeCost;
+
+    private BigDecimal activeRate;
+
+    private BigDecimal register;
+
+    private BigDecimal activeRegisterCost;
+
+    private Float activeRegisterRate;
+
+    private Long nextDayOpen;
+
+    private BigDecimal nextDayOpenCost;
+
+    private BigDecimal nextDayOpenRate;
+
+    private Long attributionNextDayOpenCnt;
+
+    private BigDecimal attributionNextDayOpenCost;
+
+    private BigDecimal attributionNextDayOpenRate;
+
+    private Long gameAddiction;
+
+    private BigDecimal gameAddictionCost;
+
+    private BigDecimal gameAddictionRate;
+
+    private Long payCount;
+
+    private BigDecimal activePayCost;
+
+    private BigDecimal activePayRate;
+
+    private Long loanCompletion;
+
+    private BigDecimal loanCompletionCost;
+
+    private BigDecimal loanCompletionRate;
+
+    private Long preLoanCredit;
+
+    private BigDecimal preLoanCreditCost;
+
+    private Long loanCredit;
+
+    private BigDecimal loanCreditCost;
+
+    private BigDecimal loanCreditRate;
+
+    private Long inAppUv;
+
+    private Long inAppDetailUv;
+
+    private Long inAppCart;
+
+    private Long inAppPay;
+
+    private Long inAppOrder;
+
+    private Long attributionGamePay7dCount;
+
+    private BigDecimal attributionGamePay7dCost;
+
+    private Long attributionActivePay7dPerCount;
+
+    private BigDecimal gamePayCost;
+
+    private Long gamePayCount;
+
+    private Long phone;
+
+    private Long form;
+
+    private Long mapSearch;
+
+    private Long button;
+
+    private Long view;
+
+    private Long download;
+
+    private Long qq;
+
+    private Long lottery;
+
+    private Long vote;
+
+    private Long message;
+
+    private Long redirect;
+
+    private Long shopping;
+
+    private Long consult;
+
+    private Long wechat;
+
+    private Long phoneConfirm;
+
+    private Long phoneConnect;
+
+    private Long consultEffective;
+
+    private Long coupon;
+
+    private Long couponSinglePage;
+
+    private Long redirectToShop;
+
+    private Long poiCollect;
+
+    private Long poiAddressClick;
+
+    private Long lubanOrderCnt;
+
+    private BigDecimal lubanOrderStatAmount;
+
+    private BigDecimal lubanOrderRoi;
+
+    private Long lubanLiveEnterCnt;
+
+    private Long liveWatchOneMinuteCount;
+
+    private Long lubanLiveFollowCnt;
+
+    private Long liveFansClubJoinCnt;
+
+    private Long lubanLiveCommentCnt;
+
+    private Long lubanLiveShareCnt;
+
+    private Long lubanLiveGiftCnt;
+
+    private BigDecimal lubanLiveGiftAmount;
+
+    private Long lubanLiveSlidecartClickCnt;
+
+    private Long lubanLiveClickProductCnt;
+
+    private Long lubanLivePayOrderCount;
+
+    private BigDecimal lubanLivePayOrderStatCost;
+
+    private Long liveComponentClickCount;
+
+    private BigDecimal liveComponentClickCost;
+
+    private BigDecimal liveComponentClickRate;
+
+    private Long wechatLoginCount;
+
+    private Long attributionWechatLogin30dCount;
+
+    private BigDecimal wechatLoginCost;
+
+    private BigDecimal attributionWechatLogin30dCost;
+
+    private Long wechatFirstPayCount;
+
+    private Long attributionWechatFirstPay30dCount;
+
+    private BigDecimal wechatFirstPayCost;
+
+    private BigDecimal attributionWechatFirstPay30dCost;
+
+    private BigDecimal wechatFirstPayRate;
+
+    private BigDecimal attributionWechatFirstPay30dRate;
+
+    private BigDecimal wechatPayAmount;
+
+    private BigDecimal attributionWechatPay30dAmount;
+
+    private BigDecimal attributionWechatPay30dRoi;
+
+    private Long phoneEffective;
+
+    private Long totalPlay;
+
+    private Long validPlay;
+
+    private BigDecimal validPlayCost;
+
+    private BigDecimal validPlayRate;
+
+    private Long play25FeedBreak;
+
+    private Long play50FeedBreak;
+
+    private Long play75FeedBreak;
+
+    private Long play100FeedBreak;
+
+    private BigDecimal averagePlayTimePerPlay;
+
+    private BigDecimal playOverRate;
+
+    private BigDecimal wifiPlayRate;
+
+    private Long wifiPlay;
+
+    private Long playDurationSum;
+
+    private Long advancedCreativePhoneClick;
+
+    private Long advancedCreativeCounselClick;
+
+    private Long advancedCreativeFormClick;
+
+    private Long advancedCreativeCouponAddition;
+
+    private Long advancedCreativeFormSubmit;
+
+    private Long cardShow;
+
+    private Long share;
+
+    private Long comment;
+
+    private Long like;
+
+    private Long follow;
+
+    private Long homeVisited;
+
+    private Long iesChallengeClick;
+
+    private Long iesMusicClick;
+
+    private Long locationClick;
+
+    private Long messageAction;
+
+    private Long clickLandingPage;
+
+    private Long clickShopwindow;
+
+    private Long clickWebsite;
+
+    private Long clickDownload;
+
+    private Long clickCallDy;
+
+    private Long submitCertificationCount;
+
+    private Long approvalCount;
+
+    private Long firstRentalOrderCount;
+
+    private Long firstOrderCount;
+
+    private Long commuteFirstPayCount;
+
+
+}

+ 338 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAdvertiserReportDaily.java

@@ -0,0 +1,338 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BytedanceAdvertiserReportDaily {
+    private Long advertiserId;
+
+    private String statDatetime;
+
+    private BigDecimal cost;
+
+    private Long show;
+
+    private BigDecimal avgShowCost;
+
+    private Long click;
+
+    private BigDecimal avgClickCost;
+
+    private BigDecimal ctr;
+
+    private Long convert;
+
+    private BigDecimal convertCost;
+
+    private BigDecimal convertRate;
+
+    private Long deepConvert;
+
+    private BigDecimal deepConvertCost;
+
+    private BigDecimal deepConvertRate;
+
+    private Long attributionConvert;
+
+    private BigDecimal attributionConvertCost;
+
+    private Long attributionDeepConvert;
+
+    private BigDecimal attributionDeepConvertCost;
+
+    private Long downloadStart;
+
+    private BigDecimal downloadStartCost;
+
+    private BigDecimal downloadStartRate;
+
+    private Long downloadFinish;
+
+    private BigDecimal downloadFinishCost;
+
+    private BigDecimal downloadFinishRate;
+
+    private Long clickInstall;
+
+    private Long installFinish;
+
+    private BigDecimal installFinishCost;
+
+    private BigDecimal installFinishRate;
+
+    private Long active;
+
+    private BigDecimal activeCost;
+
+    private BigDecimal activeRate;
+
+    private BigDecimal register;
+
+    private BigDecimal activeRegisterCost;
+
+    private Float activeRegisterRate;
+
+    private Long nextDayOpen;
+
+    private BigDecimal nextDayOpenCost;
+
+    private BigDecimal nextDayOpenRate;
+
+    private Long attributionNextDayOpenCnt;
+
+    private BigDecimal attributionNextDayOpenCost;
+
+    private BigDecimal attributionNextDayOpenRate;
+
+    private Long gameAddiction;
+
+    private BigDecimal gameAddictionCost;
+
+    private BigDecimal gameAddictionRate;
+
+    private Long payCount;
+
+    private BigDecimal activePayCost;
+
+    private BigDecimal activePayRate;
+
+    private Long loanCompletion;
+
+    private BigDecimal loanCompletionCost;
+
+    private BigDecimal loanCompletionRate;
+
+    private Long preLoanCredit;
+
+    private BigDecimal preLoanCreditCost;
+
+    private Long loanCredit;
+
+    private BigDecimal loanCreditCost;
+
+    private BigDecimal loanCreditRate;
+
+    private Long inAppUv;
+
+    private Long inAppDetailUv;
+
+    private Long inAppCart;
+
+    private Long inAppPay;
+
+    private Long inAppOrder;
+
+    private Long attributionGamePay7dCount;
+
+    private BigDecimal attributionGamePay7dCost;
+
+    private Long attributionActivePay7dPerCount;
+
+    private BigDecimal gamePayCost;
+
+    private Long gamePayCount;
+
+    private Long phone;
+
+    private Long form;
+
+    private Long mapSearch;
+
+    private Long button;
+
+    private Long view;
+
+    private Long download;
+
+    private Long qq;
+
+    private Long lottery;
+
+    private Long vote;
+
+    private Long message;
+
+    private Long redirect;
+
+    private Long shopping;
+
+    private Long consult;
+
+    private Long wechat;
+
+    private Long phoneConfirm;
+
+    private Long phoneConnect;
+
+    private Long consultEffective;
+
+    private Long coupon;
+
+    private Long couponSinglePage;
+
+    private Long redirectToShop;
+
+    private Long poiCollect;
+
+    private Long poiAddressClick;
+
+    private Long lubanOrderCnt;
+
+    private BigDecimal lubanOrderStatAmount;
+
+    private BigDecimal lubanOrderRoi;
+
+    private Long lubanLiveEnterCnt;
+
+    private Long liveWatchOneMinuteCount;
+
+    private Long lubanLiveFollowCnt;
+
+    private Long liveFansClubJoinCnt;
+
+    private Long lubanLiveCommentCnt;
+
+    private Long lubanLiveShareCnt;
+
+    private Long lubanLiveGiftCnt;
+
+    private BigDecimal lubanLiveGiftAmount;
+
+    private Long lubanLiveSlidecartClickCnt;
+
+    private Long lubanLiveClickProductCnt;
+
+    private Long lubanLivePayOrderCount;
+
+    private BigDecimal lubanLivePayOrderStatCost;
+
+    private Long liveComponentClickCount;
+
+    private BigDecimal liveComponentClickCost;
+
+    private BigDecimal liveComponentClickRate;
+
+    private Long wechatLoginCount;
+
+    private Long attributionWechatLogin30dCount;
+
+    private BigDecimal wechatLoginCost;
+
+    private BigDecimal attributionWechatLogin30dCost;
+
+    private Long wechatFirstPayCount;
+
+    private Long attributionWechatFirstPay30dCount;
+
+    private BigDecimal wechatFirstPayCost;
+
+    private BigDecimal attributionWechatFirstPay30dCost;
+
+    private BigDecimal wechatFirstPayRate;
+
+    private BigDecimal attributionWechatFirstPay30dRate;
+
+    private BigDecimal wechatPayAmount;
+
+    private BigDecimal attributionWechatPay30dAmount;
+
+    private BigDecimal attributionWechatPay30dRoi;
+
+    private Long phoneEffective;
+
+    private Long totalPlay;
+
+    private Long validPlay;
+
+    private BigDecimal validPlayCost;
+
+    private BigDecimal validPlayRate;
+
+    private Long play25FeedBreak;
+
+    private Long play50FeedBreak;
+
+    private Long play75FeedBreak;
+
+    private Long play100FeedBreak;
+
+    private BigDecimal averagePlayTimePerPlay;
+
+    private BigDecimal playOverRate;
+
+    private BigDecimal wifiPlayRate;
+
+    private Long wifiPlay;
+
+    private Long playDurationSum;
+
+    private Long advancedCreativePhoneClick;
+
+    private Long advancedCreativeCounselClick;
+
+    private Long advancedCreativeFormClick;
+
+    private Long advancedCreativeCouponAddition;
+
+    private Long advancedCreativeFormSubmit;
+
+    private Long cardShow;
+
+    private Long share;
+
+    private Long comment;
+
+    private Long like;
+
+    private Long follow;
+
+    private Long homeVisited;
+
+    private Long iesChallengeClick;
+
+    private Long iesMusicClick;
+
+    private Long locationClick;
+
+    private Long messageAction;
+
+    private Long clickLandingPage;
+
+    private Long clickShopwindow;
+
+    private Long clickWebsite;
+
+    private Long clickDownload;
+
+    private Long clickCallDy;
+
+    private Long submitCertificationCount;
+
+    private Long approvalCount;
+
+    private Long firstRentalOrderCount;
+
+    private Long firstOrderCount;
+
+    private Long commuteFirstPayCount;
+
+
+    /*** 游戏行业-激活后24h首次付费数激活后24h首次付费数,归因到激活时间*/
+    private Long attributionActivePayIntraOneDayCount;
+    /*** 游戏行业-激活后24h首次付费成本所选日期的消耗/激活后24h首次付费数*/
+    private BigDecimal attributionActivePayIntraOneDayCost;
+    /*** 游戏行业-激活后24h首次付费率激活后24h首次付费数/激活数*/
+    private BigDecimal attributionActivePayIntraOneDayRate;
+    /*** 游戏行业-激活后24h付费金额激活后24h,APP内产生的付费金额*/
+    private BigDecimal attributionActivePayIntraOneDayAmount;
+    /*** 游戏行业-激活后24小时付费roi激活后24h付费金额/所选日期的消耗*/
+    private BigDecimal attributionActivePayIntraOneDayRoi;
+    /*** 付费金额(回传时间)*/
+    private BigDecimal statPayAmount;
+
+    private String inventory;
+    private String inventoryName;
+
+}

+ 337 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAdvertiserReportHourly.java

@@ -0,0 +1,337 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BytedanceAdvertiserReportHourly {
+    private Long advertiserId;
+
+    private String statDatetime;
+
+    private Integer hour;
+
+    private BigDecimal cost;
+
+    private Long show;
+
+    private BigDecimal avgShowCost;
+
+    private Long click;
+
+    private BigDecimal avgClickCost;
+
+    private BigDecimal ctr;
+
+    private Long convert;
+
+    private BigDecimal convertCost;
+
+    private BigDecimal convertRate;
+
+    private Long deepConvert;
+
+    private BigDecimal deepConvertCost;
+
+    private BigDecimal deepConvertRate;
+
+    private Long attributionConvert;
+
+    private BigDecimal attributionConvertCost;
+
+    private Long attributionDeepConvert;
+
+    private BigDecimal attributionDeepConvertCost;
+
+    private Long downloadStart;
+
+    private BigDecimal downloadStartCost;
+
+    private BigDecimal downloadStartRate;
+
+    private Long downloadFinish;
+
+    private BigDecimal downloadFinishCost;
+
+    private BigDecimal downloadFinishRate;
+
+    private Long clickInstall;
+
+    private Long installFinish;
+
+    private BigDecimal installFinishCost;
+
+    private BigDecimal installFinishRate;
+
+    private Long active;
+
+    private BigDecimal activeCost;
+
+    private BigDecimal activeRate;
+
+    private BigDecimal register;
+
+    private BigDecimal activeRegisterCost;
+
+    private Float activeRegisterRate;
+
+    private Long nextDayOpen;
+
+    private BigDecimal nextDayOpenCost;
+
+    private BigDecimal nextDayOpenRate;
+
+    private Long attributionNextDayOpenCnt;
+
+    private BigDecimal attributionNextDayOpenCost;
+
+    private BigDecimal attributionNextDayOpenRate;
+
+    private Long gameAddiction;
+
+    private BigDecimal gameAddictionCost;
+
+    private BigDecimal gameAddictionRate;
+
+    private Long payCount;
+
+    private BigDecimal activePayCost;
+
+    private BigDecimal activePayRate;
+
+    private Long loanCompletion;
+
+    private BigDecimal loanCompletionCost;
+
+    private BigDecimal loanCompletionRate;
+
+    private Long preLoanCredit;
+
+    private BigDecimal preLoanCreditCost;
+
+    private Long loanCredit;
+
+    private BigDecimal loanCreditCost;
+
+    private BigDecimal loanCreditRate;
+
+    private Long inAppUv;
+
+    private Long inAppDetailUv;
+
+    private Long inAppCart;
+
+    private Long inAppPay;
+
+    private Long inAppOrder;
+
+    private Long attributionGamePay7dCount;
+
+    private BigDecimal attributionGamePay7dCost;
+
+    private Long attributionActivePay7dPerCount;
+
+    private BigDecimal gamePayCost;
+
+    private Long gamePayCount;
+
+    private Long phone;
+
+    private Long form;
+
+    private Long mapSearch;
+
+    private Long button;
+
+    private Long view;
+
+    private Long download;
+
+    private Long qq;
+
+    private Long lottery;
+
+    private Long vote;
+
+    private Long message;
+
+    private Long redirect;
+
+    private Long shopping;
+
+    private Long consult;
+
+    private Long wechat;
+
+    private Long phoneConfirm;
+
+    private Long phoneConnect;
+
+    private Long consultEffective;
+
+    private Long coupon;
+
+    private Long couponSinglePage;
+
+    private Long redirectToShop;
+
+    private Long poiCollect;
+
+    private Long poiAddressClick;
+
+    private Long lubanOrderCnt;
+
+    private BigDecimal lubanOrderStatAmount;
+
+    private BigDecimal lubanOrderRoi;
+
+    private Long lubanLiveEnterCnt;
+
+    private Long liveWatchOneMinuteCount;
+
+    private Long lubanLiveFollowCnt;
+
+    private Long liveFansClubJoinCnt;
+
+    private Long lubanLiveCommentCnt;
+
+    private Long lubanLiveShareCnt;
+
+    private Long lubanLiveGiftCnt;
+
+    private BigDecimal lubanLiveGiftAmount;
+
+    private Long lubanLiveSlidecartClickCnt;
+
+    private Long lubanLiveClickProductCnt;
+
+    private Long lubanLivePayOrderCount;
+
+    private BigDecimal lubanLivePayOrderStatCost;
+
+    private Long liveComponentClickCount;
+
+    private BigDecimal liveComponentClickCost;
+
+    private BigDecimal liveComponentClickRate;
+
+    private Long wechatLoginCount;
+
+    private Long attributionWechatLogin30dCount;
+
+    private BigDecimal wechatLoginCost;
+
+    private BigDecimal attributionWechatLogin30dCost;
+
+    private Long wechatFirstPayCount;
+
+    private Long attributionWechatFirstPay30dCount;
+
+    private BigDecimal wechatFirstPayCost;
+
+    private BigDecimal attributionWechatFirstPay30dCost;
+
+    private BigDecimal wechatFirstPayRate;
+
+    private BigDecimal attributionWechatFirstPay30dRate;
+
+    private BigDecimal wechatPayAmount;
+
+    private BigDecimal attributionWechatPay30dAmount;
+
+    private BigDecimal attributionWechatPay30dRoi;
+
+    private Long phoneEffective;
+
+    private Long totalPlay;
+
+    private Long validPlay;
+
+    private BigDecimal validPlayCost;
+
+    private BigDecimal validPlayRate;
+
+    private Long play25FeedBreak;
+
+    private Long play50FeedBreak;
+
+    private Long play75FeedBreak;
+
+    private Long play100FeedBreak;
+
+    private BigDecimal averagePlayTimePerPlay;
+
+    private BigDecimal playOverRate;
+
+    private BigDecimal wifiPlayRate;
+
+    private Long wifiPlay;
+
+    private Long playDurationSum;
+
+    private Long advancedCreativePhoneClick;
+
+    private Long advancedCreativeCounselClick;
+
+    private Long advancedCreativeFormClick;
+
+    private Long advancedCreativeCouponAddition;
+
+    private Long advancedCreativeFormSubmit;
+
+    private Long cardShow;
+
+    private Long share;
+
+    private Long comment;
+
+    private Long like;
+
+    private Long follow;
+
+    private Long homeVisited;
+
+    private Long iesChallengeClick;
+
+    private Long iesMusicClick;
+
+    private Long locationClick;
+
+    private Long messageAction;
+
+    private Long clickLandingPage;
+
+    private Long clickShopwindow;
+
+    private Long clickWebsite;
+
+    private Long clickDownload;
+
+    private Long clickCallDy;
+
+    private Long submitCertificationCount;
+
+    private Long approvalCount;
+
+    private Long firstRentalOrderCount;
+
+    private Long firstOrderCount;
+
+    private Long commuteFirstPayCount;
+
+    /*** 游戏行业-激活后24h首次付费数激活后24h首次付费数,归因到激活时间*/
+    private Long attributionActivePayIntraOneDayCount;
+    /*** 游戏行业-激活后24h首次付费成本所选日期的消耗/激活后24h首次付费数*/
+    private BigDecimal attributionActivePayIntraOneDayCost;
+    /*** 游戏行业-激活后24h首次付费率激活后24h首次付费数/激活数*/
+    private BigDecimal attributionActivePayIntraOneDayRate;
+    /*** 游戏行业-激活后24h付费金额激活后24h,APP内产生的付费金额*/
+    private BigDecimal attributionActivePayIntraOneDayAmount;
+    /*** 游戏行业-激活后24小时付费roi激活后24h付费金额/所选日期的消耗*/
+    private BigDecimal attributionActivePayIntraOneDayRoi;
+    /*** 付费金额(回传时间)*/
+    private BigDecimal statPayAmount;
+
+
+}

+ 83 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAgentReportDaily.java

@@ -0,0 +1,83 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BytedanceAgentReportDaily {
+    private Long advertiserId;
+
+    private Long agentId;
+
+    private String statDatetime;
+
+    private String agentName;
+
+    private String advertiserName;
+
+    private String secondIndustry;
+
+    private String firstIndustry;
+
+    private String accountSource;
+
+    private String auditPassTime;
+
+    private String accountStatus;
+
+    private Long companyId;
+
+    private String companyName;
+
+    private String registerTime;
+
+    private BigDecimal cost;
+
+    private BigDecimal cashCost;
+
+    private BigDecimal bidCost;
+
+    private BigDecimal brandCost;
+
+    private BigDecimal grantsCost;
+
+    private BigDecimal cpcCost;
+
+    private BigDecimal cpmCost;
+
+    private BigDecimal ocpcCost;
+
+    private BigDecimal cpaCost;
+
+    private BigDecimal ocpmCost;
+
+    private BigDecimal cpvCost;
+
+    private BigDecimal cptCost;
+
+    private BigDecimal gdCost;
+
+    private Long show;
+
+    private String cpm;
+
+    private Long click;
+
+    private BigDecimal ctr;
+
+    private BigDecimal cpc;
+
+    private Long transferCount;
+
+    private BigDecimal todayCost;
+
+    private BigDecimal transferAmount;
+
+    private BigDecimal historyCost;
+
+    private BigDecimal registerDays;
+
+    private String firstCostTime;
+
+}

+ 120 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAgentReportHourly.java

@@ -0,0 +1,120 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+@Data
+public class BytedanceAgentReportHourly {
+    private Long advertiserId;
+
+    private Long agentId;
+
+    private String statDatetime;
+
+    private Integer hour;
+
+    private String agentName;
+
+    private String advertiserName;
+
+    private String firstIndustry;
+
+    private String secondIndustry;
+
+    private String auditPassTime;
+
+    private String accountStatus;
+
+    private Long companyId;
+
+    private String companyName;
+
+    private String registerTime;
+
+    private String accountSource;
+
+    private BigDecimal todayCost;
+
+    private BigDecimal yesterdayCost;
+
+    private Long queryEndTime;
+
+    private BigDecimal todayXHourCost;
+
+    private BigDecimal yesterdayXHourCost;
+
+    private BigDecimal xHourCostDiff;
+
+    private BigDecimal todayXHourConvert;
+
+    private BigDecimal yesterdayXHourConvert;
+
+    private BigDecimal xHourConvertDiff;
+
+    private BigDecimal todayXHourCpa;
+
+    private BigDecimal yesterdayXHourCpa;
+
+    private BigDecimal xHourCpaDiff;
+
+    private Long todayXHourClick;
+
+    private Long yesterdayXHourClick;
+
+    private Long xHourClickDiff;
+
+    private BigDecimal todayXHourCpc;
+
+    private BigDecimal yesterdayXHourCpc;
+
+    private BigDecimal xHourCpcDiff;
+
+    private BigDecimal yesterdayCashCost;
+
+    private BigDecimal yesterdayBidCashCost;
+
+    private BigDecimal yesterdayBrandCashCost;
+
+    private BigDecimal yesterdayGrantsCost;
+
+    private BigDecimal yesterdayMomCost;
+
+    private BigDecimal yesterdayCostDiff;
+
+    private BigDecimal historyCost;
+
+    private BigDecimal historyCashCost;
+
+    private BigDecimal yesterdayAdNumber;
+
+    private BigDecimal registerDays;
+
+    private BigDecimal firstRechargeAmount;
+
+    private String firstRechargeTime;
+
+    private String lastRenewTime;
+
+    private BigDecimal totalRenewAmount;
+
+    private BigDecimal totalRenewNumber;
+
+    private BigDecimal cashBalance;
+
+    private BigDecimal rantBalance;
+
+    private String lastRechargeTime;
+
+    private BigDecimal lastRenewAmount;
+
+    private BigDecimal arpu3cd;
+
+    private BigDecimal totalBalance;
+
+    private BigDecimal validBalance;
+
+    private String customerType;
+
+    private String firstCostTime;
+
+}

+ 27 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceAudiencePackageGet.java

@@ -0,0 +1,27 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+@Data
+public class BytedanceAudiencePackageGet {
+    private Long advertiserId;
+
+    private Long audiencePackageId;
+
+    private String name;
+
+    private String description;
+
+    private String landingType;
+
+    private String hideIfConverted;
+
+    private String convertedTimeDuration;
+
+    private String deliveryRange;
+
+    private Long hideIfExists;
+
+    private String audience;
+
+}

+ 34 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCampaignGet.java

@@ -0,0 +1,34 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+@Data
+public class BytedanceCampaignGet {
+    private Long advertiserId;
+
+    private Long campaignId;
+
+    private String campaignName;
+
+    private Integer budget;
+
+    private String budgetMode;
+
+    private String modifyTime;
+
+    private String status;
+
+    private String campaignCreateTime;
+
+    private String campaignModifyTime;
+
+    private String marketingPurpose;
+
+    private String deliveryRelatedNum;
+
+    private String deliveryMode;
+
+    private String landingType;
+
+
+}

+ 325 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCampaignReportDaily.java

@@ -0,0 +1,325 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+@Data
+public class BytedanceCampaignReportDaily {
+    private Long advertiserId;
+
+    private Long campaignId;
+
+    private String statDatetime;
+
+    private String campaignName;
+
+    private BigDecimal cost;
+
+    private Long show;
+
+    private BigDecimal avgShowCost;
+
+    private Long click;
+
+    private BigDecimal avgClickCost;
+
+    private BigDecimal ctr;
+
+    private Long convert;
+
+    private BigDecimal convertCost;
+
+    private BigDecimal convertRate;
+
+    private Long deepConvert;
+
+    private BigDecimal deepConvertCost;
+
+    private BigDecimal deepConvertRate;
+
+    private Long attributionConvert;
+
+    private BigDecimal attributionConvertCost;
+
+    private Long attributionDeepConvert;
+
+    private BigDecimal attributionDeepConvertCost;
+
+    private Long downloadStart;
+
+    private BigDecimal downloadStartCost;
+
+    private BigDecimal downloadStartRate;
+
+    private Long downloadFinish;
+
+    private BigDecimal downloadFinishCost;
+
+    private BigDecimal downloadFinishRate;
+
+    private Long clickInstall;
+
+    private Long installFinish;
+
+    private BigDecimal installFinishCost;
+
+    private BigDecimal installFinishRate;
+
+    private Long active;
+
+    private BigDecimal activeCost;
+
+    private BigDecimal activeRate;
+
+    private BigDecimal register;
+
+    private BigDecimal activeRegisterCost;
+
+    private Float activeRegisterRate;
+
+    private Long nextDayOpen;
+
+    private BigDecimal nextDayOpenCost;
+
+    private BigDecimal nextDayOpenRate;
+
+    private Long attributionNextDayOpenCnt;
+
+    private BigDecimal attributionNextDayOpenCost;
+
+    private BigDecimal attributionNextDayOpenRate;
+
+    private Long gameAddiction;
+
+    private BigDecimal gameAddictionCost;
+
+    private BigDecimal gameAddictionRate;
+
+    private Long payCount;
+
+    private BigDecimal activePayCost;
+
+    private BigDecimal activePayRate;
+
+    private Long loanCompletion;
+
+    private BigDecimal loanCompletionCost;
+
+    private BigDecimal loanCompletionRate;
+
+    private Long preLoanCredit;
+
+    private BigDecimal preLoanCreditCost;
+
+    private Long loanCredit;
+
+    private BigDecimal loanCreditCost;
+
+    private BigDecimal loanCreditRate;
+
+    private Long inAppUv;
+
+    private Long inAppDetailUv;
+
+    private Long inAppCart;
+
+    private Long inAppPay;
+
+    private Long inAppOrder;
+
+    private Long attributionGamePay7dCount;
+
+    private BigDecimal attributionGamePay7dCost;
+
+    private Long attributionActivePay7dPerCount;
+
+    private BigDecimal gamePayCost;
+
+    private Long gamePayCount;
+
+    private Long phone;
+
+    private Long form;
+
+    private Long mapSearch;
+
+    private Long button;
+
+    private Long view;
+
+    private Long download;
+
+    private Long qq;
+
+    private Long lottery;
+
+    private Long vote;
+
+    private Long message;
+
+    private Long redirect;
+
+    private Long shopping;
+
+    private Long consult;
+
+    private Long wechat;
+
+    private Long phoneConfirm;
+
+    private Long phoneConnect;
+
+    private Long consultEffective;
+
+    private Long coupon;
+
+    private Long couponSinglePage;
+
+    private Long redirectToShop;
+
+    private Long poiCollect;
+
+    private Long poiAddressClick;
+
+    private Long lubanOrderCnt;
+
+    private BigDecimal lubanOrderStatAmount;
+
+    private BigDecimal lubanOrderRoi;
+
+    private Long lubanLiveEnterCnt;
+
+    private Long liveWatchOneMinuteCount;
+
+    private Long lubanLiveFollowCnt;
+
+    private Long liveFansClubJoinCnt;
+
+    private Long lubanLiveCommentCnt;
+
+    private Long lubanLiveShareCnt;
+
+    private Long lubanLiveGiftCnt;
+
+    private BigDecimal lubanLiveGiftAmount;
+
+    private Long lubanLiveSlidecartClickCnt;
+
+    private Long lubanLiveClickProductCnt;
+
+    private Long lubanLivePayOrderCount;
+
+    private BigDecimal lubanLivePayOrderStatCost;
+
+    private Long liveComponentClickCount;
+
+    private BigDecimal liveComponentClickCost;
+
+    private BigDecimal liveComponentClickRate;
+
+    private Long wechatLoginCount;
+
+    private Long attributionWechatLogin30dCount;
+
+    private BigDecimal wechatLoginCost;
+
+    private BigDecimal attributionWechatLogin30dCost;
+
+    private Long wechatFirstPayCount;
+
+    private Long attributionWechatFirstPay30dCount;
+
+    private BigDecimal wechatFirstPayCost;
+
+    private BigDecimal attributionWechatFirstPay30dCost;
+
+    private BigDecimal wechatFirstPayRate;
+
+    private BigDecimal attributionWechatFirstPay30dRate;
+
+    private BigDecimal wechatPayAmount;
+
+    private BigDecimal attributionWechatPay30dAmount;
+
+    private BigDecimal attributionWechatPay30dRoi;
+
+    private Long phoneEffective;
+
+    private Long totalPlay;
+
+    private Long validPlay;
+
+    private BigDecimal validPlayCost;
+
+    private BigDecimal validPlayRate;
+
+    private Long play25FeedBreak;
+
+    private Long play50FeedBreak;
+
+    private Long play75FeedBreak;
+
+    private Long play100FeedBreak;
+
+    private BigDecimal averagePlayTimePerPlay;
+
+    private BigDecimal playOverRate;
+
+    private BigDecimal wifiPlayRate;
+
+    private Long wifiPlay;
+
+    private Long playDurationSum;
+
+    private Long advancedCreativePhoneClick;
+
+    private Long advancedCreativeCounselClick;
+
+    private Long advancedCreativeFormClick;
+
+    private Long advancedCreativeCouponAddition;
+
+    private Long advancedCreativeFormSubmit;
+
+    private Long cardShow;
+
+    private Long share;
+
+    private Long comment;
+
+    private Long like;
+
+    private Long follow;
+
+    private Long homeVisited;
+
+    private Long iesChallengeClick;
+
+    private Long iesMusicClick;
+
+    private Long locationClick;
+
+    private Long messageAction;
+
+    private Long clickLandingPage;
+
+    private Long clickShopwindow;
+
+    private Long clickWebsite;
+
+    private Long clickDownload;
+
+    private Long clickCallDy;
+
+    private Long submitCertificationCount;
+
+    private Long approvalCount;
+
+    private Long firstRentalOrderCount;
+
+    private Long firstOrderCount;
+
+    private Long commuteFirstPayCount;
+
+
+}

+ 328 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCampaignReportHourly.java

@@ -0,0 +1,328 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BytedanceCampaignReportHourly {
+    private Long advertiserId;
+
+    private Long campaignId;
+
+    private String statDatetime;
+
+    private Integer hour;
+
+    private String campaignName;
+
+    private BigDecimal cost;
+
+    private Long show;
+
+    private BigDecimal avgShowCost;
+
+    private Long click;
+
+    private BigDecimal avgClickCost;
+
+    private BigDecimal ctr;
+
+    private Long convert;
+
+    private BigDecimal convertCost;
+
+    private BigDecimal convertRate;
+
+    private Long deepConvert;
+
+    private BigDecimal deepConvertCost;
+
+    private BigDecimal deepConvertRate;
+
+    private Long attributionConvert;
+
+    private BigDecimal attributionConvertCost;
+
+    private Long attributionDeepConvert;
+
+    private BigDecimal attributionDeepConvertCost;
+
+    private Long downloadStart;
+
+    private BigDecimal downloadStartCost;
+
+    private BigDecimal downloadStartRate;
+
+    private Long downloadFinish;
+
+    private BigDecimal downloadFinishCost;
+
+    private BigDecimal downloadFinishRate;
+
+    private Long clickInstall;
+
+    private Long installFinish;
+
+    private BigDecimal installFinishCost;
+
+    private BigDecimal installFinishRate;
+
+    private Long active;
+
+    private BigDecimal activeCost;
+
+    private BigDecimal activeRate;
+
+    private BigDecimal register;
+
+    private BigDecimal activeRegisterCost;
+
+    private Float activeRegisterRate;
+
+    private Long nextDayOpen;
+
+    private BigDecimal nextDayOpenCost;
+
+    private BigDecimal nextDayOpenRate;
+
+    private Long attributionNextDayOpenCnt;
+
+    private BigDecimal attributionNextDayOpenCost;
+
+    private BigDecimal attributionNextDayOpenRate;
+
+    private Long gameAddiction;
+
+    private BigDecimal gameAddictionCost;
+
+    private BigDecimal gameAddictionRate;
+
+    private Long payCount;
+
+    private BigDecimal activePayCost;
+
+    private BigDecimal activePayRate;
+
+    private Long loanCompletion;
+
+    private BigDecimal loanCompletionCost;
+
+    private BigDecimal loanCompletionRate;
+
+    private Long preLoanCredit;
+
+    private BigDecimal preLoanCreditCost;
+
+    private Long loanCredit;
+
+    private BigDecimal loanCreditCost;
+
+    private BigDecimal loanCreditRate;
+
+    private Long inAppUv;
+
+    private Long inAppDetailUv;
+
+    private Long inAppCart;
+
+    private Long inAppPay;
+
+    private Long inAppOrder;
+
+    private Long attributionGamePay7dCount;
+
+    private BigDecimal attributionGamePay7dCost;
+
+    private Long attributionActivePay7dPerCount;
+
+    private BigDecimal gamePayCost;
+
+    private Long gamePayCount;
+
+    private Long phone;
+
+    private Long form;
+
+    private Long mapSearch;
+
+    private Long button;
+
+    private Long view;
+
+    private Long download;
+
+    private Long qq;
+
+    private Long lottery;
+
+    private Long vote;
+
+    private Long message;
+
+    private Long redirect;
+
+    private Long shopping;
+
+    private Long consult;
+
+    private Long wechat;
+
+    private Long phoneConfirm;
+
+    private Long phoneConnect;
+
+    private Long consultEffective;
+
+    private Long coupon;
+
+    private Long couponSinglePage;
+
+    private Long redirectToShop;
+
+    private Long poiCollect;
+
+    private Long poiAddressClick;
+
+    private Long lubanOrderCnt;
+
+    private BigDecimal lubanOrderStatAmount;
+
+    private BigDecimal lubanOrderRoi;
+
+    private Long lubanLiveEnterCnt;
+
+    private Long liveWatchOneMinuteCount;
+
+    private Long lubanLiveFollowCnt;
+
+    private Long liveFansClubJoinCnt;
+
+    private Long lubanLiveCommentCnt;
+
+    private Long lubanLiveShareCnt;
+
+    private Long lubanLiveGiftCnt;
+
+    private BigDecimal lubanLiveGiftAmount;
+
+    private Long lubanLiveSlidecartClickCnt;
+
+    private Long lubanLiveClickProductCnt;
+
+    private Long lubanLivePayOrderCount;
+
+    private BigDecimal lubanLivePayOrderStatCost;
+
+    private Long liveComponentClickCount;
+
+    private BigDecimal liveComponentClickCost;
+
+    private BigDecimal liveComponentClickRate;
+
+    private Long wechatLoginCount;
+
+    private Long attributionWechatLogin30dCount;
+
+    private BigDecimal wechatLoginCost;
+
+    private BigDecimal attributionWechatLogin30dCost;
+
+    private Long wechatFirstPayCount;
+
+    private Long attributionWechatFirstPay30dCount;
+
+    private BigDecimal wechatFirstPayCost;
+
+    private BigDecimal attributionWechatFirstPay30dCost;
+
+    private BigDecimal wechatFirstPayRate;
+
+    private BigDecimal attributionWechatFirstPay30dRate;
+
+    private BigDecimal wechatPayAmount;
+
+    private BigDecimal attributionWechatPay30dAmount;
+
+    private BigDecimal attributionWechatPay30dRoi;
+
+    private Long phoneEffective;
+
+    private Long totalPlay;
+
+    private Long validPlay;
+
+    private BigDecimal validPlayCost;
+
+    private BigDecimal validPlayRate;
+
+    private Long play25FeedBreak;
+
+    private Long play50FeedBreak;
+
+    private Long play75FeedBreak;
+
+    private Long play100FeedBreak;
+
+    private BigDecimal averagePlayTimePerPlay;
+
+    private BigDecimal playOverRate;
+
+    private BigDecimal wifiPlayRate;
+
+    private Long wifiPlay;
+
+    private Long playDurationSum;
+
+    private Long advancedCreativePhoneClick;
+
+    private Long advancedCreativeCounselClick;
+
+    private Long advancedCreativeFormClick;
+
+    private Long advancedCreativeCouponAddition;
+
+    private Long advancedCreativeFormSubmit;
+
+    private Long cardShow;
+
+    private Long share;
+
+    private Long comment;
+
+    private Long like;
+
+    private Long follow;
+
+    private Long homeVisited;
+
+    private Long iesChallengeClick;
+
+    private Long iesMusicClick;
+
+    private Long locationClick;
+
+    private Long messageAction;
+
+    private Long clickLandingPage;
+
+    private Long clickShopwindow;
+
+    private Long clickWebsite;
+
+    private Long clickDownload;
+
+    private Long clickCallDy;
+
+    private Long submitCertificationCount;
+
+    private Long approvalCount;
+
+    private Long firstRentalOrderCount;
+
+    private Long firstOrderCount;
+
+    private Long commuteFirstPayCount;
+
+
+}

+ 202 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCdpProject.java

@@ -0,0 +1,202 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+/**
+ * 项目信息
+ * @date 2023-04-19
+ */
+@Data
+@TableName("bytedance_cdp_project")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "bytedance_cdp_project对象", description = "项目信息")
+public class BytedanceCdpProject {
+
+    /**
+     * 项目id
+     */
+    @Excel(name = "项目id", width = 15)
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+    /**
+     * 项目名称
+     */
+    @Excel(name = "项目名称", width = 15)
+    @ApiModelProperty(value = "项目名称")
+    private String name;
+    /**
+     * 账户id
+     */
+    @Excel(name = "账户id", width = 15)
+    @ApiModelProperty(value = "账户id")
+    private Long advertiserId;
+    /**
+     * 项目状态
+     */
+    @Excel(name = "项目状态", width = 15)
+    @ApiModelProperty(value = "项目状态")
+    private String status;
+    /**
+     * 应用包名
+     */
+    @Excel(name = "应用包名", width = 15)
+    @ApiModelProperty(value = "应用包名")
+    private String packageName;
+    /**
+     * 项目创建时间,格式yyyy-MM-dd HH:mm:ss
+     */
+    @Excel(name = "项目创建时间,格式yyyy-MM-dd HH:mm:ss", width = 15)
+    @ApiModelProperty(value = "项目创建时间,格式yyyy-MM-dd HH:mm:ss")
+    private String projectCreateTime;
+    /**
+     * 项目更新时间,格式yyyy-MM-dd HH:mm:ss
+     */
+    @Excel(name = "项目更新时间,格式yyyy-MM-dd HH:mm:ss", width = 15)
+    @ApiModelProperty(value = "项目更新时间,格式yyyy-MM-dd HH:mm:ss")
+    private String projectModifyTime;
+    /**
+     * 出价方式
+     */
+    @Excel(name = "出价方式", width = 15)
+    @ApiModelProperty(value = "出价方式")
+    private String pricing;
+    /**
+     * 推广目的,枚举值:APP 应用推广、LINK 销售线索推广、MICRO_GAME小程序、QUICK_APP快应用
+     */
+    @Excel(name = "推广目的,枚举值:APP 应用推广、LINK 销售线索推广、MICRO_GAME小程序、QUICK_APP快应用", width = 15)
+    @ApiModelProperty(value = "推广目的,枚举值:APP 应用推广、LINK 销售线索推广、MICRO_GAME小程序、QUICK_APP快应用")
+    private String landingType;
+    /**
+     * 广告类型,枚举值:ALL所有广告,SEARCH 搜索广告
+     */
+    @Excel(name = "广告类型,枚举值:ALL所有广告,SEARCH 搜索广告", width = 15)
+    @ApiModelProperty(value = "广告类型,枚举值:ALL所有广告,SEARCH 搜索广告")
+    private String adType;
+    /**
+     * 定向拓展
+     */
+    @Excel(name = "定向拓展", width = 15)
+    @ApiModelProperty(value = "定向拓展")
+    private String audienceExtend;
+    /**
+     * 目标操作,枚举值:ENABLE 启用项目、DISABLE暂停项目
+     */
+    @Excel(name = "目标操作,枚举值:ENABLE 启用项目、DISABLE暂停项目", width = 15)
+    @ApiModelProperty(value = "目标操作,枚举值:ENABLE 启用项目、DISABLE暂停项目")
+    private String optStatus;
+    /**
+     * 子目标,枚举值:DOWNLOAD 应用下载、LAUNCH 应用调用、RESERVE 预约下载
+     */
+    @Excel(name = "子目标,枚举值:DOWNLOAD 应用下载、LAUNCH 应用调用、RESERVE 预约下载", width = 15)
+    @ApiModelProperty(value = "子目标,枚举值:DOWNLOAD 应用下载、LAUNCH 应用调用、RESERVE 预约下载")
+    private String appPromotionType;
+    /**
+     * 投放模式,允许值:MANUAL手动投放、PROCEDURAL自动投放
+     */
+    @Excel(name = "投放模式,允许值:MANUAL手动投放、PROCEDURAL自动投放", width = 15)
+    @ApiModelProperty(value = "投放模式,允许值:MANUAL手动投放、PROCEDURAL自动投放")
+    private String deliveryMode;
+    /**
+     * 出价系数
+     */
+    @Excel(name = " 出价系数", width = 15)
+    @ApiModelProperty(value = " 出价系数")
+    private java.math.BigDecimal searchBidRatio;
+    /**
+     * 下载链接
+     */
+    @Excel(name = " 下载链接", width = 15)
+    @ApiModelProperty(value = " 下载链接")
+    private String downloadUrl;
+    /**
+     * 优先从系统应用商店下载(下载模式),枚举值:APP_STORE_DELIVERY 优先商店下载、DEFAULT 默认下载
+     */
+    @Excel(name = "优先从系统应用商店下载(下载模式),枚举值:APP_STORE_DELIVERY 优先商店下载、DEFAULT 默认下载", width = 15)
+    @ApiModelProperty(value = "优先从系统应用商店下载(下载模式),枚举值:APP_STORE_DELIVERY 优先商店下载、DEFAULT 默认下载")
+    private String downloadMode;
+    /**
+     * 下载方式,枚举值:DOWNLOAD_URL 直接下载、EXTERNAL_URL 落地页下载
+     */
+    @Excel(name = "下载方式,枚举值:DOWNLOAD_URL 直接下载、EXTERNAL_URL 落地页下载", width = 15)
+    @ApiModelProperty(value = "下载方式,枚举值:DOWNLOAD_URL 直接下载、EXTERNAL_URL 落地页下载")
+    private String downloadType;
+    /**
+     * 应用名
+     */
+    @Excel(name = "应用名", width = 15)
+    @ApiModelProperty(value = "应用名")
+    private String appName;
+    /**
+     * 搜索快投关键词功能,HAS_OPEN:启用,DISABLED:未启用
+     */
+    @Excel(name = "搜索快投关键词功能,HAS_OPEN:启用,DISABLED:未启用", width = 15)
+    @ApiModelProperty(value = "搜索快投关键词功能,HAS_OPEN:启用,DISABLED:未启用")
+    private String feedDeliverySearch;
+    /**
+     * 营销场景,枚举值:VIDEO_AND_IMAGE 短视频/图片、LIVE直播
+     */
+    @Excel(name = "营销场景,枚举值:VIDEO_AND_IMAGE 短视频/图片、LIVE直播", width = 15)
+    @ApiModelProperty(value = "营销场景,枚举值:VIDEO_AND_IMAGE 短视频/图片、LIVE直播")
+    private String marketingGoal;
+    /**
+     * 搜索关键词列表
+     */
+    @Excel(name = "搜索关键词列表", width = 15)
+    @ApiModelProperty(value = "搜索关键词列表")
+    private String keywords;
+    /**
+     * 投放设置
+     */
+    @Excel(name = " 投放设置", width = 15)
+    @ApiModelProperty(value = " 投放设置")
+    private String deliverySetting;
+    /**
+     * 自定义筛选条件(商品投放条件)
+     */
+    @Excel(name = "自定义筛选条件(商品投放条件)", width = 15)
+    @ApiModelProperty(value = "自定义筛选条件(商品投放条件)")
+    private String dpaProductTarget;
+    /**
+     * 优化目标
+     */
+    @Excel(name = "优化目标", width = 15)
+    @ApiModelProperty(value = "优化目标")
+    private String optimizeGoal;
+    /**
+     * 定向设置
+     */
+    @Excel(name = "定向设置", width = 15)
+    @ApiModelProperty(value = "定向设置")
+    private String audience;
+    /**
+     * 关联产品投放相关
+     */
+    @Excel(name = "关联产品投放相关", width = 15)
+    @ApiModelProperty(value = "关联产品投放相关")
+    private String relatedProduct;
+    /**
+     * 广告版位
+     */
+    @Excel(name = "广告版位", width = 15)
+    @ApiModelProperty(value = "广告版位")
+    private String deliveryRange;
+    /**
+     * 监测链接设置
+     */
+    @Excel(name = "监测链接设置", width = 15)
+    @ApiModelProperty(value = "监测链接设置")
+    private String trackUrlSetting;
+    /**
+     * internalAdvertiserInfo
+     */
+    @Excel(name = "internalAdvertiserInfo", width = 15)
+    @ApiModelProperty(value = "internalAdvertiserInfo")
+    private String internalAdvertiserInfo;
+}

+ 37 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCreativeGet.java

@@ -0,0 +1,37 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+@Data
+public class BytedanceCreativeGet {
+    private String advertiserId;
+
+    private Long adId;
+
+    private Long creativeId;
+
+    private String title;
+
+    private String creativeWordIds;
+
+    private String status;
+
+    private String optStatus;
+
+    private String imageMode;
+
+    private String imageIds;
+
+    private String imageId;
+
+    private String videoId;
+
+    private String thirdPartyId;
+
+    private String metarials;
+
+    private String creativeCreateTime;
+
+    private String creativeModifyTime;
+
+}

+ 330 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCreativeReportDaily.java

@@ -0,0 +1,330 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+@Data
+public class BytedanceCreativeReportDaily {
+    private Long advertiserId;
+
+    private Long campaignId;
+
+    private Long adId;
+
+    private Long creativeId;
+
+    private String statDatetime;
+
+    private String campaignName;
+
+    private String adName;
+
+    private BigDecimal cost;
+
+    private Long show;
+
+    private BigDecimal avgShowCost;
+
+    private Long click;
+
+    private BigDecimal avgClickCost;
+
+    private BigDecimal ctr;
+
+    private Long convert;
+
+    private BigDecimal convertCost;
+
+    private BigDecimal convertRate;
+
+    private Long deepConvert;
+
+    private BigDecimal deepConvertCost;
+
+    private BigDecimal deepConvertRate;
+
+    private Long attributionConvert;
+
+    private BigDecimal attributionConvertCost;
+
+    private Long attributionDeepConvert;
+
+    private BigDecimal attributionDeepConvertCost;
+
+    private Long downloadStart;
+
+    private BigDecimal downloadStartCost;
+
+    private BigDecimal downloadStartRate;
+
+    private Long downloadFinish;
+
+    private BigDecimal downloadFinishCost;
+
+    private BigDecimal downloadFinishRate;
+
+    private Long clickInstall;
+
+    private Long installFinish;
+
+    private BigDecimal installFinishCost;
+
+    private BigDecimal installFinishRate;
+
+    private Long active;
+
+    private BigDecimal activeCost;
+
+    private BigDecimal activeRate;
+
+    private BigDecimal register;
+
+    private BigDecimal activeRegisterCost;
+
+    private Float activeRegisterRate;
+
+    private Long nextDayOpen;
+
+    private BigDecimal nextDayOpenCost;
+
+    private BigDecimal nextDayOpenRate;
+
+    private Long attributionNextDayOpenCnt;
+
+    private BigDecimal attributionNextDayOpenCost;
+
+    private BigDecimal attributionNextDayOpenRate;
+
+    private Long gameAddiction;
+
+    private BigDecimal gameAddictionCost;
+
+    private BigDecimal gameAddictionRate;
+
+    private Long payCount;
+
+    private BigDecimal activePayCost;
+
+    private BigDecimal activePayRate;
+
+    private Long loanCompletion;
+
+    private BigDecimal loanCompletionCost;
+
+    private BigDecimal loanCompletionRate;
+
+    private Long preLoanCredit;
+
+    private BigDecimal preLoanCreditCost;
+
+    private Long loanCredit;
+
+    private BigDecimal loanCreditCost;
+
+    private BigDecimal loanCreditRate;
+
+    private Long inAppUv;
+
+    private Long inAppDetailUv;
+
+    private Long inAppCart;
+
+    private Long inAppPay;
+
+    private Long inAppOrder;
+
+    private Long attributionGamePay7dCount;
+
+    private BigDecimal attributionGamePay7dCost;
+
+    private Long attributionActivePay7dPerCount;
+
+    private BigDecimal gamePayCost;
+
+    private Long gamePayCount;
+
+    private Long phone;
+
+    private Long form;
+
+    private Long mapSearch;
+
+    private Long button;
+
+    private Long view;
+
+    private Long download;
+
+    private Long qq;
+
+    private Long lottery;
+
+    private Long vote;
+
+    private Long message;
+
+    private Long redirect;
+
+    private Long shopping;
+
+    private Long consult;
+
+    private Long wechat;
+
+    private Long phoneConfirm;
+
+    private Long phoneConnect;
+
+    private Long consultEffective;
+
+    private Long coupon;
+
+    private Long couponSinglePage;
+
+    private Long redirectToShop;
+
+    private Long poiCollect;
+
+    private Long poiAddressClick;
+
+    private Long lubanOrderCnt;
+
+    private BigDecimal lubanOrderStatAmount;
+
+    private BigDecimal lubanOrderRoi;
+
+    private Long lubanLiveEnterCnt;
+
+    private Long liveWatchOneMinuteCount;
+
+    private Long lubanLiveFollowCnt;
+
+    private Long liveFansClubJoinCnt;
+
+    private Long lubanLiveCommentCnt;
+
+    private Long lubanLiveShareCnt;
+
+    private Long lubanLiveGiftCnt;
+
+    private BigDecimal lubanLiveGiftAmount;
+
+    private Long lubanLiveSlidecartClickCnt;
+
+    private Long lubanLiveClickProductCnt;
+
+    private Long lubanLivePayOrderCount;
+
+    private BigDecimal lubanLivePayOrderStatCost;
+
+    private Long liveComponentClickCount;
+
+    private BigDecimal liveComponentClickCost;
+
+    private BigDecimal liveComponentClickRate;
+
+    private Long wechatLoginCount;
+
+    private Long attributionWechatLogin30dCount;
+
+    private BigDecimal wechatLoginCost;
+
+    private BigDecimal attributionWechatLogin30dCost;
+
+    private Long wechatFirstPayCount;
+
+    private Long attributionWechatFirstPay30dCount;
+
+    private BigDecimal wechatFirstPayCost;
+
+    private BigDecimal attributionWechatFirstPay30dCost;
+
+    private BigDecimal wechatFirstPayRate;
+
+    private BigDecimal attributionWechatFirstPay30dRate;
+
+    private BigDecimal wechatPayAmount;
+
+    private BigDecimal attributionWechatPay30dAmount;
+
+    private BigDecimal attributionWechatPay30dRoi;
+
+    private Long phoneEffective;
+
+    private Long totalPlay;
+
+    private Long validPlay;
+
+    private BigDecimal validPlayCost;
+
+    private BigDecimal validPlayRate;
+
+    private Long play25FeedBreak;
+
+    private Long play50FeedBreak;
+
+    private Long play75FeedBreak;
+
+    private Long play100FeedBreak;
+
+    private BigDecimal averagePlayTimePerPlay;
+
+    private BigDecimal playOverRate;
+
+    private BigDecimal wifiPlayRate;
+
+    private Long wifiPlay;
+
+    private Long playDurationSum;
+
+    private Long advancedCreativePhoneClick;
+
+    private Long advancedCreativeCounselClick;
+
+    private Long advancedCreativeFormClick;
+
+    private Long advancedCreativeCouponAddition;
+
+    private Long advancedCreativeFormSubmit;
+
+    private Long cardShow;
+
+    private Long share;
+
+    private Long comment;
+
+    private Long like;
+
+    private Long follow;
+
+    private Long homeVisited;
+
+    private Long iesChallengeClick;
+
+    private Long iesMusicClick;
+
+    private Long locationClick;
+
+    private Long messageAction;
+
+    private Long clickLandingPage;
+
+    private Long clickShopwindow;
+
+    private Long clickWebsite;
+
+    private Long clickDownload;
+
+    private Long clickCallDy;
+
+    private Long submitCertificationCount;
+
+    private Long approvalCount;
+
+    private Long firstRentalOrderCount;
+
+    private Long firstOrderCount;
+
+    private Long commuteFirstPayCount;
+
+}

+ 333 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceCreativeReportHourly.java

@@ -0,0 +1,333 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BytedanceCreativeReportHourly {
+    private Long advertiserId;
+
+    private Long campaignId;
+
+    private Long adId;
+
+    private Long creativeId;
+
+    private String statDatetime;
+
+    private Integer hour;
+
+    private String campaignName;
+
+    private String adName;
+
+    private BigDecimal cost;
+
+    private Long show;
+
+    private BigDecimal avgShowCost;
+
+    private Long click;
+
+    private BigDecimal avgClickCost;
+
+    private BigDecimal ctr;
+
+    private Long convert;
+
+    private BigDecimal convertCost;
+
+    private BigDecimal convertRate;
+
+    private Long deepConvert;
+
+    private BigDecimal deepConvertCost;
+
+    private BigDecimal deepConvertRate;
+
+    private Long attributionConvert;
+
+    private BigDecimal attributionConvertCost;
+
+    private Long attributionDeepConvert;
+
+    private BigDecimal attributionDeepConvertCost;
+
+    private Long downloadStart;
+
+    private BigDecimal downloadStartCost;
+
+    private BigDecimal downloadStartRate;
+
+    private Long downloadFinish;
+
+    private BigDecimal downloadFinishCost;
+
+    private BigDecimal downloadFinishRate;
+
+    private Long clickInstall;
+
+    private Long installFinish;
+
+    private BigDecimal installFinishCost;
+
+    private BigDecimal installFinishRate;
+
+    private Long active;
+
+    private BigDecimal activeCost;
+
+    private BigDecimal activeRate;
+
+    private BigDecimal register;
+
+    private BigDecimal activeRegisterCost;
+
+    private Float activeRegisterRate;
+
+    private Long nextDayOpen;
+
+    private BigDecimal nextDayOpenCost;
+
+    private BigDecimal nextDayOpenRate;
+
+    private Long attributionNextDayOpenCnt;
+
+    private BigDecimal attributionNextDayOpenCost;
+
+    private BigDecimal attributionNextDayOpenRate;
+
+    private Long gameAddiction;
+
+    private BigDecimal gameAddictionCost;
+
+    private BigDecimal gameAddictionRate;
+
+    private Long payCount;
+
+    private BigDecimal activePayCost;
+
+    private BigDecimal activePayRate;
+
+    private Long loanCompletion;
+
+    private BigDecimal loanCompletionCost;
+
+    private BigDecimal loanCompletionRate;
+
+    private Long preLoanCredit;
+
+    private BigDecimal preLoanCreditCost;
+
+    private Long loanCredit;
+
+    private BigDecimal loanCreditCost;
+
+    private BigDecimal loanCreditRate;
+
+    private Long inAppUv;
+
+    private Long inAppDetailUv;
+
+    private Long inAppCart;
+
+    private Long inAppPay;
+
+    private Long inAppOrder;
+
+    private Long attributionGamePay7dCount;
+
+    private BigDecimal attributionGamePay7dCost;
+
+    private Long attributionActivePay7dPerCount;
+
+    private BigDecimal gamePayCost;
+
+    private Long gamePayCount;
+
+    private Long phone;
+
+    private Long form;
+
+    private Long mapSearch;
+
+    private Long button;
+
+    private Long view;
+
+    private Long download;
+
+    private Long qq;
+
+    private Long lottery;
+
+    private Long vote;
+
+    private Long message;
+
+    private Long redirect;
+
+    private Long shopping;
+
+    private Long consult;
+
+    private Long wechat;
+
+    private Long phoneConfirm;
+
+    private Long phoneConnect;
+
+    private Long consultEffective;
+
+    private Long coupon;
+
+    private Long couponSinglePage;
+
+    private Long redirectToShop;
+
+    private Long poiCollect;
+
+    private Long poiAddressClick;
+
+    private Long lubanOrderCnt;
+
+    private BigDecimal lubanOrderStatAmount;
+
+    private BigDecimal lubanOrderRoi;
+
+    private Long lubanLiveEnterCnt;
+
+    private Long liveWatchOneMinuteCount;
+
+    private Long lubanLiveFollowCnt;
+
+    private Long liveFansClubJoinCnt;
+
+    private Long lubanLiveCommentCnt;
+
+    private Long lubanLiveShareCnt;
+
+    private Long lubanLiveGiftCnt;
+
+    private BigDecimal lubanLiveGiftAmount;
+
+    private Long lubanLiveSlidecartClickCnt;
+
+    private Long lubanLiveClickProductCnt;
+
+    private Long lubanLivePayOrderCount;
+
+    private BigDecimal lubanLivePayOrderStatCost;
+
+    private Long liveComponentClickCount;
+
+    private BigDecimal liveComponentClickCost;
+
+    private BigDecimal liveComponentClickRate;
+
+    private Long wechatLoginCount;
+
+    private Long attributionWechatLogin30dCount;
+
+    private BigDecimal wechatLoginCost;
+
+    private BigDecimal attributionWechatLogin30dCost;
+
+    private Long wechatFirstPayCount;
+
+    private Long attributionWechatFirstPay30dCount;
+
+    private BigDecimal wechatFirstPayCost;
+
+    private BigDecimal attributionWechatFirstPay30dCost;
+
+    private BigDecimal wechatFirstPayRate;
+
+    private BigDecimal attributionWechatFirstPay30dRate;
+
+    private BigDecimal wechatPayAmount;
+
+    private BigDecimal attributionWechatPay30dAmount;
+
+    private BigDecimal attributionWechatPay30dRoi;
+
+    private Long phoneEffective;
+
+    private Long totalPlay;
+
+    private Long validPlay;
+
+    private BigDecimal validPlayCost;
+
+    private BigDecimal validPlayRate;
+
+    private Long play25FeedBreak;
+
+    private Long play50FeedBreak;
+
+    private Long play75FeedBreak;
+
+    private Long play100FeedBreak;
+
+    private BigDecimal averagePlayTimePerPlay;
+
+    private BigDecimal playOverRate;
+
+    private BigDecimal wifiPlayRate;
+
+    private Long wifiPlay;
+
+    private Long playDurationSum;
+
+    private Long advancedCreativePhoneClick;
+
+    private Long advancedCreativeCounselClick;
+
+    private Long advancedCreativeFormClick;
+
+    private Long advancedCreativeCouponAddition;
+
+    private Long advancedCreativeFormSubmit;
+
+    private Long cardShow;
+
+    private Long share;
+
+    private Long comment;
+
+    private Long like;
+
+    private Long follow;
+
+    private Long homeVisited;
+
+    private Long iesChallengeClick;
+
+    private Long iesMusicClick;
+
+    private Long locationClick;
+
+    private Long messageAction;
+
+    private Long clickLandingPage;
+
+    private Long clickShopwindow;
+
+    private Long clickWebsite;
+
+    private Long clickDownload;
+
+    private Long clickCallDy;
+
+    private Long submitCertificationCount;
+
+    private Long approvalCount;
+
+    private Long firstRentalOrderCount;
+
+    private Long firstOrderCount;
+
+    private Long commuteFirstPayCount;
+
+}

+ 32 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceFileImageGet.java

@@ -0,0 +1,32 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+@Data
+public class BytedanceFileImageGet {
+    private Long advertiserId;
+
+    private String id;
+
+    private Long materialId;
+
+    private Long size;
+
+    private Long width;
+
+    private Long height;
+
+    private String url;
+
+    private String format;
+
+    private String signature;
+
+    private String createTime;
+
+    private String filename;
+
+    private String imageUrl;
+
+
+}

+ 41 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceFileVideoGet.java

@@ -0,0 +1,41 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+@Data
+public class BytedanceFileVideoGet {
+    private Long advertiserId;
+
+    private String id;
+
+    private Long size;
+
+    private Long width;
+
+    private Long height;
+
+    private String url;
+
+    private String format;
+
+    private String signature;
+
+    private String posterUrl;
+
+    private Long bitRate;
+
+    private Long duration;
+
+    private Long materialId;
+
+    private String source;
+
+    private String createTime;
+
+    private String filename;
+
+    private String labels;
+
+    private String videoUrl;
+
+}

+ 15 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceMaterialAttributes.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+@Data
+public class BytedanceMaterialAttributes {
+    private Long materialId;
+
+    private String isAdHighQualityMaterial;
+
+    private String isFirstPublishMaterial;
+
+    private String isInefficientMaterial;
+
+}

+ 363 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceMaterialReportDaily.java

@@ -0,0 +1,363 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BytedanceMaterialReportDaily {
+    private Long advertiserId;
+
+    private Long materialId;
+
+    private String imageMode;
+
+    private String inventory;
+
+    private String statDatetime;
+
+    private BigDecimal cost;
+
+    private Integer show;
+
+    private BigDecimal avgShowCost;
+
+    private Integer click;
+
+    private BigDecimal avgClickCost;
+
+    private BigDecimal ctr;
+
+    private Integer convert;
+
+    private BigDecimal convertCost;
+
+    private BigDecimal convertRate;
+
+    private Integer deepConvert;
+
+    private BigDecimal deepConvertCost;
+
+    private BigDecimal deepConvertRate;
+
+    private Integer attributionConvert;
+
+    private BigDecimal attributionConvertCost;
+
+    private Integer attributionDeepConvert;
+
+    private BigDecimal attributionDeepConvertCost;
+
+    private Integer downloadStart;
+
+    private BigDecimal downloadStartCost;
+
+    private BigDecimal downloadStartRate;
+
+    private Integer downloadFinish;
+
+    private BigDecimal downloadFinishCost;
+
+    private BigDecimal downloadFinishRate;
+
+    private Integer clickInstall;
+
+    private Integer installFinish;
+
+    private BigDecimal installFinishCost;
+
+    private BigDecimal installFinishRate;
+
+    private Integer active;
+
+    private BigDecimal activeCost;
+
+    private BigDecimal activeRate;
+
+    private Integer register;
+
+    private BigDecimal activeRegisterCost;
+
+    private BigDecimal activeRegisterRate;
+
+    private BigDecimal activePayAmount;
+
+    private Integer nextDayOpen;
+
+    private BigDecimal nextDayOpenCost;
+
+    private BigDecimal nextDayOpenRate;
+
+    private Integer attributionNextDayOpenCnt;
+
+    private BigDecimal attributionNextDayOpenCost;
+
+    private BigDecimal attributionNextDayOpenRate;
+
+    private Integer gameAddiction;
+
+    private BigDecimal gameAddictionCost;
+
+    private BigDecimal gameAddictionRate;
+
+    private Integer payCount;
+
+    private BigDecimal activePayCost;
+
+    private BigDecimal activePayRate;
+
+    private Integer loanCompletion;
+
+    private BigDecimal loanCompletionCost;
+
+    private BigDecimal loanCompletionRate;
+
+    private Integer preLoanCredit;
+
+    private BigDecimal preLoanCreditCost;
+
+    private Integer loanCredit;
+
+    private BigDecimal loanCreditCost;
+
+    private BigDecimal loanCreditRate;
+
+    private Integer inAppUv;
+
+    private Integer inAppDetailUv;
+
+    private Integer inAppCart;
+
+    private Integer inAppPay;
+
+    private Integer inAppOrder;
+
+    private Integer attributionGamePay7dCount;
+
+    private BigDecimal attributionGamePay7dCost;
+
+    private Integer attributionActivePay7dPerCount;
+
+    private Integer gamePayCost;
+
+    private Integer gamePayCount;
+
+    private Integer phone;
+
+    private Integer form;
+
+    private Integer mapSearch;
+
+    private Integer button;
+
+    private Integer view;
+
+    private Integer download;
+
+    private Integer qq;
+
+    private Integer lottery;
+
+    private Integer vote;
+
+    private Integer message;
+
+    private Integer redirect;
+
+    private Integer shopping;
+
+    private Integer consult;
+
+    private Integer wechat;
+
+    private Integer phoneConfirm;
+
+    private Integer phoneConnect;
+
+    private Integer consultEffective;
+
+    private Integer coupon;
+
+    private Integer couponSinglePage;
+
+    private Integer redirectToShop;
+
+    private Integer poiCollect;
+
+    private Integer poiAddressClick;
+
+    private Integer lubanOrderCnt;
+
+    private BigDecimal lubanOrderStatAmount;
+
+    private BigDecimal lubanOrderRoi;
+
+    private Integer lubanLiveEnterCnt;
+
+    private Integer liveWatchOneMinuteCount;
+
+    private Integer lubanLiveFollowCnt;
+
+    private Integer liveFansClubJoinCnt;
+
+    private Integer lubanLiveCommentCnt;
+
+    private Integer lubanLiveShareCnt;
+
+    private Integer lubanLiveGiftCnt;
+
+    private BigDecimal lubanLiveGiftAmount;
+
+    private Integer lubanLiveSlidecartClickCnt;
+
+    private Integer lubanLiveClickProductCnt;
+
+    private Integer lubanLivePayOrderCount;
+
+    private BigDecimal lubanLivePayOrderStatCost;
+
+    private Integer wechatLoginCount;
+
+    private Integer attributionWechatLogin30dCount;
+
+    private BigDecimal wechatLoginCost;
+
+    private BigDecimal attributionWechatLogin30dCost;
+
+    private Integer wechatFirstPayCount;
+
+    private Integer attributionWechatFirstPay30dCount;
+
+    private BigDecimal wechatFirstPayCost;
+
+    private BigDecimal attributionWechatFirstPay30dCost;
+
+    private BigDecimal wechatFirstPayRate;
+
+    private BigDecimal attributionWechatFirstPay30dRate;
+
+    private BigDecimal wechatPayAmount;
+
+    private BigDecimal attributionWechatPay30dAmount;
+
+    private BigDecimal attributionWechatPay30dRoi;
+
+    private Integer phoneEffective;
+
+    private Integer totalPlay;
+
+    private Integer validPlay;
+
+    private BigDecimal validPlayCost;
+
+    private BigDecimal validPlayRate;
+
+    private Integer play25FeedBreak;
+
+    private Integer play50FeedBreak;
+
+    private Integer play75FeedBreak;
+
+    private Integer play100FeedBreak;
+
+    private BigDecimal averagePlayTimePerPlay;
+
+    private BigDecimal playOverRate;
+
+    private BigDecimal wifiPlayRate;
+
+    private Integer wifiPlay;
+
+    private Long playDurationSum;
+
+    private Integer advancedCreativePhoneClick;
+
+    private Integer advancedCreativeCounselClick;
+
+    private Integer advancedCreativeFormClick;
+
+    private Integer advancedCreativeCouponAddition;
+
+    private Integer advancedCreativeFormSubmit;
+
+    private Integer cardShow;
+
+    private Integer share;
+
+    private Integer comment;
+
+    private Integer like;
+
+    private Integer follow;
+
+    private Integer homeVisited;
+
+    private Integer iesChallengeClick;
+
+    private Integer iesMusicClick;
+
+    private Integer locationClick;
+
+    private Integer messageAction;
+
+    private Integer clickLandingPage;
+
+    private Integer clickShopwindow;
+
+    private Integer clickWebsite;
+
+    private Integer clickDownload;
+
+    private Integer clickCallDy;
+
+    private BigDecimal cpc;
+
+    private BigDecimal cpm;
+
+    private BigDecimal cpa;
+
+    private BigDecimal interactPerCost;
+
+    private BigDecimal convertShowRate;
+
+    private BigDecimal playDuration10sRate;
+
+    private BigDecimal play50FeedBreakRate;
+
+    private BigDecimal play25FeedBreakRate;
+
+    private BigDecimal playDuration5sRate;
+
+    private BigDecimal playDuration2sRate;
+
+    private BigDecimal averagePlayProgress;
+
+    private BigDecimal play100FeedBreakRate;
+
+    private BigDecimal playDuration3sRate;
+
+    private BigDecimal play75FeedBreakRate;
+
+    private BigDecimal playDuration;
+
+    private BigDecimal playDuration3s;
+
+    private BigDecimal playDuration2s;
+
+    private BigDecimal playDuration10s;
+
+    private BigDecimal averageVideoPlay;
+
+    private BigDecimal avgRank;
+
+    private Integer submitCertificationCount;
+
+    private Integer approvalCount;
+
+    private Integer firstOrderCount;
+
+    private Integer firstRentalOrderCount;
+
+    private Integer commuteFirstPayCount;
+
+}

+ 41 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedancePromotionList.java

@@ -0,0 +1,41 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class BytedancePromotionList {
+
+    private Long advertiserId;
+
+    private Long projectId;
+
+    private Long promotionId;
+
+    private String promotionName;
+
+    private String promotionCreateTime;
+
+    private String promotionModifyTime;
+
+    private String status;
+
+    private String optStatus;
+
+    private String promotionMaterials;
+
+    private String source;
+
+    private String materialScoreInfo;
+
+    private BigDecimal deepCpabid;
+
+    private String roiGoal;
+
+    private BigDecimal cpaBid;
+
+    private BigDecimal budget;
+
+
+}

File diff suppressed because it is too large
+ 1427 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceV3ProjectReportDaily.java


File diff suppressed because it is too large
+ 1433 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceV3ProjectReportHourly.java


File diff suppressed because it is too large
+ 1437 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/BytedanceV3PromotionProjectReportDaily.java


+ 46 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/MediaSendAlarmRecord.java

@@ -0,0 +1,46 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * @Description: 媒体预警发送表
+ */
+@Data
+@TableName("ctop_media_send_alarm_record")
+@Accessors(chain = true)
+@ApiModel(value = "ctop_media_send_alarm_record对象", description = "媒体预警发送表")
+public class MediaSendAlarmRecord {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    private Long accountId;
+    private Long planId;
+    private Long projectId;
+    private String userId;
+    private String alarmDetail;
+    private String mediaType;
+    /**
+     * createTime
+     */
+    private Date createTime;
+    /**
+     * updateTime
+     */
+    private Date updateTime;
+
+    public MediaSendAlarmRecord(Long accountId, String mediaType, String alarmDetail) {
+        this.accountId = accountId;
+        this.mediaType = mediaType;
+        this.alarmDetail = alarmDetail;
+    }
+
+    public MediaSendAlarmRecord() {
+    }
+}

+ 99 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/OauthToken.java

@@ -0,0 +1,99 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * token信息
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2021-09-07
+ */
+@Data
+@TableName("ctop_oauth_token")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_oauth_token对象", description = "token信息")
+public class OauthToken {
+
+    /**
+     * 主键ID
+     */
+    @TableId(type = IdType.UUID)
+    @ApiModelProperty(value = "主键ID")
+    private String id;
+    /**
+     * 媒体ID(外部广告平台类型,快手/头条/抖音等)
+     */
+    @ApiModelProperty(value = "媒体ID(外部广告平台类型,快手/头条/抖音等)")
+    private String mediaId;
+    /**
+     * 广告主ID(自己平台用户内部id)
+     */
+    @ApiModelProperty(value = "广告主ID(自己平台用户内部id)")
+    private String advertiserId;
+    /**
+     * 广告账户ID(相当于头条返回的access_token数据中的advertiser_id)
+     */
+    @ApiModelProperty(value = "广告账户ID(相当于头条返回的access_token数据中的advertiser_id)")
+    private Long accountId;
+    /**
+     * 访问令牌
+     */
+    @ApiModelProperty(value = "访问令牌")
+    private String accessToken;
+    /**
+     * 访问令牌有效期
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "访问令牌有效期")
+    private Date accessTokenExpiresIn;
+    /**
+     * 刷新令牌
+     */
+    @ApiModelProperty(value = "刷新令牌")
+    private String refreshToken;
+    /**
+     * 刷新令牌有效期
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "刷新令牌有效期")
+    private Date refreshTokenExpiresIn;
+    /**
+     * 代理商类型 0:三方代理商 1:本代理商
+     */
+    @ApiModelProperty(value = "代理商类型 0:三方代理商 1:本代理商")
+    private Integer agentType;
+    /**
+     * appid
+     */
+    @ApiModelProperty(value = "appid")
+    private Integer appId;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+    /**
+     * 修改时间
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+}

+ 153 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/Project.java

@@ -0,0 +1,153 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 项目
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2019-11-19
+ */
+@Data
+@TableName("ctop_project")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_project对象", description = "项目")
+public class Project {
+    /**
+     * id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "id")
+    private Long id;
+    /**
+     * 项目名称
+     */
+    @Excel(name = "项目名称", width = 15)
+    @ApiModelProperty(value = "项目名称")
+    private String projectName;
+    /**
+     * 广告主id
+     */
+    @Excel(name = "广告主id", width = 15)
+    @ApiModelProperty(value = "广告主id")
+    private String advertiserId;
+
+
+    @Excel(name = "产品id", width = 15)
+    @ApiModelProperty(value = "广告主id")
+    private Long productId;
+
+    /**
+     * 创建人
+     */
+    @Excel(name = "创建人", width = 15)
+    @ApiModelProperty(value = "创建人")
+    private String userId;
+    /**
+     * 负责人id
+     */
+    @Excel(name = "负责人id", width = 15)
+    @ApiModelProperty(value = "负责人id")
+    private String responsibleId;
+
+
+    @Excel(name = "设计负责人", width = 15)
+    @ApiModelProperty(value = "设计负责人")
+    private String designResponsibleId;
+
+
+    @Excel(name = "公司id", width = 15)
+    @ApiModelProperty(value = "公司id")
+    private String companyId;
+    /**
+     * 媒体类型
+     */
+    @Excel(name = "媒体类型", width = 15)
+    @ApiModelProperty(value = "媒体类型")
+    private String mediaId;
+
+    /**
+     * 最高出价
+     */
+    private Long maxBid;
+
+    private String supplierCode;
+
+
+    // 销售
+    private String saleId;
+    /**
+     * 最高深度转化出价
+     */
+    private BigDecimal maxDeepCpaBid;
+    private Integer checkLink;
+    private Integer materialShare;
+    /**
+     * 创建时间
+     */
+    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+    /**
+     * 修改时间
+     */
+    @Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+
+
+    //优化目标出价类型
+    private String bidType;
+
+    //转化目标
+    private String ocpxActionType;
+
+    //深度转化目标
+    private String deepConversionType;
+
+    @TableField(exist = false)
+    private String responsibleId_dictText; // 运营负责人
+
+    @TableField(exist = false)
+    private String saleId_dictText; // 销售
+
+    @TableField(exist = false)
+    private String designResponsibleId_dictText; // 设计负责人
+    @TableField(exist = false)
+    private String advertiserId_dictText; // 广告主名称
+    @TableField(exist = false)
+    private String productId_dictText; // 产品名称
+    @TableField(exist = false)
+    private Integer needExamine;
+    @TableField(exist = false)
+    private String supplierCode_dictText;
+
+    //转化目标
+    @TableField(exist = false)
+    private JSONArray ocpxActionTypeArray;
+
+    //深度转化目标
+    @TableField(exist = false)
+    private JSONArray deepConversionTypeArray;
+}

+ 172 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/entity/UserAllocation.java

@@ -0,0 +1,172 @@
+package cn.com.ctop.job.bytedance.data.entity;
+
+import cn.com.ctop.job.bytedance.data.annotation.Dict;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 用户分配
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2019-08-08
+ */
+@Data
+@TableName("ctop_user_allocation")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "ctop_user_allocation对象", description = "用户分配")
+public class UserAllocation {
+
+    /**
+     * 主键ID
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+    /**
+     * 登陆人id
+     */
+    @Excel(name = "登陆人id", width = 15)
+    @ApiModelProperty(value = "登陆人id")
+    private String userId;
+
+
+    @Excel(name = "登陆人名称", width = 15)
+    @ApiModelProperty(value = "登陆人名称")
+    private String userName;
+
+    /**
+     * 账户id --授权
+     */
+    @Excel(name = "账户id --授权", width = 15)
+    @ApiModelProperty(value = "账户id --授权")
+    private Long accountId;
+    /**
+     * 广告主ID
+     */
+    @Excel(name = "广告主ID", width = 15)
+    @ApiModelProperty(value = "广告主ID")
+    private String advertiserId;
+
+    private String systemType;
+
+    /**
+     * 项目id
+     */
+    @Dict(dicCode = "id", dictTable = "ctop_project", dicText = "project_name")
+    private Long projectId;
+
+    /**
+     * 输入账号  --登陆
+     */
+    @Excel(name = "输入账号  --登陆", width = 15)
+    @ApiModelProperty(value = "输入账号  --登陆")
+    private String accountName;
+
+    /**
+     * 预警 金额
+     */
+    private BigDecimal warningAmount;
+
+    /**
+     * 预警 比例
+     */
+    private BigDecimal warningProportion;
+
+    /**
+     * 创建时间
+     */
+    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 授权名称
+     */
+    @Excel(name = "授权名称", width = 15)
+    @ApiModelProperty(value = "授权名称")
+    private String authName;
+
+    /**
+     * 授权开始时间
+     */
+    @Excel(name = "授权开始时间", width = 15)
+    @ApiModelProperty(value = "授权开始时间")
+    private String authBeginTime;
+
+
+    /**
+     * 0 启动
+     * 1 禁用
+     */
+    private Integer accountStatus;
+
+    /**
+     * 检测链接预警
+     * 0 启动
+     * 1 禁用
+     */
+    private Integer monitoringLink;
+
+    /**
+     * 检测链接预警
+     * 0 启动
+     * 1 禁用
+     */
+    private Integer landingPage;
+
+    /**
+     * 是否开启删评论
+     * 0 启动
+     * 1 禁用
+     */
+    private Integer deleteComment;
+    /**
+     * 自动投放,0关闭,1开启
+     */
+    private Integer autoDelivery;
+    /**
+     * 物料类型 0-不同步,1应用包,(2人群包,3定向包)
+     */
+    private String materialType;
+
+    /**
+     * 修改时间
+     */
+    @Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+    /**
+     * 平台类型 1 头条 2快手
+     */
+    @Excel(name = "平台类型 1 头条 2快手", width = 15)
+    @ApiModelProperty(value = "平台类型 1 头条 2快手")
+    private String mediaId;
+
+
+
+
+   /* @TableField(exist = false)
+    private String advertiserName;
+
+    @TableField(exist = false)
+    private String projectName;*/
+
+}

+ 53 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/enums/InventoryEnum.java

@@ -0,0 +1,53 @@
+package cn.com.ctop.job.bytedance.data.enums;
+
+/**
+ * 素材类型
+ */
+public enum InventoryEnum {
+
+
+    String1("INVENTORY_FEED", "头条信息流"),
+    String2("INVENTORY_TEXT_LINK", "头条文章详情页"),
+    String3("INVENTORY_VIDEO_FEED", "西瓜信息流"),
+    String4("INVENTORY_HOTSOON_FEED", "火山信息流"),
+    String5("INVENTORY_AWEME_FEED", "抖音信息流"),
+    String6("INVENTORY_UNION_SLOT", "穿山甲"),
+    String7("UNION_BOUTIQUE_GAME", "ohayoo精品游戏"),
+    String8("INVENTORY_UNION_SPLASH_SLOT", "穿山甲开屏广告"),
+    String9("INVENTORY_SEARCH", "搜索广告"),
+    String10("INVENTORY_UNIVERSAL", "通投智选"),
+    String11("INVENTORY_BEAUTY", "轻颜相机"),
+    String12("INVENTORY_PIPIXIA", "皮皮虾"),
+    String13("INVENTORY_AUTOMOBILE", "懂车帝"),
+    String14("INVENTORY_STUDY", "好好学习"),
+    String15("INVENTORY_FACE_U", "faceu"),
+    String16("INVENTORY_TOMATO_NOVEL", "番茄小说"),
+    String17("INVENTORY_HOMED_AGGREGATE", "住小帮");
+
+    private String code;
+    private String name;
+
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    private InventoryEnum(String code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static String getNameByCode(String code) {
+        for (InventoryEnum material : InventoryEnum.values()) {
+            if (material.getCode().equals(code)) {
+                return material.getName();
+            }
+        }
+        return "-";
+    }
+
+}

+ 108 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/enums/MaterialEnum.java

@@ -0,0 +1,108 @@
+package cn.com.ctop.job.bytedance.data.enums;
+
+/**
+ * 素材类型
+ */
+public enum MaterialEnum {
+
+
+    VerticalVideoSmall(1, 720, 1280),
+    VerticalVideo787Small(1, 787, 1280),
+    VerticalVideo846Small(1, 846, 1536),
+    VerticalVideo1080mall(1, 1080, 2200),
+    VerticalVideoBig(1, 1080, 1920),
+    VerticalVideo360(1, 360, 640),
+    VerticalVideo362(1, 362, 640),
+    VerticalVideo368(1, 368, 490),
+    VerticalVideo363(1, 363, 640),
+    VerticalVideo438(1, 438, 640),
+    VerticalVideo480(1, 480, 640),
+    VerticalVideo525(1, 525, 640),
+    VerticalVideo540(1, 540, 960),
+    VerticalVideo544(1, 544, 726),
+    VerticalVideo590(1, 590, 1280),
+    VerticalVideo694(1, 694, 1236),
+    VerticalVideo704(1, 704, 1252),
+    VerticalVideo710(1, 710, 1264),
+    VerticalVideo714(1, 714, 1270),
+    VerticalVideo716(1, 716, 1276),
+    VerticalVideo718(1, 718, 1278),
+    VerticalVideo719(1, 719, 1170),
+    VerticalVideo720(1, 720, 960),
+    VerticalVideo750(1, 750, 1334),
+    VerticalVideo787(1, 787, 1280),
+    VerticalVideo864(1, 864, 1536),
+    VerticalVideo1088(1, 1088, 1920),
+    VerticalVideo1181(1, 1181, 1920),
+    VerticalVideo1216(1, 1216, 2160),
+    VerticalVideo1296(1, 1296, 2304),
+    VerticalVideo1440(1, 1440, 2560),
+    VerticalVideo2160(1, 2160, 3840),
+    HorizontalVideoSmall(2, 1280, 720),
+    HorizontalVideoBig(2, 1920, 1080),
+    HorizontalVideo640(2, 640, 368),
+    HorizontalVideo1281(2, 1281, 720),
+    HorizontalVideo1400(2, 1400, 720),
+    HorizontalVideo1700(2, 1700, 1080),
+    HorizontalVideo1902(2, 1902, 1080),
+    HorizontalVideo1920(2, 1920, 1080),
+    BianlitieImageBig(4, 540, 540),
+    BianLitieImageSmall(4, 450, 450);
+
+    private Integer type;
+    private Integer width;
+    private Integer height;
+
+
+    private MaterialEnum(Integer type, Integer width, Integer height) {
+        this.type = type;
+        this.width = width;
+        this.height = height;
+    }
+
+    public static Integer getTypeBySize(Integer widthStr, Integer heightStr) {
+        for (MaterialEnum material : MaterialEnum.values()) {
+            Integer width = material.getWidth();
+            Integer height = material.getHeight();
+            if (widthStr.equals(width) && heightStr.equals(height)) {
+                return material.getType();
+            }
+        }
+
+        return 1;
+    }
+
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getWidth() {
+        return width;
+    }
+
+    public void setWidth(Integer width) {
+        this.width = width;
+    }
+
+    public Integer getHeight() {
+        return height;
+    }
+
+    public void setHeight(Integer height) {
+        this.height = height;
+    }
+
+    @Override
+    public String toString() {
+        return "MaterialEnum{" +
+                "type=" + type +
+                ", width=" + width +
+                ", height=" + height +
+                '}';
+    }
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/ByteDanceAdvertisePlanHourlyMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 今日头条广告计划信息
+ * @Author: jeecg-boot
+ * @Date: 2019-07-22
+ * @Version: V1.0
+ */
+public interface ByteDanceAdvertisePlanHourlyMapper  {
+
+
+}

+ 15 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdGetMapper.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAdGet;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceAdGetMapper {
+
+
+    int insert(@Param("list") List<BytedanceAdGet> list);
+
+
+}

+ 15 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdReportDailyMapper.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAdReportDaily;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceAdReportDailyMapper {
+
+    int insert(@Param("list") List<BytedanceAdReportDaily> list);
+
+
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdReportHourlyMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAdReportHourly;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceAdReportHourlyMapper {
+
+    int insert(@Param("list") List<BytedanceAdReportHourly> list);
+
+
+}

+ 18 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdvertiserHourlyReportMapper.java

@@ -0,0 +1,18 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+
+/**
+ * @Description: 广告主小时级别报表信息
+ * @Author: jeecg-boot
+ * @Date: 2019-09-10
+ * @Version: V1.0
+ */
+public interface BytedanceAdvertiserHourlyReportMapper {
+
+    Integer selectMaxHour(@Param("accountId") Long accountId, @Param("statDate") Integer statDate);
+
+    BigDecimal getCost(@Param("accountId") Long accountId, @Param("statHour") Integer statHour, @Param("statDate") Integer statDate);
+}

+ 28 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdvertiserReportDailyMapper.java

@@ -0,0 +1,28 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.ByteDanceNewMaterialReport;
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportDaily;
+import cn.com.ctop.job.bytedance.data.entity.BytedanceV3ProjectReportDaily;
+import cn.com.ctop.job.bytedance.data.entity.BytedanceV3PromotionProjectReportDaily;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceAdvertiserReportDailyMapper {
+
+
+    int insert(@Param("list") List<BytedanceAdvertiserReportDaily> list);
+
+    void insertV3Project(@Param("list") List<BytedanceV3ProjectReportDaily> dailyList);
+
+    void insertV3PromotionProject(@Param("list") List<BytedanceV3PromotionProjectReportDaily> dailyList);
+
+    void insertV3PromotionProjectVideo(@Param("list") List<ByteDanceNewMaterialReport> videolist);
+
+    void insertV3PromotionProjectImage(@Param("list") List<ByteDanceNewMaterialReport> imageList);
+
+    void insertPosition(@Param("list") List<BytedanceAdvertiserReportDaily> list);
+
+    void insertV3PromotionProjectHour(@Param("list") List<BytedanceV3PromotionProjectReportDaily> hourlyList);
+}

+ 15 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAdvertiserReportHourlyMapper.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportHourly;
+import cn.com.ctop.job.bytedance.data.entity.BytedanceV3ProjectReportHourly;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceAdvertiserReportHourlyMapper {
+
+    int insert(@Param("list") List<BytedanceAdvertiserReportHourly> list);
+
+    int insertV3Project(@Param("list") List<BytedanceV3ProjectReportHourly> hourlyList);
+}

+ 13 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAgentReportDailyMapper.java

@@ -0,0 +1,13 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAgentReportDaily;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceAgentReportDailyMapper {
+
+    int insert(@Param("list") List<BytedanceAgentReportDaily> list);
+
+}

+ 15 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAgentReportHourlyMapper.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAgentReportHourly;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceAgentReportHourlyMapper {
+
+    int insert(@Param("list") List<BytedanceAgentReportHourly> list);
+
+
+}

+ 13 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceAudiencePackageGetMapper.java

@@ -0,0 +1,13 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceAudiencePackageGet;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceAudiencePackageGetMapper {
+
+    int insert(@Param("list") List<BytedanceAudiencePackageGet> list);
+
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCampaignGetMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceCampaignGet;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceCampaignGetMapper {
+
+    int insert(@Param("list")List<BytedanceCampaignGet> list);
+
+
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCampaignReportDailyMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceCampaignReportDaily;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceCampaignReportDailyMapper {
+
+    int insert(@Param("list")List<BytedanceCampaignReportDaily> list);
+
+
+}

+ 13 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCampaignReportHourlyMapper.java

@@ -0,0 +1,13 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceCampaignReportHourly;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceCampaignReportHourlyMapper {
+
+    int insert(@Param("list") List<BytedanceCampaignReportHourly> list);
+
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCreativeGetMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceCreativeGet;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceCreativeGetMapper {
+
+    int insert(@Param("list") List<BytedanceCreativeGet> list);
+
+
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCreativeReportDailyMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceCreativeReportDaily;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceCreativeReportDailyMapper {
+
+    int insert(@Param("list") List<BytedanceCreativeReportDaily> list);
+
+
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceCreativeReportHourlyMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceCreativeReportHourly;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceCreativeReportHourlyMapper {
+
+    int insert(@Param("list") List<BytedanceCreativeReportHourly> list);
+
+
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceFileImageGetMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceFileImageGet;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceFileImageGetMapper {
+
+    int insert(@Param("list") List<BytedanceFileImageGet> list);
+
+
+}

+ 16 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceFileVideoGetMapper.java

@@ -0,0 +1,16 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceFileVideoGet;
+import cn.com.ctop.job.bytedance.data.entity.BytedanceMaterialAttributes;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceFileVideoGetMapper {
+
+
+    int insert(@Param("list") List<BytedanceFileVideoGet> list);
+
+    void insertMaterialAttributesData(@Param("list") List<BytedanceMaterialAttributes> list);
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceFundMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceFundMapper {
+    void replaceFundGet(@Param("data") JSONObject data);
+
+    void updateFundGet(@Param("accountId") Long accountId, @Param("requestDesc") String requestDesc);
+
+    List<Long> getAccountList();
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceMaterialReportDailyMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceMaterialReportDaily;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceMaterialReportDailyMapper {
+
+    int insert(@Param("list") List<BytedanceMaterialReportDaily> list);
+
+
+}

+ 20 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceNewMaterialReportMapper.java

@@ -0,0 +1,20 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.ByteDanceNewMaterialReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceNewMaterialReportMapper {
+
+    /**
+     * 头条-新增体验版素材日报 -视频和图片
+     * @param list
+     * @return
+     */
+    int replaceBytedanceNewMaterialVideoDaily(@Param("list") List<ByteDanceNewMaterialReport> list);
+    int replaceBytedanceNewMaterialImageDaily(@Param("list") List<ByteDanceNewMaterialReport> list);
+
+
+}

+ 28 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedanceProjectMapper.java

@@ -0,0 +1,28 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedanceCdpProject;
+import cn.com.ctop.job.bytedance.data.entity.MediaSendAlarmRecord;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedanceProjectMapper {
+
+    Long getProjectId(@Param("accountId") Long accountId);
+
+    int replaceProjectList(@Param("list") List<BytedanceCdpProject> list);
+
+    List<JSONObject> getWChatIdsByAccountId(@Param("accountId") Long accountId);
+
+    void insertSendRecord(MediaSendAlarmRecord record);
+
+    List<Long> getBytedanceRefusalSend(@Param("accountId") Long accountId);
+
+    List<Long> getSpecialProject();
+
+    void insertSendAccountId(@Param("accountId") Long accountId, @Param("adId") Long adId, @Param("counts") Integer counts);
+
+    Integer getrefusalAccountCounts(@Param("accountId") Long accountId, @Param("adId") Long adId);
+}

+ 14 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/BytedancePromotionListMapper.java

@@ -0,0 +1,14 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+
+import cn.com.ctop.job.bytedance.data.entity.BytedancePromotionList;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BytedancePromotionListMapper {
+
+    int replacePromotionList(@Param("list")List<BytedancePromotionList> list);
+
+
+}

+ 32 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/OauthTokenMapper.java

@@ -0,0 +1,32 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+import cn.com.ctop.job.bytedance.data.entity.OauthToken;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * token信息
+ *
+ * @author jeecg-boot 2021-09-07
+ * @version V1.0
+ */
+public interface OauthTokenMapper extends BaseMapper<OauthToken> {
+    String getByAccountId(@Param("accountId") Long accountId);
+
+    List<Long> getAgentByTouTiao();
+
+    List<Long> getAllToutiaoAccountIds();
+
+    String getAgentToken(@Param("agentId") Long agentId);
+
+    List<JSONObject> getAgentTokens();
+
+    List<JSONObject> getByProjectId(@Param("projectId") Long projectId);
+
+    JSONObject getProjectByAccountId(@Param("accountId") Long accountId);
+
+    List<JSONObject> getBytedanceOcpxTypeList();
+}

+ 72 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/UserAllocationMapper.java

@@ -0,0 +1,72 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+import cn.com.ctop.job.bytedance.data.entity.Project;
+import cn.com.ctop.job.bytedance.data.entity.UserAllocation;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @Description: 用户分配
+ * @Author: jeecg-boot
+ * @Date: 2019-08-08
+ * @Version: V1.0
+ */
+public interface UserAllocationMapper extends BaseMapper<UserAllocation> {
+    List<UserAllocation> selectAccountListByProjectId(@Param("projectId") Long projectId);
+
+    String queryAdvertiserId(@Param("accountId") Long accountId);
+
+    String queryUserIdByAccountId(@Param("accountId") Long accountId);
+
+    List<JSONObject> getAccountListByProject(@Param("projectId") Long projectId);
+
+    List<JSONObject> getUserIdListByProjectId(@Param("projectId") Long projectId);
+
+    List<JSONObject> getAccountIdListByUserId(@Param("userId") String userId);
+
+    List<JSONObject> getAccountIdsByUserId(@Param("userId") String userId);
+
+    List<JSONObject> getAllAccountIdsByMediaId(@Param("mediaId") String mediaId);
+
+    Long getProjectIdByAccountId(@Param("accountId") Long accountId);
+
+    UserAllocation getUserAllocation(@Param("accountId") Long accountId);
+
+    JSONObject getSwitchStatusByAccount(@Param("accountId") Long accountId);
+
+    List<Long> queryAccountsByDeleteComment();
+
+    String getCompanyNameByUserId(@Param("planId") String planId);
+
+    List<UserAllocation> listByMediaId(@Param("mediaId") String mediaId, @Param("accountStatus") Integer accountStatus);
+
+    List<JSONObject> getAccountListByProjectList(@Param("list") List list);
+
+    List<Long> getValidProjectIds(@Param("mediaId") Integer mediaId);
+
+    List<UserAllocation> getAccountListByUserIdAndProductId(@Param("userId") String userId, @Param("projectId") Long projectId, @Param("productId") Long productId);
+
+    List<JSONObject> getUserIdListByProductId(@Param("productId") Long productId);
+
+    List<JSONObject> getByAccountIds(@Param("accountIds") JSONArray accountIds);
+
+    List<Long> getKuaiShouUserIdListByProjectId(@Param("projectId") Long projectId);
+
+    List<JSONObject> selectAccountsByKuaishouUserId(@Param("userId") Long userId);
+
+    int updateProjectStrategyStatus(@Param("accountId") Long accountId, @Param("projectStrategy") Integer projectStrategy);
+
+    List<Long> queryAutomaticAccounts(@Param("projectId") Long projectId);
+
+    List<Long> getIdList();
+
+    JSONObject getProjectByAccountId(Long accountId);
+
+    Project getProjectEntity(Long projectId);
+
+    UserAllocation getOneByAccountId(Long accountId);
+}

+ 18 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/WexinConfigMapper.java

@@ -0,0 +1,18 @@
+package cn.com.ctop.job.bytedance.data.mapper;
+
+import cn.com.ctop.job.bytedance.data.utils.weixin.WexinConfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+
+/**
+ * 企业微信配置信息
+ *
+ * @author jeecg-boot
+ * 2021-06-17
+ * @version V1.0
+ */
+public interface WexinConfigMapper extends BaseMapper<WexinConfig> {
+
+    List<WexinConfig> getAll();
+}

+ 98 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdGetMapper.xml

@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceAdGetMapper" >
+  <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceAdGet" >
+    <id column="id" property="id" jdbcType="BIGINT" />
+    <result column="account_id" property="accountId" jdbcType="BIGINT" />
+    <result column="name" property="name" jdbcType="VARCHAR" />
+    <result column="campaign_id" property="campaignId" jdbcType="BIGINT" />
+    <result column="operation" property="operation" jdbcType="VARCHAR" />
+    <result column="plan_modify_time" property="planModifyTime" jdbcType="VARCHAR" />
+    <result column="delivery_range" property="deliveryRange" jdbcType="VARCHAR" />
+    <result column="union_video_type" property="unionVideoType" jdbcType="VARCHAR" />
+    <result column="deep_bid_type" property="deepBidType" jdbcType="VARCHAR" />
+    <result column="deep_cpa_bid" property="deepCpaBid" jdbcType="DECIMAL" />
+    <result column="ad_modify_time" property="adModifyTime" jdbcType="VARCHAR" />
+    <result column="ad_create_time" property="adCreateTime" jdbcType="VARCHAR" />
+    <result column="budget_mode" property="budgetMode" jdbcType="VARCHAR" />
+    <result column="budget" property="budget" jdbcType="DECIMAL" />
+    <result column="toutiao_status" property="toutiaoStatus" jdbcType="VARCHAR" />
+    <result column="opt_status" property="optStatus" jdbcType="VARCHAR" />
+    <result column="start_time" property="startTime" jdbcType="VARCHAR" />
+    <result column="end_time" property="endTime" jdbcType="VARCHAR" />
+    <result column="bid" property="bid" jdbcType="DECIMAL" />
+    <result column="pricing" property="pricing" jdbcType="VARCHAR" />
+    <result column="schedule_type" property="scheduleType" jdbcType="VARCHAR" />
+    <result column="schedule_time" property="scheduleTime" jdbcType="VARCHAR" />
+    <result column="flow_control_mode" property="flowControlMode" jdbcType="VARCHAR" />
+    <result column="download_type" property="downloadType" jdbcType="VARCHAR" />
+    <result column="external_url" property="externalUrl" jdbcType="VARCHAR" />
+    <result column="app_type" property="appType" jdbcType="VARCHAR" />
+    <result column="audit_reject_reason" property="auditRejectReason" jdbcType="VARCHAR" />
+    <result column="cpa_bid" property="cpaBid" jdbcType="DECIMAL" />
+    <result column="cpa_skip_first_phrase" property="cpaSkipFirstPhrase" jdbcType="INTEGER" />
+    <result column="convert_id" property="convertId" jdbcType="BIGINT" />
+    <result column="hide_if_converted" property="hideIfConverted" jdbcType="VARCHAR" />
+    <result column="hide_if_exists" property="hideIfExists" jdbcType="INTEGER" />
+    <result column="modify_time" property="modifyTime" jdbcType="VARCHAR" />
+    <result column="gender" property="gender" jdbcType="VARCHAR" />
+    <result column="platform" property="platform" jdbcType="VARCHAR" />
+    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+    <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
+    <result column="plan_status" property="planStatus" jdbcType="INTEGER" />
+    <result column="converted_time_duration" property="convertedTimeDuration" jdbcType="VARCHAR" />
+    <result column="luban_roi_goal" property="lubanRoiGoal" jdbcType="DECIMAL" />
+    <result column="roi_goal" property="roiGoal" jdbcType="DECIMAL" />
+    <result column="inventory_type" property="inventoryType" jdbcType="VARCHAR" />
+    <result column="audience_package_id" property="audiencePackageId" jdbcType="VARCHAR" />
+  </resultMap>
+
+  <sql id="Base_Column_List" >
+    id, account_id, name, campaign_id, operation, plan_modify_time, delivery_range, union_video_type, 
+    deep_bid_type, deep_cpa_bid, ad_modify_time, ad_create_time, budget_mode, budget, 
+    toutiao_status, opt_status, start_time, end_time, bid, pricing, schedule_type, schedule_time, 
+    flow_control_mode, download_type, external_url, app_type, audit_reject_reason, cpa_bid, 
+    cpa_skip_first_phrase, convert_id, hide_if_converted, hide_if_exists, modify_time, 
+    gender, platform, create_time, update_time, plan_status, converted_time_duration, 
+    luban_roi_goal, roi_goal, inventory_type, audience_package_id
+  </sql>
+
+  <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceAdGet" >
+    replace into bytedance_ad_get (id, account_id, name,
+      campaign_id, operation, plan_modify_time, 
+      delivery_range, union_video_type, deep_bid_type, 
+      deep_cpa_bid, ad_modify_time, ad_create_time, 
+      budget_mode, budget, toutiao_status, 
+      opt_status, start_time, end_time, 
+      bid, pricing, schedule_type, 
+      schedule_time, flow_control_mode, download_type, 
+      external_url, app_type, audit_reject_reason, 
+      cpa_bid, cpa_skip_first_phrase, convert_id, 
+      hide_if_converted, hide_if_exists, modify_time, 
+      gender, platform, create_time, 
+      update_time, plan_status, converted_time_duration, 
+      luban_roi_goal, roi_goal, inventory_type, 
+      audience_package_id, open_url, toutiao_package, 
+      audience, download_url)
+    values
+    <foreach collection="list" item="item" separator=",">
+        (#{item.id,jdbcType=BIGINT}, #{item.accountId,jdbcType=BIGINT}, #{item.name,jdbcType=VARCHAR},
+      #{item.campaignId,jdbcType=BIGINT}, #{item.operation,jdbcType=VARCHAR}, #{item.planModifyTime,jdbcType=VARCHAR}, 
+      #{item.deliveryRange,jdbcType=VARCHAR}, #{item.unionVideoType,jdbcType=VARCHAR}, #{item.deepBidType,jdbcType=VARCHAR}, 
+      #{item.deepCpaBid,jdbcType=DECIMAL}, #{item.adModifyTime,jdbcType=VARCHAR}, #{item.adCreateTime,jdbcType=VARCHAR}, 
+      #{item.budgetMode,jdbcType=VARCHAR}, #{item.budget,jdbcType=DECIMAL}, #{item.toutiaoStatus,jdbcType=VARCHAR}, 
+      #{item.optStatus,jdbcType=VARCHAR}, #{item.startTime,jdbcType=VARCHAR}, #{item.endTime,jdbcType=VARCHAR}, 
+      #{item.bid,jdbcType=DECIMAL}, #{item.pricing,jdbcType=VARCHAR}, #{item.scheduleType,jdbcType=VARCHAR}, 
+      #{item.scheduleTime,jdbcType=VARCHAR}, #{item.flowControlMode,jdbcType=VARCHAR}, #{item.downloadType,jdbcType=VARCHAR}, 
+      #{item.externalUrl,jdbcType=VARCHAR}, #{item.appType,jdbcType=VARCHAR}, #{item.auditRejectReason,jdbcType=VARCHAR}, 
+      #{item.cpaBid,jdbcType=DECIMAL}, #{item.cpaSkipFirstPhrase,jdbcType=INTEGER}, #{item.convertId,jdbcType=BIGINT}, 
+      #{item.hideIfConverted,jdbcType=VARCHAR}, #{item.hideIfExists,jdbcType=INTEGER}, #{item.modifyTime,jdbcType=VARCHAR}, 
+      #{item.gender,jdbcType=VARCHAR}, #{item.platform,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP}, 
+      #{item.updateTime,jdbcType=TIMESTAMP}, #{item.planStatus,jdbcType=INTEGER}, #{item.convertedTimeDuration,jdbcType=VARCHAR}, 
+      #{item.lubanRoiGoal,jdbcType=DECIMAL}, #{item.roiGoal,jdbcType=DECIMAL}, #{item.inventoryType,jdbcType=VARCHAR}, 
+      #{item.audiencePackageId,jdbcType=BIGINT}, #{item.openUrl,jdbcType=LONGVARCHAR}, #{item.toutiaoPackage,jdbcType=LONGVARCHAR},
+      #{item.audience,jdbcType=LONGVARCHAR}, #{item.downloadUrl,jdbcType=LONGVARCHAR})
+    </foreach>
+  </insert>
+
+</mapper>

+ 337 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdReportDailyMapper.xml

@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceAdReportDailyMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceAdReportDaily">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="campaign_id" property="campaignId" jdbcType="BIGINT"/>
+        <id column="ad_id" property="adId" jdbcType="BIGINT"/>
+        <id column="stat_datetime" property="statDatetime" jdbcType="INTEGER"/>
+        <result column="campaign_name" property="campaignName" jdbcType="VARCHAR"/>
+        <result column="ad_name" property="adName" jdbcType="VARCHAR"/>
+        <result column="cost" property="cost" jdbcType="DECIMAL"/>
+        <result column="show" property="show" jdbcType="BIGINT"/>
+        <result column="avg_show_cost" property="avgShowCost" jdbcType="DECIMAL"/>
+        <result column="click" property="click" jdbcType="BIGINT"/>
+        <result column="avg_click_cost" property="avgClickCost" jdbcType="DECIMAL"/>
+        <result column="ctr" property="ctr" jdbcType="DECIMAL"/>
+        <result column="convert" property="convert" jdbcType="BIGINT"/>
+        <result column="convert_cost" property="convertCost" jdbcType="DECIMAL"/>
+        <result column="convert_rate" property="convertRate" jdbcType="DECIMAL"/>
+        <result column="deep_convert" property="deepConvert" jdbcType="BIGINT"/>
+        <result column="deep_convert_cost" property="deepConvertCost" jdbcType="DECIMAL"/>
+        <result column="deep_convert_rate" property="deepConvertRate" jdbcType="DECIMAL"/>
+        <result column="attribution_convert" property="attributionConvert" jdbcType="BIGINT"/>
+        <result column="attribution_convert_cost" property="attributionConvertCost" jdbcType="DECIMAL"/>
+        <result column="attribution_deep_convert" property="attributionDeepConvert" jdbcType="BIGINT"/>
+        <result column="attribution_deep_convert_cost" property="attributionDeepConvertCost" jdbcType="DECIMAL"/>
+        <result column="download_start" property="downloadStart" jdbcType="BIGINT"/>
+        <result column="download_start_cost" property="downloadStartCost" jdbcType="DECIMAL"/>
+        <result column="download_start_rate" property="downloadStartRate" jdbcType="DECIMAL"/>
+        <result column="download_finish" property="downloadFinish" jdbcType="BIGINT"/>
+        <result column="download_finish_cost" property="downloadFinishCost" jdbcType="DECIMAL"/>
+        <result column="download_finish_rate" property="downloadFinishRate" jdbcType="DECIMAL"/>
+        <result column="click_install" property="clickInstall" jdbcType="BIGINT"/>
+        <result column="install_finish" property="installFinish" jdbcType="BIGINT"/>
+        <result column="install_finish_cost" property="installFinishCost" jdbcType="DECIMAL"/>
+        <result column="install_finish_rate" property="installFinishRate" jdbcType="DECIMAL"/>
+        <result column="active" property="active" jdbcType="BIGINT"/>
+        <result column="active_cost" property="activeCost" jdbcType="DECIMAL"/>
+        <result column="active_rate" property="activeRate" jdbcType="DECIMAL"/>
+        <result column="register" property="register" jdbcType="DECIMAL"/>
+        <result column="active_register_cost" property="activeRegisterCost" jdbcType="DECIMAL"/>
+        <result column="active_register_rate" property="activeRegisterRate" jdbcType="REAL"/>
+        <result column="next_day_open" property="nextDayOpen" jdbcType="BIGINT"/>
+        <result column="next_day_open_cost" property="nextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="next_day_open_rate" property="nextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_cnt" property="attributionNextDayOpenCnt" jdbcType="BIGINT"/>
+        <result column="attribution_next_day_open_cost" property="attributionNextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_rate" property="attributionNextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="game_addiction" property="gameAddiction" jdbcType="BIGINT"/>
+        <result column="game_addiction_cost" property="gameAddictionCost" jdbcType="DECIMAL"/>
+        <result column="game_addiction_rate" property="gameAddictionRate" jdbcType="DECIMAL"/>
+        <result column="pay_count" property="payCount" jdbcType="BIGINT"/>
+        <result column="active_pay_cost" property="activePayCost" jdbcType="DECIMAL"/>
+        <result column="active_pay_rate" property="activePayRate" jdbcType="DECIMAL"/>
+        <result column="loan_completion" property="loanCompletion" jdbcType="BIGINT"/>
+        <result column="loan_completion_cost" property="loanCompletionCost" jdbcType="DECIMAL"/>
+        <result column="loan_completion_rate" property="loanCompletionRate" jdbcType="DECIMAL"/>
+        <result column="pre_loan_credit" property="preLoanCredit" jdbcType="BIGINT"/>
+        <result column="pre_loan_credit_cost" property="preLoanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit" property="loanCredit" jdbcType="BIGINT"/>
+        <result column="loan_credit_cost" property="loanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit_rate" property="loanCreditRate" jdbcType="DECIMAL"/>
+        <result column="in_app_uv" property="inAppUv" jdbcType="BIGINT"/>
+        <result column="in_app_detail_uv" property="inAppDetailUv" jdbcType="BIGINT"/>
+        <result column="in_app_cart" property="inAppCart" jdbcType="BIGINT"/>
+        <result column="in_app_pay" property="inAppPay" jdbcType="BIGINT"/>
+        <result column="in_app_order" property="inAppOrder" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_count" property="attributionGamePay7dCount" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_cost" property="attributionGamePay7dCost" jdbcType="DECIMAL"/>
+        <result column="attribution_active_pay_7d_per_count" property="attributionActivePay7dPerCount"
+                jdbcType="BIGINT"/>
+        <result column="game_pay_cost" property="gamePayCost" jdbcType="DECIMAL"/>
+        <result column="game_pay_count" property="gamePayCount" jdbcType="BIGINT"/>
+        <result column="phone" property="phone" jdbcType="BIGINT"/>
+        <result column="form" property="form" jdbcType="BIGINT"/>
+        <result column="map_search" property="mapSearch" jdbcType="BIGINT"/>
+        <result column="button" property="button" jdbcType="BIGINT"/>
+        <result column="view" property="view" jdbcType="BIGINT"/>
+        <result column="download" property="download" jdbcType="BIGINT"/>
+        <result column="qq" property="qq" jdbcType="BIGINT"/>
+        <result column="lottery" property="lottery" jdbcType="BIGINT"/>
+        <result column="vote" property="vote" jdbcType="BIGINT"/>
+        <result column="message" property="message" jdbcType="BIGINT"/>
+        <result column="redirect" property="redirect" jdbcType="BIGINT"/>
+        <result column="shopping" property="shopping" jdbcType="BIGINT"/>
+        <result column="consult" property="consult" jdbcType="BIGINT"/>
+        <result column="wechat" property="wechat" jdbcType="BIGINT"/>
+        <result column="phone_confirm" property="phoneConfirm" jdbcType="BIGINT"/>
+        <result column="phone_connect" property="phoneConnect" jdbcType="BIGINT"/>
+        <result column="consult_effective" property="consultEffective" jdbcType="BIGINT"/>
+        <result column="coupon" property="coupon" jdbcType="BIGINT"/>
+        <result column="coupon_single_page" property="couponSinglePage" jdbcType="BIGINT"/>
+        <result column="redirect_to_shop" property="redirectToShop" jdbcType="BIGINT"/>
+        <result column="poi_collect" property="poiCollect" jdbcType="BIGINT"/>
+        <result column="poi_address_click" property="poiAddressClick" jdbcType="BIGINT"/>
+        <result column="luban_order_cnt" property="lubanOrderCnt" jdbcType="BIGINT"/>
+        <result column="luban_order_stat_amount" property="lubanOrderStatAmount" jdbcType="DECIMAL"/>
+        <result column="luban_order_roi" property="lubanOrderRoi" jdbcType="DECIMAL"/>
+        <result column="luban_live_enter_cnt" property="lubanLiveEnterCnt" jdbcType="BIGINT"/>
+        <result column="live_watch_one_minute_count" property="liveWatchOneMinuteCount" jdbcType="BIGINT"/>
+        <result column="luban_live_follow_cnt" property="lubanLiveFollowCnt" jdbcType="BIGINT"/>
+        <result column="live_fans_club_join_cnt" property="liveFansClubJoinCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_comment_cnt" property="lubanLiveCommentCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_share_cnt" property="lubanLiveShareCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_cnt" property="lubanLiveGiftCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_amount" property="lubanLiveGiftAmount" jdbcType="DECIMAL"/>
+        <result column="luban_live_slidecart_click_cnt" property="lubanLiveSlidecartClickCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_click_product_cnt" property="lubanLiveClickProductCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_count" property="lubanLivePayOrderCount" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_stat_cost" property="lubanLivePayOrderStatCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_count" property="liveComponentClickCount" jdbcType="BIGINT"/>
+        <result column="live_component_click_cost" property="liveComponentClickCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_rate" property="liveComponentClickRate" jdbcType="DECIMAL"/>
+        <result column="wechat_login_count" property="wechatLoginCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_login_30d_count" property="attributionWechatLogin30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_login_cost" property="wechatLoginCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_login_30d_cost" property="attributionWechatLogin30dCost" jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_count" property="wechatFirstPayCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_first_pay_30d_count" property="attributionWechatFirstPay30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_first_pay_cost" property="wechatFirstPayCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_cost" property="attributionWechatFirstPay30dCost"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_rate" property="wechatFirstPayRate" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_rate" property="attributionWechatFirstPay30dRate"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_pay_amount" property="wechatPayAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_amount" property="attributionWechatPay30dAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_roi" property="attributionWechatPay30dRoi" jdbcType="DECIMAL"/>
+        <result column="phone_effective" property="phoneEffective" jdbcType="BIGINT"/>
+        <result column="total_play" property="totalPlay" jdbcType="BIGINT"/>
+        <result column="valid_play" property="validPlay" jdbcType="BIGINT"/>
+        <result column="valid_play_cost" property="validPlayCost" jdbcType="DECIMAL"/>
+        <result column="valid_play_rate" property="validPlayRate" jdbcType="DECIMAL"/>
+        <result column="play_25_feed_break" property="play25FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_50_feed_break" property="play50FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_75_feed_break" property="play75FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_100_feed_break" property="play100FeedBreak" jdbcType="BIGINT"/>
+        <result column="average_play_time_per_play" property="averagePlayTimePerPlay" jdbcType="DECIMAL"/>
+        <result column="play_over_rate" property="playOverRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play_rate" property="wifiPlayRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play" property="wifiPlay" jdbcType="BIGINT"/>
+        <result column="play_duration_sum" property="playDurationSum" jdbcType="BIGINT"/>
+        <result column="advanced_creative_phone_click" property="advancedCreativePhoneClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_counsel_click" property="advancedCreativeCounselClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_click" property="advancedCreativeFormClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_coupon_addition" property="advancedCreativeCouponAddition" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_submit" property="advancedCreativeFormSubmit" jdbcType="BIGINT"/>
+        <result column="card_show" property="cardShow" jdbcType="BIGINT"/>
+        <result column="share" property="share" jdbcType="BIGINT"/>
+        <result column="comment" property="comment" jdbcType="BIGINT"/>
+        <result column="like" property="like" jdbcType="BIGINT"/>
+        <result column="follow" property="follow" jdbcType="BIGINT"/>
+        <result column="home_visited" property="homeVisited" jdbcType="BIGINT"/>
+        <result column="ies_challenge_click" property="iesChallengeClick" jdbcType="BIGINT"/>
+        <result column="ies_music_click" property="iesMusicClick" jdbcType="BIGINT"/>
+        <result column="location_click" property="locationClick" jdbcType="BIGINT"/>
+        <result column="message_action" property="messageAction" jdbcType="BIGINT"/>
+        <result column="click_landing_page" property="clickLandingPage" jdbcType="BIGINT"/>
+        <result column="click_shopwindow" property="clickShopwindow" jdbcType="BIGINT"/>
+        <result column="click_website" property="clickWebsite" jdbcType="BIGINT"/>
+        <result column="click_download" property="clickDownload" jdbcType="BIGINT"/>
+        <result column="click_call_dy" property="clickCallDy" jdbcType="BIGINT"/>
+        <result column="submit_certification_count" property="submitCertificationCount" jdbcType="BIGINT"/>
+        <result column="approval_count" property="approvalCount" jdbcType="BIGINT"/>
+        <result column="first_rental_order_count" property="firstRentalOrderCount" jdbcType="BIGINT"/>
+        <result column="first_order_count" property="firstOrderCount" jdbcType="BIGINT"/>
+        <result column="commute_first_pay_count" property="commuteFirstPayCount" jdbcType="BIGINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+    advertiser_id, campaign_id, ad_id, stat_datetime, campaign_name, ad_name, cost, `show`,
+    avg_show_cost, click, avg_click_cost, ctr, convert, convert_cost, convert_rate, deep_convert, 
+    deep_convert_cost, deep_convert_rate, attribution_convert, attribution_convert_cost, 
+    attribution_deep_convert, attribution_deep_convert_cost, download_start, download_start_cost, 
+    download_start_rate, download_finish, download_finish_cost, download_finish_rate, 
+    click_install, install_finish, install_finish_cost, install_finish_rate, active, 
+    active_cost, active_rate, register, active_register_cost, active_register_rate, next_day_open, 
+    next_day_open_cost, next_day_open_rate, attribution_next_day_open_cnt, attribution_next_day_open_cost, 
+    attribution_next_day_open_rate, game_addiction, game_addiction_cost, game_addiction_rate, 
+    pay_count, active_pay_cost, active_pay_rate, loan_completion, loan_completion_cost, 
+    loan_completion_rate, pre_loan_credit, pre_loan_credit_cost, loan_credit, loan_credit_cost, 
+    loan_credit_rate, in_app_uv, in_app_detail_uv, in_app_cart, in_app_pay, in_app_order, 
+    attribution_game_pay_7d_count, attribution_game_pay_7d_cost, attribution_active_pay_7d_per_count, 
+    game_pay_cost, game_pay_count, phone, form, map_search, button, view, download, qq, 
+    lottery, vote, message, redirect, shopping, consult, wechat, phone_confirm, phone_connect, 
+    consult_effective, coupon, coupon_single_page, redirect_to_shop, poi_collect, poi_address_click, 
+    luban_order_cnt, luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt, 
+    live_watch_one_minute_count, luban_live_follow_cnt, live_fans_club_join_cnt, luban_live_comment_cnt, 
+    luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount, luban_live_slidecart_click_cnt, 
+    luban_live_click_product_cnt, luban_live_pay_order_count, luban_live_pay_order_stat_cost, 
+    live_component_click_count, live_component_click_cost, live_component_click_rate, 
+    wechat_login_count, attribution_wechat_login_30d_count, wechat_login_cost, attribution_wechat_login_30d_cost, 
+    wechat_first_pay_count, attribution_wechat_first_pay_30d_count, wechat_first_pay_cost, 
+    attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate, attribution_wechat_first_pay_30d_rate, 
+    wechat_pay_amount, attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi, 
+    phone_effective, total_play, valid_play, valid_play_cost, valid_play_rate, play_25_feed_break, 
+    play_50_feed_break, play_75_feed_break, play_100_feed_break, average_play_time_per_play, 
+    play_over_rate, wifi_play_rate, wifi_play, play_duration_sum, advanced_creative_phone_click, 
+    advanced_creative_counsel_click, advanced_creative_form_click, advanced_creative_coupon_addition, 
+    advanced_creative_form_submit, card_show, share, comment, like, follow, home_visited, 
+    ies_challenge_click, ies_music_click, location_click, message_action, click_landing_page, 
+    click_shopwindow, click_website, click_download, click_call_dy, submit_certification_count, 
+    approval_count, first_rental_order_count, first_order_count, commute_first_pay_count
+  </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceAdReportDaily">
+        replace into bytedance_ad_report_daily (advertiser_id, campaign_id, ad_id,
+      stat_datetime, campaign_name, ad_name, 
+      cost, `show`, avg_show_cost,
+      click, avg_click_cost, ctr, 
+      `convert`, convert_cost, convert_rate,
+      deep_convert, deep_convert_cost, deep_convert_rate, 
+      attribution_convert, attribution_convert_cost, 
+      attribution_deep_convert, attribution_deep_convert_cost, 
+      download_start, download_start_cost, download_start_rate, 
+      download_finish, download_finish_cost, download_finish_rate, 
+      click_install, install_finish, install_finish_cost, 
+      install_finish_rate, active, active_cost, 
+      active_rate, register, active_register_cost, 
+      active_register_rate, next_day_open, next_day_open_cost, 
+      next_day_open_rate, attribution_next_day_open_cnt, 
+      attribution_next_day_open_cost, attribution_next_day_open_rate, 
+      game_addiction, game_addiction_cost, game_addiction_rate, 
+      pay_count, active_pay_cost, active_pay_rate, 
+      loan_completion, loan_completion_cost, loan_completion_rate, 
+      pre_loan_credit, pre_loan_credit_cost, loan_credit, 
+      loan_credit_cost, loan_credit_rate, in_app_uv, 
+      in_app_detail_uv, in_app_cart, in_app_pay, 
+      in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost, 
+      attribution_active_pay_7d_per_count, game_pay_cost, 
+      game_pay_count, phone, form, 
+      map_search, button, `view`,
+      download, qq, lottery, 
+      vote, message, redirect, 
+      shopping, consult, wechat, 
+      phone_confirm, phone_connect, consult_effective, 
+      coupon, coupon_single_page, redirect_to_shop, 
+      poi_collect, poi_address_click, luban_order_cnt, 
+      luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt, 
+      live_watch_one_minute_count, luban_live_follow_cnt, 
+      live_fans_club_join_cnt, luban_live_comment_cnt, 
+      luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount, 
+      luban_live_slidecart_click_cnt, luban_live_click_product_cnt, 
+      luban_live_pay_order_count, luban_live_pay_order_stat_cost, 
+      live_component_click_count, live_component_click_cost, 
+      live_component_click_rate, wechat_login_count, 
+      attribution_wechat_login_30d_count, wechat_login_cost, 
+      attribution_wechat_login_30d_cost, wechat_first_pay_count, 
+      attribution_wechat_first_pay_30d_count, wechat_first_pay_cost, 
+      attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate, 
+      attribution_wechat_first_pay_30d_rate, wechat_pay_amount, 
+      attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi, 
+      phone_effective, total_play, valid_play, 
+      valid_play_cost, valid_play_rate, play_25_feed_break, 
+      play_50_feed_break, play_75_feed_break, play_100_feed_break, 
+      average_play_time_per_play, play_over_rate, wifi_play_rate, 
+      wifi_play, play_duration_sum, advanced_creative_phone_click, 
+      advanced_creative_counsel_click, advanced_creative_form_click, 
+      advanced_creative_coupon_addition, advanced_creative_form_submit, 
+      card_show, `share`, comment,
+      `like`, follow, home_visited,
+      ies_challenge_click, ies_music_click, location_click, 
+      message_action, click_landing_page, click_shopwindow, 
+      click_website, click_download, click_call_dy, 
+      submit_certification_count, approval_count, 
+      first_rental_order_count, first_order_count, commute_first_pay_count
+      )
+    values
+      <foreach collection="list" item="item" separator=",">
+        (#{item.advertiserId,jdbcType=BIGINT}, #{item.campaignId,jdbcType=BIGINT}, #{item.adId,jdbcType=BIGINT},
+        #{item.statDatetime,jdbcType=INTEGER}, #{item.campaignName,jdbcType=VARCHAR}, #{item.adName,jdbcType=VARCHAR},
+        #{item.cost,jdbcType=DECIMAL}, #{item.show,jdbcType=BIGINT}, #{item.avgShowCost,jdbcType=DECIMAL},
+        #{item.click,jdbcType=BIGINT}, #{item.avgClickCost,jdbcType=DECIMAL}, #{item.ctr,jdbcType=DECIMAL},
+        #{item.convert,jdbcType=BIGINT}, #{item.convertCost,jdbcType=DECIMAL}, #{item.convertRate,jdbcType=DECIMAL},
+        #{item.deepConvert,jdbcType=BIGINT}, #{item.deepConvertCost,jdbcType=DECIMAL}, #{item.deepConvertRate,jdbcType=DECIMAL},
+        #{item.attributionConvert,jdbcType=BIGINT}, #{item.attributionConvertCost,jdbcType=DECIMAL},
+        #{item.attributionDeepConvert,jdbcType=BIGINT}, #{item.attributionDeepConvertCost,jdbcType=DECIMAL},
+        #{item.downloadStart,jdbcType=BIGINT}, #{item.downloadStartCost,jdbcType=DECIMAL}, #{item.downloadStartRate,jdbcType=DECIMAL},
+        #{item.downloadFinish,jdbcType=BIGINT}, #{item.downloadFinishCost,jdbcType=DECIMAL}, #{item.downloadFinishRate,jdbcType=DECIMAL},
+        #{item.clickInstall,jdbcType=BIGINT}, #{item.installFinish,jdbcType=BIGINT}, #{item.installFinishCost,jdbcType=DECIMAL},
+        #{item.installFinishRate,jdbcType=DECIMAL}, #{item.active,jdbcType=BIGINT}, #{item.activeCost,jdbcType=DECIMAL},
+        #{item.activeRate,jdbcType=DECIMAL}, #{item.register,jdbcType=DECIMAL}, #{item.activeRegisterCost,jdbcType=DECIMAL},
+        #{item.activeRegisterRate,jdbcType=REAL}, #{item.nextDayOpen,jdbcType=BIGINT}, #{item.nextDayOpenCost,jdbcType=DECIMAL},
+        #{item.nextDayOpenRate,jdbcType=DECIMAL}, #{item.attributionNextDayOpenCnt,jdbcType=BIGINT},
+        #{item.attributionNextDayOpenCost,jdbcType=DECIMAL}, #{item.attributionNextDayOpenRate,jdbcType=DECIMAL},
+        #{item.gameAddiction,jdbcType=BIGINT}, #{item.gameAddictionCost,jdbcType=DECIMAL}, #{item.gameAddictionRate,jdbcType=DECIMAL},
+        #{item.payCount,jdbcType=BIGINT}, #{item.activePayCost,jdbcType=DECIMAL}, #{item.activePayRate,jdbcType=DECIMAL},
+        #{item.loanCompletion,jdbcType=BIGINT}, #{item.loanCompletionCost,jdbcType=DECIMAL}, #{item.loanCompletionRate,jdbcType=DECIMAL},
+        #{item.preLoanCredit,jdbcType=BIGINT}, #{item.preLoanCreditCost,jdbcType=DECIMAL}, #{item.loanCredit,jdbcType=BIGINT},
+        #{item.loanCreditCost,jdbcType=DECIMAL}, #{item.loanCreditRate,jdbcType=DECIMAL}, #{item.inAppUv,jdbcType=BIGINT},
+        #{item.inAppDetailUv,jdbcType=BIGINT}, #{item.inAppCart,jdbcType=BIGINT}, #{item.inAppPay,jdbcType=BIGINT},
+        #{item.inAppOrder,jdbcType=BIGINT}, #{item.attributionGamePay7dCount,jdbcType=BIGINT}, #{item.attributionGamePay7dCost,jdbcType=DECIMAL},
+        #{item.attributionActivePay7dPerCount,jdbcType=BIGINT}, #{item.gamePayCost,jdbcType=DECIMAL},
+        #{item.gamePayCount,jdbcType=BIGINT}, #{item.phone,jdbcType=BIGINT}, #{item.form,jdbcType=BIGINT},
+        #{item.mapSearch,jdbcType=BIGINT}, #{item.button,jdbcType=BIGINT}, #{item.view,jdbcType=BIGINT},
+        #{item.download,jdbcType=BIGINT}, #{item.qq,jdbcType=BIGINT}, #{item.lottery,jdbcType=BIGINT},
+        #{item.vote,jdbcType=BIGINT}, #{item.message,jdbcType=BIGINT}, #{item.redirect,jdbcType=BIGINT},
+        #{item.shopping,jdbcType=BIGINT}, #{item.consult,jdbcType=BIGINT}, #{item.wechat,jdbcType=BIGINT},
+        #{item.phoneConfirm,jdbcType=BIGINT}, #{item.phoneConnect,jdbcType=BIGINT}, #{item.consultEffective,jdbcType=BIGINT},
+        #{item.coupon,jdbcType=BIGINT}, #{item.couponSinglePage,jdbcType=BIGINT}, #{item.redirectToShop,jdbcType=BIGINT},
+        #{item.poiCollect,jdbcType=BIGINT}, #{item.poiAddressClick,jdbcType=BIGINT}, #{item.lubanOrderCnt,jdbcType=BIGINT},
+        #{item.lubanOrderStatAmount,jdbcType=DECIMAL}, #{item.lubanOrderRoi,jdbcType=DECIMAL}, #{item.lubanLiveEnterCnt,jdbcType=BIGINT},
+        #{item.liveWatchOneMinuteCount,jdbcType=BIGINT}, #{item.lubanLiveFollowCnt,jdbcType=BIGINT},
+        #{item.liveFansClubJoinCnt,jdbcType=BIGINT}, #{item.lubanLiveCommentCnt,jdbcType=BIGINT},
+        #{item.lubanLiveShareCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftAmount,jdbcType=DECIMAL},
+        #{item.lubanLiveSlidecartClickCnt,jdbcType=BIGINT}, #{item.lubanLiveClickProductCnt,jdbcType=BIGINT},
+        #{item.lubanLivePayOrderCount,jdbcType=BIGINT}, #{item.lubanLivePayOrderStatCost,jdbcType=DECIMAL},
+        #{item.liveComponentClickCount,jdbcType=BIGINT}, #{item.liveComponentClickCost,jdbcType=DECIMAL},
+        #{item.liveComponentClickRate,jdbcType=DECIMAL}, #{item.wechatLoginCount,jdbcType=BIGINT},
+        #{item.attributionWechatLogin30dCount,jdbcType=BIGINT}, #{item.wechatLoginCost,jdbcType=DECIMAL},
+        #{item.attributionWechatLogin30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayCount,jdbcType=BIGINT},
+        #{item.attributionWechatFirstPay30dCount,jdbcType=BIGINT}, #{item.wechatFirstPayCost,jdbcType=DECIMAL},
+        #{item.attributionWechatFirstPay30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayRate,jdbcType=DECIMAL},
+        #{item.attributionWechatFirstPay30dRate,jdbcType=DECIMAL}, #{item.wechatPayAmount,jdbcType=DECIMAL},
+        #{item.attributionWechatPay30dAmount,jdbcType=DECIMAL}, #{item.attributionWechatPay30dRoi,jdbcType=DECIMAL},
+        #{item.phoneEffective,jdbcType=BIGINT}, #{item.totalPlay,jdbcType=BIGINT}, #{item.validPlay,jdbcType=BIGINT},
+        #{item.validPlayCost,jdbcType=DECIMAL}, #{item.validPlayRate,jdbcType=DECIMAL}, #{item.play25FeedBreak,jdbcType=BIGINT},
+        #{item.play50FeedBreak,jdbcType=BIGINT}, #{item.play75FeedBreak,jdbcType=BIGINT}, #{item.play100FeedBreak,jdbcType=BIGINT},
+        #{item.averagePlayTimePerPlay,jdbcType=DECIMAL}, #{item.playOverRate,jdbcType=DECIMAL}, #{item.wifiPlayRate,jdbcType=DECIMAL},
+        #{item.wifiPlay,jdbcType=BIGINT}, #{item.playDurationSum,jdbcType=BIGINT}, #{item.advancedCreativePhoneClick,jdbcType=BIGINT},
+        #{item.advancedCreativeCounselClick,jdbcType=BIGINT}, #{item.advancedCreativeFormClick,jdbcType=BIGINT},
+        #{item.advancedCreativeCouponAddition,jdbcType=BIGINT}, #{item.advancedCreativeFormSubmit,jdbcType=BIGINT},
+        #{item.cardShow,jdbcType=BIGINT}, #{item.share,jdbcType=BIGINT}, #{item.comment,jdbcType=BIGINT},
+        #{item.like,jdbcType=BIGINT}, #{item.follow,jdbcType=BIGINT}, #{item.homeVisited,jdbcType=BIGINT},
+        #{item.iesChallengeClick,jdbcType=BIGINT}, #{item.iesMusicClick,jdbcType=BIGINT}, #{item.locationClick,jdbcType=BIGINT},
+        #{item.messageAction,jdbcType=BIGINT}, #{item.clickLandingPage,jdbcType=BIGINT}, #{item.clickShopwindow,jdbcType=BIGINT},
+        #{item.clickWebsite,jdbcType=BIGINT}, #{item.clickDownload,jdbcType=BIGINT}, #{item.clickCallDy,jdbcType=BIGINT},
+        #{item.submitCertificationCount,jdbcType=BIGINT}, #{item.approvalCount,jdbcType=BIGINT},
+        #{item.firstRentalOrderCount,jdbcType=BIGINT}, #{item.firstOrderCount,jdbcType=BIGINT}, #{item.commuteFirstPayCount,jdbcType=BIGINT}
+        )
+      </foreach>
+ 
+  </insert>
+
+</mapper>

+ 364 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdReportHourlyMapper.xml

@@ -0,0 +1,364 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceAdReportHourlyMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceAdReportHourly">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="campaign_id" property="campaignId" jdbcType="BIGINT"/>
+        <id column="ad_id" property="adId" jdbcType="BIGINT"/>
+        <id column="stat_datetime" property="statDatetime" jdbcType="INTEGER"/>
+        <id column="hour" property="hour" jdbcType="INTEGER"/>
+        <result column="campaign_name" property="campaignName" jdbcType="VARCHAR"/>
+        <result column="ad_name" property="adName" jdbcType="VARCHAR"/>
+        <result column="cost" property="cost" jdbcType="DECIMAL"/>
+        <result column="show" property="show" jdbcType="BIGINT"/>
+        <result column="avg_show_cost" property="avgShowCost" jdbcType="DECIMAL"/>
+        <result column="click" property="click" jdbcType="BIGINT"/>
+        <result column="avg_click_cost" property="avgClickCost" jdbcType="DECIMAL"/>
+        <result column="ctr" property="ctr" jdbcType="DECIMAL"/>
+        <result column="convert" property="convert" jdbcType="BIGINT"/>
+        <result column="convert_cost" property="convertCost" jdbcType="DECIMAL"/>
+        <result column="convert_rate" property="convertRate" jdbcType="DECIMAL"/>
+        <result column="deep_convert" property="deepConvert" jdbcType="BIGINT"/>
+        <result column="deep_convert_cost" property="deepConvertCost" jdbcType="DECIMAL"/>
+        <result column="deep_convert_rate" property="deepConvertRate" jdbcType="DECIMAL"/>
+        <result column="attribution_convert" property="attributionConvert" jdbcType="BIGINT"/>
+        <result column="attribution_convert_cost" property="attributionConvertCost" jdbcType="DECIMAL"/>
+        <result column="attribution_deep_convert" property="attributionDeepConvert" jdbcType="BIGINT"/>
+        <result column="attribution_deep_convert_cost" property="attributionDeepConvertCost" jdbcType="DECIMAL"/>
+        <result column="download_start" property="downloadStart" jdbcType="BIGINT"/>
+        <result column="download_start_cost" property="downloadStartCost" jdbcType="DECIMAL"/>
+        <result column="download_start_rate" property="downloadStartRate" jdbcType="DECIMAL"/>
+        <result column="download_finish" property="downloadFinish" jdbcType="BIGINT"/>
+        <result column="download_finish_cost" property="downloadFinishCost" jdbcType="DECIMAL"/>
+        <result column="download_finish_rate" property="downloadFinishRate" jdbcType="DECIMAL"/>
+        <result column="click_install" property="clickInstall" jdbcType="BIGINT"/>
+        <result column="install_finish" property="installFinish" jdbcType="BIGINT"/>
+        <result column="install_finish_cost" property="installFinishCost" jdbcType="DECIMAL"/>
+        <result column="install_finish_rate" property="installFinishRate" jdbcType="DECIMAL"/>
+        <result column="active" property="active" jdbcType="BIGINT"/>
+        <result column="active_cost" property="activeCost" jdbcType="DECIMAL"/>
+        <result column="active_rate" property="activeRate" jdbcType="DECIMAL"/>
+        <result column="register" property="register" jdbcType="DECIMAL"/>
+        <result column="active_register_cost" property="activeRegisterCost" jdbcType="DECIMAL"/>
+        <result column="active_register_rate" property="activeRegisterRate" jdbcType="REAL"/>
+        <result column="next_day_open" property="nextDayOpen" jdbcType="BIGINT"/>
+        <result column="next_day_open_cost" property="nextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="next_day_open_rate" property="nextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_cnt" property="attributionNextDayOpenCnt" jdbcType="BIGINT"/>
+        <result column="attribution_next_day_open_cost" property="attributionNextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_rate" property="attributionNextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="game_addiction" property="gameAddiction" jdbcType="BIGINT"/>
+        <result column="game_addiction_cost" property="gameAddictionCost" jdbcType="DECIMAL"/>
+        <result column="game_addiction_rate" property="gameAddictionRate" jdbcType="DECIMAL"/>
+        <result column="pay_count" property="payCount" jdbcType="BIGINT"/>
+        <result column="active_pay_cost" property="activePayCost" jdbcType="DECIMAL"/>
+        <result column="active_pay_rate" property="activePayRate" jdbcType="DECIMAL"/>
+        <result column="loan_completion" property="loanCompletion" jdbcType="BIGINT"/>
+        <result column="loan_completion_cost" property="loanCompletionCost" jdbcType="DECIMAL"/>
+        <result column="loan_completion_rate" property="loanCompletionRate" jdbcType="DECIMAL"/>
+        <result column="pre_loan_credit" property="preLoanCredit" jdbcType="BIGINT"/>
+        <result column="pre_loan_credit_cost" property="preLoanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit" property="loanCredit" jdbcType="BIGINT"/>
+        <result column="loan_credit_cost" property="loanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit_rate" property="loanCreditRate" jdbcType="DECIMAL"/>
+        <result column="in_app_uv" property="inAppUv" jdbcType="BIGINT"/>
+        <result column="in_app_detail_uv" property="inAppDetailUv" jdbcType="BIGINT"/>
+        <result column="in_app_cart" property="inAppCart" jdbcType="BIGINT"/>
+        <result column="in_app_pay" property="inAppPay" jdbcType="BIGINT"/>
+        <result column="in_app_order" property="inAppOrder" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_count" property="attributionGamePay7dCount" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_cost" property="attributionGamePay7dCost" jdbcType="DECIMAL"/>
+        <result column="attribution_active_pay_7d_per_count" property="attributionActivePay7dPerCount"
+                jdbcType="BIGINT"/>
+        <result column="game_pay_cost" property="gamePayCost" jdbcType="DECIMAL"/>
+        <result column="game_pay_count" property="gamePayCount" jdbcType="BIGINT"/>
+        <result column="phone" property="phone" jdbcType="BIGINT"/>
+        <result column="form" property="form" jdbcType="BIGINT"/>
+        <result column="map_search" property="mapSearch" jdbcType="BIGINT"/>
+        <result column="button" property="button" jdbcType="BIGINT"/>
+        <result column="view" property="view" jdbcType="BIGINT"/>
+        <result column="download" property="download" jdbcType="BIGINT"/>
+        <result column="qq" property="qq" jdbcType="BIGINT"/>
+        <result column="lottery" property="lottery" jdbcType="BIGINT"/>
+        <result column="vote" property="vote" jdbcType="BIGINT"/>
+        <result column="message" property="message" jdbcType="BIGINT"/>
+        <result column="redirect" property="redirect" jdbcType="BIGINT"/>
+        <result column="shopping" property="shopping" jdbcType="BIGINT"/>
+        <result column="consult" property="consult" jdbcType="BIGINT"/>
+        <result column="wechat" property="wechat" jdbcType="BIGINT"/>
+        <result column="phone_confirm" property="phoneConfirm" jdbcType="BIGINT"/>
+        <result column="phone_connect" property="phoneConnect" jdbcType="BIGINT"/>
+        <result column="consult_effective" property="consultEffective" jdbcType="BIGINT"/>
+        <result column="coupon" property="coupon" jdbcType="BIGINT"/>
+        <result column="coupon_single_page" property="couponSinglePage" jdbcType="BIGINT"/>
+        <result column="redirect_to_shop" property="redirectToShop" jdbcType="BIGINT"/>
+        <result column="poi_collect" property="poiCollect" jdbcType="BIGINT"/>
+        <result column="poi_address_click" property="poiAddressClick" jdbcType="BIGINT"/>
+        <result column="luban_order_cnt" property="lubanOrderCnt" jdbcType="BIGINT"/>
+        <result column="luban_order_stat_amount" property="lubanOrderStatAmount" jdbcType="DECIMAL"/>
+        <result column="luban_order_roi" property="lubanOrderRoi" jdbcType="DECIMAL"/>
+        <result column="luban_live_enter_cnt" property="lubanLiveEnterCnt" jdbcType="BIGINT"/>
+        <result column="live_watch_one_minute_count" property="liveWatchOneMinuteCount" jdbcType="BIGINT"/>
+        <result column="luban_live_follow_cnt" property="lubanLiveFollowCnt" jdbcType="BIGINT"/>
+        <result column="live_fans_club_join_cnt" property="liveFansClubJoinCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_comment_cnt" property="lubanLiveCommentCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_share_cnt" property="lubanLiveShareCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_cnt" property="lubanLiveGiftCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_amount" property="lubanLiveGiftAmount" jdbcType="DECIMAL"/>
+        <result column="luban_live_slidecart_click_cnt" property="lubanLiveSlidecartClickCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_click_product_cnt" property="lubanLiveClickProductCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_count" property="lubanLivePayOrderCount" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_stat_cost" property="lubanLivePayOrderStatCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_count" property="liveComponentClickCount" jdbcType="BIGINT"/>
+        <result column="live_component_click_cost" property="liveComponentClickCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_rate" property="liveComponentClickRate" jdbcType="DECIMAL"/>
+        <result column="wechat_login_count" property="wechatLoginCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_login_30d_count" property="attributionWechatLogin30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_login_cost" property="wechatLoginCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_login_30d_cost" property="attributionWechatLogin30dCost" jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_count" property="wechatFirstPayCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_first_pay_30d_count" property="attributionWechatFirstPay30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_first_pay_cost" property="wechatFirstPayCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_cost" property="attributionWechatFirstPay30dCost"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_rate" property="wechatFirstPayRate" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_rate" property="attributionWechatFirstPay30dRate"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_pay_amount" property="wechatPayAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_amount" property="attributionWechatPay30dAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_roi" property="attributionWechatPay30dRoi" jdbcType="DECIMAL"/>
+        <result column="phone_effective" property="phoneEffective" jdbcType="BIGINT"/>
+        <result column="total_play" property="totalPlay" jdbcType="BIGINT"/>
+        <result column="valid_play" property="validPlay" jdbcType="BIGINT"/>
+        <result column="valid_play_cost" property="validPlayCost" jdbcType="DECIMAL"/>
+        <result column="valid_play_rate" property="validPlayRate" jdbcType="DECIMAL"/>
+        <result column="play_25_feed_break" property="play25FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_50_feed_break" property="play50FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_75_feed_break" property="play75FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_100_feed_break" property="play100FeedBreak" jdbcType="BIGINT"/>
+        <result column="average_play_time_per_play" property="averagePlayTimePerPlay" jdbcType="DECIMAL"/>
+        <result column="play_over_rate" property="playOverRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play_rate" property="wifiPlayRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play" property="wifiPlay" jdbcType="BIGINT"/>
+        <result column="play_duration_sum" property="playDurationSum" jdbcType="BIGINT"/>
+        <result column="advanced_creative_phone_click" property="advancedCreativePhoneClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_counsel_click" property="advancedCreativeCounselClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_click" property="advancedCreativeFormClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_coupon_addition" property="advancedCreativeCouponAddition" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_submit" property="advancedCreativeFormSubmit" jdbcType="BIGINT"/>
+        <result column="card_show" property="cardShow" jdbcType="BIGINT"/>
+        <result column="share" property="share" jdbcType="BIGINT"/>
+        <result column="comment" property="comment" jdbcType="BIGINT"/>
+        <result column="like" property="like" jdbcType="BIGINT"/>
+        <result column="follow" property="follow" jdbcType="BIGINT"/>
+        <result column="home_visited" property="homeVisited" jdbcType="BIGINT"/>
+        <result column="ies_challenge_click" property="iesChallengeClick" jdbcType="BIGINT"/>
+        <result column="ies_music_click" property="iesMusicClick" jdbcType="BIGINT"/>
+        <result column="location_click" property="locationClick" jdbcType="BIGINT"/>
+        <result column="message_action" property="messageAction" jdbcType="BIGINT"/>
+        <result column="click_landing_page" property="clickLandingPage" jdbcType="BIGINT"/>
+        <result column="click_shopwindow" property="clickShopwindow" jdbcType="BIGINT"/>
+        <result column="click_website" property="clickWebsite" jdbcType="BIGINT"/>
+        <result column="click_download" property="clickDownload" jdbcType="BIGINT"/>
+        <result column="click_call_dy" property="clickCallDy" jdbcType="BIGINT"/>
+        <result column="submit_certification_count" property="submitCertificationCount" jdbcType="BIGINT"/>
+        <result column="approval_count" property="approvalCount" jdbcType="BIGINT"/>
+        <result column="first_rental_order_count" property="firstRentalOrderCount" jdbcType="BIGINT"/>
+        <result column="first_order_count" property="firstOrderCount" jdbcType="BIGINT"/>
+        <result column="commute_first_pay_count" property="commuteFirstPayCount" jdbcType="BIGINT"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+    advertiser_id, campaign_id, ad_id, stat_datetime, hour, campaign_name, ad_name, cost, 
+    show, avg_show_cost, click, avg_click_cost, ctr, convert, convert_cost, convert_rate, 
+    deep_convert, deep_convert_cost, deep_convert_rate, attribution_convert, attribution_convert_cost, 
+    attribution_deep_convert, attribution_deep_convert_cost, download_start, download_start_cost, 
+    download_start_rate, download_finish, download_finish_cost, download_finish_rate, 
+    click_install, install_finish, install_finish_cost, install_finish_rate, active, 
+    active_cost, active_rate, register, active_register_cost, active_register_rate, next_day_open, 
+    next_day_open_cost, next_day_open_rate, attribution_next_day_open_cnt, attribution_next_day_open_cost, 
+    attribution_next_day_open_rate, game_addiction, game_addiction_cost, game_addiction_rate, 
+    pay_count, active_pay_cost, active_pay_rate, loan_completion, loan_completion_cost, 
+    loan_completion_rate, pre_loan_credit, pre_loan_credit_cost, loan_credit, loan_credit_cost, 
+    loan_credit_rate, in_app_uv, in_app_detail_uv, in_app_cart, in_app_pay, in_app_order, 
+    attribution_game_pay_7d_count, attribution_game_pay_7d_cost, attribution_active_pay_7d_per_count, 
+    game_pay_cost, game_pay_count, phone, form, map_search, button, view, download, qq, 
+    lottery, vote, message, redirect, shopping, consult, wechat, phone_confirm, phone_connect, 
+    consult_effective, coupon, coupon_single_page, redirect_to_shop, poi_collect, poi_address_click, 
+    luban_order_cnt, luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt, 
+    live_watch_one_minute_count, luban_live_follow_cnt, live_fans_club_join_cnt, luban_live_comment_cnt, 
+    luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount, luban_live_slidecart_click_cnt, 
+    luban_live_click_product_cnt, luban_live_pay_order_count, luban_live_pay_order_stat_cost, 
+    live_component_click_count, live_component_click_cost, live_component_click_rate, 
+    wechat_login_count, attribution_wechat_login_30d_count, wechat_login_cost, attribution_wechat_login_30d_cost, 
+    wechat_first_pay_count, attribution_wechat_first_pay_30d_count, wechat_first_pay_cost, 
+    attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate, attribution_wechat_first_pay_30d_rate, 
+    wechat_pay_amount, attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi, 
+    phone_effective, total_play, valid_play, valid_play_cost, valid_play_rate, play_25_feed_break, 
+    play_50_feed_break, play_75_feed_break, play_100_feed_break, average_play_time_per_play, 
+    play_over_rate, wifi_play_rate, wifi_play, play_duration_sum, advanced_creative_phone_click, 
+    advanced_creative_counsel_click, advanced_creative_form_click, advanced_creative_coupon_addition, 
+    advanced_creative_form_submit, card_show, share, comment, like, follow, home_visited, 
+    ies_challenge_click, ies_music_click, location_click, message_action, click_landing_page, 
+    click_shopwindow, click_website, click_download, click_call_dy, submit_certification_count, 
+    approval_count, first_rental_order_count, first_order_count, commute_first_pay_count
+  </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceAdReportHourly">
+        replace into bytedance_ad_report_hourly (advertiser_id, campaign_id, ad_id,
+        stat_datetime, `hour`, campaign_name,
+        ad_name, cost, `show`,
+        avg_show_cost, click, avg_click_cost,
+        ctr, `convert`, convert_cost,
+        convert_rate, deep_convert, deep_convert_cost,
+        deep_convert_rate, attribution_convert, attribution_convert_cost,
+        attribution_deep_convert, attribution_deep_convert_cost,
+        download_start, download_start_cost, download_start_rate,
+        download_finish, download_finish_cost, download_finish_rate,
+        click_install, install_finish, install_finish_cost,
+        install_finish_rate, active, active_cost,
+        active_rate, register, active_register_cost,
+        active_register_rate, next_day_open, next_day_open_cost,
+        next_day_open_rate, attribution_next_day_open_cnt,
+        attribution_next_day_open_cost, attribution_next_day_open_rate,
+        game_addiction, game_addiction_cost, game_addiction_rate,
+        pay_count, active_pay_cost, active_pay_rate,
+        loan_completion, loan_completion_cost, loan_completion_rate,
+        pre_loan_credit, pre_loan_credit_cost, loan_credit,
+        loan_credit_cost, loan_credit_rate, in_app_uv,
+        in_app_detail_uv, in_app_cart, in_app_pay,
+        in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost,
+        attribution_active_pay_7d_per_count, game_pay_cost,
+        game_pay_count, phone, form,
+        map_search, button, `view`,
+        download, qq, lottery,
+        vote, message, redirect,
+        shopping, consult, wechat,
+        phone_confirm, phone_connect, consult_effective,
+        coupon, coupon_single_page, redirect_to_shop,
+        poi_collect, poi_address_click, luban_order_cnt,
+        luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt,
+        live_watch_one_minute_count, luban_live_follow_cnt,
+        live_fans_club_join_cnt, luban_live_comment_cnt,
+        luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount,
+        luban_live_slidecart_click_cnt, luban_live_click_product_cnt,
+        luban_live_pay_order_count, luban_live_pay_order_stat_cost,
+        live_component_click_count, live_component_click_cost,
+        live_component_click_rate, wechat_login_count,
+        attribution_wechat_login_30d_count, wechat_login_cost,
+        attribution_wechat_login_30d_cost, wechat_first_pay_count,
+        attribution_wechat_first_pay_30d_count, wechat_first_pay_cost,
+        attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate,
+        attribution_wechat_first_pay_30d_rate, wechat_pay_amount,
+        attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi,
+        phone_effective, total_play, valid_play,
+        valid_play_cost, valid_play_rate, play_25_feed_break,
+        play_50_feed_break, play_75_feed_break, play_100_feed_break,
+        average_play_time_per_play, play_over_rate, wifi_play_rate,
+        wifi_play, play_duration_sum, advanced_creative_phone_click,
+        advanced_creative_counsel_click, advanced_creative_form_click,
+        advanced_creative_coupon_addition, advanced_creative_form_submit,
+        card_show, `share`, comment,
+        `like`, follow, home_visited,
+        ies_challenge_click, ies_music_click, location_click,
+        message_action, click_landing_page, click_shopwindow,
+        click_website, click_download, click_call_dy,
+        submit_certification_count, approval_count,
+        first_rental_order_count, first_order_count, commute_first_pay_count
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.campaignId,jdbcType=BIGINT}, #{item.adId,jdbcType=BIGINT},
+            #{item.statDatetime,jdbcType=INTEGER}, #{item.hour,jdbcType=INTEGER}, #{item.campaignName,jdbcType=VARCHAR},
+            #{item.adName,jdbcType=VARCHAR}, #{item.cost,jdbcType=DECIMAL}, #{item.show,jdbcType=BIGINT},
+            #{item.avgShowCost,jdbcType=DECIMAL}, #{item.click,jdbcType=BIGINT}, #{item.avgClickCost,jdbcType=DECIMAL},
+            #{item.ctr,jdbcType=DECIMAL}, #{item.convert,jdbcType=BIGINT}, #{item.convertCost,jdbcType=DECIMAL},
+            #{item.convertRate,jdbcType=DECIMAL}, #{item.deepConvert,jdbcType=BIGINT},
+            #{item.deepConvertCost,jdbcType=DECIMAL},
+            #{item.deepConvertRate,jdbcType=DECIMAL}, #{item.attributionConvert,jdbcType=BIGINT},
+            #{item.attributionConvertCost,jdbcType=DECIMAL},
+            #{item.attributionDeepConvert,jdbcType=BIGINT}, #{item.attributionDeepConvertCost,jdbcType=DECIMAL},
+            #{item.downloadStart,jdbcType=BIGINT}, #{item.downloadStartCost,jdbcType=DECIMAL},
+            #{item.downloadStartRate,jdbcType=DECIMAL},
+            #{item.downloadFinish,jdbcType=BIGINT}, #{item.downloadFinishCost,jdbcType=DECIMAL},
+            #{item.downloadFinishRate,jdbcType=DECIMAL},
+            #{item.clickInstall,jdbcType=BIGINT}, #{item.installFinish,jdbcType=BIGINT},
+            #{item.installFinishCost,jdbcType=DECIMAL},
+            #{item.installFinishRate,jdbcType=DECIMAL}, #{item.active,jdbcType=BIGINT},
+            #{item.activeCost,jdbcType=DECIMAL},
+            #{item.activeRate,jdbcType=DECIMAL}, #{item.register,jdbcType=DECIMAL},
+            #{item.activeRegisterCost,jdbcType=DECIMAL},
+            #{item.activeRegisterRate,jdbcType=REAL}, #{item.nextDayOpen,jdbcType=BIGINT},
+            #{item.nextDayOpenCost,jdbcType=DECIMAL},
+            #{item.nextDayOpenRate,jdbcType=DECIMAL}, #{item.attributionNextDayOpenCnt,jdbcType=BIGINT},
+            #{item.attributionNextDayOpenCost,jdbcType=DECIMAL}, #{item.attributionNextDayOpenRate,jdbcType=DECIMAL},
+            #{item.gameAddiction,jdbcType=BIGINT}, #{item.gameAddictionCost,jdbcType=DECIMAL},
+            #{item.gameAddictionRate,jdbcType=DECIMAL},
+            #{item.payCount,jdbcType=BIGINT}, #{item.activePayCost,jdbcType=DECIMAL},
+            #{item.activePayRate,jdbcType=DECIMAL},
+            #{item.loanCompletion,jdbcType=BIGINT}, #{item.loanCompletionCost,jdbcType=DECIMAL},
+            #{item.loanCompletionRate,jdbcType=DECIMAL},
+            #{item.preLoanCredit,jdbcType=BIGINT}, #{item.preLoanCreditCost,jdbcType=DECIMAL},
+            #{item.loanCredit,jdbcType=BIGINT},
+            #{item.loanCreditCost,jdbcType=DECIMAL}, #{item.loanCreditRate,jdbcType=DECIMAL},
+            #{item.inAppUv,jdbcType=BIGINT},
+            #{item.inAppDetailUv,jdbcType=BIGINT}, #{item.inAppCart,jdbcType=BIGINT}, #{item.inAppPay,jdbcType=BIGINT},
+            #{item.inAppOrder,jdbcType=BIGINT}, #{item.attributionGamePay7dCount,jdbcType=BIGINT},
+            #{item.attributionGamePay7dCost,jdbcType=DECIMAL},
+            #{item.attributionActivePay7dPerCount,jdbcType=BIGINT}, #{item.gamePayCost,jdbcType=DECIMAL},
+            #{item.gamePayCount,jdbcType=BIGINT}, #{item.phone,jdbcType=BIGINT}, #{item.form,jdbcType=BIGINT},
+            #{item.mapSearch,jdbcType=BIGINT}, #{item.button,jdbcType=BIGINT}, #{item.view,jdbcType=BIGINT},
+            #{item.download,jdbcType=BIGINT}, #{item.qq,jdbcType=BIGINT}, #{item.lottery,jdbcType=BIGINT},
+            #{item.vote,jdbcType=BIGINT}, #{item.message,jdbcType=BIGINT}, #{item.redirect,jdbcType=BIGINT},
+            #{item.shopping,jdbcType=BIGINT}, #{item.consult,jdbcType=BIGINT}, #{item.wechat,jdbcType=BIGINT},
+            #{item.phoneConfirm,jdbcType=BIGINT}, #{item.phoneConnect,jdbcType=BIGINT},
+            #{item.consultEffective,jdbcType=BIGINT},
+            #{item.coupon,jdbcType=BIGINT}, #{item.couponSinglePage,jdbcType=BIGINT},
+            #{item.redirectToShop,jdbcType=BIGINT},
+            #{item.poiCollect,jdbcType=BIGINT}, #{item.poiAddressClick,jdbcType=BIGINT},
+            #{item.lubanOrderCnt,jdbcType=BIGINT},
+            #{item.lubanOrderStatAmount,jdbcType=DECIMAL}, #{item.lubanOrderRoi,jdbcType=DECIMAL},
+            #{item.lubanLiveEnterCnt,jdbcType=BIGINT},
+            #{item.liveWatchOneMinuteCount,jdbcType=BIGINT}, #{item.lubanLiveFollowCnt,jdbcType=BIGINT},
+            #{item.liveFansClubJoinCnt,jdbcType=BIGINT}, #{item.lubanLiveCommentCnt,jdbcType=BIGINT},
+            #{item.lubanLiveShareCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftCnt,jdbcType=BIGINT},
+            #{item.lubanLiveGiftAmount,jdbcType=DECIMAL},
+            #{item.lubanLiveSlidecartClickCnt,jdbcType=BIGINT}, #{item.lubanLiveClickProductCnt,jdbcType=BIGINT},
+            #{item.lubanLivePayOrderCount,jdbcType=BIGINT}, #{item.lubanLivePayOrderStatCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickCount,jdbcType=BIGINT}, #{item.liveComponentClickCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickRate,jdbcType=DECIMAL}, #{item.wechatLoginCount,jdbcType=BIGINT},
+            #{item.attributionWechatLogin30dCount,jdbcType=BIGINT}, #{item.wechatLoginCost,jdbcType=DECIMAL},
+            #{item.attributionWechatLogin30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionWechatFirstPay30dCount,jdbcType=BIGINT}, #{item.wechatFirstPayCost,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayRate,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dRate,jdbcType=DECIMAL}, #{item.wechatPayAmount,jdbcType=DECIMAL},
+            #{item.attributionWechatPay30dAmount,jdbcType=DECIMAL}, #{item.attributionWechatPay30dRoi,jdbcType=DECIMAL},
+            #{item.phoneEffective,jdbcType=BIGINT}, #{item.totalPlay,jdbcType=BIGINT},
+            #{item.validPlay,jdbcType=BIGINT},
+            #{item.validPlayCost,jdbcType=DECIMAL}, #{item.validPlayRate,jdbcType=DECIMAL},
+            #{item.play25FeedBreak,jdbcType=BIGINT},
+            #{item.play50FeedBreak,jdbcType=BIGINT}, #{item.play75FeedBreak,jdbcType=BIGINT},
+            #{item.play100FeedBreak,jdbcType=BIGINT},
+            #{item.averagePlayTimePerPlay,jdbcType=DECIMAL}, #{item.playOverRate,jdbcType=DECIMAL},
+            #{item.wifiPlayRate,jdbcType=DECIMAL},
+            #{item.wifiPlay,jdbcType=BIGINT}, #{item.playDurationSum,jdbcType=BIGINT},
+            #{item.advancedCreativePhoneClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCounselClick,jdbcType=BIGINT}, #{item.advancedCreativeFormClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCouponAddition,jdbcType=BIGINT}, #{item.advancedCreativeFormSubmit,jdbcType=BIGINT},
+            #{item.cardShow,jdbcType=BIGINT}, #{item.share,jdbcType=BIGINT}, #{item.comment,jdbcType=BIGINT},
+            #{item.like,jdbcType=BIGINT}, #{item.follow,jdbcType=BIGINT}, #{item.homeVisited,jdbcType=BIGINT},
+            #{item.iesChallengeClick,jdbcType=BIGINT}, #{item.iesMusicClick,jdbcType=BIGINT},
+            #{item.locationClick,jdbcType=BIGINT},
+            #{item.messageAction,jdbcType=BIGINT}, #{item.clickLandingPage,jdbcType=BIGINT},
+            #{item.clickShopwindow,jdbcType=BIGINT},
+            #{item.clickWebsite,jdbcType=BIGINT}, #{item.clickDownload,jdbcType=BIGINT},
+            #{item.clickCallDy,jdbcType=BIGINT},
+            #{item.submitCertificationCount,jdbcType=BIGINT}, #{item.approvalCount,jdbcType=BIGINT},
+            #{item.firstRentalOrderCount,jdbcType=BIGINT}, #{item.firstOrderCount,jdbcType=BIGINT},
+            #{item.commuteFirstPayCount,jdbcType=BIGINT}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

+ 20 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdvertiserHourlyReportMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceAdvertiserHourlyReportMapper">
+
+    <select id="selectMaxHour" resultType="java.lang.Integer">
+        select max(`hour`)
+        from application.bytedance_advertiser_report_hourly_dw
+        where account_id = #{accountId}
+          and stat_datetime = #{statDate}
+    </select>
+
+    <select id="getCost" resultType="java.math.BigDecimal">
+        select cost
+        from application.bytedance_advertiser_report_hourly_dw
+        where account_id = #{accountId}
+          and stat_datetime = #{statDate}
+          and `hour` = #{statHour}
+    </select>
+
+</mapper>

File diff suppressed because it is too large
+ 2300 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdvertiserReportDailyMapper.xml


+ 849 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAdvertiserReportHourlyMapper.xml

@@ -0,0 +1,849 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceAdvertiserReportHourlyMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportHourly">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="stat_datetime" property="statDatetime" jdbcType="INTEGER"/>
+        <id column="hour" property="hour" jdbcType="INTEGER"/>
+        <result column="cost" property="cost" jdbcType="DECIMAL"/>
+        <result column="show" property="show" jdbcType="BIGINT"/>
+        <result column="avg_show_cost" property="avgShowCost" jdbcType="DECIMAL"/>
+        <result column="click" property="click" jdbcType="BIGINT"/>
+        <result column="avg_click_cost" property="avgClickCost" jdbcType="DECIMAL"/>
+        <result column="ctr" property="ctr" jdbcType="DECIMAL"/>
+        <result column="convert" property="convert" jdbcType="BIGINT"/>
+        <result column="convert_cost" property="convertCost" jdbcType="DECIMAL"/>
+        <result column="convert_rate" property="convertRate" jdbcType="DECIMAL"/>
+        <result column="deep_convert" property="deepConvert" jdbcType="BIGINT"/>
+        <result column="deep_convert_cost" property="deepConvertCost" jdbcType="DECIMAL"/>
+        <result column="deep_convert_rate" property="deepConvertRate" jdbcType="DECIMAL"/>
+        <result column="attribution_convert" property="attributionConvert" jdbcType="BIGINT"/>
+        <result column="attribution_convert_cost" property="attributionConvertCost" jdbcType="DECIMAL"/>
+        <result column="attribution_deep_convert" property="attributionDeepConvert" jdbcType="BIGINT"/>
+        <result column="attribution_deep_convert_cost" property="attributionDeepConvertCost" jdbcType="DECIMAL"/>
+        <result column="download_start" property="downloadStart" jdbcType="BIGINT"/>
+        <result column="download_start_cost" property="downloadStartCost" jdbcType="DECIMAL"/>
+        <result column="download_start_rate" property="downloadStartRate" jdbcType="DECIMAL"/>
+        <result column="download_finish" property="downloadFinish" jdbcType="BIGINT"/>
+        <result column="download_finish_cost" property="downloadFinishCost" jdbcType="DECIMAL"/>
+        <result column="download_finish_rate" property="downloadFinishRate" jdbcType="DECIMAL"/>
+        <result column="click_install" property="clickInstall" jdbcType="BIGINT"/>
+        <result column="install_finish" property="installFinish" jdbcType="BIGINT"/>
+        <result column="install_finish_cost" property="installFinishCost" jdbcType="DECIMAL"/>
+        <result column="install_finish_rate" property="installFinishRate" jdbcType="DECIMAL"/>
+        <result column="active" property="active" jdbcType="BIGINT"/>
+        <result column="active_cost" property="activeCost" jdbcType="DECIMAL"/>
+        <result column="active_rate" property="activeRate" jdbcType="DECIMAL"/>
+        <result column="register" property="register" jdbcType="DECIMAL"/>
+        <result column="active_register_cost" property="activeRegisterCost" jdbcType="DECIMAL"/>
+        <result column="active_register_rate" property="activeRegisterRate" jdbcType="REAL"/>
+        <result column="next_day_open" property="nextDayOpen" jdbcType="BIGINT"/>
+        <result column="next_day_open_cost" property="nextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="next_day_open_rate" property="nextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_cnt" property="attributionNextDayOpenCnt" jdbcType="BIGINT"/>
+        <result column="attribution_next_day_open_cost" property="attributionNextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_rate" property="attributionNextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="game_addiction" property="gameAddiction" jdbcType="BIGINT"/>
+        <result column="game_addiction_cost" property="gameAddictionCost" jdbcType="DECIMAL"/>
+        <result column="game_addiction_rate" property="gameAddictionRate" jdbcType="DECIMAL"/>
+        <result column="pay_count" property="payCount" jdbcType="BIGINT"/>
+        <result column="active_pay_cost" property="activePayCost" jdbcType="DECIMAL"/>
+        <result column="active_pay_rate" property="activePayRate" jdbcType="DECIMAL"/>
+        <result column="loan_completion" property="loanCompletion" jdbcType="BIGINT"/>
+        <result column="loan_completion_cost" property="loanCompletionCost" jdbcType="DECIMAL"/>
+        <result column="loan_completion_rate" property="loanCompletionRate" jdbcType="DECIMAL"/>
+        <result column="pre_loan_credit" property="preLoanCredit" jdbcType="BIGINT"/>
+        <result column="pre_loan_credit_cost" property="preLoanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit" property="loanCredit" jdbcType="BIGINT"/>
+        <result column="loan_credit_cost" property="loanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit_rate" property="loanCreditRate" jdbcType="DECIMAL"/>
+        <result column="in_app_uv" property="inAppUv" jdbcType="BIGINT"/>
+        <result column="in_app_detail_uv" property="inAppDetailUv" jdbcType="BIGINT"/>
+        <result column="in_app_cart" property="inAppCart" jdbcType="BIGINT"/>
+        <result column="in_app_pay" property="inAppPay" jdbcType="BIGINT"/>
+        <result column="in_app_order" property="inAppOrder" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_count" property="attributionGamePay7dCount" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_cost" property="attributionGamePay7dCost" jdbcType="DECIMAL"/>
+        <result column="attribution_active_pay_7d_per_count" property="attributionActivePay7dPerCount"
+                jdbcType="BIGINT"/>
+        <result column="game_pay_cost" property="gamePayCost" jdbcType="DECIMAL"/>
+        <result column="game_pay_count" property="gamePayCount" jdbcType="BIGINT"/>
+        <result column="phone" property="phone" jdbcType="BIGINT"/>
+        <result column="form" property="form" jdbcType="BIGINT"/>
+        <result column="map_search" property="mapSearch" jdbcType="BIGINT"/>
+        <result column="button" property="button" jdbcType="BIGINT"/>
+        <result column="view" property="view" jdbcType="BIGINT"/>
+        <result column="download" property="download" jdbcType="BIGINT"/>
+        <result column="qq" property="qq" jdbcType="BIGINT"/>
+        <result column="lottery" property="lottery" jdbcType="BIGINT"/>
+        <result column="vote" property="vote" jdbcType="BIGINT"/>
+        <result column="message" property="message" jdbcType="BIGINT"/>
+        <result column="redirect" property="redirect" jdbcType="BIGINT"/>
+        <result column="shopping" property="shopping" jdbcType="BIGINT"/>
+        <result column="consult" property="consult" jdbcType="BIGINT"/>
+        <result column="wechat" property="wechat" jdbcType="BIGINT"/>
+        <result column="phone_confirm" property="phoneConfirm" jdbcType="BIGINT"/>
+        <result column="phone_connect" property="phoneConnect" jdbcType="BIGINT"/>
+        <result column="consult_effective" property="consultEffective" jdbcType="BIGINT"/>
+        <result column="coupon" property="coupon" jdbcType="BIGINT"/>
+        <result column="coupon_single_page" property="couponSinglePage" jdbcType="BIGINT"/>
+        <result column="redirect_to_shop" property="redirectToShop" jdbcType="BIGINT"/>
+        <result column="poi_collect" property="poiCollect" jdbcType="BIGINT"/>
+        <result column="poi_address_click" property="poiAddressClick" jdbcType="BIGINT"/>
+        <result column="luban_order_cnt" property="lubanOrderCnt" jdbcType="BIGINT"/>
+        <result column="luban_order_stat_amount" property="lubanOrderStatAmount" jdbcType="DECIMAL"/>
+        <result column="luban_order_roi" property="lubanOrderRoi" jdbcType="DECIMAL"/>
+        <result column="luban_live_enter_cnt" property="lubanLiveEnterCnt" jdbcType="BIGINT"/>
+        <result column="live_watch_one_minute_count" property="liveWatchOneMinuteCount" jdbcType="BIGINT"/>
+        <result column="luban_live_follow_cnt" property="lubanLiveFollowCnt" jdbcType="BIGINT"/>
+        <result column="live_fans_club_join_cnt" property="liveFansClubJoinCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_comment_cnt" property="lubanLiveCommentCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_share_cnt" property="lubanLiveShareCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_cnt" property="lubanLiveGiftCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_amount" property="lubanLiveGiftAmount" jdbcType="DECIMAL"/>
+        <result column="luban_live_slidecart_click_cnt" property="lubanLiveSlidecartClickCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_click_product_cnt" property="lubanLiveClickProductCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_count" property="lubanLivePayOrderCount" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_stat_cost" property="lubanLivePayOrderStatCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_count" property="liveComponentClickCount" jdbcType="BIGINT"/>
+        <result column="live_component_click_cost" property="liveComponentClickCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_rate" property="liveComponentClickRate" jdbcType="DECIMAL"/>
+        <result column="wechat_login_count" property="wechatLoginCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_login_30d_count" property="attributionWechatLogin30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_login_cost" property="wechatLoginCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_login_30d_cost" property="attributionWechatLogin30dCost" jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_count" property="wechatFirstPayCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_first_pay_30d_count" property="attributionWechatFirstPay30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_first_pay_cost" property="wechatFirstPayCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_cost" property="attributionWechatFirstPay30dCost"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_rate" property="wechatFirstPayRate" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_rate" property="attributionWechatFirstPay30dRate"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_pay_amount" property="wechatPayAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_amount" property="attributionWechatPay30dAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_roi" property="attributionWechatPay30dRoi" jdbcType="DECIMAL"/>
+        <result column="phone_effective" property="phoneEffective" jdbcType="BIGINT"/>
+        <result column="total_play" property="totalPlay" jdbcType="BIGINT"/>
+        <result column="valid_play" property="validPlay" jdbcType="BIGINT"/>
+        <result column="valid_play_cost" property="validPlayCost" jdbcType="DECIMAL"/>
+        <result column="valid_play_rate" property="validPlayRate" jdbcType="DECIMAL"/>
+        <result column="play_25_feed_break" property="play25FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_50_feed_break" property="play50FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_75_feed_break" property="play75FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_100_feed_break" property="play100FeedBreak" jdbcType="BIGINT"/>
+        <result column="average_play_time_per_play" property="averagePlayTimePerPlay" jdbcType="DECIMAL"/>
+        <result column="play_over_rate" property="playOverRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play_rate" property="wifiPlayRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play" property="wifiPlay" jdbcType="BIGINT"/>
+        <result column="play_duration_sum" property="playDurationSum" jdbcType="BIGINT"/>
+        <result column="advanced_creative_phone_click" property="advancedCreativePhoneClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_counsel_click" property="advancedCreativeCounselClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_click" property="advancedCreativeFormClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_coupon_addition" property="advancedCreativeCouponAddition" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_submit" property="advancedCreativeFormSubmit" jdbcType="BIGINT"/>
+        <result column="card_show" property="cardShow" jdbcType="BIGINT"/>
+        <result column="share" property="share" jdbcType="BIGINT"/>
+        <result column="comment" property="comment" jdbcType="BIGINT"/>
+        <result column="like" property="like" jdbcType="BIGINT"/>
+        <result column="follow" property="follow" jdbcType="BIGINT"/>
+        <result column="home_visited" property="homeVisited" jdbcType="BIGINT"/>
+        <result column="ies_challenge_click" property="iesChallengeClick" jdbcType="BIGINT"/>
+        <result column="ies_music_click" property="iesMusicClick" jdbcType="BIGINT"/>
+        <result column="location_click" property="locationClick" jdbcType="BIGINT"/>
+        <result column="message_action" property="messageAction" jdbcType="BIGINT"/>
+        <result column="click_landing_page" property="clickLandingPage" jdbcType="BIGINT"/>
+        <result column="click_shopwindow" property="clickShopwindow" jdbcType="BIGINT"/>
+        <result column="click_website" property="clickWebsite" jdbcType="BIGINT"/>
+        <result column="click_download" property="clickDownload" jdbcType="BIGINT"/>
+        <result column="click_call_dy" property="clickCallDy" jdbcType="BIGINT"/>
+        <result column="submit_certification_count" property="submitCertificationCount" jdbcType="BIGINT"/>
+        <result column="approval_count" property="approvalCount" jdbcType="BIGINT"/>
+        <result column="first_rental_order_count" property="firstRentalOrderCount" jdbcType="BIGINT"/>
+        <result column="first_order_count" property="firstOrderCount" jdbcType="BIGINT"/>
+        <result column="commute_first_pay_count" property="commuteFirstPayCount" jdbcType="BIGINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        advertiser_id
+        , stat_datetime, hour, cost, show, avg_show_cost, click, avg_click_cost,
+    ctr, convert, convert_cost, convert_rate, deep_convert, deep_convert_cost, deep_convert_rate, 
+    attribution_convert, attribution_convert_cost, attribution_deep_convert, attribution_deep_convert_cost, 
+    download_start, download_start_cost, download_start_rate, download_finish, download_finish_cost, 
+    download_finish_rate, click_install, install_finish, install_finish_cost, install_finish_rate, 
+    active, active_cost, active_rate, register, active_register_cost, active_register_rate, 
+    next_day_open, next_day_open_cost, next_day_open_rate, attribution_next_day_open_cnt, 
+    attribution_next_day_open_cost, attribution_next_day_open_rate, game_addiction, game_addiction_cost, 
+    game_addiction_rate, pay_count, active_pay_cost, active_pay_rate, loan_completion, 
+    loan_completion_cost, loan_completion_rate, pre_loan_credit, pre_loan_credit_cost, 
+    loan_credit, loan_credit_cost, loan_credit_rate, in_app_uv, in_app_detail_uv, in_app_cart, 
+    in_app_pay, in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost, 
+    attribution_active_pay_7d_per_count, game_pay_cost, game_pay_count, phone, form, 
+    map_search, button, view, download, qq, lottery, vote, message, redirect, shopping, 
+    consult, wechat, phone_confirm, phone_connect, consult_effective, coupon, coupon_single_page, 
+    redirect_to_shop, poi_collect, poi_address_click, luban_order_cnt, luban_order_stat_amount, 
+    luban_order_roi, luban_live_enter_cnt, live_watch_one_minute_count, luban_live_follow_cnt, 
+    live_fans_club_join_cnt, luban_live_comment_cnt, luban_live_share_cnt, luban_live_gift_cnt, 
+    luban_live_gift_amount, luban_live_slidecart_click_cnt, luban_live_click_product_cnt, 
+    luban_live_pay_order_count, luban_live_pay_order_stat_cost, live_component_click_count, 
+    live_component_click_cost, live_component_click_rate, wechat_login_count, attribution_wechat_login_30d_count, 
+    wechat_login_cost, attribution_wechat_login_30d_cost, wechat_first_pay_count, attribution_wechat_first_pay_30d_count, 
+    wechat_first_pay_cost, attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate, 
+    attribution_wechat_first_pay_30d_rate, wechat_pay_amount, attribution_wechat_pay_30d_amount, 
+    attribution_wechat_pay_30d_roi, phone_effective, total_play, valid_play, valid_play_cost, 
+    valid_play_rate, play_25_feed_break, play_50_feed_break, play_75_feed_break, play_100_feed_break, 
+    average_play_time_per_play, play_over_rate, wifi_play_rate, wifi_play, play_duration_sum, 
+    advanced_creative_phone_click, advanced_creative_counsel_click, advanced_creative_form_click, 
+    advanced_creative_coupon_addition, advanced_creative_form_submit, card_show, share, 
+    comment, like, follow, home_visited, ies_challenge_click, ies_music_click, location_click, 
+    message_action, click_landing_page, click_shopwindow, click_website, click_download, 
+    click_call_dy, submit_certification_count, approval_count, first_rental_order_count, 
+    first_order_count, commute_first_pay_count
+    </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportHourly">
+        replace into bytedance_advertiser_report_hourly (advertiser_id, stat_datetime, `hour`,
+        cost, `show`, avg_show_cost,
+        click, avg_click_cost, ctr,
+        `convert`, convert_cost, convert_rate,
+        deep_convert, deep_convert_cost, deep_convert_rate,
+        attribution_convert, attribution_convert_cost,
+        attribution_deep_convert, attribution_deep_convert_cost,
+        download_start, download_start_cost, download_start_rate,
+        download_finish, download_finish_cost, download_finish_rate,
+        click_install, install_finish, install_finish_cost,
+        install_finish_rate, active, active_cost,
+        active_rate, register, active_register_cost,
+        active_register_rate, next_day_open, next_day_open_cost,
+        next_day_open_rate, attribution_next_day_open_cnt,
+        attribution_next_day_open_cost, attribution_next_day_open_rate,
+        game_addiction, game_addiction_cost, game_addiction_rate,
+        pay_count, active_pay_cost, active_pay_rate,
+        loan_completion, loan_completion_cost, loan_completion_rate,
+        pre_loan_credit, pre_loan_credit_cost, loan_credit,
+        loan_credit_cost, loan_credit_rate, in_app_uv,
+        in_app_detail_uv, in_app_cart, in_app_pay,
+        in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost,
+        attribution_active_pay_7d_per_count, game_pay_cost,
+        game_pay_count, phone, form,
+        map_search, button, `view`,
+        download, qq, lottery,
+        vote, message, redirect,
+        shopping, consult, wechat,
+        phone_confirm, phone_connect, consult_effective,
+        coupon, coupon_single_page, redirect_to_shop,
+        poi_collect, poi_address_click, luban_order_cnt,
+        luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt,
+        live_watch_one_minute_count, luban_live_follow_cnt,
+        live_fans_club_join_cnt, luban_live_comment_cnt,
+        luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount,
+        luban_live_slidecart_click_cnt, luban_live_click_product_cnt,
+        luban_live_pay_order_count, luban_live_pay_order_stat_cost,
+        live_component_click_count, live_component_click_cost,
+        live_component_click_rate, wechat_login_count,
+        attribution_wechat_login_30d_count, wechat_login_cost,
+        attribution_wechat_login_30d_cost, wechat_first_pay_count,
+        attribution_wechat_first_pay_30d_count, wechat_first_pay_cost,
+        attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate,
+        attribution_wechat_first_pay_30d_rate, wechat_pay_amount,
+        attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi,
+        phone_effective, total_play, valid_play,
+        valid_play_cost, valid_play_rate, play_25_feed_break,
+        play_50_feed_break, play_75_feed_break, play_100_feed_break,
+        average_play_time_per_play, play_over_rate, wifi_play_rate,
+        wifi_play, play_duration_sum, advanced_creative_phone_click,
+        advanced_creative_counsel_click, advanced_creative_form_click,
+        advanced_creative_coupon_addition, advanced_creative_form_submit,
+        card_show, `share`, `comment`,
+        `like`, follow, home_visited,
+        ies_challenge_click, ies_music_click, location_click,
+        message_action, click_landing_page, click_shopwindow,
+        click_website, click_download, click_call_dy,
+        submit_certification_count, approval_count,
+        first_rental_order_count, first_order_count, commute_first_pay_count,
+        attribution_active_pay_intra_one_day_count,
+        attribution_active_pay_intra_one_day_cost,
+        attribution_active_pay_intra_one_day_rate,
+        attribution_active_pay_intra_one_day_amount,
+        attribution_active_pay_intra_one_day_roi,
+        stat_pay_amount
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.statDatetime,jdbcType=INTEGER}, #{item.hour,jdbcType=INTEGER},
+            #{item.cost,jdbcType=DECIMAL}, #{item.show,jdbcType=BIGINT}, #{item.avgShowCost,jdbcType=DECIMAL},
+            #{item.click,jdbcType=BIGINT}, #{item.avgClickCost,jdbcType=DECIMAL}, #{item.ctr,jdbcType=DECIMAL},
+            #{item.convert,jdbcType=BIGINT}, #{item.convertCost,jdbcType=DECIMAL}, #{item.convertRate,jdbcType=DECIMAL},
+            #{item.deepConvert,jdbcType=BIGINT}, #{item.deepConvertCost,jdbcType=DECIMAL},
+            #{item.deepConvertRate,jdbcType=DECIMAL},
+            #{item.attributionConvert,jdbcType=BIGINT}, #{item.attributionConvertCost,jdbcType=DECIMAL},
+            #{item.attributionDeepConvert,jdbcType=BIGINT}, #{item.attributionDeepConvertCost,jdbcType=DECIMAL},
+            #{item.downloadStart,jdbcType=BIGINT}, #{item.downloadStartCost,jdbcType=DECIMAL},
+            #{item.downloadStartRate,jdbcType=DECIMAL},
+            #{item.downloadFinish,jdbcType=BIGINT}, #{item.downloadFinishCost,jdbcType=DECIMAL},
+            #{item.downloadFinishRate,jdbcType=DECIMAL},
+            #{item.clickInstall,jdbcType=BIGINT}, #{item.installFinish,jdbcType=BIGINT},
+            #{item.installFinishCost,jdbcType=DECIMAL},
+            #{item.installFinishRate,jdbcType=DECIMAL}, #{item.active,jdbcType=BIGINT},
+            #{item.activeCost,jdbcType=DECIMAL},
+            #{item.activeRate,jdbcType=DECIMAL}, #{item.register,jdbcType=DECIMAL},
+            #{item.activeRegisterCost,jdbcType=DECIMAL},
+            #{item.activeRegisterRate,jdbcType=REAL}, #{item.nextDayOpen,jdbcType=BIGINT},
+            #{item.nextDayOpenCost,jdbcType=DECIMAL},
+            #{item.nextDayOpenRate,jdbcType=DECIMAL}, #{item.attributionNextDayOpenCnt,jdbcType=BIGINT},
+            #{item.attributionNextDayOpenCost,jdbcType=DECIMAL}, #{item.attributionNextDayOpenRate,jdbcType=DECIMAL},
+            #{item.gameAddiction,jdbcType=BIGINT}, #{item.gameAddictionCost,jdbcType=DECIMAL},
+            #{item.gameAddictionRate,jdbcType=DECIMAL},
+            #{item.payCount,jdbcType=BIGINT}, #{item.activePayCost,jdbcType=DECIMAL},
+            #{item.activePayRate,jdbcType=DECIMAL},
+            #{item.loanCompletion,jdbcType=BIGINT}, #{item.loanCompletionCost,jdbcType=DECIMAL},
+            #{item.loanCompletionRate,jdbcType=DECIMAL},
+            #{item.preLoanCredit,jdbcType=BIGINT}, #{item.preLoanCreditCost,jdbcType=DECIMAL},
+            #{item.loanCredit,jdbcType=BIGINT},
+            #{item.loanCreditCost,jdbcType=DECIMAL}, #{item.loanCreditRate,jdbcType=DECIMAL},
+            #{item.inAppUv,jdbcType=BIGINT},
+            #{item.inAppDetailUv,jdbcType=BIGINT}, #{item.inAppCart,jdbcType=BIGINT}, #{item.inAppPay,jdbcType=BIGINT},
+            #{item.inAppOrder,jdbcType=BIGINT}, #{item.attributionGamePay7dCount,jdbcType=BIGINT},
+            #{item.attributionGamePay7dCost,jdbcType=DECIMAL},
+            #{item.attributionActivePay7dPerCount,jdbcType=BIGINT}, #{item.gamePayCost,jdbcType=DECIMAL},
+            #{item.gamePayCount,jdbcType=BIGINT}, #{item.phone,jdbcType=BIGINT}, #{item.form,jdbcType=BIGINT},
+            #{item.mapSearch,jdbcType=BIGINT}, #{item.button,jdbcType=BIGINT}, #{item.view,jdbcType=BIGINT},
+            #{item.download,jdbcType=BIGINT}, #{item.qq,jdbcType=BIGINT}, #{item.lottery,jdbcType=BIGINT},
+            #{item.vote,jdbcType=BIGINT}, #{item.message,jdbcType=BIGINT}, #{item.redirect,jdbcType=BIGINT},
+            #{item.shopping,jdbcType=BIGINT}, #{item.consult,jdbcType=BIGINT}, #{item.wechat,jdbcType=BIGINT},
+            #{item.phoneConfirm,jdbcType=BIGINT}, #{item.phoneConnect,jdbcType=BIGINT},
+            #{item.consultEffective,jdbcType=BIGINT},
+            #{item.coupon,jdbcType=BIGINT}, #{item.couponSinglePage,jdbcType=BIGINT},
+            #{item.redirectToShop,jdbcType=BIGINT},
+            #{item.poiCollect,jdbcType=BIGINT}, #{item.poiAddressClick,jdbcType=BIGINT},
+            #{item.lubanOrderCnt,jdbcType=BIGINT},
+            #{item.lubanOrderStatAmount,jdbcType=DECIMAL}, #{item.lubanOrderRoi,jdbcType=DECIMAL},
+            #{item.lubanLiveEnterCnt,jdbcType=BIGINT},
+            #{item.liveWatchOneMinuteCount,jdbcType=BIGINT}, #{item.lubanLiveFollowCnt,jdbcType=BIGINT},
+            #{item.liveFansClubJoinCnt,jdbcType=BIGINT}, #{item.lubanLiveCommentCnt,jdbcType=BIGINT},
+            #{item.lubanLiveShareCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftCnt,jdbcType=BIGINT},
+            #{item.lubanLiveGiftAmount,jdbcType=DECIMAL},
+            #{item.lubanLiveSlidecartClickCnt,jdbcType=BIGINT}, #{item.lubanLiveClickProductCnt,jdbcType=BIGINT},
+            #{item.lubanLivePayOrderCount,jdbcType=BIGINT}, #{item.lubanLivePayOrderStatCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickCount,jdbcType=BIGINT}, #{item.liveComponentClickCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickRate,jdbcType=DECIMAL}, #{item.wechatLoginCount,jdbcType=BIGINT},
+            #{item.attributionWechatLogin30dCount,jdbcType=BIGINT}, #{item.wechatLoginCost,jdbcType=DECIMAL},
+            #{item.attributionWechatLogin30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionWechatFirstPay30dCount,jdbcType=BIGINT}, #{item.wechatFirstPayCost,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayRate,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dRate,jdbcType=DECIMAL}, #{item.wechatPayAmount,jdbcType=DECIMAL},
+            #{item.attributionWechatPay30dAmount,jdbcType=DECIMAL}, #{item.attributionWechatPay30dRoi,jdbcType=DECIMAL},
+            #{item.phoneEffective,jdbcType=BIGINT}, #{item.totalPlay,jdbcType=BIGINT},
+            #{item.validPlay,jdbcType=BIGINT},
+            #{item.validPlayCost,jdbcType=DECIMAL}, #{item.validPlayRate,jdbcType=DECIMAL},
+            #{item.play25FeedBreak,jdbcType=BIGINT},
+            #{item.play50FeedBreak,jdbcType=BIGINT}, #{item.play75FeedBreak,jdbcType=BIGINT},
+            #{item.play100FeedBreak,jdbcType=BIGINT},
+            #{item.averagePlayTimePerPlay,jdbcType=DECIMAL}, #{item.playOverRate,jdbcType=DECIMAL},
+            #{item.wifiPlayRate,jdbcType=DECIMAL},
+            #{item.wifiPlay,jdbcType=BIGINT}, #{item.playDurationSum,jdbcType=BIGINT},
+            #{item.advancedCreativePhoneClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCounselClick,jdbcType=BIGINT}, #{item.advancedCreativeFormClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCouponAddition,jdbcType=BIGINT}, #{item.advancedCreativeFormSubmit,jdbcType=BIGINT},
+            #{item.cardShow,jdbcType=BIGINT}, #{item.share,jdbcType=BIGINT}, #{item.comment,jdbcType=BIGINT},
+            #{item.like,jdbcType=BIGINT}, #{item.follow,jdbcType=BIGINT}, #{item.homeVisited,jdbcType=BIGINT},
+            #{item.iesChallengeClick,jdbcType=BIGINT}, #{item.iesMusicClick,jdbcType=BIGINT},
+            #{item.locationClick,jdbcType=BIGINT},
+            #{item.messageAction,jdbcType=BIGINT}, #{item.clickLandingPage,jdbcType=BIGINT},
+            #{item.clickShopwindow,jdbcType=BIGINT},
+            #{item.clickWebsite,jdbcType=BIGINT}, #{item.clickDownload,jdbcType=BIGINT},
+            #{item.clickCallDy,jdbcType=BIGINT},
+            #{item.submitCertificationCount,jdbcType=BIGINT}, #{item.approvalCount,jdbcType=BIGINT},
+            #{item.firstRentalOrderCount,jdbcType=BIGINT}, #{item.firstOrderCount,jdbcType=BIGINT},
+            #{item.commuteFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionActivePayIntraOneDayCount},
+            #{item.attributionActivePayIntraOneDayCost},
+            #{item.attributionActivePayIntraOneDayRate},
+            #{item.attributionActivePayIntraOneDayAmount},
+            #{item.attributionActivePayIntraOneDayRoi},
+            #{item.statPayAmount}
+            )
+        </foreach>
+    </insert>
+
+    <insert id="insertV3Project" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceAdvertiserReportHourly">
+        replace into media_api.bytedance_cdp_project_report_hourly (
+        advertiser_id,
+        cdp_project_id,
+        cdp_project_name,
+        stat_time_day,
+        stat_hour,
+        active,
+        active_cost,
+        active_pay,
+        active_pay_cost,
+        active_pay_intra_day_cost,
+        active_pay_intra_day_count,
+        active_pay_intra_day_rate,
+        active_pay_rate,
+        active_rate,
+        active_register,
+        active_register_cost,
+        active_register_rate,
+        ad_dislike_cnt,
+        ad_report_cnt,
+        attribution_active_pay,
+        attribution_active_pay_7d_per_count,
+        attribution_active_pay_cost,
+        attribution_active_pay_rate,
+        attribution_billing_game_in_app_ltv_1day,
+        attribution_billing_game_in_app_ltv_2days,
+        attribution_billing_game_in_app_ltv_3days,
+        attribution_billing_game_in_app_ltv_4days,
+        attribution_billing_game_in_app_ltv_5days,
+        attribution_billing_game_in_app_ltv_6days,
+        attribution_billing_game_in_app_ltv_7days,
+        attribution_billing_game_in_app_roi_1day,
+        attribution_billing_game_in_app_roi_2days,
+        attribution_billing_game_in_app_roi_3days,
+        attribution_billing_game_in_app_roi_4days,
+        attribution_billing_game_in_app_roi_5days,
+        attribution_billing_game_in_app_roi_6days,
+        attribution_billing_game_in_app_roi_7days,
+        attribution_billing_game_pay_7d_cost,
+        attribution_billing_game_pay_7d_count,
+        attribution_clue_confirm,
+        attribution_clue_confirm_cost,
+        attribution_clue_high_intention,
+        attribution_clue_high_intention_cost,
+        attribution_clue_interflow,
+        attribution_clue_interflow_cost,
+        attribution_clue_pay_succeed,
+        attribution_clue_pay_succeed_cost,
+        attribution_conversion_class_count,
+        attribution_conversion_rate,
+        attribution_convert_cnt,
+        attribution_convert_cost,
+        attribution_customer_effective,
+        attribution_customer_effective_cost,
+        attribution_day_active_pay_cost,
+        attribution_day_active_pay_count,
+        attribution_day_active_pay_rate,
+        attribution_deep_convert_cnt,
+        attribution_deep_convert_cost,
+        attribution_deep_convert_rate,
+        attribution_game_in_app_ltv_1day,
+        attribution_game_in_app_ltv_2days,
+        attribution_game_in_app_ltv_3days,
+        attribution_game_in_app_ltv_4days,
+        attribution_game_in_app_ltv_5days,
+        attribution_game_in_app_ltv_6days,
+        attribution_game_in_app_ltv_7days,
+        attribution_game_in_app_ltv_8days,
+        attribution_game_in_app_roi_1day,
+        attribution_game_in_app_roi_2days,
+        attribution_game_in_app_roi_3days,
+        attribution_game_in_app_roi_4days,
+        attribution_game_in_app_roi_5days,
+        attribution_game_in_app_roi_6days,
+        attribution_game_in_app_roi_7days,
+        attribution_game_in_app_roi_8days,
+        attribution_game_pay_7d_cost,
+        attribution_game_pay_7d_count,
+        attribution_micro_game_0d_ltv,
+        attribution_micro_game_0d_roi,
+        attribution_micro_game_3d_ltv,
+        attribution_micro_game_3d_roi,
+        attribution_micro_game_7d_ltv,
+        attribution_micro_game_7d_roi,
+        attribution_next_day_open_cnt,
+        attribution_next_day_open_cost,
+        attribution_next_day_open_rate,
+        attribution_retention_2d_cnt,
+        attribution_retention_2d_cost,
+        attribution_retention_2d_rate,
+        attribution_retention_3d_cnt,
+        attribution_retention_3d_cost,
+        attribution_retention_3d_rate,
+        attribution_retention_4d_cnt,
+        attribution_retention_4d_cost,
+        attribution_retention_4d_rate,
+        attribution_retention_5d_cnt,
+        attribution_retention_5d_cost,
+        attribution_retention_5d_rate,
+        attribution_retention_6d_cnt,
+        attribution_retention_6d_cost,
+        attribution_retention_6d_rate,
+        attribution_retention_7d_cnt,
+        attribution_retention_7d_cost,
+        attribution_retention_7d_rate,
+        attribution_retention_7d_sum_cnt,
+        attribution_retention_7d_total_cost,
+        attribution_work_wechat_added_count,
+        attribution_work_wechat_dialog_count,
+        attribution_work_wechat_unfriend_count,
+        average_play_time_per_play,
+        bankcard_information_count,
+        button,
+        card_show,
+        certification_information_count,
+        click_call_dy,
+        click_cnt,
+        click_download,
+        click_landing_page,
+        click_shopwindow,
+        click_start_cnt,
+        click_start_cost,
+        click_start_rate,
+        click_website,
+        consult,
+        consult_clue,
+        consult_effective,
+        conversion_cost,
+        conversion_rate,
+        convert_cnt,
+        coupon,
+        coupon_single_page,
+        cpc_platform,
+        cpm_platform,
+        ctr,
+        customer_effective,
+        deep_convert_cnt,
+        deep_convert_cost,
+        deep_convert_rate,
+        download_finish_cnt,
+        download_finish_cost,
+        download_finish_rate,
+        download_start,
+        dy_comment,
+        dy_follow,
+        dy_home_visited,
+        dy_like,
+        dy_share,
+        first_class_count,
+        form,
+        form_submit,
+        game_addiction,
+        game_addiction_cost,
+        game_addiction_rate,
+        game_pay_cost,
+        game_pay_count,
+        high_loan_credit_count,
+        ies_challenge_click,
+        ies_music_click,
+        in_app_cart,
+        in_app_detail_uv,
+        in_app_order,
+        in_app_order_gmv,
+        in_app_order_roi,
+        in_app_pay,
+        in_app_pay_gmv,
+        in_app_pay_roi,
+        in_app_uv,
+        in_wechat_pay_count,
+        install_finish_cnt,
+        install_finish_cost,
+        install_finish_rate,
+        insurance_lt_roi,
+        live_component_click_cost,
+        live_component_click_count,
+        live_component_click_rate,
+        live_watch_one_minute_count,
+        loan,
+        loan_completion,
+        loan_completion_cost,
+        loan_completion_rate,
+        loan_cost,
+        loan_credit,
+        loan_credit_cost,
+        loan_credit_rate,
+        loan_rate,
+        location_click,
+        lottery,
+        low_loan_credit_count,
+        luban_live_comment_cnt,
+        luban_live_enter_cnt,
+        luban_live_follow_cnt,
+        luban_live_share_cnt,
+        map,
+        message,
+        message_action,
+        next_day_open,
+        open_account_count,
+        pay_amount_roi,
+        personal_information_count,
+        phone,
+        phone_confirm,
+        phone_connect,
+        phone_effective,
+        play_25_feed_break,
+        play_50_feed_break,
+        play_75_feed_break,
+        play_99_feed_break,
+        play_duration_3s,
+        play_over_rate,
+        poi_address_click,
+        poi_collect,
+        pre_loan_credit,
+        pre_loan_credit_cost,
+        premium_payment_cost,
+        premium_payment_count,
+        qq,
+        redirect,
+        redirect_to_shop,
+        second_class_count,
+        shopping,
+        show_cnt,
+        stat_cost,
+        stat_pay_amount,
+        total_play,
+        unfollow_in_wechat_count,
+        valid_play,
+        valid_play_cost,
+        valid_play_cost_of_mille,
+        valid_play_of_mille,
+        valid_play_rate,
+        view,
+        vote,
+        wifi_play_rate,
+        withdraw_m2_count
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiserId},
+            #{item.cdpProjectId},
+            #{item.cdpProjectName},
+            #{item.statTimeDay},
+            #{item.statHour},
+            #{item.active},
+            #{item.activeCost},
+            #{item.activePay},
+            #{item.activePayCost},
+            #{item.activePayIntraDayCost},
+            #{item.activePayIntraDayCount},
+            #{item.activePayIntraDayRate},
+            #{item.activePayRate},
+            #{item.activeRate},
+            #{item.activeRegister},
+            #{item.activeRegisterCost},
+            #{item.activeRegisterRate},
+            #{item.adDislikeCnt},
+            #{item.adReportCnt},
+            #{item.attributionActivePay},
+            #{item.attributionActivePay7dPerCount},
+            #{item.attributionActivePayCost},
+            #{item.attributionActivePayRate},
+            #{item.attributionBillingGameInAppLtv1day},
+            #{item.attributionBillingGameInAppLtv2days},
+            #{item.attributionBillingGameInAppLtv3days},
+            #{item.attributionBillingGameInAppLtv4days},
+            #{item.attributionBillingGameInAppLtv5days},
+            #{item.attributionBillingGameInAppLtv6days},
+            #{item.attributionBillingGameInAppLtv7days},
+            #{item.attributionBillingGameInAppRoi1day},
+            #{item.attributionBillingGameInAppRoi2days},
+            #{item.attributionBillingGameInAppRoi3days},
+            #{item.attributionBillingGameInAppRoi4days},
+            #{item.attributionBillingGameInAppRoi5days},
+            #{item.attributionBillingGameInAppRoi6days},
+            #{item.attributionBillingGameInAppRoi7days},
+            #{item.attributionBillingGamePay7dCost},
+            #{item.attributionBillingGamePay7dCount},
+            #{item.attributionClueConfirm},
+            #{item.attributionClueConfirmCost},
+            #{item.attributionClueHighIntention},
+            #{item.attributionClueHighIntentionCost},
+            #{item.attributionClueInterflow},
+            #{item.attributionClueInterflowCost},
+            #{item.attributionCluePaySucceed},
+            #{item.attributionCluePaySucceedCost},
+            #{item.attributionConversionClassCount},
+            #{item.attributionConversionRate},
+            #{item.attributionConvertCnt},
+            #{item.attributionConvertCost},
+            #{item.attributionCustomerEffective},
+            #{item.attributionCustomerEffectiveCost},
+            #{item.attributionDayActivePayCost},
+            #{item.attributionDayActivePayCount},
+            #{item.attributionDayActivePayRate},
+            #{item.attributionDeepConvertCnt},
+            #{item.attributionDeepConvertCost},
+            #{item.attributionDeepConvertRate},
+            #{item.attributionGameInAppLtv1day},
+            #{item.attributionGameInAppLtv2days},
+            #{item.attributionGameInAppLtv3days},
+            #{item.attributionGameInAppLtv4days},
+            #{item.attributionGameInAppLtv5days},
+            #{item.attributionGameInAppLtv6days},
+            #{item.attributionGameInAppLtv7days},
+            #{item.attributionGameInAppLtv8days},
+            #{item.attributionGameInAppRoi1day},
+            #{item.attributionGameInAppRoi2days},
+            #{item.attributionGameInAppRoi3days},
+            #{item.attributionGameInAppRoi4days},
+            #{item.attributionGameInAppRoi5days},
+            #{item.attributionGameInAppRoi6days},
+            #{item.attributionGameInAppRoi7days},
+            #{item.attributionGameInAppRoi8days},
+            #{item.attributionGamePay7dCost},
+            #{item.attributionGamePay7dCount},
+            #{item.attributionMicroGame0dLtv},
+            #{item.attributionMicroGame0dRoi},
+            #{item.attributionMicroGame3dLtv},
+            #{item.attributionMicroGame3dRoi},
+            #{item.attributionMicroGame7dLtv},
+            #{item.attributionMicroGame7dRoi},
+            #{item.attributionNextDayOpenCnt},
+            #{item.attributionNextDayOpenCost},
+            #{item.attributionNextDayOpenRate},
+            #{item.attributionRetention2dCnt},
+            #{item.attributionRetention2dCost},
+            #{item.attributionRetention2dRate},
+            #{item.attributionRetention3dCnt},
+            #{item.attributionRetention3dCost},
+            #{item.attributionRetention3dRate},
+            #{item.attributionRetention4dCnt},
+            #{item.attributionRetention4dCost},
+            #{item.attributionRetention4dRate},
+            #{item.attributionRetention5dCnt},
+            #{item.attributionRetention5dCost},
+            #{item.attributionRetention5dRate},
+            #{item.attributionRetention6dCnt},
+            #{item.attributionRetention6dCost},
+            #{item.attributionRetention6dRate},
+            #{item.attributionRetention7dCnt},
+            #{item.attributionRetention7dCost},
+            #{item.attributionRetention7dRate},
+            #{item.attributionRetention7dSumCnt},
+            #{item.attributionRetention7dTotalCost},
+            #{item.attributionWorkWechatAddedCount},
+            #{item.attributionWorkWechatDialogCount},
+            #{item.attributionWorkWechatUnfriendCount},
+            #{item.averagePlayTimePerPlay},
+            #{item.bankcardInformationCount},
+            #{item.button},
+            #{item.cardShow},
+            #{item.certificationInformationCount},
+            #{item.clickCallDy},
+            #{item.clickCnt},
+            #{item.clickDownload},
+            #{item.clickLandingPage},
+            #{item.clickShopwindow},
+            #{item.clickStartCnt},
+            #{item.clickStartCost},
+            #{item.clickStartRate},
+            #{item.clickWebsite},
+            #{item.consult},
+            #{item.consultClue},
+            #{item.consultEffective},
+            #{item.conversionCost},
+            #{item.conversionRate},
+            #{item.convertCnt},
+            #{item.coupon},
+            #{item.couponSinglePage},
+            #{item.cpcPlatform},
+            #{item.cpmPlatform},
+            #{item.ctr},
+            #{item.customerEffective},
+            #{item.deepConvertCnt},
+            #{item.deepConvertCost},
+            #{item.deepConvertRate},
+            #{item.downloadFinishCnt},
+            #{item.downloadFinishCost},
+            #{item.downloadFinishRate},
+            #{item.downloadStart},
+            #{item.dyComment},
+            #{item.dyFollow},
+            #{item.dyHomeVisited},
+            #{item.dyLike},
+            #{item.dyShare},
+            #{item.firstClassCount},
+            #{item.form},
+            #{item.formSubmit},
+            #{item.gameAddiction},
+            #{item.gameAddictionCost},
+            #{item.gameAddictionRate},
+            #{item.gamePayCost},
+            #{item.gamePayCount},
+            #{item.highLoanCreditCount},
+            #{item.iesChallengeClick},
+            #{item.iesMusicClick},
+            #{item.inAppCart},
+            #{item.inAppDetailUv},
+            #{item.inAppOrder},
+            #{item.inAppOrderGmv},
+            #{item.inAppOrderRoi},
+            #{item.inAppPay},
+            #{item.inAppPayGmv},
+            #{item.inAppPayRoi},
+            #{item.inAppUv},
+            #{item.inWechatPayCount},
+            #{item.installFinishCnt},
+            #{item.installFinishCost},
+            #{item.installFinishRate},
+            #{item.insuranceLtRoi},
+            #{item.liveComponentClickCost},
+            #{item.liveComponentClickCount},
+            #{item.liveComponentClickRate},
+            #{item.liveWatchOneMinuteCount},
+            #{item.loan},
+            #{item.loanCompletion},
+            #{item.loanCompletionCost},
+            #{item.loanCompletionRate},
+            #{item.loanCost},
+            #{item.loanCredit},
+            #{item.loanCreditCost},
+            #{item.loanCreditRate},
+            #{item.loanRate},
+            #{item.locationClick},
+            #{item.lottery},
+            #{item.lowLoanCreditCount},
+            #{item.lubanLiveCommentCnt},
+            #{item.lubanLiveEnterCnt},
+            #{item.lubanLiveFollowCnt},
+            #{item.lubanLiveShareCnt},
+            #{item.map},
+            #{item.message},
+            #{item.messageAction},
+            #{item.nextDayOpen},
+            #{item.openAccountCount},
+            #{item.payAmountRoi},
+            #{item.personalInformationCount},
+            #{item.phone},
+            #{item.phoneConfirm},
+            #{item.phoneConnect},
+            #{item.phoneEffective},
+            #{item.play25FeedBreak},
+            #{item.play50FeedBreak},
+            #{item.play75FeedBreak},
+            #{item.play99FeedBreak},
+            #{item.playDuration3s},
+            #{item.playOverRate},
+            #{item.poiAddressClick},
+            #{item.poiCollect},
+            #{item.preLoanCredit},
+            #{item.preLoanCreditCost},
+            #{item.premiumPaymentCost},
+            #{item.premiumPaymentCount},
+            #{item.qq},
+            #{item.redirect},
+            #{item.redirectToShop},
+            #{item.secondClassCount},
+            #{item.shopping},
+            #{item.showCnt},
+            #{item.statCost},
+            #{item.statPayAmount},
+            #{item.totalPlay},
+            #{item.unfollowInWechatCount},
+            #{item.validPlay},
+            #{item.validPlayCost},
+            #{item.validPlayCostOfMille},
+            #{item.validPlayOfMille},
+            #{item.validPlayRate},
+            #{item.view},
+            #{item.vote},
+            #{item.wifiPlayRate},
+            #{item.withdrawM2Count}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

+ 84 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAgentReportDailyMapper.xml

@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceAgentReportDailyMapper" >
+  <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceAgentReportDaily" >
+    <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT" />
+    <id column="agent_id" property="agentId" jdbcType="BIGINT" />
+    <id column="stat_datetime" property="statDatetime" jdbcType="INTEGER" />
+    <result column="agent_name" property="agentName" jdbcType="VARCHAR" />
+    <result column="advertiser_name" property="advertiserName" jdbcType="VARCHAR" />
+    <result column="second_industry" property="secondIndustry" jdbcType="VARCHAR" />
+    <result column="first_industry" property="firstIndustry" jdbcType="VARCHAR" />
+    <result column="account_source" property="accountSource" jdbcType="VARCHAR" />
+    <result column="audit_pass_time" property="auditPassTime" jdbcType="VARCHAR" />
+    <result column="account_status" property="accountStatus" jdbcType="VARCHAR" />
+    <result column="company_id" property="companyId" jdbcType="BIGINT" />
+    <result column="company_name" property="companyName" jdbcType="VARCHAR" />
+    <result column="register_time" property="registerTime" jdbcType="VARCHAR" />
+    <result column="cost" property="cost" jdbcType="DECIMAL" />
+    <result column="cash_cost" property="cashCost" jdbcType="DECIMAL" />
+    <result column="bid_cost" property="bidCost" jdbcType="DECIMAL" />
+    <result column="brand_cost" property="brandCost" jdbcType="DECIMAL" />
+    <result column="grants_cost" property="grantsCost" jdbcType="DECIMAL" />
+    <result column="cpc_cost" property="cpcCost" jdbcType="DECIMAL" />
+    <result column="cpm_cost" property="cpmCost" jdbcType="DECIMAL" />
+    <result column="ocpc_cost" property="ocpcCost" jdbcType="DECIMAL" />
+    <result column="cpa_cost" property="cpaCost" jdbcType="DECIMAL" />
+    <result column="ocpm_cost" property="ocpmCost" jdbcType="DECIMAL" />
+    <result column="cpv_cost" property="cpvCost" jdbcType="DECIMAL" />
+    <result column="cpt_cost" property="cptCost" jdbcType="DECIMAL" />
+    <result column="gd_cost" property="gdCost" jdbcType="DECIMAL" />
+    <result column="show" property="show" jdbcType="BIGINT" />
+    <result column="cpm" property="cpm" jdbcType="VARCHAR" />
+    <result column="click" property="click" jdbcType="BIGINT" />
+    <result column="ctr" property="ctr" jdbcType="DECIMAL" />
+    <result column="cpc" property="cpc" jdbcType="DECIMAL" />
+    <result column="transfer_count" property="transferCount" jdbcType="BIGINT" />
+    <result column="today_cost" property="todayCost" jdbcType="DECIMAL" />
+    <result column="transfer_amount" property="transferAmount" jdbcType="DECIMAL" />
+    <result column="history_cost" property="historyCost" jdbcType="DECIMAL" />
+    <result column="register_days" property="registerDays" jdbcType="DECIMAL" />
+    <result column="first_cost_time" property="firstCostTime" jdbcType="VARCHAR" />
+  </resultMap>
+
+  <sql id="Base_Column_List" >
+    advertiser_id, agent_id, stat_datetime, agent_name, advertiser_name, second_industry, 
+    first_industry, account_source, audit_pass_time, account_status, company_id, company_name, 
+    register_time, cost, cash_cost, bid_cost, brand_cost, grants_cost, cpc_cost, cpm_cost, 
+    ocpc_cost, cpa_cost, ocpm_cost, cpv_cost, cpt_cost, gd_cost, show, cpm, click, ctr, 
+    cpc, transfer_count, today_cost, transfer_amount, history_cost, register_days, first_cost_time
+  </sql>
+
+  <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceAgentReportDaily" >
+    replace into bytedance_agent_report_daily (advertiser_id, agent_id, stat_datetime,
+      agent_name, advertiser_name, second_industry, 
+      first_industry, account_source, audit_pass_time, 
+      account_status, company_id, company_name, 
+      register_time, cost, cash_cost, 
+      bid_cost, brand_cost, grants_cost, 
+      cpc_cost, cpm_cost, ocpc_cost, 
+      cpa_cost, ocpm_cost, cpv_cost, 
+      cpt_cost, gd_cost, `show`,
+      cpm, click, ctr, cpc, 
+      transfer_count, today_cost, transfer_amount, 
+      history_cost, register_days, first_cost_time
+      )
+    values
+    <foreach collection="list" item="item" separator=",">
+     (#{item.advertiserId,jdbcType=BIGINT}, #{item.agentId,jdbcType=BIGINT}, #{item.statDatetime,jdbcType=INTEGER}, 
+      #{item.agentName,jdbcType=VARCHAR}, #{item.advertiserName,jdbcType=VARCHAR}, #{item.secondIndustry,jdbcType=VARCHAR}, 
+      #{item.firstIndustry,jdbcType=VARCHAR}, #{item.accountSource,jdbcType=VARCHAR}, #{item.auditPassTime,jdbcType=VARCHAR}, 
+      #{item.accountStatus,jdbcType=VARCHAR}, #{item.companyId,jdbcType=BIGINT}, #{item.companyName,jdbcType=VARCHAR}, 
+      #{item.registerTime,jdbcType=VARCHAR}, #{item.cost,jdbcType=DECIMAL}, #{item.cashCost,jdbcType=DECIMAL}, 
+      #{item.bidCost,jdbcType=DECIMAL}, #{item.brandCost,jdbcType=DECIMAL}, #{item.grantsCost,jdbcType=DECIMAL}, 
+      #{item.cpcCost,jdbcType=DECIMAL}, #{item.cpmCost,jdbcType=DECIMAL}, #{item.ocpcCost,jdbcType=DECIMAL}, 
+      #{item.cpaCost,jdbcType=DECIMAL}, #{item.ocpmCost,jdbcType=DECIMAL}, #{item.cpvCost,jdbcType=DECIMAL}, 
+      #{item.cptCost,jdbcType=DECIMAL}, #{item.gdCost,jdbcType=DECIMAL}, #{item.show,jdbcType=BIGINT}, 
+      #{item.cpm,jdbcType=VARCHAR}, #{item.click,jdbcType=BIGINT}, #{item.ctr,jdbcType=DECIMAL}, #{item.cpc,jdbcType=DECIMAL}, 
+      #{item.transferCount,jdbcType=BIGINT}, #{item.todayCost,jdbcType=DECIMAL}, #{item.transferAmount,jdbcType=DECIMAL}, 
+      #{item.historyCost,jdbcType=DECIMAL}, #{item.registerDays,jdbcType=DECIMAL}, #{item.firstCostTime,jdbcType=VARCHAR}
+      )
+    </foreach>
+  </insert>
+
+</mapper>

+ 139 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAgentReportHourlyMapper.xml

@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceAgentReportHourlyMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceAgentReportHourly">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="agent_id" property="agentId" jdbcType="BIGINT"/>
+        <id column="stat_datetime" property="statDatetime" jdbcType="INTEGER"/>
+        <id column="hour" property="hour" jdbcType="INTEGER"/>
+        <result column="agent_name" property="agentName" jdbcType="VARCHAR"/>
+        <result column="advertiser_name" property="advertiserName" jdbcType="VARCHAR"/>
+        <result column="first_industry" property="firstIndustry" jdbcType="VARCHAR"/>
+        <result column="second_industry" property="secondIndustry" jdbcType="VARCHAR"/>
+        <result column="audit_pass_time" property="auditPassTime" jdbcType="VARCHAR"/>
+        <result column="account_status" property="accountStatus" jdbcType="VARCHAR"/>
+        <result column="company_id" property="companyId" jdbcType="BIGINT"/>
+        <result column="company_name" property="companyName" jdbcType="VARCHAR"/>
+        <result column="register_time" property="registerTime" jdbcType="VARCHAR"/>
+        <result column="account_source" property="accountSource" jdbcType="VARCHAR"/>
+        <result column="today_cost" property="todayCost" jdbcType="DECIMAL"/>
+        <result column="yesterday_cost" property="yesterdayCost" jdbcType="DECIMAL"/>
+        <result column="query_end_time" property="queryEndTime" jdbcType="BIGINT"/>
+        <result column="today_x_hour_cost" property="todayXHourCost" jdbcType="DECIMAL"/>
+        <result column="yesterday_x_hour_cost" property="yesterdayXHourCost" jdbcType="DECIMAL"/>
+        <result column="x_hour_cost_diff" property="xHourCostDiff" jdbcType="DECIMAL"/>
+        <result column="today_x_hour_convert" property="todayXHourConvert" jdbcType="DECIMAL"/>
+        <result column="yesterday_x_hour_convert" property="yesterdayXHourConvert" jdbcType="DECIMAL"/>
+        <result column="x_hour_convert_diff" property="xHourConvertDiff" jdbcType="DECIMAL"/>
+        <result column="today_x_hour_cpa" property="todayXHourCpa" jdbcType="DECIMAL"/>
+        <result column="yesterday_x_hour_cpa" property="yesterdayXHourCpa" jdbcType="DECIMAL"/>
+        <result column="x_hour_cpa_diff" property="xHourCpaDiff" jdbcType="DECIMAL"/>
+        <result column="today_x_hour_click" property="todayXHourClick" jdbcType="BIGINT"/>
+        <result column="yesterday_x_hour_click" property="yesterdayXHourClick" jdbcType="BIGINT"/>
+        <result column="x_hour_click_diff" property="xHourClickDiff" jdbcType="BIGINT"/>
+        <result column="today_x_hour_cpc" property="todayXHourCpc" jdbcType="DECIMAL"/>
+        <result column="yesterday_x_hour_cpc" property="yesterdayXHourCpc" jdbcType="DECIMAL"/>
+        <result column="x_hour_cpc_diff" property="xHourCpcDiff" jdbcType="DECIMAL"/>
+        <result column="yesterday_cash_cost" property="yesterdayCashCost" jdbcType="DECIMAL"/>
+        <result column="yesterday_bid_cash_cost" property="yesterdayBidCashCost" jdbcType="DECIMAL"/>
+        <result column="yesterday_brand_cash_cost" property="yesterdayBrandCashCost" jdbcType="DECIMAL"/>
+        <result column="yesterday_grants_cost" property="yesterdayGrantsCost" jdbcType="DECIMAL"/>
+        <result column="yesterday_mom_cost" property="yesterdayMomCost" jdbcType="DECIMAL"/>
+        <result column="yesterday_cost_diff" property="yesterdayCostDiff" jdbcType="DECIMAL"/>
+        <result column="history_cost" property="historyCost" jdbcType="DECIMAL"/>
+        <result column="history_cash_cost" property="historyCashCost" jdbcType="DECIMAL"/>
+        <result column="yesterday_ad_number" property="yesterdayAdNumber" jdbcType="DECIMAL"/>
+        <result column="register_days" property="registerDays" jdbcType="DECIMAL"/>
+        <result column="first_recharge_amount" property="firstRechargeAmount" jdbcType="DECIMAL"/>
+        <result column="first_recharge_time" property="firstRechargeTime" jdbcType="VARCHAR"/>
+        <result column="last_renew_time" property="lastRenewTime" jdbcType="VARCHAR"/>
+        <result column="total_renew_amount" property="totalRenewAmount" jdbcType="DECIMAL"/>
+        <result column="total_renew_number" property="totalRenewNumber" jdbcType="DECIMAL"/>
+        <result column="cash_balance" property="cashBalance" jdbcType="DECIMAL"/>
+        <result column="rant_balance" property="rantBalance" jdbcType="DECIMAL"/>
+        <result column="last_recharge_time" property="lastRechargeTime" jdbcType="VARCHAR"/>
+        <result column="last_renew_amount" property="lastRenewAmount" jdbcType="DECIMAL"/>
+        <result column="arpu_3cd" property="arpu3cd" jdbcType="DECIMAL"/>
+        <result column="total_balance" property="totalBalance" jdbcType="DECIMAL"/>
+        <result column="valid_balance" property="validBalance" jdbcType="DECIMAL"/>
+        <result column="customer_type" property="customerType" jdbcType="VARCHAR"/>
+        <result column="first_cost_time" property="firstCostTime" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+    advertiser_id, agent_id, stat_datetime, hour, agent_name, advertiser_name, first_industry, 
+    second_industry, audit_pass_time, account_status, company_id, company_name, register_time, 
+    account_source, today_cost, yesterday_cost, query_end_time, today_x_hour_cost, yesterday_x_hour_cost, 
+    x_hour_cost_diff, today_x_hour_convert, yesterday_x_hour_convert, x_hour_convert_diff, 
+    today_x_hour_cpa, yesterday_x_hour_cpa, x_hour_cpa_diff, today_x_hour_click, yesterday_x_hour_click, 
+    x_hour_click_diff, today_x_hour_cpc, yesterday_x_hour_cpc, x_hour_cpc_diff, yesterday_cash_cost, 
+    yesterday_bid_cash_cost, yesterday_brand_cash_cost, yesterday_grants_cost, yesterday_mom_cost, 
+    yesterday_cost_diff, history_cost, history_cash_cost, yesterday_ad_number, register_days, 
+    first_recharge_amount, first_recharge_time, last_renew_time, total_renew_amount, 
+    total_renew_number, cash_balance, rant_balance, last_recharge_time, last_renew_amount, 
+    arpu_3cd, total_balance, valid_balance, customer_type, first_cost_time
+  </sql>
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceAgentReportHourly">
+        replace into bytedance_agent_report_hourly (advertiser_id, agent_id, stat_datetime,
+        `hour`, agent_name, advertiser_name,
+        first_industry, second_industry, audit_pass_time,
+        account_status, company_id, company_name,
+        register_time, account_source, today_cost,
+        yesterday_cost, query_end_time, today_x_hour_cost,
+        yesterday_x_hour_cost, x_hour_cost_diff, today_x_hour_convert,
+        yesterday_x_hour_convert, x_hour_convert_diff,
+        today_x_hour_cpa, yesterday_x_hour_cpa, x_hour_cpa_diff,
+        today_x_hour_click, yesterday_x_hour_click, x_hour_click_diff,
+        today_x_hour_cpc, yesterday_x_hour_cpc, x_hour_cpc_diff,
+        yesterday_cash_cost, yesterday_bid_cash_cost,
+        yesterday_brand_cash_cost, yesterday_grants_cost,
+        yesterday_mom_cost, yesterday_cost_diff, history_cost,
+        history_cash_cost, yesterday_ad_number, register_days,
+        first_recharge_amount, first_recharge_time,
+        last_renew_time, total_renew_amount, total_renew_number,
+        cash_balance, rant_balance, last_recharge_time,
+        last_renew_amount, arpu_3cd, total_balance,
+        valid_balance, customer_type, first_cost_time
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.agentId,jdbcType=BIGINT},
+            #{item.statDatetime,jdbcType=INTEGER},
+            #{item.hour,jdbcType=INTEGER}, #{item.agentName,jdbcType=VARCHAR}, #{item.advertiserName,jdbcType=VARCHAR},
+            #{item.firstIndustry,jdbcType=VARCHAR}, #{item.secondIndustry,jdbcType=VARCHAR},
+            #{item.auditPassTime,jdbcType=VARCHAR},
+            #{item.accountStatus,jdbcType=VARCHAR}, #{item.companyId,jdbcType=BIGINT},
+            #{item.companyName,jdbcType=VARCHAR},
+            #{item.registerTime,jdbcType=VARCHAR}, #{item.accountSource,jdbcType=VARCHAR},
+            #{item.todayCost,jdbcType=DECIMAL},
+            #{item.yesterdayCost,jdbcType=DECIMAL}, #{item.queryEndTime,jdbcType=BIGINT},
+            #{item.todayXHourCost,jdbcType=DECIMAL},
+            #{item.yesterdayXHourCost,jdbcType=DECIMAL}, #{item.xHourCostDiff,jdbcType=DECIMAL},
+            #{item.todayXHourConvert,jdbcType=DECIMAL},
+            #{item.yesterdayXHourConvert,jdbcType=DECIMAL}, #{item.xHourConvertDiff,jdbcType=DECIMAL},
+            #{item.todayXHourCpa,jdbcType=DECIMAL}, #{item.yesterdayXHourCpa,jdbcType=DECIMAL},
+            #{item.xHourCpaDiff,jdbcType=DECIMAL},
+            #{item.todayXHourClick,jdbcType=BIGINT}, #{item.yesterdayXHourClick,jdbcType=BIGINT},
+            #{item.xHourClickDiff,jdbcType=BIGINT},
+            #{item.todayXHourCpc,jdbcType=DECIMAL}, #{item.yesterdayXHourCpc,jdbcType=DECIMAL},
+            #{item.xHourCpcDiff,jdbcType=DECIMAL},
+            #{item.yesterdayCashCost,jdbcType=DECIMAL}, #{item.yesterdayBidCashCost,jdbcType=DECIMAL},
+            #{item.yesterdayBrandCashCost,jdbcType=DECIMAL}, #{item.yesterdayGrantsCost,jdbcType=DECIMAL},
+            #{item.yesterdayMomCost,jdbcType=DECIMAL}, #{item.yesterdayCostDiff,jdbcType=DECIMAL},
+            #{item.historyCost,jdbcType=DECIMAL},
+            #{item.historyCashCost,jdbcType=DECIMAL}, #{item.yesterdayAdNumber,jdbcType=DECIMAL},
+            #{item.registerDays,jdbcType=DECIMAL},
+            #{item.firstRechargeAmount,jdbcType=DECIMAL}, #{item.firstRechargeTime,jdbcType=VARCHAR},
+            #{item.lastRenewTime,jdbcType=VARCHAR}, #{item.totalRenewAmount,jdbcType=DECIMAL},
+            #{item.totalRenewNumber,jdbcType=DECIMAL},
+            #{item.cashBalance,jdbcType=DECIMAL}, #{item.rantBalance,jdbcType=DECIMAL},
+            #{item.lastRechargeTime,jdbcType=VARCHAR},
+            #{item.lastRenewAmount,jdbcType=DECIMAL}, #{item.arpu3cd,jdbcType=DECIMAL},
+            #{item.totalBalance,jdbcType=DECIMAL},
+            #{item.validBalance,jdbcType=DECIMAL}, #{item.customerType,jdbcType=VARCHAR},
+            #{item.firstCostTime,jdbcType=VARCHAR}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

+ 32 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceAudiencePackageGetMapper.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceAudiencePackageGetMapper" >
+  <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceAudiencePackageGet" >
+    <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT" />
+    <id column="audience_package_id" property="audiencePackageId" jdbcType="BIGINT" />
+    <result column="name" property="name" jdbcType="VARCHAR" />
+    <result column="description" property="description" jdbcType="VARCHAR" />
+    <result column="landing_type" property="landingType" jdbcType="VARCHAR" />
+    <result column="hide_if_converted" property="hideIfConverted" jdbcType="VARCHAR" />
+    <result column="converted_time_duration" property="convertedTimeDuration" jdbcType="VARCHAR" />
+    <result column="delivery_range" property="deliveryRange" jdbcType="VARCHAR" />
+    <result column="hide_if_exists" property="hideIfExists" jdbcType="BIGINT" />
+  </resultMap>
+
+
+  <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceAudiencePackageGet" >
+    replace into bytedance_audience_package_get (advertiser_id, audience_package_id, name,
+      description, landing_type, hide_if_converted, 
+      converted_time_duration, delivery_range, hide_if_exists, 
+      audience)
+    values
+    <foreach collection="list" item="item" separator=",">
+      (#{item.advertiserId,jdbcType=BIGINT}, #{item.audiencePackageId,jdbcType=BIGINT}, #{item.name,jdbcType=VARCHAR},
+      #{item.description,jdbcType=VARCHAR}, #{item.landingType,jdbcType=VARCHAR}, #{item.hideIfConverted,jdbcType=VARCHAR},
+      #{item.convertedTimeDuration,jdbcType=VARCHAR}, #{item.deliveryRange,jdbcType=VARCHAR}, #{item.hideIfExists,jdbcType=BIGINT},
+      #{item.audience,jdbcType=LONGVARCHAR})
+    </foreach>
+
+  </insert>
+
+</mapper>

+ 45 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCampaignGetMapper.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceCampaignGetMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceCampaignGet">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="campaign_id" property="campaignId" jdbcType="BIGINT"/>
+        <result column="campaign_name" property="campaignName" jdbcType="VARCHAR"/>
+        <result column="budget" property="budget" jdbcType="INTEGER"/>
+        <result column="budget_mode" property="budgetMode" jdbcType="VARCHAR"/>
+        <result column="modify_time" property="modifyTime" jdbcType="VARCHAR"/>
+        <result column="status" property="status" jdbcType="VARCHAR"/>
+        <result column="campaign_create_time" property="campaignCreateTime" jdbcType="VARCHAR"/>
+        <result column="campaign_modify_time" property="campaignModifyTime" jdbcType="VARCHAR"/>
+        <result column="marketing_purpose" property="marketingPurpose" jdbcType="VARCHAR"/>
+        <result column="delivery_related_num" property="deliveryRelatedNum" jdbcType="VARCHAR"/>
+        <result column="delivery_mode" property="deliveryMode" jdbcType="VARCHAR"/>
+        <result column="landing_type" property="landingType" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+    advertiser_id, campaign_id, campaign_name, budget, budget_mode, modify_time, status, 
+    campaign_create_time, campaign_modify_time, marketing_purpose, delivery_related_num, 
+    delivery_mode, landing_type
+  </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceCampaignGet">
+        replace into bytedance_campaign_get (advertiser_id, campaign_id, campaign_name,
+        budget, budget_mode, modify_time,
+        status, campaign_create_time, campaign_modify_time,
+        marketing_purpose, delivery_related_num, delivery_mode,
+        landing_type)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.campaignId,jdbcType=BIGINT},
+            #{item.campaignName,jdbcType=VARCHAR},
+            #{item.budget,jdbcType=INTEGER}, #{item.budgetMode,jdbcType=VARCHAR}, #{item.modifyTime,jdbcType=VARCHAR},
+            #{item.status,jdbcType=VARCHAR}, #{item.campaignCreateTime,jdbcType=VARCHAR},
+            #{item.campaignModifyTime,jdbcType=VARCHAR},
+            #{item.marketingPurpose,jdbcType=VARCHAR}, #{item.deliveryRelatedNum,jdbcType=VARCHAR},
+            #{item.deliveryMode,jdbcType=VARCHAR},
+            #{item.landingType,jdbcType=VARCHAR})
+        </foreach>
+    </insert>
+
+</mapper>

+ 361 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCampaignReportDailyMapper.xml

@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceCampaignReportDailyMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceCampaignReportDaily">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="campaign_id" property="campaignId" jdbcType="BIGINT"/>
+        <id column="stat_datetime" property="statDatetime" jdbcType="INTEGER"/>
+        <result column="campaign_name" property="campaignName" jdbcType="VARCHAR"/>
+        <result column="cost" property="cost" jdbcType="DECIMAL"/>
+        <result column="show" property="show" jdbcType="BIGINT"/>
+        <result column="avg_show_cost" property="avgShowCost" jdbcType="DECIMAL"/>
+        <result column="click" property="click" jdbcType="BIGINT"/>
+        <result column="avg_click_cost" property="avgClickCost" jdbcType="DECIMAL"/>
+        <result column="ctr" property="ctr" jdbcType="DECIMAL"/>
+        <result column="convert" property="convert" jdbcType="BIGINT"/>
+        <result column="convert_cost" property="convertCost" jdbcType="DECIMAL"/>
+        <result column="convert_rate" property="convertRate" jdbcType="DECIMAL"/>
+        <result column="deep_convert" property="deepConvert" jdbcType="BIGINT"/>
+        <result column="deep_convert_cost" property="deepConvertCost" jdbcType="DECIMAL"/>
+        <result column="deep_convert_rate" property="deepConvertRate" jdbcType="DECIMAL"/>
+        <result column="attribution_convert" property="attributionConvert" jdbcType="BIGINT"/>
+        <result column="attribution_convert_cost" property="attributionConvertCost" jdbcType="DECIMAL"/>
+        <result column="attribution_deep_convert" property="attributionDeepConvert" jdbcType="BIGINT"/>
+        <result column="attribution_deep_convert_cost" property="attributionDeepConvertCost" jdbcType="DECIMAL"/>
+        <result column="download_start" property="downloadStart" jdbcType="BIGINT"/>
+        <result column="download_start_cost" property="downloadStartCost" jdbcType="DECIMAL"/>
+        <result column="download_start_rate" property="downloadStartRate" jdbcType="DECIMAL"/>
+        <result column="download_finish" property="downloadFinish" jdbcType="BIGINT"/>
+        <result column="download_finish_cost" property="downloadFinishCost" jdbcType="DECIMAL"/>
+        <result column="download_finish_rate" property="downloadFinishRate" jdbcType="DECIMAL"/>
+        <result column="click_install" property="clickInstall" jdbcType="BIGINT"/>
+        <result column="install_finish" property="installFinish" jdbcType="BIGINT"/>
+        <result column="install_finish_cost" property="installFinishCost" jdbcType="DECIMAL"/>
+        <result column="install_finish_rate" property="installFinishRate" jdbcType="DECIMAL"/>
+        <result column="active" property="active" jdbcType="BIGINT"/>
+        <result column="active_cost" property="activeCost" jdbcType="DECIMAL"/>
+        <result column="active_rate" property="activeRate" jdbcType="DECIMAL"/>
+        <result column="register" property="register" jdbcType="DECIMAL"/>
+        <result column="active_register_cost" property="activeRegisterCost" jdbcType="DECIMAL"/>
+        <result column="active_register_rate" property="activeRegisterRate" jdbcType="REAL"/>
+        <result column="next_day_open" property="nextDayOpen" jdbcType="BIGINT"/>
+        <result column="next_day_open_cost" property="nextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="next_day_open_rate" property="nextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_cnt" property="attributionNextDayOpenCnt" jdbcType="BIGINT"/>
+        <result column="attribution_next_day_open_cost" property="attributionNextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_rate" property="attributionNextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="game_addiction" property="gameAddiction" jdbcType="BIGINT"/>
+        <result column="game_addiction_cost" property="gameAddictionCost" jdbcType="DECIMAL"/>
+        <result column="game_addiction_rate" property="gameAddictionRate" jdbcType="DECIMAL"/>
+        <result column="pay_count" property="payCount" jdbcType="BIGINT"/>
+        <result column="active_pay_cost" property="activePayCost" jdbcType="DECIMAL"/>
+        <result column="active_pay_rate" property="activePayRate" jdbcType="DECIMAL"/>
+        <result column="loan_completion" property="loanCompletion" jdbcType="BIGINT"/>
+        <result column="loan_completion_cost" property="loanCompletionCost" jdbcType="DECIMAL"/>
+        <result column="loan_completion_rate" property="loanCompletionRate" jdbcType="DECIMAL"/>
+        <result column="pre_loan_credit" property="preLoanCredit" jdbcType="BIGINT"/>
+        <result column="pre_loan_credit_cost" property="preLoanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit" property="loanCredit" jdbcType="BIGINT"/>
+        <result column="loan_credit_cost" property="loanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit_rate" property="loanCreditRate" jdbcType="DECIMAL"/>
+        <result column="in_app_uv" property="inAppUv" jdbcType="BIGINT"/>
+        <result column="in_app_detail_uv" property="inAppDetailUv" jdbcType="BIGINT"/>
+        <result column="in_app_cart" property="inAppCart" jdbcType="BIGINT"/>
+        <result column="in_app_pay" property="inAppPay" jdbcType="BIGINT"/>
+        <result column="in_app_order" property="inAppOrder" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_count" property="attributionGamePay7dCount" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_cost" property="attributionGamePay7dCost" jdbcType="DECIMAL"/>
+        <result column="attribution_active_pay_7d_per_count" property="attributionActivePay7dPerCount"
+                jdbcType="BIGINT"/>
+        <result column="game_pay_cost" property="gamePayCost" jdbcType="DECIMAL"/>
+        <result column="game_pay_count" property="gamePayCount" jdbcType="BIGINT"/>
+        <result column="phone" property="phone" jdbcType="BIGINT"/>
+        <result column="form" property="form" jdbcType="BIGINT"/>
+        <result column="map_search" property="mapSearch" jdbcType="BIGINT"/>
+        <result column="button" property="button" jdbcType="BIGINT"/>
+        <result column="view" property="view" jdbcType="BIGINT"/>
+        <result column="download" property="download" jdbcType="BIGINT"/>
+        <result column="qq" property="qq" jdbcType="BIGINT"/>
+        <result column="lottery" property="lottery" jdbcType="BIGINT"/>
+        <result column="vote" property="vote" jdbcType="BIGINT"/>
+        <result column="message" property="message" jdbcType="BIGINT"/>
+        <result column="redirect" property="redirect" jdbcType="BIGINT"/>
+        <result column="shopping" property="shopping" jdbcType="BIGINT"/>
+        <result column="consult" property="consult" jdbcType="BIGINT"/>
+        <result column="wechat" property="wechat" jdbcType="BIGINT"/>
+        <result column="phone_confirm" property="phoneConfirm" jdbcType="BIGINT"/>
+        <result column="phone_connect" property="phoneConnect" jdbcType="BIGINT"/>
+        <result column="consult_effective" property="consultEffective" jdbcType="BIGINT"/>
+        <result column="coupon" property="coupon" jdbcType="BIGINT"/>
+        <result column="coupon_single_page" property="couponSinglePage" jdbcType="BIGINT"/>
+        <result column="redirect_to_shop" property="redirectToShop" jdbcType="BIGINT"/>
+        <result column="poi_collect" property="poiCollect" jdbcType="BIGINT"/>
+        <result column="poi_address_click" property="poiAddressClick" jdbcType="BIGINT"/>
+        <result column="luban_order_cnt" property="lubanOrderCnt" jdbcType="BIGINT"/>
+        <result column="luban_order_stat_amount" property="lubanOrderStatAmount" jdbcType="DECIMAL"/>
+        <result column="luban_order_roi" property="lubanOrderRoi" jdbcType="DECIMAL"/>
+        <result column="luban_live_enter_cnt" property="lubanLiveEnterCnt" jdbcType="BIGINT"/>
+        <result column="live_watch_one_minute_count" property="liveWatchOneMinuteCount" jdbcType="BIGINT"/>
+        <result column="luban_live_follow_cnt" property="lubanLiveFollowCnt" jdbcType="BIGINT"/>
+        <result column="live_fans_club_join_cnt" property="liveFansClubJoinCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_comment_cnt" property="lubanLiveCommentCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_share_cnt" property="lubanLiveShareCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_cnt" property="lubanLiveGiftCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_amount" property="lubanLiveGiftAmount" jdbcType="DECIMAL"/>
+        <result column="luban_live_slidecart_click_cnt" property="lubanLiveSlidecartClickCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_click_product_cnt" property="lubanLiveClickProductCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_count" property="lubanLivePayOrderCount" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_stat_cost" property="lubanLivePayOrderStatCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_count" property="liveComponentClickCount" jdbcType="BIGINT"/>
+        <result column="live_component_click_cost" property="liveComponentClickCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_rate" property="liveComponentClickRate" jdbcType="DECIMAL"/>
+        <result column="wechat_login_count" property="wechatLoginCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_login_30d_count" property="attributionWechatLogin30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_login_cost" property="wechatLoginCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_login_30d_cost" property="attributionWechatLogin30dCost" jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_count" property="wechatFirstPayCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_first_pay_30d_count" property="attributionWechatFirstPay30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_first_pay_cost" property="wechatFirstPayCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_cost" property="attributionWechatFirstPay30dCost"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_rate" property="wechatFirstPayRate" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_rate" property="attributionWechatFirstPay30dRate"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_pay_amount" property="wechatPayAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_amount" property="attributionWechatPay30dAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_roi" property="attributionWechatPay30dRoi" jdbcType="DECIMAL"/>
+        <result column="phone_effective" property="phoneEffective" jdbcType="BIGINT"/>
+        <result column="total_play" property="totalPlay" jdbcType="BIGINT"/>
+        <result column="valid_play" property="validPlay" jdbcType="BIGINT"/>
+        <result column="valid_play_cost" property="validPlayCost" jdbcType="DECIMAL"/>
+        <result column="valid_play_rate" property="validPlayRate" jdbcType="DECIMAL"/>
+        <result column="play_25_feed_break" property="play25FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_50_feed_break" property="play50FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_75_feed_break" property="play75FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_100_feed_break" property="play100FeedBreak" jdbcType="BIGINT"/>
+        <result column="average_play_time_per_play" property="averagePlayTimePerPlay" jdbcType="DECIMAL"/>
+        <result column="play_over_rate" property="playOverRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play_rate" property="wifiPlayRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play" property="wifiPlay" jdbcType="BIGINT"/>
+        <result column="play_duration_sum" property="playDurationSum" jdbcType="BIGINT"/>
+        <result column="advanced_creative_phone_click" property="advancedCreativePhoneClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_counsel_click" property="advancedCreativeCounselClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_click" property="advancedCreativeFormClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_coupon_addition" property="advancedCreativeCouponAddition" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_submit" property="advancedCreativeFormSubmit" jdbcType="BIGINT"/>
+        <result column="card_show" property="cardShow" jdbcType="BIGINT"/>
+        <result column="share" property="share" jdbcType="BIGINT"/>
+        <result column="comment" property="comment" jdbcType="BIGINT"/>
+        <result column="like" property="like" jdbcType="BIGINT"/>
+        <result column="follow" property="follow" jdbcType="BIGINT"/>
+        <result column="home_visited" property="homeVisited" jdbcType="BIGINT"/>
+        <result column="ies_challenge_click" property="iesChallengeClick" jdbcType="BIGINT"/>
+        <result column="ies_music_click" property="iesMusicClick" jdbcType="BIGINT"/>
+        <result column="location_click" property="locationClick" jdbcType="BIGINT"/>
+        <result column="message_action" property="messageAction" jdbcType="BIGINT"/>
+        <result column="click_landing_page" property="clickLandingPage" jdbcType="BIGINT"/>
+        <result column="click_shopwindow" property="clickShopwindow" jdbcType="BIGINT"/>
+        <result column="click_website" property="clickWebsite" jdbcType="BIGINT"/>
+        <result column="click_download" property="clickDownload" jdbcType="BIGINT"/>
+        <result column="click_call_dy" property="clickCallDy" jdbcType="BIGINT"/>
+        <result column="submit_certification_count" property="submitCertificationCount" jdbcType="BIGINT"/>
+        <result column="approval_count" property="approvalCount" jdbcType="BIGINT"/>
+        <result column="first_rental_order_count" property="firstRentalOrderCount" jdbcType="BIGINT"/>
+        <result column="first_order_count" property="firstOrderCount" jdbcType="BIGINT"/>
+        <result column="commute_first_pay_count" property="commuteFirstPayCount" jdbcType="BIGINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+    advertiser_id, campaign_id, stat_datetime, campaign_name, cost, show, avg_show_cost, 
+    click, avg_click_cost, ctr, convert, convert_cost, convert_rate, deep_convert, deep_convert_cost, 
+    deep_convert_rate, attribution_convert, attribution_convert_cost, attribution_deep_convert, 
+    attribution_deep_convert_cost, download_start, download_start_cost, download_start_rate, 
+    download_finish, download_finish_cost, download_finish_rate, click_install, install_finish, 
+    install_finish_cost, install_finish_rate, active, active_cost, active_rate, register, 
+    active_register_cost, active_register_rate, next_day_open, next_day_open_cost, next_day_open_rate, 
+    attribution_next_day_open_cnt, attribution_next_day_open_cost, attribution_next_day_open_rate, 
+    game_addiction, game_addiction_cost, game_addiction_rate, pay_count, active_pay_cost, 
+    active_pay_rate, loan_completion, loan_completion_cost, loan_completion_rate, pre_loan_credit, 
+    pre_loan_credit_cost, loan_credit, loan_credit_cost, loan_credit_rate, in_app_uv, 
+    in_app_detail_uv, in_app_cart, in_app_pay, in_app_order, attribution_game_pay_7d_count, 
+    attribution_game_pay_7d_cost, attribution_active_pay_7d_per_count, game_pay_cost, 
+    game_pay_count, phone, form, map_search, button, view, download, qq, lottery, vote, 
+    message, redirect, shopping, consult, wechat, phone_confirm, phone_connect, consult_effective, 
+    coupon, coupon_single_page, redirect_to_shop, poi_collect, poi_address_click, luban_order_cnt, 
+    luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt, live_watch_one_minute_count, 
+    luban_live_follow_cnt, live_fans_club_join_cnt, luban_live_comment_cnt, luban_live_share_cnt, 
+    luban_live_gift_cnt, luban_live_gift_amount, luban_live_slidecart_click_cnt, luban_live_click_product_cnt, 
+    luban_live_pay_order_count, luban_live_pay_order_stat_cost, live_component_click_count, 
+    live_component_click_cost, live_component_click_rate, wechat_login_count, attribution_wechat_login_30d_count, 
+    wechat_login_cost, attribution_wechat_login_30d_cost, wechat_first_pay_count, attribution_wechat_first_pay_30d_count, 
+    wechat_first_pay_cost, attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate, 
+    attribution_wechat_first_pay_30d_rate, wechat_pay_amount, attribution_wechat_pay_30d_amount, 
+    attribution_wechat_pay_30d_roi, phone_effective, total_play, valid_play, valid_play_cost, 
+    valid_play_rate, play_25_feed_break, play_50_feed_break, play_75_feed_break, play_100_feed_break, 
+    average_play_time_per_play, play_over_rate, wifi_play_rate, wifi_play, play_duration_sum, 
+    advanced_creative_phone_click, advanced_creative_counsel_click, advanced_creative_form_click, 
+    advanced_creative_coupon_addition, advanced_creative_form_submit, card_show, share, 
+    comment, like, follow, home_visited, ies_challenge_click, ies_music_click, location_click, 
+    message_action, click_landing_page, click_shopwindow, click_website, click_download, 
+    click_call_dy, submit_certification_count, approval_count, first_rental_order_count, 
+    first_order_count, commute_first_pay_count
+  </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceCampaignReportDaily">
+        replace into bytedance_campaign_report_daily (advertiser_id, campaign_id, stat_datetime,
+        campaign_name, cost, `show`,
+        avg_show_cost, click, avg_click_cost,
+        ctr, `convert`, convert_cost,
+        convert_rate, deep_convert, deep_convert_cost,
+        deep_convert_rate, attribution_convert, attribution_convert_cost,
+        attribution_deep_convert, attribution_deep_convert_cost,
+        download_start, download_start_cost, download_start_rate,
+        download_finish, download_finish_cost, download_finish_rate,
+        click_install, install_finish, install_finish_cost,
+        install_finish_rate, active, active_cost,
+        active_rate, register, active_register_cost,
+        active_register_rate, next_day_open, next_day_open_cost,
+        next_day_open_rate, attribution_next_day_open_cnt,
+        attribution_next_day_open_cost, attribution_next_day_open_rate,
+        game_addiction, game_addiction_cost, game_addiction_rate,
+        pay_count, active_pay_cost, active_pay_rate,
+        loan_completion, loan_completion_cost, loan_completion_rate,
+        pre_loan_credit, pre_loan_credit_cost, loan_credit,
+        loan_credit_cost, loan_credit_rate, in_app_uv,
+        in_app_detail_uv, in_app_cart, in_app_pay,
+        in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost,
+        attribution_active_pay_7d_per_count, game_pay_cost,
+        game_pay_count, `phone`, form,
+        map_search, button, `view`,
+        download, qq, lottery,
+        vote, message, redirect,
+        shopping, consult, wechat,
+        phone_confirm, phone_connect, consult_effective,
+        coupon, coupon_single_page, redirect_to_shop,
+        poi_collect, poi_address_click, luban_order_cnt,
+        luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt,
+        live_watch_one_minute_count, luban_live_follow_cnt,
+        live_fans_club_join_cnt, luban_live_comment_cnt,
+        luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount,
+        luban_live_slidecart_click_cnt, luban_live_click_product_cnt,
+        luban_live_pay_order_count, luban_live_pay_order_stat_cost,
+        live_component_click_count, live_component_click_cost,
+        live_component_click_rate, wechat_login_count,
+        attribution_wechat_login_30d_count, wechat_login_cost,
+        attribution_wechat_login_30d_cost, wechat_first_pay_count,
+        attribution_wechat_first_pay_30d_count, wechat_first_pay_cost,
+        attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate,
+        attribution_wechat_first_pay_30d_rate, wechat_pay_amount,
+        attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi,
+        phone_effective, total_play, valid_play,
+        valid_play_cost, valid_play_rate, play_25_feed_break,
+        play_50_feed_break, play_75_feed_break, play_100_feed_break,
+        average_play_time_per_play, play_over_rate, wifi_play_rate,
+        wifi_play, play_duration_sum, advanced_creative_phone_click,
+        advanced_creative_counsel_click, advanced_creative_form_click,
+        advanced_creative_coupon_addition, advanced_creative_form_submit,
+        card_show, `share`, `comment`,
+        `like`, follow, home_visited,
+        ies_challenge_click, ies_music_click, location_click,
+        message_action, click_landing_page, click_shopwindow,
+        click_website, click_download, click_call_dy,
+        submit_certification_count, approval_count,
+        first_rental_order_count, first_order_count, commute_first_pay_count
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.campaignId,jdbcType=BIGINT},
+            #{item.statDatetime,jdbcType=INTEGER},
+            #{item.campaignName,jdbcType=VARCHAR}, #{item.cost,jdbcType=DECIMAL}, #{item.show,jdbcType=BIGINT},
+            #{item.avgShowCost,jdbcType=DECIMAL}, #{item.click,jdbcType=BIGINT}, #{item.avgClickCost,jdbcType=DECIMAL},
+            #{item.ctr,jdbcType=DECIMAL}, #{item.convert,jdbcType=BIGINT}, #{item.convertCost,jdbcType=DECIMAL},
+            #{item.convertRate,jdbcType=DECIMAL}, #{item.deepConvert,jdbcType=BIGINT},
+            #{item.deepConvertCost,jdbcType=DECIMAL},
+            #{item.deepConvertRate,jdbcType=DECIMAL}, #{item.attributionConvert,jdbcType=BIGINT},
+            #{item.attributionConvertCost,jdbcType=DECIMAL},
+            #{item.attributionDeepConvert,jdbcType=BIGINT}, #{item.attributionDeepConvertCost,jdbcType=DECIMAL},
+            #{item.downloadStart,jdbcType=BIGINT}, #{item.downloadStartCost,jdbcType=DECIMAL},
+            #{item.downloadStartRate,jdbcType=DECIMAL},
+            #{item.downloadFinish,jdbcType=BIGINT}, #{item.downloadFinishCost,jdbcType=DECIMAL},
+            #{item.downloadFinishRate,jdbcType=DECIMAL},
+            #{item.clickInstall,jdbcType=BIGINT}, #{item.installFinish,jdbcType=BIGINT},
+            #{item.installFinishCost,jdbcType=DECIMAL},
+            #{item.installFinishRate,jdbcType=DECIMAL}, #{item.active,jdbcType=BIGINT},
+            #{item.activeCost,jdbcType=DECIMAL},
+            #{item.activeRate,jdbcType=DECIMAL}, #{item.register,jdbcType=DECIMAL},
+            #{item.activeRegisterCost,jdbcType=DECIMAL},
+            #{item.activeRegisterRate,jdbcType=REAL}, #{item.nextDayOpen,jdbcType=BIGINT},
+            #{item.nextDayOpenCost,jdbcType=DECIMAL},
+            #{item.nextDayOpenRate,jdbcType=DECIMAL}, #{item.attributionNextDayOpenCnt,jdbcType=BIGINT},
+            #{item.attributionNextDayOpenCost,jdbcType=DECIMAL}, #{item.attributionNextDayOpenRate,jdbcType=DECIMAL},
+            #{item.gameAddiction,jdbcType=BIGINT}, #{item.gameAddictionCost,jdbcType=DECIMAL},
+            #{item.gameAddictionRate,jdbcType=DECIMAL},
+            #{item.payCount,jdbcType=BIGINT}, #{item.activePayCost,jdbcType=DECIMAL},
+            #{item.activePayRate,jdbcType=DECIMAL},
+            #{item.loanCompletion,jdbcType=BIGINT}, #{item.loanCompletionCost,jdbcType=DECIMAL},
+            #{item.loanCompletionRate,jdbcType=DECIMAL},
+            #{item.preLoanCredit,jdbcType=BIGINT}, #{item.preLoanCreditCost,jdbcType=DECIMAL},
+            #{item.loanCredit,jdbcType=BIGINT},
+            #{item.loanCreditCost,jdbcType=DECIMAL}, #{item.loanCreditRate,jdbcType=DECIMAL},
+            #{item.inAppUv,jdbcType=BIGINT},
+            #{item.inAppDetailUv,jdbcType=BIGINT}, #{item.inAppCart,jdbcType=BIGINT}, #{item.inAppPay,jdbcType=BIGINT},
+            #{item.inAppOrder,jdbcType=BIGINT}, #{item.attributionGamePay7dCount,jdbcType=BIGINT},
+            #{item.attributionGamePay7dCost,jdbcType=DECIMAL},
+            #{item.attributionActivePay7dPerCount,jdbcType=BIGINT}, #{item.gamePayCost,jdbcType=DECIMAL},
+            #{item.gamePayCount,jdbcType=BIGINT}, #{item.phone,jdbcType=BIGINT}, #{item.form,jdbcType=BIGINT},
+            #{item.mapSearch,jdbcType=BIGINT}, #{item.button,jdbcType=BIGINT}, #{item.view,jdbcType=BIGINT},
+            #{item.download,jdbcType=BIGINT}, #{item.qq,jdbcType=BIGINT}, #{item.lottery,jdbcType=BIGINT},
+            #{item.vote,jdbcType=BIGINT}, #{item.message,jdbcType=BIGINT}, #{item.redirect,jdbcType=BIGINT},
+            #{item.shopping,jdbcType=BIGINT}, #{item.consult,jdbcType=BIGINT}, #{item.wechat,jdbcType=BIGINT},
+            #{item.phoneConfirm,jdbcType=BIGINT}, #{item.phoneConnect,jdbcType=BIGINT},
+            #{item.consultEffective,jdbcType=BIGINT},
+            #{item.coupon,jdbcType=BIGINT}, #{item.couponSinglePage,jdbcType=BIGINT},
+            #{item.redirectToShop,jdbcType=BIGINT},
+            #{item.poiCollect,jdbcType=BIGINT}, #{item.poiAddressClick,jdbcType=BIGINT},
+            #{item.lubanOrderCnt,jdbcType=BIGINT},
+            #{item.lubanOrderStatAmount,jdbcType=DECIMAL}, #{item.lubanOrderRoi,jdbcType=DECIMAL},
+            #{item.lubanLiveEnterCnt,jdbcType=BIGINT},
+            #{item.liveWatchOneMinuteCount,jdbcType=BIGINT}, #{item.lubanLiveFollowCnt,jdbcType=BIGINT},
+            #{item.liveFansClubJoinCnt,jdbcType=BIGINT}, #{item.lubanLiveCommentCnt,jdbcType=BIGINT},
+            #{item.lubanLiveShareCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftCnt,jdbcType=BIGINT},
+            #{item.lubanLiveGiftAmount,jdbcType=DECIMAL},
+            #{item.lubanLiveSlidecartClickCnt,jdbcType=BIGINT}, #{item.lubanLiveClickProductCnt,jdbcType=BIGINT},
+            #{item.lubanLivePayOrderCount,jdbcType=BIGINT}, #{item.lubanLivePayOrderStatCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickCount,jdbcType=BIGINT}, #{item.liveComponentClickCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickRate,jdbcType=DECIMAL}, #{item.wechatLoginCount,jdbcType=BIGINT},
+            #{item.attributionWechatLogin30dCount,jdbcType=BIGINT}, #{item.wechatLoginCost,jdbcType=DECIMAL},
+            #{item.attributionWechatLogin30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionWechatFirstPay30dCount,jdbcType=BIGINT}, #{item.wechatFirstPayCost,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayRate,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dRate,jdbcType=DECIMAL}, #{item.wechatPayAmount,jdbcType=DECIMAL},
+            #{item.attributionWechatPay30dAmount,jdbcType=DECIMAL}, #{item.attributionWechatPay30dRoi,jdbcType=DECIMAL},
+            #{item.phoneEffective,jdbcType=BIGINT}, #{item.totalPlay,jdbcType=BIGINT},
+            #{item.validPlay,jdbcType=BIGINT},
+            #{item.validPlayCost,jdbcType=DECIMAL}, #{item.validPlayRate,jdbcType=DECIMAL},
+            #{item.play25FeedBreak,jdbcType=BIGINT},
+            #{item.play50FeedBreak,jdbcType=BIGINT}, #{item.play75FeedBreak,jdbcType=BIGINT},
+            #{item.play100FeedBreak,jdbcType=BIGINT},
+            #{item.averagePlayTimePerPlay,jdbcType=DECIMAL}, #{item.playOverRate,jdbcType=DECIMAL},
+            #{item.wifiPlayRate,jdbcType=DECIMAL},
+            #{item.wifiPlay,jdbcType=BIGINT}, #{item.playDurationSum,jdbcType=BIGINT},
+            #{item.advancedCreativePhoneClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCounselClick,jdbcType=BIGINT}, #{item.advancedCreativeFormClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCouponAddition,jdbcType=BIGINT}, #{item.advancedCreativeFormSubmit,jdbcType=BIGINT},
+            #{item.cardShow,jdbcType=BIGINT}, #{item.share,jdbcType=BIGINT}, #{item.comment,jdbcType=BIGINT},
+            #{item.like,jdbcType=BIGINT}, #{item.follow,jdbcType=BIGINT}, #{item.homeVisited,jdbcType=BIGINT},
+            #{item.iesChallengeClick,jdbcType=BIGINT}, #{item.iesMusicClick,jdbcType=BIGINT},
+            #{item.locationClick,jdbcType=BIGINT},
+            #{item.messageAction,jdbcType=BIGINT}, #{item.clickLandingPage,jdbcType=BIGINT},
+            #{item.clickShopwindow,jdbcType=BIGINT},
+            #{item.clickWebsite,jdbcType=BIGINT}, #{item.clickDownload,jdbcType=BIGINT},
+            #{item.clickCallDy,jdbcType=BIGINT},
+            #{item.submitCertificationCount,jdbcType=BIGINT}, #{item.approvalCount,jdbcType=BIGINT},
+            #{item.firstRentalOrderCount,jdbcType=BIGINT}, #{item.firstOrderCount,jdbcType=BIGINT},
+            #{item.commuteFirstPayCount,jdbcType=BIGINT}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

+ 336 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCampaignReportHourlyMapper.xml

@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceCampaignReportHourlyMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceCampaignReportHourly">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="campaign_id" property="campaignId" jdbcType="BIGINT"/>
+        <id column="stat_datetime" property="statDatetime" jdbcType="INTEGER"/>
+        <id column="hour" property="hour" jdbcType="INTEGER"/>
+        <result column="campaign_name" property="campaignName" jdbcType="VARCHAR"/>
+        <result column="cost" property="cost" jdbcType="DECIMAL"/>
+        <result column="show" property="show" jdbcType="BIGINT"/>
+        <result column="avg_show_cost" property="avgShowCost" jdbcType="DECIMAL"/>
+        <result column="click" property="click" jdbcType="BIGINT"/>
+        <result column="avg_click_cost" property="avgClickCost" jdbcType="DECIMAL"/>
+        <result column="ctr" property="ctr" jdbcType="DECIMAL"/>
+        <result column="convert" property="convert" jdbcType="BIGINT"/>
+        <result column="convert_cost" property="convertCost" jdbcType="DECIMAL"/>
+        <result column="convert_rate" property="convertRate" jdbcType="DECIMAL"/>
+        <result column="deep_convert" property="deepConvert" jdbcType="BIGINT"/>
+        <result column="deep_convert_cost" property="deepConvertCost" jdbcType="DECIMAL"/>
+        <result column="deep_convert_rate" property="deepConvertRate" jdbcType="DECIMAL"/>
+        <result column="attribution_convert" property="attributionConvert" jdbcType="BIGINT"/>
+        <result column="attribution_convert_cost" property="attributionConvertCost" jdbcType="DECIMAL"/>
+        <result column="attribution_deep_convert" property="attributionDeepConvert" jdbcType="BIGINT"/>
+        <result column="attribution_deep_convert_cost" property="attributionDeepConvertCost" jdbcType="DECIMAL"/>
+        <result column="download_start" property="downloadStart" jdbcType="BIGINT"/>
+        <result column="download_start_cost" property="downloadStartCost" jdbcType="DECIMAL"/>
+        <result column="download_start_rate" property="downloadStartRate" jdbcType="DECIMAL"/>
+        <result column="download_finish" property="downloadFinish" jdbcType="BIGINT"/>
+        <result column="download_finish_cost" property="downloadFinishCost" jdbcType="DECIMAL"/>
+        <result column="download_finish_rate" property="downloadFinishRate" jdbcType="DECIMAL"/>
+        <result column="click_install" property="clickInstall" jdbcType="BIGINT"/>
+        <result column="install_finish" property="installFinish" jdbcType="BIGINT"/>
+        <result column="install_finish_cost" property="installFinishCost" jdbcType="DECIMAL"/>
+        <result column="install_finish_rate" property="installFinishRate" jdbcType="DECIMAL"/>
+        <result column="active" property="active" jdbcType="BIGINT"/>
+        <result column="active_cost" property="activeCost" jdbcType="DECIMAL"/>
+        <result column="active_rate" property="activeRate" jdbcType="DECIMAL"/>
+        <result column="register" property="register" jdbcType="DECIMAL"/>
+        <result column="active_register_cost" property="activeRegisterCost" jdbcType="DECIMAL"/>
+        <result column="active_register_rate" property="activeRegisterRate" jdbcType="REAL"/>
+        <result column="next_day_open" property="nextDayOpen" jdbcType="BIGINT"/>
+        <result column="next_day_open_cost" property="nextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="next_day_open_rate" property="nextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_cnt" property="attributionNextDayOpenCnt" jdbcType="BIGINT"/>
+        <result column="attribution_next_day_open_cost" property="attributionNextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_rate" property="attributionNextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="game_addiction" property="gameAddiction" jdbcType="BIGINT"/>
+        <result column="game_addiction_cost" property="gameAddictionCost" jdbcType="DECIMAL"/>
+        <result column="game_addiction_rate" property="gameAddictionRate" jdbcType="DECIMAL"/>
+        <result column="pay_count" property="payCount" jdbcType="BIGINT"/>
+        <result column="active_pay_cost" property="activePayCost" jdbcType="DECIMAL"/>
+        <result column="active_pay_rate" property="activePayRate" jdbcType="DECIMAL"/>
+        <result column="loan_completion" property="loanCompletion" jdbcType="BIGINT"/>
+        <result column="loan_completion_cost" property="loanCompletionCost" jdbcType="DECIMAL"/>
+        <result column="loan_completion_rate" property="loanCompletionRate" jdbcType="DECIMAL"/>
+        <result column="pre_loan_credit" property="preLoanCredit" jdbcType="BIGINT"/>
+        <result column="pre_loan_credit_cost" property="preLoanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit" property="loanCredit" jdbcType="BIGINT"/>
+        <result column="loan_credit_cost" property="loanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit_rate" property="loanCreditRate" jdbcType="DECIMAL"/>
+        <result column="in_app_uv" property="inAppUv" jdbcType="BIGINT"/>
+        <result column="in_app_detail_uv" property="inAppDetailUv" jdbcType="BIGINT"/>
+        <result column="in_app_cart" property="inAppCart" jdbcType="BIGINT"/>
+        <result column="in_app_pay" property="inAppPay" jdbcType="BIGINT"/>
+        <result column="in_app_order" property="inAppOrder" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_count" property="attributionGamePay7dCount" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_cost" property="attributionGamePay7dCost" jdbcType="DECIMAL"/>
+        <result column="attribution_active_pay_7d_per_count" property="attributionActivePay7dPerCount"
+                jdbcType="BIGINT"/>
+        <result column="game_pay_cost" property="gamePayCost" jdbcType="DECIMAL"/>
+        <result column="game_pay_count" property="gamePayCount" jdbcType="BIGINT"/>
+        <result column="phone" property="phone" jdbcType="BIGINT"/>
+        <result column="form" property="form" jdbcType="BIGINT"/>
+        <result column="map_search" property="mapSearch" jdbcType="BIGINT"/>
+        <result column="button" property="button" jdbcType="BIGINT"/>
+        <result column="view" property="view" jdbcType="BIGINT"/>
+        <result column="download" property="download" jdbcType="BIGINT"/>
+        <result column="qq" property="qq" jdbcType="BIGINT"/>
+        <result column="lottery" property="lottery" jdbcType="BIGINT"/>
+        <result column="vote" property="vote" jdbcType="BIGINT"/>
+        <result column="message" property="message" jdbcType="BIGINT"/>
+        <result column="redirect" property="redirect" jdbcType="BIGINT"/>
+        <result column="shopping" property="shopping" jdbcType="BIGINT"/>
+        <result column="consult" property="consult" jdbcType="BIGINT"/>
+        <result column="wechat" property="wechat" jdbcType="BIGINT"/>
+        <result column="phone_confirm" property="phoneConfirm" jdbcType="BIGINT"/>
+        <result column="phone_connect" property="phoneConnect" jdbcType="BIGINT"/>
+        <result column="consult_effective" property="consultEffective" jdbcType="BIGINT"/>
+        <result column="coupon" property="coupon" jdbcType="BIGINT"/>
+        <result column="coupon_single_page" property="couponSinglePage" jdbcType="BIGINT"/>
+        <result column="redirect_to_shop" property="redirectToShop" jdbcType="BIGINT"/>
+        <result column="poi_collect" property="poiCollect" jdbcType="BIGINT"/>
+        <result column="poi_address_click" property="poiAddressClick" jdbcType="BIGINT"/>
+        <result column="luban_order_cnt" property="lubanOrderCnt" jdbcType="BIGINT"/>
+        <result column="luban_order_stat_amount" property="lubanOrderStatAmount" jdbcType="DECIMAL"/>
+        <result column="luban_order_roi" property="lubanOrderRoi" jdbcType="DECIMAL"/>
+        <result column="luban_live_enter_cnt" property="lubanLiveEnterCnt" jdbcType="BIGINT"/>
+        <result column="live_watch_one_minute_count" property="liveWatchOneMinuteCount" jdbcType="BIGINT"/>
+        <result column="luban_live_follow_cnt" property="lubanLiveFollowCnt" jdbcType="BIGINT"/>
+        <result column="live_fans_club_join_cnt" property="liveFansClubJoinCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_comment_cnt" property="lubanLiveCommentCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_share_cnt" property="lubanLiveShareCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_cnt" property="lubanLiveGiftCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_amount" property="lubanLiveGiftAmount" jdbcType="DECIMAL"/>
+        <result column="luban_live_slidecart_click_cnt" property="lubanLiveSlidecartClickCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_click_product_cnt" property="lubanLiveClickProductCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_count" property="lubanLivePayOrderCount" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_stat_cost" property="lubanLivePayOrderStatCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_count" property="liveComponentClickCount" jdbcType="BIGINT"/>
+        <result column="live_component_click_cost" property="liveComponentClickCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_rate" property="liveComponentClickRate" jdbcType="DECIMAL"/>
+        <result column="wechat_login_count" property="wechatLoginCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_login_30d_count" property="attributionWechatLogin30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_login_cost" property="wechatLoginCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_login_30d_cost" property="attributionWechatLogin30dCost" jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_count" property="wechatFirstPayCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_first_pay_30d_count" property="attributionWechatFirstPay30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_first_pay_cost" property="wechatFirstPayCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_cost" property="attributionWechatFirstPay30dCost"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_rate" property="wechatFirstPayRate" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_rate" property="attributionWechatFirstPay30dRate"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_pay_amount" property="wechatPayAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_amount" property="attributionWechatPay30dAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_roi" property="attributionWechatPay30dRoi" jdbcType="DECIMAL"/>
+        <result column="phone_effective" property="phoneEffective" jdbcType="BIGINT"/>
+        <result column="total_play" property="totalPlay" jdbcType="BIGINT"/>
+        <result column="valid_play" property="validPlay" jdbcType="BIGINT"/>
+        <result column="valid_play_cost" property="validPlayCost" jdbcType="DECIMAL"/>
+        <result column="valid_play_rate" property="validPlayRate" jdbcType="DECIMAL"/>
+        <result column="play_25_feed_break" property="play25FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_50_feed_break" property="play50FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_75_feed_break" property="play75FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_100_feed_break" property="play100FeedBreak" jdbcType="BIGINT"/>
+        <result column="average_play_time_per_play" property="averagePlayTimePerPlay" jdbcType="DECIMAL"/>
+        <result column="play_over_rate" property="playOverRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play_rate" property="wifiPlayRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play" property="wifiPlay" jdbcType="BIGINT"/>
+        <result column="play_duration_sum" property="playDurationSum" jdbcType="BIGINT"/>
+        <result column="advanced_creative_phone_click" property="advancedCreativePhoneClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_counsel_click" property="advancedCreativeCounselClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_click" property="advancedCreativeFormClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_coupon_addition" property="advancedCreativeCouponAddition" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_submit" property="advancedCreativeFormSubmit" jdbcType="BIGINT"/>
+        <result column="card_show" property="cardShow" jdbcType="BIGINT"/>
+        <result column="share" property="share" jdbcType="BIGINT"/>
+        <result column="comment" property="comment" jdbcType="BIGINT"/>
+        <result column="like" property="like" jdbcType="BIGINT"/>
+        <result column="follow" property="follow" jdbcType="BIGINT"/>
+        <result column="home_visited" property="homeVisited" jdbcType="BIGINT"/>
+        <result column="ies_challenge_click" property="iesChallengeClick" jdbcType="BIGINT"/>
+        <result column="ies_music_click" property="iesMusicClick" jdbcType="BIGINT"/>
+        <result column="location_click" property="locationClick" jdbcType="BIGINT"/>
+        <result column="message_action" property="messageAction" jdbcType="BIGINT"/>
+        <result column="click_landing_page" property="clickLandingPage" jdbcType="BIGINT"/>
+        <result column="click_shopwindow" property="clickShopwindow" jdbcType="BIGINT"/>
+        <result column="click_website" property="clickWebsite" jdbcType="BIGINT"/>
+        <result column="click_download" property="clickDownload" jdbcType="BIGINT"/>
+        <result column="click_call_dy" property="clickCallDy" jdbcType="BIGINT"/>
+        <result column="submit_certification_count" property="submitCertificationCount" jdbcType="BIGINT"/>
+        <result column="approval_count" property="approvalCount" jdbcType="BIGINT"/>
+        <result column="first_rental_order_count" property="firstRentalOrderCount" jdbcType="BIGINT"/>
+        <result column="first_order_count" property="firstOrderCount" jdbcType="BIGINT"/>
+        <result column="commute_first_pay_count" property="commuteFirstPayCount" jdbcType="BIGINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+    advertiser_id, campaign_id, stat_datetime, hour, campaign_name, cost, show, avg_show_cost, 
+    click, avg_click_cost, ctr, convert, convert_cost, convert_rate, deep_convert, deep_convert_cost, 
+    deep_convert_rate, attribution_convert, attribution_convert_cost, attribution_deep_convert, 
+    attribution_deep_convert_cost, download_start, download_start_cost, download_start_rate, 
+    download_finish, download_finish_cost, download_finish_rate, click_install, install_finish, 
+    install_finish_cost, install_finish_rate, active, active_cost, active_rate, register, 
+    active_register_cost, active_register_rate, next_day_open, next_day_open_cost, next_day_open_rate, 
+    attribution_next_day_open_cnt, attribution_next_day_open_cost, attribution_next_day_open_rate, 
+    game_addiction, game_addiction_cost, game_addiction_rate, pay_count, active_pay_cost, 
+    active_pay_rate, loan_completion, loan_completion_cost, loan_completion_rate, pre_loan_credit, 
+    pre_loan_credit_cost, loan_credit, loan_credit_cost, loan_credit_rate, in_app_uv, 
+    in_app_detail_uv, in_app_cart, in_app_pay, in_app_order, attribution_game_pay_7d_count, 
+    attribution_game_pay_7d_cost, attribution_active_pay_7d_per_count, game_pay_cost, 
+    game_pay_count, phone, form, map_search, button, view, download, qq, lottery, vote, 
+    message, redirect, shopping, consult, wechat, phone_confirm, phone_connect, consult_effective, 
+    coupon, coupon_single_page, redirect_to_shop, poi_collect, poi_address_click, luban_order_cnt, 
+    luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt, live_watch_one_minute_count, 
+    luban_live_follow_cnt, live_fans_club_join_cnt, luban_live_comment_cnt, luban_live_share_cnt, 
+    luban_live_gift_cnt, luban_live_gift_amount, luban_live_slidecart_click_cnt, luban_live_click_product_cnt, 
+    luban_live_pay_order_count, luban_live_pay_order_stat_cost, live_component_click_count, 
+    live_component_click_cost, live_component_click_rate, wechat_login_count, attribution_wechat_login_30d_count, 
+    wechat_login_cost, attribution_wechat_login_30d_cost, wechat_first_pay_count, attribution_wechat_first_pay_30d_count, 
+    wechat_first_pay_cost, attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate, 
+    attribution_wechat_first_pay_30d_rate, wechat_pay_amount, attribution_wechat_pay_30d_amount, 
+    attribution_wechat_pay_30d_roi, phone_effective, total_play, valid_play, valid_play_cost, 
+    valid_play_rate, play_25_feed_break, play_50_feed_break, play_75_feed_break, play_100_feed_break, 
+    average_play_time_per_play, play_over_rate, wifi_play_rate, wifi_play, play_duration_sum, 
+    advanced_creative_phone_click, advanced_creative_counsel_click, advanced_creative_form_click, 
+    advanced_creative_coupon_addition, advanced_creative_form_submit, card_show, share, 
+    comment, like, follow, home_visited, ies_challenge_click, ies_music_click, location_click, 
+    message_action, click_landing_page, click_shopwindow, click_website, click_download, 
+    click_call_dy, submit_certification_count, approval_count, first_rental_order_count, 
+    first_order_count, commute_first_pay_count
+  </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceCampaignReportHourly">
+    replace bytedance_campaign_report_hourly (advertiser_id, campaign_id, stat_datetime,
+      `hour`, campaign_name, cost,
+      `show`, avg_show_cost, `click`,
+      avg_click_cost, ctr, `convert`,
+      convert_cost, convert_rate, deep_convert, 
+      deep_convert_cost, deep_convert_rate, attribution_convert, 
+      attribution_convert_cost, attribution_deep_convert, 
+      attribution_deep_convert_cost, download_start, 
+      download_start_cost, download_start_rate, download_finish, 
+      download_finish_cost, download_finish_rate, 
+      click_install, install_finish, install_finish_cost, 
+      install_finish_rate, active, active_cost, 
+      active_rate, register, active_register_cost, 
+      active_register_rate, next_day_open, next_day_open_cost, 
+      next_day_open_rate, attribution_next_day_open_cnt, 
+      attribution_next_day_open_cost, attribution_next_day_open_rate, 
+      game_addiction, game_addiction_cost, game_addiction_rate, 
+      pay_count, active_pay_cost, active_pay_rate, 
+      loan_completion, loan_completion_cost, loan_completion_rate, 
+      pre_loan_credit, pre_loan_credit_cost, loan_credit, 
+      loan_credit_cost, loan_credit_rate, in_app_uv, 
+      in_app_detail_uv, in_app_cart, in_app_pay, 
+      in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost, 
+      attribution_active_pay_7d_per_count, game_pay_cost, 
+      game_pay_count, phone, `form`,
+      map_search, button, `view`,
+      download, `qq`, lottery,
+      vote, message, redirect, 
+      shopping, consult, wechat, 
+      phone_confirm, phone_connect, consult_effective, 
+      coupon, coupon_single_page, redirect_to_shop, 
+      poi_collect, poi_address_click, luban_order_cnt, 
+      luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt, 
+      live_watch_one_minute_count, luban_live_follow_cnt, 
+      live_fans_club_join_cnt, luban_live_comment_cnt, 
+      luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount, 
+      luban_live_slidecart_click_cnt, luban_live_click_product_cnt, 
+      luban_live_pay_order_count, luban_live_pay_order_stat_cost, 
+      live_component_click_count, live_component_click_cost, 
+      live_component_click_rate, wechat_login_count, 
+      attribution_wechat_login_30d_count, wechat_login_cost, 
+      attribution_wechat_login_30d_cost, wechat_first_pay_count, 
+      attribution_wechat_first_pay_30d_count, wechat_first_pay_cost, 
+      attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate, 
+      attribution_wechat_first_pay_30d_rate, wechat_pay_amount, 
+      attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi, 
+      phone_effective, total_play, valid_play, 
+      valid_play_cost, valid_play_rate, play_25_feed_break, 
+      play_50_feed_break, play_75_feed_break, play_100_feed_break, 
+      average_play_time_per_play, play_over_rate, wifi_play_rate, 
+      wifi_play, play_duration_sum, advanced_creative_phone_click, 
+      advanced_creative_counsel_click, advanced_creative_form_click, 
+      advanced_creative_coupon_addition, advanced_creative_form_submit, 
+      card_show, `share`, `comment`,
+      `like`, `follow`, home_visited,
+      ies_challenge_click, ies_music_click, location_click, 
+      message_action, click_landing_page, click_shopwindow, 
+      click_website, click_download, click_call_dy, 
+      submit_certification_count, approval_count, 
+      first_rental_order_count, first_order_count, commute_first_pay_count
+      )
+    values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.advertiserId,jdbcType=BIGINT}, #{item.campaignId,jdbcType=BIGINT}, #{item.statDatetime,jdbcType=INTEGER},
+            #{item.hour,jdbcType=INTEGER}, #{item.campaignName,jdbcType=VARCHAR}, #{item.cost,jdbcType=DECIMAL},
+            #{item.show,jdbcType=BIGINT}, #{item.avgShowCost,jdbcType=DECIMAL}, #{item.click,jdbcType=BIGINT},
+            #{item.avgClickCost,jdbcType=DECIMAL}, #{item.ctr,jdbcType=DECIMAL}, #{item.convert,jdbcType=BIGINT},
+            #{item.convertCost,jdbcType=DECIMAL}, #{item.convertRate,jdbcType=DECIMAL}, #{item.deepConvert,jdbcType=BIGINT},
+            #{item.deepConvertCost,jdbcType=DECIMAL}, #{item.deepConvertRate,jdbcType=DECIMAL}, #{item.attributionConvert,jdbcType=BIGINT},
+            #{item.attributionConvertCost,jdbcType=DECIMAL}, #{item.attributionDeepConvert,jdbcType=BIGINT},
+            #{item.attributionDeepConvertCost,jdbcType=DECIMAL}, #{item.downloadStart,jdbcType=BIGINT},
+            #{item.downloadStartCost,jdbcType=DECIMAL}, #{item.downloadStartRate,jdbcType=DECIMAL}, #{item.downloadFinish,jdbcType=BIGINT},
+            #{item.downloadFinishCost,jdbcType=DECIMAL}, #{item.downloadFinishRate,jdbcType=DECIMAL},
+            #{item.clickInstall,jdbcType=BIGINT}, #{item.installFinish,jdbcType=BIGINT}, #{item.installFinishCost,jdbcType=DECIMAL},
+            #{item.installFinishRate,jdbcType=DECIMAL}, #{item.active,jdbcType=BIGINT}, #{item.activeCost,jdbcType=DECIMAL},
+            #{item.activeRate,jdbcType=DECIMAL}, #{item.register,jdbcType=DECIMAL}, #{item.activeRegisterCost,jdbcType=DECIMAL},
+            #{item.activeRegisterRate,jdbcType=REAL}, #{item.nextDayOpen,jdbcType=BIGINT}, #{item.nextDayOpenCost,jdbcType=DECIMAL},
+            #{item.nextDayOpenRate,jdbcType=DECIMAL}, #{item.attributionNextDayOpenCnt,jdbcType=BIGINT},
+            #{item.attributionNextDayOpenCost,jdbcType=DECIMAL}, #{item.attributionNextDayOpenRate,jdbcType=DECIMAL},
+            #{item.gameAddiction,jdbcType=BIGINT}, #{item.gameAddictionCost,jdbcType=DECIMAL}, #{item.gameAddictionRate,jdbcType=DECIMAL},
+            #{item.payCount,jdbcType=BIGINT}, #{item.activePayCost,jdbcType=DECIMAL}, #{item.activePayRate,jdbcType=DECIMAL},
+            #{item.loanCompletion,jdbcType=BIGINT}, #{item.loanCompletionCost,jdbcType=DECIMAL}, #{item.loanCompletionRate,jdbcType=DECIMAL},
+            #{item.preLoanCredit,jdbcType=BIGINT}, #{item.preLoanCreditCost,jdbcType=DECIMAL}, #{item.loanCredit,jdbcType=BIGINT},
+            #{item.loanCreditCost,jdbcType=DECIMAL}, #{item.loanCreditRate,jdbcType=DECIMAL}, #{item.inAppUv,jdbcType=BIGINT},
+            #{item.inAppDetailUv,jdbcType=BIGINT}, #{item.inAppCart,jdbcType=BIGINT}, #{item.inAppPay,jdbcType=BIGINT},
+            #{item.inAppOrder,jdbcType=BIGINT}, #{item.attributionGamePay7dCount,jdbcType=BIGINT}, #{item.attributionGamePay7dCost,jdbcType=DECIMAL},
+            #{item.attributionActivePay7dPerCount,jdbcType=BIGINT}, #{item.gamePayCost,jdbcType=DECIMAL},
+            #{item.gamePayCount,jdbcType=BIGINT}, #{item.phone,jdbcType=BIGINT}, #{item.form,jdbcType=BIGINT},
+            #{item.mapSearch,jdbcType=BIGINT}, #{item.button,jdbcType=BIGINT}, #{item.view,jdbcType=BIGINT},
+            #{item.download,jdbcType=BIGINT}, #{item.qq,jdbcType=BIGINT}, #{item.lottery,jdbcType=BIGINT},
+            #{item.vote,jdbcType=BIGINT}, #{item.message,jdbcType=BIGINT}, #{item.redirect,jdbcType=BIGINT},
+            #{item.shopping,jdbcType=BIGINT}, #{item.consult,jdbcType=BIGINT}, #{item.wechat,jdbcType=BIGINT},
+            #{item.phoneConfirm,jdbcType=BIGINT}, #{item.phoneConnect,jdbcType=BIGINT}, #{item.consultEffective,jdbcType=BIGINT},
+            #{item.coupon,jdbcType=BIGINT}, #{item.couponSinglePage,jdbcType=BIGINT}, #{item.redirectToShop,jdbcType=BIGINT},
+            #{item.poiCollect,jdbcType=BIGINT}, #{item.poiAddressClick,jdbcType=BIGINT}, #{item.lubanOrderCnt,jdbcType=BIGINT},
+            #{item.lubanOrderStatAmount,jdbcType=DECIMAL}, #{item.lubanOrderRoi,jdbcType=DECIMAL}, #{item.lubanLiveEnterCnt,jdbcType=BIGINT},
+            #{item.liveWatchOneMinuteCount,jdbcType=BIGINT}, #{item.lubanLiveFollowCnt,jdbcType=BIGINT},
+            #{item.liveFansClubJoinCnt,jdbcType=BIGINT}, #{item.lubanLiveCommentCnt,jdbcType=BIGINT},
+            #{item.lubanLiveShareCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftAmount,jdbcType=DECIMAL},
+            #{item.lubanLiveSlidecartClickCnt,jdbcType=BIGINT}, #{item.lubanLiveClickProductCnt,jdbcType=BIGINT},
+            #{item.lubanLivePayOrderCount,jdbcType=BIGINT}, #{item.lubanLivePayOrderStatCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickCount,jdbcType=BIGINT}, #{item.liveComponentClickCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickRate,jdbcType=DECIMAL}, #{item.wechatLoginCount,jdbcType=BIGINT},
+            #{item.attributionWechatLogin30dCount,jdbcType=BIGINT}, #{item.wechatLoginCost,jdbcType=DECIMAL},
+            #{item.attributionWechatLogin30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionWechatFirstPay30dCount,jdbcType=BIGINT}, #{item.wechatFirstPayCost,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayRate,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dRate,jdbcType=DECIMAL}, #{item.wechatPayAmount,jdbcType=DECIMAL},
+            #{item.attributionWechatPay30dAmount,jdbcType=DECIMAL}, #{item.attributionWechatPay30dRoi,jdbcType=DECIMAL},
+            #{item.phoneEffective,jdbcType=BIGINT}, #{item.totalPlay,jdbcType=BIGINT}, #{item.validPlay,jdbcType=BIGINT},
+            #{item.validPlayCost,jdbcType=DECIMAL}, #{item.validPlayRate,jdbcType=DECIMAL}, #{item.play25FeedBreak,jdbcType=BIGINT},
+            #{item.play50FeedBreak,jdbcType=BIGINT}, #{item.play75FeedBreak,jdbcType=BIGINT}, #{item.play100FeedBreak,jdbcType=BIGINT},
+            #{item.averagePlayTimePerPlay,jdbcType=DECIMAL}, #{item.playOverRate,jdbcType=DECIMAL}, #{item.wifiPlayRate,jdbcType=DECIMAL},
+            #{item.wifiPlay,jdbcType=BIGINT}, #{item.playDurationSum,jdbcType=BIGINT}, #{item.advancedCreativePhoneClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCounselClick,jdbcType=BIGINT}, #{item.advancedCreativeFormClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCouponAddition,jdbcType=BIGINT}, #{item.advancedCreativeFormSubmit,jdbcType=BIGINT},
+            #{item.cardShow,jdbcType=BIGINT}, #{item.share,jdbcType=BIGINT}, #{item.comment,jdbcType=BIGINT},
+            #{item.like,jdbcType=BIGINT}, #{item.follow,jdbcType=BIGINT}, #{item.homeVisited,jdbcType=BIGINT},
+            #{item.iesChallengeClick,jdbcType=BIGINT}, #{item.iesMusicClick,jdbcType=BIGINT}, #{item.locationClick,jdbcType=BIGINT},
+            #{item.messageAction,jdbcType=BIGINT}, #{item.clickLandingPage,jdbcType=BIGINT}, #{item.clickShopwindow,jdbcType=BIGINT},
+            #{item.clickWebsite,jdbcType=BIGINT}, #{item.clickDownload,jdbcType=BIGINT}, #{item.clickCallDy,jdbcType=BIGINT},
+            #{item.submitCertificationCount,jdbcType=BIGINT}, #{item.approvalCount,jdbcType=BIGINT},
+            #{item.firstRentalOrderCount,jdbcType=BIGINT}, #{item.firstOrderCount,jdbcType=BIGINT}, #{item.commuteFirstPayCount,jdbcType=BIGINT}
+            )
+      </foreach>
+  </insert>
+
+</mapper>

+ 47 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCreativeGetMapper.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceCreativeGetMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceCreativeGet">
+        <id column="advertiser_id" property="advertiserId" jdbcType="VARCHAR"/>
+        <id column="ad_id" property="adId" jdbcType="BIGINT"/>
+        <id column="creative_id" property="creativeId" jdbcType="BIGINT"/>
+        <result column="title" property="title" jdbcType="VARCHAR"/>
+        <result column="creative_word_ids" property="creativeWordIds" jdbcType="VARCHAR"/>
+        <result column="status" property="status" jdbcType="VARCHAR"/>
+        <result column="opt_status" property="optStatus" jdbcType="VARCHAR"/>
+        <result column="image_mode" property="imageMode" jdbcType="VARCHAR"/>
+        <result column="image_ids" property="imageIds" jdbcType="VARCHAR"/>
+        <result column="image_id" property="imageId" jdbcType="VARCHAR"/>
+        <result column="video_id" property="videoId" jdbcType="VARCHAR"/>
+        <result column="third_party_id" property="thirdPartyId" jdbcType="VARCHAR"/>
+        <result column="metarials" property="metarials" jdbcType="VARCHAR"/>
+        <result column="creative_create_time" property="creativeCreateTime" jdbcType="VARCHAR"/>
+        <result column="creative_modify_time" property="creativeModifyTime" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+    advertiser_id, ad_id, creative_id, title, creative_word_ids, status, opt_status, 
+    image_mode, image_ids, image_id, video_id, third_party_id, metarials, creative_create_time, 
+    creative_modify_time
+  </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceCreativeGet">
+        replace into bytedance_creative_get (advertiser_id, ad_id, creative_id,
+        title, creative_word_ids, status,
+        opt_status, image_mode, image_ids,
+        image_id, video_id, third_party_id,
+        metarials, creative_create_time, creative_modify_time
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=VARCHAR}, #{item.adId,jdbcType=BIGINT}, #{item.creativeId,jdbcType=BIGINT},
+            #{item.title,jdbcType=VARCHAR}, #{item.creativeWordIds,jdbcType=VARCHAR}, #{item.status,jdbcType=VARCHAR},
+            #{item.optStatus,jdbcType=VARCHAR}, #{item.imageMode,jdbcType=VARCHAR}, #{item.imageIds,jdbcType=VARCHAR},
+            #{item.imageId,jdbcType=VARCHAR}, #{item.videoId,jdbcType=VARCHAR}, #{item.thirdPartyId,jdbcType=VARCHAR},
+            #{item.metarials,jdbcType=VARCHAR}, #{item.creativeCreateTime,jdbcType=VARCHAR},
+            #{item.creativeModifyTime,jdbcType=VARCHAR}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

+ 366 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCreativeReportDailyMapper.xml

@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceCreativeReportDailyMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceCreativeReportDaily">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="campaign_id" property="campaignId" jdbcType="BIGINT"/>
+        <id column="ad_id" property="adId" jdbcType="BIGINT"/>
+        <id column="creative_id" property="creativeId" jdbcType="BIGINT"/>
+        <id column="stat_datetime" property="statDatetime" jdbcType="INTEGER"/>
+        <result column="campaign_name" property="campaignName" jdbcType="VARCHAR"/>
+        <result column="ad_name" property="adName" jdbcType="VARCHAR"/>
+        <result column="cost" property="cost" jdbcType="DECIMAL"/>
+        <result column="show" property="show" jdbcType="BIGINT"/>
+        <result column="avg_show_cost" property="avgShowCost" jdbcType="DECIMAL"/>
+        <result column="click" property="click" jdbcType="BIGINT"/>
+        <result column="avg_click_cost" property="avgClickCost" jdbcType="DECIMAL"/>
+        <result column="ctr" property="ctr" jdbcType="DECIMAL"/>
+        <result column="convert" property="convert" jdbcType="BIGINT"/>
+        <result column="convert_cost" property="convertCost" jdbcType="DECIMAL"/>
+        <result column="convert_rate" property="convertRate" jdbcType="DECIMAL"/>
+        <result column="deep_convert" property="deepConvert" jdbcType="BIGINT"/>
+        <result column="deep_convert_cost" property="deepConvertCost" jdbcType="DECIMAL"/>
+        <result column="deep_convert_rate" property="deepConvertRate" jdbcType="DECIMAL"/>
+        <result column="attribution_convert" property="attributionConvert" jdbcType="BIGINT"/>
+        <result column="attribution_convert_cost" property="attributionConvertCost" jdbcType="DECIMAL"/>
+        <result column="attribution_deep_convert" property="attributionDeepConvert" jdbcType="BIGINT"/>
+        <result column="attribution_deep_convert_cost" property="attributionDeepConvertCost" jdbcType="DECIMAL"/>
+        <result column="download_start" property="downloadStart" jdbcType="BIGINT"/>
+        <result column="download_start_cost" property="downloadStartCost" jdbcType="DECIMAL"/>
+        <result column="download_start_rate" property="downloadStartRate" jdbcType="DECIMAL"/>
+        <result column="download_finish" property="downloadFinish" jdbcType="BIGINT"/>
+        <result column="download_finish_cost" property="downloadFinishCost" jdbcType="DECIMAL"/>
+        <result column="download_finish_rate" property="downloadFinishRate" jdbcType="DECIMAL"/>
+        <result column="click_install" property="clickInstall" jdbcType="BIGINT"/>
+        <result column="install_finish" property="installFinish" jdbcType="BIGINT"/>
+        <result column="install_finish_cost" property="installFinishCost" jdbcType="DECIMAL"/>
+        <result column="install_finish_rate" property="installFinishRate" jdbcType="DECIMAL"/>
+        <result column="active" property="active" jdbcType="BIGINT"/>
+        <result column="active_cost" property="activeCost" jdbcType="DECIMAL"/>
+        <result column="active_rate" property="activeRate" jdbcType="DECIMAL"/>
+        <result column="register" property="register" jdbcType="DECIMAL"/>
+        <result column="active_register_cost" property="activeRegisterCost" jdbcType="DECIMAL"/>
+        <result column="active_register_rate" property="activeRegisterRate" jdbcType="REAL"/>
+        <result column="next_day_open" property="nextDayOpen" jdbcType="BIGINT"/>
+        <result column="next_day_open_cost" property="nextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="next_day_open_rate" property="nextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_cnt" property="attributionNextDayOpenCnt" jdbcType="BIGINT"/>
+        <result column="attribution_next_day_open_cost" property="attributionNextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_rate" property="attributionNextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="game_addiction" property="gameAddiction" jdbcType="BIGINT"/>
+        <result column="game_addiction_cost" property="gameAddictionCost" jdbcType="DECIMAL"/>
+        <result column="game_addiction_rate" property="gameAddictionRate" jdbcType="DECIMAL"/>
+        <result column="pay_count" property="payCount" jdbcType="BIGINT"/>
+        <result column="active_pay_cost" property="activePayCost" jdbcType="DECIMAL"/>
+        <result column="active_pay_rate" property="activePayRate" jdbcType="DECIMAL"/>
+        <result column="loan_completion" property="loanCompletion" jdbcType="BIGINT"/>
+        <result column="loan_completion_cost" property="loanCompletionCost" jdbcType="DECIMAL"/>
+        <result column="loan_completion_rate" property="loanCompletionRate" jdbcType="DECIMAL"/>
+        <result column="pre_loan_credit" property="preLoanCredit" jdbcType="BIGINT"/>
+        <result column="pre_loan_credit_cost" property="preLoanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit" property="loanCredit" jdbcType="BIGINT"/>
+        <result column="loan_credit_cost" property="loanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit_rate" property="loanCreditRate" jdbcType="DECIMAL"/>
+        <result column="in_app_uv" property="inAppUv" jdbcType="BIGINT"/>
+        <result column="in_app_detail_uv" property="inAppDetailUv" jdbcType="BIGINT"/>
+        <result column="in_app_cart" property="inAppCart" jdbcType="BIGINT"/>
+        <result column="in_app_pay" property="inAppPay" jdbcType="BIGINT"/>
+        <result column="in_app_order" property="inAppOrder" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_count" property="attributionGamePay7dCount" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_cost" property="attributionGamePay7dCost" jdbcType="DECIMAL"/>
+        <result column="attribution_active_pay_7d_per_count" property="attributionActivePay7dPerCount"
+                jdbcType="BIGINT"/>
+        <result column="game_pay_cost" property="gamePayCost" jdbcType="DECIMAL"/>
+        <result column="game_pay_count" property="gamePayCount" jdbcType="BIGINT"/>
+        <result column="phone" property="phone" jdbcType="BIGINT"/>
+        <result column="form" property="form" jdbcType="BIGINT"/>
+        <result column="map_search" property="mapSearch" jdbcType="BIGINT"/>
+        <result column="button" property="button" jdbcType="BIGINT"/>
+        <result column="view" property="view" jdbcType="BIGINT"/>
+        <result column="download" property="download" jdbcType="BIGINT"/>
+        <result column="qq" property="qq" jdbcType="BIGINT"/>
+        <result column="lottery" property="lottery" jdbcType="BIGINT"/>
+        <result column="vote" property="vote" jdbcType="BIGINT"/>
+        <result column="message" property="message" jdbcType="BIGINT"/>
+        <result column="redirect" property="redirect" jdbcType="BIGINT"/>
+        <result column="shopping" property="shopping" jdbcType="BIGINT"/>
+        <result column="consult" property="consult" jdbcType="BIGINT"/>
+        <result column="wechat" property="wechat" jdbcType="BIGINT"/>
+        <result column="phone_confirm" property="phoneConfirm" jdbcType="BIGINT"/>
+        <result column="phone_connect" property="phoneConnect" jdbcType="BIGINT"/>
+        <result column="consult_effective" property="consultEffective" jdbcType="BIGINT"/>
+        <result column="coupon" property="coupon" jdbcType="BIGINT"/>
+        <result column="coupon_single_page" property="couponSinglePage" jdbcType="BIGINT"/>
+        <result column="redirect_to_shop" property="redirectToShop" jdbcType="BIGINT"/>
+        <result column="poi_collect" property="poiCollect" jdbcType="BIGINT"/>
+        <result column="poi_address_click" property="poiAddressClick" jdbcType="BIGINT"/>
+        <result column="luban_order_cnt" property="lubanOrderCnt" jdbcType="BIGINT"/>
+        <result column="luban_order_stat_amount" property="lubanOrderStatAmount" jdbcType="DECIMAL"/>
+        <result column="luban_order_roi" property="lubanOrderRoi" jdbcType="DECIMAL"/>
+        <result column="luban_live_enter_cnt" property="lubanLiveEnterCnt" jdbcType="BIGINT"/>
+        <result column="live_watch_one_minute_count" property="liveWatchOneMinuteCount" jdbcType="BIGINT"/>
+        <result column="luban_live_follow_cnt" property="lubanLiveFollowCnt" jdbcType="BIGINT"/>
+        <result column="live_fans_club_join_cnt" property="liveFansClubJoinCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_comment_cnt" property="lubanLiveCommentCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_share_cnt" property="lubanLiveShareCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_cnt" property="lubanLiveGiftCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_amount" property="lubanLiveGiftAmount" jdbcType="DECIMAL"/>
+        <result column="luban_live_slidecart_click_cnt" property="lubanLiveSlidecartClickCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_click_product_cnt" property="lubanLiveClickProductCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_count" property="lubanLivePayOrderCount" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_stat_cost" property="lubanLivePayOrderStatCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_count" property="liveComponentClickCount" jdbcType="BIGINT"/>
+        <result column="live_component_click_cost" property="liveComponentClickCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_rate" property="liveComponentClickRate" jdbcType="DECIMAL"/>
+        <result column="wechat_login_count" property="wechatLoginCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_login_30d_count" property="attributionWechatLogin30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_login_cost" property="wechatLoginCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_login_30d_cost" property="attributionWechatLogin30dCost" jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_count" property="wechatFirstPayCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_first_pay_30d_count" property="attributionWechatFirstPay30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_first_pay_cost" property="wechatFirstPayCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_cost" property="attributionWechatFirstPay30dCost"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_rate" property="wechatFirstPayRate" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_rate" property="attributionWechatFirstPay30dRate"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_pay_amount" property="wechatPayAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_amount" property="attributionWechatPay30dAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_roi" property="attributionWechatPay30dRoi" jdbcType="DECIMAL"/>
+        <result column="phone_effective" property="phoneEffective" jdbcType="BIGINT"/>
+        <result column="total_play" property="totalPlay" jdbcType="BIGINT"/>
+        <result column="valid_play" property="validPlay" jdbcType="BIGINT"/>
+        <result column="valid_play_cost" property="validPlayCost" jdbcType="DECIMAL"/>
+        <result column="valid_play_rate" property="validPlayRate" jdbcType="DECIMAL"/>
+        <result column="play_25_feed_break" property="play25FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_50_feed_break" property="play50FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_75_feed_break" property="play75FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_100_feed_break" property="play100FeedBreak" jdbcType="BIGINT"/>
+        <result column="average_play_time_per_play" property="averagePlayTimePerPlay" jdbcType="DECIMAL"/>
+        <result column="play_over_rate" property="playOverRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play_rate" property="wifiPlayRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play" property="wifiPlay" jdbcType="BIGINT"/>
+        <result column="play_duration_sum" property="playDurationSum" jdbcType="BIGINT"/>
+        <result column="advanced_creative_phone_click" property="advancedCreativePhoneClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_counsel_click" property="advancedCreativeCounselClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_click" property="advancedCreativeFormClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_coupon_addition" property="advancedCreativeCouponAddition" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_submit" property="advancedCreativeFormSubmit" jdbcType="BIGINT"/>
+        <result column="card_show" property="cardShow" jdbcType="BIGINT"/>
+        <result column="share" property="share" jdbcType="BIGINT"/>
+        <result column="comment" property="comment" jdbcType="BIGINT"/>
+        <result column="like" property="like" jdbcType="BIGINT"/>
+        <result column="follow" property="follow" jdbcType="BIGINT"/>
+        <result column="home_visited" property="homeVisited" jdbcType="BIGINT"/>
+        <result column="ies_challenge_click" property="iesChallengeClick" jdbcType="BIGINT"/>
+        <result column="ies_music_click" property="iesMusicClick" jdbcType="BIGINT"/>
+        <result column="location_click" property="locationClick" jdbcType="BIGINT"/>
+        <result column="message_action" property="messageAction" jdbcType="BIGINT"/>
+        <result column="click_landing_page" property="clickLandingPage" jdbcType="BIGINT"/>
+        <result column="click_shopwindow" property="clickShopwindow" jdbcType="BIGINT"/>
+        <result column="click_website" property="clickWebsite" jdbcType="BIGINT"/>
+        <result column="click_download" property="clickDownload" jdbcType="BIGINT"/>
+        <result column="click_call_dy" property="clickCallDy" jdbcType="BIGINT"/>
+        <result column="submit_certification_count" property="submitCertificationCount" jdbcType="BIGINT"/>
+        <result column="approval_count" property="approvalCount" jdbcType="BIGINT"/>
+        <result column="first_rental_order_count" property="firstRentalOrderCount" jdbcType="BIGINT"/>
+        <result column="first_order_count" property="firstOrderCount" jdbcType="BIGINT"/>
+        <result column="commute_first_pay_count" property="commuteFirstPayCount" jdbcType="BIGINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+    advertiser_id, campaign_id, ad_id, creative_id, stat_datetime, campaign_name, ad_name, 
+    cost, show, avg_show_cost, click, avg_click_cost, ctr, convert, convert_cost, convert_rate, 
+    deep_convert, deep_convert_cost, deep_convert_rate, attribution_convert, attribution_convert_cost, 
+    attribution_deep_convert, attribution_deep_convert_cost, download_start, download_start_cost, 
+    download_start_rate, download_finish, download_finish_cost, download_finish_rate, 
+    click_install, install_finish, install_finish_cost, install_finish_rate, active, 
+    active_cost, active_rate, register, active_register_cost, active_register_rate, next_day_open, 
+    next_day_open_cost, next_day_open_rate, attribution_next_day_open_cnt, attribution_next_day_open_cost, 
+    attribution_next_day_open_rate, game_addiction, game_addiction_cost, game_addiction_rate, 
+    pay_count, active_pay_cost, active_pay_rate, loan_completion, loan_completion_cost, 
+    loan_completion_rate, pre_loan_credit, pre_loan_credit_cost, loan_credit, loan_credit_cost, 
+    loan_credit_rate, in_app_uv, in_app_detail_uv, in_app_cart, in_app_pay, in_app_order, 
+    attribution_game_pay_7d_count, attribution_game_pay_7d_cost, attribution_active_pay_7d_per_count, 
+    game_pay_cost, game_pay_count, phone, form, map_search, button, view, download, qq, 
+    lottery, vote, message, redirect, shopping, consult, wechat, phone_confirm, phone_connect, 
+    consult_effective, coupon, coupon_single_page, redirect_to_shop, poi_collect, poi_address_click, 
+    luban_order_cnt, luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt, 
+    live_watch_one_minute_count, luban_live_follow_cnt, live_fans_club_join_cnt, luban_live_comment_cnt, 
+    luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount, luban_live_slidecart_click_cnt, 
+    luban_live_click_product_cnt, luban_live_pay_order_count, luban_live_pay_order_stat_cost, 
+    live_component_click_count, live_component_click_cost, live_component_click_rate, 
+    wechat_login_count, attribution_wechat_login_30d_count, wechat_login_cost, attribution_wechat_login_30d_cost, 
+    wechat_first_pay_count, attribution_wechat_first_pay_30d_count, wechat_first_pay_cost, 
+    attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate, attribution_wechat_first_pay_30d_rate, 
+    wechat_pay_amount, attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi, 
+    phone_effective, total_play, valid_play, valid_play_cost, valid_play_rate, play_25_feed_break, 
+    play_50_feed_break, play_75_feed_break, play_100_feed_break, average_play_time_per_play, 
+    play_over_rate, wifi_play_rate, wifi_play, play_duration_sum, advanced_creative_phone_click, 
+    advanced_creative_counsel_click, advanced_creative_form_click, advanced_creative_coupon_addition, 
+    advanced_creative_form_submit, card_show, share, comment, like, follow, home_visited, 
+    ies_challenge_click, ies_music_click, location_click, message_action, click_landing_page, 
+    click_shopwindow, click_website, click_download, click_call_dy, submit_certification_count, 
+    approval_count, first_rental_order_count, first_order_count, commute_first_pay_count
+  </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceCreativeReportDaily">
+        replace into bytedance_creative_report_daily (advertiser_id, campaign_id, ad_id,
+        creative_id, stat_datetime, campaign_name,
+        ad_name, cost, `show`,
+        avg_show_cost, click, avg_click_cost,
+        ctr, `convert`, convert_cost,
+        convert_rate, deep_convert, deep_convert_cost,
+        deep_convert_rate, attribution_convert, attribution_convert_cost,
+        attribution_deep_convert, attribution_deep_convert_cost,
+        download_start, download_start_cost, download_start_rate,
+        download_finish, download_finish_cost, download_finish_rate,
+        click_install, install_finish, install_finish_cost,
+        install_finish_rate, active, active_cost,
+        active_rate, register, active_register_cost,
+        active_register_rate, next_day_open, next_day_open_cost,
+        next_day_open_rate, attribution_next_day_open_cnt,
+        attribution_next_day_open_cost, attribution_next_day_open_rate,
+        game_addiction, game_addiction_cost, game_addiction_rate,
+        pay_count, active_pay_cost, active_pay_rate,
+        loan_completion, loan_completion_cost, loan_completion_rate,
+        pre_loan_credit, pre_loan_credit_cost, loan_credit,
+        loan_credit_cost, loan_credit_rate, in_app_uv,
+        in_app_detail_uv, in_app_cart, in_app_pay,
+        in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost,
+        attribution_active_pay_7d_per_count, game_pay_cost,
+        game_pay_count, phone, form,
+        map_search, button, `view`,
+        download, qq, lottery,
+        vote, message, redirect,
+        shopping, consult, wechat,
+        phone_confirm, phone_connect, consult_effective,
+        coupon, coupon_single_page, redirect_to_shop,
+        poi_collect, poi_address_click, luban_order_cnt,
+        luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt,
+        live_watch_one_minute_count, luban_live_follow_cnt,
+        live_fans_club_join_cnt, luban_live_comment_cnt,
+        luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount,
+        luban_live_slidecart_click_cnt, luban_live_click_product_cnt,
+        luban_live_pay_order_count, luban_live_pay_order_stat_cost,
+        live_component_click_count, live_component_click_cost,
+        live_component_click_rate, wechat_login_count,
+        attribution_wechat_login_30d_count, wechat_login_cost,
+        attribution_wechat_login_30d_cost, wechat_first_pay_count,
+        attribution_wechat_first_pay_30d_count, wechat_first_pay_cost,
+        attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate,
+        attribution_wechat_first_pay_30d_rate, wechat_pay_amount,
+        attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi,
+        phone_effective, total_play, valid_play,
+        valid_play_cost, valid_play_rate, play_25_feed_break,
+        play_50_feed_break, play_75_feed_break, play_100_feed_break,
+        average_play_time_per_play, play_over_rate, wifi_play_rate,
+        wifi_play, play_duration_sum, advanced_creative_phone_click,
+        advanced_creative_counsel_click, advanced_creative_form_click,
+        advanced_creative_coupon_addition, advanced_creative_form_submit,
+        card_show, `share`, `comment`,
+        `like`, follow, home_visited,
+        ies_challenge_click, ies_music_click, location_click,
+        message_action, click_landing_page, click_shopwindow,
+        click_website, click_download, click_call_dy,
+        submit_certification_count, approval_count,
+        first_rental_order_count, first_order_count, commute_first_pay_count
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.campaignId,jdbcType=BIGINT}, #{item.adId,jdbcType=BIGINT},
+            #{item.creativeId,jdbcType=BIGINT}, #{item.statDatetime,jdbcType=INTEGER},
+            #{item.campaignName,jdbcType=VARCHAR},
+            #{item.adName,jdbcType=VARCHAR}, #{item.cost,jdbcType=DECIMAL}, #{item.show,jdbcType=BIGINT},
+            #{item.avgShowCost,jdbcType=DECIMAL}, #{item.click,jdbcType=BIGINT}, #{item.avgClickCost,jdbcType=DECIMAL},
+            #{item.ctr,jdbcType=DECIMAL}, #{item.convert,jdbcType=BIGINT}, #{item.convertCost,jdbcType=DECIMAL},
+            #{item.convertRate,jdbcType=DECIMAL}, #{item.deepConvert,jdbcType=BIGINT},
+            #{item.deepConvertCost,jdbcType=DECIMAL},
+            #{item.deepConvertRate,jdbcType=DECIMAL}, #{item.attributionConvert,jdbcType=BIGINT},
+            #{item.attributionConvertCost,jdbcType=DECIMAL},
+            #{item.attributionDeepConvert,jdbcType=BIGINT}, #{item.attributionDeepConvertCost,jdbcType=DECIMAL},
+            #{item.downloadStart,jdbcType=BIGINT}, #{item.downloadStartCost,jdbcType=DECIMAL},
+            #{item.downloadStartRate,jdbcType=DECIMAL},
+            #{item.downloadFinish,jdbcType=BIGINT}, #{item.downloadFinishCost,jdbcType=DECIMAL},
+            #{item.downloadFinishRate,jdbcType=DECIMAL},
+            #{item.clickInstall,jdbcType=BIGINT}, #{item.installFinish,jdbcType=BIGINT},
+            #{item.installFinishCost,jdbcType=DECIMAL},
+            #{item.installFinishRate,jdbcType=DECIMAL}, #{item.active,jdbcType=BIGINT},
+            #{item.activeCost,jdbcType=DECIMAL},
+            #{item.activeRate,jdbcType=DECIMAL}, #{item.register,jdbcType=DECIMAL},
+            #{item.activeRegisterCost,jdbcType=DECIMAL},
+            #{item.activeRegisterRate,jdbcType=REAL}, #{item.nextDayOpen,jdbcType=BIGINT},
+            #{item.nextDayOpenCost,jdbcType=DECIMAL},
+            #{item.nextDayOpenRate,jdbcType=DECIMAL}, #{item.attributionNextDayOpenCnt,jdbcType=BIGINT},
+            #{item.attributionNextDayOpenCost,jdbcType=DECIMAL}, #{item.attributionNextDayOpenRate,jdbcType=DECIMAL},
+            #{item.gameAddiction,jdbcType=BIGINT}, #{item.gameAddictionCost,jdbcType=DECIMAL},
+            #{item.gameAddictionRate,jdbcType=DECIMAL},
+            #{item.payCount,jdbcType=BIGINT}, #{item.activePayCost,jdbcType=DECIMAL},
+            #{item.activePayRate,jdbcType=DECIMAL},
+            #{item.loanCompletion,jdbcType=BIGINT}, #{item.loanCompletionCost,jdbcType=DECIMAL},
+            #{item.loanCompletionRate,jdbcType=DECIMAL},
+            #{item.preLoanCredit,jdbcType=BIGINT}, #{item.preLoanCreditCost,jdbcType=DECIMAL},
+            #{item.loanCredit,jdbcType=BIGINT},
+            #{item.loanCreditCost,jdbcType=DECIMAL}, #{item.loanCreditRate,jdbcType=DECIMAL},
+            #{item.inAppUv,jdbcType=BIGINT},
+            #{item.inAppDetailUv,jdbcType=BIGINT}, #{item.inAppCart,jdbcType=BIGINT}, #{item.inAppPay,jdbcType=BIGINT},
+            #{item.inAppOrder,jdbcType=BIGINT}, #{item.attributionGamePay7dCount,jdbcType=BIGINT},
+            #{item.attributionGamePay7dCost,jdbcType=DECIMAL},
+            #{item.attributionActivePay7dPerCount,jdbcType=BIGINT}, #{item.gamePayCost,jdbcType=DECIMAL},
+            #{item.gamePayCount,jdbcType=BIGINT}, #{item.phone,jdbcType=BIGINT}, #{item.form,jdbcType=BIGINT},
+            #{item.mapSearch,jdbcType=BIGINT}, #{item.button,jdbcType=BIGINT}, #{item.view,jdbcType=BIGINT},
+            #{item.download,jdbcType=BIGINT}, #{item.qq,jdbcType=BIGINT}, #{item.lottery,jdbcType=BIGINT},
+            #{item.vote,jdbcType=BIGINT}, #{item.message,jdbcType=BIGINT}, #{item.redirect,jdbcType=BIGINT},
+            #{item.shopping,jdbcType=BIGINT}, #{item.consult,jdbcType=BIGINT}, #{item.wechat,jdbcType=BIGINT},
+            #{item.phoneConfirm,jdbcType=BIGINT}, #{item.phoneConnect,jdbcType=BIGINT},
+            #{item.consultEffective,jdbcType=BIGINT},
+            #{item.coupon,jdbcType=BIGINT}, #{item.couponSinglePage,jdbcType=BIGINT},
+            #{item.redirectToShop,jdbcType=BIGINT},
+            #{item.poiCollect,jdbcType=BIGINT}, #{item.poiAddressClick,jdbcType=BIGINT},
+            #{item.lubanOrderCnt,jdbcType=BIGINT},
+            #{item.lubanOrderStatAmount,jdbcType=DECIMAL}, #{item.lubanOrderRoi,jdbcType=DECIMAL},
+            #{item.lubanLiveEnterCnt,jdbcType=BIGINT},
+            #{item.liveWatchOneMinuteCount,jdbcType=BIGINT}, #{item.lubanLiveFollowCnt,jdbcType=BIGINT},
+            #{item.liveFansClubJoinCnt,jdbcType=BIGINT}, #{item.lubanLiveCommentCnt,jdbcType=BIGINT},
+            #{item.lubanLiveShareCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftCnt,jdbcType=BIGINT},
+            #{item.lubanLiveGiftAmount,jdbcType=DECIMAL},
+            #{item.lubanLiveSlidecartClickCnt,jdbcType=BIGINT}, #{item.lubanLiveClickProductCnt,jdbcType=BIGINT},
+            #{item.lubanLivePayOrderCount,jdbcType=BIGINT}, #{item.lubanLivePayOrderStatCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickCount,jdbcType=BIGINT}, #{item.liveComponentClickCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickRate,jdbcType=DECIMAL}, #{item.wechatLoginCount,jdbcType=BIGINT},
+            #{item.attributionWechatLogin30dCount,jdbcType=BIGINT}, #{item.wechatLoginCost,jdbcType=DECIMAL},
+            #{item.attributionWechatLogin30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionWechatFirstPay30dCount,jdbcType=BIGINT}, #{item.wechatFirstPayCost,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayRate,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dRate,jdbcType=DECIMAL}, #{item.wechatPayAmount,jdbcType=DECIMAL},
+            #{item.attributionWechatPay30dAmount,jdbcType=DECIMAL}, #{item.attributionWechatPay30dRoi,jdbcType=DECIMAL},
+            #{item.phoneEffective,jdbcType=BIGINT}, #{item.totalPlay,jdbcType=BIGINT},
+            #{item.validPlay,jdbcType=BIGINT},
+            #{item.validPlayCost,jdbcType=DECIMAL}, #{item.validPlayRate,jdbcType=DECIMAL},
+            #{item.play25FeedBreak,jdbcType=BIGINT},
+            #{item.play50FeedBreak,jdbcType=BIGINT}, #{item.play75FeedBreak,jdbcType=BIGINT},
+            #{item.play100FeedBreak,jdbcType=BIGINT},
+            #{item.averagePlayTimePerPlay,jdbcType=DECIMAL}, #{item.playOverRate,jdbcType=DECIMAL},
+            #{item.wifiPlayRate,jdbcType=DECIMAL},
+            #{item.wifiPlay,jdbcType=BIGINT}, #{item.playDurationSum,jdbcType=BIGINT},
+            #{item.advancedCreativePhoneClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCounselClick,jdbcType=BIGINT}, #{item.advancedCreativeFormClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCouponAddition,jdbcType=BIGINT}, #{item.advancedCreativeFormSubmit,jdbcType=BIGINT},
+            #{item.cardShow,jdbcType=BIGINT}, #{item.share,jdbcType=BIGINT}, #{item.comment,jdbcType=BIGINT},
+            #{item.like,jdbcType=BIGINT}, #{item.follow,jdbcType=BIGINT}, #{item.homeVisited,jdbcType=BIGINT},
+            #{item.iesChallengeClick,jdbcType=BIGINT}, #{item.iesMusicClick,jdbcType=BIGINT},
+            #{item.locationClick,jdbcType=BIGINT},
+            #{item.messageAction,jdbcType=BIGINT}, #{item.clickLandingPage,jdbcType=BIGINT},
+            #{item.clickShopwindow,jdbcType=BIGINT},
+            #{item.clickWebsite,jdbcType=BIGINT}, #{item.clickDownload,jdbcType=BIGINT},
+            #{item.clickCallDy,jdbcType=BIGINT},
+            #{item.submitCertificationCount,jdbcType=BIGINT}, #{item.approvalCount,jdbcType=BIGINT},
+            #{item.firstRentalOrderCount,jdbcType=BIGINT}, #{item.firstOrderCount,jdbcType=BIGINT},
+            #{item.commuteFirstPayCount,jdbcType=BIGINT}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

+ 368 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceCreativeReportHourlyMapper.xml

@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceCreativeReportHourlyMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceCreativeReportHourly">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="campaign_id" property="campaignId" jdbcType="BIGINT"/>
+        <id column="ad_id" property="adId" jdbcType="BIGINT"/>
+        <id column="creative_id" property="creativeId" jdbcType="BIGINT"/>
+        <id column="stat_datetime" property="statDatetime" jdbcType="INTEGER"/>
+        <id column="hour" property="hour" jdbcType="INTEGER"/>
+        <result column="campaign_name" property="campaignName" jdbcType="VARCHAR"/>
+        <result column="ad_name" property="adName" jdbcType="VARCHAR"/>
+        <result column="cost" property="cost" jdbcType="DECIMAL"/>
+        <result column="show" property="show" jdbcType="BIGINT"/>
+        <result column="avg_show_cost" property="avgShowCost" jdbcType="DECIMAL"/>
+        <result column="click" property="click" jdbcType="BIGINT"/>
+        <result column="avg_click_cost" property="avgClickCost" jdbcType="DECIMAL"/>
+        <result column="ctr" property="ctr" jdbcType="DECIMAL"/>
+        <result column="convert" property="convert" jdbcType="BIGINT"/>
+        <result column="convert_cost" property="convertCost" jdbcType="DECIMAL"/>
+        <result column="convert_rate" property="convertRate" jdbcType="DECIMAL"/>
+        <result column="deep_convert" property="deepConvert" jdbcType="BIGINT"/>
+        <result column="deep_convert_cost" property="deepConvertCost" jdbcType="DECIMAL"/>
+        <result column="deep_convert_rate" property="deepConvertRate" jdbcType="DECIMAL"/>
+        <result column="attribution_convert" property="attributionConvert" jdbcType="BIGINT"/>
+        <result column="attribution_convert_cost" property="attributionConvertCost" jdbcType="DECIMAL"/>
+        <result column="attribution_deep_convert" property="attributionDeepConvert" jdbcType="BIGINT"/>
+        <result column="attribution_deep_convert_cost" property="attributionDeepConvertCost" jdbcType="DECIMAL"/>
+        <result column="download_start" property="downloadStart" jdbcType="BIGINT"/>
+        <result column="download_start_cost" property="downloadStartCost" jdbcType="DECIMAL"/>
+        <result column="download_start_rate" property="downloadStartRate" jdbcType="DECIMAL"/>
+        <result column="download_finish" property="downloadFinish" jdbcType="BIGINT"/>
+        <result column="download_finish_cost" property="downloadFinishCost" jdbcType="DECIMAL"/>
+        <result column="download_finish_rate" property="downloadFinishRate" jdbcType="DECIMAL"/>
+        <result column="click_install" property="clickInstall" jdbcType="BIGINT"/>
+        <result column="install_finish" property="installFinish" jdbcType="BIGINT"/>
+        <result column="install_finish_cost" property="installFinishCost" jdbcType="DECIMAL"/>
+        <result column="install_finish_rate" property="installFinishRate" jdbcType="DECIMAL"/>
+        <result column="active" property="active" jdbcType="BIGINT"/>
+        <result column="active_cost" property="activeCost" jdbcType="DECIMAL"/>
+        <result column="active_rate" property="activeRate" jdbcType="DECIMAL"/>
+        <result column="register" property="register" jdbcType="DECIMAL"/>
+        <result column="active_register_cost" property="activeRegisterCost" jdbcType="DECIMAL"/>
+        <result column="active_register_rate" property="activeRegisterRate" jdbcType="REAL"/>
+        <result column="next_day_open" property="nextDayOpen" jdbcType="BIGINT"/>
+        <result column="next_day_open_cost" property="nextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="next_day_open_rate" property="nextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_cnt" property="attributionNextDayOpenCnt" jdbcType="BIGINT"/>
+        <result column="attribution_next_day_open_cost" property="attributionNextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_rate" property="attributionNextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="game_addiction" property="gameAddiction" jdbcType="BIGINT"/>
+        <result column="game_addiction_cost" property="gameAddictionCost" jdbcType="DECIMAL"/>
+        <result column="game_addiction_rate" property="gameAddictionRate" jdbcType="DECIMAL"/>
+        <result column="pay_count" property="payCount" jdbcType="BIGINT"/>
+        <result column="active_pay_cost" property="activePayCost" jdbcType="DECIMAL"/>
+        <result column="active_pay_rate" property="activePayRate" jdbcType="DECIMAL"/>
+        <result column="loan_completion" property="loanCompletion" jdbcType="BIGINT"/>
+        <result column="loan_completion_cost" property="loanCompletionCost" jdbcType="DECIMAL"/>
+        <result column="loan_completion_rate" property="loanCompletionRate" jdbcType="DECIMAL"/>
+        <result column="pre_loan_credit" property="preLoanCredit" jdbcType="BIGINT"/>
+        <result column="pre_loan_credit_cost" property="preLoanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit" property="loanCredit" jdbcType="BIGINT"/>
+        <result column="loan_credit_cost" property="loanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit_rate" property="loanCreditRate" jdbcType="DECIMAL"/>
+        <result column="in_app_uv" property="inAppUv" jdbcType="BIGINT"/>
+        <result column="in_app_detail_uv" property="inAppDetailUv" jdbcType="BIGINT"/>
+        <result column="in_app_cart" property="inAppCart" jdbcType="BIGINT"/>
+        <result column="in_app_pay" property="inAppPay" jdbcType="BIGINT"/>
+        <result column="in_app_order" property="inAppOrder" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_count" property="attributionGamePay7dCount" jdbcType="BIGINT"/>
+        <result column="attribution_game_pay_7d_cost" property="attributionGamePay7dCost" jdbcType="DECIMAL"/>
+        <result column="attribution_active_pay_7d_per_count" property="attributionActivePay7dPerCount"
+                jdbcType="BIGINT"/>
+        <result column="game_pay_cost" property="gamePayCost" jdbcType="DECIMAL"/>
+        <result column="game_pay_count" property="gamePayCount" jdbcType="BIGINT"/>
+        <result column="phone" property="phone" jdbcType="BIGINT"/>
+        <result column="form" property="form" jdbcType="BIGINT"/>
+        <result column="map_search" property="mapSearch" jdbcType="BIGINT"/>
+        <result column="button" property="button" jdbcType="BIGINT"/>
+        <result column="view" property="view" jdbcType="BIGINT"/>
+        <result column="download" property="download" jdbcType="BIGINT"/>
+        <result column="qq" property="qq" jdbcType="BIGINT"/>
+        <result column="lottery" property="lottery" jdbcType="BIGINT"/>
+        <result column="vote" property="vote" jdbcType="BIGINT"/>
+        <result column="message" property="message" jdbcType="BIGINT"/>
+        <result column="redirect" property="redirect" jdbcType="BIGINT"/>
+        <result column="shopping" property="shopping" jdbcType="BIGINT"/>
+        <result column="consult" property="consult" jdbcType="BIGINT"/>
+        <result column="wechat" property="wechat" jdbcType="BIGINT"/>
+        <result column="phone_confirm" property="phoneConfirm" jdbcType="BIGINT"/>
+        <result column="phone_connect" property="phoneConnect" jdbcType="BIGINT"/>
+        <result column="consult_effective" property="consultEffective" jdbcType="BIGINT"/>
+        <result column="coupon" property="coupon" jdbcType="BIGINT"/>
+        <result column="coupon_single_page" property="couponSinglePage" jdbcType="BIGINT"/>
+        <result column="redirect_to_shop" property="redirectToShop" jdbcType="BIGINT"/>
+        <result column="poi_collect" property="poiCollect" jdbcType="BIGINT"/>
+        <result column="poi_address_click" property="poiAddressClick" jdbcType="BIGINT"/>
+        <result column="luban_order_cnt" property="lubanOrderCnt" jdbcType="BIGINT"/>
+        <result column="luban_order_stat_amount" property="lubanOrderStatAmount" jdbcType="DECIMAL"/>
+        <result column="luban_order_roi" property="lubanOrderRoi" jdbcType="DECIMAL"/>
+        <result column="luban_live_enter_cnt" property="lubanLiveEnterCnt" jdbcType="BIGINT"/>
+        <result column="live_watch_one_minute_count" property="liveWatchOneMinuteCount" jdbcType="BIGINT"/>
+        <result column="luban_live_follow_cnt" property="lubanLiveFollowCnt" jdbcType="BIGINT"/>
+        <result column="live_fans_club_join_cnt" property="liveFansClubJoinCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_comment_cnt" property="lubanLiveCommentCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_share_cnt" property="lubanLiveShareCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_cnt" property="lubanLiveGiftCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_gift_amount" property="lubanLiveGiftAmount" jdbcType="DECIMAL"/>
+        <result column="luban_live_slidecart_click_cnt" property="lubanLiveSlidecartClickCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_click_product_cnt" property="lubanLiveClickProductCnt" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_count" property="lubanLivePayOrderCount" jdbcType="BIGINT"/>
+        <result column="luban_live_pay_order_stat_cost" property="lubanLivePayOrderStatCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_count" property="liveComponentClickCount" jdbcType="BIGINT"/>
+        <result column="live_component_click_cost" property="liveComponentClickCost" jdbcType="DECIMAL"/>
+        <result column="live_component_click_rate" property="liveComponentClickRate" jdbcType="DECIMAL"/>
+        <result column="wechat_login_count" property="wechatLoginCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_login_30d_count" property="attributionWechatLogin30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_login_cost" property="wechatLoginCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_login_30d_cost" property="attributionWechatLogin30dCost" jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_count" property="wechatFirstPayCount" jdbcType="BIGINT"/>
+        <result column="attribution_wechat_first_pay_30d_count" property="attributionWechatFirstPay30dCount"
+                jdbcType="BIGINT"/>
+        <result column="wechat_first_pay_cost" property="wechatFirstPayCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_cost" property="attributionWechatFirstPay30dCost"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_rate" property="wechatFirstPayRate" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_rate" property="attributionWechatFirstPay30dRate"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_pay_amount" property="wechatPayAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_amount" property="attributionWechatPay30dAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_roi" property="attributionWechatPay30dRoi" jdbcType="DECIMAL"/>
+        <result column="phone_effective" property="phoneEffective" jdbcType="BIGINT"/>
+        <result column="total_play" property="totalPlay" jdbcType="BIGINT"/>
+        <result column="valid_play" property="validPlay" jdbcType="BIGINT"/>
+        <result column="valid_play_cost" property="validPlayCost" jdbcType="DECIMAL"/>
+        <result column="valid_play_rate" property="validPlayRate" jdbcType="DECIMAL"/>
+        <result column="play_25_feed_break" property="play25FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_50_feed_break" property="play50FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_75_feed_break" property="play75FeedBreak" jdbcType="BIGINT"/>
+        <result column="play_100_feed_break" property="play100FeedBreak" jdbcType="BIGINT"/>
+        <result column="average_play_time_per_play" property="averagePlayTimePerPlay" jdbcType="DECIMAL"/>
+        <result column="play_over_rate" property="playOverRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play_rate" property="wifiPlayRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play" property="wifiPlay" jdbcType="BIGINT"/>
+        <result column="play_duration_sum" property="playDurationSum" jdbcType="BIGINT"/>
+        <result column="advanced_creative_phone_click" property="advancedCreativePhoneClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_counsel_click" property="advancedCreativeCounselClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_click" property="advancedCreativeFormClick" jdbcType="BIGINT"/>
+        <result column="advanced_creative_coupon_addition" property="advancedCreativeCouponAddition" jdbcType="BIGINT"/>
+        <result column="advanced_creative_form_submit" property="advancedCreativeFormSubmit" jdbcType="BIGINT"/>
+        <result column="card_show" property="cardShow" jdbcType="BIGINT"/>
+        <result column="share" property="share" jdbcType="BIGINT"/>
+        <result column="comment" property="comment" jdbcType="BIGINT"/>
+        <result column="like" property="like" jdbcType="BIGINT"/>
+        <result column="follow" property="follow" jdbcType="BIGINT"/>
+        <result column="home_visited" property="homeVisited" jdbcType="BIGINT"/>
+        <result column="ies_challenge_click" property="iesChallengeClick" jdbcType="BIGINT"/>
+        <result column="ies_music_click" property="iesMusicClick" jdbcType="BIGINT"/>
+        <result column="location_click" property="locationClick" jdbcType="BIGINT"/>
+        <result column="message_action" property="messageAction" jdbcType="BIGINT"/>
+        <result column="click_landing_page" property="clickLandingPage" jdbcType="BIGINT"/>
+        <result column="click_shopwindow" property="clickShopwindow" jdbcType="BIGINT"/>
+        <result column="click_website" property="clickWebsite" jdbcType="BIGINT"/>
+        <result column="click_download" property="clickDownload" jdbcType="BIGINT"/>
+        <result column="click_call_dy" property="clickCallDy" jdbcType="BIGINT"/>
+        <result column="submit_certification_count" property="submitCertificationCount" jdbcType="BIGINT"/>
+        <result column="approval_count" property="approvalCount" jdbcType="BIGINT"/>
+        <result column="first_rental_order_count" property="firstRentalOrderCount" jdbcType="BIGINT"/>
+        <result column="first_order_count" property="firstOrderCount" jdbcType="BIGINT"/>
+        <result column="commute_first_pay_count" property="commuteFirstPayCount" jdbcType="BIGINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+    advertiser_id, campaign_id, ad_id, creative_id, stat_datetime, hour, campaign_name, 
+    ad_name, cost, show, avg_show_cost, click, avg_click_cost, ctr, convert, convert_cost, 
+    convert_rate, deep_convert, deep_convert_cost, deep_convert_rate, attribution_convert, 
+    attribution_convert_cost, attribution_deep_convert, attribution_deep_convert_cost, 
+    download_start, download_start_cost, download_start_rate, download_finish, download_finish_cost, 
+    download_finish_rate, click_install, install_finish, install_finish_cost, install_finish_rate, 
+    active, active_cost, active_rate, register, active_register_cost, active_register_rate, 
+    next_day_open, next_day_open_cost, next_day_open_rate, attribution_next_day_open_cnt, 
+    attribution_next_day_open_cost, attribution_next_day_open_rate, game_addiction, game_addiction_cost, 
+    game_addiction_rate, pay_count, active_pay_cost, active_pay_rate, loan_completion, 
+    loan_completion_cost, loan_completion_rate, pre_loan_credit, pre_loan_credit_cost, 
+    loan_credit, loan_credit_cost, loan_credit_rate, in_app_uv, in_app_detail_uv, in_app_cart, 
+    in_app_pay, in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost, 
+    attribution_active_pay_7d_per_count, game_pay_cost, game_pay_count, phone, form, 
+    map_search, button, view, download, qq, lottery, vote, message, redirect, shopping, 
+    consult, wechat, phone_confirm, phone_connect, consult_effective, coupon, coupon_single_page, 
+    redirect_to_shop, poi_collect, poi_address_click, luban_order_cnt, luban_order_stat_amount, 
+    luban_order_roi, luban_live_enter_cnt, live_watch_one_minute_count, luban_live_follow_cnt, 
+    live_fans_club_join_cnt, luban_live_comment_cnt, luban_live_share_cnt, luban_live_gift_cnt, 
+    luban_live_gift_amount, luban_live_slidecart_click_cnt, luban_live_click_product_cnt, 
+    luban_live_pay_order_count, luban_live_pay_order_stat_cost, live_component_click_count, 
+    live_component_click_cost, live_component_click_rate, wechat_login_count, attribution_wechat_login_30d_count, 
+    wechat_login_cost, attribution_wechat_login_30d_cost, wechat_first_pay_count, attribution_wechat_first_pay_30d_count, 
+    wechat_first_pay_cost, attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate, 
+    attribution_wechat_first_pay_30d_rate, wechat_pay_amount, attribution_wechat_pay_30d_amount, 
+    attribution_wechat_pay_30d_roi, phone_effective, total_play, valid_play, valid_play_cost, 
+    valid_play_rate, play_25_feed_break, play_50_feed_break, play_75_feed_break, play_100_feed_break, 
+    average_play_time_per_play, play_over_rate, wifi_play_rate, wifi_play, play_duration_sum, 
+    advanced_creative_phone_click, advanced_creative_counsel_click, advanced_creative_form_click, 
+    advanced_creative_coupon_addition, advanced_creative_form_submit, card_show, share, 
+    comment, like, follow, home_visited, ies_challenge_click, ies_music_click, location_click, 
+    message_action, click_landing_page, click_shopwindow, click_website, click_download, 
+    click_call_dy, submit_certification_count, approval_count, first_rental_order_count, 
+    first_order_count, commute_first_pay_count
+  </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceCreativeReportHourly">
+        replace into bytedance_creative_report_hourly (advertiser_id, campaign_id, ad_id,
+        creative_id, stat_datetime, `hour`,
+        campaign_name, ad_name, cost,
+        `show`, avg_show_cost, click,
+        avg_click_cost, ctr, `convert`,
+        convert_cost, convert_rate, deep_convert,
+        deep_convert_cost, deep_convert_rate, attribution_convert,
+        attribution_convert_cost, attribution_deep_convert,
+        attribution_deep_convert_cost, download_start,
+        download_start_cost, download_start_rate, download_finish,
+        download_finish_cost, download_finish_rate,
+        click_install, install_finish, install_finish_cost,
+        install_finish_rate, active, active_cost,
+        active_rate, register, active_register_cost,
+        active_register_rate, next_day_open, next_day_open_cost,
+        next_day_open_rate, attribution_next_day_open_cnt,
+        attribution_next_day_open_cost, attribution_next_day_open_rate,
+        game_addiction, game_addiction_cost, game_addiction_rate,
+        pay_count, active_pay_cost, active_pay_rate,
+        loan_completion, loan_completion_cost, loan_completion_rate,
+        pre_loan_credit, pre_loan_credit_cost, loan_credit,
+        loan_credit_cost, loan_credit_rate, in_app_uv,
+        in_app_detail_uv, in_app_cart, in_app_pay,
+        in_app_order, attribution_game_pay_7d_count, attribution_game_pay_7d_cost,
+        attribution_active_pay_7d_per_count, game_pay_cost,
+        game_pay_count, phone, form,
+        map_search, button, `view`,
+        download, qq, lottery,
+        vote, message, redirect,
+        shopping, consult, wechat,
+        phone_confirm, phone_connect, consult_effective,
+        coupon, coupon_single_page, redirect_to_shop,
+        poi_collect, poi_address_click, luban_order_cnt,
+        luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt,
+        live_watch_one_minute_count, luban_live_follow_cnt,
+        live_fans_club_join_cnt, luban_live_comment_cnt,
+        luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount,
+        luban_live_slidecart_click_cnt, luban_live_click_product_cnt,
+        luban_live_pay_order_count, luban_live_pay_order_stat_cost,
+        live_component_click_count, live_component_click_cost,
+        live_component_click_rate, wechat_login_count,
+        attribution_wechat_login_30d_count, wechat_login_cost,
+        attribution_wechat_login_30d_cost, wechat_first_pay_count,
+        attribution_wechat_first_pay_30d_count, wechat_first_pay_cost,
+        attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate,
+        attribution_wechat_first_pay_30d_rate, wechat_pay_amount,
+        attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi,
+        phone_effective, total_play, valid_play,
+        valid_play_cost, valid_play_rate, play_25_feed_break,
+        play_50_feed_break, play_75_feed_break, play_100_feed_break,
+        average_play_time_per_play, play_over_rate, wifi_play_rate,
+        wifi_play, play_duration_sum, advanced_creative_phone_click,
+        advanced_creative_counsel_click, advanced_creative_form_click,
+        advanced_creative_coupon_addition, advanced_creative_form_submit,
+        card_show, `share`, `comment`,
+        `like`, follow, home_visited,
+        ies_challenge_click, ies_music_click, location_click,
+        message_action, click_landing_page, click_shopwindow,
+        click_website, click_download, click_call_dy,
+        submit_certification_count, approval_count,
+        first_rental_order_count, first_order_count, commute_first_pay_count
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.campaignId,jdbcType=BIGINT}, #{item.adId,jdbcType=BIGINT},
+            #{item.creativeId,jdbcType=BIGINT}, #{item.statDatetime,jdbcType=INTEGER}, #{item.hour,jdbcType=INTEGER},
+            #{item.campaignName,jdbcType=VARCHAR}, #{item.adName,jdbcType=VARCHAR}, #{item.cost,jdbcType=DECIMAL},
+            #{item.show,jdbcType=BIGINT}, #{item.avgShowCost,jdbcType=DECIMAL}, #{item.click,jdbcType=BIGINT},
+            #{item.avgClickCost,jdbcType=DECIMAL}, #{item.ctr,jdbcType=DECIMAL}, #{item.convert,jdbcType=BIGINT},
+            #{item.convertCost,jdbcType=DECIMAL}, #{item.convertRate,jdbcType=DECIMAL},
+            #{item.deepConvert,jdbcType=BIGINT},
+            #{item.deepConvertCost,jdbcType=DECIMAL}, #{item.deepConvertRate,jdbcType=DECIMAL},
+            #{item.attributionConvert,jdbcType=BIGINT},
+            #{item.attributionConvertCost,jdbcType=DECIMAL}, #{item.attributionDeepConvert,jdbcType=BIGINT},
+            #{item.attributionDeepConvertCost,jdbcType=DECIMAL}, #{item.downloadStart,jdbcType=BIGINT},
+            #{item.downloadStartCost,jdbcType=DECIMAL}, #{item.downloadStartRate,jdbcType=DECIMAL},
+            #{item.downloadFinish,jdbcType=BIGINT},
+            #{item.downloadFinishCost,jdbcType=DECIMAL}, #{item.downloadFinishRate,jdbcType=DECIMAL},
+            #{item.clickInstall,jdbcType=BIGINT}, #{item.installFinish,jdbcType=BIGINT},
+            #{item.installFinishCost,jdbcType=DECIMAL},
+            #{item.installFinishRate,jdbcType=DECIMAL}, #{item.active,jdbcType=BIGINT},
+            #{item.activeCost,jdbcType=DECIMAL},
+            #{item.activeRate,jdbcType=DECIMAL}, #{item.register,jdbcType=DECIMAL},
+            #{item.activeRegisterCost,jdbcType=DECIMAL},
+            #{item.activeRegisterRate,jdbcType=REAL}, #{item.nextDayOpen,jdbcType=BIGINT},
+            #{item.nextDayOpenCost,jdbcType=DECIMAL},
+            #{item.nextDayOpenRate,jdbcType=DECIMAL}, #{item.attributionNextDayOpenCnt,jdbcType=BIGINT},
+            #{item.attributionNextDayOpenCost,jdbcType=DECIMAL}, #{item.attributionNextDayOpenRate,jdbcType=DECIMAL},
+            #{item.gameAddiction,jdbcType=BIGINT}, #{item.gameAddictionCost,jdbcType=DECIMAL},
+            #{item.gameAddictionRate,jdbcType=DECIMAL},
+            #{item.payCount,jdbcType=BIGINT}, #{item.activePayCost,jdbcType=DECIMAL},
+            #{item.activePayRate,jdbcType=DECIMAL},
+            #{item.loanCompletion,jdbcType=BIGINT}, #{item.loanCompletionCost,jdbcType=DECIMAL},
+            #{item.loanCompletionRate,jdbcType=DECIMAL},
+            #{item.preLoanCredit,jdbcType=BIGINT}, #{item.preLoanCreditCost,jdbcType=DECIMAL},
+            #{item.loanCredit,jdbcType=BIGINT},
+            #{item.loanCreditCost,jdbcType=DECIMAL}, #{item.loanCreditRate,jdbcType=DECIMAL},
+            #{item.inAppUv,jdbcType=BIGINT},
+            #{item.inAppDetailUv,jdbcType=BIGINT}, #{item.inAppCart,jdbcType=BIGINT}, #{item.inAppPay,jdbcType=BIGINT},
+            #{item.inAppOrder,jdbcType=BIGINT}, #{item.attributionGamePay7dCount,jdbcType=BIGINT},
+            #{item.attributionGamePay7dCost,jdbcType=DECIMAL},
+            #{item.attributionActivePay7dPerCount,jdbcType=BIGINT}, #{item.gamePayCost,jdbcType=DECIMAL},
+            #{item.gamePayCount,jdbcType=BIGINT}, #{item.phone,jdbcType=BIGINT}, #{item.form,jdbcType=BIGINT},
+            #{item.mapSearch,jdbcType=BIGINT}, #{item.button,jdbcType=BIGINT}, #{item.view,jdbcType=BIGINT},
+            #{item.download,jdbcType=BIGINT}, #{item.qq,jdbcType=BIGINT}, #{item.lottery,jdbcType=BIGINT},
+            #{item.vote,jdbcType=BIGINT}, #{item.message,jdbcType=BIGINT}, #{item.redirect,jdbcType=BIGINT},
+            #{item.shopping,jdbcType=BIGINT}, #{item.consult,jdbcType=BIGINT}, #{item.wechat,jdbcType=BIGINT},
+            #{item.phoneConfirm,jdbcType=BIGINT}, #{item.phoneConnect,jdbcType=BIGINT},
+            #{item.consultEffective,jdbcType=BIGINT},
+            #{item.coupon,jdbcType=BIGINT}, #{item.couponSinglePage,jdbcType=BIGINT},
+            #{item.redirectToShop,jdbcType=BIGINT},
+            #{item.poiCollect,jdbcType=BIGINT}, #{item.poiAddressClick,jdbcType=BIGINT},
+            #{item.lubanOrderCnt,jdbcType=BIGINT},
+            #{item.lubanOrderStatAmount,jdbcType=DECIMAL}, #{item.lubanOrderRoi,jdbcType=DECIMAL},
+            #{item.lubanLiveEnterCnt,jdbcType=BIGINT},
+            #{item.liveWatchOneMinuteCount,jdbcType=BIGINT}, #{item.lubanLiveFollowCnt,jdbcType=BIGINT},
+            #{item.liveFansClubJoinCnt,jdbcType=BIGINT}, #{item.lubanLiveCommentCnt,jdbcType=BIGINT},
+            #{item.lubanLiveShareCnt,jdbcType=BIGINT}, #{item.lubanLiveGiftCnt,jdbcType=BIGINT},
+            #{item.lubanLiveGiftAmount,jdbcType=DECIMAL},
+            #{item.lubanLiveSlidecartClickCnt,jdbcType=BIGINT}, #{item.lubanLiveClickProductCnt,jdbcType=BIGINT},
+            #{item.lubanLivePayOrderCount,jdbcType=BIGINT}, #{item.lubanLivePayOrderStatCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickCount,jdbcType=BIGINT}, #{item.liveComponentClickCost,jdbcType=DECIMAL},
+            #{item.liveComponentClickRate,jdbcType=DECIMAL}, #{item.wechatLoginCount,jdbcType=BIGINT},
+            #{item.attributionWechatLogin30dCount,jdbcType=BIGINT}, #{item.wechatLoginCost,jdbcType=DECIMAL},
+            #{item.attributionWechatLogin30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayCount,jdbcType=BIGINT},
+            #{item.attributionWechatFirstPay30dCount,jdbcType=BIGINT}, #{item.wechatFirstPayCost,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dCost,jdbcType=DECIMAL}, #{item.wechatFirstPayRate,jdbcType=DECIMAL},
+            #{item.attributionWechatFirstPay30dRate,jdbcType=DECIMAL}, #{item.wechatPayAmount,jdbcType=DECIMAL},
+            #{item.attributionWechatPay30dAmount,jdbcType=DECIMAL}, #{item.attributionWechatPay30dRoi,jdbcType=DECIMAL},
+            #{item.phoneEffective,jdbcType=BIGINT}, #{item.totalPlay,jdbcType=BIGINT},
+            #{item.validPlay,jdbcType=BIGINT},
+            #{item.validPlayCost,jdbcType=DECIMAL}, #{item.validPlayRate,jdbcType=DECIMAL},
+            #{item.play25FeedBreak,jdbcType=BIGINT},
+            #{item.play50FeedBreak,jdbcType=BIGINT}, #{item.play75FeedBreak,jdbcType=BIGINT},
+            #{item.play100FeedBreak,jdbcType=BIGINT},
+            #{item.averagePlayTimePerPlay,jdbcType=DECIMAL}, #{item.playOverRate,jdbcType=DECIMAL},
+            #{item.wifiPlayRate,jdbcType=DECIMAL},
+            #{item.wifiPlay,jdbcType=BIGINT}, #{item.playDurationSum,jdbcType=BIGINT},
+            #{item.advancedCreativePhoneClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCounselClick,jdbcType=BIGINT}, #{item.advancedCreativeFormClick,jdbcType=BIGINT},
+            #{item.advancedCreativeCouponAddition,jdbcType=BIGINT}, #{item.advancedCreativeFormSubmit,jdbcType=BIGINT},
+            #{item.cardShow,jdbcType=BIGINT}, #{item.share,jdbcType=BIGINT}, #{item.comment,jdbcType=BIGINT},
+            #{item.like,jdbcType=BIGINT}, #{item.follow,jdbcType=BIGINT}, #{item.homeVisited,jdbcType=BIGINT},
+            #{item.iesChallengeClick,jdbcType=BIGINT}, #{item.iesMusicClick,jdbcType=BIGINT},
+            #{item.locationClick,jdbcType=BIGINT},
+            #{item.messageAction,jdbcType=BIGINT}, #{item.clickLandingPage,jdbcType=BIGINT},
+            #{item.clickShopwindow,jdbcType=BIGINT},
+            #{item.clickWebsite,jdbcType=BIGINT}, #{item.clickDownload,jdbcType=BIGINT},
+            #{item.clickCallDy,jdbcType=BIGINT},
+            #{item.submitCertificationCount,jdbcType=BIGINT}, #{item.approvalCount,jdbcType=BIGINT},
+            #{item.firstRentalOrderCount,jdbcType=BIGINT}, #{item.firstOrderCount,jdbcType=BIGINT},
+            #{item.commuteFirstPayCount,jdbcType=BIGINT}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

+ 38 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceFileImageGetMapper.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceFileImageGetMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceFileImageGet">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="id" property="id" jdbcType="VARCHAR"/>
+        <result column="material_id" property="materialId" jdbcType="BIGINT"/>
+        <result column="size" property="size" jdbcType="BIGINT"/>
+        <result column="width" property="width" jdbcType="BIGINT"/>
+        <result column="height" property="height" jdbcType="BIGINT"/>
+        <result column="url" property="url" jdbcType="VARCHAR"/>
+        <result column="format" property="format" jdbcType="VARCHAR"/>
+        <result column="signature" property="signature" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="VARCHAR"/>
+        <result column="filename" property="filename" jdbcType="VARCHAR"/>
+        <result column="image_url" property="imageUrl" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+    advertiser_id, id, material_id, size, width, height, url, format, signature, create_time, 
+    filename, image_url
+  </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceFileImageGet">
+        replace into bytedance_file_image_get (advertiser_id, id, material_id,
+        size, width, height, url,
+        format, signature, create_time,
+        filename, image_url)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.id,jdbcType=VARCHAR}, #{item.materialId,jdbcType=BIGINT},
+            #{item.size,jdbcType=BIGINT}, #{item.width,jdbcType=BIGINT}, #{item.height,jdbcType=BIGINT}, #{item.url,jdbcType=VARCHAR},
+            #{item.format,jdbcType=VARCHAR}, #{item.signature,jdbcType=VARCHAR}, #{item.createTime,jdbcType=VARCHAR},
+            #{item.filename,jdbcType=VARCHAR}, #{item.imageUrl,jdbcType=VARCHAR})
+        </foreach>
+    </insert>
+
+</mapper>

+ 68 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceFileVideoGetMapper.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceFileVideoGetMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceFileVideoGet">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="id" property="id" jdbcType="VARCHAR"/>
+        <result column="size" property="size" jdbcType="BIGINT"/>
+        <result column="width" property="width" jdbcType="BIGINT"/>
+        <result column="height" property="height" jdbcType="BIGINT"/>
+        <result column="url" property="url" jdbcType="VARCHAR"/>
+        <result column="format" property="format" jdbcType="VARCHAR"/>
+        <result column="signature" property="signature" jdbcType="VARCHAR"/>
+        <result column="poster_url" property="posterUrl" jdbcType="VARCHAR"/>
+        <result column="bit_rate" property="bitRate" jdbcType="BIGINT"/>
+        <result column="duration" property="duration" jdbcType="BIGINT"/>
+        <result column="material_id" property="materialId" jdbcType="BIGINT"/>
+        <result column="source" property="source" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="VARCHAR"/>
+        <result column="filename" property="filename" jdbcType="VARCHAR"/>
+        <result column="labels" property="labels" jdbcType="VARCHAR"/>
+        <result column="video_url" property="videoUrl" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        advertiser_id
+        , id, size, width, height, url, format, signature, poster_url, bit_rate,
+    duration, material_id, source, create_time, filename, labels, video_url
+    </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceFileVideoGet">
+        replace into bytedance_file_video_get (advertiser_id, id, size,
+        width, height, url, format,
+        signature, poster_url, bit_rate,
+        duration, material_id, source,
+        create_time, filename, labels,
+        video_url)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT}, #{item.id,jdbcType=VARCHAR}, #{item.size,jdbcType=BIGINT},
+            #{item.width,jdbcType=BIGINT}, #{item.height,jdbcType=BIGINT}, #{item.url,jdbcType=VARCHAR},
+            #{item.format,jdbcType=VARCHAR},
+            #{item.signature,jdbcType=VARCHAR}, #{item.posterUrl,jdbcType=VARCHAR}, #{item.bitRate,jdbcType=BIGINT},
+            #{item.duration,jdbcType=BIGINT}, #{item.materialId,jdbcType=BIGINT}, #{item.source,jdbcType=VARCHAR},
+            #{item.createTime,jdbcType=VARCHAR}, #{item.filename,jdbcType=VARCHAR}, #{item.labels,jdbcType=VARCHAR},
+            #{item.videoUrl,jdbcType=VARCHAR})
+        </foreach>
+    </insert>
+
+    <insert id="insertMaterialAttributesData"
+            parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceMaterialAttributes">
+        replace into media_api.material_attributes_list (
+        material_id,
+        is_ad_high_quality_material,
+        is_first_publish_material,
+        is_inefficient_material
+        )
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.materialId},
+            #{item.isAdHighQualityMaterial},
+            #{item.isFirstPublishMaterial},
+            #{item.isInefficientMaterial}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

+ 72 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceFundMapper.xml

@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceFundMapper" >
+
+
+     <insert id="replaceFundGet" parameterType="com.alibaba.fastjson.JSONObject">
+         replace
+         into bytedance_fund_get(
+        advertiser_id,
+        name,
+        email,
+        balance,
+        valid_balance,
+        cash,
+        valid_cash,
+        grant_amount,
+        default_grant,
+        common_grant,
+        search_grant,
+        union_grant,
+        valid_grant,
+        return_goods_abs,
+        valid_return_goods_abs,
+        return_goods_cost,
+        return_goods_grant,
+        compensation_grant,
+        return_goods_valid_grant,
+        compensation_valid_grant,
+        wallet_id,
+        wallet_name,
+         request_desc
+         ) values (
+         #{data.advertiser_id},
+         #{data.name},
+         #{data.email},
+         #{data.balance},
+         #{data.valid_balance},
+         #{data.cash},
+         #{data.valid_cash},
+         #{data.grant_amount},
+         #{data.default_grant},
+         #{data.common_grant},
+         #{data.search_grant},
+         #{data.union_grant},
+         #{data.valid_grant},
+         #{data.return_goods_abs},
+         #{data.valid_return_goods_abs},
+         #{data.return_goods_cost},
+         #{data.return_goods_grant},
+         #{data.compensation_grant},
+         #{data.return_goods_valid_grant},
+         #{data.compensation_valid_grant},
+         #{data.wallet_id},
+         #{data.wallet_name},
+         #{data.request_desc}
+         )
+
+     </insert>
+    <update id="updateFundGet">
+        update bytedance_fund_get
+        set request_desc = #{requestDesc}
+        where advertiser_id = #{accountId}
+    </update>
+    <select id="getAccountList" resultType="java.lang.Long">
+        select advertiser_id
+        from (select *, date_format(update_time, '%Y%m%d') as 'updateDate', date_format(now(), '%Y%m%d') as 'nowDate'
+              from media_api.bytedance_fund_get
+              where (valid_balance - valid_grant > 0)) t
+        where t.updateDate != nowDate
+
+    </select>
+</mapper>

+ 440 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceMaterialReportDailyMapper.xml

@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceMaterialReportDailyMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ctop.job.bytedance.data.entity.BytedanceMaterialReportDaily">
+        <id column="advertiser_id" property="advertiserId" jdbcType="BIGINT"/>
+        <id column="material_id" property="materialId" jdbcType="BIGINT"/>
+        <id column="image_mode" property="imageMode" jdbcType="VARCHAR"/>
+        <id column="inventory" property="inventory" jdbcType="VARCHAR"/>
+        <id column="stat_datetime" property="statDatetime" jdbcType="INTEGER"/>
+        <result column="cost" property="cost" jdbcType="DECIMAL"/>
+        <result column="show" property="show" jdbcType="INTEGER"/>
+        <result column="avg_show_cost" property="avgShowCost" jdbcType="DECIMAL"/>
+        <result column="click" property="click" jdbcType="INTEGER"/>
+        <result column="avg_click_cost" property="avgClickCost" jdbcType="DECIMAL"/>
+        <result column="ctr" property="ctr" jdbcType="DECIMAL"/>
+        <result column="convert" property="convert" jdbcType="INTEGER"/>
+        <result column="convert_cost" property="convertCost" jdbcType="DECIMAL"/>
+        <result column="convert_rate" property="convertRate" jdbcType="DECIMAL"/>
+        <result column="deep_convert" property="deepConvert" jdbcType="INTEGER"/>
+        <result column="deep_convert_cost" property="deepConvertCost" jdbcType="DECIMAL"/>
+        <result column="deep_convert_rate" property="deepConvertRate" jdbcType="DECIMAL"/>
+        <result column="attribution_convert" property="attributionConvert" jdbcType="INTEGER"/>
+        <result column="attribution_convert_cost" property="attributionConvertCost" jdbcType="DECIMAL"/>
+        <result column="attribution_deep_convert" property="attributionDeepConvert" jdbcType="INTEGER"/>
+        <result column="attribution_deep_convert_cost" property="attributionDeepConvertCost" jdbcType="DECIMAL"/>
+        <result column="download_start" property="downloadStart" jdbcType="INTEGER"/>
+        <result column="download_start_cost" property="downloadStartCost" jdbcType="DECIMAL"/>
+        <result column="download_start_rate" property="downloadStartRate" jdbcType="DECIMAL"/>
+        <result column="download_finish" property="downloadFinish" jdbcType="INTEGER"/>
+        <result column="download_finish_cost" property="downloadFinishCost" jdbcType="DECIMAL"/>
+        <result column="download_finish_rate" property="downloadFinishRate" jdbcType="DECIMAL"/>
+        <result column="click_install" property="clickInstall" jdbcType="INTEGER"/>
+        <result column="install_finish" property="installFinish" jdbcType="INTEGER"/>
+        <result column="install_finish_cost" property="installFinishCost" jdbcType="DECIMAL"/>
+        <result column="install_finish_rate" property="installFinishRate" jdbcType="DECIMAL"/>
+        <result column="active" property="active" jdbcType="INTEGER"/>
+        <result column="active_cost" property="activeCost" jdbcType="DECIMAL"/>
+        <result column="active_rate" property="activeRate" jdbcType="DECIMAL"/>
+        <result column="register" property="register" jdbcType="INTEGER"/>
+        <result column="active_register_cost" property="activeRegisterCost" jdbcType="DECIMAL"/>
+        <result column="active_register_rate" property="activeRegisterRate" jdbcType="DECIMAL"/>
+        <result column="active_pay_amount" property="activePayAmount" jdbcType="DECIMAL"/>
+        <result column="next_day_open" property="nextDayOpen" jdbcType="INTEGER"/>
+        <result column="next_day_open_cost" property="nextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="next_day_open_rate" property="nextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_cnt" property="attributionNextDayOpenCnt" jdbcType="INTEGER"/>
+        <result column="attribution_next_day_open_cost" property="attributionNextDayOpenCost" jdbcType="DECIMAL"/>
+        <result column="attribution_next_day_open_rate" property="attributionNextDayOpenRate" jdbcType="DECIMAL"/>
+        <result column="game_addiction" property="gameAddiction" jdbcType="INTEGER"/>
+        <result column="game_addiction_cost" property="gameAddictionCost" jdbcType="DECIMAL"/>
+        <result column="game_addiction_rate" property="gameAddictionRate" jdbcType="DECIMAL"/>
+        <result column="pay_count" property="payCount" jdbcType="INTEGER"/>
+        <result column="active_pay_cost" property="activePayCost" jdbcType="DECIMAL"/>
+        <result column="active_pay_rate" property="activePayRate" jdbcType="DECIMAL"/>
+        <result column="loan_completion" property="loanCompletion" jdbcType="INTEGER"/>
+        <result column="loan_completion_cost" property="loanCompletionCost" jdbcType="DECIMAL"/>
+        <result column="loan_completion_rate" property="loanCompletionRate" jdbcType="DECIMAL"/>
+        <result column="pre_loan_credit" property="preLoanCredit" jdbcType="INTEGER"/>
+        <result column="pre_loan_credit_cost" property="preLoanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit" property="loanCredit" jdbcType="INTEGER"/>
+        <result column="loan_credit_cost" property="loanCreditCost" jdbcType="DECIMAL"/>
+        <result column="loan_credit_rate" property="loanCreditRate" jdbcType="DECIMAL"/>
+        <result column="in_app_uv" property="inAppUv" jdbcType="INTEGER"/>
+        <result column="in_app_detail_uv" property="inAppDetailUv" jdbcType="INTEGER"/>
+        <result column="in_app_cart" property="inAppCart" jdbcType="INTEGER"/>
+        <result column="in_app_pay" property="inAppPay" jdbcType="INTEGER"/>
+        <result column="in_app_order" property="inAppOrder" jdbcType="INTEGER"/>
+        <result column="attribution_game_pay_7d_count" property="attributionGamePay7dCount" jdbcType="INTEGER"/>
+        <result column="attribution_game_pay_7d_cost" property="attributionGamePay7dCost" jdbcType="DECIMAL"/>
+        <result column="attribution_active_pay_7d_per_count" property="attributionActivePay7dPerCount"
+                jdbcType="INTEGER"/>
+        <result column="game_pay_cost" property="gamePayCost" jdbcType="INTEGER"/>
+        <result column="game_pay_count" property="gamePayCount" jdbcType="INTEGER"/>
+        <result column="phone" property="phone" jdbcType="INTEGER"/>
+        <result column="form" property="form" jdbcType="INTEGER"/>
+        <result column="map_search" property="mapSearch" jdbcType="INTEGER"/>
+        <result column="button" property="button" jdbcType="INTEGER"/>
+        <result column="view" property="view" jdbcType="INTEGER"/>
+        <result column="download" property="download" jdbcType="INTEGER"/>
+        <result column="qq" property="qq" jdbcType="INTEGER"/>
+        <result column="lottery" property="lottery" jdbcType="INTEGER"/>
+        <result column="vote" property="vote" jdbcType="INTEGER"/>
+        <result column="message" property="message" jdbcType="INTEGER"/>
+        <result column="redirect" property="redirect" jdbcType="INTEGER"/>
+        <result column="shopping" property="shopping" jdbcType="INTEGER"/>
+        <result column="consult" property="consult" jdbcType="INTEGER"/>
+        <result column="wechat" property="wechat" jdbcType="INTEGER"/>
+        <result column="phone_confirm" property="phoneConfirm" jdbcType="INTEGER"/>
+        <result column="phone_connect" property="phoneConnect" jdbcType="INTEGER"/>
+        <result column="consult_effective" property="consultEffective" jdbcType="INTEGER"/>
+        <result column="coupon" property="coupon" jdbcType="INTEGER"/>
+        <result column="coupon_single_page" property="couponSinglePage" jdbcType="INTEGER"/>
+        <result column="redirect_to_shop" property="redirectToShop" jdbcType="INTEGER"/>
+        <result column="poi_collect" property="poiCollect" jdbcType="INTEGER"/>
+        <result column="poi_address_click" property="poiAddressClick" jdbcType="INTEGER"/>
+        <result column="luban_order_cnt" property="lubanOrderCnt" jdbcType="INTEGER"/>
+        <result column="luban_order_stat_amount" property="lubanOrderStatAmount" jdbcType="DECIMAL"/>
+        <result column="luban_order_roi" property="lubanOrderRoi" jdbcType="DECIMAL"/>
+        <result column="luban_live_enter_cnt" property="lubanLiveEnterCnt" jdbcType="INTEGER"/>
+        <result column="live_watch_one_minute_count" property="liveWatchOneMinuteCount" jdbcType="INTEGER"/>
+        <result column="luban_live_follow_cnt" property="lubanLiveFollowCnt" jdbcType="INTEGER"/>
+        <result column="live_fans_club_join_cnt" property="liveFansClubJoinCnt" jdbcType="INTEGER"/>
+        <result column="luban_live_comment_cnt" property="lubanLiveCommentCnt" jdbcType="INTEGER"/>
+        <result column="luban_live_share_cnt" property="lubanLiveShareCnt" jdbcType="INTEGER"/>
+        <result column="luban_live_gift_cnt" property="lubanLiveGiftCnt" jdbcType="INTEGER"/>
+        <result column="luban_live_gift_amount" property="lubanLiveGiftAmount" jdbcType="DECIMAL"/>
+        <result column="luban_live_slidecart_click_cnt" property="lubanLiveSlidecartClickCnt" jdbcType="INTEGER"/>
+        <result column="luban_live_click_product_cnt" property="lubanLiveClickProductCnt" jdbcType="INTEGER"/>
+        <result column="luban_live_pay_order_count" property="lubanLivePayOrderCount" jdbcType="INTEGER"/>
+        <result column="luban_live_pay_order_stat_cost" property="lubanLivePayOrderStatCost" jdbcType="DECIMAL"/>
+        <result column="wechat_login_count" property="wechatLoginCount" jdbcType="INTEGER"/>
+        <result column="attribution_wechat_login_30d_count" property="attributionWechatLogin30dCount"
+                jdbcType="INTEGER"/>
+        <result column="wechat_login_cost" property="wechatLoginCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_login_30d_cost" property="attributionWechatLogin30dCost" jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_count" property="wechatFirstPayCount" jdbcType="INTEGER"/>
+        <result column="attribution_wechat_first_pay_30d_count" property="attributionWechatFirstPay30dCount"
+                jdbcType="INTEGER"/>
+        <result column="wechat_first_pay_cost" property="wechatFirstPayCost" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_cost" property="attributionWechatFirstPay30dCost"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_first_pay_rate" property="wechatFirstPayRate" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_first_pay_30d_rate" property="attributionWechatFirstPay30dRate"
+                jdbcType="DECIMAL"/>
+        <result column="wechat_pay_amount" property="wechatPayAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_amount" property="attributionWechatPay30dAmount" jdbcType="DECIMAL"/>
+        <result column="attribution_wechat_pay_30d_roi" property="attributionWechatPay30dRoi" jdbcType="DECIMAL"/>
+        <result column="phone_effective" property="phoneEffective" jdbcType="INTEGER"/>
+        <result column="total_play" property="totalPlay" jdbcType="INTEGER"/>
+        <result column="valid_play" property="validPlay" jdbcType="INTEGER"/>
+        <result column="valid_play_cost" property="validPlayCost" jdbcType="DECIMAL"/>
+        <result column="valid_play_rate" property="validPlayRate" jdbcType="DECIMAL"/>
+        <result column="play_25_feed_break" property="play25FeedBreak" jdbcType="INTEGER"/>
+        <result column="play_50_feed_break" property="play50FeedBreak" jdbcType="INTEGER"/>
+        <result column="play_75_feed_break" property="play75FeedBreak" jdbcType="INTEGER"/>
+        <result column="play_100_feed_break" property="play100FeedBreak" jdbcType="INTEGER"/>
+        <result column="average_play_time_per_play" property="averagePlayTimePerPlay" jdbcType="DECIMAL"/>
+        <result column="play_over_rate" property="playOverRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play_rate" property="wifiPlayRate" jdbcType="DECIMAL"/>
+        <result column="wifi_play" property="wifiPlay" jdbcType="INTEGER"/>
+        <result column="play_duration_sum" property="playDurationSum" jdbcType="BIGINT"/>
+        <result column="advanced_creative_phone_click" property="advancedCreativePhoneClick" jdbcType="INTEGER"/>
+        <result column="advanced_creative_counsel_click" property="advancedCreativeCounselClick" jdbcType="INTEGER"/>
+        <result column="advanced_creative_form_click" property="advancedCreativeFormClick" jdbcType="INTEGER"/>
+        <result column="advanced_creative_coupon_addition" property="advancedCreativeCouponAddition"
+                jdbcType="INTEGER"/>
+        <result column="advanced_creative_form_submit" property="advancedCreativeFormSubmit" jdbcType="INTEGER"/>
+        <result column="card_show" property="cardShow" jdbcType="INTEGER"/>
+        <result column="share" property="share" jdbcType="INTEGER"/>
+        <result column="comment" property="comment" jdbcType="INTEGER"/>
+        <result column="like" property="like" jdbcType="INTEGER"/>
+        <result column="follow" property="follow" jdbcType="INTEGER"/>
+        <result column="home_visited" property="homeVisited" jdbcType="INTEGER"/>
+        <result column="ies_challenge_click" property="iesChallengeClick" jdbcType="INTEGER"/>
+        <result column="ies_music_click" property="iesMusicClick" jdbcType="INTEGER"/>
+        <result column="location_click" property="locationClick" jdbcType="INTEGER"/>
+        <result column="message_action" property="messageAction" jdbcType="INTEGER"/>
+        <result column="click_landing_page" property="clickLandingPage" jdbcType="INTEGER"/>
+        <result column="click_shopwindow" property="clickShopwindow" jdbcType="INTEGER"/>
+        <result column="click_website" property="clickWebsite" jdbcType="INTEGER"/>
+        <result column="click_download" property="clickDownload" jdbcType="INTEGER"/>
+        <result column="click_call_dy" property="clickCallDy" jdbcType="INTEGER"/>
+        <result column="cpc" property="cpc" jdbcType="DECIMAL"/>
+        <result column="cpm" property="cpm" jdbcType="DECIMAL"/>
+        <result column="cpa" property="cpa" jdbcType="DECIMAL"/>
+        <result column="interact_per_cost" property="interactPerCost" jdbcType="DECIMAL"/>
+        <result column="convert_show_rate" property="convertShowRate" jdbcType="DECIMAL"/>
+        <result column="play_duration_10s_rate" property="playDuration10sRate" jdbcType="DECIMAL"/>
+        <result column="play_50_feed_break_rate" property="play50FeedBreakRate" jdbcType="DECIMAL"/>
+        <result column="play_25_feed_break_rate" property="play25FeedBreakRate" jdbcType="DECIMAL"/>
+        <result column="play_duration_5s_rate" property="playDuration5sRate" jdbcType="DECIMAL"/>
+        <result column="play_duration_2s_rate" property="playDuration2sRate" jdbcType="DECIMAL"/>
+        <result column="average_play_progress" property="averagePlayProgress" jdbcType="DECIMAL"/>
+        <result column="play_100_feed_break_rate" property="play100FeedBreakRate" jdbcType="DECIMAL"/>
+        <result column="play_duration_3s_rate" property="playDuration3sRate" jdbcType="DECIMAL"/>
+        <result column="play_75_feed_break_rate" property="play75FeedBreakRate" jdbcType="DECIMAL"/>
+        <result column="play_duration" property="playDuration" jdbcType="DECIMAL"/>
+        <result column="play_duration_3s" property="playDuration3s" jdbcType="DECIMAL"/>
+        <result column="play_duration_2s" property="playDuration2s" jdbcType="DECIMAL"/>
+        <result column="play_duration_10s" property="playDuration10s" jdbcType="DECIMAL"/>
+        <result column="average_video_play" property="averageVideoPlay" jdbcType="DECIMAL"/>
+        <result column="avg_rank" property="avgRank" jdbcType="DECIMAL"/>
+        <result column="submit_certification_count" property="submitCertificationCount" jdbcType="INTEGER"/>
+        <result column="approval_count" property="approvalCount" jdbcType="INTEGER"/>
+        <result column="first_order_count" property="firstOrderCount" jdbcType="INTEGER"/>
+        <result column="first_rental_order_count" property="firstRentalOrderCount" jdbcType="INTEGER"/>
+        <result column="commute_first_pay_count" property="commuteFirstPayCount" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+    advertiser_id, material_id, image_mode, inventory, stat_datetime, cost, show, avg_show_cost, 
+    click, avg_click_cost, ctr, convert, convert_cost, convert_rate, deep_convert, deep_convert_cost, 
+    deep_convert_rate, attribution_convert, attribution_convert_cost, attribution_deep_convert, 
+    attribution_deep_convert_cost, download_start, download_start_cost, download_start_rate, 
+    download_finish, download_finish_cost, download_finish_rate, click_install, install_finish, 
+    install_finish_cost, install_finish_rate, active, active_cost, active_rate, register, 
+    active_register_cost, active_register_rate, active_pay_amount, next_day_open, next_day_open_cost, 
+    next_day_open_rate, attribution_next_day_open_cnt, attribution_next_day_open_cost, 
+    attribution_next_day_open_rate, game_addiction, game_addiction_cost, game_addiction_rate, 
+    pay_count, active_pay_cost, active_pay_rate, loan_completion, loan_completion_cost, 
+    loan_completion_rate, pre_loan_credit, pre_loan_credit_cost, loan_credit, loan_credit_cost, 
+    loan_credit_rate, in_app_uv, in_app_detail_uv, in_app_cart, in_app_pay, in_app_order, 
+    attribution_game_pay_7d_count, attribution_game_pay_7d_cost, attribution_active_pay_7d_per_count, 
+    game_pay_cost, game_pay_count, phone, form, map_search, button, view, download, qq, 
+    lottery, vote, message, redirect, shopping, consult, wechat, phone_confirm, phone_connect, 
+    consult_effective, coupon, coupon_single_page, redirect_to_shop, poi_collect, poi_address_click, 
+    luban_order_cnt, luban_order_stat_amount, luban_order_roi, luban_live_enter_cnt, 
+    live_watch_one_minute_count, luban_live_follow_cnt, live_fans_club_join_cnt, luban_live_comment_cnt, 
+    luban_live_share_cnt, luban_live_gift_cnt, luban_live_gift_amount, luban_live_slidecart_click_cnt, 
+    luban_live_click_product_cnt, luban_live_pay_order_count, luban_live_pay_order_stat_cost, 
+    wechat_login_count, attribution_wechat_login_30d_count, wechat_login_cost, attribution_wechat_login_30d_cost, 
+    wechat_first_pay_count, attribution_wechat_first_pay_30d_count, wechat_first_pay_cost, 
+    attribution_wechat_first_pay_30d_cost, wechat_first_pay_rate, attribution_wechat_first_pay_30d_rate, 
+    wechat_pay_amount, attribution_wechat_pay_30d_amount, attribution_wechat_pay_30d_roi, 
+    phone_effective, total_play, valid_play, valid_play_cost, valid_play_rate, play_25_feed_break, 
+    play_50_feed_break, play_75_feed_break, play_100_feed_break, average_play_time_per_play, 
+    play_over_rate, wifi_play_rate, wifi_play, play_duration_sum, advanced_creative_phone_click, 
+    advanced_creative_counsel_click, advanced_creative_form_click, advanced_creative_coupon_addition, 
+    advanced_creative_form_submit, card_show, share, comment, like, follow, home_visited, 
+    ies_challenge_click, ies_music_click, location_click, message_action, click_landing_page, 
+    click_shopwindow, click_website, click_download, click_call_dy, cpc, cpm, cpa, interact_per_cost, 
+    convert_show_rate, play_duration_10s_rate, play_50_feed_break_rate, play_25_feed_break_rate, 
+    play_duration_5s_rate, play_duration_2s_rate, average_play_progress, play_100_feed_break_rate, 
+    play_duration_3s_rate, play_75_feed_break_rate, play_duration, play_duration_3s, 
+    play_duration_2s, play_duration_10s, average_video_play, avg_rank, submit_certification_count, 
+    approval_count, first_order_count, first_rental_order_count, commute_first_pay_count
+  </sql>
+
+    <insert id="insert" parameterType="cn.com.ctop.job.bytedance.data.entity.BytedanceMaterialReportDaily">
+        replace into bytedance_material_report_daily (advertiser_id, material_id, image_mode,
+        inventory, stat_datetime, cost,
+        `show`, avg_show_cost, click,
+        avg_click_cost, ctr, `convert`,
+        convert_cost, convert_rate, deep_convert,
+        deep_convert_cost, deep_convert_rate, attribution_convert,
+        attribution_convert_cost, attribution_deep_convert,
+        attribution_deep_convert_cost, download_start,
+        download_start_cost, download_start_rate, download_finish,
+        download_finish_cost, download_finish_rate,
+        click_install, install_finish, install_finish_cost,
+        install_finish_rate, active, active_cost,
+        active_rate, register, active_register_cost,
+        active_register_rate, active_pay_amount, next_day_open,
+        next_day_open_cost, next_day_open_rate, attribution_next_day_open_cnt,
+        attribution_next_day_open_cost, attribution_next_day_open_rate,
+        game_addiction, game_addiction_cost, game_addiction_rate,
+        pay_count, active_pay_cost, active_pay_rate,
+        loan_completion, loan_completion_cost, loan_completion_rate,
+        pre_loan_credit, pre_loan_credit_cost, loan_credit,
+        loan_credit_cost, loan_credit_rate, in_app_uv,
+        in_app_detail_uv, in_app_cart, in_app_pay,
+        in_app_order, attribution_game_pay_7d_count,
+        attribution_game_pay_7d_cost, attribution_active_pay_7d_per_count,
+        game_pay_cost, game_pay_count, phone,
+        form, map_search, button,
+        `view`, download, qq,
+        lottery, vote, message,
+        redirect, shopping, consult,
+        wechat, phone_confirm, phone_connect,
+        consult_effective, coupon, coupon_single_page,
+        redirect_to_shop, poi_collect, poi_address_click,
+        luban_order_cnt, luban_order_stat_amount, luban_order_roi,
+        luban_live_enter_cnt, live_watch_one_minute_count,
+        luban_live_follow_cnt, live_fans_club_join_cnt,
+        luban_live_comment_cnt, luban_live_share_cnt,
+        luban_live_gift_cnt, luban_live_gift_amount,
+        luban_live_slidecart_click_cnt, luban_live_click_product_cnt,
+        luban_live_pay_order_count, luban_live_pay_order_stat_cost,
+        wechat_login_count, attribution_wechat_login_30d_count,
+        wechat_login_cost, attribution_wechat_login_30d_cost,
+        wechat_first_pay_count, attribution_wechat_first_pay_30d_count,
+        wechat_first_pay_cost, attribution_wechat_first_pay_30d_cost,
+        wechat_first_pay_rate, attribution_wechat_first_pay_30d_rate,
+        wechat_pay_amount, attribution_wechat_pay_30d_amount,
+        attribution_wechat_pay_30d_roi, phone_effective,
+        total_play, valid_play, valid_play_cost,
+        valid_play_rate, play_25_feed_break, play_50_feed_break,
+        play_75_feed_break, play_100_feed_break, average_play_time_per_play,
+        play_over_rate, wifi_play_rate, wifi_play,
+        play_duration_sum, advanced_creative_phone_click,
+        advanced_creative_counsel_click, advanced_creative_form_click,
+        advanced_creative_coupon_addition, advanced_creative_form_submit,
+        card_show, `share`, `comment`,
+        `like`, follow, home_visited,
+        ies_challenge_click, ies_music_click, location_click,
+        message_action, click_landing_page, click_shopwindow,
+        click_website, click_download, click_call_dy,
+        cpc, cpm, cpa, interact_per_cost,
+        convert_show_rate, play_duration_10s_rate, play_50_feed_break_rate,
+        play_25_feed_break_rate, play_duration_5s_rate,
+        play_duration_2s_rate, average_play_progress,
+        play_100_feed_break_rate, play_duration_3s_rate,
+        play_75_feed_break_rate, play_duration, play_duration_3s,
+        play_duration_2s, play_duration_10s, average_video_play,
+        avg_rank, submit_certification_count, approval_count,
+        first_order_count, first_rental_order_count,
+        commute_first_pay_count)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.advertiserId,jdbcType=BIGINT},
+            #{item.materialId,jdbcType=BIGINT},
+            #{item.imageMode,jdbcType=VARCHAR},
+            #{item.inventory,jdbcType=VARCHAR},
+            #{item.statDatetime,jdbcType=INTEGER},
+            #{item.cost,jdbcType=DECIMAL},
+            #{item.show,jdbcType=INTEGER},
+            #{item.avgShowCost,jdbcType=DECIMAL},
+            #{item.click,jdbcType=INTEGER},
+            #{item.avgClickCost,jdbcType=DECIMAL},
+            #{item.ctr,jdbcType=DECIMAL},
+            #{item.convert,jdbcType=INTEGER},
+            #{item.convertCost,jdbcType=DECIMAL},
+            #{item.convertRate,jdbcType=DECIMAL},
+            #{item.deepConvert,jdbcType=INTEGER},
+            #{item.deepConvertCost,jdbcType=DECIMAL},
+            #{item.deepConvertRate,jdbcType=DECIMAL},
+            #{item.attributionConvert,jdbcType=INTEGER},
+            #{item.attributionConvertCost,jdbcType=DECIMAL},
+            #{item.attributionDeepConvert,jdbcType=INTEGER},
+            #{item.attributionDeepConvertCost,jdbcType=DECIMAL},
+            #{item.downloadStart,jdbcType=INTEGER},
+            #{item.downloadStartCost,jdbcType=DECIMAL},
+            #{item.downloadStartRate,jdbcType=DECIMAL},
+            #{item.downloadFinish,jdbcType=INTEGER},
+            #{item.downloadFinishCost,jdbcType=DECIMAL},
+            #{item.downloadFinishRate,jdbcType=DECIMAL},
+            #{item.clickInstall,jdbcType=INTEGER},
+            #{item.installFinish,jdbcType=INTEGER},
+            #{item.installFinishCost,jdbcType=DECIMAL},
+            #{item.installFinishRate,jdbcType=DECIMAL},
+            #{item.active,jdbcType=INTEGER},
+            #{item.activeCost,jdbcType=DECIMAL},
+            #{item.activeRate,jdbcType=DECIMAL},
+            #{item.register,jdbcType=INTEGER},
+            #{item.activeRegisterCost,jdbcType=DECIMAL},
+            #{item.activeRegisterRate,jdbcType=DECIMAL},
+            #{item.activePayAmount,jdbcType=DECIMAL},
+            #{item.nextDayOpen,jdbcType=INTEGER},
+            #{item.nextDayOpenCost,jdbcType=DECIMAL},
+            #{item.nextDayOpenRate,jdbcType=DECIMAL},
+            #{item.attributionNextDayOpenCnt,jdbcType=INTEGER},
+            #{item.attributionNextDayOpenCost,jdbcType=DECIMAL},
+            #{item.attributionNextDayOpenRate,jdbcType=DECIMAL},
+            #{item.gameAddiction,jdbcType=INTEGER},
+            #{item.gameAddictionCost,jdbcType=DECIMAL},
+            #{item.gameAddictionRate,jdbcType=DECIMAL},
+            #{item.payCount,jdbcType=INTEGER},
+            #{item.activePayCost,jdbcType=DECIMAL},
+            #{item.activePayRate,jdbcType=DECIMAL},
+            #{item.loanCompletion,jdbcType=INTEGER},
+            #{item.loanCompletionCost,jdbcType=DECIMAL},
+            #{item.loanCompletionRate,jdbcType=DECIMAL},
+            #{item.preLoanCredit,jdbcType=INTEGER},
+            #{item.preLoanCreditCost,jdbcType=DECIMAL},
+            #{item.loanCredit,jdbcType=INTEGER},
+            #{item.loanCreditCost,jdbcType=DECIMAL},
+            #{item.loanCreditRate,jdbcType=DECIMAL},
+            #{item.inAppUv,jdbcType=INTEGER},
+            #{item.inAppDetailUv,jdbcType=INTEGER},
+            #{item.inAppCart,jdbcType=INTEGER},
+            #{item.inAppPay,jdbcType=INTEGER},
+            #{item.inAppOrder,jdbcType=INTEGER},
+            #{item.attributionGamePay7dCount,jdbcType=INTEGER},
+            #{item.attributionGamePay7dCost,jdbcType=DECIMAL},
+            #{item.attributionActivePay7dPerCount,jdbcType=INTEGER},
+            #{item.gamePayCost,jdbcType=INTEGER},
+            #{item.gamePayCount,jdbcType=INTEGER},
+            #{item.phone,jdbcType=INTEGER},
+            #{item.form,jdbcType=INTEGER},
+            #{item.mapSearch,jdbcType=INTEGER},
+            #{item.button,jdbcType=INTEGER},
+            #{item.view,jdbcType=INTEGER},
+            #{item.download,jdbcType=INTEGER},
+            #{item.qq,jdbcType=INTEGER},
+            #{item.lottery,jdbcType=INTEGER},
+            #{item.vote,jdbcType=INTEGER},
+            #{item.message,jdbcType=INTEGER},
+            #{item.redirect,jdbcType=INTEGER},
+            #{item.shopping,jdbcType=INTEGER},
+            #{item.consult,jdbcType=INTEGER},
+            #{item.wechat,jdbcType=INTEGER}, #{item.phoneConfirm,jdbcType=INTEGER},
+            #{item.phoneConnect,jdbcType=INTEGER},
+            #{item.consultEffective,jdbcType=INTEGER}, #{item.coupon,jdbcType=INTEGER},
+            #{item.couponSinglePage,jdbcType=INTEGER},
+            #{item.redirectToShop,jdbcType=INTEGER}, #{item.poiCollect,jdbcType=INTEGER},
+            #{item.poiAddressClick,jdbcType=INTEGER},
+            #{item.lubanOrderCnt,jdbcType=INTEGER}, #{item.lubanOrderStatAmount,jdbcType=DECIMAL},
+            #{item.lubanOrderRoi,jdbcType=DECIMAL},
+            #{item.lubanLiveEnterCnt,jdbcType=INTEGER}, #{item.liveWatchOneMinuteCount,jdbcType=INTEGER},
+            #{item.lubanLiveFollowCnt,jdbcType=INTEGER}, #{item.liveFansClubJoinCnt,jdbcType=INTEGER},
+            #{item.lubanLiveCommentCnt,jdbcType=INTEGER}, #{item.lubanLiveShareCnt,jdbcType=INTEGER},
+            #{item.lubanLiveGiftCnt,jdbcType=INTEGER}, #{item.lubanLiveGiftAmount,jdbcType=DECIMAL},
+            #{item.lubanLiveSlidecartClickCnt,jdbcType=INTEGER}, #{item.lubanLiveClickProductCnt,jdbcType=INTEGER},
+            #{item.lubanLivePayOrderCount,jdbcType=INTEGER}, #{item.lubanLivePayOrderStatCost,jdbcType=DECIMAL},
+            #{item.wechatLoginCount,jdbcType=INTEGER}, #{item.attributionWechatLogin30dCount,jdbcType=INTEGER},
+            #{item.wechatLoginCost,jdbcType=DECIMAL}, #{item.attributionWechatLogin30dCost,jdbcType=DECIMAL},
+            #{item.wechatFirstPayCount,jdbcType=INTEGER}, #{item.attributionWechatFirstPay30dCount,jdbcType=INTEGER},
+            #{item.wechatFirstPayCost,jdbcType=DECIMAL}, #{item.attributionWechatFirstPay30dCost,jdbcType=DECIMAL},
+            #{item.wechatFirstPayRate,jdbcType=DECIMAL}, #{item.attributionWechatFirstPay30dRate,jdbcType=DECIMAL},
+            #{item.wechatPayAmount,jdbcType=DECIMAL}, #{item.attributionWechatPay30dAmount,jdbcType=DECIMAL},
+            #{item.attributionWechatPay30dRoi,jdbcType=DECIMAL}, #{item.phoneEffective,jdbcType=INTEGER},
+            #{item.totalPlay,jdbcType=INTEGER}, #{item.validPlay,jdbcType=INTEGER},
+            #{item.validPlayCost,jdbcType=DECIMAL},
+            #{item.validPlayRate,jdbcType=DECIMAL}, #{item.play25FeedBreak,jdbcType=INTEGER},
+            #{item.play50FeedBreak,jdbcType=INTEGER},
+            #{item.play75FeedBreak,jdbcType=INTEGER}, #{item.play100FeedBreak,jdbcType=INTEGER},
+            #{item.averagePlayTimePerPlay,jdbcType=DECIMAL},
+            #{item.playOverRate,jdbcType=DECIMAL}, #{item.wifiPlayRate,jdbcType=DECIMAL},
+            #{item.wifiPlay,jdbcType=INTEGER},
+            #{item.playDurationSum,jdbcType=BIGINT}, #{item.advancedCreativePhoneClick,jdbcType=INTEGER},
+            #{item.advancedCreativeCounselClick,jdbcType=INTEGER}, #{item.advancedCreativeFormClick,jdbcType=INTEGER},
+            #{item.advancedCreativeCouponAddition,jdbcType=INTEGER},
+            #{item.advancedCreativeFormSubmit,jdbcType=INTEGER},
+            #{item.cardShow,jdbcType=INTEGER}, #{item.share,jdbcType=INTEGER}, #{item.comment,jdbcType=INTEGER},
+            #{item.like,jdbcType=INTEGER}, #{item.follow,jdbcType=INTEGER}, #{item.homeVisited,jdbcType=INTEGER},
+            #{item.iesChallengeClick,jdbcType=INTEGER}, #{item.iesMusicClick,jdbcType=INTEGER},
+            #{item.locationClick,jdbcType=INTEGER},
+            #{item.messageAction,jdbcType=INTEGER}, #{item.clickLandingPage,jdbcType=INTEGER},
+            #{item.clickShopwindow,jdbcType=INTEGER},
+            #{item.clickWebsite,jdbcType=INTEGER}, #{item.clickDownload,jdbcType=INTEGER},
+            #{item.clickCallDy,jdbcType=INTEGER},
+            #{item.cpc,jdbcType=DECIMAL}, #{item.cpm,jdbcType=DECIMAL}, #{item.cpa,jdbcType=DECIMAL},
+            #{item.interactPerCost,jdbcType=DECIMAL},
+            #{item.convertShowRate,jdbcType=DECIMAL}, #{item.playDuration10sRate,jdbcType=DECIMAL},
+            #{item.play50FeedBreakRate,jdbcType=DECIMAL},
+            #{item.play25FeedBreakRate,jdbcType=DECIMAL}, #{item.playDuration5sRate,jdbcType=DECIMAL},
+            #{item.playDuration2sRate,jdbcType=DECIMAL}, #{item.averagePlayProgress,jdbcType=DECIMAL},
+            #{item.play100FeedBreakRate,jdbcType=DECIMAL}, #{item.playDuration3sRate,jdbcType=DECIMAL},
+            #{item.play75FeedBreakRate,jdbcType=DECIMAL}, #{item.playDuration,jdbcType=DECIMAL},
+            #{item.playDuration3s,jdbcType=DECIMAL},
+            #{item.playDuration2s,jdbcType=DECIMAL}, #{item.playDuration10s,jdbcType=DECIMAL},
+            #{item.averageVideoPlay,jdbcType=DECIMAL},
+            #{item.avgRank,jdbcType=DECIMAL}, #{item.submitCertificationCount,jdbcType=INTEGER},
+            #{item.approvalCount,jdbcType=INTEGER},
+            #{item.firstOrderCount,jdbcType=INTEGER}, #{item.firstRentalOrderCount,jdbcType=INTEGER},
+            #{item.commuteFirstPayCount,jdbcType=INTEGER})
+        </foreach>
+    </insert>
+
+</mapper>

+ 300 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceNewMaterialReportMapper.xml

@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceNewMaterialReportMapper">
+
+
+    <!-- 头条-新增体验版素材日报 视频-->
+    <insert id="replaceBytedanceNewMaterialVideoDaily" parameterType="cn.com.ctop.job.bytedance.data.entity.ByteDanceNewMaterialReport">
+        REPLACE bytedance_material_video_daily (
+        advertiser_id,
+        material_id,
+        stat_cost,
+        stat_datetime,
+        show_cnt,
+        cpm_platform,
+        click_cnt,
+        ctr,
+        cpc_platform,
+        convert_cnt,
+        conversion_cost,
+        conversion_rate,
+        deep_convert_cnt,
+        deep_convert_cost,
+        deep_convert_rate,
+        click_start_cnt,
+        click_start_cost,
+        click_start_rate,
+        download_finish_cnt,
+        download_finish_cost,
+        download_finish_rate,
+        install_finish_cnt,
+        install_finish_cost,
+        install_finish_rate,
+        active,
+        active_cost,
+        active_rate,
+        active_register,
+        active_register_cost,
+        active_register_rate,
+        game_addiction,
+        game_addiction_cost,
+        game_addiction_rate,
+        attribution_next_day_open_cnt,
+        attribution_next_day_open_cost,
+        attribution_next_day_open_rate,
+        next_day_open,
+        active_pay,
+        active_pay_cost,
+        active_pay_rate,
+        game_pay_count,
+        game_pay_cost,
+        attribution_game_pay_7d_count,
+        attribution_game_pay_7d_cost,
+        in_app_uv,
+        in_app_detail_uv,
+        in_app_cart,
+        in_app_pay,
+        in_app_order,
+        attribution_game_in_app_ltv_1day,
+        attribution_game_in_app_ltv_2days,
+        attribution_game_in_app_ltv_3days,
+        attribution_game_in_app_ltv_4days,
+        attribution_game_in_app_ltv_5days,
+        attribution_game_in_app_ltv_6days,
+        attribution_game_in_app_ltv_7days,
+        attribution_game_in_app_ltv_8days,
+        attribution_game_in_app_roi_1day,
+        attribution_game_in_app_roi_2days,
+        attribution_game_in_app_roi_3days,
+        attribution_game_in_app_roi_4days,
+        attribution_game_in_app_roi_5days,
+        attribution_game_in_app_roi_6days,
+        attribution_game_in_app_roi_7days,
+        attribution_game_in_app_roi_8days,
+        active_pay_intra_day_count,
+        active_pay_intra_day_cost,
+        active_pay_intra_day_rate
+        )
+        VALUES
+        <foreach collection= "list" item = "item" separator = "," >
+        (
+        #{item.advertiserId},
+        #{item.materialId},
+        #{item.statCost},
+        #{item.statDatetime},
+        #{item.showCnt},
+        #{item.cpmPlatform},
+        #{item.clickCnt},
+        #{item.ctr},
+        #{item.cpcPlatform},
+        #{item.convertCnt},
+        #{item.conversionCost},
+        #{item.conversionRate},
+        #{item.deepConvertCnt},
+        #{item.deepConvertCost},
+        #{item.deepConvertRate},
+        #{item.clickStartCnt},
+        #{item.clickStartCost},
+        #{item.clickStartRate},
+        #{item.downloadFinishCnt},
+        #{item.downloadFinishCost},
+        #{item.downloadFinishRate},
+        #{item.installFinishCnt},
+        #{item.installFinishCost},
+        #{item.installFinishRate},
+        #{item.active},
+        #{item.activeCost},
+        #{item.activeRate},
+        #{item.activeRegister},
+        #{item.activeRegisterCost},
+        #{item.activeRegisterRate},
+        #{item.gameAddiction},
+        #{item.gameAddictionCost},
+        #{item.gameAddictionRate},
+        #{item.attributionNextDayOpenCnt},
+        #{item.attributionNextDayOpenCost},
+        #{item.attributionNextDayOpenRate},
+        #{item.nextDayOpen},
+        #{item.activePay},
+        #{item.activePayCost},
+        #{item.activePayRate},
+        #{item.gamePayCount},
+        #{item.gamePayCost},
+        #{item.attributionGamePay7dCount},
+        #{item.attributionGamePay7dCost},
+        #{item.inAppUv},
+        #{item.inAppDetailUv},
+        #{item.inAppCart},
+        #{item.inAppPay},
+        #{item.inAppOrder},
+        #{item.attributionGameInAppLtv1day},
+        #{item.attributionGameInAppLtv2days},
+        #{item.attributionGameInAppLtv3days},
+        #{item.attributionGameInAppLtv4days},
+        #{item.attributionGameInAppLtv5days},
+        #{item.attributionGameInAppLtv6days},
+        #{item.attributionGameInAppLtv7days},
+        #{item.attributionGameInAppLtv8days},
+        #{item.attributionGameInAppRoi1day},
+        #{item.attributionGameInAppRoi2days},
+        #{item.attributionGameInAppRoi3days},
+        #{item.attributionGameInAppRoi4days},
+        #{item.attributionGameInAppRoi5days},
+        #{item.attributionGameInAppRoi6days},
+        #{item.attributionGameInAppRoi7days},
+        #{item.attributionGameInAppRoi8days},
+        #{item.activePayIntraDayCount},
+        #{item.activePayIntraDayCost},
+        #{item.activePayIntraDayRate}
+
+        )
+         </foreach>
+    </insert>
+
+    <!-- 头条-新增体验版素材日报 图片-->
+    <insert id="replaceBytedanceNewMaterialImageDaily" parameterType="cn.com.ctop.job.bytedance.data.entity.ByteDanceNewMaterialReport">
+        REPLACE bytedance_material_image_daily (
+        advertiser_id,
+        material_id,
+        stat_cost,
+        stat_datetime,
+        show_cnt,
+        cpm_platform,
+        click_cnt,
+        ctr,
+        cpc_platform,
+        convert_cnt,
+        conversion_cost,
+        conversion_rate,
+        deep_convert_cnt,
+        deep_convert_cost,
+        deep_convert_rate,
+        click_start_cnt,
+        click_start_cost,
+        click_start_rate,
+        download_finish_cnt,
+        download_finish_cost,
+        download_finish_rate,
+        install_finish_cnt,
+        install_finish_cost,
+        install_finish_rate,
+        active,
+        active_cost,
+        active_rate,
+        active_register,
+        active_register_cost,
+        active_register_rate,
+        game_addiction,
+        game_addiction_cost,
+        game_addiction_rate,
+        attribution_next_day_open_cnt,
+        attribution_next_day_open_cost,
+        attribution_next_day_open_rate,
+        next_day_open,
+        active_pay,
+        active_pay_cost,
+        active_pay_rate,
+        game_pay_count,
+        game_pay_cost,
+        attribution_game_pay_7d_count,
+        attribution_game_pay_7d_cost,
+        in_app_uv,
+        in_app_detail_uv,
+        in_app_cart,
+        in_app_pay,
+        in_app_order,
+        attribution_game_in_app_ltv_1day,
+        attribution_game_in_app_ltv_2days,
+        attribution_game_in_app_ltv_3days,
+        attribution_game_in_app_ltv_4days,
+        attribution_game_in_app_ltv_5days,
+        attribution_game_in_app_ltv_6days,
+        attribution_game_in_app_ltv_7days,
+        attribution_game_in_app_ltv_8days,
+        attribution_game_in_app_roi_1day,
+        attribution_game_in_app_roi_2days,
+        attribution_game_in_app_roi_3days,
+        attribution_game_in_app_roi_4days,
+        attribution_game_in_app_roi_5days,
+        attribution_game_in_app_roi_6days,
+        attribution_game_in_app_roi_7days,
+        attribution_game_in_app_roi_8days,
+        active_pay_intra_day_count,
+        active_pay_intra_day_cost,
+        active_pay_intra_day_rate
+        )
+        VALUES
+        <foreach collection= "list" item = "item" separator = "," >
+        (
+        #{item.advertiserId},
+        #{item.materialId},
+        #{item.statCost},
+        #{item.statDatetime},
+        #{item.showCnt},
+        #{item.cpmPlatform},
+        #{item.clickCnt},
+        #{item.ctr},
+        #{item.cpcPlatform},
+        #{item.convertCnt},
+        #{item.conversionCost},
+        #{item.conversionRate},
+        #{item.deepConvertCnt},
+        #{item.deepConvertCost},
+        #{item.deepConvertRate},
+        #{item.clickStartCnt},
+        #{item.clickStartCost},
+        #{item.clickStartRate},
+        #{item.downloadFinishCnt},
+        #{item.downloadFinishCost},
+        #{item.downloadFinishRate},
+        #{item.installFinishCnt},
+        #{item.installFinishCost},
+        #{item.installFinishRate},
+        #{item.active},
+        #{item.activeCost},
+        #{item.activeRate},
+        #{item.activeRegister},
+        #{item.activeRegisterCost},
+        #{item.activeRegisterRate},
+        #{item.gameAddiction},
+        #{item.gameAddictionCost},
+        #{item.gameAddictionRate},
+        #{item.attributionNextDayOpenCnt},
+        #{item.attributionNextDayOpenCost},
+        #{item.attributionNextDayOpenRate},
+        #{item.nextDayOpen},
+        #{item.activePay},
+        #{item.activePayCost},
+        #{item.activePayRate},
+        #{item.gamePayCount},
+        #{item.gamePayCost},
+        #{item.attributionGamePay7dCount},
+        #{item.attributionGamePay7dCost},
+        #{item.inAppUv},
+        #{item.inAppDetailUv},
+        #{item.inAppCart},
+        #{item.inAppPay},
+        #{item.inAppOrder},
+        #{item.attributionGameInAppLtv1day},
+        #{item.attributionGameInAppLtv2days},
+        #{item.attributionGameInAppLtv3days},
+        #{item.attributionGameInAppLtv4days},
+        #{item.attributionGameInAppLtv5days},
+        #{item.attributionGameInAppLtv6days},
+        #{item.attributionGameInAppLtv7days},
+        #{item.attributionGameInAppLtv8days},
+        #{item.attributionGameInAppRoi1day},
+        #{item.attributionGameInAppRoi2days},
+        #{item.attributionGameInAppRoi3days},
+        #{item.attributionGameInAppRoi4days},
+        #{item.attributionGameInAppRoi5days},
+        #{item.attributionGameInAppRoi6days},
+        #{item.attributionGameInAppRoi7days},
+        #{item.attributionGameInAppRoi8days},
+        #{item.activePayIntraDayCount},
+        #{item.activePayIntraDayCost},
+        #{item.activePayIntraDayRate})
+         </foreach>
+    </insert>
+
+</mapper>

+ 163 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedanceProjectMapper.xml

@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedanceProjectMapper">
+
+
+    <insert id="replaceProjectList">
+        REPLACE INTO bytedance_cdp_project (
+        project_id,
+        `name`,
+        advertiser_id,
+        status,
+        package_name,
+        project_create_time,
+        project_modify_time,
+        pricing,
+        landing_type,
+        ad_type,
+        audience_extend,
+        opt_status,
+        app_promotion_type,
+        delivery_mode,
+        search_bid_ratio,
+        download_url,
+        download_mode,
+        download_type,
+        app_name,
+        feed_delivery_search,
+        marketing_goal,
+        keywords,
+        delivery_setting,
+        dpa_product_target,
+        optimize_goal,
+        audience,
+        related_product,
+        delivery_range,
+        track_url_setting,
+        internal_advertiser_info
+        )
+        VALUES
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.projectId},
+            #{item.name},
+            #{item.advertiserId},
+            #{item.status},
+            #{item.packageName},
+            #{item.projectCreateTime},
+            #{item.projectModifyTime},
+            #{item.pricing},
+            #{item.landingType},
+            #{item.adType},
+            #{item.audienceExtend},
+            #{item.optStatus},
+            #{item.appPromotionType},
+            #{item.deliveryMode},
+            #{item.searchBidRatio},
+            #{item.downloadUrl},
+            #{item.downloadMode},
+            #{item.downloadType},
+            #{item.appName},
+            #{item.feedDeliverySearch},
+            #{item.marketingGoal},
+            #{item.keywords},
+            #{item.deliverySetting},
+            #{item.dpaProductTarget},
+            #{item.optimizeGoal},
+            #{item.audience},
+            #{item.relatedProduct},
+            #{item.deliveryRange},
+            #{item.trackUrlSetting},
+            #{item.internalAdvertiserInfo}
+            )
+        </foreach>
+    </insert>
+
+    <select id="getProjectId" resultType="Long">
+        SELECT project_id
+        FROM `jeecg-boot`.ctop_user_allocation
+        WHERE account_id = #{accountId}
+    </select>
+
+    <!-- 获取用户微信id -->
+    <select id="getWChatIdsByAccountId" resultType="com.alibaba.fastjson.JSONObject">
+        select wexin_id, corp_id, wexin_name
+        from `jeecg-boot`.ctop_corp_wexin_user
+        where user_id = (select ctop_user_allocation.user_id
+                         from `jeecg-boot`.ctop_user_allocation
+                         where account_id = #{accountId} limit 1)
+        union all
+        select wexin_id, corp_id, wexin_name
+        from `jeecg-boot`.ctop_corp_wexin_user
+        where user_id = (select leader_id
+                         from `jeecg-boot`.sys_user
+                         where id = (SELECT ctop_user_allocation.user_id
+                                     FROM `jeecg-boot`.ctop_user_allocation
+                                     WHERE account_id = #{accountId}
+            LIMIT 1))
+        union all
+        select wexin_id, corp_id, wexin_name
+        from `jeecg-boot`.ctop_corp_wexin_user
+        where user_id = 'b07f2bdd0f914f1dab2b4e841764911f';
+    </select>
+
+    <insert id="insertSendRecord">
+        insert
+        into `jeecg-boot`.ctop_media_send_alarm_record
+        (account_id,
+         plan_id,
+         project_id,
+         user_id,
+         alarm_detail,
+         media_type)
+        values (#{accountId},
+                #{planId},
+                #{projectId},
+                #{userId},
+                #{alarmDetail},
+                #{mediaType})
+    </insert>
+
+    <insert id="insertSendAccountId">
+        replace
+        into `jeecg-boot`.bytedance_refusal_send
+        (account_id,ad_id,
+         counts,
+         stat_date)
+        values (
+        #{accountId},
+        #{adId},
+        #{counts},
+        (DATE_FORMAT(now(),'%Y%m%d-%H'))
+        )
+    </insert>
+
+
+    <select id="getBytedanceRefusalSend" resultType="Long">
+        SELECT ad_id
+        FROM `jeecg-boot`.bytedance_refusal_send
+        WHERE stat_date = DATE_FORMAT(now(), '%Y%m%d-%H')
+          AND account_id =#{accountId}
+          AND counts >= 2
+    </select>
+
+    <select id="getSpecialProject" resultType="Long">
+        SELECT IFNULL(project_id,-1)
+        FROM `jeecg-boot`.bytedance_refusal_send
+        WHERE flag = 1
+        UNION
+        SELECT IFNULL(account_id,-1)
+        FROM `jeecg-boot`.bytedance_refusal_send
+        WHERE flag = 1
+    </select>
+
+    <select id="getrefusalAccountCounts" resultType="Integer">
+        SELECT ifNUll(counts, 0)
+        FROM `jeecg-boot`.bytedance_refusal_send
+        WHERE account_id = #{accountId}
+          AND ad_id = #{adId}
+          AND stat_date = DATE_FORMAT(now(), '%Y%m%d-%H')
+    </select>
+
+
+</mapper>

+ 47 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/BytedancePromotionListMapper.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.ctop.job.bytedance.data.mapper.BytedancePromotionListMapper">
+
+
+    <insert id="replacePromotionList">
+        REPLACE INTO bytedance_promotion_list (
+        advertiser_id,
+        project_id,
+        promotion_id,
+        promotion_name,
+        promotion_create_time,
+        promotion_modify_time,
+        STATUS,
+        opt_status,
+        promotion_materials,
+        source,
+        material_score_info,
+        deep_cpabid,
+        roi_goal,
+        cpa_bid,
+        budget
+        )
+        VALUES
+        <foreach collection = "list" item = "item" separator="," >
+        (#{item.advertiserId},
+        #{item.projectId},
+        #{item.promotionId},
+        #{item.promotionName},
+        #{item.promotionCreateTime},
+        #{item.promotionModifyTime},
+        #{item.status},
+        #{item.optStatus},
+        #{item.promotionMaterials},
+        #{item.source},
+        #{item.materialScoreInfo},
+        #{item.deepCpabid},
+        #{item.roiGoal},
+        #{item.cpaBid},
+        #{item.budget}
+        )
+        </foreach>
+    </insert>
+
+
+
+</mapper>

+ 0 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/OauthTokenMapper.xml


Some files were not shown because too many files changed in this diff