# 电子合同服务部署

# 安装JDK环境

参阅 安装JDK环境

# 字体配置

上传 chinese 目录到 /usr/share/fonts

清除字体缓存

fc-cache
fc-list

如果 fc 报找不到命令错误,执行以下命令

yum -y install fontconfig

# 创建目录

mkdir /cslc/econtract
mkdir /cslc/econtract/logs

unitid-cslc-econtract.jarjnilib 放入 /cslc/econtract 目录

# 服务脚本

cd /cslc/econtract
vi run.sh

脚本内容:

#!/bin/sh

APP_PATH=/cslc/econtract
API_NAME=unitid-cslc-econtract
JAR_NAME=$API_NAME\.jar
#PID  代表是PID文件
PID=application\.pid

# 环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${APP_PATH}/jnilib


cd $APP_PATH

#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
    exit 1
}

#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $JAR_NAME|grep -v grep|awk '{print $2}' `
  #如果不存在返回1,存在返回0
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}

#启动方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> ${JAR_NAME} is already running PID=${pid} <<<"
  else
    # ** 这里根据实际情况配置 8G系统内存建议配置 -Xms6g -Xmx6g
    nohup java -XX:+UseG1GC -Xms6g -Xmx6g -Dspring.profiles.active=production -Dspring.config.location=$APP_PATH/application.yml -Duser.timezone=GMT+8 -Djava.security.egd=file:/dev/./urandom  -jar $JAR_NAME >/dev/null 2>&1 &
    echo $! > $PID
    echo ">>> start $JAR_NAME successed PID=$! <<<"
   fi
  }

#停止方法
stop(){
  #is_exist
  pidf=$(cat $PID)
  #echo "$pidf"
  echo ">>> api PID = $pidf begin kill $pidf <<<"
  kill $pidf
  rm -rf $PID
  sleep 2
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> api 2 PID = $pid begin kill -9 $pid  <<<"
    kill -9  $pid
    sleep 2
    echo ">>> $JAR_NAME process stopped <<<"
  else
    echo ">>> ${JAR_NAME} is not running <<<"
  fi
}

#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> ${JAR_NAME} is running PID is ${pid} <<<"
  else
    echo ">>> ${JAR_NAME} is not running <<<"
  fi
}

#重启
restart(){
  stop
  start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac
exit 0

** 可修改其中 -Xms6g -Xmx6g 参数调整jvm内存 根据实际情况配置 8G系统内存建议配置 -Xms6g -Xmx6g

使用chmod +x run.sh授予可执行权限

# 配置

# 应用配置

新建配置文件

cd /cslc/econtract
vi application.yml

填写配置项:

server:
  # ** 端口
  port: 8600

logging:
  level:
    # 日志级别
    root: INFO
    cn:
      unitid:
        econtract: INFO
  # ** 日志存放地址
  file: /cslc/econtract/logs/econtract.log

management:
  security:
    enabled: false

spring:
  application:
    name: cslc-e-contract
  profiles.active: production
  aop.proxy-target-class: true
  http:
    multipart:
      # 最大上传文件大小
      max-file-size: 10MB
      # 设置总上传的数据大小
      max-request-size: 20MB
  jackson:
    default-property-inclusion: non_null
    time-zone: Asia/Shanghai
  redis:
    # ** 请填写redis数据库
    database: 0
    # ** redis密码
    password: Smart
    # 集群配置
    sentinel:
      master: mymaster
      # ** 节点配置
      nodes: 172.16.3.151:26390,172.16.3.151:26391,172.16.3.151:26392
  data:
    # MONGODB
    mongodb:
      # 请填写mongodb数据库名字
      database: mongo_cslc_econtract
      # ** 请填写mongodb数据库连接地址
      uri: mongodb://admin:Smart@172.16.3.151:27017,172.16.3.151:27019/admin


# Mongodb 配置
mongo:
  socketTimeout: 30000
  connectTimeout: 5000
  maxWaitTime: 5000
  maxConnectionsPerHost: 20
  minConnectionsPerHost: 3
  readConcern: majority
  writeConcern: majority
  readPreference: primaryPreferred


# JWT
jwt:
  # 登录会话默认过期时间(分)
  expire: 1440
  # ** 私钥
  private-key: |
    MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC2Lih4bCdWaVbJYRiwCvemcO+9
    p0Y/euUEzozfh7pBlLEfGU1nGkdozNZxHGOSookQvwxN8P+vShSMWYU96eqddRkgiTA5aA0jeU4i
    sLpBIxohjr9rySETBCubiYDQUAFQe0S2m/+CLtI0rrQpiVqjaIBcWbrkwufk7FImt5zdrQbxc6Qo
    sZMN8JorL3QdqWvJ2pQkb43q361eGdUJ5n7Ioq5f8o3Q3KKq6Zok71K9DP5SYOEJ2F1osvqKVmDO
    oISa2+g6jimBQLRqj2zmPVY/+YufWL//0ShUI3SJDrQd2OX7wrNDeys42M7j0DOXmqgSIR5yins2
    dSs0LwLkK39FAgMBAAECggEATnwwP0EI6XdURkmoYx82deQtxJzt7Kc7RwjdM+e7XEl8zRMPf52Y
    qhOlRvGeDCwttKM539I1tQTLOXPPrU67Hr615ohz2Cd1kZTPDq7obut6dH6VBRCPSSwAxW9FqXju
    OAgDIFCwkRsuwDeLsmFURRXeRur5U1iMotkUw01TLUSE0vwCjxuS812kztA8wgB58UZ6rf4F7dEM
    rUZw3hYfSODTQGglrErXLRV3TcgyBbs5eqMjqsw4RweFzyHKQwzBg9Jca80+NPFdQ1Y8rVHJqwcp
    eLZSNJ9UYBF8K0l2j6qY7NObS+gAYef/HnDBrPatMoF9Cw7oOYUjdk1lIg+QwQKBgQDtV7xTZV+/
    Ya2ifXbtFtXajoA54lOVNpPRdlKDFLo9bd8RfymRo5viPeQIg8hnykBBZ7JrjRJox2hqteY/AFHQ
    QIbGMzy7bc9xEVNOmkqwox/iiuhfxRkrfIzXeSgFkgm+PWtlAEMg9WNHCbeQa3ge9qDKEikOiWFt
    JS4XbYnniQKBgQDEgFa8r/giflvPSiefCLzKkwcd/n+sgYepN6rnEfYA6i+sUTRIwNxBxw1Tp1vD
    MvJ21FWnNjt90mHbTFzlrvsCnVuINo+Fcv7HvWBQYyMg9DHqOAnIWOFJynXhE4ylpnASjMaKILvt
    YGp6SJtiN+aZx7cZTv2Hp+WCcER5g2Qu3QKBgFKxiOo9ndiefdLph/AfTq9xivegBaMtet82LJWD
    OUiB6YC9H4ygxoVTLwpQcBjJfQ3MxXt3kXx0TcswSWKWB+tZMBwKahSbs/UfJjlyxKc6jrdt0nzb
    vWNLZ/8DNZCLS12/JJXyO3FWThrIJe7potaW83q0TR3Fe+59T8vV3ICRAoGBAJ5f5gi8N1ztxOeE
    l/yI2UjYSbM2DQcnewS69ka45jKEjZnv9RjyQFPPsAENcVsZc+ysZMCZaEeXygErQfBpIKxR0ZUu
    jGx9a7Xm/3qq/IQx7Q0ez1unryR/RpT64bAdPlTlG5v2mCDRReB7Jql57qVhH0UJsjOk8ck43Sem
    65cNAoGBANqHgPDZXsgBLUQUjZ2+LoORmM+IaSE/mI7XCMZdbMXASYZFRrmawyhyM6hSmLYWclvU
    19UZ3pwfCAEzQ9hD0u8DJ5DHpirgseHxOj+JWCst2piULRZY9mDR2KRAg+8EVrhV5BsmxD8o1K4C
    Zo4jRL17eqcMBPve6SvOHaakN4ya


# 鉴权
auth:
  manual-user-details: true
  routes[0]:
    uri: /bizadmin/**
    type: admin
  routes[1]:
    uri: /bizadmin/auth/login/**
    auth: false
  jwt-header: Authorization
  # ** 公钥
  public-key: |
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAti4oeGwnVmlWyWEYsAr3pnDvvadGP3rl
    BM6M34e6QZSxHxlNZxpHaMzWcRxjkqKJEL8MTfD/r0oUjFmFPenqnXUZIIkwOWgNI3lOIrC6QSMa
    IY6/a8khEwQrm4mA0FABUHtEtpv/gi7SNK60KYlao2iAXFm65MLn5OxSJrec3a0G8XOkKLGTDfCa
    Ky90HalrydqUJG+N6t+tXhnVCeZ+yKKuX/KN0NyiqumaJO9SvQz+UmDhCdhdaLL6ilZgzqCEmtvo
    Oo4pgUC0ao9s5j1WP/mLn1i//9EoVCN0iQ60Hdjl+8KzQ3srONjO49Azl5qoEiEecop7NnUrNC8C
    5Ct/RQIDAQAB
  audit:
    # 审计日志
    enabled: true
    routes[0]:
      uri: /bizadmin/**

# 缓存配置
jetcache:
  statIntervalMinutes: 60
  areaInCacheName: false
  local:
    default:
      type: caffeine
      keyConvertor: fastjson
      limit: 5000
  remote:
    default:
      type: redis.lettuce4
      keyConvertor: fastjson
      valueEncoder: java
      valueDecoder: java
      # 缓存Redis连接池配置
      poolConfig:
        minIdle: 1
        maxIdle: 3
        maxTotal: 10
      # ** Redis 连接配置 结构  redis-sentinel://<密码>@<节点,节点>/<数据库编号>?sentinelMasterId=<Redis集群名称>
      uri: redis-sentinel://unitid123456@172.16.3.151:26390,172.16.3.151:26391,172.16.3.151:26392/1?sentinelMasterId=mymaster


ec:
  # 运行模式 dev开发环境 demo 演示环境 production 生产环境
  runMode: production
  # 最小密码编号
  minSecretKeyIndex: 0
  # 最大密码编号
  maxSecretKeyIndex: 99
  # ** 电子合同公网地址
  baseUrl: http://222.190.151.227:8650
  # 一键登陆页面地址
  loginPageUrl: ${ec.baseUrl}/auth/cslc-login
  # ** 内部接口安全token
  internalApiToken: 123456
  # 是否发送邮件
  sendEmail: true
  # 发送电子邮件重试间隔
  sendEmailRetryDelay: 3,30,60,600,3600

# FS
fs:
  # ** FS服务请求地址
  serverUrl: http://172.16.3.228:20128/spi/v1
  # ** FS 创建的 app id
  appKey: 5ed5b7e56b2f0700013aa15f
  # ** FS 创建的 app 密钥
  appSecret: 2WPE36Kbwrr0pqzrz4n1KXUx9feZLgdc
  compress:
    # 人像照片压缩
    owner-photo: owner-photo
    # 身份证图片压缩
    owner-idcard: owner-idcard
  timeout:
    # 以下单位均为分钟
    # 合同下载过期时间
    contract-download: 30
    # 签章文件下载过期时间
    stamp-download: 30
    # 签署文件下载过期时间
    sign-download: 30
    # 印章文件下载过期时间
    seal-download: 30
    # 合同模板下载过期时间
    contract-template-download: 30
    # 体彩pdf文件下载过期时间
    cslc-pdf-download: 1440
  bucket:
    # 体彩 pdf文件 bucket 地址
    cslc-contract: cslc-contract
    # 体彩加密文件 bucket 地址
    cslc-contract-encryption: cslc-contract-encryption
    # 体彩基础 bucket 地址
    cslc-common: cslc-common

# 体彩配置
cslc:
  # 实名认证配置
  realnameAuth:
    #  ** 体彩实名认证服务请求地址
    url: http://localhost:8601
    #  ** 鉴权标识
    userKey: 234efwerwe
  # 实体渠道系统配置
  ecapi:
    # ** 体彩渠道服务请求地址
    url: http://localhost:8601
    # ** 系统安全认证标识
    systemKey: dev
    retry:
      # 接口请求失败重试间隔
      delay: 3,30,60,600,3600,7200

# 手写屏配置
handwriting-screen:
  # ** 手写屏公网地址
  base: http://222.190.151.227:8651
  # 初始化页面路径
  init-page-path: /init


# 签章服务配置
seal:
  #  ** 签章服务地址
  url: http://172.16.3.213:24060/api


# 解析 excel 配置
excel:
  # 多店门店信息excel表头配置
  headerInfos[0]:
    key: shopNo
    title: 门店编码
  headerInfos[1]:
    key: terminalNo
    title: 终端编码
  headerInfos[2]:
    key: cityDivision
    title: 市级区划
  headerInfos[3]:
    key: countyDivision
    title: 县级区划
  headerInfos[4]:
    key: addressStr
    title: 销售场所地址
  headerInfos[5]:
    key: saleTypes
    title: 销售种类
  headerInfos[6]:
    key: deposit
    title: 押金(元)
  headerInfos[7]:
    key: earnestMoney
    title: 保证金(元)


# 密码机配置文件

cd /cslc/econtract
vi swsds.ini

内容:

#SWXA密码设备接口配置文件
[ErrorLog]
level=2
logfile=swsds.log
maxsize=10
[HSM1]
ip=172.16.6.20
port=8008
passwd=11111111
[HSM2]
ip=172.16.6.21
port=8008
passwd=11111111
[Timeout]
connect=30
service=60
[ConnectionPool]
poolsize=10

修改[HSM1]部分 设置正确的 ip、port、password

修改[HSM2]部分 设置正确的 ip、port、password

# 命令

启动

./run.sh start

停止

./run.sh stop

重启

./run.sh restart

检查运行状态

./run.sh status

# 系统配置

电子合同初始化配置

最后更新于: 11/9/2020, 11:13:44 AM