package cn.huge.module.grid.service; import cn.huge.base.common.bo.R; import cn.huge.base.common.utils.AesUtils; import cn.huge.base.common.utils.HttpClientUtils; import cn.huge.base.common.utils.ObjectUtils; import cn.huge.base.common.utils.SpringContextUtil; import cn.huge.module.grid.domain.dto.GridCompanyDTO; import cn.huge.module.grid.domain.vo.*; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.RequestBody; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.util.*; import static cn.huge.base.common.utils.AesUtils.KEY_ALGORITHM; @Slf4j @Service public class GridCompanyService { @Value("${grid.url:http://219.137.166.84:8061}") private String gridUrl; @Value("${grid.username:mtxt0011}") private String userName; @Value("${grid.password}") private String passWord; @Value("${grid.secret:BZb2hLCx05}") private String secret; @Value("${grid.passid:b08c0ec0-772d-caf8-5c9b-1f7d86295a95}") private String passid; public HashMap initHeadVo() { long timestamp = System.currentTimeMillis()/1000; HashMap headVo = new HashMap<>(); headVo.put("x-rio-paasid",passid); headVo.put("x-rio-timestamp",timestamp+""); headVo.put("x-rio-nonce","mt"); headVo.put("x-rio-signature", DigestUtils.sha256Hex(timestamp+secret+"mt"+timestamp)); return headVo; } public R getCompanyList(@RequestBody GridCompanyVo gridCompanyVo) throws Exception { HashMap headVo = initHeadVo(); log.info("xsd:{}", JSON.toJSONString(gridCompanyVo)); log.info("xsd:{}", gridUrl + "/sbss/unit/getList"); String s = null; try { s = HttpClientUtils.httpPostRaw(gridUrl + "/unit/getList", JSON.toJSONString(gridCompanyVo), headVo, "utf-8"); } catch (Exception e) { log.info("xsderror:{}", e); throw new RuntimeException(e); } log.info("xsd:{}", s); JSONObject object = JSONObject.parseObject(s); if (object.getInteger("code") != null && object.getInteger("code") == 0) { GridCompanyDTO data = object.getObject("data", GridCompanyDTO.class); List records = data.getRecords(); for(GridCompanyDTO.UnitDTO item :records){ item.setLegalRepresent(AesUtils.decrypt(item.getLegalRepresent(),"W90akz7tA7tyMn5tNTynG69YM2E8jGfF")); item.setLegalPersonTelephone(AesUtils.decrypt(item.getLegalPersonTelephone(),"W90akz7tA7tyMn5tNTynG69YM2E8jGfF")); } return R.ok(data); } else { return R.fail("获取企业信息失败"); } } public Page pageQuery(GridCompanyVo gridCompanyVo) throws Exception { Sort sort = Sort.by(Sort.Direction.DESC, "create_time"); PageRequest pageRequest = PageRequest.of(gridCompanyVo.getPage()-1, gridCompanyVo.getPageSize(), sort); R companyList = null; // 开发环境 if (SpringContextUtil.checkDev()) { String url = "http://183.2.142.46:9007/api/thrid/grid/company/get-company-list"; Map headers = new HashMap<>(); headers.put("Content-Type", "application/json"); String s = HttpClientUtils.httpPostRaw(url, JSON.toJSONString(gridCompanyVo), headers, "utf-8"); companyList = JSON.parseObject(s, R.class); }else { companyList = getCompanyList(gridCompanyVo); } if(companyList.getCode() != 0){ throw new Exception(companyList.getMsg()); } if(ObjectUtils.isNotEmpty(companyList)){ GridCompanyDTO data = JSON.parseObject(JSON.toJSONString(companyList.getData()), GridCompanyDTO.class); if(ObjectUtils.isNotEmpty(data)){ List records = data.getRecords(); return new PageImpl<>(records, pageRequest, data.getTotal()); } } return new PageImpl<>(new ArrayList<>(), pageRequest, 0); } }