import { CommonEntityMgmtStateType, DvaModelType, IrsBrokerPointDto, IrsPreconfigStateType, ModelAction, } from '@amc-udk/types' import { LoggerFactory } from '@amc-udk/utils' const namespace = 'points' const Logger = LoggerFactory.get(namespace) export const IrsPointsModel: DvaModelType = { namespace, state: { users: {}, }, effects: { *postProcessAllData( { type, payload }: ModelAction<{ meta: EntityMeta; data: IrsBrokerPointDto[] }>, { select, call, put }, ) { if (!payload || !payload.data) { return } if (!Array.isArray(payload.data)) { return Logger.error('无法处理非数组类全量数据!') } const usersPoints = {} payload.data.forEach(dto => { // PreconfigUtils.setPrimaryKey(dto) dto.id = dto.name usersPoints[dto.id] = dto.points || 0 }) yield put({ type: 'updateState', payload: { users: usersPoints, all: payload.data, }, }) }, }, }