package com.java110.job.adapt.hcGov.asyn.impl; import com.alibaba.fastjson.JSONObject; import com.java110.core.factory.GenerateCodeFactory; import com.java110.intf.common.IHcGovTranslateDetailInnerServiceSMO; import com.java110.intf.common.IHcGovTranslateInnerServiceSMO; import com.java110.job.adapt.hcGov.HcGovConstant; import com.java110.job.adapt.hcGov.asyn.BaseHcGovSendAsyn; import com.java110.po.hcGovTranslate.HcGovTranslatePo; import com.java110.po.hcGovTranslateDetail.HcGovTranslateDetailPo; import com.java110.utils.kafka.KafkaFactory; import com.java110.utils.util.Assert; import com.java110.utils.util.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.UUID; @Service public class BaseHcGovSendAsynImpl implements BaseHcGovSendAsyn { @Autowired private IHcGovTranslateInnerServiceSMO hcGovTranslateInnerServiceSMOImpl; @Autowired private IHcGovTranslateDetailInnerServiceSMO hcGovTranslateDetailInnerServiceSMOImpl; public JSONObject createHeadersOrBody(JSONObject body,String extCommunityId,String serviceCode,String secure) { JSONObject heard = new JSONObject(); heard.put("serviceCode", serviceCode); heard.put("extCommunityId",extCommunityId); heard.put("tranId", UUID.randomUUID().toString()); heard.put("reqTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_DEFAULT)); HcGovConstant.generatorProducerSign(heard,body,secure); JSONObject kafkaData = new JSONObject(); kafkaData.put("header",heard); kafkaData.put("body",body); return kafkaData; } protected void saveHcGovLog(JSONObject paramIn,String communityId,String topic,String objId,String secure) { Assert.hasKeyAndValue(paramIn, "header", "请求报文中未包含header"); Assert.hasKeyAndValue(paramIn, "body", "请求报文中未包含body"); JSONObject heard = paramIn.getJSONObject("header"); JSONObject body = paramIn.getJSONObject("body"); HcGovTranslatePo hcGovTranslatePo = new HcGovTranslatePo(); hcGovTranslatePo.setTranId(heard.getString("tranId")); hcGovTranslatePo.setCommunityId(communityId); hcGovTranslatePo.setGovTopic(topic); hcGovTranslatePo.setCode(secure); hcGovTranslatePo.setSendCount("1"); hcGovTranslatePo.setExtCommunityId(heard.getString("extCommunityId")); hcGovTranslatePo.setObjId(objId); hcGovTranslatePo.setReqTime(heard.getString("reqTime")); hcGovTranslatePo.setServiceCode(heard.getString("serviceCode")); hcGovTranslatePo.setSign(heard.getString("sign")); hcGovTranslatePo.setState("1001"); hcGovTranslatePo.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A)); hcGovTranslatePo.setRemark("物业系统自动推送楼栋信息到政务系统"); int flag = hcGovTranslateInnerServiceSMOImpl.saveHcGovTranslate(hcGovTranslatePo); if(flag < 1){ throw new IllegalArgumentException("物业系统保存楼栋推送报文日志失败"); } HcGovTranslateDetailPo hcGovTranslateDetailPo = new HcGovTranslateDetailPo(); hcGovTranslateDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId)); hcGovTranslateDetailPo.setTranId(hcGovTranslatePo.getTranId()); hcGovTranslateDetailPo.setCommunityId(communityId); hcGovTranslateDetailPo.setReqBody(paramIn.toJSONString()); flag = hcGovTranslateDetailInnerServiceSMOImpl.saveHcGovTranslateDetail(hcGovTranslateDetailPo); if(flag < 1){ throw new IllegalArgumentException("物业系统保存楼栋推送报文明细日志失败"); } } public void sendKafka(String topic,JSONObject massage,String communityId,String objId,String secure) { try { KafkaFactory.sendKafkaMessage(topic,massage.toJSONString()); saveHcGovLog(massage,communityId,topic,objId,secure); } catch (Exception e) { e.printStackTrace(); } } }