# one-stand **Repository Path**: cokeyWu/one-stand ## Basic Information - **Project Name**: one-stand - **Description**: 壹立智能名片系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-07-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README > # 智能名片项目 跑腿项目设计分为用户端,骑手端,调度平台,总后台。 每个服务都是通过git的子模块实现服务完全独立,相互不影响运行情况 --- > **项目技术简介** ``` 注意:只是针对生产环境的配置,开发环境测试环境可自由配置 ``` - 运行环境 - java 【1.8.0_201-b09】 - maven 【3.6.0】 - mysql 【5.7】 - redis 【4.0】 - 文件服务器采用阿里的oss - 使用git作为版本控制器 - 服务器配置 - 阿里ecs Ubuntu X64系统 3台4核16G - 阿里redis 1G规格 - 阿里rds mysql 1G内存 1核cpu - nexus 3.7.1 提供在文件跟目录 - 本项目所用技术框架:springcloud - eureka 【注册中心】 - zuul 【网关】 - feign 【接口调用】 - netflix 【容错】 - netty 【websocket】 - DockerFile 【dockerfile 这里根据个人情况决定是否使用docker】 --- > **模块解释:** - one-web 【对外开放型接口】 - user-api 【用户端接口】 属于需要打包启动的服务 - crm-api 【crm接口】 属于需要打包启动的服务 - crm-pc 【crm-pc接口】 属于需要打包启动的服务 - admin-pc 【总后台接口】 属于需要打包启动的服务 - config-service-repo 【全局配置】 - config-service 【配置中心服务端】 属于需要打包启动的服务 - one-config 【配置文件服务端】 属于需要打包启动的服务 - one-eureka 【注册中心】 属于需要打包启动的服务 - one-model 【实体模块】------------------------------- - one-commone 【公告工具模块】------------------------------- - one-mapper 【mybatis 文件】----------------------------------- - one-service 【业务逻辑模块】 - admin-service 【总后台逻辑】 属于需要打包启动的服务 - crm-service 【crm逻辑以及crmpc逻辑】属于需要打包启动的服务 - file-service 【图片上传逻辑】属于需要打包启动的服务 - login-service 【登录逻辑】属于需要打包启动的服务 - one-public-service 【公共逻辑】-------------------------------- - user-service 【用户端业务逻辑】属于需要打包启动的服务 - wechat-service 【微信第三方开发】属于需要打包启动的服务 - message【IM逻辑】 - one-zuul 【网管中心】 #配置环境说明 - 注册中心配置 - 替换掉所有的 - eureka: - client: - serviceUrl: - #注册中心的地址 - defaultZone: http://192.168.5.25:8761/eureka/ 中对应的ip为注册中心ip地址 - *-dev 开发环境配置 - *-pro 生产环境配置 - *-test 测试环境配置 - ssl配置 这里需要两个域名的证书 证书申请见下面部署流程中有写到 - 将证书密码分别配置到zuul下面的resources中 - 如果服务器是window 则使用jks的 否则使用pfx证书 - 网关(zuul) 一个证书两种类型分别是pfx 和jks 如果开发和测试环境不需要 就只用pfx证书就可以 - 聊天(message) 证书配置这里只需要jks的证书即可 ``` 所有的service都需要配置redis,mysql。 所有的服务都需要配置注册中心地址 message服务需要配置redis 如果想要 实现配置离这里就需要三个数据库以及redis 分别对应到相应的配置文件 ``` #3.3.0配置说明 ``` 取消了one-config目录 升级添加了config-service(全局配置中心) 所有配置都在config-service-repo ``` - 数据库配置在config-service-repo 中的mysql-* - redis配置在config-service-repo 中的redis-* - 小程序信息配置以及自定义信息配置在config-service-repo 中的commone-* - 基础信息配置在config-service-repo 中的basis-* - 针对web层单独添加了web-* #打包步骤 ``` 在需要打包的目录下面运行mvn package ``` - deploy model 到nexus - deploy common 到nexus - deploy mapper 到nexus - deploy one-public-service 到nexus - packeage eureka,zuul等服务 # 启动流程 ``` nohup java -jar [jar包名] & ``` - 第一步启动eureka - 第二步启动config-service - 第三步起动zuul - 其它服务启动无顺序 # 部署流程 - 项目配置 - 启动nexus ``` bin目录下面 使用./nexus start 命令启动 ``` - 上传wechat-sdk-master 项目 - 修改maven setting.xml配置文件 将私服地址配置 【参考地址:https://cloud.tencent.com/developer/article/1098713】 - 修改pom文件distributionManagement 地址 - 到公众平台创建两个小程序 - 绑定两个小程序到第开放平台 - 到微信开放平台创建第三方平台 (平台型服务商) - 第三方平台需要勾选全部小程序权限 - 在第三方平台设置白名单ip - 绑定两个小程序到第三方平台 - 配置短信 - 登录阿里云进入短信服务 - 配置签名 - 添加短信模板SMS_165545203 - 将短信模板配置到common-*.yml文件中 - 数据库配置 - 添加企业并且设置company_key 【company】 - 添加小程序账号信息以及网站信息 这里的company_key为上一步的值 【company-account】 - 添加默认company_key将global_key=default_company_key and global_type=2 中的global_value设置为上一步设置的值 【global_configuration】 - 在第三方平台中找到 appid,secret,messagekey,token分别放入one-config中的配置文件 - 申请ssl域名两个并且下载Tomcat证书 【这里建议域名为api,socket两个域名】 - 将jks证书配置到message中这里需要转换为jsk 【证书转换:keytool -importkeystore -srckeystore **.pfx -srcstoretype pkcs12 -destkeystore one-stand.jks -deststoretype JKS】 - 配置oss 在阿里云中申请oss 将oss信息放入one-config模块中 - 早wechat-service 配置extjson的请求地址,分别是uploadUrl(文件上传域名)baseUrl(请求地址)wssUrl(聊天请求地址) - 白名单设置: wechat-service中的yml配置的sokcet,api,oss域名分别换成刚刚申请的两个域名,oss的域名则为阿里oss的图片请求域名 - 将global_configuration 表中的default_company_key 对应的值配置为自定义的值 - 配置到这一补后就可以启动全部服务了 - 现在开始启动小程序的 将小程序中请求头的company_key设置为刚刚default_company_key对应的值 - 这时请求小程序会提示【未购买服务,请联系客服】说明这里服务是配置成功了 - 在company中添加一条默认数据 company_key 为刚刚自定义的值 - 在company_account 中添加两条数据 company_id分别是company 中新加的id company_key 都是默认的default_company_key值 - 这是再次使用小程序 如果提示【您的小程序还未通过验证】 则修改company_account中的state字段为1 - 到这里就证明都配置成功 - 在company_account 添加pc小程序端 redirect_uri 为【https://***/index.html】 - 在pc代码中请求头中的company_key改为默认值 - 在小程序中分别创建企业,名片 - 登录crmpc端 在小程序管理中托管两个小程序 - 配置成功后 小程序太阳码会生成是败 这里主要是因为小程序没有发布通过 - 发布:在总后台小程序管理中进行发布操作, - 先使用开发工具将小程序代码提交到草稿箱 - 在总后台的代码管理中将草稿箱存为模板 - 将模板添加到版本库 - 最后在小程序管理中将代码提交,获取体验码,提交审核 - 审核通过后在小程序管理中发布相应的小程序 # 其它配置 - 在中后台将刚刚创建的公司 设置为高级版,代理商 后就能在小程序中创建企业了 - 如果出先图片上传不成功,请查看oss配置是否成功,是否是能够访问到该地址 - 如果收不到服务通知则可能是小程序托管未成功,解决方法 1,重新托管小程序,2,在one.stand.service.impl.ComponentServiceImpl.addTemplate 收动添加模板 # 第三方开发文档 - 得到微信 ticket 这里是微信回掉10分钟一次 【https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1】 - 获取componentToken 使用ticket 则可以获取到相应token - 获取authorizerToken 用户托管小程序后就能获取到相应token # 接口文档 - 接口文档地址请访问http://ip:port/swagger-ui.html # 第三方配置 - 授权事件接收URL: https://api域名/wechatApi/wx/wxcallback/$APPID$ 【审核通知】 - 消息与事件接收URL:https://api域名/wechatApi/wx/program/$APPID$ 【得到ticket】 - 小程序服务器域名:api域名;restapi.amap.com;oss访问域名;socket域名 【第三方配置请求域名,跟小程序白名单有关系】