content: /**
   * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
   * <p>
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * <p>
   * http://www.apache.org/licenses/LICENSE-2.0
   * <p>
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.springblade.system.user.wrapper;
  
  import org.springblade.core.mp.support.BaseEntityWrapper;
  import org.springblade.core.tool.api.R;
  import org.springblade.core.tool.utils.BeanUtil;
  import org.springblade.core.tool.utils.Func;
  import org.springblade.core.tool.utils.SpringUtil;
  import org.springblade.system.feign.IDictClient;
  import org.springblade.system.user.entity.User;
  import org.springblade.system.user.service.IUserService;
  import org.springblade.system.user.vo.UserVO;
  
  import java.util.List;
  
  /**
   * 包装类,返回视图层所需的字段
   *
   * @author Chill
   */
  public class UserWrapper extends BaseEntityWrapper<User, UserVO> {
  
  	private static IUserService userService;
  
  	private static IDictClient dictClient;
  
  	static {
  		userService = SpringUtil.getBean(IUserService.class);
  		dictClient = SpringUtil.getBean(IDictClient.class);
  	}
  
  	public static UserWrapper build() {
  		return new UserWrapper();
  	}
  
  	@Override
  	public UserVO entityVO(User user) {
  		UserVO userVO = BeanUtil.copy(user, UserVO.class);
  		List<String> roleName = userService.getRoleName(user.getRoleId());
  		List<String> deptName = userService.getDeptName(user.getDeptId());
  		userVO.setRoleName(Func.join(roleName));
  		userVO.setDeptName(Func.join(deptName));
  		R<String> dict = dictClient.getValue("sex", Func.toInt(user.getSex()));
  		if (dict.isSuccess()) {
  			userVO.setSexName(dict.getData());
  		}
  		return userVO;
  	}
  
  }
  