package jnpf.base.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import jnpf.base.SystemApi; import jnpf.base.entity.SystemEntity; import jnpf.base.entity.SystemShareEntity; import jnpf.base.entity.VisualdevReleaseEntity; import jnpf.base.mapper.SystemShareMapper; import jnpf.base.model.share.SystemShareVo; import jnpf.base.service.SuperServiceImpl; import jnpf.base.service.SystemShareService; import jnpf.base.service.VisualdevReleaseService; import jnpf.util.RandomUtil; import jnpf.util.context.RequestContext; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 跨应用数据mapper * * @author JNPF开发平台组 * @version v6.1.0 * @copyright 引迈信息技术有限公司 * @date 2025/7/30 16:22:57 */ @Service @RequiredArgsConstructor public class SystemShareServiceImpl extends SuperServiceImpl implements SystemShareService { private final SystemApi systemService; private final VisualdevReleaseService visualdevReleaseService; @Override public List getList() { SystemEntity sysInfo = systemService.getInfoByEnCode(RequestContext.getAppCode()); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(SystemShareEntity::getSystemId, sysInfo.getId()); return this.list(queryWrapper); } @Override public void save(List ids) { SystemEntity sysInfo = systemService.getInfoByEnCode(RequestContext.getAppCode()); List list = this.getList(); for (SystemShareEntity item : list) { this.removeById(item); } if (!ids.isEmpty()) { List vsList = visualdevReleaseService.selectByIds(ids, VisualdevReleaseEntity::getId, VisualdevReleaseEntity::getSystemId); for (VisualdevReleaseEntity item : vsList) { SystemShareEntity entity = new SystemShareEntity(); entity.setId(RandomUtil.uuId()); entity.setSystemId(sysInfo.getId()); entity.setObjectId(item.getId()); entity.setSourceId(item.getSystemId()); this.save(entity); } } } @Override public List selectedList(List ids) { List sysList = systemService.getList(); Map sysMap = sysList.stream().collect(Collectors.toMap(SystemEntity::getId, SystemEntity::getFullName)); List vsList = visualdevReleaseService.selectByIds(ids); List voList = new ArrayList<>(); for (VisualdevReleaseEntity item : vsList) { SystemShareVo vo = new SystemShareVo(); vo.setId(item.getId()); vo.setObjectId(item.getId()); vo.setShowName(sysMap.get(item.getSystemId()) + "/" + item.getFullName()); voList.add(vo); } return voList; } @Override public List selector() { SystemEntity sysInfo = systemService.getInfoByEnCode(RequestContext.getAppCode()); MPJLambdaWrapper queryWrapper = JoinWrappers.lambda(SystemShareEntity.class); queryWrapper.leftJoin(SystemEntity.class, SystemEntity::getId, SystemShareEntity::getSourceId); queryWrapper.leftJoin(VisualdevReleaseEntity.class, VisualdevReleaseEntity::getId, SystemShareEntity::getObjectId); queryWrapper.selectAs(SystemShareEntity::getId, SystemShareVo::getId); //应用名称 queryWrapper.selectAs(SystemShareEntity::getSourceId, SystemShareVo::getSourceId); queryWrapper.selectAs(SystemEntity::getFullName, SystemShareVo::getSourceName); //功能名称 queryWrapper.selectAs(SystemShareEntity::getObjectId, SystemShareVo::getObjectId); queryWrapper.selectAs(VisualdevReleaseEntity::getFullName, SystemShareVo::getObjectName); //条件 queryWrapper.eq(SystemShareEntity::getSystemId, sysInfo.getId()); List voList = this.selectJoinList(SystemShareVo.class, queryWrapper); voList.stream().forEach(t -> t.setShowName(t.getSourceName() + "/" + t.getObjectName())); return voList; } }