3.2 项目技术栈分析

使用了哪些云服务:

对象存储服务 COS  —— 存储司机实名认证的身份证和驾驶证照片

人脸识别 AiFace  —— 每天司机接单前的身份核实,并且具备静态活体检测功能

人员库管理 face-lib  —— 云端存储司机注册时候的人脸模型,用于身份比对使用

数据万象 CI  —— 用于监控大家录音文本内容,判断是否包含暴力和色情

OCR 证件识别插件  —— 用于 OCR,识别和扫描身份证、驾驶证的信息

微信同声传译插件  —— 把文字合成语音,播报订单。把录音转换成文本,用于安全监控

路线规划插件  —— 用于规划司机下班回家的线路,或小程序订单显示的路线

地图选点插件  —— 用于小程序上面地图选点操作

腾讯位置服务  —— 路线规划,定位导航,里程和时间预估

技术栈分析:

QLExpress  规则引擎,计算预估费用,取消费用等

Quartz  定时器,销毁过期未接单订单,定时自动分账等等

Phoenix  HBase数据存储

GEO  GPS分区定位计算

SaToken  认证与授权框架

3.3 运行华夏代驾初始化项目

1. 修改common 项目中的 application-common.yml 文件中,小程序id secret 等。

2. 启动 TM 节点。

3. 启动其他子程序。

4. 子系统运行不起来,检查 端口号冲突、配置信息错误、Java环境错误。

3.4 例子代码

SELECT CAST( id AS CHAR ) AS id FROM tb_driver
@Slf4j //日志注解
HashMap tempParam = new HashMap(){{ put("openId", openId) }}
//司机需提交的注册信息,建一个 Form 类 作为类型,对请求参数进行校验和判断//xxServiceImpl 层加事务
//在 SaToken 上面执行登录,实际上就是缓存 userId,然后才有资格拿到令牌
StpUtil.login( driverId )//生成 Token 令牌字符串(已加密)
String token = StpUtil.getTokenInfo().getTokenValue()
return R.ok().put("token", token)//验证登录注解
@SaCheckLogin
long userId = Convert.toLong(r.get("userId"))
int  xx     = Convert.toInt()

3.9 例子代码

//swagger代码:
@Tag(name="CosController", description="对象存储web接口")
@Operation(summary="上传文件")
@Schema(description="xxx")
//Controller注解:
@Valid
@RequestBody
@Params("xx")
//微信公众平台内添加 OCR插件:设置 -> 第三方设置 -> 插件管理
//微信同声传译、腾讯位置服务 城市选择器、地图选点、路线规划//manifest.json文件:
"plugins": {"ocr-plugin": {"version": "3.0.6","provider": "wx4418e3e031e551be"}"其他插件也如此"
}
//有Form类的概念,封装网络请求参数,注解如下:
@Data
@NotNull(message="xxx")
@Min(value=1, message="xxx")
@Pattern(regexp="xxx", message="xxx")
@NotBlank(message="xxx")
@Range(min=1, max=12, message="xxx")
@NotEmpty(message="xxx")

3.15 开通活体检测,甄别真实注册司机 (一)

1. 开通人脸识别:https://cloud.tencent.com/product/facerecognition

2. 新建人员库

3. 向人员库上传司机面部照片:https://cloud.tencent.com/document/api/867/45014

4. 在 common 子系统中 application-common.yml 文件中,添加信息

tencent:cloud:......face:groupName: hxdsregion: ap-beijing//使用时
@Value("${tencent.cloud.face.region}")

5. 编码

3.17 例子代码

//SQL语句中:MySQL数字类型查询速度比字符串类型速度快
//返回前端不能是 bigint 类型,要是 char 类型
CAST( id AS CHAR ) AS id//SQL语句
CAST( w.balance AS CHAR ) AS balance//汇总函数
COUNT(id) AS orders//不能返回空
IFNULL( SUM(real_fee), 0) AS income//浮点类型数据库数据 返回给前端会丢失精度,转成字符类型好点
IFNULL( SUM(TIMESTAMPDIFF( HOUR, end_time, start_time)), 0) AS xxxtimestampdiff(YEAR, drcard_issue_date, NOW()) AS `year`DATE_FORMAT( create_time, '%Y-%m-%d') AS createTime
<if test="status != null">AND `status` = #{status}
</if>
LIMIT #{start}, #{length}
HashMap result = driverDao.login(openId)
...    ...
result.replace("archive", archive)
long driverId = MapUtil.getLong(map, "id");
StpUtil.login(driverId);
String token = StpUtil.getTokenInfo().getTokenValue();
byte realAuth = Byte.parseByte(MapUtil.getStr(map, "realAuth"));
JSONObject summary = JSONUtil.parseObj(MapUtil.getStr(result, "xx"));
HashMap map = (HashMap) r.get("result");
HashMap map = JSONUtil.parseObj(settings).toBean(HashMap.class)
ArrayList<HashMap> list = null
list = new ArrayList<>()
//把前端传来的Form转成Map,Map传给Dao层
Map param = BeanUtil.beanToMap(form);//讲师自己封装了一个PageUtils
//经过Http后,要这样
HashMap map = (HashMap) r.get("result");
PageUtils pageUtils = BeanUtil.toBean(map, PageUtils.class)
@SaCheckPermission( value={"ROOT", "DRIVER:SELECT"}, mode=SaMode.OR)
//gateway子服务application.yml文件中
routes:-id: bff-driveruri: lb://bff-driverpredicates:-Path=/hxds-driver/**filters:-StripPrefix=1-id: hxds-mis-apiuri: lb://hxds-mis-apipredicates:-Path=/hxds-mis-api/**filters:-StripPrefix=1

腾讯云对象存储服务有一个“生成预签名URL”功能,可以对云端文件生成临时外网URL地址,并且含有签名字符串,预签名URL的文档:https://cloud.tencent.com/document/product/436/35217。签名有过期时间。

//时间定为 5分钟后
Date expiration = DateUtil.offsetMinute( new Date(), 5)

基于微服务的司机注册与实名认证(活体检测)相关推荐

  1. re.containerbase.startinternal 子容器启动失败_微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)...

    走过路过不要错过 点击蓝字关注我们 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件 ...

  2. 基于微服务和Docker的PaaS云平台架构设计

    基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件.数据服务.云服务器等资源,开发人员 ...

  3. 基于微服务和Docker容器技术的PaaS云平台架构设计

    本文讲的是基于微服务和Docker容器技术的PaaS云平台架构设计[编者的话]在系统架构上,PaaS云平台主要分为微服务架构.Docker容器技术.DveOps三部分,这篇文章重点介绍微服务架构的实施 ...

  4. 基于微服务架构的云平台总体设计

    正好这段时间我们在封闭研发我们的新一代数字化云平台(theplatform),借此机会和大家分享一下我们的总体设计及思路: theplatform是一款基于微服务架构的DevOps容器云平台,设计主体 ...

  5. 公有云上基于微服务架构SAAS产品研发实践「活动通知」

    公有云SAAS产品不同于传统的软件包产品,我们不仅需要负责软件的研发,同时需要负责产品的运维,面对众多用户,需要保障产品7X24不间断运行:客户业务是不断变化的,产品需要在持续运行过程中进行持续升级, ...

  6. 【2017年第3期】交通大数据:一种基于微服务的敏捷处理架构设计

    杜圣东, 杨燕, 滕飞 西南交通大学信息科学与技术学院,四川 成都 610031 摘要:面对智慧交通广泛的大数据应用场景和技术需求,一般大数据系统难以适应多种处理情况并做出快速响应.针对这一问题,首次 ...

  7. 基于微服务下的持续交付环境

    背景 随着互联网行业的兴起,敏捷开发.Devops被越来越多的公司提及或实施,力求有效地降低交付过程所耗费的成本并提高交付的效率. 持续交付通过建立自动化的构建.测试.部署机制,实现业务快速上线的过程 ...

  8. 基于微服务spring cloud+vue+spring boot在线聊天交友软件的设计与实现

    针对企业和机构在聊天通讯软件中的的信息管理监控困难.系统稳定性不足.二次开发困难.部署运维困难问题,对一个自主可控,安全稳定的通讯系统进行分析设计. 采用前后端分离的开发模式,前端基于WEB端,采用基 ...

  9. 基于微服务和mini2440的WebSocket B/S视频监控及MQTT物联网应用系统

    文章目录 一.系统基本组成架构 二.Spring Cloud微服务 微服务简介 系统的微服务组成框架 Spring Cloud集成WebSocket Spring Cloud集成MQTT 三.嵌入式L ...

最新文章

  1. python基础===Number
  2. 初学多线程使用中踩过的坑
  3. [Alpha]Scrum Meeting#5
  4. 机器学习算法中的F值(F-Measure)、准确率(Precision)、召回率(Recall)
  5. WordPress 实用SEO插件总结
  6. 【jhipster】springboot时区的设置-将UTC时区设置成中国时区
  7. urlpatterns的写法和patterns函数
  8. 关于淘宝商品信息的爬虫
  9. vue html parser,vue-eslint-parser
  10. 使用科大讯飞SDK实现语音功能
  11. 产品经理|需求分析(附《需求池表格》下载)
  12. axis调用java实现webservice实例
  13. 2014522420145238《信息安全系统设计基础》实验四
  14. js时间分割——主要用途——租赁合同时间计算(两种时间分割方式,可以按月,季,年分割)
  15. 华为开发者联盟上架应用 完结
  16. 用python设置windows系统桌面背景(壁纸)的代码
  17. OpenCV每日函数 图像过滤模块 (8) GaussianBlur高斯模糊函数
  18. (172)SystemVerilog[打两拍]
  19. matlab中som结果,matlab神经网络工具箱中的som怎么使用
  20. UE4学习笔记:GamePlay框架与蓝图功能实现,开关门互动、鼠标、按键开门、按键升降电梯

热门文章

  1. java外包项目有哪几类,java软件项目外包在选择合作平台时应注意哪些细节?
  2. 网络-IP地址,子网掩码,默认网关,DNS服务器详解
  3. 使用Beagle进行基因型填充
  4. 人工智能--决策树原理与代码实现、特征提取、回归决策树
  5. 【51nod1327】棋盘游戏
  6. 京东员工出版的计算机书籍,【京东工资】业务员待遇-看准网
  7. 基于Anaconda 搭建 OpenCV for Python 环境(全平台通用)
  8. 我的奇思妙想机器人消防员_我的奇思妙想智能机器人作文400字
  9. nordic52840DK-NFC卡
  10. Linux搭建DNS服务