Setting environment map to model overwrite its own texture

I want to set environment map to a OBJ model, but it has changed too much!
in usual view, it look like it

but when i set env map , it turned

like it turned jade to iron !!!
code is Inspired by office demo

  new THREE.CubeTextureLoader().load(
          (cubeTexture) => {
            console.log('cubeTexture 222', cubeTexture)
            scene.environment = cubeTexture
            // scene.background = cubeTexture
            model.traverse(function (item) {
              if (item.isMesh) {
                item.material.envMap = cubeTexture
            console.log('model', model)

so can somebody help me figure it out?

Its technically correct, but you can adjust the strength of the environment map with

material.envMapIntensity = 0.5;

Or if it is a MeshStandardMaterial you could increase the roughness, or reduce the metalness.

material.roughness = 0.5;
material.metalness = 0.5;

You can also make those last two properties texture maps too if you have texture images for that

material.roughnessMap = texture.load( 'roughnessMap.png' ) 
material.metalnessMap = texture.load( 'roughnessMap.png' ) 

Hope that helps!

I set material.reflectivity to 0.2 because OBJ model use MeshPhongMaterial defaule, and it worked!,
thank you too much