Просмотр исходного кода

Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

1098226878 лет назад: 4
Родитель
Сommit
e30ddec15f

+ 8 - 8
java110-core/src/main/java/com/java110/core/factory/AuthenticationFactory.java

@@ -72,10 +72,10 @@ public class AuthenticationFactory {
                 return null;
             }
             // 判断Key是否为16位
-            if (sKey.length() != 16) {
-                System.out.print("Key长度不是16位");
-                return null;
-            }
+//            if (sKey.length() != 16) {
+//                System.out.print("Key长度不是16位");
+//                return null;
+//            }
             byte[] raw = sKey.getBytes("utf-8");
             SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
             Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"
@@ -98,10 +98,10 @@ public class AuthenticationFactory {
                 return null;
             }
             // 判断Key是否为16位
-            if (sKey.length() != 16) {
-                System.out.print("Key长度不是16位");
-                return null;
-            }
+//            if (sKey.length() != 16) {
+//                System.out.print("Key长度不是16位");
+//                return null;
+//            }
             byte[] raw = sKey.getBytes("utf-8");
             SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
             Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

+ 17 - 24
java110-generator/src/main/java/com/java110/code/TableToJson.java

@@ -7,30 +7,23 @@ import com.java110.utils.util.StringUtil;
 public class TableToJson {
 
     //show create table c_orders  用这个语句获取
-    public static final String createTableSql = "CREATE TABLE `building_room` (\n" +
-            "  `room_id` varchar(30) NOT NULL COMMENT '房屋ID',\n" +
-            "  `b_id` varchar(30) NOT NULL COMMENT '业务Id',\n" +
-            "  `room_num` varchar(12) NOT NULL COMMENT '房屋编号',\n" +
-            "  `unit_id` varchar(30) NOT NULL COMMENT '单元ID',\n" +
-            "  `layer` int(11) NOT NULL COMMENT '层数',\n" +
-            "  `section` int(11) DEFAULT NULL COMMENT '室',\n" +
-            "  `apartment` varchar(20) NOT NULL COMMENT '户型',\n" +
-            "  `built_up_area` decimal(6,2) NOT NULL COMMENT '建筑面积',\n" +
-            "  `fee_coefficient` decimal(12,2) NOT NULL DEFAULT '1.00' COMMENT '算费系数',\n" +
-            "  `user_id` varchar(30) NOT NULL COMMENT '用户ID',\n" +
+    public static final String createTableSql = "CREATE TABLE `gov_car` (\n" +
+            "  `car_id` varchar(30) NOT NULL PRIMARY key COMMENT '汽车ID',\n" +
+            "  `pa_id` varchar(30) NOT NULL COMMENT '停车场ID',\n" +
+            "  `car_num` varchar(12) NOT NULL COMMENT '车牌号',\n" +
+            "  `car_brand` varchar(50) NOT NULL COMMENT '汽车品牌',\n" +
+            "  `car_type` varchar(4) NOT NULL COMMENT '9901 家用小汽车,9902 客车,9903 货车',\n" +
+            "  `car_color` varchar(12) NOT NULL COMMENT '颜色',\n" +
+            "  `ca_id` varchar(30) NOT NULL COMMENT '区域ID',\n" +
+            "  `gov_community_id` varchar(30) NOT NULL COMMENT '小区ID',\n" +
+            "  `start_time` datetime NOT NULL COMMENT '起租时间',\n" +
+            "  `end_time` datetime NOT NULL COMMENT '结租时间',\n" +
+            "   gov_person_id varchar(30) not null comment '车主ID',\n" +
+            "  `car_type_cd` varchar(4) NOT NULL DEFAULT '1001' COMMENT '1001 主车辆 1002 成员车辆',\n" +
             "  `remark` varchar(200) DEFAULT NULL COMMENT '备注',\n" +
             "  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',\n" +
-            "  `status_cd` varchar(2) NOT NULL DEFAULT '0' COMMENT '数据状态,详细参考c_status表,S 保存,0, 在用 1失效',\n" +
-            "  `state` varchar(4) NOT NULL COMMENT '房屋状态,如房屋出售等,请查看state 表',\n" +
-            "  `community_id` varchar(30) DEFAULT NULL COMMENT '小区ID',\n" +
-            "  `room_type` varchar(12) NOT NULL DEFAULT '1010301' COMMENT '房屋类型',\n" +
-            "  `room_sub_type` varchar(12) NOT NULL DEFAULT '110' COMMENT '房屋类型 110 住宅房屋,119 办公室 120 宿舍',\n" +
-            "  `room_area` decimal(6,2) NOT NULL COMMENT '室内面积',\n" +
-            "  `room_rent` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '租金',\n" +
-            "  UNIQUE KEY `room_id` (`room_id`) USING BTREE,\n" +
-            "  UNIQUE KEY `idx_room_id` (`room_id`) USING BTREE,\n" +
-            "  KEY `idx_room_b_id` (`b_id`) USING BTREE,\n" +
-            "  KEY `i_br_unit_id` (`unit_id`)\n" +
+            "  `status_cd` varchar(2) NOT NULL DEFAULT '0' COMMENT '数据状态,详细参考c_status表,0, 在用 1失效',\n" +
+            "  `datasource_type` varchar(30) NOT NULL DEFAULT '999999' COMMENT '数据来源 999999 政务系统添加 777777 物业系统同步'\n" +
             ")";
 
     public static void main(String[] args) {
@@ -45,9 +38,9 @@ public class TableToJson {
         param.put("desc", "");
         param.put("id", "");
         param.put("name", "");
-        param.put("shareColumn", "community_id");
+        param.put("shareColumn", "ca_id");
         param.put("shareName", "");
-        param.put("shareParam", "communityId");
+        param.put("shareParam", "caId");
         param.put("tableName", tableName);
         JSONObject paramColumn = new JSONObject();
         JSONArray requireds = new JSONArray();

+ 2 - 0
service-api/src/main/java/com/java110/api/smo/api/impl/ApiSMOImpl.java

@@ -81,7 +81,9 @@ public class ApiSMOImpl extends DefaultAbstractComponentSMO implements IApiSMO {
         ComponentValidateResult result = this.validateStoreStaffCommunityRelationship(pd, restTemplate);
         if (!StringUtil.isEmpty(result.getUserId())) {
             headers.remove("user-id");
+            headers.remove("user_id");
             headers.put("user-id", result.getUserId());
+            headers.put("user_id", result.getUserId());
             if (!StringUtil.isEmpty(result.getUserName())) {
                 headers.put("user-name", URLEncoder.encode(result.getUserName(), "UTF-8"));
             }

+ 1 - 1
service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java

@@ -637,7 +637,7 @@ public class ImportRoomFeeImpl implements IImportRoomFee {
         payFeeConfigPo.setFeeFlag("2006012");
         payFeeConfigPo.setIsDefault("T");
         payFeeConfigPo.setPaymentCd("2100");
-        payFeeConfigPo.setFeeName(IMPORT_FEE_NAME);
+        payFeeConfigPo.setFeeName(feeConfigDto.getFeeName());
         payFeeConfigPo.setSquarePrice("0");
         payFeeConfigPo.setPaymentCycle("1");
         payFeeConfigPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));

+ 285 - 46
service-job/src/main/java/com/java110/job/adapt/hcToTianchuang/PersonToTianchuangAdapt.java

@@ -18,7 +18,6 @@ package com.java110.job.adapt.hcToTianchuang;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.client.RestTemplate;
-import com.java110.core.factory.AuthenticationFactory;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.RoomAttrDto;
 import com.java110.dto.RoomDto;
@@ -49,14 +48,28 @@ import com.java110.po.machine.MachineRecordPo;
 import com.java110.po.owner.OwnerAttrPo;
 import com.java110.utils.cache.MappingCache;
 import com.java110.utils.util.*;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.util.EntityUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 
+import javax.crypto.Cipher;
+import javax.crypto.KeyGenerator;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+import java.net.URLDecoder;
+import java.security.GeneralSecurityException;
+import java.security.MessageDigest;
+import java.security.SecureRandom;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -69,7 +82,7 @@ import java.util.List;
  */
 @Component(value = "personToTianchuangAdapt")
 public class PersonToTianchuangAdapt extends DatabusAdaptImpl {
-
+    protected static MessageDigest messageDigest = null;
     private static Logger logger = LoggerFactory.getLogger(PersonToTianchuangAdapt.class);
     @Autowired
     private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
@@ -156,14 +169,15 @@ public class PersonToTianchuangAdapt extends DatabusAdaptImpl {
         }
 
         //判断住户是否传天创
-        String idCard = machineRecordPo.getIdCard();
+        String name = machineRecordPo.getName();
 
         //身份证为空时 ,门禁记录没法传 所以就不传了
-        if (StringUtil.isEmpty(idCard)) {
+        if (StringUtil.isEmpty(name)) {
             return;
         }
         OwnerDto ownerDto = new OwnerDto();
-        ownerDto.setIdCard(idCard);
+        ownerDto.setName(machineRecordPo.getName());
+        ownerDto.setCommunityId(machineRecordPo.getCommunityId());
         List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
 
         if (ownerDtos == null || ownerDtos.size() < 1) {
@@ -227,15 +241,11 @@ public class PersonToTianchuangAdapt extends DatabusAdaptImpl {
         pages.add(page);
 
         data.put("pages", pages);
+        String json = encryptStr(data.toJSONString(), TianChuangConstant.getAppSecret());
+        String result = httpPOST2(json, TianChuangConstant.SERVICE_ID_PERSON_INOUT);
+        JSONObject paramOut = JSONObject.parseObject(result);
 
-        String dataStr = AuthenticationFactory.AesDecrypt(data.toJSONString(), TianChuangConstant.getAppSecret());
-
-        HttpEntity httpEntity = new HttpEntity(dataStr, GetTianChuangToken.getHeaders(TianChuangConstant.SERVICE_ID_PERSON_INOUT, dataStr));
-        ResponseEntity<String> responseEntity = outRestTemplate.exchange(TianChuangConstant.getUrl(), HttpMethod.POST, httpEntity, String.class);
-        logger.debug("调用HC IOT信息:" + responseEntity);
-        JSONObject paramOut = JSONObject.parseObject(AuthenticationFactory.AesEncrypt(responseEntity.getBody(), TianChuangConstant.getAppSecret()));
-
-        String code = paramOut.getJSONObject("sta").getString("cod");
+        String code = paramOut.getJSONObject("sta").getString("code");
         if (!"0000".equals(code)) {
             throw new IllegalArgumentException("同步小区失败," + paramOut.toJSONString());
         }
@@ -270,7 +280,7 @@ public class PersonToTianchuangAdapt extends DatabusAdaptImpl {
         dataObj.put("lvgmsfhm", ownerDto.getIdCard());
         dataObj.put("lvxm", ownerDto.getName());
         dataObj.put("lvlxdh", ownerDto.getLink());
-        dataObj.put("lvdjsj", ownerDto.getCreateTime());
+        dataObj.put("lvdjsj", DateUtil.getFormatTimeString(ownerDto.getCreateTime(),"yyyyMMdd HH:mm:ss"));
         dataObj.put("lvrybm", ownerDto.getMemberId());
         String qrCodeAddress = "";
         for (RoomAttrDto roomAttrDto : roomDtos.get(0).getRoomAttrDto()) {
@@ -296,19 +306,16 @@ public class PersonToTianchuangAdapt extends DatabusAdaptImpl {
         pages.add(page);
 
         data.put("pages", pages);
+        logger.debug("发送住戶信息加密前,{}", data.toJSONString());
+        String json = encryptStr(data.toJSONString(), TianChuangConstant.getAppSecret());
+        String result = httpPOST2(json, TianChuangConstant.SERVICE_ID_OWNER);
+        JSONObject paramOut = JSONObject.parseObject(result);
 
-        String dataStr = AuthenticationFactory.AesDecrypt(data.toJSONString(), TianChuangConstant.getAppSecret());
-
-        HttpEntity httpEntity = new HttpEntity(dataStr, GetTianChuangToken.getHeaders(TianChuangConstant.SERVICE_ID_OWNER, dataStr));
-        ResponseEntity<String> responseEntity = outRestTemplate.exchange(TianChuangConstant.getUrl(), HttpMethod.POST, httpEntity, String.class);
-        logger.debug("调用HC IOT信息:" + responseEntity);
-        JSONObject paramOut = JSONObject.parseObject(AuthenticationFactory.AesEncrypt(responseEntity.getBody(), TianChuangConstant.getAppSecret()));
-
-        String code = paramOut.getJSONObject("sta").getString("cod");
+        String code = paramOut.getJSONObject("sta").getString("code");
         if (!"0000".equals(code)) {
             throw new IllegalArgumentException("同步小区失败," + paramOut.toJSONString());
         }
-        String extTcOwnerId = paramOut.getJSONArray("data").getJSONObject(0).getString("result");
+        String extTcOwnerId = paramOut.getJSONArray("datas").getJSONObject(0).getString("Result");
         OwnerAttrPo ownerAttrPo = new OwnerAttrPo();
         ownerAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
         ownerAttrPo.setCommunityId(ownerDto.getCommunityId());
@@ -358,19 +365,15 @@ public class PersonToTianchuangAdapt extends DatabusAdaptImpl {
         pages.add(page);
 
         data.put("pages", pages);
+        String json = encryptStr(data.toJSONString(), TianChuangConstant.getAppSecret());
+        String result = httpPOST2(json, TianChuangConstant.SERVICE_ID_MACHINE);
+        JSONObject paramOut = JSONObject.parseObject(result);
 
-        String dataStr = AuthenticationFactory.AesDecrypt(data.toJSONString(), TianChuangConstant.getAppSecret());
-
-        HttpEntity httpEntity = new HttpEntity(dataStr, GetTianChuangToken.getHeaders(TianChuangConstant.SERVICE_ID_MACHINE, dataStr));
-        ResponseEntity<String> responseEntity = outRestTemplate.exchange(TianChuangConstant.getUrl(), HttpMethod.POST, httpEntity, String.class);
-        logger.debug("调用HC IOT信息:" + responseEntity);
-        JSONObject paramOut = JSONObject.parseObject(AuthenticationFactory.AesEncrypt(responseEntity.getBody(), TianChuangConstant.getAppSecret()));
-
-        String code = paramOut.getJSONObject("sta").getString("cod");
+        String code = paramOut.getJSONObject("sta").getString("code");
         if (!"0000".equals(code)) {
             throw new IllegalArgumentException("同步小区失败," + paramOut.toJSONString());
         }
-        String extTcMachineId = paramOut.getJSONArray("data").getJSONObject(0).getString("result");
+        String extTcMachineId = paramOut.getJSONArray("datas").getJSONObject(0).getString("Result");
         MachineAttrPo machineAttrPo = new MachineAttrPo();
         machineAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
         machineAttrPo.setCommunityId(communityDto.getCommunityId());
@@ -418,19 +421,15 @@ public class PersonToTianchuangAdapt extends DatabusAdaptImpl {
         pages.add(page);
 
         data.put("pages", pages);
-
-        String dataStr = AuthenticationFactory.AesDecrypt(data.toJSONString(), TianChuangConstant.getAppSecret());
-
-        HttpEntity httpEntity = new HttpEntity(dataStr, GetTianChuangToken.getHeaders(TianChuangConstant.SERVICE_ID_COMMUNITY, dataStr));
-        ResponseEntity<String> responseEntity = outRestTemplate.exchange(TianChuangConstant.getUrl(), HttpMethod.POST, httpEntity, String.class);
-        logger.debug("调用HC IOT信息:" + responseEntity);
-        JSONObject paramOut = JSONObject.parseObject(AuthenticationFactory.AesEncrypt(responseEntity.getBody(), TianChuangConstant.getAppSecret()));
-
-        String code = paramOut.getJSONObject("sta").getString("cod");
+        logger.debug("发送小区加密前,{}", data.toJSONString());
+        String json = encryptStr(data.toJSONString(), TianChuangConstant.getAppSecret());
+        String result = httpPOST2(json, TianChuangConstant.SERVICE_ID_COMMUNITY);
+        JSONObject paramOut = JSONObject.parseObject(result);
+        String code = paramOut.getJSONObject("sta").getString("code");
         if (!"0000".equals(code)) {
-            throw new IllegalArgumentException("同步小区失败," + paramOut.toJSONString());
+            throw new IllegalArgumentException("同步小区失败," + paramOut.getJSONObject("sta").getString("des"));
         }
-        String extTcCommunityId = paramOut.getJSONArray("data").getJSONObject(0).getString("result");
+        String extTcCommunityId = paramOut.getJSONArray("datas").getJSONObject(0).getString("Result");
         CommunityAttrPo communityAttrPo = new CommunityAttrPo();
         communityAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
         communityAttrPo.setCommunityId(communityDto.getCommunityId());
@@ -441,4 +440,244 @@ public class PersonToTianchuangAdapt extends DatabusAdaptImpl {
         return extTcCommunityId;
     }
 
+
+    /**
+     * 字符串加密
+     *
+     * @param srcStr   加密字符串
+     * @param password 加密密钥
+     */
+    public static String encryptStr(String srcStr, String password) {
+        byte[] encryptResult = encryptData_AES(srcStr, password);
+        String encryptResultStr = parseByte2HexStr(encryptResult);
+        return encryptResultStr;
+    }
+
+    /**
+     * 加密
+     *
+     * @param content  需要加密的内容
+     * @param password 加密密码
+     * @return
+     */
+    private static byte[] encryptData_AES(String content, String password) {
+        try {
+            //SecretKey secretKey = getKey(password);
+            //byte[] enCodeFormat = secretKey.getEncoded();
+            byte[] enCodeFormat = parseHexStr2Byte(password);
+            SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
+            Cipher cipher = Cipher.getInstance("AES");// 创建密码器
+            byte[] byteContent = content.getBytes("utf-8");
+            cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
+            byte[] result = cipher.doFinal(byteContent);
+            return result; // 加密
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 将二进制转换成16进制
+     *
+     * @param buf
+     * @return
+     */
+    private static String parseByte2HexStr(byte buf[]) {
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < buf.length; i++) {
+            String hex = Integer.toHexString(buf[i] & 0xFF);
+            if (hex.length() == 1) {
+                hex = '0' + hex;
+            }
+            sb.append(hex.toUpperCase());
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 字符串解密
+     *
+     * @param srcStr   解密字符串
+     * @param password 加密密钥
+     */
+    public static String decryptStr(String srcStr, String password) {
+        String returnValue = "";
+        try {
+            byte[] decryptFrom = parseHexStr2Byte(srcStr);
+            byte[] decryptResult = decryptData_AES(decryptFrom, password);
+            returnValue = new String(decryptResult, "utf-8");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return returnValue;
+    }
+
+
+    /**
+     * 将16进制转换为二进制
+     *
+     * @param hexStr
+     * @return
+     */
+    private static byte[] parseHexStr2Byte(String hexStr) {
+        if (hexStr.length() < 1)
+            return null;
+        byte[] result = new byte[hexStr.length() / 2];
+        for (int i = 0; i < hexStr.length() / 2; i++) {
+            int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
+            int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2),
+                    16);
+            result[i] = (byte) (high * 16 + low);
+        }
+        return result;
+    }
+
+    /**
+     * 生成指定字符串的密钥
+     *
+     * @param secret 要生成密钥的字符
+     * @return secretKey 生成后的密钥
+     * @throws GeneralSecurityException
+     */
+    public static SecretKey getKey(String secret) throws GeneralSecurityException {
+        try {
+            KeyGenerator _generator = KeyGenerator.getInstance("AES");
+            SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
+            secureRandom.setSeed(secret.getBytes());
+            _generator.init(128, secureRandom);
+            return _generator.generateKey();
+        } catch (Exception e) {
+            throw new RuntimeException("初始化密钥出现异常");
+        }
+    }
+
+    /**
+     * 解密
+     *
+     * @param content  待解密内容
+     * @param password 解密密钥
+     * @return
+     */
+    private static byte[] decryptData_AES(byte[] content, String password) {
+        try {
+            SecretKey secretKey = getKey(password);
+            byte[] enCodeFormat = secretKey.getEncoded();
+            SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
+            Cipher cipher = Cipher.getInstance("AES");// 创建密码器
+            cipher.init(Cipher.DECRYPT_MODE, key);// 初始化
+            byte[] result = cipher.doFinal(content);
+            return result; // 加密
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static String md5(String str) {
+        if (str == null) {
+            return null;
+        }
+        try {
+            messageDigest = MessageDigest.getInstance("MD5");
+            messageDigest.reset();
+            messageDigest.update(str.getBytes("UTF-8"));
+        } catch (Exception e) {
+            return str;
+        }
+        byte[] byteArray = messageDigest.digest();
+        StringBuffer md5StrBuff = new StringBuffer();
+        for (int i = 0; i < byteArray.length; i++) {
+            if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
+                md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
+            else
+                md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
+        }
+        return md5StrBuff.toString().toUpperCase();
+    }
+
+    public static String httpPOST2(String json, String serviceId) {
+
+        String url = TianChuangConstant.getUrl();
+        String appId = TianChuangConstant.getAppId();
+        String appSecret = TianChuangConstant.getAppSecret();
+        HttpClient client = new DefaultHttpClient();
+        HttpPost post = new HttpPost(url);
+        post.setHeader("appid", appId);
+        String currdate = new SimpleDateFormat("yyyyMMdd").format(new Date());
+        String token = md5(appId + appSecret + currdate + json.replaceAll("\r\n", ""));
+        System.out.println("token:" + token);
+
+        post.setHeader("token", token);
+        post.setHeader("tranId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_tranId));
+        post.setHeader("serviceId", serviceId);
+        post.setHeader("serviceValue", serviceId);
+        post.setHeader("versionCode", "1.0");
+
+
+        String body = "";
+
+        logger.debug("请求报文={}", json);
+        try {
+            StringEntity s = new StringEntity(json, "UTF-8");
+            s.setContentType("application/json");
+            post.setEntity(s);
+            HttpResponse res = client.execute(post);
+            HttpEntity entity = res.getEntity();
+            if (entity != null) {
+                body = EntityUtils.toString(entity, "utf-8");
+            }
+            body = URLDecoder.decode(body, "utf-8");
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+        }
+        logger.debug("返回报文={}", body);
+
+        return body;
+    }
+
+    public static String httpPOST(String url, String json) {
+        HttpClient client = new DefaultHttpClient();
+        HttpPost post = new HttpPost(url);
+
+        String body = "";
+
+        try {
+            StringEntity s = new StringEntity(json, "UTF-8");
+            s.setContentType("application/json");
+            post.setEntity(s);
+            HttpResponse res = client.execute(post);
+            HttpEntity entity = res.getEntity();
+            if (entity != null) {
+                body = EntityUtils.toString(entity, "utf-8");
+            }
+            return URLDecoder.decode(body, "utf-8");
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+        }
+        return "";
+    }
+
+    private static final String SECRETKEY = "CAD3218426800B9FE0532D03A8C0310E";
+
+    public static void main(String[] args) throws Exception {
+        //String json = "{\"datas\":[{\"gmsfhm\":\"370122197507084821\",\"name\":\"李冰\"}],\"pages\":{\"psize\":\"10\",\"tcount\":\"\",\"pno\":\"1\",\"tsize\":\"\"}}";
+        // 加密
+        //String encryptResultStr = encryptStr(json, SECRETKEY);
+        //String a = "CB42C3F519BC831961E4CE27AA00FA6DEF0E494A467187F77E01CDC8FC4605295FD1BED29065B244E4C2B1AB86D0BCE7A5914F2DF70C5360F2C58D9B2B9DC32D16EF3CB68AD1A7BEC820D690763511E57A55B13D4F0558BA64A14B2DEB3B5C762CC84D88DF60F223A467FF53615D9B7DF0BC32A20F96637D425F82A4CDD7A311";
+        //System.out.println("加密后1:" + encryptResultStr);
+        // System.out.println("加密后2:" +a);
+        // System.out.println("加密后3:CB42C3F519BC831961E4CE27AA00FA6DEF0E494A467187F77E01CDC8FC4605295FD1BED29065B244E4C2B1AB86D0BCE7A5914F2DF70C5360F2C58D9B2B9DC32D16EF3CB68AD1A7BEC820D690763511E57A55B13D4F0558BA64A14B2DEB3B5C762CC84D88DF60F223A467FF53615D9B7D71A92761E9E455F104519DF3AFA4E5F2");
+        // 解密
+        String encryptResultStr = "%E8%AF%B7%E6%B1%82%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%8C%E5%8C%85%E4%BD%93%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF";
+        String decryptResultStr = decryptStr(encryptResultStr, SECRETKEY);
+        System.out.println("解密后:" + decryptResultStr);
+
+        //String decryptResultStr = decryptStr(a, "60F10B41F44BD4856C0C1952BF40690C");
+        //System.out.println(decryptResultStr);
+
+        //	System.out.println(getKey("9A1158154DFA42CADDBD0694A4E9BDC8"));
+
+    }
+
 }

+ 2 - 2
service-job/src/main/java/com/java110/job/adapt/hcToTianchuang/TianChuangConstant.java

@@ -34,7 +34,7 @@ public class TianChuangConstant {
     private static final String DEFAULT_TC_URL = "http://112.51.96.125:9080/ywxzservice/dbClient.do";
     //
     private static final String DEFAULT_APP_ID = "26810B9FE0532D03";
-    private static final String DEFAULT_APP_SECRET = "CAD3218426800B9FE0532D03A8C0310E";
+    public static final String DEFAULT_APP_SECRET = "CAD3218426800B9FE0532D03A8C0310E";
     private static final String DEFAULT_COMPANY = "122350112432"; //单位编号
 
     private static final String TC_COMPANY = "COMPANY";//公司
@@ -48,7 +48,7 @@ public class TianChuangConstant {
     //政务小区编码/楼栋外部便阿门/房屋外部编码/业主外部编码 SPEC_CD
     public static final String EXT_TC_COMMUNITY_QRCODE = "3329000004";
 
-    public static final String EXT_TC_ROOM_QRCODE = "3329000004";
+    public static final String EXT_TC_ROOM_QRCODE = "4329000004";
 
     public static final String SERVICE_ID_COMMUNITY = "ZHSQ_XQSBXX";
 

+ 1 - 0
service-user/src/main/java/com/java110/user/cmd/login/PcUserLoginCmd.java

@@ -45,6 +45,7 @@ public class PcUserLoginCmd extends AbstractServiceCmdListener {
 
     @Autowired
     private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         String paramIn = cmdDataFlowContext.getReqData();

+ 2 - 1
service-user/src/main/java/com/java110/user/cmd/register/UserRegisterServiceCmd.java

@@ -6,6 +6,7 @@ import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.AbstractServiceCmdListener;
 import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.intf.store.IStoreInnerServiceSMO;
 import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.intf.user.IUserV1InnerServiceSMO;
@@ -42,7 +43,7 @@ public class UserRegisterServiceCmd extends AbstractServiceCmdListener {
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-        reqJson.put("userId", "-1");
+        reqJson.put("userId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_userId));
         reqJson.put("levelCd", UserLevelConstant.USER_LEVEL_ADMIN);
 
         UserPo userPo = BeanConvertUtil.covertBean(reqJson, UserPo.class);