ソースを参照

recode

master
hanzhenchao 2年前
コミット
df2a7a1b01
15個のファイルの変更555行の追加421行の削除
  1. +127
    -127
      client/src/main/java/com/trust/ywx/customer/client/CustomerClientService.java
  2. +5
    -52
      common/src/main/java/com/trust/ywx/customer/common/enu/CommonStatusEnum.java
  3. +1
    -14
      common/src/main/java/com/trust/ywx/customer/common/enu/FirmPropEnum.java
  4. +3
    -28
      common/src/main/java/com/trust/ywx/customer/common/enu/UserStampTypeEnum.java
  5. +0
    -5
      common/src/main/java/com/trust/ywx/customer/common/model/manager/request/FirmParam.java
  6. +33
    -36
      common/src/main/java/com/trust/ywx/customer/common/model/manager/request/FirmPropParam.java
  7. +1
    -1
      common/src/main/java/com/trust/ywx/customer/common/model/manager/response/FirmBaseDto.java
  8. +1
    -1
      common/src/main/java/com/trust/ywx/customer/common/model/manager/response/FirmWithExtendDto.java
  9. +3
    -3
      common/src/main/java/com/trust/ywx/customer/common/model/manager/response/TempFirmDto.java
  10. +230
    -0
      common/src/main/java/com/trust/ywx/customer/common/util/FirmPropUtil.java
  11. +10
    -120
      customer/src/main/java/com/trust/ywx/customer/service/manager/impl/FirmManagerServiceImpl.java
  12. +7
    -32
      customer/src/main/java/com/trust/ywx/customer/service/query/impl/FirmQueryServiceImpl.java
  13. +0
    -2
      customer/src/test/java/com/trust/ywx/customer/TempFirmServiceTests.java
  14. +11
    -0
      facade/pom.xml
  15. +123
    -0
      facade/src/main/java/com/trust/ywx/customer/service/client/CustomerClientService.java

+ 127
- 127
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;
/**
* <pre></pre>
*
* @文件名称: 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<String, FirmBaseDto> localFirmInfoMap = new ConcurrentHashMap<>();
private static Map<String, Map<String, String>> 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<String, String> 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;
//
///**
// * <pre></pre>
// *
// * @文件名称: 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<String, FirmBaseDto> localFirmInfoMap = new ConcurrentHashMap<>();
// private static Map<String, Map<String, String>> 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<String, String> 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);
// }
//
//}

+ 5
- 52
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;
}



+ 1
- 14
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;


+ 3
- 28
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;
}
}

+ 0
- 5
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


+ 33
- 36
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;

}

+ 1
- 1
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


+ 1
- 1
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


+ 3
- 3
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


+ 230
- 0
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;

/**
* <pre></pre>
*
* @文件名称: 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<String,String> map){
FirmPropParam propParam = new FirmPropParam();
for (Map.Entry<String,String> 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<String, String> convertToDbMap(FirmPropParam propParam) {
Map<String, String> 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());

}
}

+ 10
- 120
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<String, String> propMap = convertToMap(param);
Map<String, String> 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<String, String> propMap = convertToMap(param);
Map<String, String> propMap = FirmPropUtil.convertToDbMap(param);
firmExtendDao.batchInsert(param.getClientId(), propMap);
return num;
}
@@ -250,113 +249,4 @@ public class FirmManagerServiceImpl implements FirmManagerService {
return false;
}


public Map<String, String> convertToMap(FirmPropParam propParam) {
Map<String, String> 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;
}
}

+ 7
- 32
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<String, String> map = getAllProp(clientId);
FirmPropParam propParam = convertExtendMapToDto(map);
FirmPropParam propParam = FirmPropUtil.convertToDto(map);
dto.setFirmProp(propParam);
return dto;

}

private FirmPropParam convertExtendMapToDto(Map<String, String> map) {
FirmPropParam prop = new FirmPropParam();
prop.setNetworkType(map.get(FirmPropEnum.NETWORK_TYPE.getProperName()));
return null;
}

@Override
public Map<String, String> getAllProp(String clientId) {
if (StringUtils.isEmpty(clientId)) {
@@ -227,17 +218,17 @@ public class FirmQueryServiceImpl implements FirmQueryService {
// 1、从firm_info_extend获取全量属性
List<FirmInfoExtend> 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<FirmUsercertChannel> 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<CrmFirmDto> getCrmFirmList(SearchCrmFirmParam param) {
return null;


+ 0
- 2
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


+ 11
- 0
facade/pom.xml ファイルの表示

@@ -54,6 +54,17 @@
<!-- 如果不想facade包有多余的依赖,此处scope设为provided,否则可以删除 -->
<scope>provided</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/com.aliyun.openservices/ons-client -->
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>ons-client</artifactId>
</dependency>

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
</dependencies>

</project>

+ 123
- 0
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;

/**
* <pre></pre>
*
* @文件名称: 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<String, FirmBaseDto> localFirmInfoMap = new ConcurrentHashMap<>();
private static Map<String, Map<String, String>> 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<String, String> 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);
}

}

読み込み中…
キャンセル
保存