constant.py 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. """
  4. 全局常量管理类,避免在程序中使用魔鬼数字。
  5. 常量定义规范:
  6. 1、常量之间保持一行间隔
  7. 2、属于app下的常量前缀为APP名称,否则为COMMON
  8. 3、同一个app下的常量放在一起,COMMON放在最后面
  9. 常量声明格式:
  10. '''常量声明示例'''
  11. Const.APP_CONSTANT_NAME = '这是示例'
  12. 常量引用方式:
  13. print Const.TEST_CONSTANT
  14. """
  15. from constantly import Values, ValueConstant
  16. from enum import Enum
  17. from apilib.constants import _Constant
  18. from apilib.monetary import RMB, Permillage
  19. from apilib.systypes import enum, IntEnum, StrEnum, IterConstant
  20. Const = _Constant()
  21. Const.DEV_WORK_STATUS_IDLE = 0
  22. Const.DEV_WORK_STATUS_WORKING = 1
  23. Const.DEV_WORK_STATUS_FAULT = 2
  24. Const.DEV_WORK_STATUS_FORBIDDEN = 3
  25. Const.DEV_WORK_STATUS_PAUSE = 4
  26. Const.DEV_WORK_STATUS_CONNECTED = 5 # 汽车桩使用,表示和车辆连接OK
  27. Const.DEV_WORK_STATUS_FINISHED = 6 # 汽车桩使用,表示充电完成
  28. Const.DEV_WORK_STATUS_MAINTENANCE = 7 # 维护状态. 例如洗衣机正在消毒
  29. Const.DEV_WORK_STATUS_APPOINTMENT = 8 # 预约状态
  30. Const.DEV_WORK_STATUS_FAULT_OVERLOAD = 9 # 端口功率过载
  31. Const.DEV_WORK_STATUS_OCCUPY = 10
  32. Const.DEV_WORK_STATUS_ESTOP = 11 # 汽车充电桩急停状态
  33. Const.DEV_WORK_STATUS_READY = 12 # 汽车充电桩急停状态
  34. Const.DEV_WORK_STATUS_FAULT_RELAY_CONNECT = 13 # 继电器粘连故障
  35. Const.DEV_CYCLE_DEFAULT = 600
  36. class DeviceOnlineStatus(IterConstant):
  37. DEV_STATUS_OFFLINE = 0
  38. DEV_STATUS_ONLINE = 1
  39. Const.DEVICE_TOPIC_PREFIX = 'smart_box'
  40. Const.SERVER_TOPIC_PREFIX = 'manyi'
  41. Const.MQTT_QOS = 0
  42. Const.MQTT_QOS1 = 1
  43. Const.MQTT_RETRY_TIMES = 4
  44. Const.MQTT_RETRY_INTERVAL = 15
  45. class MQTT_TIMEOUT(IntEnum):
  46. START_DEVICE = 120
  47. START_DEVICE_PER_ROUND = 30
  48. CHECK_DEVICE_STATUS = 25
  49. TEST = 15
  50. SHORT = 20
  51. MEDIUM = 25
  52. NORMAL = 35
  53. LONG = 55
  54. LOGGER = 120
  55. LONGEST = 180
  56. Const.DEFAULT_DISCOUNT_RULE = {'10': 10.0, '20': 20.0, '50': 50.0, '100': 100.0}
  57. Const.ServiceState = Enum('ServiceState', ('Normal', 'Ban'))
  58. Const.FeedBackResult = enum(UNTREATED = 0, TREATED = 1, REJECTED = 2)
  59. Const.NEAR_BY_MAX_DISTANCE = 6000
  60. Const.DEVICE_ONLINE_CHECK_INTERVAL = 3 * 9 * 60 * 1000 # 超过3次KEEP ALIVE时间
  61. Const.DEVICE_ONLINE_CHECK_TIMES = 3
  62. Const.I_AM_FAULT = 120
  63. Const.I_AM_EVENT = 100
  64. Const.MAX_PAY_LIMIT = 500
  65. Const.NO_PORT = 9999
  66. # command code
  67. class DeviceCmdCode(object):
  68. # 经典命令码
  69. GET_DEVINFO = 201
  70. SET_DEVINFO = 202
  71. PAY_MONEY = 203
  72. STOP_DEVICE = 206
  73. OPERATE_DEV_SYNC = 210
  74. PASSTHROUGH_OPERATE_DEV_SYNC = 211
  75. OPERATE_DEV_NO_RESPONSE = 220
  76. PASSTHROUGH_OPERATE_DEV_NO_RESPONSE = 221
  77. # 命令确认
  78. EVENT_ACK = 223
  79. OPERATE_DEV_SERVER_ASYNC = 226 # 发送消息,消息结果依赖100的事件上报
  80. PASSTHROUGH_OPERATE_DEV_SERVER_ASYNC = 227 # 发送消息,消息结果依赖100的事件上报
  81. UART_LOOP_TEST = 228 # 串口环回测试命令
  82. UART_SIMULATE_RECEIVE_DATA = 229 # 串口模拟发送主板响应
  83. # 随机命令码范围
  84. RANDOM_START_CODE = 230
  85. RANDOM_END_CODE = 299
  86. RESPONSE_QR_CODE_URL = 102 # 设备请求二维码地址返回给设备
  87. Const.DEVICE_TYPE_CODE_PULSE_BEGIN = '100000' # 脉冲类型编码起始号
  88. Const.DEVICE_TYPE_CODE_PULSE = '100000' # 通用脉冲
  89. Const.DEVICE_TYPE_CODE_PULSE_WASHER = '100028' # 洗衣机
  90. Const.DEVICE_TYPE_CODE_PULSE_CHARGER = '100029' # 充电桩
  91. Const.DEVICE_TYPE_CODE_PULSE_BLOW_DRYER = '100030' # 洗手液机
  92. Const.DEVICE_TYPE_CODE_PULSE_CAR_WASHER = '100031' # 洗车机
  93. Const.DEVICE_TYPE_CODE_PULSE_DISPENSER = '100032' # 售货机
  94. Const.DEVICE_TYPE_CODE_PULSE_TUMBLE_DRYER = '100033' # 烘干机
  95. Const.DEVICE_TYPE_CODE_PULSE_XIXIEJI = '100033' # 洗鞋机
  96. Const.DEVICE_TYPE_CODE_PULSE_BATHER = '100035' # 我要洗澡
  97. Const.DEVICE_TYPE_CODE_PULSE_YAOYAOCHE = '100036' # 摇摇车
  98. Const.DEVICE_TYPE_CODE_PULSE_BEERTENDER = '100037' # 啤酒机
  99. Const.DEVICE_TYPE_CODE_PULSE_OTHER = '100050' # 其他
  100. Const.DEVICE_TYPE_CODE_PULSE_WAWAJI = '100051' # 娃娃机
  101. Const.DEVICE_TYPE_CODE_PULSE_SHUKOUSHUI = '100052' # 漱口水
  102. Const.DEVICE_TYPE_CODE_PULSE_SHOUYEJI = '100053' # 售液机
  103. Const.DEVICE_TYPE_CODE_PULSE_WEIGHER = '100100' # 体重计
  104. Const.DEVICE_TYPE_CODE_PULSE_DRINKER = '100101' # 饮水机
  105. Const.DEVICE_TYPE_CODE_PULSE_COFFER = '100102' # 咖啡机
  106. Const.DEVICE_TYPE_CODE_PULSE_HAND_WASHER = '100103' # 洗手液机
  107. Const.DEVICE_TYPE_CODE_PULSE_END = '100107' # 脉冲类型编码结束号
  108. Const.DEVICE_TYPE_CODE_BOARD_VOLT_HIGH = '100120' # 主板高电平使能投币器
  109. Const.DEVICE_TYPE_CODE_CHILD_CAR = '100121' # 儿童车
  110. Const.DEVICE_TYPE_CODE_WASHER_SCHZ = '100132' # 四川何总洗衣机,投币特殊要求(脉冲类型) 100301=>100132
  111. # 10X200-10X299 12X000-12X999 充电桩类型
  112. Const.DEVICE_TYPE_CODE_CHARGING_BASE = '100200' # 充电桩基础CODE
  113. Const.DEVICE_TYPE_CODE_QUICK_CHARGE = '100118' # TODO: GPRS双口快充(脉冲类型)
  114. Const.DEVICE_TYPE_CODE_CHARGING_KYXN = '100200' # 凯源新能的充电桩
  115. Const.DEVICE_TYPE_CODE_CHARGING_JNDZ = '100202' # 郑州劲能电子/墨小智(是低版本,部分命令不支持)
  116. # Const.DEVICE_TYPE_CODE_CHARGING_DLY = '100203' # 多力源
  117. # Const.DEVICE_TYPE_CODE_CHARGING_ZHUXING = '100204' # 助行电子
  118. Const.DEVICE_TYPE_CODE_CHARGING_ZIXIA = '100205' # 子夏科技/助行电子/电川协议
  119. Const.DEVICE_TYPE_CODE_CHARGING_JIUHEN = '100206' # 山东墨小智科技/久恒
  120. Const.DEVICE_TYPE_CODE_CHARGING_POLICY_JNDZ = '101206' # JNDZ 功率计费版本
  121. Const.DEVICE_TYPE_CODE_CHARGING_HD = '1002061' # 和动 刷卡协议修改版 --> 刷卡流程 0x10 -- 0x2D
  122. Const.DEVICE_TYPE_CODE_CHARGING_JH_TOUBI = '1002062' # 久恒投币设置保险丝版本(投币可以设置3种投币时间)
  123. Const.DEVICE_TYPE_CODE_CHARGING_SERVICECHARGEMODEL = '1002063' # 现网兼容, 特制服务费计费版本
  124. Const.DEVICE_TYPE_CODE_CHARGING_MOXIAOZHI2 = '100207' # 山东墨小智科技2
  125. Const.DEVICE_TYPE_CODE_CHARGING_AIYAXING = '100208' # 艾亚新
  126. Const.DEVICE_TYPE_CODE_CHARGING_ZHONGCHUANG = '100209' # 徐州中创
  127. Const.DEVICE_TYPE_CODE_CHARGING_DIANCHUAN = '100210' # 电川新版本协议
  128. Const.DEVICE_TYPE_CODE_CHARGING_DIANCHUAN_HIGH = "1002101" # 电川的高版本 支持按度计费的
  129. Const.DEVICE_TYPE_CODE_CHARGING_DIANCHUAN_SERVICECHARGE = "102210" # 电川协议永源支持服务费版本
  130. Const.DEVICE_TYPE_CODE_CHARGING_DIANCHUAN_FT = "103210" # 电川协议 服务器功率计费版本
  131. Const.DEVICE_TYPE_CODE_CHARGING_MOXIAOZHI3 = '100211' # 墨小智V3
  132. Const.DEVICE_TYPE_CODE_CHARGING_HAINIAO = '100212' # 海鸟
  133. Const.DEVICE_TYPE_CODE_CHARGING_HAINIAO_SINGLE = '1002121' # 海鸟单路
  134. Const.DEVICE_TYPE_CODE_CHARGING_HAINIAO_DOUBLE = '1002122' # 海鸟双路
  135. Const.DEVICE_TYPE_CODE_CHARGING_HAINIAO_NEW = '1002123' # 海鸟新十路
  136. Const.DEVICE_TYPE_CODE_CHARGING_HAINIAO_SINGLE_NEW = '1012121' # 海鸟新单路
  137. Const.DEVICE_TYPE_CODE_CHARGING_ZHIYAN = '100214' # 智衍
  138. Const.DEVICE_TYPE_CODE_CHARGING_HONGZHUO = '100215' # 鸿卓
  139. Const.DEVICE_TYPE_CODE_CHARGING_LANGXIN = '100216' # 朗鑫
  140. Const.DEVICE_TYPE_CODE_CHARGING_LANGXIN4 = '1002161' # 朗鑫4路
  141. Const.DEVICE_TYPE_CODE_CHANGING_LANGXIN20 = '1002162' # 朗鑫20路
  142. Const.DEVICE_TYPE_CODE_CHANGING_CXJZ = '100217' # 长兴聚展
  143. # Const.DEVICE_TYPE_CODE_CHANGING_CXJZ_SMOKE = '1002171' # 长兴聚展烟感版本。逐步被101271代替
  144. Const.DEVICE_TYPE_CODE_CHANGING_CXJZ_SMOKE = '101217' # 长兴聚展烟感版本
  145. Const.DEVICE_TYPE_CODE_CHANGING_DELIXI = '100218' # 德力西
  146. Const.DEVICE_TYPE_CODE_CHANGING_XUEYING = '100219' # 雪影
  147. Const.DEVICE_TYPE_CODE_CHANGING_YUZE = '100220' # 宇泽(基于电川协议, 老协议)
  148. Const.DEVICE_TYPE_CODE_CHANGING_AIYAXIN5 = '100221' # 艾亚欣5档功率(基于电川协议, 支持5挡)
  149. Const.DEVICE_TYPE_CODE_CHANGING_ANXIN = '100222' # 安心
  150. Const.DEVICE_TYPE_CODE_CHANGING_JINZE = '100223' # 金泽
  151. Const.DEVICE_TYPE_CODE_CHANGING_JIUHENG_BAOXIANSHI = '100224' # 久恒保险丝旧版本
  152. Const.DEVICE_TYPE_CODE_CHANGING_YUZE5 = '100225' # 宇泽5档功率(基于电川协议, 支持5挡)
  153. # Const.DEVICE_TYPE_CODE_CHANGING_ZHIXIA11 = '100226' # 端口从11开始计算的电川板子
  154. Const.DEVICE_TYPE_CODE_CHANGING_HANGXIN = '100227' # 航鑫
  155. Const.DEVICE_TYPE_CODE_CHANGING_HANGXIN_HIGN = "1002271" # 航鑫(汉尔云充版本)
  156. # Const.DEVICE_TYPE_CODE_CHANGING_DCALERT = '100228' # 电川温度告警
  157. Const.DEVICE_TYPE_CODE_CHANGING_XUZHOU = '100229' # 旭州电子
  158. Const.DEVICE_TYPE_CODE_CHARGING_AQKJ = '100230' # 安骑换电柜子
  159. Const.DEVICE_TYPE_CODE_CHARGING_AQKJ_NEW = '1002301' # 安骑换电柜子 新版
  160. Const.DEVICE_TYPE_CODE_CHARGING_SIJIANG = '100213' # 四江/三江/徽四江
  161. Const.DEVICE_TYPE_CODE_CHARGING_SIJIANG4 = '1002131' # 四江4路
  162. Const.DEVICE_TYPE_CODE_CHANGING_SIJIANG20 = '100231' # 四江20路
  163. # Const.DEVICE_TYPE_CODE_CHANGING_DIANCHUAN = '100232' # 电川整合
  164. Const.DEVICE_TYPE_CODE_CHANGING_GUANGFA = '100233' # 光法#主要是支持退费直接到支付宝和微信,不是直接退金币
  165. # Const.DEVICE_TYPE_CODE_CHANGING_DIANCHUAN2 = '100234' # 电川新版本,支持烟感、温感、电压报警灯
  166. Const.DEVICE_TYPE_CODE_CHANGING_DEKANG = '100235' # 得康
  167. Const.DEVICE_TYPE_CODE_CHANGING_BAOJIA = '100236' # 宝佳,和劲能电子的协议比较像,但是有所不同
  168. Const.DEVICE_TYPE_CODE_CHANGING_YUEWANGTONG = '100237' # 清远粤网通
  169. # Const.DEVICE_TYPE_CODE_CHANGING_JIUHENG_HOURFEE = '100238' # 久恒的板子,按小时计费
  170. Const.DEVICE_TYPE_CODE_CHANGING_WEIFULE = '100239' # 微弗智通的板子
  171. # Const.DEVICE_TYPE_CODE_CHANGING_NANJIGUANG = '100240' # 里歌新能源和苏州南极光合作的充电桩
  172. Const.DEVICE_TYPE_CODE_CHANGING_SHENGOU = '100241' # 郑州盛欧充电插座
  173. Const.DEVICE_TYPE_CODE_CHANGING_CY4 = '100242' # 郑州昌原4代机
  174. Const.DEVICE_TYPE_CODE_CHANGING_HAINIAOV2 = '100243' # 海鸟V2
  175. # Const.DEVICE_TYPE_CODE_CHANGING_HAINIAOV2 = '100245' # 劲能SCK主板 + 电川刷卡板
  176. Const.DEVICE_TYPE_CODE_CHANGING_QL = '100246' # 强隆10路机
  177. Const.DEVICE_TYPE_CODE_CHANGING_AOQIANG = '100247' # 奥强充电板
  178. Const.DEVICE_TYPE_CODE_CHANGING_YUNCHONG = '100248' # 云充充电板
  179. Const.DEVICE_TYPE_CODE_CHANGING_WEIFULE2 = '100249' # 晨马修改的特殊版本基于微付乐100239
  180. Const.DEVICE_TYPE_CODE_CHANGING_CY_POWER = '100250' # 昌原4路大功率机型
  181. Const.DEVICE_TYPE_CODE_CHARGE_DIANCHUAN_NEW = '100252' # 电川协议新版本
  182. Const.DEVICE_TYPE_CODE_CHANGING_WEIFULE_TIME = '100251' # 基于微付乐版本的只支持按时间计费
  183. Const.DEVICE_TYPE_CODE_CHARGE_ZHONGSHAN = '100255' # 中山绿智
  184. Const.DEVICE_TYPE_CODE_CHARGE_ZHONGSHAN_BILLASSERVICE = '101255' # 中山绿智支持服务费模式
  185. Const.DEVICE_TYPE_CODE_CHARGE_XIAOKEDOU = '100256' # 小科豆
  186. Const.DEVICE_TYPE_CODE_CHARGE_XIAOKEDOU_SERVICEFEE = '101256' # 小科豆服务费
  187. Const.DEVICE_TYPE_CODE_CHARGE_XIAOKEDOU_POLICY = '102256' # 小科豆
  188. Const.DEVICE_TYPE_CODE_CHARGE_XIAOKEDOU_MAXTOTALPOWER = '1002561' # 小科豆兼容最大总功率
  189. Const.DEVICE_TYPE_CODE_CHARGE_WEIFULE_CAR = '100257' # 微付乐汽车充电桩
  190. Const.DEVICE_TYPE_CODE_CHARGE_WEIFULE_CAR_JFPG = '101257' # 微付乐汽车充电桩 支持尖峰平谷,定时心跳上报充电数据
  191. Const.DEVICE_TYPE_CODE_CHARGE_DOUBLE_SERIAL_JH = "100258" # 久恒老协议双串口
  192. Const.DEVICE_TYPE_CODE_CHARGING_HD_PREPAID_OR_POSTPAID = "100259" # 和动 新主板
  193. Const.DEVICE_TYPE_CODE_CHARGING_CHAOCHEN = "100260" # 超辰
  194. Const.DEVICE_TYPE_CODE_CHARGING_BL_GATEWAY = "100261" # 柏来插座 网关
  195. Const.DEVICE_TYPE_CODE_CHARGING_BL_NODE = "100262" # 柏来插座 子节点
  196. Const.DEVICE_TYPE_CODE_CHARGING_DC_GATEWAY = "100263" # 电川插座 网关
  197. Const.DEVICE_TYPE_CODE_CHARGING_DC_NODE = "100264" # 电川插座 子节点
  198. Const.DEVICE_TYPE_CODE_CHARGING_CHANGYUAN_FIVE = "100267" # 昌源5代十路充电桩
  199. Const.DEVICE_TYPE_CODE_CHARGING_CHANGYUAN_FIVE_ONLINECARD = "102267" # 昌源5代十路充电桩在线卡
  200. Const.DEVICE_TYPE_CODE_CHARGING_CHANGYUAN_SIX = "1002671" # 昌原6代十路充电桩
  201. Const.DEVICE_TYPE_CODE_CHARGING_JINENENG_POWER = "100268" # 劲能充电桩 功率计费
  202. Const.DEVICE_TYPE_CODE_CHANGING_SOCKET = '100269' # 微付乐插座
  203. Const.DEVICE_TYPE_CODE_WEIFULE_MINI = '100270' # 微付乐融合mini板
  204. Const.DEVICE_TYPE_CODE_HZFL = '100271' # 富联科技
  205. Const.DEVICE_TYPE_CODE_GAOBORUI = '100272' # 苏州高博锐电川
  206. Const.DEVICE_TYPE_CODE_WEIFULE_TOUCH_PAD = '100273' # 微付乐按键触控板
  207. Const.DEVICE_TYPE_CODE_AOQIANG_CHAZUO_GATEWAY = '100274' # 奥强插座 网关
  208. Const.DEVICE_TYPE_CODE_AOQIANG_CHAZUO_NODE = '100275' # 奥强插座 节点
  209. Const.DEVICE_TYPE_CODE_GAOBORUI_SECOND = '100276' # 高博锐自己板子
  210. Const.DEVICE_TYPE_CODE_CHARGING_BL_GATEWAYPLUG = "100277" # 柏来网关插座
  211. Const.DEVICE_TYPE_CODE_ZHANGRUNYIHE = '100278' # 苏州中润易和智能科技有限公司 协议和100210一样 支持5挡
  212. Const.DEVICE_TYPE_CODE_CHARGING_WXLZ = "100279" # 重庆无线绿洲充电桩
  213. Const.DEVICE_TYPE_CODE_WEIFULE_ANJIAN = "100280" # 一体板按键版本
  214. Const.DEVICE_TYPE_CODE_WEIFULE_POLICY = "101280" # 分体板(策略计费) 同100280 友能流程
  215. Const.DEVICE_TYPE_CODE_WEIFULE_POLICY_CLASSIC = "102280" # 分体板(策略计费) 默认流程(常规套餐预付费,无临时套餐)
  216. Const.DEVICE_TYPE_CODE_KE_HANG = "100281"
  217. Const.DEVICE_TYPE_CODE_KE_HANG_POLICY = "101281"
  218. Const.DEVICE_TYPE_CODE_WEIFULE_MINI_POLICY = "101270" # 纯扫码(策略计费) 同100270
  219. Const.DEVICE_TYPE_CODE_WEIFULE_2_POLICY = "101249" # 一体板(策略计费) 同100249
  220. Const.DEVICE_TYPE_CODE_WEIFULE_TOUCH_PAD_POLICY = "101273" # 一体板(策略计费) 同100273
  221. Const.DEVICE_TYPE_CODE_SUZHOU_BEISIYUN = "100286" # 苏州贝斯云
  222. Const.DEVICE_TYPE_CODE_CM_CHAZUO_GATEWAY = "100287"
  223. Const.DEVICE_TYPE_CODE_CM_CHAZUO_NODE = "100288"
  224. Const.DEVICE_TYPE_CODE_CHANGING_YUZE_DIANCHUAN = '100289' # 宇泽5档功率(基于新电川协议, 支持5挡)
  225. Const.DEVICE_TYPE_CODE_CHANGING_DIANCHUAN_RONGHE = '100290' # 电川4G融合板
  226. Const.DEVICE_TYPE_CODE_CHANGING_BL_TEN = '100291' # 柏来10路充电桩
  227. Const.DEVICE_TYPE_CODE_CHANGING_BL_TWELVE = '100292' # 柏来12路充电桩
  228. Const.DEVICE_TYPE_CODE_FENGSHUO = '100293' # 丰硕
  229. # 洗衣机 10X300-10X399
  230. Const.DEVICE_TYPE_CODE_WASHER_BASE = '100300' # 洗衣机基础CODE
  231. Const.DEVICE_TYPE_CODE_WASHER_CW = '100300' # 创维洗衣机
  232. Const.DEVICE_TYPE_CODE_WASHER_SIMAIER = '100302' # 家伟(思迈尔协议)
  233. Const.DEVICE_TYPE_CODE_WASHER_TS = '100303' # 投石洗衣机
  234. Const.DEVICE_TYPE_CODE_WASHER_CY_HJ_1 = "101305" # 彩亿主板 与100305 时间范围不同 时间范围由华杰老板提供
  235. Const.DEVICE_TYPE_CODE_WASHER_CY_HJ = "100305" # 彩亿主板 华洁需求
  236. Const.DEVICE_TYPE_CODE_WASHER_CY_HS = "1003051" # 彩亿主板 宁波海尚需求
  237. Const.DEVICE_TYPE_CODE_WASHER_CY_HS_YUCHUAN = "1003052" # 彩亿主板 对接一卡通 要求刷卡
  238. Const.DEVICE_TYPE_CODE_WASHER_CY_HS_HONGGAN = "1003053" # 彩亿主板 烘干机
  239. Const.DEVICE_TYPE_CODE_WASHCAR_HAIER = "100307" # 海尔洗衣机
  240. Const.DEVICE_TYPE_CODE_WASHER = '100308' # 串口洗衣机 100106=>100308
  241. Const.DEVICE_TYPE_CODE_HUITENG = '100309' # 汇腾洗衣机 100109=>100309
  242. Const.DEVICE_TYPE_CODE_YUCHUAN_SHUAKA = "100310" # 宇川一卡通 100001=>100310
  243. Const.DEVICE_TYPE_CODE_WEIFULE_WASHER = '100327' # 微付乐洗衣机海尔一体板 100127=>100327
  244. Const.DEVICE_TYPE_CODE_WEIFULE_WANNENGBAN_WASHER = '100328' # 微付乐洗衣机万能一体板 100128=>100328
  245. # 洗车机 10X500-10X599
  246. Const.DEVICE_TYPE_CODE_WASHCAR_LSHB = '100500' # 沥森环保洗车机
  247. Const.DEVICE_TYPE_CODE_WASHCAR_LSHB_NOTIFY = '101500' # 沥森环保 通过设备类型控制是否进行刷卡推送
  248. Const.DEVICE_TYPE_CODE_WASHCAR_LANGUANG = '100501' # 蓝光国际(大球)洗车机/饮水机
  249. # 汽车桩 10X600-10X699 16X000-16X999
  250. Const.DEVICE_TYPE_CODE_CAR_CHARGING_CY = '100600' # 昌源汽车充电桩
  251. Const.DEVICE_TYPE_CODE_CAR_CHARGING_CY_ZZHX = '1006001' # 郑州和喜充电桩 与100600的区别主要是 离线卡录入的问题
  252. Const.DEVICE_TYPE_CODE_CAR_CHARGING_YONGXIN = '100601' # 用芯汽车充电桩
  253. Const.DEVICE_TYPE_CODE_CAR_CHARGING_ZHONGCHUANG = '100602' # 中创汽车充电桩
  254. Const.DEVICE_TYPE_CODE_CAR_CHARGING_LIGE = '100603' # 里歌汽车充电桩
  255. Const.DEVICE_TYPE_CODE_CAR_CHARGING_JN = "100604" # 劲能电子汽车充电桩
  256. Const.DEVICE_TYPE_CODE_CAR_CHARGING_CY_V2 = "100605" # 昌原汽车充电桩V2升级版
  257. # Const.DEVICE_TYPE_CODE_CAR_CHARGING = "100606" # 汽车直流快充. 自带网络,后续没有对接
  258. Const.DEVICE_TYPE_CODE_CAR_CHARGING_KY = "100607" # 坤元汽车桩
  259. Const.DEVICE_TYPE_CODE_CAR_WEIFULE_CHARGING_DOUB = "100608" # 微付乐一体汽车桩双枪
  260. Const.DEVICE_TYPE_CODE_CAR_WEIFULE_CHARGING_DOUB_JFPG = "101608" # 微付乐一体汽车桩双枪,支持尖峰平谷,以及定时上报充电数据
  261. Const.DEVICE_TYPE_CODE_CHANGING_DIANCHUANCARCHARGING = "100610" # 电川汽车充电桩(用芯提供)
  262. Const.DEVICE_TYPE_CODE_CAR_CHANGING_JINQUE = "100611" # 金雀汽车充电桩
  263. Const.DEVICE_TYPE_CODE_CAR_WEIFULE_21KW = "100612" # 微付乐大功率(21kw/32A)单枪
  264. Const.DEVICE_TYPE_CODE_CAR_WEIFULE_21KW_JFPG = "101612" # 微付乐大功率(21kw/32A)单枪,支持尖峰平谷,以及定时上报充电数据
  265. Const.DEVICE_TYPE_CODE_CAR_WEIFILE_HOME_JFPG = "100614" #家用汽车充电桩 支持尖峰平谷
  266. Const.DEVICE_TYPE_CODE_CAR_WEIFILE_HOME_DOUB_JFPG = "100615" #家用汽车充电桩 支持尖峰平谷
  267. # 支付开关 10X700-10X799
  268. Const.DEVICE_TYPE_CODE_PEDICURE2 = '100708' # 足疗机第二种版本,通过控制足疗机开关 100108=>100708
  269. Const.DEVICE_TYPE_CODE_TIMESWITCH1 = '100710' # 支付时间开关,纯粹的12V的开关,输入输出都是12V,按摩坐垫,星步的足疗机、空气净化器,荣桥国际 100110=>100710
  270. Const.DEVICE_TYPE_CODE_TIMESWITCH2 = '100711' # 支付时间开关,纯粹的开关,输入12V,输出2.3V。姚的足疗机(低开)港德,史晓鹏 100111=>100711
  271. Const.DEVICE_TYPE_CODE_TIMESWITCH3 = '100712' # 支付时间开关,纯粹的开关,输入12V,输出3V。足疗机(高开) 上海卓摩 心之宝 100112=>100712
  272. Const.DEVICE_TYPE_CODE_TIMESWITCH4 = '100713' # 支付时间开关,10ms交替周期,5ms上下。星步, 100113=>100713
  273. Const.DEVICE_TYPE_CODE_TIMESWITCH5 = '100714' # 支付开关空气净化器. 同Const.DEVICE_TYPE_CODE_TIMESWITCH1 = '100110' 100114=>100714
  274. Const.DEVICE_TYPE_CODE_TIMESWITCH6 = '100715' # 艾维斯 100115=>100715
  275. Const.DEVICE_TYPE_CODE_TIMESWITCH7 = '100716' # 锁 100116=>100716
  276. Const.DEVICE_TYPE_CODE_TIMESWITCH8 = '100717' # 制氧机. 同Const.DEVICE_TYPE_CODE_TIMESWITCH2 100117=>100717
  277. # 充电柜 10X800-10X899
  278. Const.DEVICE_TYPE_CODE_CABINET = '100803' # 粤万通的充电柜
  279. Const.DEVICE_TYPE_CODE_CABINET_NEW = '1008031' # 粤万通的充电柜(开关门自控制版本)
  280. # 串口足疗机 10X900-10X999
  281. Const.DEVICE_TYPE_CODE_PEDICURE_SERIAL1 = '100900' # 串口足疗机. 和奥创协议类似. 姚总
  282. Const.DEVICE_TYPE_CODE_PEDICURE = '100901' # 奥创足疗机 100104 => 100901
  283. Const.DEVICE_TYPE_CODE_PEDICURE_HONGPAI = '100902' # 鸿派、博峰足疗机 100119 => 100902
  284. Const.DEVICE_TYPE_CODE_BINNUO = '100903' # 宾诺 100122=>100903
  285. # 格子柜 11X000-11X099
  286. Const.DEVICE_TYPE_CODE_CELL = '110000' # 格子柜 100800=>110000
  287. Const.DEVICE_TYPE_CODE_CELL1 = '111000' # 格子柜(反序) 100801=>111000
  288. Const.DEVICE_TYPE_CODE_GEZIGUI_485 = "110005" # 储物格子柜_485 100805=>110005
  289. # 吹风机类型 11X100-11X199
  290. Const.DEVICE_TYPE_CODE_WEIFULE_BLOWER = '110100' # 微付乐吹风机一体板 100129=>110100
  291. Const.DEVICE_TYPE_CODE_DIANCHUAN_BLOWER = '110101' # 电川吹风机 101300=>110101
  292. Const.DEVICE_TYPE_CODE_CHUIFENGJI = '110102' # 艾亚欣吹风机 100126=>110102
  293. # 游艺相关的设备类型 11X200-11X299
  294. Const.DEVICE_TYPE_CODE_WAWAJI = "110200" # 娃娃机 101200=>110200
  295. Const.DEVICE_TYPE_CODE_WAWAJI_WUMAHANG = "110201" # 娃娃机 武马行串口 101201=>110201
  296. Const.DEVICE_TYPE_CODE_WAWAJI_3706 = "110202" # 娃娃机 3706 101202=>110202
  297. Const.DEVICE_TYPE_CODE_WAWAJI_HUAYING = "110203" # 娃娃机 华盈 101203=>110203
  298. Const.DEVICE_TYPE_CODE_DUIBIJI = "110204" # 兑币机 101204=>110204
  299. Const.DEVICE_TYPE_CODE_DAQIANG = '110205' # 打枪设备 101205=>110205
  300. Const.DEVICE_TYPE_CODE_DUOBAO = "110206" # 多宝摇摇车. 已经废弃. 100107=>110206
  301. # 纸巾机类型 11X300-11X399
  302. Const.DEVICE_TYPE_CODE_TISSUE = '110300' # 纸巾机 (荣事达) 100105=>110300
  303. # 水控 11X400-11X499
  304. Const.DEVICE_TYPE_CODE_DEPARTMENT_SHOWER = '110400' # 公寓-淋浴器 100700=>110400
  305. # 汗蒸机 11X500-11X599
  306. Const.DEVICE_TYPE_CODE_HANZHEN = '110500' # 汗蒸机 100802=>110500
  307. # 门禁类型 11X600-11X699
  308. Const.DEVICE_TYPE_CODE_JH_GATE = "110601" # 久恒道闸门禁 101001=>110601
  309. Const.DEVICE_TYPE_CODE_ONE_CARD = "110602" # 一卡通道闸门禁 101002=>110602
  310. Const.DEVICE_TYPE_CODE_HP_GATE = "101000" # 霍珀道闸门禁 TODO: 101000=>110603
  311. # 11X700-11X799 饮水机,
  312. Const.DEVICE_TYPE_CODE_WATER_DISPENSER = '110700' # 韩总加水机 100130=>110700
  313. # 充值机 11X800-11X899
  314. Const.DEVICE_TYPE_CODE_AHZT = "110804" # 安徽智同的 100804=>110804
  315. Const.DEVICE_TYPE_CODE_JHIC = "110806" # 久恒IC卡充值机 100806=>110806
  316. # 饮水机等 11X900-11X999
  317. Const.DEVICE_TYPE_CODE_WATER_CONTROLLER = '110901' # 文智嘉盛控水器1 100131=>110901
  318. Const.DEVICE_TYPE_CODE_HESHUICHONGDIAN = '110903' # 喝水充电 100123=>110903
  319. Const.DEVICE_TYPE_CODE_HESHUI = '110904' # 打水 100124=>110904
  320. Const.DEVICE_TYPE_CODE_CHONGDIAN = '110905' # 充电 100125=>110905
  321. # 换电柜 13X000-13X099
  322. Const.DEVICE_TYPE_CODE_YWT_HUANDIANGUI = '130001' # ywt换电柜
  323. # 蓝牙设备 20X000-20X199
  324. Const.DEVICE_TYPE_CODE_B_PULSE = '200001' # 蓝牙脉冲
  325. Const.DEVICE_TYPE_CODE_B_CHARGING = '200002' # 蓝牙充电开关
  326. Const.DEVICE_TYPE_CODE_B_TIME_SWITCH_GPIO = '200003' # 蓝牙软开关, GPIO电平驱动
  327. Const.DEVICE_TYPE_CODE_B_TIME_SWITCH_IR = '200005' # 蓝牙软开关, 红外遥控驱动
  328. Const.DEVICE_TYPE_CODE_B_QUICK_CHARGE_TWO = '200006' # 蓝牙两口快充脉冲
  329. Const.DEVICE_TYPE_CODE_B_CLOTHES_TREE = '200008' # 干衣架
  330. # 支持云快充TCP方式的协议的连接
  331. Const.DEVICE_TYPE_CODE_CAR_NENGPAI = '300001' # 云快充协议
  332. # 辅助串口驱动分配500000-500199
  333. Const.DEVICE_TYPE_CODE_AUX_START = '500000'
  334. Const.DEVICE_TYPE_CODE_AUX_CARD_JH = '500001'
  335. Const.DEVICE_TYPE_CODE_AUX_CARD_MY1 = '500002'
  336. Const.DEVICE_TYPE_CODE_AUX_CARD_MY2 = '500003'
  337. Const.DEVICE_TYPE_CODE_AUX_CARD_JH_DOUBLE = '500005'
  338. Const.DEVICE_TYPE_CODE_AUX_CARD_HX_DOUBLE = '5000051'
  339. Const.DEVICE_TYPE_CODE_AUX_HEISHUI = '500123'
  340. Const.DEVICE_TYPE_CODE_AUX_END = '500199'
  341. # 铁塔 90X100-90X1XX
  342. Const.DEVICE_TYPE_CODE_SHANDONG_TIETA = '900100'
  343. Const.DEVICE_TYPE_CODE_HENAN_TIETA = '900101'
  344. # 测试类型 99X900-99X9XX, 999999保留
  345. Const.BT_DEVICE_TYPE_CODE_MAP = {
  346. 1: Const.DEVICE_TYPE_CODE_B_PULSE,
  347. 2: Const.DEVICE_TYPE_CODE_B_CHARGING,
  348. 3: Const.DEVICE_TYPE_CODE_B_TIME_SWITCH_GPIO,
  349. 5: Const.DEVICE_TYPE_CODE_B_TIME_SWITCH_IR,
  350. 6: Const.DEVICE_TYPE_CODE_B_QUICK_CHARGE_TWO,
  351. 8: Const.DEVICE_TYPE_CODE_B_CLOTHES_TREE
  352. }
  353. Const.PEDICURE_BOX_DZGZ = '10010401' # 堵转故障
  354. Const.PEDICURE_BOX_BGW = '10010402' # 按摩脚霍尔传感器不归位
  355. Const.PEDICURE_BOX_KJGZ = '10010403' # 付款没有开机故障
  356. Const.TISSUE_BOX_QZ = '10010501' # 缺纸告警
  357. Const.TISSUE_BOX_DJGZ = '10010502' # 电机故障
  358. Const.WASHER_BOX_DJ = '10010601' # 待机
  359. Const.WASHER_BOX_YZ = '10010602' # 运转
  360. Const.WASHER_BOX_ZT = '10010603' # 暂停
  361. Const.WASHER_BOX_GZ = '10010604' # 故障
  362. Const.WASHER_BOX_CSSZ = '10010605' # 参数设置
  363. Const.WASHER_STATUS_CODE_DESC = {
  364. Const.WASHER_BOX_DJ: u'待机',
  365. Const.WASHER_BOX_YZ: u'运转',
  366. Const.WASHER_BOX_ZT: u'暂停',
  367. Const.WASHER_BOX_GZ: u'故障',
  368. Const.WASHER_BOX_CSSZ: u'参数设置'
  369. }
  370. Const.WASHER_BOX_ZJ = '10010606' # 自检
  371. Const.WASHER_BOX_DTS = '10010607' # 单脱水
  372. Const.WASHER_BOX_KS = '10010608' # 快速
  373. Const.WASHER_BOX_BZ = '10010609' # 标准
  374. Const.WASHER_BOX_DW = '10010610' # 大物
  375. Const.WASHER_BOX_JRKS = '10010611' # 加热快速
  376. Const.WASHER_BOX_JRBZ = '10010612' # 加热标准
  377. Const.WASHER_BOX_JRDW = '10010613' # 加热大物
  378. Const.WASHER_BOX_SET_TQJ = u'桶清洁'
  379. Const.WASHER_BOX_SET_DTS = u'单脱水'
  380. Const.WASHER_BOX_SET_KSX = u'快速洗'
  381. Const.WASHER_BOX_SET_BZX = u'标准洗'
  382. Const.WASHER_BOX_SET_DWX = u'大物洗'
  383. Const.WASHER_BOX_SET_JRKS = u'加热快速洗'
  384. Const.WASHER_BOX_SET_JRBZ = u'加热标准洗'
  385. Const.WASHER_BOX_SET_JRDW = u'加热大物洗'
  386. Const.WASHER_PROGRAM_CODE_DESC = {
  387. Const.WASHER_BOX_ZJ: u'自检',
  388. Const.WASHER_BOX_DTS: u'单脱水',
  389. Const.WASHER_BOX_KS: u'快速',
  390. Const.WASHER_BOX_BZ: u'标准',
  391. Const.WASHER_BOX_DW: u'大物',
  392. Const.WASHER_BOX_JRKS: u'加热快速',
  393. Const.WASHER_BOX_JRBZ: u'加热标准',
  394. Const.WASHER_BOX_JRDW: u'加热大物',
  395. }
  396. Const.WASHER_BOX_YY = '10010614' # 预约
  397. Const.WASHER_BOX_JP = '10010615' # 浸泡
  398. Const.WASHER_BOX_XD = '10010616' # 洗涤
  399. Const.WASHER_BOX_PX = '10010617' # 漂洗
  400. Const.WASHER_BOX_TS = '10010618' # 脱水
  401. Const.WASHER_BOX_ZJS = '10010619' # 主进水
  402. Const.WASHER_PROCESS_CODE_DESC = {
  403. Const.WASHER_BOX_YY: u'预约',
  404. Const.WASHER_BOX_JP: u'浸泡',
  405. Const.WASHER_BOX_XD: u'洗涤',
  406. Const.WASHER_BOX_PX: u'漂洗',
  407. Const.WASHER_BOX_TS: u'脱水',
  408. Const.WASHER_BOX_ZJS: u'主进水'
  409. }
  410. Const.WASHER_BOX_JSCS = '10010620' # 进水超时
  411. Const.WASHER_BOX_PSCS = '10010621' # 排水超时
  412. Const.WASHER_BOX_TSKG = '10010622' # 脱水开盖
  413. Const.WASHER_BOX_TSBPH = '10010623' # 脱水不平衡
  414. Const.WASHER_BOX_TXGZ = '10010624' # 通讯故障
  415. Const.WASHER_BOX_TONTSKG = '10010625' # 童锁开盖
  416. Const.WASHER_BOX_YS = '10010626' # 溢水
  417. Const.WASHER_BOX_SWCGQGZ = '10010627' # 水位传感器故障
  418. Const.WASHER_BOX_SJCCGZ = '10010628' # 数据存储故障
  419. Const.WASHER_BOX_WDCGQGZ = '10010629' # 温度传感器故障
  420. Const.WASHER_BOX_WSJRGZ = '10010630' # 无水加热故障
  421. Const.WASHER_BOX_DJDZGZ = '10010631' # 电机堵转故障
  422. Const.WASHER_BOX_IPMWDGG = '10010632' # IPM温度过高故障
  423. Const.WASHER_BOX_DJGL = '10010633' # 电机过流故障
  424. Const.WASHER_BOX_DJQX = '10010634' # 电机缺相故障
  425. Const.WASHER_BOX_QDQGZ = '10010635' # 驱动器故障
  426. Const.WASHER_BOX_YEBENG = '10010636' # 液泵
  427. Const.CHARGING_KYXN_DCGZ = '10010637' # 电池故障
  428. Const.CHARGING_KYXN_CDZGZ = '10010638' # 充电桩故障
  429. Const.CHARGING_KYXN_QTGZ = '10010639' # 其他故障
  430. Const.EVENT_NORMAL = 1
  431. Const.EVENT_MAJOR = 2
  432. Const.EVENT_CRITICAL = 3
  433. # 霍珀虚拟卡续卡时间
  434. Const.VCARD_NEED_NOTIFY_TIME = 3
  435. Const.ERROR_START_TIMES = 3
  436. # 极验
  437. Const.GEE_TEST_ID = 'cece0b9be07d6a367c28d32cd11e43c8'
  438. Const.GEE_TEST_KEY = '90c898f262a2fdda854ed59629297930'
  439. # 阿里滑块
  440. Const.ALI_SLIDER_ACCESSKEY_ID = 'LTAI4FdCWfeML7Xqv3Eqw4V4'
  441. Const.ALI_SLIDER_ACCESSKEY_SECRET = 'xCW9nves10T3sEPfKSKXaALs7b3P19'
  442. Const.DATE_FMT = '%Y-%m-%d'
  443. Const.DATETIME_FMT = '%Y-%m-%d %H:%M:%S'
  444. # 提现费率常量
  445. Const.PLATFORM_DEFAULT_WITHDRAW_FEE_RATIO = Permillage("6")
  446. Const.MIN_DEALER_WITHDRAW_FEE_RATIO = Permillage("0")
  447. Const.MAX_DEALER_WITHDRAW_FEE_RATIO = Permillage("1000")
  448. # 流量卡年费常量
  449. Const.PLATFORM_DEFAULT_TRAFFIC_COST = RMB('20.00')
  450. Const.EVENT_CODE_DESC = {
  451. Const.PEDICURE_BOX_DZGZ: u'堵转故障',
  452. Const.PEDICURE_BOX_BGW: u'按摩脚霍尔传感器不归位',
  453. Const.PEDICURE_BOX_KJGZ: u'付款没有开机故障',
  454. Const.TISSUE_BOX_QZ: u'缺纸告警',
  455. Const.TISSUE_BOX_DJGZ: u'电机故障',
  456. Const.WASHER_BOX_JSCS: u'进水超时',
  457. Const.WASHER_BOX_PSCS: u'排水超时',
  458. Const.WASHER_BOX_TSKG: u'脱水开盖u',
  459. Const.WASHER_BOX_TSBPH: u'脱水不平衡',
  460. Const.WASHER_BOX_TXGZ: u'通讯故障',
  461. Const.WASHER_BOX_TONTSKG: u'童锁开盖',
  462. Const.WASHER_BOX_YS: u'溢水',
  463. Const.WASHER_BOX_SWCGQGZ: u'水位传感器故障',
  464. Const.WASHER_BOX_SJCCGZ: u'数据存储故障',
  465. Const.WASHER_BOX_WDCGQGZ: u'温度传感器故障',
  466. Const.WASHER_BOX_WSJRGZ: u'无水加热故障',
  467. Const.WASHER_BOX_DJDZGZ: u'电机堵转故障',
  468. Const.WASHER_BOX_IPMWDGG: u'IPM温度过高故障',
  469. Const.WASHER_BOX_DJGL: u'电机过流故障',
  470. Const.WASHER_BOX_DJQX: u'电机缺相故障',
  471. Const.WASHER_BOX_QDQGZ: u'驱动器故障',
  472. Const.CHARGING_KYXN_DCGZ: u'电池故障',
  473. Const.CHARGING_KYXN_CDZGZ: u'充电桩故障',
  474. Const.CHARGING_KYXN_QTGZ: u'其他故障'
  475. }
  476. Const.USER_SEX = enum(UNKNOWN = 0, MALE = 1, FEMALE = 2, ALL = -1)
  477. Const.CELERY_TASK_RESULT_TRANSLATION = {
  478. 'PENDING': u'处理中',
  479. 'STARTED': u'已开启',
  480. 'RETRY': u'等待重试',
  481. 'FAILURE': u'失败',
  482. 'SUCCESS': u'成功',
  483. 'UNKNOWN': u'未知'
  484. }
  485. Const.TRANSLATION = {
  486. 'feedback_process': u'故障处理完成提醒',
  487. 'feedback': u"用户报障",
  488. 'daily_income': u"次日收益推送",
  489. 'new_payment_order': u"每笔订单推送",
  490. 'abnormal_device_offline': u"设备离线通知",
  491. 'device_fault': u'设备故障通知',
  492. 'device_warnning': u'告警通知',
  493. 'online_notify': u'设备上线通知',
  494. 'refund_coins': u'设备退币',
  495. 'service_complete': u'服务完成',
  496. 'consume_notify': u'消费提醒',
  497. 'less_balance': u'余额不足',
  498. 'service_expired': u'服务到期提醒',
  499. 'sim_expire_notify': u'设备到期提醒',
  500. 'system_alarm_notify': u'系统告警通知',
  501. 'exchange_order_notify': u'售后服务通知',
  502. 'service_start': u'设备启动通知',
  503. 'dev_start': u'启动通知',
  504. 'charge_order_complete': u'充电订单完成提醒',
  505. 'common_order_complete': u'订单完成提醒'
  506. }
  507. class APP_TYPE(StrEnum):
  508. WECHAT_AUTH = 'wechat_auth'
  509. WECHAT_OLD_AUTH = 'wechat_old_auth'
  510. WECHAT_USER_MANAGER = 'wechat_user_manager'
  511. WECHAT_USER_SUBSCRIBE_MANAGER = 'wechat_user_subscribe_manager'
  512. WECHAT_DEALER_SUBSCRIBE_MANAGER = 'wechat_dealer_subscribe_manager'
  513. WECHAT_USER_MESSAGER = 'wechat_user_messager'
  514. WECHAT_MANAGER = 'wechat_manager'
  515. WECHAT_WITHDRAW = 'wechat_withdraw'
  516. ALIPAY_AUTH = 'alipay_auth'
  517. JD_AUTH = 'jd_auth'
  518. WECHAT_MINI_AUTH = 'wechat_mini_auth'
  519. # 支付APP按照平台来对应.
  520. # 微信平台可能对应微信支付,扫呗支付,京东支付
  521. # 支付宝平台可能对应支付宝,扫呗,京东聚合
  522. # 京东平台可能对应京东聚合,京东支付
  523. # MY_WECHAT_ENV_PAY = 'my_wechat_env_pay'
  524. WECHAT_ENV_PAY = 'wechat_env_pay'
  525. WECHAT_MINI_ENV_PAY = 'wechat_mini_env_pay'
  526. ALIPAY_ENV_PAY = 'alipay_env_pay'
  527. JD_ENV_PAY = 'jd_env_pay'
  528. PLATFORM_ENV_PAY = 'platform_common_env_pay'
  529. SWAP_ENV_PAY = 'swap_env_pay'
  530. # 100,000,000
  531. Const.A_HUNDRED_MILLION = 100000000
  532. Const.DEFAULT_PRODUCT_NAME = u'微付乐'
  533. Const.TRANS_DICT = {
  534. 'leftTime': {'name': '剩余时间', 'unit': '分钟', 'sortIndex': 3},
  535. 'nickname': {'name': '昵称', 'sortIndex': 1},
  536. 'duration': {'name': '使用时间', 'unit': '分钟', 'sortIndex': 3},
  537. 'coins': {'name': '支付', 'unit': '金币', 'sortIndex': 3},
  538. 'voltage': {'name': '电压', 'unit': '伏', 'sortIndex': 3},
  539. 'current': {'name': '电流', 'unit': '安', 'sortIndex': 3},
  540. 'inputElec': {'name': '充入电量', 'unit': '度', 'sortIndex': 3},
  541. 'statusDesc': {'name': '当前状态', 'sortIndex': 3},
  542. }
  543. Const.SIM_CARD_FORBIDDEN_DAY = 20 # 平台统一SIM卡到期日
  544. class GPS_TYPE(Values):
  545. gcj02 = ValueConstant('gcj02') # 国内特色 火星坐标系 高德,腾讯地图
  546. bd09 = ValueConstant('bd09') # 百度
  547. WGS84 = ValueConstant('WGS84') # 大部分国际使用
  548. class MQTT_GROUP(object):
  549. event = ''
  550. api = ''
  551. chuangwei = ''
  552. # event = '$share/group-event/'
  553. # api = '$share/group-api/'
  554. # chuangwei = '$share/group-chuangwei/'
  555. class Unit(StrEnum):
  556. # : Misc
  557. PACK = 'pack'
  558. # : Volume
  559. L = 'l' # liter
  560. ML = 'ml' # milliliter
  561. CC = 'cm^3' # cubic centimeter
  562. CUBIC_METER = 'm^3' # cubic meter
  563. # : Time
  564. SECOND = 'second'
  565. HOUR = 'hour'
  566. MINUTE = 'minute'
  567. # : Temperature
  568. DEGREE = 'degree' # degree Celsius
  569. # : Power
  570. WATT = 'watt'
  571. KILOWATT = 'kilowatt'
  572. # : Energy
  573. KJ = 'kilojoule'
  574. J = 'joule'
  575. MJ = 'megajoule' # 1000 * KJ
  576. kW_h = 'kilowatt hour' # kW·h 1 kW·h = 3.6 MJ
  577. # : Length
  578. M = 'meter'
  579. KM = 'kilometer'
  580. # : Area
  581. SQUARE_METER = 'square meter'
  582. SQUARE_KILO_METER = 'square kilometer'
  583. # : Force
  584. N = 'newton'
  585. class REPORT_CHANNEL(StrEnum):
  586. PAY = 'pay'
  587. AD = 'ad'
  588. COIN = 'coin'
  589. COUNT = 'count'
  590. PAY_COIN = 'pay_coin'
  591. COUNT_COIN = 'count_coin'
  592. class DEV_TMPL(StrEnum):
  593. PAY = 'd_{devNo}_{nowDate}_pay'
  594. AD = 'd_{devNo}_{nowDate}_ad'
  595. COIN = 'd_{devNo}_{nowDate}_coin'
  596. COUNT = 'd_{devNo}_{nowDate}_count'
  597. PAY_COIN = 'd_{devNo}_{nowDate}_pay_coin'
  598. COUNT_COIN = 'd_{devNo}_{nowDate}_count_coin'
  599. class GROUP_TMPL(StrEnum):
  600. PAY = 'g_{groupId}_{nowDate}_pay'
  601. AD = 'g_{groupId}_{nowDate}_ad'
  602. COIN = 'g_{groupId}_{nowDate}_coin'
  603. COUNT = 'g_{groupId}_{nowDate}_count'
  604. PAY_COIN = 'g_{groupId}_{nowDate}_pay_coin'
  605. COUNT_COIN = 'g_{groupId}_{nowDate}_count_coin'
  606. class DEALER_TMPL(StrEnum):
  607. PAY = 'o_{ownerId}_{nowDate}_pay'
  608. AD = 'o_{ownerId}_{nowDate}_ad'
  609. COIN = 'o_{ownerId}_{nowDate}_coin'
  610. COUNT = 'o_{ownerId}_{nowDate}_count'
  611. PAY_COIN = 'o_{ownerId}_{nowDate}_pay_coin'
  612. COUNT_COIN = 'o_{ownerId}_{nowDate}_count_coin'
  613. class AGENT_TMPL(StrEnum):
  614. AD = 'a_{agentId}_{nowDate}_ad'
  615. class MANAGER_TMPL(StrEnum):
  616. AD = 'm_{managerId}_{nowDate}_ad'
  617. class RechargeRecordVia(StrEnum):
  618. Balance = 'recharge'
  619. StartDevice = "startDevice"
  620. Card = 'chargeCard'
  621. VirtualCard = 'chargeVirtualCard'
  622. SendCoin = 'sendcoin'
  623. Refund = 'refund'
  624. Cash = 'cash' # 现金直接支付订单 / 一般用于后付费
  625. MonthlyPackage = "monthlyPackage"
  626. Insurance = "insurance" # 支付保险的钱
  627. Redpack = "redpack" # 红包抵扣
  628. Mix = "mix" # 混合单 (保险+充电)(红包抵扣+充电)
  629. RefundCash = "refundCash" # 现金退款
  630. RevokeRefundCash = 'revokeRefundCash' # 现金退款退单
  631. Swap = 'swap' # 互联互通
  632. AutoSim = 'autoSim'
  633. RECHARGE_RECORD_VIA_TRANSLATION = {
  634. RechargeRecordVia.Balance: u'充值余额',
  635. RechargeRecordVia.Card: u'实体卡充值',
  636. RechargeRecordVia.VirtualCard: u'虚拟卡券充值',
  637. RechargeRecordVia.SendCoin: u'商家派币',
  638. RechargeRecordVia.Refund: u'商家退币',
  639. RechargeRecordVia.Cash: u"后付费支付",
  640. RechargeRecordVia.MonthlyPackage: u"包月卡充值",
  641. RechargeRecordVia.Insurance: u"保险",
  642. RechargeRecordVia.Redpack: u"红包抵扣",
  643. RechargeRecordVia.RefundCash: u'现金退款',
  644. RechargeRecordVia.RevokeRefundCash: u'现金退款退单',
  645. RechargeRecordVia.Swap: u'互联互通',
  646. RechargeRecordVia.AutoSim: u"流量卡自动充值"
  647. }
  648. class CONSUMETYPE(IterConstant):
  649. MOBILE = 'mobile' # 扫码付费
  650. MOBILE_VCARD = 'mobile_vcard' # 虚拟卡抵扣
  651. COIN = 'coin' # 投币
  652. CARD = 'card' # 刷卡
  653. SERVER_BILLING = 'serverBilling' # 后台计费
  654. POWER_BILLING = 'powerBilling' # 功率计费
  655. POSTPAID = 'postpaid' # 后支付
  656. BILL_AS_SERVICE = 'billAsService' # 电量 + 服务费模式
  657. BILL_AS_SERVICE_POSTPAID = 'billAsServicePostpaid' # 电量 + 服务费模式 后支付
  658. class USER_RECHARGE_TYPE(IterConstant):
  659. RECHARGE = RechargeRecordVia.Balance
  660. START_DEVICE = RechargeRecordVia.StartDevice
  661. RECHARGE_CARD = RechargeRecordVia.Card
  662. RECHARGE_VIRTUAL_CARD = RechargeRecordVia.VirtualCard
  663. RECHARGE_CASH = RechargeRecordVia.Cash
  664. RECHARGE_MONTHLY_PACKAGE = RechargeRecordVia.MonthlyPackage
  665. RECHARGE_INSURANCE = RechargeRecordVia.Insurance
  666. RECHARGE_REDPACK = RechargeRecordVia.Redpack
  667. RECHARGE_MIX = RechargeRecordVia.Mix
  668. REFUND_CASH = RechargeRecordVia.RefundCash
  669. REVOKE_REFUND_CASH = RechargeRecordVia.RevokeRefundCash
  670. SWAP = RechargeRecordVia.Swap
  671. class DEALER_CONSUMPTION_AGG_KIND(IterConstant):
  672. # : 消费聚合类别
  673. COIN = 'coin'
  674. SPEND_MONEY = 'spendMoney' # 实际花费
  675. PACKAGE = 'package' # 纸巾包
  676. REFUNDED_COINS = 'refundedMoney' # 退费金额(金币)
  677. REFUNDED_CASH = 'refundedCash' # 退费金额(元)
  678. ELEC = 'elec' # 消耗电量
  679. CONSUME_CARD = 'consumeCard' # 刷卡消费额
  680. REFUND_CARD = 'refundCard' # 刷卡退费额
  681. DURATION = 'duration' # 充电时间
  682. ITEM = 'item' # 一件商品
  683. ELECFEE = 'elecFee' # 电费成本
  684. TOTAL_COUNT = 'totalCount' # 线下投币
  685. SERVICEFEE = 'serviceFee' # 服务费
  686. SERVICE_CHARGE = 'serviceCharge' # 同SERVICEFEE,兼容需要,后续不在使用
  687. ELEC_CHARGE = 'elecCharge' # ELECFEE,兼容需要,后续不在使用
  688. DEALER_CONSUMPTION_AGG_KIND_TRANSLATION = \
  689. {
  690. DEALER_CONSUMPTION_AGG_KIND.COIN: u'消费金币',
  691. DEALER_CONSUMPTION_AGG_KIND.PACKAGE: u'消费纸巾包',
  692. DEALER_CONSUMPTION_AGG_KIND.REFUNDED_COINS: u'退费金币',
  693. DEALER_CONSUMPTION_AGG_KIND.REFUNDED_CASH: u'退费金额',
  694. DEALER_CONSUMPTION_AGG_KIND.ELEC: u'消耗电量',
  695. DEALER_CONSUMPTION_AGG_KIND.SPEND_MONEY: u'实际花费',
  696. DEALER_CONSUMPTION_AGG_KIND.CONSUME_CARD: u'刷卡消费额',
  697. DEALER_CONSUMPTION_AGG_KIND.REFUND_CARD: u'卡退费',
  698. DEALER_CONSUMPTION_AGG_KIND.DURATION: u'使用时长',
  699. DEALER_CONSUMPTION_AGG_KIND.ITEM: u'销售货物',
  700. DEALER_CONSUMPTION_AGG_KIND.ELECFEE: u'电费',
  701. DEALER_CONSUMPTION_AGG_KIND.TOTAL_COUNT: u'线下投币次数',
  702. DEALER_CONSUMPTION_AGG_KIND.SERVICEFEE: u'服务费',
  703. DEALER_CONSUMPTION_AGG_KIND.SERVICE_CHARGE: u'服务费', # 兼容需要,后续不在使用
  704. DEALER_CONSUMPTION_AGG_KIND.ELEC_CHARGE: u'电费' # 兼容需要,后续不在使用
  705. }
  706. DEALER_CONSUMPTION_AGG_KIND_UNIT = \
  707. {
  708. DEALER_CONSUMPTION_AGG_KIND.COIN: u'个',
  709. DEALER_CONSUMPTION_AGG_KIND.PACKAGE: u'包',
  710. DEALER_CONSUMPTION_AGG_KIND.REFUNDED_COINS: u'金币',
  711. DEALER_CONSUMPTION_AGG_KIND.REFUNDED_CASH: u'元',
  712. DEALER_CONSUMPTION_AGG_KIND.ELEC: u'度',
  713. DEALER_CONSUMPTION_AGG_KIND.SPEND_MONEY: u'元',
  714. DEALER_CONSUMPTION_AGG_KIND.CONSUME_CARD: u'元',
  715. DEALER_CONSUMPTION_AGG_KIND.DURATION: u'分钟',
  716. DEALER_CONSUMPTION_AGG_KIND.ITEM: u'件',
  717. DEALER_CONSUMPTION_AGG_KIND.ELECFEE: u'元',
  718. DEALER_CONSUMPTION_AGG_KIND.TOTAL_COUNT: u'次',
  719. DEALER_CONSUMPTION_AGG_KIND.REFUND_CARD: u'元',
  720. DEALER_CONSUMPTION_AGG_KIND.SERVICEFEE: u'元',
  721. DEALER_CONSUMPTION_AGG_KIND.SERVICE_CHARGE: u'元', # 兼容需要,后续不在使用
  722. DEALER_CONSUMPTION_AGG_KIND.ELEC_CHARGE: u'元', # 兼容需要,后续不在使用
  723. }
  724. DEALER_CONSUMPTION_AGG_KIND_UNIT_PRECISION = \
  725. {
  726. DEALER_CONSUMPTION_AGG_KIND.COIN: '0.01',
  727. DEALER_CONSUMPTION_AGG_KIND.PACKAGE: '1',
  728. DEALER_CONSUMPTION_AGG_KIND.REFUNDED_COINS: '0.01',
  729. DEALER_CONSUMPTION_AGG_KIND.REFUNDED_CASH: '0.01',
  730. DEALER_CONSUMPTION_AGG_KIND.ELEC: '0.0001',
  731. DEALER_CONSUMPTION_AGG_KIND.SPEND_MONEY: '0.01',
  732. DEALER_CONSUMPTION_AGG_KIND.CONSUME_CARD: '0.01',
  733. DEALER_CONSUMPTION_AGG_KIND.DURATION: '0.01',
  734. DEALER_CONSUMPTION_AGG_KIND.ITEM: '1',
  735. DEALER_CONSUMPTION_AGG_KIND.ELECFEE: '0.01',
  736. DEALER_CONSUMPTION_AGG_KIND.TOTAL_COUNT: '1',
  737. DEALER_CONSUMPTION_AGG_KIND.SERVICEFEE: '0.01',
  738. DEALER_CONSUMPTION_AGG_KIND.SERVICE_CHARGE: '0.01', # 兼容需要,后续不在使用
  739. DEALER_CONSUMPTION_AGG_KIND.ELEC_CHARGE: '0.01', # 兼容需要,后续不在使用
  740. }
  741. MONTH_DATE_KEY = '{year:d}-{month:02d}'
  742. GLOSSARY_TRANSLATION = {
  743. 'elec': u'电量',
  744. 'reason': u'结束方式描述',
  745. 'chargeIndex': u'充电端口',
  746. 'actualNeedTime': u'动态功率计算',
  747. 'refundedMoney': u'退款',
  748. 'spendMoney': u'实际花费',
  749. 'feeType': u'收费标准',
  750. 'duration': u'充电时间',
  751. 'finishedTime': u'订单结束时间',
  752. 'leftTime': u'充电剩余时间',
  753. 'leftElec': u'剩余电量',
  754. 'power': u'功率',
  755. 'maxPower': u'最大功率',
  756. 'preBalance': u'充值前余额',
  757. 'batteryType': u'电池类型',
  758. 'coin': u'付款数额',
  759. 'needTime': u'订购时间',
  760. 'voltage': u'电池电压',
  761. 'leftMoney': u'剩余金额',
  762. 'cardBalance': u"刷卡后余额",
  763. "cardNo": u"支付卡号",
  764. "oldBatteryImei": u"放入电池",
  765. "newBatteryImei": u"取出电池",
  766. "chargeIndex1": u"放入端口号",
  767. "chargeIndex2": u"取出端口号",
  768. "pw": u"开锁密码",
  769. "stayTime": u"占位时间",
  770. "chargeType": u"收费模式",
  771. "port": u"使用端口",
  772. "exec_time": u"订单执行时间",
  773. "rechargeCode": u"续充动态码",
  774. "CODE": u"CODE",
  775. "masterOrderNo": u"关联主单号",
  776. "subOrderNo": u"关联子单号",
  777. "needElec": u"订购电量",
  778. "elecFee": u"电费",
  779. "elecCharge": u"电量费用",
  780. "serviceCharge": u"服务费用",
  781. "start": u"启动时间",
  782. "end": u"结束时间"
  783. }
  784. # 提现相关常量定义
  785. # 经销商相关常量定义
  786. REQUEST_ID_HEADER = 'HTTP_X_REQUEST_ID'
  787. class START_DEVICE_STATUS(IterConstant):
  788. RUNNING = 'running'
  789. PAYING = 'paying'
  790. FINISHED = 'finished'
  791. TIMEOUT = 'timeout'
  792. FAILURE = 'failure'
  793. Const.DEFAULT_TIME_FIELD_NAME = 'dateTimeAdded'
  794. class PARTITION_ROLE(IterConstant):
  795. """ 分账者的角色 """
  796. OWNER = 'owner' # 被分账人
  797. AGENT = 'agent' # 代理商
  798. PARTNER = 'partner' # 合伙人
  799. PLATFORM = 'platform' # 平台
  800. class PARTITION_TYPE(IterConstant):
  801. """
  802. 抽成的方式 一种是定额 另一种是百分比
  803. """
  804. PERCENT = "1"
  805. FIXED = "2"
  806. class DEVICE_INCOME_STRATEGY(IntEnum):
  807. AGENT_FIRST_LEDGER = 1
  808. PARTNER_FIRST_LEDGER = 2
  809. class INSURANCE_CATEGORY(StrEnum):
  810. CHARGE = "charge" # 充电险
  811. STOLEN = "stolen" # 偷盗险
  812. CYCLE = "cycle" # 骑行险
  813. class AdType(IterConstant):
  814. INIT = 'init'
  815. PAY_AFTER = 'payAfter'
  816. BANNER = 'banner'
  817. TOPSHOW = 'topshow'
  818. class AdSpace(IterConstant):
  819. PAYAFTER = 'payAfter'
  820. TOPSHOW = 'topShow'
  821. BANNER = 'banner'
  822. class AdScriptType(IterConstant):
  823. INLINE = 'inline'
  824. REMOTE = 'remote'
  825. class MANAGER_EXPORT_EXCEL_TYPE(IterConstant):
  826. RECHARGE = 'charge'
  827. RECHARGE_CARD = 'chargeCard'
  828. class WECHAT_RESULT(IterConstant):
  829. SUCCESS = 'SUCCESS'
  830. FAIL = 'FAIL'
  831. class WECHAT_WITHDRAW_STATUS(IterConstant):
  832. UNKNOWN = 'UNKNOWN'
  833. PROCESSING = 'PROCESSING'
  834. SUCCESS = 'SUCCESS'
  835. FAILED = 'FAILED'
  836. BANK_FAIL = 'BANK_FAIL'
  837. Const.CMD_CMD_TRANSLATE_DICT = {
  838. '201': u'查询设备信息',
  839. '202': u'设置设备参数',
  840. '203': u'支付指令',
  841. '206': u'停止设备',
  842. '207': u'设备主动上报心跳数据',
  843. '210': u'操作设备指令',
  844. '211': u'设备必须回复服务器的指令',
  845. '199': u'回应设备消息',
  846. '220': u'回应设备消息,但是不需要设备响应',
  847. '100': u'设备上报事件',
  848. '110': u'设备上报告警',
  849. '120': u'设备上报故障',
  850. '130': u'设备上报功率',
  851. '301': u'水控设备上报查询卡余额',
  852. '302': u'水控设备上报消费单数据',
  853. '303': u'水控设备充值',
  854. '306': u'下发参数设置',
  855. }
  856. Const.CMD_PARAS_TRANSLATE_DICT = {
  857. 'IMEI': u'设备编号',
  858. 'imsi': u'SIM卡的imsi',
  859. 'iccid': u'SIM卡的iccid',
  860. 'hw_ver': u'硬件版本',
  861. 'soft_ver': u'软件基础版本',
  862. 'driverCode': u'驱动类型编码',
  863. 'driverVersion': u'驱动版本',
  864. 'coin': u'投币统计',
  865. 'signal': u'信号值',
  866. 'duration': u'使用时长',
  867. }
  868. Const.CMD_DATA_TRANSLATE_DICT = {
  869. 'status': u'状态',
  870. 'port': u'端口',
  871. 'reason': u'原因',
  872. 'leftTime': u'剩余时间',
  873. 'elec': u'电流/电量',
  874. 'FaultCode': u'故障编码',
  875. 'cardNo': u'卡号',
  876. 'preFee': u'预付款',
  877. 'oper': u'操作编码',
  878. 'needTime': u'订购时间',
  879. 'consumeType': u'消费方式',
  880. 'coins': u'金币',
  881. 'coin': u'投币数',
  882. 'money': u'钱',
  883. 'mobilePrice': u'移动支付使用价格',
  884. 'mobileTime': u'移动支付使用时间',
  885. 'mobileOnsale': u'移动支付使用折扣',
  886. 'icPrice': u'IC卡使用价格',
  887. 'icTime': u'IC卡使用时间',
  888. 'coinPrice': u'投币使用价格',
  889. 'coinTime': u'投币使用时间',
  890. 'orderNo': u'订单号',
  891. 'orderSequance': u'订单序号',
  892. 'duration': u'使用时长',
  893. 'balance': u'余额',
  894. 'finishedTime': u'结束时间',
  895. }
  896. Const.ZHEJIANG_PRODUCER_CODE = 88888888
  897. Const.ZHEJIANG_EVENT_TYPE_DICT = {'100202': {'03': '502', '0B': '502'},
  898. '100204': {'03': '502', '0B': '502'},
  899. '100210': {'03': '502', '0B': '502'},
  900. '100216': {'04': '502', '05': '502'},
  901. '100228': {'11': '301', '12': '302'},
  902. '100205': {'08': '501', '03': '599'},
  903. '100206': {'0B': '599'}
  904. }
  905. Const.YUHUAN_PORT_OVERLOAD = '97'
  906. Const.YUHUAN_PORT_OVERLOAD_RECOVERY = '98'
  907. Const.YUHUAN_OFFLINE = '99'
  908. Const.YUHUAN_ONLINE = '100'
  909. Const.YUHUAN_EVENT_TYPE_DICT = {'100205': {
  910. '01': {'ftype': 'G44B4', 'fisok': '0', 'fhandlmemo': u'充电器故障,暂时无法充电,待恢复'},
  911. '02': {'ftype': 'G44B4', 'fisok': '0', 'fhandlmemo': u'设备功率过载,待恢复'},
  912. '03': {'ftype': 'G44B4', 'fisok': '0', 'fhandlmemo': u'充电桩电源故障,待恢复'},
  913. '97': {'ftype': 'G44B3', 'fisok': '0', 'fhandlmemo': u'充电端口功率过载,系统会自动断电保护'},
  914. '98': {'ftype': 'G44BC', 'fisok': '1', 'fhandlmemo': u'充电端口功率过载,系统自动结束充电'},
  915. '99': {'ftype': 'G4436', 'fisok': '0', 'fhandlmemo': u'设备掉线,待检查恢复'},
  916. '100': {'ftype': 'G4437', 'fisok': '1', 'fhandlmemo': u'设备恢复上线'}
  917. },
  918. '100210': {
  919. '01': {'ftype': 'G44B4', 'fisok': '0', 'fhandlmemo': u'充电器故障,暂时无法充电,待恢复'},
  920. '02': {'ftype': 'G44B4', 'fisok': '0', 'fhandlmemo': u'设备功率过载,待恢复'},
  921. '03': {'ftype': 'G44B4', 'fisok': '0', 'fhandlmemo': u'充电桩电源故障,待恢复'},
  922. '97': {'ftype': 'G44B3', 'fisok': '0', 'fhandlmemo': u'充电端口功率过载,系统会自动断电保护'},
  923. '98': {'ftype': 'G44BC', 'fisok': '1', 'fhandlmemo': u'充电端口功率过载,系统自动结束充电'},
  924. '99': {'ftype': 'G4436', 'fisok': '0', 'fhandlmemo': u'设备掉线,待检查恢复'},
  925. '100': {'ftype': 'G4437', 'fisok': '1', 'fhandlmemo': u'设备恢复上线'}
  926. },
  927. }
  928. # sim卡只允许主账号充值
  929. Const.MAIN_MENU_LIST = {
  930. 'device_reg': True, 'device_management': True, 'business_stats': True, 'order_query': True,
  931. 'remote_upper': True, 'payoff_recharge': True, 'user_management': True, 'marketing': True,
  932. 'payoff_activity': True, 'card_management': True, 'sim_card': True, 'user_feedback': True,
  933. 'support_alarm': False, 'user_identify': False, 'stock_management': False,
  934. 'batteryManager': False, 'templateManager': False, 'apiManager': False,
  935. 'disableAdManager': False,'interconnection':False
  936. }
  937. Const.HOME_PAGE_DATA_LIST = {
  938. 'today_income': True, 'today_pay_income': True, 'today_ad_income': False, 'offline_coins': False
  939. }
  940. Const.ORDER_VERSION = '200'
  941. Const.TOPIC_WITH_SID_VERSION = '150'
  942. Const.MAINTENANCE_DAYS = 365 * 3
  943. Const.KUAIDI_API_APPCODE = '8296fcd952e34713ba91fbdceb13e915'
  944. Const.DEFAULT_ADDR = u'湖北武汉光谷物联港1号楼A座1912-14'
  945. Const.DEFAULT_NAME = u'陈先生'
  946. Const.DEFAULT_TELNO = u'18963981712'
  947. Const.TESTER_DEFAULT_FEATURES = ['binding_device', 'binding_detection', 'manual_test_device', 'test_bluetooth_device',
  948. 'configuration_driver', 'unbind_device', 'manual_test_serial_device', 'test_history',
  949. 'testing_report']
  950. class FEEDBACK_TYPE(IterConstant):
  951. FAULT = 'fault'
  952. REFUND = 'refund'
  953. UPPER = 'upper'
  954. class ErrorCode(IterConstant):
  955. SUCCESS = 0
  956. # 设备操作错误码 -1 - 100
  957. DEVICE_SUCCESS = 0
  958. DEVICE_CONN_FAIL = -1 # 消息发送无响应
  959. BOARD_UART_TIMEOUT = 1 # 串口发送无响应, 设备忙
  960. BOARD_FAULT = 2 # 和主板通讯未建立
  961. DEVICE_ORDER_IS_RUNNING = 3 # 订单正在运行
  962. PARAMETER_ERROR_TO_BOX = 5 # 和模块通讯参数无效
  963. IC_RECHARGE_FAIL = 6 # IC充值失败
  964. START_DEVICE_FAILURE = 7 # 启动设备失败
  965. NOT_CONNECT = 8 # 充电器未接上导致设备失败(和动插座协议不完善 只有下发了启动指令才能知道到底是否连接 这个应该是数据业务错误 没办法先加到这里)
  966. CHARGE_MODE_ERR = 93 # 充电模式错误
  967. PULSE_IS_CLOSE = 94 # 脉冲功能未启动
  968. PORT_IS_USED = 95 # 端口已经被占用
  969. DEVICE_SYSTEM_ERROR = 96 # 模块系统错误. 代码有问题,能够侦测到的错误
  970. CMD_IS_DOING = 97 # 命令正在处理
  971. ORDER_IS_EXIST = 98 # 订单已经存在
  972. ORDER_IS_FULL = 99 # 模块未确认订单达到最大数
  973. PORT_NO_LOAD = 100 # 充电端口空载
  974. TEST_BUSY = 101 # 正在测试串口
  975. NO_SUPPORT = 102 # 功能不支持
  976. # device 50000-50999
  977. DEVICE_CONN_CHECK_FAIL = 50000
  978. DEVICE_START_CONN_FAIL = 50001
  979. DEVICE_START_FAILURE = 50002
  980. DEVICE_START_PACKAGE_ERROR = 50003
  981. # system
  982. EXCEPTION = 101
  983. AUTH_CODE_IS_NULL = 102
  984. USER_STATE_IS_NOT_VALID = 103
  985. AUTH_ERROR = 104
  986. DEVICE_NO_AUTH = 105
  987. PARAMETER_ERROR = 106
  988. LOGIN_USER_IS_NULL = 107
  989. MONI_AUTH_IS_NULL = 108
  990. MONI_APP_IS_NULL = 109
  991. LOGIN_VERIFY = 401
  992. # user 1000-1999
  993. NEED_SIM_RECHARGE = 1000
  994. TOO_BIG_RECHARGE = 1002
  995. CARD_NEED_BIND_GROUP = 1003
  996. CARD_FORBID_CHARGE_GROUP = 1004
  997. CARD_BIND_BY_SELF = 1005
  998. CARD_BIND_BY_OTHER = 1006
  999. # 订单相关 1101 - 1199
  1000. ORDER_CREATED = 1101
  1001. ORDER_RUNNING = 1102
  1002. ORDER_NEED_PAY = 1103
  1003. ORDER_PAYING = 1104
  1004. # dealer 2000-2999
  1005. # 自动提现设置 提现到微信但是没有绑定微信
  1006. AUTO_WITHDRAW_WECHAT_NOT_BIND = 2001
  1007. # 40000 - 40100
  1008. API_AUTH_ERROR = 40000
  1009. API_AUTH_DEVICE_ERROR = 40001
  1010. API_PARAMETER_ERROR = 40002
  1011. API_EXCEPTION = 40003
  1012. API_NO_DEVICE = 40004
  1013. API_ERROR_DEVICE_TYPE = 40005
  1014. class DeviceErrorCodeDesc(object):
  1015. ErrorCodeDescMap = {
  1016. ErrorCode.DEVICE_SUCCESS: u'成功',
  1017. ErrorCode.DEVICE_CONN_FAIL: u'当前设备信号弱无响应,启动失败。本次操作没有扣除您的任何金币,您可以稍后重试或者试试附近其他设备。',
  1018. ErrorCode.DEVICE_CONN_CHECK_FAIL: u'设备信号弱无法连接,请稍后扫码重试或者试试附近其他设备。',
  1019. ErrorCode.DEVICE_START_CONN_FAIL: u'当前设备信号弱无响应,启动失败。本次操作没有扣除您的任何金币,您可以稍后重试或者试试附近其他设备。',
  1020. ErrorCode.DEVICE_START_FAILURE: u'启动设备失败({})。本次操作没有扣除您的任何金币,您可以稍后重试或者试试附近其他设备。',
  1021. ErrorCode.BOARD_UART_TIMEOUT: u'设备正在忙,无响应,您的金币还在,重试不需要重新付款,请试试其他线路,或者请稍后再试哦',
  1022. ErrorCode.BOARD_FAULT: u'当前设备故障,建议您试试旁边其他设备',
  1023. ErrorCode.DEVICE_ORDER_IS_RUNNING: u'订单正在运行',
  1024. ErrorCode.PARAMETER_ERROR_TO_BOX: u'和模块通讯参数无效',
  1025. ErrorCode.IC_RECHARGE_FAIL: u'IC充值失败',
  1026. ErrorCode.START_DEVICE_FAILURE: u'启动设备失败',
  1027. ErrorCode.ORDER_IS_EXIST: u'订单已经存在',
  1028. ErrorCode.PORT_NO_LOAD: u'充电端口空载',
  1029. ErrorCode.ORDER_IS_FULL: u'未确认订单达到最大数',
  1030. ErrorCode.PORT_IS_USED: u'端口已经占用',
  1031. ErrorCode.DEVICE_START_PACKAGE_ERROR: u'启动套餐参数错误'
  1032. }
  1033. @classmethod
  1034. def get(cls, error_code):
  1035. return cls.ErrorCodeDescMap.get(error_code, u'设备操作失败({})'.format(error_code))
  1036. class AD_TYPE(IterConstant):
  1037. PRE_HOOK = 'preHook'
  1038. INIT = 'init'
  1039. PAY_AFTER = 'payAfter'
  1040. class RECHARGE_CARD_TYPE(StrEnum):
  1041. ID = 'ID'
  1042. IC = 'IC'
  1043. class FAULT_RECORD_STATUS(StrEnum):
  1044. IGNORED = 'ignored'
  1045. HANDLED = 'handled'
  1046. INIT = 'init'
  1047. RECOVERED = 'recovered'
  1048. class FAULT_LEVEL(StrEnum):
  1049. FATAL = 'fatal'
  1050. CRITICAL = 'critical'
  1051. NORMAL = 'normal'
  1052. class TYPE_ADJUST_USER_VIRTUAL_CARD(StrEnum):
  1053. DELETE = "delete"
  1054. ADJUST_DAYS = "adjustTime"
  1055. ADJUST_QUOTA = "adjustQuota"
  1056. class FAULT_CODE(StrEnum):
  1057. OFFLINE = 'OFFLINE'
  1058. OFFLINE_RECOVERY = 'OFFLINE_RECOVERY'
  1059. OVER_VOLTAGE = 'OVER_VOLTAGE'
  1060. OVER_TEMPERATURE = 'OVER_TEMPERATURE'
  1061. SMOKE = 'SMOKE'
  1062. FIRE_ALARM = "FIRE_ALARM"
  1063. MCU_REBOOT = 'MCU_REBOOT' # MCU重启
  1064. RELAY_FAULT = 'RELAY_FAULT' # 继电器故障
  1065. COUNTER_FAULT = 'COUNTER_FAULT' # 计量芯片故障
  1066. DEV_OVERLOAD = 'DEV_OVERLOAD' # 整机功率过载
  1067. COPY_CARD = 'COPY_CARD' # 复制卡告警
  1068. WAWAJI_WUMAHANG_NG = 'WAWAJI_WUMAHANG_NG'
  1069. class MYUSER_GATEWAY(IterConstant):
  1070. WECHAT = 'wechat'
  1071. ALIPAY = 'alipay'
  1072. WECHAT_MINI = 'wechat_mini'
  1073. class MYUSER_SPACE_DIMENSION(IterConstant):
  1074. DEALER = 'dealer'
  1075. AGENT = 'agent'
  1076. GROUP = 'group'
  1077. Const.MoniMenus = {
  1078. 'gerenzhongxin': '%2Fuser%2Findex.html%23%2Fuser%2Fme',
  1079. 'dangqianfuwu': '%2Fuser%2Findex.html%23%2Fuser%2FdeviceStatus',
  1080. 'changjianwenti': '%2Fuser%2Findex.html%23%2Fuser%2Fhelp',
  1081. 'baogaolaoban': '%2Fuser%2Findex.html%23%2Fuser%2FfeedbackList',
  1082. 'zhoubianshebei': '%2Fuser%2Findex.html%23%2Fuser%2Findex',
  1083. 'toushushouli': '%2Fuser%2Findex.html%23%2Fcomplaint%2Flist'
  1084. }
  1085. class AppPlatformType(IterConstant):
  1086. ALIPAY = 'alipay'
  1087. WECHAT = 'wechat'
  1088. PLATFORM = 'platform'
  1089. WITHDRAW = 'withdraw'
  1090. APP_PLATFORM_TYPE_TRANSLATION = {
  1091. AppPlatformType.ALIPAY: u'支付宝',
  1092. AppPlatformType.WECHAT: u'微信',
  1093. # AppPlatformType.JD: u'京东',
  1094. # AppPlatformType.WECHAT_MINI: u'微信小程序',
  1095. AppPlatformType.PLATFORM: u'平台',
  1096. # AppPlatformType.SWAP: u'互联互通'
  1097. }
  1098. class PollRecordDefine(object):
  1099. DELAY_BEFORE = 30 # 同步订单任务启动延迟时间(秒)
  1100. TASK_EXPIRES = 180 # 任务超时时间(秒)
  1101. TOTAL_ROUNDS = 12 # 同步轮数
  1102. WAIT_EACH_ROUND = 10 # 每轮同步等待时间(秒)
  1103. class SimStatus(StrEnum):
  1104. Updated = 'updated'
  1105. Charged = 'chargedUnupdated'
  1106. Illegal = 'illegal'
  1107. support_policy_weifule = [
  1108. Const.DEVICE_TYPE_CODE_WEIFULE_POLICY,
  1109. Const.DEVICE_TYPE_CODE_WEIFULE_2_POLICY,
  1110. Const.DEVICE_TYPE_CODE_WEIFULE_POLICY_CLASSIC,
  1111. Const.DEVICE_TYPE_CODE_WEIFULE_MINI_POLICY,
  1112. ]
  1113. support_policy_device = [
  1114. Const.DEVICE_TYPE_CODE_CHARGING_POLICY_JNDZ,
  1115. Const.DEVICE_TYPE_CODE_CHARGING_DIANCHUAN_FT,
  1116. Const.DEVICE_TYPE_CODE_KE_HANG_POLICY,
  1117. Const.DEVICE_TYPE_CODE_CHARGE_XIAOKEDOU_POLICY,
  1118. ]
  1119. skip_package_params_verify_list = [
  1120. Const.DEVICE_TYPE_CODE_HP_GATE,
  1121. Const.DEVICE_TYPE_CODE_CHARGE_XIAOKEDOU,
  1122. Const.DEVICE_TYPE_CODE_CHARGING_WXLZ,
  1123. Const.DEVICE_TYPE_CODE_WEIFULE_POLICY,
  1124. Const.DEVICE_TYPE_CODE_WEIFULE_2_POLICY,
  1125. Const.DEVICE_TYPE_CODE_WEIFULE_POLICY_CLASSIC,
  1126. Const.DEVICE_TYPE_CODE_CHARGING_POLICY_JNDZ,
  1127. Const.DEVICE_TYPE_CODE_CHARGE_XIAOKEDOU_POLICY,
  1128. Const.DEVICE_TYPE_CODE_CHARGING_DIANCHUAN_FT,
  1129. Const.DEVICE_TYPE_CODE_CAR_CHANGING_JINQUE,
  1130. ]
  1131. # 跳过 套餐单位一致性 验证
  1132. skip_package_unit_verify_list = [
  1133. Const.DEVICE_TYPE_CODE_HESHUICHONGDIAN,
  1134. Const.DEVICE_TYPE_CODE_HESHUI,
  1135. Const.DEVICE_TYPE_CODE_CHONGDIAN, # 喝水充电的设备类型有不同单位的参数
  1136. Const.DEVICE_TYPE_CODE_WEIFULE_POLICY,
  1137. Const.DEVICE_TYPE_CODE_WEIFULE_2_POLICY,
  1138. Const.DEVICE_TYPE_CODE_WEIFULE_POLICY_CLASSIC,
  1139. Const.DEVICE_TYPE_CODE_CHARGING_POLICY_JNDZ,
  1140. Const.DEVICE_TYPE_CODE_CHARGE_XIAOKEDOU_POLICY,
  1141. Const.DEVICE_TYPE_CODE_CHARGING_DIANCHUAN_FT,
  1142. Const.DEVICE_TYPE_CODE_CAR_CHANGING_JINQUE,
  1143. Const.DEVICE_TYPE_CODE_CAR_CHANGING_JINQUE,
  1144. Const.DEVICE_TYPE_CODE_CAR_WEIFULE_21KW,
  1145. Const.DEVICE_TYPE_CODE_CAR_WEIFULE_21KW_JFPG,
  1146. Const.DEVICE_TYPE_CODE_CAR_WEIFILE_HOME_JFPG,
  1147. Const.DEVICE_TYPE_CODE_CAR_WEIFILE_HOME_DOUB_JFPG,
  1148. Const.DEVICE_TYPE_CODE_CAR_WEIFULE_CHARGING_DOUB,
  1149. Const.DEVICE_TYPE_CODE_CAR_WEIFULE_CHARGING_DOUB_JFPG,
  1150. Const.DEVICE_TYPE_CODE_CHARGE_WEIFULE_CAR,
  1151. Const.DEVICE_TYPE_CODE_CHARGE_WEIFULE_CAR_JFPG,
  1152. Const.DEVICE_TYPE_CODE_CAR_NENGPAI
  1153. ]
  1154. # 跳过 套餐用户获得保留小数点后两位 验证
  1155. skip_package_range_verify_list = [
  1156. Const.DEVICE_TYPE_CODE_WEIFULE_POLICY,
  1157. Const.DEVICE_TYPE_CODE_WEIFULE_2_POLICY,
  1158. Const.DEVICE_TYPE_CODE_WEIFULE_POLICY_CLASSIC,
  1159. Const.DEVICE_TYPE_CODE_CHARGING_POLICY_JNDZ,
  1160. Const.DEVICE_TYPE_CODE_CHARGE_XIAOKEDOU_POLICY,
  1161. Const.DEVICE_TYPE_CODE_CHARGING_DIANCHUAN_FT,
  1162. ]
  1163. # 通过经销商绑定的卡的初始OPENID
  1164. Const.DEFAULT_CARD_OPENID = "anonymous"
  1165. Const.QUERY_START_DATE = '2017-01-01'
  1166. Const.POWER_PRICE_RULES = [
  1167. {'min': 0, 'max': 200, 'price': 0.2},
  1168. {'min': 200, 'max': 300, 'price': 0.4},
  1169. {'min': 300, 'max': 400, 'price': 0.6},
  1170. {'min': 400, 'max': 500, 'price': 0.8}
  1171. ]
  1172. class ComplaintResponseTemplate(IterConstant):
  1173. COMMON_RESPONSE_CONTENT = u'您好,经核实您在 {}时在{}这台{}上支付一笔金额为 {}元的订单,订单编号为{}。目前已为您联系到这台自助设备的商家,请您拨打商家的电话{},反馈您遇到的设备问题。'
  1174. COMMON_RESPONSE_CONTENT_2 = u'平台已为您联系到这台自助设备的老板,请您拨打老板的电话{},反馈您遇到的设备问题。您付款的金额被设备老板收走了,请您联系设备老板进行处理。'
  1175. ERROR_RESPONSE_CONTENT = u'麻烦您联系一下平台客服13100704039或18271944902,反馈您遇到的支付问题,客服可以为您解决。'
  1176. REAL_PROBLEM_RESPONSE_CONTENT = u'建议您联系一下设备老板 {},反馈您遇到的售后问题。如果您联系不到老板,麻烦联系平台客服13100704039或18271944902解决您遇到的售后问题。'
  1177. REFUND_RESPONSE_CONTENT_1 = u'您好,经核实您启动的{}设备, 编号为{}。 该笔订单已经给您退币,时间为{}, 退币个数为{}个, 您下次使用设备的时候优先扣除金币, 不需要付款。(当前账户的余币数量在扫描设备二维码后的页面右上角可以看到)'
  1178. REFUND_RESPONSE_CONTENT_2 = u'您好,经核实您启动的{}设备, 编号为{}。 该笔订单已经给您退款,时间为{}, 退款金额为{}元, 请注意查收。'
  1179. REFUND_RESPONSE_CONTENT_3 = u'您好,经核实您启动的{}设备, 编号为{}。 启动设备失败! 该笔订单已经给您退还消费金币, 您下次使用设备的时候优先扣除金币, 不需要付款。(当前账户的余币数量在扫描设备二维码后的页面右上角可以看到)'
  1180. NO_RECHARGE_RECORD_CONTENT = u'您好,平台未查询到您投诉的订单号,麻烦您联系平台客服13100704039或18271944902,并提供一下您的订单截图谢谢。'
  1181. class MoniAppStatus(IntEnum):
  1182. ADDING = 1
  1183. FULL = 2
  1184. APP_OVER = 3
  1185. ADMIN_STOP = 4
  1186. DAY_FULL_STOP = 5
  1187. class OneCardGateAction(object):
  1188. ENTER = 1
  1189. OUT = 2
  1190. def choice(self):
  1191. return [self.ENTER, self.OUT]
  1192. Const.DB_BATCH_ROW_READ = 5000