职位选择

【校跑跑P2】2 任务列表起点终点模块 JAVA开发设计文档官方补充版

03月05日 JAVA开发文档说明 任务列表多线路模块 校跑跑P2
视频说明
点击观看
学生周最佳
暂时没有
最后修订
2025-03-05

一 说明

本模块主要开发“面到面”、“面到点”,“点到面”跑腿时可选择地址的查询、储存等功能。

注:点到线本期不做【后序实习增加】

运营前提:在运营前,学校内部的核心地点是要提前录入;但是考虑到周边商家会有一定的变化;地点会周期性审核


二 亮点说明

1 【小亮点】开通某学校的初始化距离(一次性,运营触发)

学校数量上限500,每个学校初始化数据上限100

直接计算每个建筑直线100米的建筑

并且,相连数据是小数固定项,使用id,id的方式存储,减少查询量

2 【小亮点】用户增加地点

(1)确定地点在可用区域内

(2)因为提交信息需要人工审核,但是用户却需要实时的返回周边建筑id,所以解决方案是找到50米内最近的已有建筑id(虽然只有100个建筑,也可以考虑一下“最近”的实现)

如果50米内没有,则返回错误“50米内没有已有地点,等待审核数据”


3 【大亮点】审核时,对增加建筑周边建筑计算的优化

因为用户提高地址是人工审核,一个学校可能堆积上百个地址,那500个学校,就有上万个地点。

如果依然使用原来的全量计划的方案,会对计算性能和类实时的要求造成影响


所以采用增量更新的方法:

(1)先计算新增地点周遍100米的地址,并记录ids

 (2) 对1中的每个ids里的id,增加本地址id

(3)更新本学校redis

注意,因为学校地址固定,基本都是一次性计算,不需要使用其它的geo组件


三 服务设计



四 数据表设计


1 学校地址表 xzvip_paitui_college_location



2 xzvip_paotui_location_nearby 周边建筑表

字段

类型

可空

备注

id

int(11)


自增

CollegeId

int(11)


学校id

LocationId

int(11)


当前id

LocationNearbyIds

varchar(100)


范围内地址的所有id,使用,分割

Status

tinyint(1)


 0-; 1-

AddTime

dateTime



UpdateTime

dateTime


更新时间



3 学校边界表 xzvip_paotui_college_edge

字段

类型

可空

备注

id

int(11)


自增

CollegeId

int(11)


学校id

TopLeftX

decimal(9,6)


左上角点经度

TopLeftY

decimal(9,6)


左上角点维度

BottomRightX

decimal(9,6)


右下角点经度

BottomRightY

decimal(9,6)


右下角点维度

Status

tinyint(1)


 0-; 1-

AddTime

dateTime



UpdateTime

dateTime


更新时间




历史周最佳