wuxw
2024-04-28 06506ef4d9c09bdbf8d32d7759cf9d0ee53e512f
service-common/src/main/java/com/java110/common/cmd/system/ListSystemInfoCmd.java
@@ -15,23 +15,29 @@
 */
package com.java110.common.cmd.system;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.client.RestTemplate;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.dto.system.SystemInfoDto;
import com.java110.intf.common.ISystemInfoV1InnerServiceSMO;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.cache.UrlCache;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.ListUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import com.java110.dto.systemInfo.SystemInfoDto;
import java.util.List;
import java.util.ArrayList;
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import java.util.ArrayList;
import java.util.List;
/**
@@ -47,9 +53,12 @@
@Java110Cmd(serviceCode = "system.listSystemInfo")
public class ListSystemInfoCmd extends Cmd {
  private static Logger logger = LoggerFactory.getLogger(ListSystemInfoCmd.class);
    private static Logger logger = LoggerFactory.getLogger(ListSystemInfoCmd.class);
    @Autowired
    private ISystemInfoV1InnerServiceSMO systemInfoV1InnerServiceSMOImpl;
    @Autowired
    private RestTemplate outRestTemplate;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
@@ -59,22 +68,58 @@
    @Override
    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
           SystemInfoDto systemInfoDto = BeanConvertUtil.covertBean(reqJson, SystemInfoDto.class);
        SystemInfoDto systemInfoDto = BeanConvertUtil.covertBean(reqJson, SystemInfoDto.class);
           int count = systemInfoV1InnerServiceSMOImpl.querySystemInfosCount(systemInfoDto);
        int count = systemInfoV1InnerServiceSMOImpl.querySystemInfosCount(systemInfoDto);
           List<SystemInfoDto> systemInfoDtos = null;
        List<SystemInfoDto> systemInfoDtos = null;
           if (count > 0) {
               systemInfoDtos = systemInfoV1InnerServiceSMOImpl.querySystemInfos(systemInfoDto);
           } else {
               systemInfoDtos = new ArrayList<>();
           }
        if (count > 0) {
            systemInfoDtos = systemInfoV1InnerServiceSMOImpl.querySystemInfos(systemInfoDto);
            systemInfoDtos.get(0).setOwnerUrl(UrlCache.getOwnerUrl());
            systemInfoDtos.get(0).setPropertyUrl(UrlCache.getPropertyPhoneUrl());
        } else {
            systemInfoDtos = new ArrayList<>();
        }
           ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, systemInfoDtos);
        //todo 查询第三方开发的插件
        queryThirdPlugin(systemInfoDtos);
           ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, systemInfoDtos);
           cmdDataFlowContext.setResponseEntity(responseEntity);
        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
        cmdDataFlowContext.setResponseEntity(responseEntity);
    }
    private void queryThirdPlugin(List<SystemInfoDto> systemInfoDtos) {
        String pluginSwitch = MappingCache.getValue("PLUGIN", "PLUGIN_SWITCH");
        if (!"ON".equals(pluginSwitch)) {
            return;
        }
        if (ListUtil.isNull(systemInfoDtos)) {
            return;
        }
        try {
            JSONObject paramIn = new JSONObject();
            HttpHeaders header = new HttpHeaders();
            HttpEntity<String> httpEntity = new HttpEntity<String>(paramIn.toJSONString(), header);
            String pluginUrl = MappingCache.getValue("PLUGIN", "PLUGIN_URL") + "/plugin/plugin.queryValidPlugins";
            ResponseEntity<String> tokenRes = outRestTemplate.exchange(pluginUrl, HttpMethod.POST, httpEntity, String.class);
            String body = tokenRes.getBody();
            JSONObject paramOut = JSONObject.parseObject(body);
            systemInfoDtos.get(0).setPlugins(paramOut.getJSONArray("data"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}