From df2a7a1b01055ed314af1410767c34cb1e75957f Mon Sep 17 00:00:00 2001 From: hanzhenchao Date: Tue, 28 Jun 2022 20:55:38 +0800 Subject: [PATCH] recode --- .../ywx/customer/client/CustomerClientService.java | 254 ++++++++++----------- .../ywx/customer/common/enu/CommonStatusEnum.java | 57 +---- .../ywx/customer/common/enu/FirmPropEnum.java | 15 +- .../ywx/customer/common/enu/UserStampTypeEnum.java | 31 +-- .../common/model/manager/request/FirmParam.java | 5 - .../model/manager/request/FirmPropParam.java | 69 +++--- .../common/model/manager/response/FirmBaseDto.java | 2 +- .../model/manager/response/FirmWithExtendDto.java | 2 +- .../common/model/manager/response/TempFirmDto.java | 6 +- .../ywx/customer/common/util/FirmPropUtil.java | 230 +++++++++++++++++++ .../manager/impl/FirmManagerServiceImpl.java | 130 +---------- .../service/query/impl/FirmQueryServiceImpl.java | 39 +--- .../trust/ywx/customer/TempFirmServiceTests.java | 2 - facade/pom.xml | 11 + .../service/client/CustomerClientService.java | 123 ++++++++++ 15 files changed, 555 insertions(+), 421 deletions(-) create mode 100644 common/src/main/java/com/trust/ywx/customer/common/util/FirmPropUtil.java create mode 100644 facade/src/main/java/com/trust/ywx/customer/service/client/CustomerClientService.java diff --git a/client/src/main/java/com/trust/ywx/customer/client/CustomerClientService.java b/client/src/main/java/com/trust/ywx/customer/client/CustomerClientService.java index 54f022c..5150747 100644 --- a/client/src/main/java/com/trust/ywx/customer/client/CustomerClientService.java +++ b/client/src/main/java/com/trust/ywx/customer/client/CustomerClientService.java @@ -1,127 +1,127 @@ -package com.trust.ywx.customer.client; - -import com.alibaba.fastjson.JSONObject; -import com.aliyun.openservices.ons.api.*; -import com.trust.ywx.customer.common.model.manager.response.FirmBaseDto; -import com.trust.ywx.customer.service.query.FirmQueryService; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Bean; - -import javax.annotation.Resource; -import java.util.Map; -import java.util.Properties; -import java.util.concurrent.ConcurrentHashMap; - -/** - *

- *
- * @文件名称: CustomerClientService.java
- * @包 路  径: com.trust.ywx.customer.client
- * @Copyright:北京数字医信责任有限公司 (C) 2022 *
- * @Description:
- * @Version: V1.0
- * @Author: hanzhenchao
- * @Date:2022/6/28 14:40
- * @Modify:
- */
-@Slf4j
-@Data
-public class CustomerClientService {
-
-    private String rocketMqHost;
-
-    private String accessKey;
-    private String secretKey;
-    private String groupID;
-    private int ConsumeThreadNums = 10;
-    private int MaxReconsumeTimes = 5;
-
-    private static final String TOPIC = "topic_firm_change";
-
-    @Resource
-    private FirmQueryService firmQueryService;
-
-    private static Map localFirmInfoMap = new ConcurrentHashMap<>();
-    private static Map> localFirmExtendMap = new ConcurrentHashMap<>();
-
-    /**
-     * 获取可信客户详情
-     */
-    public FirmBaseDto getFirmByClientId(String clientId) {
-        FirmBaseDto dto = localFirmInfoMap.get(clientId);
-        if (dto != null) {
-            return dto;
-        }
-
-        // 调用dubbo接口获取最新的客户信息
-        if (firmQueryService == null) {
-            //在这里如何再获取一把呢?有无必要?
-        }
-        dto = firmQueryService.getBaseByClientId(clientId);
-        if (null != dto) {
-            localFirmInfoMap.put(clientId, dto);
-        }
-        return dto;
-    }
-
-    /**
-     * 获取客户属性信息
-     *
-     * @param clientId
-     * @param propName
-     * @return
-     */
-    public String getProp(String clientId, String propName) {
-        Map extendMap = localFirmExtendMap.get(clientId);
-        if (null != extendMap) {
-            return extendMap.get(propName);
-        }
-
-        // 调用dubbo接口获取属性信息
-        extendMap = firmQueryService.getAllProp(clientId);
-        if (extendMap != null) {
-            localFirmExtendMap.put(clientId, extendMap);
-        }
-        return null;
-    }
-
-    private void refresh(FirmBaseDto dto){
-        localFirmInfoMap.put(dto.getClientId(),dto);
-    }
-
-    @Bean
-    public void initConsumer() {
-        Properties properties = new Properties();
-        properties.put("ONSAddr", rocketMqHost);
-        properties.put("AccessKey", accessKey);
-        properties.put("SecretKey", secretKey);
-//        properties.put("ConsumerId", groupID);
-        properties.setProperty("ConsumeThreadNums", String.valueOf(ConsumeThreadNums));
-        properties.setProperty("maxReconsumeTimes", String.valueOf(MaxReconsumeTimes));
-        Consumer consumer = ONSFactory.createConsumer(properties);
-
-        consumer.subscribe("topic", "", new MessageListener() {
-            @Override
-            public Action consume(Message message, ConsumeContext consumeContext) {
-                FirmBaseDto dto = JSONObject.parseObject(message.getBody(), FirmBaseDto.class);
-                refresh(dto);
-                return Action.CommitMessage;
-            }
-        });
-
-        consumer.start();
-        log.info(" MQ consumer started, topic = {} ",TOPIC);
-        Thread shutdownHookOne = new Thread() {
-            public void run() {
-                log.info(" MQ Consumer shutdown!");
-                if (consumer != null) {
-                    consumer.shutdown();
-                    log.info(" MQ Consumer shutdown success!");
-                }
-            }
-        };
-        Runtime.getRuntime().addShutdownHook(shutdownHookOne);
-    }
-
-}
+//package com.trust.ywx.customer.client;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.aliyun.openservices.ons.api.*;
+//import com.trust.ywx.customer.common.model.manager.response.FirmBaseDto;
+//import com.trust.ywx.customer.service.query.FirmQueryService;
+//import lombok.Data;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.context.annotation.Bean;
+//
+//import javax.annotation.Resource;
+//import java.util.Map;
+//import java.util.Properties;
+//import java.util.concurrent.ConcurrentHashMap;
+//
+///**
+// * 

+// *
+// * @文件名称: CustomerClientService.java
+// * @包 路  径: com.trust.ywx.customer.client
+// * @Copyright:北京数字医信责任有限公司 (C) 2022 *
+// * @Description:
+// * @Version: V1.0
+// * @Author: hanzhenchao
+// * @Date:2022/6/28 14:40
+// * @Modify:
+// */
+//@Slf4j
+//@Data
+//public class CustomerClientService {
+//
+//    private String rocketMqHost;
+//
+//    private String accessKey;
+//    private String secretKey;
+//    private String groupID;
+//    private int ConsumeThreadNums = 10;
+//    private int MaxReconsumeTimes = 5;
+//
+//    private static final String TOPIC = "topic_firm_change";
+//
+//    @Resource
+//    private FirmQueryService firmQueryService;
+//
+//    private static Map localFirmInfoMap = new ConcurrentHashMap<>();
+//    private static Map> localFirmExtendMap = new ConcurrentHashMap<>();
+//
+//    /**
+//     * 获取可信客户详情
+//     */
+//    public FirmBaseDto getFirmByClientId(String clientId) {
+//        FirmBaseDto dto = localFirmInfoMap.get(clientId);
+//        if (dto != null) {
+//            return dto;
+//        }
+//
+//        // 调用dubbo接口获取最新的客户信息
+//        if (firmQueryService == null) {
+//            //在这里如何再获取一把呢?有无必要?
+//        }
+//        dto = firmQueryService.getBaseByClientId(clientId);
+//        if (null != dto) {
+//            localFirmInfoMap.put(clientId, dto);
+//        }
+//        return dto;
+//    }
+//
+//    /**
+//     * 获取客户属性信息
+//     *
+//     * @param clientId
+//     * @param propName
+//     * @return
+//     */
+//    public String getProp(String clientId, String propName) {
+//        Map extendMap = localFirmExtendMap.get(clientId);
+//        if (null != extendMap) {
+//            return extendMap.get(propName);
+//        }
+//
+//        // 调用dubbo接口获取属性信息
+//        extendMap = firmQueryService.getAllProp(clientId);
+//        if (extendMap != null) {
+//            localFirmExtendMap.put(clientId, extendMap);
+//        }
+//        return null;
+//    }
+//
+//    private void refresh(FirmBaseDto dto){
+//        localFirmInfoMap.put(dto.getClientId(),dto);
+//    }
+//
+//    @Bean
+//    public void initConsumer() {
+//        Properties properties = new Properties();
+//        properties.put("ONSAddr", rocketMqHost);
+//        properties.put("AccessKey", accessKey);
+//        properties.put("SecretKey", secretKey);
+////        properties.put("ConsumerId", groupID);
+//        properties.setProperty("ConsumeThreadNums", String.valueOf(ConsumeThreadNums));
+//        properties.setProperty("maxReconsumeTimes", String.valueOf(MaxReconsumeTimes));
+//        Consumer consumer = ONSFactory.createConsumer(properties);
+//
+//        consumer.subscribe("topic", "", new MessageListener() {
+//            @Override
+//            public Action consume(Message message, ConsumeContext consumeContext) {
+//                FirmBaseDto dto = JSONObject.parseObject(message.getBody(), FirmBaseDto.class);
+//                refresh(dto);
+//                return Action.CommitMessage;
+//            }
+//        });
+//
+//        consumer.start();
+//        log.info(" MQ consumer started, topic = {} ",TOPIC);
+//        Thread shutdownHookOne = new Thread() {
+//            public void run() {
+//                log.info(" MQ Consumer shutdown!");
+//                if (consumer != null) {
+//                    consumer.shutdown();
+//                    log.info(" MQ Consumer shutdown success!");
+//                }
+//            }
+//        };
+//        Runtime.getRuntime().addShutdownHook(shutdownHookOne);
+//    }
+//
+//}
diff --git a/common/src/main/java/com/trust/ywx/customer/common/enu/CommonStatusEnum.java b/common/src/main/java/com/trust/ywx/customer/common/enu/CommonStatusEnum.java
index cf2b0fc..86d4f68 100644
--- a/common/src/main/java/com/trust/ywx/customer/common/enu/CommonStatusEnum.java
+++ b/common/src/main/java/com/trust/ywx/customer/common/enu/CommonStatusEnum.java
@@ -15,63 +15,16 @@ import java.util.Objects;
  * @Modify:
  */
 public enum CommonStatusEnum {
-    YES(1, "Y","true"), // 是
-    NO(0, "N","false"), // 否
+    YES("1"), // 是
+    NO("0"), // 否
     ;
 
-    private int code;
-    private String dbValue1;
-    private String dbValue2;
+    private String code;
 
-    private CommonStatusEnum(int code, String dbValue1,String dbValue2) {
+    private CommonStatusEnum(String code) {
         this.code = code;
-        this.dbValue1 = dbValue1;
-        this.dbValue2 = dbValue2;
     }
-
-    // 普通方法
-    public static int getCodeByValue1(String dbValue1) {
-        for (CommonStatusEnum t : CommonStatusEnum.values()) {
-            if (Objects.equals(t.getDbValue1(),dbValue1)) {
-                return t.getCode();
-            }
-        }
-        return -1;
-    }
-    public static int getCodeByValue2(String dbValue2) {
-        for (CommonStatusEnum t : CommonStatusEnum.values()) {
-            if (Objects.equals(t.getDbValue2(),dbValue2)) {
-                return t.getCode();
-            }
-        }
-        return -1;
-    }
-
-    public static String getDbValue1(int code) {
-        for (CommonStatusEnum t : CommonStatusEnum.values()) {
-            if (t.getCode() == code) {
-                return t.getDbValue1();
-            }
-        }
-        return null;
-    }
-
-    public static String getDbValue2(int code) {
-        for (CommonStatusEnum t : CommonStatusEnum.values()) {
-            if (t.getCode() == code) {
-                return t.getDbValue2();
-            }
-        }
-        return null;
-    }
-    public String getDbValue1() {
-        return dbValue1;
-    }
-    public String getDbValue2() {
-        return dbValue2;
-    }
-
-    public int getCode() {
+    public String getCode() {
         return code;
     }
 
diff --git a/common/src/main/java/com/trust/ywx/customer/common/enu/FirmPropEnum.java b/common/src/main/java/com/trust/ywx/customer/common/enu/FirmPropEnum.java
index 3fb95db..ab37eff 100644
--- a/common/src/main/java/com/trust/ywx/customer/common/enu/FirmPropEnum.java
+++ b/common/src/main/java/com/trust/ywx/customer/common/enu/FirmPropEnum.java
@@ -90,26 +90,13 @@ public enum FirmPropEnum {
     ;
 
 
-    /**
-     * 判断是否为合法属性
-     * @param properName
-     * @return
-     */
-    public static boolean isLegalProp(String properName) {
-        for (FirmPropEnum t : FirmPropEnum.values()) {
-            if (Objects.equals(t.getProperName(),properName)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
     private FirmPropEnum(String properName, String properDesc) {
         this.properName = properName;
         this.properDesc = properDesc;
 
     }
 
+
     private String properName;
 
     private String properDesc;
diff --git a/common/src/main/java/com/trust/ywx/customer/common/enu/UserStampTypeEnum.java b/common/src/main/java/com/trust/ywx/customer/common/enu/UserStampTypeEnum.java
index cfacc35..b2e8170 100644
--- a/common/src/main/java/com/trust/ywx/customer/common/enu/UserStampTypeEnum.java
+++ b/common/src/main/java/com/trust/ywx/customer/common/enu/UserStampTypeEnum.java
@@ -15,42 +15,17 @@ import java.util.Objects;
  * @Modify:
  */
 public enum UserStampTypeEnum {
-    STAMP(0, "stamp"), // 默认样式
-    STAMP1(1, "stamp1"), // 签章样式1
+    STAMP( "stamp"), // 默认样式
+    STAMP1("stamp1"), // 签章样式1
     ;
 
-    private int code;
     private String dbValue;
 
-    private UserStampTypeEnum(int code, String dbValue) {
-        this.code = code;
+    private UserStampTypeEnum(String dbValue) {
         this.dbValue = dbValue;
     }
 
-    // 普通方法
-    public static int getCode(String name) {
-        for (UserStampTypeEnum t : UserStampTypeEnum.values()) {
-            if (Objects.equals(t.getDbValue(),name)) {
-                return t.getCode();
-            }
-        }
-        return -1;
-    }
-
-    public static String getDbValue(int code) {
-        for (UserStampTypeEnum t : UserStampTypeEnum.values()) {
-            if (t.getCode() == code) {
-                return t.getDbValue();
-            }
-        }
-        return null;
-    }
-
     public String getDbValue() {
         return dbValue;
     }
-
-    public int getCode() {
-        return code;
-    }
 }
diff --git a/common/src/main/java/com/trust/ywx/customer/common/model/manager/request/FirmParam.java b/common/src/main/java/com/trust/ywx/customer/common/model/manager/request/FirmParam.java
index 5b43feb..72bb66f 100644
--- a/common/src/main/java/com/trust/ywx/customer/common/model/manager/request/FirmParam.java
+++ b/common/src/main/java/com/trust/ywx/customer/common/model/manager/request/FirmParam.java
@@ -94,11 +94,6 @@ public class FirmParam extends FirmPropParam {
      */
     private String certAgency="1";
 
-    /**
-     * 自动设置图章:0 手动制章 1 自动制章
-     * 改参数迁移至FirmPropParam.userStampAutoSet
-     */
-//    private String stampType;
 
     /**
      * 外键id
diff --git a/common/src/main/java/com/trust/ywx/customer/common/model/manager/request/FirmPropParam.java b/common/src/main/java/com/trust/ywx/customer/common/model/manager/request/FirmPropParam.java
index 8073c9e..1f1928c 100644
--- a/common/src/main/java/com/trust/ywx/customer/common/model/manager/request/FirmPropParam.java
+++ b/common/src/main/java/com/trust/ywx/customer/common/model/manager/request/FirmPropParam.java
@@ -24,30 +24,34 @@ public class FirmPropParam implements Serializable {
      * 0-规则计费 1-异常计费
      * see com.trust.ywx.customer.common.enums.ChargingModeEnum
      */
-    private Integer chargingMode;
+    private String chargingMode;
 
     /**
      * 是否需要实施支持
      * 0-否;1-是
      */
-    private Integer techSupport;
+    private String techSupport;
     private String techSupportInfo;
     /**
      * 医师产品形态
-     * SDK、APP
+     * APP:0-否;1-是
      */
-    private Integer doctorProductApp;
-    private Integer doctorProductSdk;
+    private String doctorProductApp;
+    /**
+     * 医师产品形态
+     * SDK:0-否;1-是
+     */
+    private String doctorProductSdk;
     /**
      * 公众产品形态
-     * 0-SDK;1-H5
+     * SDK;H5
      * see com.trust.ywx.customer.common.enums.PublicProductTypeEnum
      */
     private String publicProductType;
 
     /**
      * 客户网络类型
-     * 1-实体医院;2-互联网医院
+     * gateway-实体医院;it-互联网医院
      * see com.trust.ywx.customer.common.enums.NetworkTypeEnum
      */
     private String networkType = "it";
@@ -91,7 +95,7 @@ public class FirmPropParam implements Serializable {
      * 0-普通 1-冠新 2-微医 3-阿里客户
      * see com.trust.ywx.customer.common.enums.FirmModeEnum
      */
-    private Integer firmMode;
+    private String firmMode;
 //
 //    /**
 //     * 证书算法 RSA、SM2
@@ -103,64 +107,57 @@ public class FirmPropParam implements Serializable {
      * 0-否;1-是
      * see com.trust.ywx.customer.common.enums.CommonStatusEnum
      */
-    private Integer isFirmWhite;
-
-//    /**
-//     * ca渠道类型
-//     * see com.trust.ywx.customer.common.enums.CaChannelEnum
-//     * fixme 目前存放与firm_info表的ca_channel。以后需要迁移到firm_info_extends表
-//     */
-//    private Integer caChannel;
+    private String isFirmWhite;
 
     /**
      * 是否允许医生挂靠
      * 0-否;1-是
      * see com.trust.ywx.customer.common.enums.CommonStatusEnum
      */
-    private Integer allowUserBind;
+    private String allowUserBind;
 
 
     /**
      * 是否在挂靠医院列表里展示
      * see com.trust.ywx.customer.common.enums.CommonStatusEnum
      */
-    private Integer showFirmInBindList;
+    private String showFirmInBindList;
 
     /**
      * 审核完成发送短信
      * see com.trust.ywx.customer.common.enums.CommonStatusEnum
      */
-    private Integer smsSend = 1;
-    private Integer smsCustomize;
+    private String smsSend = "1";
+    private String smsCustomize;
     private String smsCustomizeContent;
 
     //-----------------医生签名增强-------------
     /**
      * 拒签
      */
-    private Integer doctorSignReject;
+    private String doctorSignReject;
     /**
      * 作废
      */
-    private Integer doctorSignInvalid;
+    private String doctorSignInvalid;
     /**
      * 人脸识别
      */
-    private Integer doctorSignFaceDetect;
+    private String doctorSignFaceDetect;
     //-----------------医生签名增强 end-------------
 
     /**
      * 公众号签名增强
      * see com.trust.ywx.customer.common.enums.CommonStatusEnum
      */
-    private Integer publicSignPhoto;
+    private String publicSignPhoto;
 
     /**
      * 个人图章样式
-     * see  //0:默认;1:签章样式1
+     * see  //stamp:默认;stamp1:签章样式1
      * see com.trust.ywx.customer.common.enu.UserStampTypeEnum
      */
-    private Integer userStampType = 0;
+    private String userStampType = "0";
 
 //------------------个人图章模式-----------------
     /**
@@ -168,22 +165,22 @@ public class FirmPropParam implements Serializable {
      * 默认:勾选
      * fixme 目前存放与firm_info表的stamp_type。以后需要迁移到firm_info_extends表
      */
-    private Integer userStampAutoSet = 1;
+    private String userStampAutoSet = "1";
     /**
      * 图章压缩
      */
-    private Integer userStampCompress;
+    private String userStampCompress;
 
     /**
      * 图章审核
      */
-    private Integer userStampIsCheck;
+    private String userStampIsCheck;
 
     /**
      * app设置图章
      * 默认:勾选
      */
-    private Integer userStampIsAppset = 1;
+    private String userStampIsAppset = "1";
 
     //------------------个人图章模式 end-----------------;
     //------------------企业图章模式-----------------;
@@ -192,31 +189,31 @@ public class FirmPropParam implements Serializable {
      * 默认:圆章
      * see com.trust.ywx.customer.common.enums.FirmStampEnum
      */
-    private Integer firmStampType = 0;
+    private String firmStampType = "0";
     /**
      * 厂商图章时间戳 0否 1是
      */
-    private Integer firmStampTS;
+    private String firmStampTS;
     /**
      * 子厂商图章时间戳 0否 1是
      */
-    private Integer firmStampDepartTS;
+    private String firmStampDepartTS;
 
     /**
      * 个人PDF增加水印
      * 0-否;1-是
      * see com.trust.ywx.customer.common.enums.CommonStatusEnum
      */
-    private Integer personPdfWater;
+    private String personPdfWater;
 
     /**
      * 附件pdf增加水印
      */
-    private Integer appendPdfWater;
+    private String appendPdfWater;
 
     /**
      * 自动签增强功能 -用户无感知
      */
-    private Integer selfSignInsensitive;
+    private String selfSignInsensitive;
 
 }
diff --git a/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/FirmBaseDto.java b/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/FirmBaseDto.java
index 2f5a2cb..542e093 100644
--- a/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/FirmBaseDto.java
+++ b/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/FirmBaseDto.java
@@ -34,7 +34,7 @@ public class FirmBaseDto implements Serializable {
     /**
      * 审核状态
      */
-    private String status;
+    private Integer status;
 
     /**
      * 第三方应用APP_SECRET
diff --git a/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/FirmWithExtendDto.java b/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/FirmWithExtendDto.java
index 89fed43..61e3883 100644
--- a/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/FirmWithExtendDto.java
+++ b/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/FirmWithExtendDto.java
@@ -34,7 +34,7 @@ public class FirmWithExtendDto implements Serializable {
     /**
      * 审核状态
      */
-    private String status;
+    private Integer status;
 
     /**
      * 第三方应用APP_SECRET
diff --git a/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/TempFirmDto.java b/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/TempFirmDto.java
index 02e73b1..25ad161 100644
--- a/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/TempFirmDto.java
+++ b/common/src/main/java/com/trust/ywx/customer/common/model/manager/response/TempFirmDto.java
@@ -32,7 +32,7 @@ public class TempFirmDto implements Serializable {
     /**
      * 审核状态
      */
-    private String status;
+    private Integer status;
     /**
      * 邮箱
      */
@@ -52,12 +52,12 @@ public class TempFirmDto implements Serializable {
     /**
      * 产品形态 支持app
      */
-    private Integer channelApp;
+    private String channelApp;
 
     /**
      * 产品形态 支持sdk
      */
-    private Integer channelSdk;
+    private String channelSdk;
 
     /**
      * 数字认证运营平台客户id
diff --git a/common/src/main/java/com/trust/ywx/customer/common/util/FirmPropUtil.java b/common/src/main/java/com/trust/ywx/customer/common/util/FirmPropUtil.java
new file mode 100644
index 0000000..a6fac1b
--- /dev/null
+++ b/common/src/main/java/com/trust/ywx/customer/common/util/FirmPropUtil.java
@@ -0,0 +1,230 @@
+package com.trust.ywx.customer.common.util;
+
+import com.trust.ywx.customer.common.enu.FirmPropEnum;
+import com.trust.ywx.customer.common.model.manager.request.FirmPropParam;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * 

+ *
+ * @文件名称: FirmPropUtil.java
+ * @包 路  径: com.trust.ywx.customer.common.util
+ * @Copyright:北京数字医信责任有限公司 (C) 2022 *
+ * @Description:
+ * @Version: V1.0
+ * @Author: hanzhenchao
+ * @Date:2022/6/28 19:50
+ * @Modify:
+ */
+public class FirmPropUtil {
+    /**
+     * 对外都是0/1 或者 枚举值
+     *
+     * @param properName
+     * @return
+     */
+    public static String convertShowValue(String properName, String propValue) {
+        if (isYNValue(properName)) {
+            return "Y".equalsIgnoreCase(propValue) ? "1" : "0";
+        }
+        if (isTrueFalseValue(properName)) {
+            return "true".equalsIgnoreCase(propValue) ? "1" : "0";
+        }
+        return propValue;
+    }
+
+    /**
+     * 对外都是0/1 或者 枚举值
+     *
+     * @param properName
+     * @return
+     */
+    public static String convertDbValue(String properName, String propValue) {
+        if (isYNValue(properName)) {
+            return "1".equalsIgnoreCase(propValue) ? "Y" : "N";
+        }
+        if (isTrueFalseValue(properName)) {
+            return "1".equalsIgnoreCase(propValue) ? "true" : "false";
+        }
+        return propValue;
+    }
+
+    public static FirmPropParam convertToDto(Map map){
+        FirmPropParam propParam = new FirmPropParam();
+        for (Map.Entry entry : map.entrySet()) {
+            if(FirmPropEnum.CHARGING_MODE.getProperName().equals(entry.getKey())){
+                propParam.setChargingMode(entry.getValue());
+            }else if(FirmPropEnum.TECHPERSON_SUPPORT.getProperName().equals(entry.getKey())){
+                propParam.setTechSupport(entry.getValue());
+            }else if(FirmPropEnum.TECHPERSON_SUPPORT_INFO.getProperName().equals(entry.getKey())){
+                propParam.setTechSupportInfo(entry.getValue());
+            }else if(FirmPropEnum.PUBLIC_PRODUCT_TYPE.getProperName().equals(entry.getKey())){
+                propParam.setPublicProductType(entry.getValue());
+            }else if(FirmPropEnum.DOCTOR_PRODUCT_APP.getProperName().equals(entry.getKey())){
+                propParam.setDoctorProductApp(entry.getValue());
+            }else if(FirmPropEnum.DOCTOR_PRODUCT_SDK.getProperName().equals(entry.getKey())){
+                propParam.setDoctorProductSdk(entry.getValue());
+            }else if(FirmPropEnum.NETWORK_TYPE.getProperName().equals(entry.getKey())){
+                propParam.setNetworkType(entry.getValue());
+            }else if(FirmPropEnum.HISCA_NAME.getProperName().equals(entry.getKey())){
+                propParam.setHiscaName(entry.getValue());
+            }else if(FirmPropEnum.HISCA_LOGO.getProperName().equals(entry.getKey())){
+                propParam.setHiscaLogo(entry.getValue());
+            }else if(FirmPropEnum.HISCA_PUBLICITY.getProperName().equals(entry.getKey())){
+                propParam.setHiscaPublicityPic(entry.getValue());
+            }else if(FirmPropEnum.HISCA_MONITOR_URL.getProperName().equals(entry.getKey())){
+                propParam.setHiscaMonitorUrl(entry.getValue());
+            }else if(FirmPropEnum.GATEWAY_MONITOR_URL.getProperName().equals(entry.getKey())){
+                propParam.setGatewayMonitorUrl(entry.getValue());
+            }else if(FirmPropEnum.HISCA_CALL_URL.getProperName().equals(entry.getKey())){
+                propParam.setHiscaCallUrl(entry.getValue());
+            }else if(FirmPropEnum.FIRM_MODE.getProperName().equals(entry.getKey())){
+                propParam.setFirmMode(entry.getValue());
+//            }else if(FirmPropEnum.CERT_ALG.getProperName().equals(entry.getKey())){
+//                propParam.set(entry.getValue());
+//            }else if(FirmPropEnum.CA_CHANNEL.getProperName().equals(entry.getKey())){
+//                propParam.set(entry.getValue());
+            }else if(FirmPropEnum.FIRM_ALLOW_USER_BIND.getProperName().equals(entry.getKey())){
+                propParam.setAllowUserBind(entry.getValue());
+            }else if(FirmPropEnum.SMS_SEND.getProperName().equals(entry.getKey())){
+                propParam.setSmsSend(entry.getValue());
+            }else if(FirmPropEnum.SMS_CUSTOMIZE.getProperName().equals(entry.getKey())){
+                propParam.setSmsCustomize(entry.getValue());
+            }else if(FirmPropEnum.SMS_CUSTOMIZE_CONTENT.getProperName().equals(entry.getKey())){
+                propParam.setSmsCustomizeContent(entry.getValue());
+            }else if(FirmPropEnum.REJECT_SIGN.getProperName().equals(entry.getKey())){
+                propParam.setDoctorSignReject(entry.getValue());
+            }else if(FirmPropEnum.INVALID_SIGN.getProperName().equals(entry.getKey())){
+                propParam.setDoctorSignInvalid(entry.getValue());
+            }else if(FirmPropEnum.FACE_DETECT.getProperName().equals(entry.getKey())){
+                propParam.setDoctorSignFaceDetect(entry.getValue());
+            }else if(FirmPropEnum.PUBLIC_SIGN_PHOTO.getProperName().equals(entry.getKey())){
+                propParam.setPublicSignPhoto(entry.getValue());
+            }else if(FirmPropEnum.USER_STAMP_TYPE.getProperName().equals(entry.getKey())){
+                propParam.setUserStampType(entry.getValue());
+            }else if(FirmPropEnum.USER_STAMP_IS_CHECK.getProperName().equals(entry.getKey())){
+                propParam.setUserStampIsCheck(entry.getValue());
+            }else if(FirmPropEnum.USER_STAMP_IS_APPSET.getProperName().equals(entry.getKey())){
+                propParam.setUserStampIsAppset(entry.getValue());
+            }else if(FirmPropEnum.USER_STAMP_COMPRESS.getProperName().equals(entry.getKey())){
+                propParam.setUserStampCompress(entry.getValue());
+            }else if(FirmPropEnum.USER_STAMP_AUTO_SET.getProperName().equals(entry.getKey())){
+                propParam.setUserStampAutoSet(entry.getValue());
+            }else if(FirmPropEnum.FIRM_STAMP_TYPE.getProperName().equals(entry.getKey())){
+                propParam.setFirmStampType(entry.getValue());
+            }else if(FirmPropEnum.FIRM_STAMP_TS.getProperName().equals(entry.getKey())){
+                propParam.setFirmStampTS(entry.getValue());
+            }else if(FirmPropEnum.FIRM_DEPART_STAMP_TS.getProperName().equals(entry.getKey())){
+                propParam.setFirmStampDepartTS(entry.getValue());
+            }else if(FirmPropEnum.PDF_WATER_PERSON.getProperName().equals(entry.getKey())){
+                propParam.setPersonPdfWater(entry.getValue());
+            }else if(FirmPropEnum.PDF_WATER_APPEND.getProperName().equals(entry.getKey())){
+                propParam.setAppendPdfWater(entry.getValue());
+            }else if(FirmPropEnum.SELF_SIGN_BY_FIRM.getProperName().equals(entry.getKey())){
+                propParam.setSelfSignInsensitive(entry.getValue());
+            }
+        }
+
+        return propParam;
+    }
+
+
+    public static Map convertToDbMap(FirmPropParam propParam) {
+        Map propMap = new HashMap<>(32);
+
+        propMap.put(FirmPropEnum.CHARGING_MODE.getProperName(), convertDbValue(FirmPropEnum.CHARGING_MODE.getProperName(), propParam.getChargingMode()));
+        propMap.put(FirmPropEnum.TECHPERSON_SUPPORT.getProperName(), convertDbValue(FirmPropEnum.TECHPERSON_SUPPORT.getProperName(), propParam.getTechSupport()));
+        propMap.put(FirmPropEnum.TECHPERSON_SUPPORT_INFO.getProperName(), convertDbValue(FirmPropEnum.TECHPERSON_SUPPORT_INFO.getProperName(), propParam.getTechSupportInfo()));
+        if (null != propParam.getPublicProductType()) {
+            propMap.put(FirmPropEnum.PUBLIC_PRODUCT_TYPE.getProperName(), convertDbValue(FirmPropEnum.PUBLIC_PRODUCT_TYPE.getProperName(), propParam.getPublicProductType()));
+        }
+
+        propMap.put(FirmPropEnum.DOCTOR_PRODUCT_APP.getProperName(), convertDbValue(FirmPropEnum.DOCTOR_PRODUCT_APP.getProperName(), propParam.getDoctorProductApp()));
+        propMap.put(FirmPropEnum.DOCTOR_PRODUCT_SDK.getProperName(), convertDbValue(FirmPropEnum.DOCTOR_PRODUCT_SDK.getProperName(), propParam.getDoctorProductSdk()));
+
+        if (null != propParam.getNetworkType()) {
+            propMap.put(FirmPropEnum.NETWORK_TYPE.getProperName(), convertDbValue(FirmPropEnum.NETWORK_TYPE.getProperName(), propParam.getNetworkType()));
+        }
+
+//        propMap.put(FirmPropEnum.GATEWAY_VERSION.getProperName(), propParam.getGatewayVersion());
+        propMap.put(FirmPropEnum.HISCA_NAME.getProperName(), propParam.getHiscaName());
+        propMap.put(FirmPropEnum.HISCA_LOGO.getProperName(), propParam.getHiscaLogo());
+        propMap.put(FirmPropEnum.HISCA_PUBLICITY.getProperName(), propParam.getHiscaPublicityPic());
+        propMap.put(FirmPropEnum.HISCA_MONITOR_URL.getProperName(), propParam.getHiscaMonitorUrl());
+        propMap.put(FirmPropEnum.GATEWAY_MONITOR_URL.getProperName(), propParam.getGatewayMonitorUrl());
+        propMap.put(FirmPropEnum.HISCA_CALL_URL.getProperName(), propParam.getHiscaCallUrl());
+        propMap.put(FirmPropEnum.FIRM_MODE.getProperName(), convertDbValue(FirmPropEnum.FIRM_MODE.getProperName(), propParam.getFirmMode()));
+        propMap.put(FirmPropEnum.FIRM_ALLOW_USER_BIND.getProperName(), convertDbValue(FirmPropEnum.FIRM_ALLOW_USER_BIND.getProperName(), propParam.getAllowUserBind()));
+        propMap.put(FirmPropEnum.FIRM_SHOW_INBINDLIST.getProperName(), convertDbValue(FirmPropEnum.FIRM_SHOW_INBINDLIST.getProperName(), propParam.getShowFirmInBindList()));
+
+        if (null != propParam.getSmsSend()) {
+            propMap.put(FirmPropEnum.SMS_SEND.getProperName(), convertDbValue(FirmPropEnum.SMS_SEND.getProperName(), propParam.getSmsSend()));
+        }
+        if (null != propParam.getSmsCustomize()) {
+            propMap.put(FirmPropEnum.SMS_CUSTOMIZE.getProperName(), convertDbValue(FirmPropEnum.SMS_CUSTOMIZE.getProperName(), propParam.getSmsCustomize()));
+        }
+        propMap.put(FirmPropEnum.SMS_CUSTOMIZE_CONTENT.getProperName(), propParam.getSmsCustomizeContent());
+
+        if (null != propParam.getDoctorSignReject()) {
+            propMap.put(FirmPropEnum.REJECT_SIGN.getProperName(), convertDbValue(FirmPropEnum.REJECT_SIGN.getProperName(), propParam.getDoctorSignReject()));
+        }
+        if (null != propParam.getDoctorSignInvalid()) {
+            propMap.put(FirmPropEnum.INVALID_SIGN.getProperName(), convertDbValue(FirmPropEnum.INVALID_SIGN.getProperName(), propParam.getDoctorSignInvalid()));
+        }
+        propMap.put(FirmPropEnum.FACE_DETECT.getProperName(), propParam.getDoctorSignFaceDetect());
+        if (null != propParam.getPublicSignPhoto()) {
+            propMap.put(FirmPropEnum.PUBLIC_SIGN_PHOTO.getProperName(), convertDbValue(FirmPropEnum.PUBLIC_SIGN_PHOTO.getProperName(), propParam.getPublicSignPhoto()));
+        }
+
+        if (null != propParam.getUserStampType()) {
+            propMap.put(FirmPropEnum.USER_STAMP_TYPE.getProperName(), propParam.getUserStampType());
+        }
+        if (null != propParam.getUserStampIsCheck()) {
+            propMap.put(FirmPropEnum.USER_STAMP_IS_CHECK.getProperName(), convertDbValue(FirmPropEnum.USER_STAMP_IS_CHECK.getProperName(), propParam.getUserStampIsCheck()));
+        }
+        if (null != propParam.getUserStampIsAppset()) {
+            propMap.put(FirmPropEnum.USER_STAMP_IS_APPSET.getProperName(), convertDbValue(FirmPropEnum.USER_STAMP_IS_APPSET.getProperName(), propParam.getUserStampIsAppset()));
+        }
+        propMap.put(FirmPropEnum.USER_STAMP_COMPRESS.getProperName(), propParam.getUserStampCompress());
+        propMap.put(FirmPropEnum.USER_STAMP_AUTO_SET.getProperName(), propParam.getUserStampAutoSet());
+        propMap.put(FirmPropEnum.FIRM_STAMP_TYPE.getProperName(), propParam.getFirmStampType());
+        propMap.put(FirmPropEnum.FIRM_STAMP_TS.getProperName(), propParam.getFirmStampTS());
+        propMap.put(FirmPropEnum.FIRM_DEPART_STAMP_TS.getProperName(), propParam.getFirmStampDepartTS());
+        propMap.put(FirmPropEnum.PDF_WATER_PERSON.getProperName(), propParam.getPersonPdfWater());
+        propMap.put(FirmPropEnum.PDF_WATER_APPEND.getProperName(), propParam.getAppendPdfWater());
+        propMap.put(FirmPropEnum.SELF_SIGN_BY_FIRM.getProperName(), propParam.getSelfSignInsensitive());
+
+        return propMap;
+    }
+
+    /**
+     * 判断是否为合法属性
+     *
+     * @param properName
+     * @return
+     */
+    public static boolean isLegalProp(String properName) {
+        for (FirmPropEnum t : FirmPropEnum.values()) {
+            if (Objects.equals(t.getProperName(), properName)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private static boolean isYNValue(String propName) {
+        return propName.equals(FirmPropEnum.SMS_SEND.getProperName())
+                || propName.equals(FirmPropEnum.SMS_CUSTOMIZE.getProperName())
+                || propName.equals(FirmPropEnum.USER_STAMP_IS_CHECK.getProperName());
+
+    }
+
+    private static boolean isTrueFalseValue(String propName) {
+        return propName.equals(FirmPropEnum.REJECT_SIGN.getProperName())
+                || propName.equals(FirmPropEnum.INVALID_SIGN.getProperName());
+
+    }
+}
diff --git a/customer/src/main/java/com/trust/ywx/customer/service/manager/impl/FirmManagerServiceImpl.java b/customer/src/main/java/com/trust/ywx/customer/service/manager/impl/FirmManagerServiceImpl.java
index ba20fa4..07e2967 100644
--- a/customer/src/main/java/com/trust/ywx/customer/service/manager/impl/FirmManagerServiceImpl.java
+++ b/customer/src/main/java/com/trust/ywx/customer/service/manager/impl/FirmManagerServiceImpl.java
@@ -1,14 +1,14 @@
 package com.trust.ywx.customer.service.manager.impl;
 
 import com.trust.ywx.customer.common.enu.*;
-import com.trust.ywx.customer.common.model.manager.request.FirmPropParam;
+import com.trust.ywx.customer.common.exception.BizException;
+import com.trust.ywx.customer.common.model.manager.request.FirmParam;
+import com.trust.ywx.customer.common.model.manager.response.FirmBaseDto;
+import com.trust.ywx.customer.common.util.FirmPropUtil;
 import com.trust.ywx.customer.commons.UniqueIdUtils;
-import com.trust.ywx.customer.dao.FirmExtendDao;
 import com.trust.ywx.customer.dao.FirmDao;
+import com.trust.ywx.customer.dao.FirmExtendDao;
 import com.trust.ywx.customer.dao.po.FirmInfo;
-import com.trust.ywx.customer.common.model.manager.request.FirmParam;
-import com.trust.ywx.customer.common.model.manager.response.FirmBaseDto;
-import com.trust.ywx.customer.common.exception.BizException;
 import com.trust.ywx.customer.service.manager.FirmManagerService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -19,7 +19,6 @@ import org.springframework.transaction.support.TransactionCallbackWithoutResult;
 import org.springframework.transaction.support.TransactionTemplate;
 
 import javax.annotation.Resource;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -91,7 +90,7 @@ public class FirmManagerServiceImpl implements FirmManagerService {
             throw new BizException(FirmErrEum.CLIENT_ORG_CODE_NULL);
         }
 
-        if (null !=param.getSmsCustomize() && param.getSmsCustomize()==1 && StringUtils.isNotBlank(param.getSmsCustomizeContent())
+        if (CommonStatusEnum.YES.getCode().equals(param.getSmsCustomize()) && StringUtils.isNotBlank(param.getSmsCustomizeContent())
                 && param.getSmsCustomizeContent().length() > 101) {
             throw new BizException(FirmErrEum.FIRM_SMS_CUSTOMIZECONTENT_TOOLONG);
         }
@@ -150,7 +149,7 @@ public class FirmManagerServiceImpl implements FirmManagerService {
                 firmDao.insert(firmInfo);
 
                 // 插入firm_info_extend表
-                Map propMap = convertToMap(param);
+                Map propMap = FirmPropUtil.convertToDbMap(param);
                 firmExtendDao.batchInsert(param.getClientId(), propMap);
 
             }
@@ -167,8 +166,8 @@ public class FirmManagerServiceImpl implements FirmManagerService {
 
         }
         // 客户属性有几个属性在此表维护,以后要迁移至extend表。
-        firmInfo.setSendSms(param.getSmsSend() == null ? "Y" : CommonStatusEnum.getDbValue1(param.getSmsSend()));
-        firmInfo.setStampType(param.getUserStampAutoSet() == null ? "1" : String.valueOf(param.getUserStampAutoSet()));
+        firmInfo.setSendSms(FirmPropUtil.convertDbValue(FirmPropEnum.SMS_SEND.getProperName(), param.getSmsSend()));
+        firmInfo.setStampType(FirmPropUtil.convertDbValue(FirmPropEnum.USER_STAMP_AUTO_SET.getProperName(), param.getUserStampAutoSet()));
         return firmInfo;
     }
 
@@ -232,7 +231,7 @@ public class FirmManagerServiceImpl implements FirmManagerService {
                 int num = firmDao.update(firmInfo);
 
                 // 插入firm_info_extend表
-                Map propMap = convertToMap(param);
+                Map propMap = FirmPropUtil.convertToDbMap(param);
                 firmExtendDao.batchInsert(param.getClientId(), propMap);
                 return num;
             }
@@ -250,113 +249,4 @@ public class FirmManagerServiceImpl implements FirmManagerService {
         return false;
     }
 
-
-    public Map convertToMap(FirmPropParam propParam) {
-        Map propMap = new HashMap<>(32);
-
-        propMap.put(FirmPropEnum.CHARGING_MODE.getProperName(), String.valueOf(propParam.getChargingMode()));
-        propMap.put(FirmPropEnum.TECHPERSON_SUPPORT.getProperName(), String.valueOf(propParam.getTechSupport()));
-        propMap.put(FirmPropEnum.TECHPERSON_SUPPORT_INFO.getProperName(), propParam.getTechSupportInfo());
-        if (null != propParam.getPublicProductType()) {
-            propMap.put(FirmPropEnum.PUBLIC_PRODUCT_TYPE.getProperName(), propParam.getPublicProductType());
-        }
-
-        propMap.put(FirmPropEnum.DOCTOR_PRODUCT_APP.getProperName(), String.valueOf(propParam.getDoctorProductApp()));
-        propMap.put(FirmPropEnum.DOCTOR_PRODUCT_SDK.getProperName(), String.valueOf(propParam.getDoctorProductSdk()));
-
-        if (null != propParam.getNetworkType()) {
-//            propMap.put(FirmPropEnum.NETWORK_TYPE.getProperName(), NetworkTypeEnum.getNameOfCode(propParam.getNetworkType()));
-            propMap.put(FirmPropEnum.NETWORK_TYPE.getProperName(), propParam.getNetworkType());
-        }
-
-        propMap.put(FirmPropEnum.GATEWAY_VERSION.getProperName(), propParam.getGatewayVersion());
-        propMap.put(FirmPropEnum.HISCA_NAME.getProperName(), propParam.getHiscaName());
-        propMap.put(FirmPropEnum.HISCA_LOGO.getProperName(), propParam.getHiscaLogo());
-        propMap.put(FirmPropEnum.HISCA_PUBLICITY.getProperName(), propParam.getHiscaPublicityPic());
-        propMap.put(FirmPropEnum.HISCA_MONITOR_URL.getProperName(), propParam.getHiscaMonitorUrl());
-        propMap.put(FirmPropEnum.GATEWAY_MONITOR_URL.getProperName(), propParam.getGatewayMonitorUrl());
-        propMap.put(FirmPropEnum.HISCA_CALL_URL.getProperName(), propParam.getHiscaCallUrl());
-        propMap.put(FirmPropEnum.FIRM_MODE.getProperName(), String.valueOf(propParam.getFirmMode()));
-        propMap.put(FirmPropEnum.FIRM_ALLOW_USER_BIND.getProperName(), String.valueOf(propParam.getAllowUserBind()));
-        propMap.put(FirmPropEnum.FIRM_SHOW_INBINDLIST.getProperName(), String.valueOf(propParam.getShowFirmInBindList()));
-
-        if (null != propParam.getSmsSend()) {
-            propMap.put(FirmPropEnum.SMS_SEND.getProperName(), CommonStatusEnum.getDbValue1(propParam.getSmsSend()));
-        }
-        if (null != propParam.getSmsCustomize()) {
-            propMap.put(FirmPropEnum.SMS_CUSTOMIZE.getProperName(), CommonStatusEnum.getDbValue1(propParam.getSmsCustomize()));
-        }
-        propMap.put(FirmPropEnum.SMS_CUSTOMIZE_CONTENT.getProperName(), propParam.getSmsCustomizeContent());
-
-        if (null != propParam.getDoctorSignReject()) {
-            propMap.put(FirmPropEnum.REJECT_SIGN.getProperName(), CommonStatusEnum.getDbValue2(propParam.getDoctorSignReject()));
-        }
-        if (null != propParam.getDoctorSignInvalid()) {
-            propMap.put(FirmPropEnum.INVALID_SIGN.getProperName(), CommonStatusEnum.getDbValue2(propParam.getDoctorSignInvalid()));
-        }
-        propMap.put(FirmPropEnum.FACE_DETECT.getProperName(), String.valueOf(propParam.getDoctorSignFaceDetect()));
-        if (null != propParam.getPublicSignPhoto()) {
-            propMap.put(FirmPropEnum.PUBLIC_SIGN_PHOTO.getProperName(), CommonStatusEnum.getDbValue1(propParam.getPublicSignPhoto()));
-        }
-
-        if (null != propParam.getUserStampType()) {
-            propMap.put(FirmPropEnum.USER_STAMP_TYPE.getProperName(), UserStampTypeEnum.getDbValue(propParam.getUserStampType()));
-        }
-        if (null != propParam.getUserStampIsCheck()) {
-            propMap.put(FirmPropEnum.USER_STAMP_IS_CHECK.getProperName(), CommonStatusEnum.getDbValue1(propParam.getUserStampIsCheck()));
-        }
-        if (null != propParam.getUserStampIsAppset()) {
-            propMap.put(FirmPropEnum.USER_STAMP_IS_APPSET.getProperName(), CommonStatusEnum.getDbValue1(propParam.getUserStampIsAppset()));
-        }
-        propMap.put(FirmPropEnum.USER_STAMP_COMPRESS.getProperName(), String.valueOf(propParam.getUserStampCompress()));
-        propMap.put(FirmPropEnum.USER_STAMP_AUTO_SET.getProperName(), String.valueOf(propParam.getUserStampAutoSet()));
-        propMap.put(FirmPropEnum.FIRM_STAMP_TYPE.getProperName(), String.valueOf(propParam.getFirmStampType()));
-        propMap.put(FirmPropEnum.FIRM_STAMP_TS.getProperName(), String.valueOf(propParam.getFirmStampTS()));
-        propMap.put(FirmPropEnum.FIRM_DEPART_STAMP_TS.getProperName(), String.valueOf(propParam.getFirmStampDepartTS()));
-        propMap.put(FirmPropEnum.PDF_WATER_PERSON.getProperName(), String.valueOf(propParam.getPersonPdfWater()));
-        propMap.put(FirmPropEnum.PDF_WATER_APPEND.getProperName(), String.valueOf(propParam.getAppendPdfWater()));
-        propMap.put(FirmPropEnum.SELF_SIGN_BY_FIRM.getProperName(), String.valueOf(propParam.getSelfSignInsensitive()));
-
-        // 规则统一后,可用下面的代码
-//        propMap.put(FirmPropEnum.CHARGING_MODE.getProperName(), String.valueOf(propParam.getChargingMode()));
-//        propMap.put(FirmPropEnum.TECHPERSON_SUPPORT.getProperName(), String.valueOf(propParam.getTechSupport()));
-//        propMap.put(FirmPropEnum.TECHPERSON_SUPPORT_INFO.getProperName(), propParam.getTechSupportInfo());
-//        propMap.put(FirmPropEnum.PUBLIC_PRODUCT_TYPE.getProperName(), String.valueOf(propParam.getPublicProductType()));
-//
-//        propMap.put(FirmPropEnum.DOCTOR_PRODUCT_APP.getProperName(), String.valueOf(propParam.getDoctorProductApp()));
-//        propMap.put(FirmPropEnum.DOCTOR_PRODUCT_SDK.getProperName(), String.valueOf(propParam.getDoctorProductSdk()));
-//        propMap.put(FirmPropEnum.NETWORK_TYPE.getProperName(),String.valueOf(propParam.getNetworkType());
-//        propMap.put(FirmPropEnum.GATEWAY_VERSION.getProperName(), String.valueOf(propParam.getGatewayVersion()));
-//        propMap.put(FirmPropEnum.HISCA_NAME.getProperName(), propParam.getHiscaName());
-//        propMap.put(FirmPropEnum.HISCA_LOGO.getProperName(), propParam.getHiscaLogo());
-//        propMap.put(FirmPropEnum.HISCA_PUBLICITY.getProperName(), propParam.getHiscaPublicityPic());
-//        propMap.put(FirmPropEnum.HISCA_MONITOR_URL.getProperName(), propParam.getHiscaMonitorUrl());
-//        propMap.put(FirmPropEnum.GATEWAY_MONITOR_URL.getProperName(), propParam.getGatewayMonitorUrl());
-//        propMap.put(FirmPropEnum.HISCA_CALL_URL.getProperName(), propParam.getHiscaCallUrl());
-//        propMap.put(FirmPropEnum.FIRM_MODE.getProperName(), String.valueOf(propParam.getFirmMode()));
-////        propMap.put(FirmProperEnum.CERT_ALG.getProperName(), propParam.certAlg);
-////        propMap.put(FirmProperEnum.CA_CHANNEL.getProperName(), String.valueOf(propParam.caChannel));
-//        propMap.put(FirmPropEnum.FIRM_ALLOW_USER_BIND.getProperName(), String.valueOf(propParam.getAllowUserBind()));
-//        propMap.put(FirmPropEnum.FIRM_SHOW_INBINDLIST.getProperName(), String.valueOf(propParam.getShowFirmInBindList()));
-//        propMap.put(FirmPropEnum.SMS_SEND.getProperName(), String.valueOf(propParam.getSmsSend()));
-//        propMap.put(FirmPropEnum.SMS_CUSTOMIZE.getProperName(), String.valueOf(propParam.getSmsCustomize()));
-//        propMap.put(FirmPropEnum.SMS_CUSTOMIZE_CONTENT.getProperName(), propParam.getSmsCustomizeContent());
-//        propMap.put(FirmPropEnum.REJECT_SIGN.getProperName(), String.valueOf(propParam.getDoctorSignReject()));
-//        propMap.put(FirmPropEnum.INVALID_SIGN.getProperName(), String.valueOf(propParam.getDoctorSignInvalid()));
-//        propMap.put(FirmPropEnum.FACE_DETECT.getProperName(), String.valueOf(propParam.getDoctorSignFaceDetect()));
-//        propMap.put(FirmPropEnum.PUBLIC_SIGN_PHOTO.getProperName(), String.valueOf(propParam.getPublicSignPhoto()));
-//        propMap.put(FirmPropEnum.USER_STAMP_TYPE.getProperName(), String.valueOf(propParam.getUserStampType()));
-//        propMap.put(FirmPropEnum.STAMP_IS_CHECK.getProperName(), String.valueOf(propParam.getUserStampIsCheck()));
-//        propMap.put(FirmPropEnum.STAMP_IS_APPCLOSE.getProperName(), String.valueOf(propParam.getUserStampIsAppset()));
-//        propMap.put(FirmPropEnum.USER_STAMP_COMPRESS.getProperName(), String.valueOf(propParam.getUserStampCompress()));
-//        propMap.put(FirmPropEnum.STAMP_AUTO_SET.getProperName(), String.valueOf(propParam.getUserStampAuto()));
-//        propMap.put(FirmPropEnum.FIRM_STAMP_TYPE.getProperName(), String.valueOf(propParam.getFirmStampType()));
-//        propMap.put(FirmPropEnum.FIRM_STAMP_TS.getProperName(), String.valueOf(propParam.getFirmStampTS()));
-//        propMap.put(FirmPropEnum.DEPART_STAMP_TS.getProperName(), String.valueOf(propParam.getFirmStampDepartTS()));
-//        propMap.put(FirmPropEnum.FIRM_PERSONPDF_WATER.getProperName(), String.valueOf(propParam.getPersonPdfWater()));
-//        propMap.put(FirmPropEnum.FIRM_APPENDPDF_WATER.getProperName(), String.valueOf(propParam.getAppendPdfWater()));
-//        propMap.put(FirmPropEnum.SELF_SIGN_BY_FIRM.getProperName(), String.valueOf(propParam.getSelfSignInsensitive()));
-
-        return propMap;
-    }
 }
diff --git a/customer/src/main/java/com/trust/ywx/customer/service/query/impl/FirmQueryServiceImpl.java b/customer/src/main/java/com/trust/ywx/customer/service/query/impl/FirmQueryServiceImpl.java
index 7a05d14..43f0848 100644
--- a/customer/src/main/java/com/trust/ywx/customer/service/query/impl/FirmQueryServiceImpl.java
+++ b/customer/src/main/java/com/trust/ywx/customer/service/query/impl/FirmQueryServiceImpl.java
@@ -3,23 +3,21 @@ package com.trust.ywx.customer.service.query.impl;
 import com.fiftyonetrust.common.redis.template.RedisRepository;
 import com.trust.ywx.customer.common.enu.CommonStatusEnum;
 import com.trust.ywx.customer.common.enu.FirmPropEnum;
-import com.trust.ywx.customer.common.enu.NetworkTypeEnum;
 import com.trust.ywx.customer.common.model.PageBean;
 import com.trust.ywx.customer.common.model.PageBeanUtil;
 import com.trust.ywx.customer.common.model.manager.request.FirmPropParam;
 import com.trust.ywx.customer.common.model.manager.response.FirmBaseDto;
 import com.trust.ywx.customer.common.model.manager.response.FirmWithExtendDto;
-import com.trust.ywx.customer.common.model.manager.response.TempFirmDto;
 import com.trust.ywx.customer.common.model.query.request.SearchCrmFirmParam;
 import com.trust.ywx.customer.common.model.query.request.SearchFirmParam;
 import com.trust.ywx.customer.common.model.query.response.CrmFirmDto;
+import com.trust.ywx.customer.common.util.FirmPropUtil;
 import com.trust.ywx.customer.dao.DoctorProductTypeDao;
 import com.trust.ywx.customer.dao.FirmDao;
 import com.trust.ywx.customer.dao.FirmExtendDao;
 import com.trust.ywx.customer.dao.FirmGroupDao;
 import com.trust.ywx.customer.dao.po.FirmInfo;
 import com.trust.ywx.customer.dao.po.FirmInfoExtend;
-import com.trust.ywx.customer.dao.po.FirmInfoTemp;
 import com.trust.ywx.customer.dao.po.FirmUsercertChannel;
 import com.trust.ywx.customer.service.query.FirmQueryService;
 import org.apache.commons.lang3.StringUtils;
@@ -198,26 +196,19 @@ public class FirmQueryServiceImpl implements FirmQueryService {
     @Override
     public FirmWithExtendDto getByClientId(String clientId) {
         FirmInfo po = firmDao.getFirmBLOBsByClientId(clientId);
-        if(po==null){
+        if (po == null) {
             return null;
         }
         FirmBaseDto baseDto = converPoToBaseDto(po);
         FirmWithExtendDto dto = new FirmWithExtendDto();
-        BeanUtils.copyProperties(baseDto,dto);
-        // fixme 获取配置信息
+        BeanUtils.copyProperties(baseDto, dto);
         Map map = getAllProp(clientId);
-        FirmPropParam propParam = convertExtendMapToDto(map);
+        FirmPropParam propParam = FirmPropUtil.convertToDto(map);
         dto.setFirmProp(propParam);
         return dto;
 
     }
 
-    private FirmPropParam convertExtendMapToDto(Map map) {
-        FirmPropParam prop = new FirmPropParam();
-        prop.setNetworkType(map.get(FirmPropEnum.NETWORK_TYPE.getProperName()));
-        return null;
-    }
-
     @Override
     public Map getAllProp(String clientId) {
         if (StringUtils.isEmpty(clientId)) {
@@ -227,17 +218,17 @@ public class FirmQueryServiceImpl implements FirmQueryService {
         // 1、从firm_info_extend获取全量属性
         List extendList = firmExtendDao.getListByClientId(clientId);
         for (FirmInfoExtend extendPo : extendList) {
-            map.put(extendPo.getPropName(), extendPo.getPropValue());
+            map.put(extendPo.getPropName(), FirmPropUtil.convertShowValue(extendPo.getPropName(), extendPo.getPropValue()));
         }
 
         //2、从firm_usercert_channel 获取医师产品形态属性
         List doctorProductList = doctorProductTypeDao.getByClientId(clientId);
         for (FirmUsercertChannel doctorPo : doctorProductList) {
             if (doctorPo.getChannelType() == 0) {
-                map.put(FirmPropEnum.DOCTOR_PRODUCT_APP.getProperName(), CommonStatusEnum.YES.getCode() + "");
+                map.put(FirmPropEnum.DOCTOR_PRODUCT_APP.getProperName(), CommonStatusEnum.YES.getCode());
             }
             if (doctorPo.getChannelType() == 1) {
-                map.put(FirmPropEnum.DOCTOR_PRODUCT_SDK.getProperName(), CommonStatusEnum.YES.getCode() + "");
+                map.put(FirmPropEnum.DOCTOR_PRODUCT_SDK.getProperName(), CommonStatusEnum.YES.getCode());
             }
         }
         return map;
@@ -248,22 +239,6 @@ public class FirmQueryServiceImpl implements FirmQueryService {
         return null;
     }
 
-    private TempFirmDto converTempPoToDto(FirmInfoTemp tempPo) {
-        TempFirmDto dto = new TempFirmDto();
-        BeanUtils.copyProperties(tempPo, dto);
-        if (StringUtils.isNotBlank(tempPo.getChannel())) {
-            if ("0".equals(tempPo.getChannel())) {
-                dto.setChannelApp(CommonStatusEnum.YES.getCode());
-            } else if ("1".equals(tempPo.getChannel())) {
-                dto.setChannelSdk(CommonStatusEnum.YES.getCode());
-            } else if ("2".equals(tempPo.getChannel())) {
-                dto.setChannelApp(CommonStatusEnum.YES.getCode());
-                dto.setChannelSdk(CommonStatusEnum.YES.getCode());
-            }
-        }
-        return dto;
-    }
-
     @Override
     public List getCrmFirmList(SearchCrmFirmParam param) {
         return null;
diff --git a/customer/src/test/java/com/trust/ywx/customer/TempFirmServiceTests.java b/customer/src/test/java/com/trust/ywx/customer/TempFirmServiceTests.java
index 3401291..7f8d3d9 100644
--- a/customer/src/test/java/com/trust/ywx/customer/TempFirmServiceTests.java
+++ b/customer/src/test/java/com/trust/ywx/customer/TempFirmServiceTests.java
@@ -33,8 +33,6 @@ public class TempFirmServiceTests {
     @Resource
     TempFirmManagerService managerService;
     @Resource
-    FirmQueryService queryService;
-    @Resource
     TempFirmQueryService tempQueryService;
 
     @Test
diff --git a/facade/pom.xml b/facade/pom.xml
index 7bde8cc..e6bedd5 100644
--- a/facade/pom.xml
+++ b/facade/pom.xml
@@ -54,6 +54,17 @@
             
             provided
         
+
+        
+        
+            com.aliyun.openservices
+            ons-client
+        
+
+        
+            com.alibaba
+            fastjson
+        
     
 
 
\ No newline at end of file
diff --git a/facade/src/main/java/com/trust/ywx/customer/service/client/CustomerClientService.java b/facade/src/main/java/com/trust/ywx/customer/service/client/CustomerClientService.java
new file mode 100644
index 0000000..4436a09
--- /dev/null
+++ b/facade/src/main/java/com/trust/ywx/customer/service/client/CustomerClientService.java
@@ -0,0 +1,123 @@
+package com.trust.ywx.customer.service.client;
+
+import com.alibaba.fastjson.JSONObject;
+import com.aliyun.openservices.ons.api.*;
+import com.trust.ywx.customer.common.model.manager.response.FirmBaseDto;
+import com.trust.ywx.customer.service.query.FirmQueryService;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+
+import javax.annotation.Resource;
+import java.util.Map;
+import java.util.Properties;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * 

+ *
+ * @文件名称: CustomerClientService.java
+ * @包 路  径: com.trust.ywx.customer.client
+ * @Copyright:北京数字医信责任有限公司 (C) 2022 *
+ * @Description:
+ * @Version: V1.0
+ * @Author: hanzhenchao
+ * @Date:2022/6/28 14:40
+ * @Modify:
+ */
+@Slf4j
+@Data
+public class CustomerClientService {
+
+    private String rocketMqHost;
+
+    private String accessKey;
+    private String secretKey;
+    private String groupID;
+    private int ConsumeThreadNums = 10;
+    private int MaxReconsumeTimes = 5;
+
+    private static final String TOPIC = "topic_firm_change";
+
+    @Resource
+    private FirmQueryService firmQueryService;
+
+    private static Map localFirmInfoMap = new ConcurrentHashMap<>();
+    private static Map> localFirmExtendMap = new ConcurrentHashMap<>();
+
+    /**
+     * 获取可信客户详情
+     */
+    public FirmBaseDto getFirmByClientId(String clientId) {
+        FirmBaseDto dto = localFirmInfoMap.get(clientId);
+        if (dto != null) {
+            return dto;
+        }
+
+        dto = firmQueryService.getBaseByClientId(clientId);
+        if (null != dto) {
+            localFirmInfoMap.put(clientId, dto);
+        }
+        return dto;
+    }
+
+    /**
+     * 获取客户属性信息
+     *
+     * @param clientId
+     * @param propName
+     * @return
+     */
+    public String getProp(String clientId, String propName) {
+        Map extendMap = localFirmExtendMap.get(clientId);
+        if (null != extendMap) {
+            return extendMap.get(propName);
+        }
+
+        // 调用dubbo接口获取属性信息
+        extendMap = firmQueryService.getAllProp(clientId);
+        if (extendMap != null) {
+            localFirmExtendMap.put(clientId, extendMap);
+        }
+        return null;
+    }
+
+    private void refresh(FirmBaseDto dto){
+        localFirmInfoMap.put(dto.getClientId(),dto);
+    }
+
+//    @Bean
+    public void initConsumer() {
+        Properties properties = new Properties();
+        properties.put("ONSAddr", rocketMqHost);
+        properties.put("AccessKey", accessKey);
+        properties.put("SecretKey", secretKey);
+//        properties.put("ConsumerId", groupID);
+        properties.setProperty("ConsumeThreadNums", String.valueOf(ConsumeThreadNums));
+        properties.setProperty("maxReconsumeTimes", String.valueOf(MaxReconsumeTimes));
+        Consumer consumer = ONSFactory.createConsumer(properties);
+
+        consumer.subscribe("topic", "", new MessageListener() {
+            @Override
+            public Action consume(Message message, ConsumeContext consumeContext) {
+                FirmBaseDto dto = JSONObject.parseObject(message.getBody(), FirmBaseDto.class);
+                refresh(dto);
+                return Action.CommitMessage;
+            }
+        });
+
+        consumer.start();
+        log.info(" MQ consumer started, topic = {} ",TOPIC);
+        Thread shutdownHookOne = new Thread() {
+            public void run() {
+                log.info(" MQ Consumer shutdown!");
+                if (consumer != null) {
+                    consumer.shutdown();
+                    log.info(" MQ Consumer shutdown success!");
+                }
+            }
+        };
+        Runtime.getRuntime().addShutdownHook(shutdownHookOne);
+    }
+
+}