diff --git a/src/main/java/com/kiisoo/ic/job/detail/CustomerDataJob.java b/src/main/java/com/kiisoo/ic/job/detail/CustomerDataJob.java index cb5c968..332e4c8 100644 --- a/src/main/java/com/kiisoo/ic/job/detail/CustomerDataJob.java +++ b/src/main/java/com/kiisoo/ic/job/detail/CustomerDataJob.java @@ -10,9 +10,11 @@ import com.lmax.disruptor.*; import com.lmax.disruptor.dsl.Disruptor; import com.lmax.disruptor.dsl.ProducerType; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.List; import java.util.concurrent.*; @@ -46,7 +48,7 @@ public class CustomerDataJob { private CustomerService customerService; - public void handle(){ + public void handle(String cpUserIds){ //创建线程池 ExecutorService executors = Executors.newFixedThreadPool(THREAD_NUMBERS); @@ -65,15 +67,26 @@ public class CustomerDataJob { disruptor.start(); - DetailDTOMessageEventProducer producer = new DetailDTOMessageEventProducer(ringBuffer, qwMailListManageService, customerService, poiStoreStaffDOMapper); - List privilageCpUserDOS = privilageCpUserDOMapper.selectList(null); int index =0; - for (PrivilageCpUserDO privilageCpUserDO : privilageCpUserDOS) { - Long storeId = privilageCpUserStoreDOMapper.selectOneByCpUserId(privilageCpUserDO.getCpUserId()); - producer.produceData(index,storeId,privilageCpUserDO.getCpUserId()); - index++; + DetailDTOMessageEventProducer producer = new DetailDTOMessageEventProducer(ringBuffer, qwMailListManageService, customerService, poiStoreStaffDOMapper); + if (StringUtils.isBlank(cpUserIds)){ + List privilageCpUserDOS = privilageCpUserDOMapper.selectList(null); + for (PrivilageCpUserDO privilageCpUserDO : privilageCpUserDOS) { + Long storeId = privilageCpUserStoreDOMapper.selectOneByCpUserId(privilageCpUserDO.getCpUserId()); + producer.produceData(index,storeId,privilageCpUserDO.getCpUserId()); + index++; + } + }else{ + String[] split = cpUserIds.split(","); + List cpUserIdList = Arrays.asList(split); + for (String cpUserId : cpUserIdList) { + Long storeId = privilageCpUserStoreDOMapper.selectOneByCpUserId(cpUserId); + producer.produceData(index,storeId,cpUserId); + index++; + } } + disruptor.shutdown(); } } diff --git a/src/main/java/com/kiisoo/ic/job/detail/SyncDetailJobController.java b/src/main/java/com/kiisoo/ic/job/detail/SyncDetailJobController.java index e672119..c378f8d 100644 --- a/src/main/java/com/kiisoo/ic/job/detail/SyncDetailJobController.java +++ b/src/main/java/com/kiisoo/ic/job/detail/SyncDetailJobController.java @@ -17,7 +17,15 @@ public class SyncDetailJobController { @GetMapping("/sync/customer") public void getCustomerInfo(){ try { - customerDataJob.handle(); + customerDataJob.handle(null); + }catch (Exception e){ + log.error("",e); + } + } + @GetMapping("/sync/customer/shop") + public void getCustomerInfo(@RequestParam("cpUserId")String cpUserIds){ + try { + customerDataJob.handle(cpUserIds); }catch (Exception e){ log.error("",e); }