hk-cdp 1.0.74__tar.gz → 1.0.76__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/PKG-INFO +1 -1
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/libs/customize/cdp_helper.py +46 -22
- hk_cdp-1.0.76/hk_cdp/libs/customize/rainbow_helper.py +56 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/member/member_info_model.py +4 -5
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/taobao/taobao_source_history_member_model.py +2 -2
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp.egg-info/PKG-INFO +1 -1
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp.egg-info/SOURCES.txt +1 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/setup.py +1 -1
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/README.md +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/handler/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/handler/cdp_base.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/libs/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/libs/customize/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/libs/customize/asset_base_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/libs/customize/tiktok_spi_helper.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/libs/customize/work_base_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/cdp_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/analysis/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/analysis/analysis_report_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/cap/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/cap/cap_business_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/cap/cap_store_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/cdp/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/cdp/cdp_store_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/cdp/cdp_work_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/member/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/member/member_asset_log_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/member/member_asset_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/member/member_asset_valid_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/member/member_event_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/member/member_level_log_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/prefix/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/prefix/prefix_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/queue/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/queue/queue_work_log_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/scheme/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/scheme/scheme_growth_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/scheme/scheme_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/scheme/scheme_integral_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/scheme/scheme_level_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/scheme/scheme_level_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/store/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/store/store_base_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/store/store_goods_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/store/store_prefix_log_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/sync/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/sync/sync_user_data_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/taobao/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/taobao/taobao_rds_item_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/taobao/taobao_rds_refund_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/taobao/taobao_rds_trade_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/taobao/taobao_source_buyer_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/trade/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/trade/trade_give_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/trade/trade_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/trade/trade_order_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/trade/trade_status_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/tt/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/tt/tt_rds_item_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/tt/tt_rds_refund_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/tt/tt_rds_trade_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/tt/tt_source_buyer_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/tt/tt_source_history_member_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/user/__init__.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/user/user_data_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/user/user_info_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/user/user_trends_model.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/enum.py +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp.egg-info/dependency_links.txt +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp.egg-info/requires.txt +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp.egg-info/top_level.txt +0 -0
- {hk_cdp-1.0.74 → hk_cdp-1.0.76}/setup.cfg +0 -0
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"""
|
|
3
3
|
@Author: HuangJianYi
|
|
4
4
|
@Date: 2024-11-18 18:57:33
|
|
5
|
-
@LastEditTime: 2025-
|
|
5
|
+
@LastEditTime: 2025-04-25 18:11:19
|
|
6
6
|
@LastEditors: HuangJianYi
|
|
7
|
-
@Description:
|
|
7
|
+
@Description: 帮助类
|
|
8
8
|
"""
|
|
9
9
|
import datetime
|
|
10
10
|
import math
|
|
@@ -14,7 +14,7 @@ from seven_cloudapp_frame.libs.customize.safe_helper import *
|
|
|
14
14
|
from hk_cdp.models.enum import *
|
|
15
15
|
|
|
16
16
|
class CdpHelper:
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
@classmethod
|
|
19
19
|
def get_business_db(self, business_code, cdp_db_config):
|
|
20
20
|
"""
|
|
@@ -41,8 +41,8 @@ class CdpHelper:
|
|
|
41
41
|
cdp_db_config = SevenHelper.json_loads(cdp_db_config)
|
|
42
42
|
cdp_db_config = deepcopy(cdp_db_config)
|
|
43
43
|
cdp_db_config["db"] = f"hk_{business_code}_cdp"
|
|
44
|
-
return cdp_db_config
|
|
45
|
-
|
|
44
|
+
return cdp_db_config
|
|
45
|
+
|
|
46
46
|
@classmethod
|
|
47
47
|
def get_valid_date(self, valid_type, expire_type, expire_value, expire_year, expire_month, expire_day):
|
|
48
48
|
"""
|
|
@@ -70,6 +70,35 @@ class CdpHelper:
|
|
|
70
70
|
else:
|
|
71
71
|
raise Exception("过期年/过期月/过期日不能为空")
|
|
72
72
|
|
|
73
|
+
@classmethod
|
|
74
|
+
def get_valid_date_v2(self, scheme_level_dict, level_info_dict):
|
|
75
|
+
"""
|
|
76
|
+
:description: 计算积分/成长值过期时间
|
|
77
|
+
:param scheme_level_dict: scheme_level_dict
|
|
78
|
+
:param level_info_dict: level_info_dict
|
|
79
|
+
:last_editors: HuangJianYi
|
|
80
|
+
"""
|
|
81
|
+
valid_type = scheme_level_dict['valid_type'] if scheme_level_dict and scheme_level_dict['is_unify_valid'] == 1 else level_info_dict.get('valid_type', 0)
|
|
82
|
+
expire_type = scheme_level_dict['expire_type'] if scheme_level_dict and scheme_level_dict['is_unify_valid'] == 1 else level_info_dict.get('expire_type', 0)
|
|
83
|
+
expire_value = scheme_level_dict['expire_value'] if scheme_level_dict and scheme_level_dict['is_unify_valid'] == 1 else level_info_dict.get('expire_value', 0)
|
|
84
|
+
expire_year = scheme_level_dict['expire_year'] if scheme_level_dict and scheme_level_dict['is_unify_valid'] == 1 else level_info_dict.get('expire_year', None)
|
|
85
|
+
expire_month = scheme_level_dict['expire_month'] if scheme_level_dict and scheme_level_dict['is_unify_valid'] == 1 else level_info_dict.get('expire_month', None)
|
|
86
|
+
expire_day = scheme_level_dict['expire_day'] if scheme_level_dict and scheme_level_dict['is_unify_valid'] == 1 else level_info_dict.get('expire_day', None)
|
|
87
|
+
if valid_type == ValidType.forever.value:
|
|
88
|
+
return '2900-01-01 00:00:00'
|
|
89
|
+
else:
|
|
90
|
+
if expire_type is None:
|
|
91
|
+
raise Exception("过期类型不能为空")
|
|
92
|
+
if expire_type == ExpireType.appoint_day.value: # 指定天过期
|
|
93
|
+
return (datetime.datetime.now() + datetime.timedelta(days=int(expire_value))).strftime("%Y-%m-%d 23:59:59")
|
|
94
|
+
else:
|
|
95
|
+
if expire_year is not None and expire_month is not None and expire_day is not None:
|
|
96
|
+
current_year = datetime.datetime.now().year
|
|
97
|
+
expire_date = datetime.datetime(current_year + int(expire_year), int(expire_month), int(expire_day), 23, 59, 59)
|
|
98
|
+
return expire_date.strftime("%Y-%m-%d 23:59:59")
|
|
99
|
+
else:
|
|
100
|
+
raise Exception("过期年/过期月/过期日不能为空")
|
|
101
|
+
|
|
73
102
|
@classmethod
|
|
74
103
|
def reward_algorithm(self, value_type, reward_value):
|
|
75
104
|
"""
|
|
@@ -123,7 +152,6 @@ class CdpHelper:
|
|
|
123
152
|
else:
|
|
124
153
|
return order_status
|
|
125
154
|
|
|
126
|
-
|
|
127
155
|
@classmethod
|
|
128
156
|
def convert_refund_status(self, platform_id, refund_status):
|
|
129
157
|
"""
|
|
@@ -146,7 +174,6 @@ class CdpHelper:
|
|
|
146
174
|
else:
|
|
147
175
|
return RefundStatus.NO_REFUND.name
|
|
148
176
|
|
|
149
|
-
|
|
150
177
|
@classmethod
|
|
151
178
|
def mask_telephone_middle(self, phone_str):
|
|
152
179
|
"""
|
|
@@ -154,13 +181,12 @@ class CdpHelper:
|
|
|
154
181
|
:param phone_str: 待处理的手机号
|
|
155
182
|
:return: 处理后的手机号
|
|
156
183
|
"""
|
|
157
|
-
value, status = SevenHelper.to_int(phone_str, return_status=True)
|
|
184
|
+
value, status = SevenHelper.to_int(phone_str, return_status=True)
|
|
158
185
|
if len(phone_str) == 11 and status == True:
|
|
159
186
|
return phone_str[:3] + '*' * 4 + phone_str[-4:]
|
|
160
187
|
else:
|
|
161
188
|
return phone_str[:-4] + '****'
|
|
162
|
-
|
|
163
|
-
|
|
189
|
+
|
|
164
190
|
@classmethod
|
|
165
191
|
def mask_telephone_first(self, phone_str):
|
|
166
192
|
"""
|
|
@@ -175,8 +201,7 @@ class CdpHelper:
|
|
|
175
201
|
return f'+{"*" * (len(phone_str) - 5)}{phone_str[-4:]}'
|
|
176
202
|
else:
|
|
177
203
|
return f'{"*" * (len(phone_str) - 4)}{phone_str[-4:]}'
|
|
178
|
-
|
|
179
|
-
|
|
204
|
+
|
|
180
205
|
@classmethod
|
|
181
206
|
def convert_sync_platform_info(self, business_id, one_id, total_integral, old_integral, change_integral, level_id=None, level_valid_date=None):
|
|
182
207
|
"""
|
|
@@ -190,33 +215,32 @@ class CdpHelper:
|
|
|
190
215
|
:param level_valid_date: 等级有效期
|
|
191
216
|
:return:
|
|
192
217
|
"""
|
|
193
|
-
sync_member_info, sync_integral_log = ""
|
|
218
|
+
sync_member_info, sync_integral_log = "", ""
|
|
194
219
|
if level_id and level_valid_date:
|
|
195
220
|
level_valid_date = str(level_valid_date)
|
|
196
221
|
sync_member_info = SevenHelper.json_dumps({
|
|
197
|
-
"business_id": business_id,
|
|
222
|
+
"business_id": business_id,
|
|
198
223
|
"one_id": one_id,
|
|
199
224
|
"version": TimeHelper.get_now_timestamp(True),
|
|
200
|
-
"point": total_integral,
|
|
225
|
+
"point": total_integral,
|
|
201
226
|
"level": level_id,
|
|
202
227
|
"level_expire_time": TimeHelper.format_time_to_timestamp(level_valid_date, out_ms=True)
|
|
203
228
|
})
|
|
204
229
|
if change_integral > 0:
|
|
205
230
|
sync_integral_log = SevenHelper.json_dumps({
|
|
206
|
-
"business_id": business_id,
|
|
207
|
-
"one_id": one_id,
|
|
208
|
-
"operate_type": 1,
|
|
209
|
-
"channel": 100,
|
|
231
|
+
"business_id": business_id,
|
|
232
|
+
"one_id": one_id,
|
|
233
|
+
"operate_type": 1,
|
|
234
|
+
"channel": 100,
|
|
210
235
|
"biz_scene": 100,
|
|
211
236
|
"point_type": 1,
|
|
212
237
|
"raw_quantity":change_integral,
|
|
213
238
|
"serial_no": SevenHelper.create_order_id(),
|
|
214
|
-
"change_time": TimeHelper.get_now_timestamp(True),
|
|
215
|
-
"old_total_point": old_integral,
|
|
239
|
+
"change_time": TimeHelper.get_now_timestamp(True),
|
|
240
|
+
"old_total_point": old_integral,
|
|
216
241
|
"total_point": total_integral
|
|
217
242
|
})
|
|
218
243
|
return sync_member_info, sync_integral_log
|
|
219
|
-
|
|
220
244
|
|
|
221
245
|
@classmethod
|
|
222
246
|
def get_platform_name(self, platform_id):
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
@Author: 彩虹库处理类
|
|
4
|
+
@Date: 2024-10-22 13:43:02
|
|
5
|
+
@LastEditTime: 2025-04-17 15:24:10
|
|
6
|
+
@LastEditors: HuangJianYi
|
|
7
|
+
@Description: 彩虹库处理类
|
|
8
|
+
"""
|
|
9
|
+
from seven_cloudapp_frame.handlers.frame_base import *
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class RainbowHelper:
|
|
13
|
+
"""
|
|
14
|
+
:description: 彩虹库处理类
|
|
15
|
+
"""
|
|
16
|
+
def __init__(self,context=None,logging_error=None,logging_info=None):
|
|
17
|
+
self.context = context
|
|
18
|
+
self.logging_link_error = logging_error
|
|
19
|
+
self.logging_link_info = logging_info
|
|
20
|
+
|
|
21
|
+
def get_clear_text_phone(self, store_id, mix_mobile, is_cache=True):
|
|
22
|
+
"""
|
|
23
|
+
:description: 获取明文手机号
|
|
24
|
+
:param store_id: 店铺标识
|
|
25
|
+
:param mix_mobile: 密文手机号
|
|
26
|
+
:param is_cache: 是否使用缓存
|
|
27
|
+
:return: invoke_result_data
|
|
28
|
+
:last_editors: HuangJianYi
|
|
29
|
+
"""
|
|
30
|
+
redis_key = f"tmall_member_clear_text_phone:mix_mobile_{mix_mobile}"
|
|
31
|
+
invoke_result_data = InvokeResultData()
|
|
32
|
+
try:
|
|
33
|
+
redis_init = SevenHelper.redis_init()
|
|
34
|
+
phone = ""
|
|
35
|
+
if is_cache:
|
|
36
|
+
phone = redis_init.get(redis_key)
|
|
37
|
+
if not phone:
|
|
38
|
+
rainbow_url = share_config.get_value("rainbow_url", "") + f"?store={store_id}&code={mix_mobile}"
|
|
39
|
+
result = requests.get(url=rainbow_url)
|
|
40
|
+
result_data = SevenHelper.json_loads(result.text) if result and result.reason == 'OK' else {}
|
|
41
|
+
if not result_data or result_data.get("desc","") != "success":
|
|
42
|
+
invoke_result_data.success = False
|
|
43
|
+
invoke_result_data.error_message = result_data.get("desc", "彩虹库接口异常")
|
|
44
|
+
return invoke_result_data
|
|
45
|
+
phone = result_data["data"]
|
|
46
|
+
if phone:
|
|
47
|
+
redis_init.set(redis_key, str(phone), ex=3600)
|
|
48
|
+
invoke_result_data.data = phone
|
|
49
|
+
except Exception as ex:
|
|
50
|
+
if self.context:
|
|
51
|
+
self.context.logging_link_error("【获取明文手机号异常】" + traceback.format_exc())
|
|
52
|
+
elif self.logging_link_error:
|
|
53
|
+
self.logging_link_error("【获取明文手机号异常】" + traceback.format_exc())
|
|
54
|
+
invoke_result_data.success = False
|
|
55
|
+
invoke_result_data.error_message = "获取手机号异常"
|
|
56
|
+
return invoke_result_data
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"""
|
|
3
3
|
@Author: HuangJianYi
|
|
4
4
|
@Date: 2024-10-15 18:30:21
|
|
5
|
-
@LastEditTime: 2025-
|
|
5
|
+
@LastEditTime: 2025-04-25 18:13:30
|
|
6
6
|
@LastEditors: HuangJianYi
|
|
7
7
|
@Description:
|
|
8
8
|
"""
|
|
@@ -40,6 +40,7 @@ class MemberInfo:
|
|
|
40
40
|
self.sex = 0 # 性别(0-未知 1-男 2-女)
|
|
41
41
|
self.first_ouid = "" # 首绑ouid
|
|
42
42
|
self.first_store_integral = 0 # 首绑店铺积分
|
|
43
|
+
self.first_store_level_id = 0 # 首绑店铺等级(为第一个绑定账号的店铺等级)
|
|
43
44
|
self.first_plat_store_id = "" # 首绑平台店铺标识
|
|
44
45
|
self.first_join_date = '1970-01-01 00:00:00.000' # 首次入会时间
|
|
45
46
|
self.first_join_store_id = 0 # 首次入会店铺
|
|
@@ -54,10 +55,8 @@ class MemberInfo:
|
|
|
54
55
|
@classmethod
|
|
55
56
|
def get_field_list(self):
|
|
56
57
|
return [
|
|
57
|
-
'id', 'one_id', 'business_id', 'scheme_id', 'include_plattypes', 'include_stores', 'level_id',
|
|
58
|
-
'
|
|
59
|
-
'first_store_integral', 'first_plat_store_id', 'first_join_date', 'first_join_store_id',
|
|
60
|
-
'last_join_date', 'last_join_store_id', 'extend_info', 'member_status', 'is_one_merge', 'create_date', 'modify_date'
|
|
58
|
+
'id', 'one_id', 'business_id', 'scheme_id', 'include_plattypes', 'include_stores', 'level_id', 'level_valid_date', 'member_telephone', 'member_mask_telephone', 'real_name', 'birthday', 'sex', 'first_ouid', 'first_store_integral', 'first_store_level_id',
|
|
59
|
+
'first_plat_store_id', 'first_join_date', 'first_join_store_id', 'last_join_date', 'last_join_store_id', 'extend_info', 'member_status', 'is_one_merge', 'create_date', 'modify_date'
|
|
61
60
|
]
|
|
62
61
|
|
|
63
62
|
@classmethod
|
{hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/taobao/taobao_source_history_member_model.py
RENAMED
|
@@ -36,8 +36,8 @@ class TaobaoSourceHistoryMember:
|
|
|
36
36
|
self.mobile = "" # 手机号
|
|
37
37
|
self.first_entry_time = "1900-01-01 00:00:00" # 首次入会时间
|
|
38
38
|
self.last_entry_time = "1900-01-01 00:00:00" # 首次入会时间
|
|
39
|
-
self.modify_time = "1900-01-01 00:00:00.000"
|
|
40
|
-
self.create_time = "1900-01-01 00:00:00.000"
|
|
39
|
+
self.modify_time = "1900-01-01 00:00:00.000" # 修改时间
|
|
40
|
+
self.create_time = "1900-01-01 00:00:00.000" # 创建时间
|
|
41
41
|
|
|
42
42
|
@classmethod
|
|
43
43
|
def get_field_list(self):
|
|
@@ -12,6 +12,7 @@ hk_cdp/libs/__init__.py
|
|
|
12
12
|
hk_cdp/libs/customize/__init__.py
|
|
13
13
|
hk_cdp/libs/customize/asset_base_model.py
|
|
14
14
|
hk_cdp/libs/customize/cdp_helper.py
|
|
15
|
+
hk_cdp/libs/customize/rainbow_helper.py
|
|
15
16
|
hk_cdp/libs/customize/tiktok_spi_helper.py
|
|
16
17
|
hk_cdp/libs/customize/work_base_model.py
|
|
17
18
|
hk_cdp/models/__init__.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hk_cdp-1.0.74 → hk_cdp-1.0.76}/hk_cdp/models/db_models/tt/tt_source_history_member_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|