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<String,String> initHeadVo() {
|
long timestamp = System.currentTimeMillis()/1000;
|
HashMap<String,String> 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<GridCompanyDTO> getCompanyList(@RequestBody GridCompanyVo gridCompanyVo) throws Exception {
|
HashMap<String,String> 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<GridCompanyDTO.UnitDTO> 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<GridCompanyDTO> companyList = null;
|
// 开发环境
|
if (SpringContextUtil.checkDev()) {
|
String url = "http://183.2.142.46:9007/api/thrid/grid/company/get-company-list";
|
Map<String, String> 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<GridCompanyDTO.UnitDTO> records = data.getRecords();
|
return new PageImpl<>(records, pageRequest, data.getTotal());
|
}
|
}
|
return new PageImpl<>(new ArrayList<>(), pageRequest, 0);
|
}
|
|
}
|