Init_15_Store.groovy 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import com.dderp.business.dao.StoreDao
  2. import com.dderp.common.api.NoSqlKeysService
  3. import com.dderp.common.datas.ESKeys
  4. import com.dderp.common.datas.RedisKeys
  5. import com.dderp.common.entity.store.*
  6. import com.dySweetFishPlugin.elasticsearch.ESClient
  7. import com.dySweetFishPlugin.redis.RedisService
  8. import com.sweetfish.convert.json.JsonConvert
  9. import com.sweetfish.source.PageFlipper
  10. import com.sweetfish.util.Utility
  11. import org.apache.logging.log4j.Logger
  12. import org.elasticsearch.action.bulk.BulkRequestBuilder
  13. import org.elasticsearch.action.bulk.BulkResponse
  14. import org.elasticsearch.action.index.IndexRequestBuilder
  15. import org.elasticsearch.common.xcontent.XContentType
  16. import org.rex.RMap
  17. static def createRunnable(ESClient esClient, RedisService redisService, NoSqlKeysService keysService,
  18. StoreDao storeDao, Logger logger, JsonConvert jsonConvert, String dataSourceId, long supplierCode) {
  19. return {
  20. esClient.createIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_INDEX, supplierCode),
  21. ESKeys.INDEX_CONFIG,
  22. Utility.ofMap(ESKeys.ES_DELIVER_STORE_BRAND_TYPE, "storebrand.json"))
  23. esClient.createIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_INFO_INDEX, supplierCode),
  24. ESKeys.INDEX_CONFIG,
  25. Utility.ofMap(ESKeys.ES_DELIVER_STORE_INFO_TYPE, "storeinfo.json",
  26. ESKeys.ES_DELIVER_STORE_INVOICE_INFO_TYPE, "storeinvoiceinfo.json",
  27. ESKeys.ES_DELIVER_STORE_PLATFORM_TYPE, "storeplatform.json",
  28. ESKeys.ES_DELIVER_STORE_PLATFORM_REQUIRE_TYPE, "storeplatformrequire.json"))
  29. RMap params = new RMap()
  30. params.put("voidFlag", -1)
  31. Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
  32. List<StoreBrand> storeBrandList = storeDao.queryStoreBrandList(params, p, dataSourceId, supplierCode)
  33. if (!storeBrandList.isEmpty()) {
  34. BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
  35. storeBrandList.each { x ->
  36. IndexRequestBuilder indexRequest = esClient.getClient()
  37. .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_BRAND_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_BRAND_TYPE)
  38. .setId(String.valueOf(x.getId()))
  39. .setSource(jsonConvert.convertTo(x), XContentType.JSON)
  40. bulkRequest.add(indexRequest)
  41. }
  42. BulkResponse bulkResponse = bulkRequest.execute().actionGet()
  43. if (bulkResponse.hasFailures()) {
  44. logger.error("索引门店品牌档案出错:" + bulkResponse.buildFailureMessage())
  45. } else {
  46. logger.info("索引门店品牌档案,共" + storeBrandList.size() + "条记录")
  47. }
  48. }
  49. })
  50. Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
  51. List<StoreInfo> storeInfoList = storeDao.queryStoreInfoList(params, p, dataSourceId, supplierCode)
  52. if (!storeInfoList.isEmpty()) {
  53. BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
  54. storeInfoList.each { x ->
  55. IndexRequestBuilder indexRequest = esClient.getClient()
  56. .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_INFO_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_INFO_TYPE)
  57. .setId(String.valueOf(x.getId()))
  58. .setSource(jsonConvert.convertTo(x), XContentType.JSON)
  59. bulkRequest.add(indexRequest)
  60. }
  61. BulkResponse bulkResponse = bulkRequest.execute().actionGet()
  62. if (bulkResponse.hasFailures()) {
  63. logger.error("索引门店出错:" + bulkResponse.buildFailureMessage())
  64. } else {
  65. logger.info("索引门店,共" + storeInfoList.size() + "条记录")
  66. }
  67. }
  68. })
  69. Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
  70. List<StoreInvoiceInfo> storeInvoiceInfoList = storeDao.queryStoreInvoiceList(params, p, dataSourceId, supplierCode)
  71. if (!storeInvoiceInfoList.isEmpty()) {
  72. BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
  73. storeInvoiceInfoList.each { x ->
  74. IndexRequestBuilder indexRequest = esClient.getClient()
  75. .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_INFO_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_INVOICE_INFO_TYPE)
  76. .setId(String.valueOf(x.getId()))
  77. .setParent(String.valueOf(x.idStore))
  78. .setSource(jsonConvert.convertTo(x), XContentType.JSON)
  79. bulkRequest.add(indexRequest)
  80. }
  81. BulkResponse bulkResponse = bulkRequest.execute().actionGet()
  82. if (bulkResponse.hasFailures()) {
  83. logger.error("索引门店开票信息出错:" + bulkResponse.buildFailureMessage())
  84. } else {
  85. logger.info("索引门店开票信息,共" + storeInvoiceInfoList.size() + "条记录")
  86. }
  87. }
  88. })
  89. Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
  90. List<StorePlatform> storePlatformList = storeDao.queryStorePlatformList(params, p, dataSourceId, supplierCode)
  91. if (!storePlatformList.isEmpty()) {
  92. BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
  93. storePlatformList.each { x ->
  94. IndexRequestBuilder indexRequest = esClient.getClient()
  95. .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_INFO_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_PLATFORM_TYPE)
  96. .setParent(String.valueOf(x.idStore))
  97. .setId(String.valueOf(x.getId()))
  98. .setSource(jsonConvert.convertTo(x), XContentType.JSON)
  99. bulkRequest.add(indexRequest)
  100. }
  101. BulkResponse bulkResponse = bulkRequest.execute().actionGet()
  102. if (bulkResponse.hasFailures()) {
  103. logger.error("索引门店已开通平台出错:" + bulkResponse.buildFailureMessage())
  104. } else {
  105. logger.info("索引门店已开通平台,共" + storePlatformList.size() + "条记录")
  106. }
  107. }
  108. })
  109. Ignore_ExecPageFlipper.execute(1000, { PageFlipper p ->
  110. List<StorePlatformRequire> storePlatformRequireList = storeDao.queryStorePlatformRequireList(params, p, dataSourceId, supplierCode)
  111. if (!storePlatformRequireList.isEmpty()) {
  112. BulkRequestBuilder bulkRequest = esClient.getClient().prepareBulk()
  113. storePlatformRequireList.each { x ->
  114. IndexRequestBuilder indexRequest = esClient.getClient()
  115. .prepareIndex(keysService.getESKey(ESKeys.ES_DELIVER_STORE_INFO_INDEX, supplierCode), ESKeys.ES_DELIVER_STORE_PLATFORM_REQUIRE_TYPE)
  116. .setId(String.valueOf(x.getId()))
  117. .setParent(String.valueOf(x.idStorePlatform))
  118. .setSource(jsonConvert.convertTo(x), XContentType.JSON)
  119. bulkRequest.add(indexRequest)
  120. }
  121. BulkResponse bulkResponse = bulkRequest.execute().actionGet()
  122. if (bulkResponse.hasFailures()) {
  123. logger.error("索引门店已开通平台需求条件出错:" + bulkResponse.buildFailureMessage())
  124. } else {
  125. logger.info("索引门店已开通平台需求条件,共" + storePlatformRequireList.size() + "条记录")
  126. }
  127. }
  128. })
  129. } as Runnable
  130. }
  131. createRunnable(esClient, redisService, keysService, storeDao, logger, jsonConvert, dataSourceId, supplierCode)