"> 106 106
         (OTHER, u'其他'),
107 107
     )
108 108
 
109
-    lensman_id = models.CharField(_(u'lensman_id'), max_length=255, blank=True, null=True, help_text=u'摄影师唯一标识', db_index=True)
110
-    login_ip = models.CharField(_(u'login_ip'), max_length=255, blank=True, null=True, help_text=_(u'登录IP'))
109
+    lensman_id = models.CharField(_(u'lensman_id'), max_length=32, blank=True, null=True, help_text=u'摄影师唯一标识', db_index=True)
110
+    login_ip = models.CharField(_(u'login_ip'), max_length=32, blank=True, null=True, help_text=_(u'登录IP'))
111 111
     login_result = models.IntegerField(_(u'login_result'), choices=LOGIN_RESULT, default=SUCCESS)
112 112
 
113 113
     class Meta:
@@ -129,8 +129,8 @@ class LensmanIncomeExpensesInfo(BaseModelMixin):
129 129
         (UNFREEZE, u'解冻'),
130 130
     )
131 131
 
132
-    lensman_id = models.CharField(_(u'lensman_id'), max_length=255, blank=True, null=True, help_text=u'摄影师唯一标识', db_index=True)
133
-    photo_id = models.CharField(_(u'photo_id'), max_length=255, blank=True, null=True, help_text=u'照片唯一标识', db_index=True)
132
+    lensman_id = models.CharField(_(u'lensman_id'), max_length=32, blank=True, null=True, help_text=u'摄影师唯一标识', db_index=True)
133
+    photo_id = models.CharField(_(u'photo_id'), max_length=32, blank=True, null=True, help_text=u'照片唯一标识', db_index=True)
134 134
 
135 135
     type = models.IntegerField(_(u'type'), choices=TYPE, default=INCOME, help_text=u'收支类别')
136 136
     amount = models.IntegerField(_(u'amount'), default=0, help_text=u'余额增减数量(分)')
@@ -175,16 +175,16 @@ class TourGuideInfo(BaseModelMixin):
175 175
         (ASSIGN, u'已分配'),
176 176
     )
177 177
 
178
-    tourguide_id = models.CharField(_(u'tourguide_id'), max_length=255, blank=True, null=True, help_text=u'导游唯一标识', db_index=True, unique=True)
178
+    tourguide_id = models.CharField(_(u'tourguide_id'), max_length=32, blank=True, null=True, help_text=u'导游唯一标识', db_index=True, unique=True)
179 179
 
180
-    unionid = models.CharField(_(u'unionid'), max_length=255, blank=True, null=True, help_text=u'微信 Union ID', db_index=True, unique=True)
180
+    unionid = models.CharField(_(u'unionid'), max_length=32, blank=True, null=True, help_text=u'微信 Union ID', db_index=True, unique=True)
181 181
 
182 182
     name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'导游姓名')
183 183
     sex = models.IntegerField(_(u'sex'), choices=SEX_TYPE, default=MALE, help_text=u'导游性别')
184
-    phone = models.CharField(_(u'phone'), max_length=255, blank=True, null=True, help_text=u'导游电话', db_index=True, unique=True)
184
+    phone = models.CharField(_(u'phone'), max_length=16, blank=True, null=True, help_text=u'导游电话', db_index=True, unique=True)
185 185
     location = models.CharField(_(u'location'), max_length=255, blank=True, null=True, help_text=u'导游地址')
186 186
 
187
-    no = models.CharField(_(u'no'), max_length=255, blank=True, null=True, help_text=u'导游证编号')
187
+    no = models.CharField(_(u'no'), max_length=16, blank=True, null=True, help_text=u'导游证编号')
188 188
 
189 189
     user_status = models.IntegerField(_(u'user_status'), choices=USER_STATUS, default=UNVERIFIED)
190 190
     refused_reason = models.TextField(_(u'refused_reason'), blank=True, null=True, help_text=u'审核拒绝原因')
@@ -227,7 +227,7 @@ class WechatInfo(BaseModelMixin):
227 227
         (FEMALE, u'女'),
228 228
     )
229 229
 
230
-    unionid = models.CharField(_(u'unionid'), max_length=255, blank=True, null=True, help_text=u'微信 Union ID')
230
+    unionid = models.CharField(_(u'unionid'), max_length=32, blank=True, null=True, help_text=u'微信 Union ID')
231 231
     openids = JSONField(_(u'openids'), blank=True, null=True, help_text=u'微信 Open IDs')
232 232
     sex = models.IntegerField(_(u'sex'), choices=SEX_TYPE, default=MALE, help_text=u'用户性别')
233 233
     nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户昵称')
@@ -288,7 +288,7 @@ class UserInfo(BaseModelMixin, LensmanTypeBoolMixin):
288 288
         (FEMALE, u'女'),
289 289
     )
290 290
 
291
-    user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识', db_index=True, unique=True)
291
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True, unique=True)
292 292
 
293 293
     user_from = models.IntegerField(_(u'user_from'), choices=USER_FROM, default=APP_USER, help_text=u'用户来源')
294 294
     uuid = models.CharField(_(u'uuid'), max_length=255, blank=True, null=True, help_text=u'通用唯一识别码 (Universally Unique Identifier)', db_index=True)
@@ -296,12 +296,12 @@ class UserInfo(BaseModelMixin, LensmanTypeBoolMixin):
296 296
     username = models.CharField(_(u'username'), max_length=255, blank=True, null=True, help_text=u'用户用户名', db_index=True, unique=True)
297 297
     password = models.CharField(_(u'password'), max_length=255, blank=True, null=True, help_text=u'用户密码')
298 298
     # 微信授权用户
299
-    unionid = models.CharField(_(u'unionid'), max_length=255, blank=True, null=True, help_text=u'微信 Unionid', db_index=True, unique=True)
300
-    openid = models.CharField(_(u'openid'), max_length=255, blank=True, null=True, help_text=u'微信 Openid,拍爱用户端', db_index=True, unique=True)
301
-    openid_lensman = models.CharField(_(u'openid_lensman'), max_length=255, blank=True, null=True, help_text=u'微信 Openid,拍爱摄影师端', db_index=True, unique=True)
302
-    openid_tourguide = models.CharField(_(u'openid_tourguide'), max_length=255, blank=True, null=True, help_text=u'微信 Openid,拍爱导游端', db_index=True, unique=True)
303
-    openid_miniapp = models.CharField(_(u'openid_miniapp'), max_length=255, blank=True, null=True, help_text=u'微信 Openid,拍爱小程序', db_index=True, unique=True)
304
-    openid_oauth = models.CharField(_(u'openid_oauth'), max_length=255, blank=True, null=True, help_text=u'微信 Openid,拍爱用户授权', db_index=True, unique=True)
299
+    unionid = models.CharField(_(u'unionid'), max_length=32, blank=True, null=True, help_text=u'微信 Unionid', db_index=True, unique=True)
300
+    openid = models.CharField(_(u'openid'), max_length=32, blank=True, null=True, help_text=u'微信 Openid,拍爱用户端', db_index=True, unique=True)
301
+    openid_lensman = models.CharField(_(u'openid_lensman'), max_length=32, blank=True, null=True, help_text=u'微信 Openid,拍爱摄影师端', db_index=True, unique=True)
302
+    openid_tourguide = models.CharField(_(u'openid_tourguide'), max_length=32, blank=True, null=True, help_text=u'微信 Openid,拍爱导游端', db_index=True, unique=True)
303
+    openid_miniapp = models.CharField(_(u'openid_miniapp'), max_length=32, blank=True, null=True, help_text=u'微信 Openid,拍爱小程序', db_index=True, unique=True)
304
+    openid_oauth = models.CharField(_(u'openid_oauth'), max_length=32, blank=True, null=True, help_text=u'微信 Openid,拍爱用户授权', db_index=True, unique=True)
305 305
     # 用户基本信息
306 306
     name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'用户姓名')
307 307
     sex = models.IntegerField(_(u'sex'), choices=SEX_TYPE, default=MALE, help_text=u'用户性别')
@@ -324,13 +324,13 @@ class UserInfo(BaseModelMixin, LensmanTypeBoolMixin):
324 324
     user_status = models.IntegerField(_(u'user_status'), choices=USER_STATUS, default=UNVERIFIED, help_text=u'用户状态')
325 325
     outtake_status = models.IntegerField(_(u'outtake_status'), choices=USER_STATUS, default=UNVERIFIED, help_text=u'花絮摄影师状态')
326 326
 
327
-    assign_ip = models.CharField(_(u'assign_ip'), max_length=255, blank=True, null=True, help_text=_(u'分配IP'))
327
+    assign_ip = models.CharField(_(u'assign_ip'), max_length=32, blank=True, null=True, help_text=_(u'分配IP'))
328 328
     assign_at = models.DateTimeField(_(u'assign_at'), blank=True, null=True, help_text=_(u'分配时间'))
329 329
 
330
-    signup_ip = models.CharField(_(u'signup_ip'), max_length=255, blank=True, null=True, help_text=_(u'注册IP'))
330
+    signup_ip = models.CharField(_(u'signup_ip'), max_length=32, blank=True, null=True, help_text=_(u'注册IP'))
331 331
     signup_at = models.DateTimeField(_(u'signup_at'), blank=True, null=True, help_text=_(u'注册时间'))
332 332
 
333
-    login_ip = models.CharField(_(u'login_ip'), max_length=255, blank=True, null=True, help_text=_(u'登录IP'))
333
+    login_ip = models.CharField(_(u'login_ip'), max_length=32, blank=True, null=True, help_text=_(u'登录IP'))
334 334
     login_at = models.DateTimeField(_(u'login_at'), blank=True, null=True, help_text=_(u'登录时间'))
335 335
 
336 336
     class Meta:
@@ -378,8 +378,8 @@ class UserLoginLogInfo(BaseModelMixin):
378 378
         (OTHER, u'其他'),
379 379
     )
380 380
 
381
-    user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
382
-    login_ip = models.CharField(_(u'login_ip'), max_length=255, blank=True, null=True, help_text=_(u'登录IP'))
381
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
382
+    login_ip = models.CharField(_(u'login_ip'), max_length=32, blank=True, null=True, help_text=_(u'登录IP'))
383 383
     login_result = models.IntegerField(_(u'login_result'), choices=LOGIN_RESULT, default=SUCCESS)
384 384
 
385 385
     class Meta:
@@ -401,8 +401,8 @@ class UserIncomeExpensesInfo(BaseModelMixin):
401 401
         (UNFREEZE, u'解冻'),
402 402
     )
403 403
 
404
-    user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
405
-    photo_id = models.CharField(_(u'photo_id'), max_length=255, blank=True, null=True, help_text=u'照片唯一标识', db_index=True)
404
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
405
+    photo_id = models.CharField(_(u'photo_id'), max_length=32, blank=True, null=True, help_text=u'照片唯一标识', db_index=True)
406 406
 
407 407
     type = models.IntegerField(_(u'type'), choices=TYPE, default=INCOME, help_text=u'收支类别')
408 408
     amount = models.IntegerField(_(u'amount'), default=0, help_text=u'余额增减数量(分)')

+ 155 - 0
group/migrations/0044_auto_20180103_0446.py

@@ -0,0 +1,155 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.3 on 2018-01-02 20:46
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('group', '0043_auto_20180101_2220'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AlterField(
16
+            model_name='groupinfo',
17
+            name='admin_id',
18
+            field=models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='admin_id'),
19
+        ),
20
+        migrations.AlterField(
21
+            model_name='groupinfo',
22
+            name='attentions_path',
23
+            field=models.CharField(blank=True, help_text='\u6ce8\u610f\u4e8b\u9879\u7167\u7247\u5b58\u653e\u8def\u5f84', max_length=32, null=True, verbose_name='attentions_path'),
24
+        ),
25
+        migrations.AlterField(
26
+            model_name='groupinfo',
27
+            name='gather_screenshot',
28
+            field=models.CharField(blank=True, help_text='\u65c5\u6e38\u56e2\u96c6\u5408\u5730\u70b9\u622a\u56fe', max_length=32, null=True, verbose_name='gather_screenshot'),
29
+        ),
30
+        migrations.AlterField(
31
+            model_name='groupinfo',
32
+            name='group_id',
33
+            field=models.CharField(blank=True, db_index=True, help_text='\u7fa4\u7ec4\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, unique=True, verbose_name='group_id'),
34
+        ),
35
+        migrations.AlterField(
36
+            model_name='groupinfo',
37
+            name='phone',
38
+            field=models.CharField(blank=True, help_text='\u5bfc\u6e38\u7535\u8bdd', max_length=16, null=True, verbose_name='phone'),
39
+        ),
40
+        migrations.AlterField(
41
+            model_name='groupinfo',
42
+            name='schedules_path',
43
+            field=models.CharField(blank=True, help_text='\u884c\u7a0b\u5b89\u6392\u7167\u7247\u5b58\u653e\u8def\u5f84', max_length=32, null=True, verbose_name='schedules_path'),
44
+        ),
45
+        migrations.AlterField(
46
+            model_name='groupinfo',
47
+            name='session_id',
48
+            field=models.CharField(blank=True, db_index=True, help_text='\u7167\u7247\u7ec4\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='session_id'),
49
+        ),
50
+        migrations.AlterField(
51
+            model_name='groupphotoinfo',
52
+            name='group_id',
53
+            field=models.CharField(blank=True, db_index=True, help_text='\u7fa4\u7ec4\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='group_id'),
54
+        ),
55
+        migrations.AlterField(
56
+            model_name='groupphotoinfo',
57
+            name='lensman_id',
58
+            field=models.CharField(blank=True, db_index=True, help_text='\u6444\u5f71\u5e08\u552f\u4e00\u6807\u8bc6\uff0c\u540c PhotosInfo \u8868', max_length=32, null=True, verbose_name='lensman_id'),
59
+        ),
60
+        migrations.AlterField(
61
+            model_name='groupphotoinfo',
62
+            name='lensman_photo_id',
63
+            field=models.CharField(blank=True, db_index=True, help_text='\u6444\u5f71\u5e08\u7167\u7247\u552f\u4e00\u6807\u8bc6\uff0c\u540c PhotosInfo \u8868', max_length=32, null=True, verbose_name='lensman_photo_id'),
64
+        ),
65
+        migrations.AlterField(
66
+            model_name='groupphotoinfo',
67
+            name='photo_md5',
68
+            field=models.CharField(blank=True, db_index=True, help_text='\u7167\u7247 MD5', max_length=32, null=True, verbose_name='photo_md5'),
69
+        ),
70
+        migrations.AlterField(
71
+            model_name='groupphotoinfo',
72
+            name='photo_path',
73
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u5b58\u653e\u8def\u5f84', max_length=32, null=True, verbose_name='photo_path'),
74
+        ),
75
+        migrations.AlterField(
76
+            model_name='groupphotoinfo',
77
+            name='photo_thumbnail2_path',
78
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u7f29\u7565\u56fe\u5b58\u653e\u8def\u5f84', max_length=32, null=True, verbose_name='photo_thumbnail2_path'),
79
+        ),
80
+        migrations.AlterField(
81
+            model_name='groupphotoinfo',
82
+            name='photo_thumbnail_path',
83
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u7f29\u7565\u56fe\u5b58\u653e\u8def\u5f84', max_length=32, null=True, verbose_name='photo_thumbnail_path'),
84
+        ),
85
+        migrations.AlterField(
86
+            model_name='groupphotoinfo',
87
+            name='session_id',
88
+            field=models.CharField(blank=True, db_index=True, help_text='\u7167\u7247\u7ec4\u552f\u4e00\u6807\u8bc6\uff0c\u540c PhotosInfo \u8868', max_length=32, null=True, verbose_name='session_id'),
89
+        ),
90
+        migrations.AlterField(
91
+            model_name='groupphotoinfo',
92
+            name='user_id',
93
+            field=models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='user_id'),
94
+        ),
95
+        migrations.AlterField(
96
+            model_name='groupphotoorderinfo',
97
+            name='l_photo_path',
98
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u5b58\u653e\u8def\u5f84\uff0c\u7f8e\u5316\u5927\u56fe', max_length=32, null=True, verbose_name='l_photo_path'),
99
+        ),
100
+        migrations.AlterField(
101
+            model_name='groupphotoorderinfo',
102
+            name='lensman_photo_id',
103
+            field=models.CharField(blank=True, db_index=True, help_text='\u6444\u5f71\u5e08\u7167\u7247\u552f\u4e00\u6807\u8bc6\uff0c\u540c PhotosInfo \u8868', max_length=32, null=True, verbose_name='lensman_photo_id'),
104
+        ),
105
+        migrations.AlterField(
106
+            model_name='groupphotoorderinfo',
107
+            name='m_photo_path',
108
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u5b58\u653e\u8def\u5f84\uff0cBox\u4e0a\u4f20\uff0c\u65e0\u6c34\u5370', max_length=32, null=True, verbose_name='m_photo_path'),
109
+        ),
110
+        migrations.AlterField(
111
+            model_name='groupphotoorderinfo',
112
+            name='r_photo_path',
113
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u5b58\u653e\u8def\u5f84\uff0c\u9ad8\u6e05\u5927\u56fe', max_length=32, null=True, verbose_name='r_photo_path'),
114
+        ),
115
+        migrations.AlterField(
116
+            model_name='groupuserinfo',
117
+            name='group_id',
118
+            field=models.CharField(blank=True, db_index=True, help_text='\u7fa4\u7ec4\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='group_id'),
119
+        ),
120
+        migrations.AlterField(
121
+            model_name='groupuserinfo',
122
+            name='phone',
123
+            field=models.CharField(blank=True, help_text='\u7528\u6237\u7535\u8bdd', max_length=16, null=True, verbose_name='phone'),
124
+        ),
125
+        migrations.AlterField(
126
+            model_name='groupuserinfo',
127
+            name='user_id',
128
+            field=models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='user_id'),
129
+        ),
130
+        migrations.AlterField(
131
+            model_name='photocommentinfo',
132
+            name='photo_id',
133
+            field=models.CharField(blank=True, db_index=True, help_text='\u98de\u56fe\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='photo_id'),
134
+        ),
135
+        migrations.AlterField(
136
+            model_name='photocommentinfo',
137
+            name='to_uid',
138
+            field=models.CharField(blank=True, db_index=True, help_text='\u88ab\u8bc4\u8bba\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='to_uid'),
139
+        ),
140
+        migrations.AlterField(
141
+            model_name='photocommentinfo',
142
+            name='user_id',
143
+            field=models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='user_id'),
144
+        ),
145
+        migrations.AlterField(
146
+            model_name='photothumbupinfo',
147
+            name='photo_id',
148
+            field=models.CharField(blank=True, db_index=True, help_text='\u98de\u56fe\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='photo_id'),
149
+        ),
150
+        migrations.AlterField(
151
+            model_name='photothumbupinfo',
152
+            name='user_id',
153
+            field=models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='user_id'),
154
+        ),
155
+    ]

+ 29 - 29
group/models.py

@@ -26,19 +26,19 @@ class GroupInfo(BaseModelMixin):
26 26
         (TOURGUIDE_GROUP, u'导游建群'),
27 27
     )
28 28
 
29
-    group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True, unique=True)
30
-    admin_id = models.CharField(_(u'admin_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
29
+    group_id = models.CharField(_(u'group_id'), max_length=32, blank=True, null=True, help_text=u'群组唯一标识', db_index=True, unique=True)
30
+    admin_id = models.CharField(_(u'admin_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
31 31
     group_name = models.CharField(_(u'group_name'), max_length=255, blank=True, null=True, help_text=u'群组名称')
32 32
     group_default_avatar = models.IntegerField(_(u'group_default_avatar'), default=0, help_text=u'群组默认头像,0 - 255,水果头像')
33 33
     group_avatar = models.CharField(_(u'group_avatar'), max_length=255, blank=True, null=True, help_text=u'群组头像')
34 34
     group_desc = models.TextField(_(u'group_desc'), blank=True, null=True, help_text=u'群组描述')
35 35
     group_from = models.IntegerField(_(u'group_from'), choices=GROUP_FROM, default=APP_GROUP, help_text=u'群组来源')
36
-    session_id = models.CharField(_(u'session_id'), max_length=255, blank=True, null=True, help_text=u'照片组唯一标识', db_index=True)
36
+    session_id = models.CharField(_(u'session_id'), max_length=32, blank=True, null=True, help_text=u'照片组唯一标识', db_index=True)
37 37
     group_lock = models.BooleanField(_(u'group_lock'), default=False, help_text=u'群组锁定')
38 38
     group_initio = models.BooleanField(_(u'group_initio'), default=False, help_text=u'群组查看照片从头开始')
39 39
     # 旅行团
40 40
     name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'导游姓名')
41
-    phone = models.CharField(_(u'phone'), max_length=255, blank=True, null=True, help_text=u'导游电话')
41
+    phone = models.CharField(_(u'phone'), max_length=16, blank=True, null=True, help_text=u'导游电话')
42 42
     started_at = models.DateTimeField(_(u'started_at'), blank=True, null=True, help_text=_(u'旅游团开始时间'))
43 43
     ended_at = models.DateTimeField(_(u'ended_at'), blank=True, null=True, help_text=_(u'旅游团结束时间'))
44 44
     total_persons = models.IntegerField(_(u'total_persons'), default=1, help_text=u'旅游团总人数')
@@ -47,10 +47,10 @@ class GroupInfo(BaseModelMixin):
47 47
     gather_lon = models.FloatField(_(u'gather_lon'), blank=True, null=True, help_text=_(u'旅游团集合经度'))
48 48
     gather_lat = models.FloatField(_(u'gather_lat'), blank=True, null=True, help_text=_(u'旅游团集合纬度'))
49 49
     gather_location = models.CharField(_(u'gather_location'), max_length=255, blank=True, null=True, help_text=u'旅游团集合地点')
50
-    gather_screenshot = models.CharField(_(u'gather_screenshot'), max_length=255, blank=True, null=True, help_text=u'旅游团集合地点截图')
50
+    gather_screenshot = models.CharField(_(u'gather_screenshot'), max_length=32, blank=True, null=True, help_text=u'旅游团集合地点截图')
51 51
 
52
-    attentions_path = models.CharField(_(u'attentions_path'), max_length=255, blank=True, null=True, help_text=u'注意事项照片存放路径')
53
-    schedules_path = models.CharField(_(u'schedules_path'), max_length=255, blank=True, null=True, help_text=u'行程安排照片存放路径')
52
+    attentions_path = models.CharField(_(u'attentions_path'), max_length=32, blank=True, null=True, help_text=u'注意事项照片存放路径')
53
+    schedules_path = models.CharField(_(u'schedules_path'), max_length=32, blank=True, null=True, help_text=u'行程安排照片存放路径')
54 54
 
55 55
     class Meta:
56 56
         verbose_name = _(u'groupinfo')
@@ -151,8 +151,8 @@ class GroupUserInfo(BaseModelMixin):
151 151
         (QUIT, u'已退出'),
152 152
     )
153 153
 
154
-    group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
155
-    user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
154
+    group_id = models.CharField(_(u'group_id'), max_length=32, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
155
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
156 156
     current_id = models.IntegerField(_(u'current_id'), default=-1, help_text=u'当前群组照片ID')
157 157
     nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称')
158 158
     avatar = models.CharField(_(u'avatar'), max_length=255, blank=True, null=True, help_text=u'用户头像')
@@ -165,7 +165,7 @@ class GroupUserInfo(BaseModelMixin):
165 165
     # 旅行团相关
166 166
     subadmin = models.BooleanField(_(u'subadmin'), default=False, help_text=u'副群组管理员')
167 167
     name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'用户姓名')
168
-    phone = models.CharField(_(u'phone'), max_length=255, blank=True, null=True, help_text=u'用户电话')
168
+    phone = models.CharField(_(u'phone'), max_length=16, blank=True, null=True, help_text=u'用户电话')
169 169
     relative_persons = models.IntegerField(_(u'relative_persons'), default=1, help_text=u'关联人数')
170 170
     authority = models.BooleanField(_(u'authority'), default=True, help_text=u'是否有定位权限')
171 171
     remark = models.CharField(_(u'remark'), max_length=255, blank=True, null=True, help_text=u'备注')
@@ -221,27 +221,27 @@ class GroupPhotoInfo(BaseModelMixin, LensmanTypeMixin):
221 221
         (SESSION_GROUP, u'SESSION 建群'),
222 222
     )
223 223
 
224
-    photo_id = ShortUUIDField(_(u'photo_id'), max_length=255, help_text=u'照片唯一标识', db_index=True)
224
+    photo_id = ShortUUIDField(_(u'photo_id'), max_length=32, help_text=u'照片唯一标识', db_index=True)
225 225
 
226
-    group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
227
-    user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
226
+    group_id = models.CharField(_(u'group_id'), max_length=32, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
227
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
228 228
     nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称')
229 229
     avatar = models.CharField(_(u'avatar'), max_length=255, blank=True, null=True, help_text=u'用户头像')
230 230
 
231
-    photo_md5 = models.CharField(_(u'photo_md5'), max_length=255, blank=True, null=True, help_text=u'照片 MD5', db_index=True)
231
+    photo_md5 = models.CharField(_(u'photo_md5'), max_length=32, blank=True, null=True, help_text=u'照片 MD5', db_index=True)
232 232
 
233
-    photo_path = models.CharField(_(u'photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径')
233
+    photo_path = models.CharField(_(u'photo_path'), max_length=32, blank=True, null=True, help_text=u'照片存放路径')
234 234
     has_watermark = models.BooleanField(_(u'has_watermark'), default=False, help_text=_(u'是否有水印'), db_index=True)
235 235
     photo_w = models.IntegerField(_(u'photo_w'), default=0, help_text=u'照片宽度')
236 236
     photo_h = models.IntegerField(_(u'photo_h'), default=0, help_text=u'照片高度')
237 237
 
238 238
     # 双列: 540, 40-50K
239
-    photo_thumbnail_path = models.CharField(_(u'photo_thumbnail_path'), max_length=255, blank=True, null=True, help_text=u'照片缩略图存放路径')
239
+    photo_thumbnail_path = models.CharField(_(u'photo_thumbnail_path'), max_length=32, blank=True, null=True, help_text=u'照片缩略图存放路径')
240 240
     photo_thumbnail_w = models.IntegerField(_(u'photo_thumbnail_w'), default=0, help_text=u'照片缩略图宽度')
241 241
     photo_thumbnail_h = models.IntegerField(_(u'photo_thumbnail_h'), default=0, help_text=u'照片缩略图高度')
242 242
 
243 243
     # 单列: 1080, xx-100K
244
-    photo_thumbnail2_path = models.CharField(_(u'photo_thumbnail2_path'), max_length=255, blank=True, null=True, help_text=u'照片缩略图存放路径')
244
+    photo_thumbnail2_path = models.CharField(_(u'photo_thumbnail2_path'), max_length=32, blank=True, null=True, help_text=u'照片缩略图存放路径')
245 245
     photo_thumbnail2_w = models.IntegerField(_(u'photo_thumbnail2_w'), default=0, help_text=u'照片缩略图宽度')
246 246
     photo_thumbnail2_h = models.IntegerField(_(u'photo_thumbnail2_h'), default=0, help_text=u'照片缩略图高度')
247 247
 
@@ -250,9 +250,9 @@ class GroupPhotoInfo(BaseModelMixin, LensmanTypeMixin):
250 250
 
251 251
     photo_from = models.IntegerField(_(u'photo_from'), choices=PHOTO_FROM, default=APP_GROUP, help_text=u'照片来源')
252 252
 
253
-    session_id = models.CharField(_(u'session_id'), max_length=255, blank=True, null=True, help_text=u'照片组唯一标识,同 PhotosInfo 表', db_index=True)
254
-    lensman_id = models.CharField(_(u'lensman_id'), max_length=255, blank=True, null=True, help_text=u'摄影师唯一标识,同 PhotosInfo 表', db_index=True)
255
-    lensman_photo_id = models.CharField(_(u'lensman_photo_id'), max_length=255, blank=True, null=True, help_text=u'摄影师照片唯一标识,同 PhotosInfo 表', db_index=True)
253
+    session_id = models.CharField(_(u'session_id'), max_length=32, blank=True, null=True, help_text=u'照片组唯一标识,同 PhotosInfo 表', db_index=True)
254
+    lensman_id = models.CharField(_(u'lensman_id'), max_length=32, blank=True, null=True, help_text=u'摄影师唯一标识,同 PhotosInfo 表', db_index=True)
255
+    lensman_photo_id = models.CharField(_(u'lensman_photo_id'), max_length=32, blank=True, null=True, help_text=u'摄影师照片唯一标识,同 PhotosInfo 表', db_index=True)
256 256
 
257 257
     nomark = models.IntegerField(_(u'nomark'), default=299, help_text=u'摄影师照片无水印价格(分)')
258 258
     origin = models.IntegerField(_(u'origin'), default=999, help_text=u'摄影师照片高清图价格(分)')
@@ -336,11 +336,11 @@ class GroupPhotoOrderInfo(BaseModelMixin):
336 336
     session_id = models.CharField(_(u'session_id'), max_length=32, blank=True, null=True, help_text=u'照片组唯一标识,同 PhotosInfo 表', db_index=True)
337 337
     user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
338 338
     photo_id = models.CharField(_(u'photo_id'), max_length=32, blank=True, null=True, help_text=u'照片唯一标识', db_index=True)
339
-    lensman_photo_id = models.CharField(_(u'lensman_photo_id'), max_length=127, blank=True, null=True, help_text=u'摄影师照片唯一标识,同 PhotosInfo 表', db_index=True)
339
+    lensman_photo_id = models.CharField(_(u'lensman_photo_id'), max_length=32, blank=True, null=True, help_text=u'摄影师照片唯一标识,同 PhotosInfo 表', db_index=True)
340 340
 
341
-    m_photo_path = models.CharField(_(u'm_photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径,Box上传,无水印')
342
-    l_photo_path = models.CharField(_(u'l_photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径,美化大图')
343
-    r_photo_path = models.CharField(_(u'r_photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径,高清大图')
341
+    m_photo_path = models.CharField(_(u'm_photo_path'), max_length=32, blank=True, null=True, help_text=u'照片存放路径,Box上传,无水印')
342
+    l_photo_path = models.CharField(_(u'l_photo_path'), max_length=32, blank=True, null=True, help_text=u'照片存放路径,美化大图')
343
+    r_photo_path = models.CharField(_(u'r_photo_path'), max_length=32, blank=True, null=True, help_text=u'照片存放路径,高清大图')
344 344
 
345 345
     class Meta:
346 346
         verbose_name = _(u'groupphotoorderinfo')
@@ -373,11 +373,11 @@ class GroupPhotoOrderInfo(BaseModelMixin):
373 373
 
374 374
 
375 375
 class PhotoCommentInfo(BaseModelMixin):
376
-    photo_id = models.CharField(_(u'photo_id'), max_length=255, blank=True, null=True, help_text=u'飞图唯一标识', db_index=True)
377
-    user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
376
+    photo_id = models.CharField(_(u'photo_id'), max_length=32, blank=True, null=True, help_text=u'飞图唯一标识', db_index=True)
377
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
378 378
     nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称')
379 379
     avatar = models.CharField(_(u'avatar'), max_length=255, blank=True, null=True, help_text=u'用户头像')
380
-    to_uid = models.CharField(_(u'to_uid'), max_length=255, blank=True, null=True, help_text=u'被评论用户唯一标识', db_index=True)
380
+    to_uid = models.CharField(_(u'to_uid'), max_length=32, blank=True, null=True, help_text=u'被评论用户唯一标识', db_index=True)
381 381
     comment = models.TextField(_(u'comment'), blank=True, null=True, help_text=u'用户评论')
382 382
 
383 383
     class Meta:
@@ -400,8 +400,8 @@ class PhotoCommentInfo(BaseModelMixin):
400 400
 
401 401
 
402 402
 class PhotoThumbUpInfo(BaseModelMixin):
403
-    photo_id = models.CharField(_(u'photo_id'), max_length=255, blank=True, null=True, help_text=u'飞图唯一标识', db_index=True)
404
-    user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
403
+    photo_id = models.CharField(_(u'photo_id'), max_length=32, blank=True, null=True, help_text=u'飞图唯一标识', db_index=True)
404
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
405 405
     nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称')
406 406
     avatar = models.CharField(_(u'avatar'), max_length=255, blank=True, null=True, help_text=u'用户头像')
407 407
     thumbup = models.BooleanField(_(u'thumbup'), default=True, help_text=u'用户点赞', db_index=True)

+ 60 - 0
message/migrations/0013_auto_20180103_0446.py

@@ -0,0 +1,60 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.3 on 2018-01-02 20:46
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('message', '0012_auto_20180101_2220'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AlterField(
16
+            model_name='systemmessagedeleteinfo',
17
+            name='msg_id',
18
+            field=models.CharField(blank=True, db_index=True, help_text='\u7cfb\u7edf\u6d88\u606f\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='msg_id'),
19
+        ),
20
+        migrations.AlterField(
21
+            model_name='systemmessagedeleteinfo',
22
+            name='user_id',
23
+            field=models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='user_id'),
24
+        ),
25
+        migrations.AlterField(
26
+            model_name='systemmessagereadinfo',
27
+            name='msg_id',
28
+            field=models.CharField(blank=True, db_index=True, help_text='\u7cfb\u7edf\u6d88\u606f\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='msg_id'),
29
+        ),
30
+        migrations.AlterField(
31
+            model_name='systemmessagereadinfo',
32
+            name='user_id',
33
+            field=models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='user_id'),
34
+        ),
35
+        migrations.AlterField(
36
+            model_name='usermessageinfo',
37
+            name='from_uid',
38
+            field=models.CharField(blank=True, db_index=True, help_text='\u53d1\u9001\u6d88\u606f\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='from_uid'),
39
+        ),
40
+        migrations.AlterField(
41
+            model_name='usermessageinfo',
42
+            name='group_id',
43
+            field=models.CharField(blank=True, db_index=True, help_text='\u7fa4\u7ec4\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='group_id'),
44
+        ),
45
+        migrations.AlterField(
46
+            model_name='usermessageinfo',
47
+            name='msg_type',
48
+            field=models.CharField(db_index=True, default=b'system', help_text='\u6d88\u606f\u7c7b\u578b', max_length=8, verbose_name='msg_type'),
49
+        ),
50
+        migrations.AlterField(
51
+            model_name='usermessageinfo',
52
+            name='photo_id',
53
+            field=models.CharField(blank=True, db_index=True, help_text='\u98de\u56fe\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='photo_id'),
54
+        ),
55
+        migrations.AlterField(
56
+            model_name='usermessageinfo',
57
+            name='to_uid',
58
+            field=models.CharField(blank=True, db_index=True, help_text='\u63a5\u6536\u6d88\u606f\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='to_uid'),
59
+        ),
60
+    ]

+ 10 - 9
message/models.py

@@ -37,16 +37,17 @@ class UserMessageInfo(BaseModelMixin):
37 37
         }
38 38
     ]
39 39
 
40
-    from_uid = models.CharField(_(u'from_uid'), max_length=255, blank=True, null=True, help_text=u'发送消息用户唯一标识', db_index=True)
40
+    from_uid = models.CharField(_(u'from_uid'), max_length=32, blank=True, null=True, help_text=u'发送消息用户唯一标识', db_index=True)
41 41
     from_nickname = models.CharField(_(u'from_nickname'), max_length=255, blank=True, null=True, help_text=u'发送消息用户昵称')
42 42
     from_avatar = models.CharField(_(u'from_avatar'), max_length=255, blank=True, null=True, help_text=u'发送消息用户头像')
43 43
 
44
-    to_uid = models.CharField(_(u'to_uid'), max_length=255, blank=True, null=True, help_text=u'接收消息用户唯一标识', db_index=True)
44
+    to_uid = models.CharField(_(u'to_uid'), max_length=32, blank=True, null=True, help_text=u'接收消息用户唯一标识', db_index=True)
45 45
 
46
-    group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
47
-    photo_id = models.CharField(_(u'photo_id'), max_length=255, blank=True, null=True, help_text=u'飞图唯一标识', db_index=True)
46
+    group_id = models.CharField(_(u'group_id'), max_length=32, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
47
+    photo_id = models.CharField(_(u'photo_id'), max_length=32, blank=True, null=True, help_text=u'飞图唯一标识', db_index=True)
48 48
 
49
-    msg_type = models.CharField(_(u'msg_type'), max_length=255, default='system', help_text=u'消息类型', db_index=True)
49
+    # TODO: IntegerField?
50
+    msg_type = models.CharField(_(u'msg_type'), max_length=8, default='system', help_text=u'消息类型', db_index=True)
50 51
     msg_title = models.CharField(_(u'msg_title'), max_length=255, blank=True, null=True, help_text=u'消息标题')
51 52
     msg_content = models.TextField(_(u'msg_content'), blank=True, null=True, help_text=u'消息内容')
52 53
     read = models.BooleanField(_(u'read'), default=False, help_text=u'消息是否已读')
@@ -101,8 +102,8 @@ class SystemMessageInfo(BaseModelMixin, PaiaiSrcMixin):
101 102
 
102 103
 
103 104
 class SystemMessageReadInfo(BaseModelMixin):
104
-    user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
105
-    msg_id = models.CharField(_(u'msg_id'), max_length=255, blank=True, null=True, help_text=u'系统消息唯一标识', db_index=True)
105
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
106
+    msg_id = models.CharField(_(u'msg_id'), max_length=32, blank=True, null=True, help_text=u'系统消息唯一标识', db_index=True)
106 107
 
107 108
     class Meta:
108 109
         verbose_name = _('systemmessagereadinfo')
@@ -115,8 +116,8 @@ class SystemMessageReadInfo(BaseModelMixin):
115 116
 
116 117
 
117 118
 class SystemMessageDeleteInfo(BaseModelMixin):
118
-    user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
119
-    msg_id = models.CharField(_(u'msg_id'), max_length=255, blank=True, null=True, help_text=u'系统消息唯一标识', db_index=True)
119
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
120
+    msg_id = models.CharField(_(u'msg_id'), max_length=32, blank=True, null=True, help_text=u'系统消息唯一标识', db_index=True)
120 121
 
121 122
     class Meta:
122 123
         verbose_name = _('systemmessagedeleteinfo')

+ 55 - 0
operation/migrations/0017_auto_20180103_0446.py

@@ -0,0 +1,55 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.3 on 2018-01-02 20:46
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('operation', '0016_auto_20180101_2220'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AlterField(
16
+            model_name='appsettingsinfo',
17
+            name='channel',
18
+            field=models.CharField(blank=True, help_text='\u6e20\u9053', max_length=16, null=True, verbose_name='channel'),
19
+        ),
20
+        migrations.AlterField(
21
+            model_name='appsettingsinfo',
22
+            name='version',
23
+            field=models.CharField(blank=True, help_text='\u7248\u672c\uff081.0.0\uff09', max_length=16, null=True, verbose_name='version'),
24
+        ),
25
+        migrations.AlterField(
26
+            model_name='feedbackinfo',
27
+            name='user_id',
28
+            field=models.CharField(blank=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='user_id'),
29
+        ),
30
+        migrations.AlterField(
31
+            model_name='guestentrancecontrolinfo',
32
+            name='max_adr',
33
+            field=models.CharField(blank=True, help_text='Adr \u6700\u9ad8\u7248\u672c', max_length=16, null=True, verbose_name='max_adr'),
34
+        ),
35
+        migrations.AlterField(
36
+            model_name='guestentrancecontrolinfo',
37
+            name='max_ios',
38
+            field=models.CharField(blank=True, help_text='iOS \u6700\u9ad8\u7248\u672c', max_length=16, null=True, verbose_name='max_ios'),
39
+        ),
40
+        migrations.AlterField(
41
+            model_name='guestentrancecontrolinfo',
42
+            name='min_adr',
43
+            field=models.CharField(blank=True, help_text='Adr \u6700\u4f4e\u7248\u672c', max_length=16, null=True, verbose_name='min_adr'),
44
+        ),
45
+        migrations.AlterField(
46
+            model_name='guestentrancecontrolinfo',
47
+            name='min_ios',
48
+            field=models.CharField(blank=True, help_text='iOS \u6700\u4f4e\u7248\u672c', max_length=16, null=True, verbose_name='min_ios'),
49
+        ),
50
+        migrations.AlterField(
51
+            model_name='patchinfo',
52
+            name='version',
53
+            field=models.CharField(blank=True, help_text='\u7248\u672c\uff081.0.0\uff09', max_length=16, null=True, verbose_name='version'),
54
+        ),
55
+    ]

+ 4 - 4
operation/models.py

@@ -41,7 +41,7 @@ class LatestAppInfo(BaseModelMixin, PaiaiSrcMixin):
41 41
 
42 42
 
43 43
 class PatchInfo(BaseModelMixin, PlatformMixin, PaiaiSrcMixin):
44
-    version = models.CharField(_(u'version'), max_length=255, blank=True, null=True, help_text=u'版本(1.0.0)')
44
+    version = models.CharField(_(u'version'), max_length=16, blank=True, null=True, help_text=u'版本(1.0.0)')
45 45
     patch = models.FileField(_(u'patch'), upload_to=upload_path, blank=True, null=True, help_text=u'补丁')
46 46
 
47 47
     class Meta:
@@ -63,8 +63,8 @@ class PatchInfo(BaseModelMixin, PlatformMixin, PaiaiSrcMixin):
63 63
 
64 64
 
65 65
 class APPSettingsInfo(BaseModelMixin, PlatformMixin, PaiaiSrcMixin):
66
-    channel = models.CharField(_(u'channel'), max_length=255, blank=True, null=True, help_text=u'渠道')
67
-    version = models.CharField(_(u'version'), max_length=255, blank=True, null=True, help_text=u'版本(1.0.0)')
66
+    channel = models.CharField(_(u'channel'), max_length=16, blank=True, null=True, help_text=u'渠道')
67
+    version = models.CharField(_(u'version'), max_length=16, blank=True, null=True, help_text=u'版本(1.0.0)')
68 68
 
69 69
     online = models.BooleanField(_(u'online'), default=True, help_text=u'是否上线')
70 70
 
@@ -108,7 +108,7 @@ class SplashInfo(BaseModelMixin, PaiaiSrcMixin):
108 108
 
109 109
 
110 110
 class FeedbackInfo(BaseModelMixin, PaiaiSrcMixin):
111
-    user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识')
111
+    user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识')
112 112
     feedback = models.TextField(_(u'feedback'), blank=True, null=True, help_text=u'用户反馈')
113 113
 
114 114
     class Meta:

+ 4 - 4
pai2/basemodels.py

@@ -32,10 +32,10 @@ class PlatformMixin(models.Model):
32 32
 
33 33
 
34 34
 class VersionMixin(models.Model):
35
-    min_adr = models.CharField(_(u'min_adr'), max_length=255, blank=True, null=True, help_text=u'Adr 最低版本')
36
-    min_ios = models.CharField(_(u'min_ios'), max_length=255, blank=True, null=True, help_text=u'iOS 最低版本')
37
-    max_adr = models.CharField(_(u'max_adr'), max_length=255, blank=True, null=True, help_text=u'Adr 最高版本')
38
-    max_ios = models.CharField(_(u'max_ios'), max_length=255, blank=True, null=True, help_text=u'iOS 最高版本')
35
+    min_adr = models.CharField(_(u'min_adr'), max_length=16, blank=True, null=True, help_text=u'Adr 最低版本')
36
+    min_ios = models.CharField(_(u'min_ios'), max_length=16, blank=True, null=True, help_text=u'iOS 最低版本')
37
+    max_adr = models.CharField(_(u'max_adr'), max_length=16, blank=True, null=True, help_text=u'Adr 最高版本')
38
+    max_ios = models.CharField(_(u'max_ios'), max_length=16, blank=True, null=True, help_text=u'iOS 最高版本')
39 39
 
40 40
     def version_match(self, request):
41 41
         return is_version_match(request, {

+ 55 - 0
pay/migrations/0011_auto_20180103_0446.py

@@ -0,0 +1,55 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.3 on 2018-01-02 20:46
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('pay', '0010_auto_20180101_2220'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AlterField(
16
+            model_name='orderinfo',
17
+            name='from_uid',
18
+            field=models.CharField(db_index=True, help_text='\u4ed8\u6b3e\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, verbose_name='from_uid'),
19
+        ),
20
+        migrations.AlterField(
21
+            model_name='orderinfo',
22
+            name='group_id',
23
+            field=models.CharField(blank=True, db_index=True, help_text='\u7fa4\u7ec4\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='group_id'),
24
+        ),
25
+        migrations.AlterField(
26
+            model_name='orderinfo',
27
+            name='lensman_photo_id',
28
+            field=models.CharField(blank=True, db_index=True, help_text='\u6444\u5f71\u5e08\u7167\u7247\u552f\u4e00\u6807\u8bc6\uff0c\u540c PhotosInfo \u8868', max_length=32, null=True, verbose_name='lensman_photo_id'),
29
+        ),
30
+        migrations.AlterField(
31
+            model_name='orderinfo',
32
+            name='photo_id',
33
+            field=models.CharField(blank=True, db_index=True, help_text='\u98de\u56fe\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='photo_id'),
34
+        ),
35
+        migrations.AlterField(
36
+            model_name='orderinfo',
37
+            name='prepay_id',
38
+            field=models.CharField(blank=True, help_text='\u9884\u652f\u4ed8\u4ea4\u6613\u4f1a\u8bdd\u6807\u8bc6', max_length=64, null=True, verbose_name='prepay_id'),
39
+        ),
40
+        migrations.AlterField(
41
+            model_name='orderinfo',
42
+            name='session_id',
43
+            field=models.CharField(blank=True, db_index=True, help_text='\u7167\u7247\u7ec4\u552f\u4e00\u6807\u8bc6\uff0c\u540c PhotosInfo \u8868', max_length=32, null=True, verbose_name='session_id'),
44
+        ),
45
+        migrations.AlterField(
46
+            model_name='orderinfo',
47
+            name='to_uid',
48
+            field=models.CharField(blank=True, db_index=True, help_text='\u6536\u6b3e\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='to_uid'),
49
+        ),
50
+        migrations.AlterField(
51
+            model_name='orderinfo',
52
+            name='transaction_id',
53
+            field=models.CharField(blank=True, help_text='\u4ea4\u6613\u5355\u53f7', max_length=32, null=True, verbose_name='transaction_id'),
54
+        ),
55
+    ]

+ 9 - 9
pay/models.py

@@ -51,21 +51,21 @@ class OrderInfo(BaseModelMixin):
51 51
         # (DELETED, u'已删除'),
52 52
     )
53 53
 
54
-    order_id = ShortUUIDField(_(u'order_id'), max_length=255, help_text=u'订单唯一标识', db_index=True)
54
+    order_id = ShortUUIDField(_(u'order_id'), max_length=32, help_text=u'订单唯一标识', db_index=True)
55 55
 
56
-    prepay_id = models.CharField(_(u'prepay_id'), max_length=255, blank=True, null=True, help_text=u'预支付交易会话标识')
57
-    transaction_id = models.CharField(_(u'transaction_id'), max_length=255, blank=True, null=True, help_text=u'交易单号')
56
+    prepay_id = models.CharField(_(u'prepay_id'), max_length=64, blank=True, null=True, help_text=u'预支付交易会话标识')
57
+    transaction_id = models.CharField(_(u'transaction_id'), max_length=32, blank=True, null=True, help_text=u'交易单号')
58 58
 
59
-    group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
60
-    session_id = models.CharField(_(u'session_id'), max_length=255, blank=True, null=True, help_text=u'照片组唯一标识,同 PhotosInfo 表', db_index=True)
61
-    photo_id = models.CharField(_(u'photo_id'), max_length=255, blank=True, null=True, help_text=u'飞图唯一标识', db_index=True)
62
-    lensman_photo_id = models.CharField(_(u'lensman_photo_id'), max_length=255, blank=True, null=True, help_text=u'摄影师照片唯一标识,同 PhotosInfo 表', db_index=True)
59
+    group_id = models.CharField(_(u'group_id'), max_length=32, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
60
+    session_id = models.CharField(_(u'session_id'), max_length=32, blank=True, null=True, help_text=u'照片组唯一标识,同 PhotosInfo 表', db_index=True)
61
+    photo_id = models.CharField(_(u'photo_id'), max_length=32, blank=True, null=True, help_text=u'飞图唯一标识', db_index=True)
62
+    lensman_photo_id = models.CharField(_(u'lensman_photo_id'), max_length=32, blank=True, null=True, help_text=u'摄影师照片唯一标识,同 PhotosInfo 表', db_index=True)
63 63
 
64 64
     photo_type = models.IntegerField(_(u'photo_type'), choices=PHOTO_TYPE, default=NOMARK, help_text=u'购买照片类型', db_index=True)
65 65
     photo_status = models.IntegerField(_(u'photo_status'), choices=PHOTO_STATUS, default=WANTED, help_text=_(u'购买照片状态, 标识用户是否已经获得照片'), db_index=True)
66 66
 
67
-    from_uid = models.CharField(_(u'from_uid'), max_length=255, help_text=u'付款用户唯一标识', db_index=True)
68
-    to_uid = models.CharField(_(u'to_uid'), max_length=255, blank=True, null=True, help_text=u'收款用户唯一标识', db_index=True)
67
+    from_uid = models.CharField(_(u'from_uid'), max_length=32, help_text=u'付款用户唯一标识', db_index=True)
68
+    to_uid = models.CharField(_(u'to_uid'), max_length=32, blank=True, null=True, help_text=u'收款用户唯一标识', db_index=True)
69 69
 
70 70
     body = models.CharField(_(u'body'), max_length=255, blank=True, null=True, help_text=u'商品描述')
71 71
     total_fee = models.IntegerField(_(u'total_fee'), default=0, help_text=u'总金额')

+ 80 - 0
photo/migrations/0013_auto_20180103_0446.py

@@ -0,0 +1,80 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.3 on 2018-01-02 20:46
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('photo', '0012_auto_20180101_2220'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AlterField(
16
+            model_name='photosinfo',
17
+            name='l_photo_path',
18
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u5b58\u653e\u8def\u5f84\uff0c\u7f8e\u5316\u5927\u56fe', max_length=32, null=True, verbose_name='l_photo_path'),
19
+        ),
20
+        migrations.AlterField(
21
+            model_name='photosinfo',
22
+            name='lensman_id',
23
+            field=models.CharField(blank=True, db_index=True, help_text='\u6444\u5f71\u5e08\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='lensman_id'),
24
+        ),
25
+        migrations.AlterField(
26
+            model_name='photosinfo',
27
+            name='m_photo_path',
28
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u5b58\u653e\u8def\u5f84\uff0cBox\u4e0a\u4f20\uff0c\u65e0\u6c34\u5370', max_length=32, null=True, verbose_name='m_photo_path'),
29
+        ),
30
+        migrations.AlterField(
31
+            model_name='photosinfo',
32
+            name='p_photo_path',
33
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u5b58\u653e\u8def\u5f84\uff0cBox\u4e0a\u4f20\uff0c\u6709\u6c34\u5370\uff0c\u670d\u52a1\u5668\u6dfb\u52a0', max_length=32, null=True, verbose_name='p_photo_path'),
34
+        ),
35
+        migrations.AlterField(
36
+            model_name='photosinfo',
37
+            name='photo_id',
38
+            field=models.CharField(blank=True, db_index=True, help_text='\u7167\u7247\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='photo_id'),
39
+        ),
40
+        migrations.AlterField(
41
+            model_name='photosinfo',
42
+            name='r_photo_path',
43
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u5b58\u653e\u8def\u5f84\uff0c\u9ad8\u6e05\u5927\u56fe', max_length=32, null=True, verbose_name='r_photo_path'),
44
+        ),
45
+        migrations.AlterField(
46
+            model_name='photosinfo',
47
+            name='session_id',
48
+            field=models.CharField(blank=True, db_index=True, help_text='\u7167\u7247\u7ec4\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='session_id'),
49
+        ),
50
+        migrations.AlterField(
51
+            model_name='photouuidinfo',
52
+            name='photo_md5',
53
+            field=models.CharField(blank=True, db_index=True, help_text='\u7167\u7247\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, unique=True, verbose_name='photo_md5'),
54
+        ),
55
+        migrations.AlterField(
56
+            model_name='photouuidinfo',
57
+            name='photo_path',
58
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u8def\u5f84', max_length=32, null=True, verbose_name='photo_path'),
59
+        ),
60
+        migrations.AlterField(
61
+            model_name='photouuidinfo',
62
+            name='photo_thumbnail2_path',
63
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u7f29\u7565\u56fe\u5b58\u653e\u8def\u5f84', max_length=32, null=True, verbose_name='photo_thumbnail2_path'),
64
+        ),
65
+        migrations.AlterField(
66
+            model_name='photouuidinfo',
67
+            name='photo_thumbnail_path',
68
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u7f29\u7565\u56fe\u5b58\u653e\u8def\u5f84', max_length=32, null=True, verbose_name='photo_thumbnail_path'),
69
+        ),
70
+        migrations.AlterField(
71
+            model_name='photouuidinfo',
72
+            name='photo_watermark_path',
73
+            field=models.CharField(blank=True, help_text='\u7167\u7247\u5b58\u653e\u8def\u5f84\uff0cBox\u4e0a\u4f20\uff0c\u6709\u6c34\u5370\uff0c\u670d\u52a1\u5668\u6dfb\u52a0', max_length=32, null=True, verbose_name='photo_watermark_path'),
74
+        ),
75
+        migrations.AlterField(
76
+            model_name='uuidinfo',
77
+            name='lensman_id',
78
+            field=models.CharField(blank=True, db_index=True, help_text='\u6444\u5f71\u5e08\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='lensman_id'),
79
+        ),
80
+    ]

+ 13 - 13
photo/models.py

@@ -9,7 +9,7 @@ from utils.qiniucdn import qiniu_file_url
9 9
 
10 10
 class UUIDInfo(BaseModelMixin):
11 11
     uuid = models.CharField(_(u'uuid'), max_length=22, blank=True, null=True, help_text=u'唯一标识', db_index=True, unique=True)
12
-    lensman_id = models.CharField(_(u'lensman_id'), max_length=255, blank=True, null=True, help_text=u'摄影师唯一标识', db_index=True)
12
+    lensman_id = models.CharField(_(u'lensman_id'), max_length=32, blank=True, null=True, help_text=u'摄影师唯一标识', db_index=True)
13 13
 
14 14
     class Meta:
15 15
         verbose_name = _('uuidinfo')
@@ -28,21 +28,21 @@ class UUIDInfo(BaseModelMixin):
28 28
 
29 29
 
30 30
 class PhotoUUIDInfo(BaseModelMixin):
31
-    photo_md5 = models.CharField(_(u'photo_md5'), max_length=255, blank=True, null=True, help_text=u'照片唯一标识', db_index=True, unique=True)
31
+    photo_md5 = models.CharField(_(u'photo_md5'), max_length=32, blank=True, null=True, help_text=u'照片唯一标识', db_index=True, unique=True)
32 32
 
33
-    photo_path = models.CharField(_(u'photo_path'), max_length=255, blank=True, null=True, help_text=u'照片路径')
33
+    photo_path = models.CharField(_(u'photo_path'), max_length=32, blank=True, null=True, help_text=u'照片路径')
34 34
     photo_w = models.IntegerField(_(u'photo_w'), default=0, help_text=u'照片宽度')
35 35
     photo_h = models.IntegerField(_(u'photo_h'), default=0, help_text=u'照片高度')
36 36
 
37
-    photo_watermark_path = models.CharField(_(u'photo_watermark_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径,Box上传,有水印,服务器添加')
37
+    photo_watermark_path = models.CharField(_(u'photo_watermark_path'), max_length=32, blank=True, null=True, help_text=u'照片存放路径,Box上传,有水印,服务器添加')
38 38
     photo_watermark_w = models.IntegerField(_(u'photo_watermark_w'), default=0, help_text=u'照片水印图宽度')
39 39
     photo_watermark_h = models.IntegerField(_(u'photo_watermark_h'), default=0, help_text=u'照片水印图高度')
40 40
 
41
-    photo_thumbnail_path = models.CharField(_(u'photo_thumbnail_path'), max_length=255, blank=True, null=True, help_text=u'照片缩略图存放路径')
41
+    photo_thumbnail_path = models.CharField(_(u'photo_thumbnail_path'), max_length=32, blank=True, null=True, help_text=u'照片缩略图存放路径')
42 42
     photo_thumbnail_w = models.IntegerField(_(u'photo_thumbnail_w'), default=0, help_text=u'照片缩略图宽度')
43 43
     photo_thumbnail_h = models.IntegerField(_(u'photo_thumbnail_h'), default=0, help_text=u'照片缩略图高度')
44 44
 
45
-    photo_thumbnail2_path = models.CharField(_(u'photo_thumbnail2_path'), max_length=255, blank=True, null=True, help_text=u'照片缩略图存放路径')
45
+    photo_thumbnail2_path = models.CharField(_(u'photo_thumbnail2_path'), max_length=32, blank=True, null=True, help_text=u'照片缩略图存放路径')
46 46
     photo_thumbnail2_w = models.IntegerField(_(u'photo_thumbnail2_w'), default=0, help_text=u'照片缩略图宽度')
47 47
     photo_thumbnail2_h = models.IntegerField(_(u'photo_thumbnail2_h'), default=0, help_text=u'照片缩略图高度')
48 48
 
@@ -55,13 +55,13 @@ class PhotoUUIDInfo(BaseModelMixin):
55 55
 
56 56
 
57 57
 class PhotosInfo(BaseModelMixin):
58
-    lensman_id = models.CharField(_(u'lensman_id'), max_length=255, blank=True, null=True, help_text=u'摄影师唯一标识', db_index=True)
59
-    session_id = models.CharField(_(u'session_id'), max_length=255, blank=True, null=True, help_text=u'照片组唯一标识', db_index=True)
60
-    photo_id = models.CharField(_(u'photo_id'), max_length=255, blank=True, null=True, help_text=u'照片唯一标识', db_index=True)
61
-    p_photo_path = models.CharField(_(u'p_photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径,Box上传,有水印,服务器添加')
62
-    m_photo_path = models.CharField(_(u'm_photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径,Box上传,无水印')
63
-    l_photo_path = models.CharField(_(u'l_photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径,美化大图')
64
-    r_photo_path = models.CharField(_(u'r_photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径,高清大图')
58
+    lensman_id = models.CharField(_(u'lensman_id'), max_length=32, blank=True, null=True, help_text=u'摄影师唯一标识', db_index=True)
59
+    session_id = models.CharField(_(u'session_id'), max_length=32, blank=True, null=True, help_text=u'照片组唯一标识', db_index=True)
60
+    photo_id = models.CharField(_(u'photo_id'), max_length=32, blank=True, null=True, help_text=u'照片唯一标识', db_index=True)
61
+    p_photo_path = models.CharField(_(u'p_photo_path'), max_length=32, blank=True, null=True, help_text=u'照片存放路径,Box上传,有水印,服务器添加')
62
+    m_photo_path = models.CharField(_(u'm_photo_path'), max_length=32, blank=True, null=True, help_text=u'照片存放路径,Box上传,无水印')
63
+    l_photo_path = models.CharField(_(u'l_photo_path'), max_length=32, blank=True, null=True, help_text=u'照片存放路径,美化大图')
64
+    r_photo_path = models.CharField(_(u'r_photo_path'), max_length=32, blank=True, null=True, help_text=u'照片存放路径,高清大图')
65 65
 
66 66
     class Meta:
67 67
         verbose_name = _('photosinfo')

+ 1 - 1
requirements.txt

@@ -38,7 +38,7 @@ pywe-pay-notify==1.0.1
38 38
 pywe-response==1.0.1
39 39
 pywe-sign==1.0.6
40 40
 pywe-xml==1.0.0
41
-qiniu==7.1.9
41
+qiniu==7.2.0
42 42
 redis==2.10.6
43 43
 redis-extensions==1.1.6
44 44
 requests==2.18.4

adminSystem - Gogs: Go Git Service

Sin Descripción

license 1.2KB

    Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.