package com.zt.life.sync.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.zt.common.db.query.QueryFilter; import com.zt.common.service.BaseService; import com.zt.life.sync.dao.SyncConfigDao; import com.zt.life.sync.dto.SyncConfigDto; import com.zt.life.sync.model.SyncConfig; import com.zt.life.sync.model.SyncConfigTables; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * * * @author zt czx * @since 1.0.0 2020-07-20 */ @Service public class SyncConfigService extends BaseService { @Autowired private SyncConfigTableService syncConfigTableService; public List page(QueryFilter queryFilter) { List resultList = new ArrayList<>(); // 获取查询结果 List syncConfigList = query(queryFilter); resultList = JSONArray.parseArray(JSONArray.toJSONString(syncConfigList), SyncConfigDto.class); // 依赖项ID集合 List ids = new ArrayList<>(); resultList.stream().map(SyncConfig::getOtherCond).distinct().forEach(s -> { if (StrUtil.isNotEmpty(s)) { ids.add(Long.parseLong(s)); } }); if (CollUtil.isNotEmpty(ids)) { // 所有ID结果 List syncConfigIds = baseDao.selectBatchIds(ids); resultList.stream().forEach(s -> { SyncConfigDto syncConfigDto = (SyncConfigDto) s; for (SyncConfig ss : syncConfigIds) { if (StrUtil.isNotEmpty(s.getOtherCond()) && Long.parseLong(s.getOtherCond()) == ss.getId()) { syncConfigDto.setOtherCondDesc(ss.getTabledesc()); } } }); } return resultList; } public List getList(Map map) { return baseDao.selectByMap(map); } public List getTableNameList() { List tableNameList = this.baseDao.getTableNameList(); return tableNameList; } public void insert(SyncConfigDto syncConfigDto) { SyncConfig syncConfig = new SyncConfig(); syncConfig = JSONObject.toJavaObject(JSONObject.parseObject(JSONObject.toJSONString(syncConfigDto)), SyncConfig.class); // 新增配置 super.insert(syncConfig); for (SyncConfigTables syt : syncConfigDto.getSyncConfigTableList()) { syt.setSyncConfigId(syncConfig.getId()); syncConfigTableService.insert(syt); } } public void update(SyncConfigDto syncConfigDto) { SyncConfig syncConfig = new SyncConfig(); syncConfig = JSONObject.toJavaObject(JSONObject.parseObject(JSONObject.toJSONString(syncConfigDto)), SyncConfig.class); // 新增配置 super.update(syncConfig); // 现有集合 Map parMap = new HashMap<>(); parMap.put("sync_config_id", syncConfig.getId()); List syncConfigTables = syncConfigTableService.getList(parMap); System.out.println("前端提交数据"); syncConfigDto.getSyncConfigTableList().forEach(System.out::println); System.out.println("数据库保存的数据"); syncConfigTables.forEach(System.out::println); // 清空历史数据 syncConfigTableService.deleteByMap(parMap); for (SyncConfigTables sct : syncConfigDto.getSyncConfigTableList()) { sct.setSyncConfigId(syncConfig.getId()); // 保存新数据 syncConfigTableService.insert(sct); } } }