1.相家项目结构说明
添加时间:2018年12月11日14:59:24
1.1项目划分模块的作用_如下图所示
xiangjia-web:相家后台 统一对外test访问ip:http://jia-test.lbadvisor.com/editing/ 线上访问:https://jia.lbadvisor.com/
接口对外访问testIp:http://52.80.126.45:8081/swagger-ui.html 线上Ip:http://52.80.75.65:8081/swagger-ui.html
xiangjiaapi:是对外提供http 接口的模块(mvc中的controller模块)
community:社区模块
opencv:图片识别模块,提供户型的识别划线打点等功能
xiangjiacommon:公共jar包模块
xiangjiahouse:户型and城市模块
xiangjiauser:用户登录模块
xiangjiaweapp:小程序模块(主要是和微信小程序官方提供的api相结合)
xiangjiaweixin:微信登录和注册and绑定模块
grabbag:测算接口的业务功能
1.2项目属性文件配置
1.2.1:整个项目是用maven3+springboot+dubbo+mybatis+idea 搭建开发完成.
1.2.2:项目打包运行启动上线在采用shell脚本一键完成,无需手动上传.(test: ./start_idea_opencv_dev.sh ./startup_idea_dev.sh)
online:(./start_idea_opencv_online.sh ./start_user_online.sh ./start_api_online.sh)前者是test服务器,后者是线上
1.2.3:项目的搭建和配置 如下图所示
![](https://i-blog.csdnimg.cn/blog_migrate/129d14693b5e78cbf975b2389109686f.png)
1:最外层的pom文件中的<modules>把每个模块中的<artifactId> 包含其中
2:每个模块的结构(利用maven打包是根据参数的设置启动不同的springboot 的application-xxx.properties文件的配置)具体代码有写
![](https://i-blog.csdnimg.cn/blog_migrate/32b36f773b816f4206bb9b198c3132c6.png)
3:每个application-xxx.properties文件中会有 1:tomcat内置启动的port 2:dubbo的port3:zookeeper的registry.address
4:本架构采用的是alibaba.druid.pool.DruidDataSource连接的数据库.设置了数据库监控各个参数的配置但线上目前没有启动
5:日志采用的是logback-spring.xml 配置 每天会在当前的jar运行的目录根据日期log/user/spring-boot.%d{yyyy-MM-dd}.log生成,
线上每天会有定时任务放到s3(类似hdfs:分布式文件存储系统)
2服务器环境相关
开发:
opencv:环境的搭建和安装 https://github.com/LProDreamAll/opencv/blob/master/README.md
开发:ssh -i ~/.ssh/dev_xs.pem ubuntu@52.80.34.110
业务模块:ssh -i ~/.ssh/dev_xs.pem ubuntu@52.80.126.45
zookeeper 在本机启动standlone模式
线上:
opencv:ssh -i ~/.ssh/dev_xs.pem ubuntu@52.81.41.90
zookeeper:ssh -i ~/.ssh/xs1711.pem ubuntu@54.223.226.157
模块API,grabbag,xiangjiahouse ssh -i ~/.ssh/dev_xs.pem ubuntu@52.80.75.65
模块xiangjiauser,community,xiangjiaweapp,xiangjiaweixin:ssh -i ~/.ssh/dev_xs.pem ubuntu@52.80.226.215
以上:在登录服务器后进入 /usr/local目录下 有个脚本直接运行 项目就启动完成了.
3小程序登录
相家小程序、AI看风水小程序的用户登录是source-[0:AI看风水;1:相家小程序;2:相家APP]来区别的.
原理:在微信中同一个用户在微信下各个app(微信,小程序属于不同的app)的openId不同但是union_id全部是相同的.
开发者根据微信用户登录小程序或者app时可以区分开来:开发者每次请求微信的api获取相关的信息的时候是需要一个access_token.自己维护更新
代码在com.lbadvisor.xiangjia.user.task.QuartzRefreshAccessTokenService类中的refreshAccessToken方法.
(代码相关问题可以问leo)
4社区模块
本人参与的功能开发涉及的主要表:xj_user_knowledge_text(回答||文章表) ,xj_user_praise(点赞表),xj_forum_collection(收藏表)
xj_forum_topic(主题表)
对外访问接口:查看 http://52.80.75.65:8081/swagger-ui.html#/304562347823567312432420731038213062716922359
5户型测算流程说明
5.1户型测算 /v1.1/api/analysis/house/analysis/t/new
表:xj_fs_house_analysis , xj_fs_house_analysis_history ,
业务逻辑 : 1:根据八卦的缺角面积的大小来生成分析结果,2:根据八卦的缺角面积生成飞星,根据飞星组织户型评价3:生成用户的历史记录4:户型信息可以分享的url,5:生成推荐物品
(建议结合代码结合线上接口理解)