diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/controller/LawsAsmsOpenApiController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/controller/LawsAsmsOpenApiController.java index aca69361..2272031b 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/controller/LawsAsmsOpenApiController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/controller/LawsAsmsOpenApiController.java @@ -175,8 +175,7 @@ public class LawsAsmsOpenApiController extends JeroController syncBatch(@RequestParam(name="ids") String ids) { - List lawsAsmsOpenApiList = lawsAsmsOpenApiService.listByIds(Arrays.asList(ids.split(","))); - + lawsAsmsOpenApiService.syncBatch(Arrays.asList(ids.split(","))); return Result.OK("操作成功"); } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/ILawsAsmsOpenApiService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/ILawsAsmsOpenApiService.java index 753cb7eb..42ba08b5 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/ILawsAsmsOpenApiService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/ILawsAsmsOpenApiService.java @@ -73,4 +73,11 @@ public interface ILawsAsmsOpenApiService extends IService { * @return */ LawsAsmsOpenApi queryById(String id); + + /** + * @Author: liao + * @Date: 2023/10/18 13:46 + * @Description: 批量同步 + **/ + void syncBatch(List idList); } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/impl/LawsAsmsOpenApiServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/impl/LawsAsmsOpenApiServiceImpl.java index 8cff10ae..c570cbed 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/impl/LawsAsmsOpenApiServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/api/service/impl/LawsAsmsOpenApiServiceImpl.java @@ -1,13 +1,28 @@ package com.jero.modules.docking.asms.api.service.impl; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.api.vo.Result; import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi; import com.jero.modules.docking.asms.api.mapper.LawsAsmsOpenApiMapper; import com.jero.modules.docking.asms.api.service.ILawsAsmsOpenApiService; +import com.jero.modules.docking.asms.util.AsmsPostUtil; +import com.jero.modules.system.entity.SysDictItem; +import com.jero.modules.system.service.ISysDictItemService; +import com.spire.ms.System.Collections.ArrayList; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.jero.common.exception.JeroBootException; + +import java.util.Arrays; import java.util.List; +import java.util.Map; +import java.util.Objects; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.system.query.QueryGenerator; import javax.servlet.http.HttpServletRequest; @@ -22,9 +37,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; * @Version: V1.0 */ @Service +@Slf4j @Transactional(rollbackFor = JeroBootException.class) public class LawsAsmsOpenApiServiceImpl extends ServiceImpl implements ILawsAsmsOpenApiService { + @Autowired + private AsmsPostUtil asmsPostUtil; + @Autowired + private ISysDictItemService sysDictItemService; /** * 分页查询 @@ -39,6 +59,7 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl queryPage(LawsAsmsOpenApi lawsAsmsOpenApi, Integer pageNo, Integer pageSize, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsAsmsOpenApi, req.getParameterMap()); + queryWrapper.orderByDesc("id"); Page page = new Page<>(pageNo, pageSize); return page(page, queryWrapper); } @@ -109,4 +130,65 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl idList) { + List lawsAsmsOpenApiList = listByIds(idList); + + lawsAsmsOpenApiList.forEach(lawsAsmsOpenApi -> { + + Map map = null; + if (StringUtils.isNotBlank(lawsAsmsOpenApi.getQueryParamJson())) { + map = (Map) JSON.parse(lawsAsmsOpenApi.getQueryParamJson()); + } + List> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map); + + if ("1".equals(lawsAsmsOpenApi.getApiType()) + && StringUtils.isNotBlank(lawsAsmsOpenApi.getDictId()) && !Objects.isNull(mapList)) { + // 如果是普通字典类型、字典id不为空、返回的数据不为空,则进行数据字典同步操作 + List dictItemList = new ArrayList(); + + // 删除该字典的全部数据项 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysDictItem::getDictId, lawsAsmsOpenApi.getDictId()); + sysDictItemService.remove(queryWrapper); + log.info("删除”{}“的全部字典数据项...", lawsAsmsOpenApi.getApiName()); + + // 封装数据 + for (int i = 0; i < mapList.size(); i++) { + Map eMap = mapList.get(i); + SysDictItem dictItem = new SysDictItem(); + // 字典id + dictItem.setDictId(lawsAsmsOpenApi.getDictId()); + // 是否标签管理显示(显示) + dictItem.setIsTagDict(1); + // 状态(启用) + dictItem.setStatus(1); + dictItem.setDelFlag(0); + // 排序 + dictItem.setSortOrder(i + 1); + eMap.forEach((k, v) -> { + if ("code".equals(k)) { + // 字典项值 + dictItem.setItemValue(v); + } else if ("name".equals(k)) { + // 字典项名称 + dictItem.setItemText(v); + } + }); + dictItemList.add(dictItem); + } + // 保存到数据库 + sysDictItemService.saveBatch(dictItemList); + log.info("添加”{}“的字典数据项{}条数据...", lawsAsmsOpenApi.getApiName(), dictItemList.size()); + } + + }); + } }