diff --git a/services/ans/include/advanced_notification_service.h b/services/ans/include/advanced_notification_service.h index 7ed7f0e9918e9660cd015371868c8b959bd20c99..1873e8f3c6ac516ef9b14b7cffdb926f5bae93f5 100644 --- a/services/ans/include/advanced_notification_service.h +++ b/services/ans/include/advanced_notification_service.h @@ -1447,7 +1447,7 @@ private: std::shared_ptr permissonFilter_ = nullptr; std::shared_ptr notificationSlotFilter_ = nullptr; std::shared_ptr dialogManager_ = nullptr; - std::list> uniqueKeyList_; + std::list> uniqueKeyList_; std::list, uint64_t>> delayNotificationList_; std::mutex delayNotificationMutext_; static std::mutex doNotDisturbMutex_; diff --git a/services/ans/src/advanced_notification_publish_service.cpp b/services/ans/src/advanced_notification_publish_service.cpp index 957671badbe82972cb7cf03fc5b2048165d14d8e..fdebca3f9069b6cd0c433d06a73960fe602af4ba 100644 --- a/services/ans/src/advanced_notification_publish_service.cpp +++ b/services/ans/src/advanced_notification_publish_service.cpp @@ -2529,7 +2529,7 @@ ErrCode AdvancedNotificationService::DuplicateMsgControl(const sptr(now - (*iter).first).count() > SECONDS_IN_ONE_DAY) { + if (std::chrono::duration_cast(abs(now - (*iter).first)).count() > SECONDS_IN_ONE_DAY) { iter = uniqueKeyList_.erase(iter); } else { break; diff --git a/services/ans/test/unittest/advanced_notification_publish_service_test.cpp b/services/ans/test/unittest/advanced_notification_publish_service_test.cpp index 6512c10ee8252d3c5d0e1e77b1fd3f73459ea971..6d8b0aac1796ceb3862c6ab5b5a3666cb67fe93c 100644 --- a/services/ans/test/unittest/advanced_notification_publish_service_test.cpp +++ b/services/ans/test/unittest/advanced_notification_publish_service_test.cpp @@ -862,7 +862,7 @@ HWTEST_F(AnsPublishServiceTest, DuplicateMsgControl_00002, Function | SmallTest request->SetAppMessageId("test1"); auto uniqueKey = request->GenerateUniqueKey(); advancedNotificationService_->uniqueKeyList_.emplace_back( - std::make_pair(std::chrono::steady_clock::now(), uniqueKey)); + std::make_pair(std::chrono::system_clock::now(), uniqueKey)); auto ret = advancedNotificationService_->DuplicateMsgControl(request); ASSERT_EQ(ret, (int)ERR_ANS_DUPLICATE_MSG); @@ -915,7 +915,7 @@ HWTEST_F(AnsPublishServiceTest, IsDuplicateMsg_00002, Function | SmallTest | Lev request->SetAppMessageId("test2"); auto uniqueKey = request->GenerateUniqueKey(); advancedNotificationService_->uniqueKeyList_.emplace_back( - std::make_pair(std::chrono::steady_clock::now(), uniqueKey)); + std::make_pair(std::chrono::system_clock::now(), uniqueKey)); auto ret = advancedNotificationService_->IsDuplicateMsg(uniqueKey); ASSERT_EQ(ret, true); @@ -934,7 +934,7 @@ HWTEST_F(AnsPublishServiceTest, RemoveExpiredUniqueKey_00001, Function | SmallTe request->SetAppMessageId("test2"); auto uniqueKey = request->GenerateUniqueKey(); advancedNotificationService_->uniqueKeyList_.emplace_back( - std::make_pair(std::chrono::steady_clock::now() - std::chrono::hours(24), uniqueKey)); + std::make_pair(std::chrono::system_clock::now() - std::chrono::hours(24), uniqueKey)); sleep(1); ASSERT_EQ(advancedNotificationService_->uniqueKeyList_.size(), 1);