package com.vci.ubcs.omd.wrapper; import com.vci.ubcs.omd.constant.BtmTypeConstant; import com.vci.ubcs.omd.dto.BtmTypeDTO; import com.vci.ubcs.omd.entity.BtmType; import com.vci.ubcs.omd.vo.BtmTypeVO; import com.vci.ubcs.starter.web.enumpck.BooleanEnum; import com.vci.ubcs.starter.web.enumpck.NewAppConstantEnum; import com.vci.ubcs.starter.web.util.VciBaseUtil; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Objects; import java.util.stream.Collectors; /** * Description: * * @author LiHang * @date 2023/4/23 */ public class BtmTypeWrapper extends BaseEntityWrapper { public static BtmTypeWrapper build() { return new BtmTypeWrapper(); } /** * do2vo * @param entity pojo * @return 显示对象 */ @Override public BtmTypeVO entityVO(BtmType entity) { BtmTypeVO vo = Objects.requireNonNull(BeanUtil.copy(entity, BtmTypeVO.class)); vo.setDomainText(NewAppConstantEnum.getTextByName(vo.getBizDomain())); vo.setTableName(vo.getTableName() == null? "" : vo.getTableName().toUpperCase(Locale.ROOT)); // 在这里设置枚举显示值 vo.setRevisionFlag(BooleanEnum.TRUE.getValue().equals(entity.getRevisionFlag())); vo.setSecretFlag(BooleanEnum.TRUE.getValue().equals(entity.getSecretFlag())); vo.setLifeCycleFlag(BooleanEnum.TRUE.getValue().equals(entity.getLifeCycleFlag())); vo.setInputRevisionFlag(BooleanEnum.TRUE.getValue().equals(entity.getInputRevisionFlag())); vo.setViewFlag(BooleanEnum.TRUE.getValue().equalsIgnoreCase(entity.getViewFlag())); vo.setViewText(vo.isViewFlag() ? "视图" : "非视图"); vo.setAbstractFlag(BooleanEnum.TRUE.getValue().equals(entity.getAbstractFlag())); return vo; } /** * 批量转vo * @param list pojo集合 * @return 显示对象 */ public List listEntityVO(List list) { return list.stream().map(this::entityVO).collect(Collectors.toList()); } /** * 拷贝业务类型 数据传输对象到 数据对象 * * @param dto 业务类型数据传输对象 * @param creator 创建人 * @param now 当时时间 */ public BtmType copyBtmTypeDTO2Entity(BtmTypeDTO dto, String creator, Date now){ BtmType entity = Objects.requireNonNull(BeanUtil.copy(dto, BtmType.class)); entity.setLastModifier(creator); entity.setTs(now); // 在这进行通用字段处理 return entity; } public BtmType entityBeforeInsert(BtmType btmType) { btmType = entityBeforeSave(btmType); String userAccount = AuthUtil.getUserAccount(); btmType.setOwner(userAccount); btmType.setCreator(userAccount); Date now = new Date(); btmType.setCreateTime(now); return btmType; } /** * 插入前包装默认字段 * @param btmTypeDO do数据 * @return 包装后 */ public BtmType entityBeforeSave(BtmType btmTypeDO) { btmTypeDO.setOid(VciBaseUtil.getPk()); btmTypeDO.setBtmName(BtmTypeConstant.BTMTYPE); Date now = new Date(); String userAccount = AuthUtil.getUserAccount(); btmTypeDO.setLastModifier(userAccount); btmTypeDO.setLastModifyTime(now); btmTypeDO.setTs(now); return btmTypeDO; } }