+    NO_LOCATION_PERMISSION = StatusCodeField(402018, u'No Location Permission', description=u'没有地理位置权限')
71
+
72
+    DUPLICATE_JOIN_REQUEST = StatusCodeField(402020, u'Duplicate Join Request', description=u'重复加群申请')
73
+    JOIN_REQUEST_NOT_FOUND = StatusCodeField(402021, u'Join Request Not Found', description=u'加群申请不存在')
74
+
75
+    COULD_HAVE_ONLY_ONE_ACTIVE_GROUP = StatusCodeField(402030, u'Could Have Only One Active Group', description=u'只能创建一个活跃团')
70 76
 
71 77
 
72 78
 class GroupUserStatusCode(BaseStatusCode):
73
-    """ 群组用户相关错误码 4021xx """
79
+    """ 群组/团用户相关错误码 4021xx """
74 80
     GROUP_USER_NOT_FOUND = StatusCodeField(402101, u'Group User Not Found', description=u'群组用户不存在')
75 81
     GROUP_USER_HAS_DELETED = StatusCodeField(402102, u'Group User Has Deleted', description=u'群组用户被移除')
76 82
 
83
+    USER_HAS_NOT_JOIN_GROUP = StatusCodeField(402131, u'User Has Not Join Group', description=u'用户未加入导游团')
84
+
77 85
 
78 86
 class GroupPhotoStatusCode(BaseStatusCode):
79 87
     """ 群组照片(飞图)相关错误码 4022xx """

+ 8 - 0
utils/redis/rkeys.py

@@ -6,6 +6,14 @@ UUID_LIST = 'uuid:list'  # List, 唯一标识列表
6 6
 # 用户相关
7 7
 PROFILE_INFO = 'profile:info:%s'  # STRING,用户信息,user_id
8 8
 
9
+# 导游相关
10
+TOUR_GUIDE_GROUP_GEO_INFO = 'tour:guide:group:geo:info:%s'  # ZSET,旅游团地理位置信息,group_id
11
+TOUR_GUIDE_GROUP_CUR_SESSION = 'tour:guide:group:cur:session:%s'  # STRING,旅游团当前Session,group_id,导游设置集合时间的时候更新
12
+TOUR_GUIDE_GROUP_USER_GEO_LIST = 'tour:guide:group:user:geo:list:%s:%s:%s'  # LIST,旅游团当前用户地理位置列表,group_id、session_id、user_id
13
+
14
+TOUR_GUIDE_GROUP_USER_OWN = 'tour:guide:group:user:own:%s'  # STRING,导游当前拥有的导游团,user_id,导游创建导游团的时候更新
15
+TOUR_GUIDE_GROUP_USER_BELONG = 'tour:guide:group:user:belong:%s'  # STRING,用户当前所属导游团,user_id,用户加入导游团的时候更新
16
+
9 17
 # 群组相关
10 18
 GROUP_INFO = 'group:info:%s'  # STRING,群组信息,group_id
11 19
 

+ 21 - 0
utils/redis/rtourguide.py

@@ -0,0 +1,21 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from django.conf import settings
4
+
5
+from utils.redis.rkeys import TOUR_GUIDE_GROUP_USER_OWN
6
+
7
+
8
+r = settings.REDIS_CACHE
9
+
10
+
11
+# 导游相关
12
+
13
+
14
+def set_tour_guide_own_group(user_id, group_id):
15
+    """ 设置导游拥有的导游团 """
16
+    r.set(TOUR_GUIDE_GROUP_USER_OWN % user_id, group_id)
17
+
18
+
19
+def get_tour_guide_own_group(user_id):
20
+    """ 获取导游拥有的导游团 """
21
+    return r.get(TOUR_GUIDE_GROUP_USER_OWN % user_id)

kodo - Gogs: Go Git Service

Geen omschrijving

0009_auto_20160428_1410.py 4.7KB

    # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations class Migration(migrations.Migration): dependencies = [ ('account', '0008_userinfo_unionid'), ] operations = [ migrations.CreateModel( name='LensmanIncomeExpensesInfo', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('status', models.BooleanField(default=True, help_text='\u72b6\u6001', db_index=True, verbose_name='status')), ('created_at', models.DateTimeField(help_text='\u521b\u5efa\u65f6\u95f4', verbose_name='created_at', auto_now_add=True)), ('updated_at', models.DateTimeField(help_text='\u66f4\u65b0\u65f6\u95f4', verbose_name='updated_at', auto_now=True)), ('lensman_id', models.CharField(max_length=255, blank=True, help_text='\u6444\u5f71\u5e08\u552f\u4e00\u6807\u8bc6', null=True, verbose_name='lensman_id', db_index=True)), ('photo_id', models.CharField(max_length=255, blank=True, help_text='\u7167\u7247\u552f\u4e00\u6807\u8bc6', null=True, verbose_name='photo_id', db_index=True)), ('type', models.IntegerField(default=0, help_text='\u6536\u652f\u7c7b\u522b', verbose_name='type', choices=[(0, '\u6536\u5165'), (1, '\u652f\u51fa')])), ('amount', models.IntegerField(default=0, help_text='\u4f59\u989d\u589e\u51cf\u6570\u91cf(\u5206)', verbose_name='amount')), ('balance', models.IntegerField(default=0, help_text='\u4f59\u989d\u589e\u51cf\u540e\u6570\u91cf(\u5206)', verbose_name='balance')), ('remark', models.CharField(help_text='\u5907\u6ce8', max_length=255, null=True, verbose_name='remark', blank=True)), ], options={ 'verbose_name': 'lensmanincomeexpensesinfo', 'verbose_name_plural': 'lensmanincomeexpensesinfo', }, ), migrations.CreateModel( name='UserIncomeExpensesInfo', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('status', models.BooleanField(default=True, help_text='\u72b6\u6001', db_index=True, verbose_name='status')), ('created_at', models.DateTimeField(help_text='\u521b\u5efa\u65f6\u95f4', verbose_name='created_at', auto_now_add=True)), ('updated_at', models.DateTimeField(help_text='\u66f4\u65b0\u65f6\u95f4', verbose_name='updated_at', auto_now=True)), ('user_id', models.CharField(max_length=255, blank=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', null=True, verbose_name='user_id', db_index=True)), ('photo_id', models.CharField(max_length=255, blank=True, help_text='\u7167\u7247\u552f\u4e00\u6807\u8bc6', null=True, verbose_name='photo_id', db_index=True)), ('type', models.IntegerField(default=0, help_text='\u6536\u652f\u7c7b\u522b', verbose_name='type', choices=[(0, '\u6536\u5165'), (1, '\u652f\u51fa')])), ('amount', models.IntegerField(default=0, help_text='\u4f59\u989d\u589e\u51cf\u6570\u91cf(\u5206)', verbose_name='amount')), ('balance', models.IntegerField(default=0, help_text='\u4f59\u989d\u589e\u51cf\u540e\u6570\u91cf(\u5206)', verbose_name='balance')), ('remark', models.CharField(help_text='\u5907\u6ce8', max_length=255, null=True, verbose_name='remark', blank=True)), ], options={ 'verbose_name': 'userincomeexpensesinfo', 'verbose_name_plural': 'userincomeexpensesinfo', }, ), migrations.AddField( model_name='lensmaninfo', name='balance', field=models.IntegerField(default=0, help_text='\u6444\u5f71\u5e08\u4f59\u989d(\u5206)', verbose_name='balance'), ), migrations.AddField( model_name='userinfo', name='balance', field=models.IntegerField(default=0, help_text='\u7528\u6237\u4f59\u989d(\u5206)', verbose_name='balance'), ), migrations.AlterField( model_name='lensmaninfo', name='proportion', field=models.FloatField(default=1.0, help_text='\u6444\u5f71\u5e08\u5206\u6210\u6bd4\u4f8b(0.0 ~ 1.0)', verbose_name='proportion'), ), migrations.AlterField( model_name='userinfo', name='user_from', field=models.IntegerField(default=0, help_text='\u7528\u6237\u6765\u6e90', verbose_name='user_from', choices=[(0, 'APP \u521b\u5efa\u7528\u6237'), (1, '\u5fae\u4fe1\u6388\u6743\u7528\u6237'), (9, '\u6e38\u5ba2\u7528\u6237')]), ), ]