package com.vci.ubcs.com.vci.starter.revision.service; // // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // //package com.vci.starter.revision.service; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.vci.ubcs.code.bo.TreeWrapperOptions; import com.vci.ubcs.code.entity.BaseModel; import com.vci.ubcs.com.vci.starter.web.pagemodel.Tree; import com.vci.ubcs.com.vci.starter.web.service.VciSecretServiceI; import com.vci.ubcs.com.vci.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.com.vci.starter.web.util.VciBaseUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.stream.Collectors; @Component public class RevisionModelUtil implements VciSecretServiceI { private Logger logger = LoggerFactory.getLogger(this.getClass()); public static volatile Map> modelColumnAnnotationMap = new ConcurrentHashMap(); // public static volatile Map modelAnnotationMap = new ConcurrentHashMap(); public static boolean CHECK_IDEMPOTENCE = false; public void copyFromDTOIgnore(Object dto, BaseModel baseModel) { VciBaseUtil.alertNotNull(new Object[]{dto, "数据传输对象", baseModel, "数据库中的数据对象"}); BaseModel tempModel = new BaseModel(); BeanUtilForVCI.copyPropertiesIgnoreCase(baseModel, tempModel); BeanUtilForVCI.copyPropertiesIgnoreCase(dto, baseModel); BeanUtilForVCI.copyPropertiesIgnoreCase(tempModel, baseModel); baseModel.setId(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("id", dto))); baseModel.setName(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("name", dto))); baseModel.setDescription(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("description", dto))); tempModel = null; } public List doList2Trees(List doList, TreeWrapperOptions wrapperOptions, Function f) { if (CollectionUtils.isEmpty(doList)) { return new ArrayList(); } else { List allTree = new ArrayList(); List children = new ArrayList(); Iterator var6 = doList.iterator(); while(true) { while(var6.hasNext()) { T doObject = (T) var6.next(); Tree tree = new Tree(); List oidFieldNames = VciBaseUtil.str2List(wrapperOptions.getOidFieldName()); List oidValues = new LinkedList(); oidFieldNames.stream().forEach((s) -> { oidValues.add(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(s, doObject))); }); tree.setOid((String)oidValues.stream().collect(Collectors.joining(wrapperOptions.getOidValueSep()))); if (f != null) { tree.setText((String)f.apply(doObject)); } else { List textFieldNames = VciBaseUtil.str2List(wrapperOptions.getTextFieldName()); List textValues = new LinkedList(); textFieldNames.stream().forEach((s) -> { textValues.add(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(s, doObject))); }); tree.setText((String)textValues.stream().collect(Collectors.joining(wrapperOptions.getTextValueSep()))); } if (StringUtils.isNotBlank(wrapperOptions.getParentFieldName())) { tree.setParentId(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField(wrapperOptions.getParentFieldName(), doObject))); } if (wrapperOptions.isAllAttributes()) { try { tree.setAttributes(VciBaseUtil.objectToMapString(doObject)); } catch (Exception var13) { if (this.logger.isErrorEnabled()) { this.logger.error("把对象转换为map时出现了错误,但是不影响树的展示,对业务可能有影响"); } } } if (wrapperOptions.isMultipleSelect() || wrapperOptions.isShowCheckBox()) { tree.setShowCheckbox(true); } if (wrapperOptions.getParentOid() == null) { wrapperOptions.setParentOid(""); } if (!StringUtils.isBlank(tree.getParentId()) && (!StringUtils.isNotBlank(wrapperOptions.getParentOid()) || !wrapperOptions.getParentOid().equalsIgnoreCase(tree.getParentId()))) { children.add(tree); } else { allTree.add(tree); } } (new Tree()).findChild(allTree, children); if (allTree.size() <= 0) { allTree.addAll(children); } return allTree; } } } }