@@ -7,6 +7,7 @@ import CustomizedDOmainMergeRuler from './domain-merge-ruler'
77import DomainMergeRuleItem from '../entity/dto/domain-merge-rule-item'
88import mergeRuleDatabase from '../database/merge-rule-database'
99import WastePerDay from '../entity/dao/waste-per-day'
10+ import iconUrlDatabase from '../database/icon-url-database'
1011
1112declare type PageParam = {
1213 pageNum ?: number
@@ -88,8 +89,18 @@ class TimeService {
8889 return timerDatabase . delete ( rows )
8990 }
9091
91- async select ( param ?: TimerQueryParam ) : Promise < SiteInfo [ ] > {
92+ private async fillIconUrl ( siteInfos : SiteInfo [ ] ) : Promise < void > {
93+ const hosts = siteInfos . map ( o => o . host )
94+ const iconUrlMap = await iconUrlDatabase . get ( ...hosts )
95+ siteInfos . forEach ( siteInfo => {
96+ siteInfo . iconUrl = iconUrlMap [ siteInfo . host ]
97+ } )
98+ return Promise . resolve ( )
99+ }
100+
101+ async select ( param ?: TimerQueryParam , needIconUrl ?: boolean ) : Promise < SiteInfo [ ] > {
92102 log ( "service: select:{param}" , param )
103+ param = param || { }
93104 let origin = await timerDatabase . select ( param as TimerCondition )
94105 // Process after select
95106 // 1st merge
@@ -112,6 +123,10 @@ class TimeService {
112123 return order * ( aa > bb ? 1 : - 1 )
113124 } )
114125 }
126+ // 3rd get icon url if need
127+ if ( ! param . mergeDomain && needIconUrl ) {
128+ await this . fillIconUrl ( origin )
129+ }
115130 return Promise . resolve ( origin )
116131 }
117132
@@ -128,6 +143,7 @@ class TimeService {
128143 const endIndex = ( pageNum ) * pageSize
129144 const total = origin . length
130145 const list : SiteInfo [ ] = startIndex >= total ? [ ] : origin . slice ( startIndex , Math . min ( endIndex , total ) )
146+ await this . fillIconUrl ( list )
131147 return Promise . resolve ( { total, list } )
132148 }
133149
@@ -151,7 +167,7 @@ class TimeService {
151167 const merged = this . merge ( map , o , domain + date )
152168 merged . host = domain
153169 const mergedHosts = merged . mergedHosts || ( merged . mergedHosts = [ ] )
154- mergedHosts . push ( host )
170+ mergedHosts . push ( o )
155171 } )
156172 for ( let key in map ) {
157173 newSiteInfos . push ( map [ key ] )
0 commit comments