[关闭]
@zongwu 2016-11-15T07:54:49.000000Z 字数 2042 阅读 515

考勤模块概要设计

开发设计


参考同类应用


相关设计

基础功能

防作弊


考勤技术需求

建立考勤通讯服务

  1. 支持主从数据交互

定位相关(封装高德)

  1. 进入应用先调起低精度定位。若有WiFi使用定位,没有WiFi使用数据流量定位。
  2. 之后GPS调起高精度定位。
  3. 若有GPS定位结果,则以GPS为准。若无,则以网络定位结果为准。若都没有结果,则判定为定位失败。
  4. 进入签卡页面,以实时定位结果为准,循环定位次数MAX=3MAX可配置)。
  5. 如果签卡获取定位信息成功,则向外发送定位结果。
  6. 如果签卡获取定位信息失败,则向外发送定位失败的原因。
  7. 如果是定位中,则向外发送定位的进度(当前第几次定位)。
    定位结果需要包含:经纬度、详细地址、精度、定位类型、第N次定位、设备的MAC地址、WIFI的SSID、模拟定位的开关状态

业务相关

  1. 旧的跟定位相关的业务
  2. 新的业务跟产品沟通

原型开发需求

暂时不需要地图预览相关功能。
参考“口袋助理”(大家申请时,填写公司帐号 862390),完成Demo版的开发。

SDK(android、ios)

API

  1. 接口名:pd.attendance.apply
  2. 接口含义:申请打卡
  3. 参数:
  4. 0. sessionId //登录后的sessionId凭据【必填】
  5. 1. id //【必填】
  6. 2. longitude //经度【必填】
  7. 3. latitude //纬度【必填】
  8. 4. range //打卡有效范围【选填,默认500米】
  9. 5. device_mac //打卡设备mac地址【选填】
  10. 6. type //gps/wifi/traffic【必填】
  11. 7. date //打卡时间:yyyy-MM-dd HH:mm【必填】
  12. 8. address //详细地址信息【选填】
  13. 返回:
  14. { "model":"true" } // 无论打卡的点、时间是否正确,都可以执行打卡事件

  1. 接口名:pd.attendance.daily
  2. 接口含义:获取每日签卡任务
  3. 参数:
  4. 0. sessionId //登录后的sessionId凭据【必填】
  5. 返回:
  6. * 若未设置考勤,则显示“您未有考勤任务”。
  7. {
  8. "daily": {
  9. "desc": "您未有考勤任务",
  10. "data": []
  11. }
  12. }
  13. * 若已设置考勤,但是检查还未到生效日期,则显示“已开启考勤,于2016/11/14日开始生效。”
  14. {
  15. "daily": {
  16. "desc": "已开启考勤,于2016/11/14日开始生效",
  17. "data": []
  18. }
  19. }
  20. * 若已设置考勤,且已经在生效日期范围内,则显示正确的考勤任务数据。
  21. {
  22. "daily": {
  23. "desc": "每日考勤任务",
  24. "data": [
  25. {
  26. "id":99,
  27. "title": "上班",
  28. "date": "09:00",
  29. "status": "1", // 超出打卡距离打卡
  30. "description": "已签到 08:50"
  31. },
  32. {
  33. "id":100,
  34. "title": "下班",
  35. "date": "18:00",
  36. "status": "0", // 正常打卡
  37. "description": "签退"
  38. },
  39. {
  40. "id":101,
  41. "title": "加班签退",
  42. "date": "22:00",
  43. "status": "2", // 提前签退
  44. "description": "已签退 21:50"
  45. }
  46. ]
  47. },
  48. "activity": {
  49. "desc": "幸福活动天天有,打折打到手抽筋",
  50. "data": [
  51. {
  52. "id":201,
  53. "title": "未来科技城·海创园相亲大会",
  54. "date": "09:00",
  55. "status": "0",
  56. "description": "签到"
  57. }
  58. ]
  59. }
  60. }

  1. 接口名:pd.attendance.status
  2. 接口含义:获取打卡状态
  3. 参数:
  4. 0. sessionId //登录后的sessionId凭据【必填】
  5. 1. date //打卡时间:yyyy-MM-dd HH:mm【必填】
  6. 2. taskId //打卡任务序号【必填】
  7. 3. longitude //经度【必填】
  8. 4. latitude //纬度【必填】
  9. 返回:
  10. {
  11. "id":99,
  12. "distance": 300,// 实际距离
  13. "date": "2016年11月14日 14:20"// 实际打卡时间
  14. "status":0 // 0 正确的打卡状态(打卡距离在精度范围内、在时间之前打卡)
  15. // 1 超出打卡距离
  16. // 2 超出时间打卡
  17. }

什么是打卡?

经纬度、时间,上传给服务器的过程叫做打卡。

校验打卡有效性?

打卡的经纬度、时间与既定的经纬度、时间比对的过程称为有效性验证。

打卡数据核验?

设备MAC地址、打卡方式、附近Wi-Fi的SSID列表上传给服务器,作为检验打卡有效性。

客户端限制打卡的情况?

没有网络时,不允许打卡。
有网络时,但是网络定位与GPS定位情况偏差很大时。
开启位置模拟选项。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注