1
This commit is contained in:
parent
b5a0791a5d
commit
192b407e15
@ -112,7 +112,7 @@ async def my_event(request: Request,
|
|||||||
|
|
||||||
my_data_auth = []
|
my_data_auth = []
|
||||||
|
|
||||||
my_data_auth = await ck.distinct(game, 'event', '#event_name')
|
my_data_auth = await ck.distinct(game, 'event_view', '#event_name')
|
||||||
|
|
||||||
#
|
#
|
||||||
# else:
|
# else:
|
||||||
|
@ -227,7 +227,7 @@ async def read_kanban(
|
|||||||
# 我的空间
|
# 我的空间
|
||||||
where = {
|
where = {
|
||||||
'project_id': data_in.id,
|
'project_id': data_in.id,
|
||||||
'members._id': current_user.id
|
'members.user_id': current_user.id
|
||||||
# '$or': [{'rw_members': current_user.id}, {'r_members': current_user.id}]
|
# '$or': [{'rw_members': current_user.id}, {'r_members': current_user.id}]
|
||||||
}
|
}
|
||||||
spaces = await crud.space.find_many(db, where)
|
spaces = await crud.space.find_many(db, where)
|
||||||
|
@ -11,6 +11,7 @@ router = APIRouter()
|
|||||||
|
|
||||||
@router.post("/create")
|
@router.post("/create")
|
||||||
async def create(
|
async def create(
|
||||||
|
game: str,
|
||||||
data_in: schemas.SpaceCreate,
|
data_in: schemas.SpaceCreate,
|
||||||
db: AsyncIOMotorDatabase = Depends(get_database),
|
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||||
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||||
@ -68,14 +69,31 @@ async def rename(
|
|||||||
return schemas.Msg(code=0, msg='ok', data=1)
|
return schemas.Msg(code=0, msg='ok', data=1)
|
||||||
|
|
||||||
|
|
||||||
@router.post("/add_members")
|
@router.post("/set_members")
|
||||||
async def add_members(
|
async def set_members(
|
||||||
data_in: schemas.AddSpaceMembers,
|
data_in: schemas.AddSpaceMembers,
|
||||||
|
game: str,
|
||||||
db: AsyncIOMotorDatabase = Depends(get_database),
|
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||||
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||||
) -> schemas.Msg:
|
) -> schemas.Msg:
|
||||||
"""添加空间成员"""
|
"""设置空间成员"""
|
||||||
# res = await crud.space.rename(db, data_in)
|
res = await crud.space.set_members(db, data_in)
|
||||||
pass
|
|
||||||
|
|
||||||
return schemas.Msg(code=0, msg='ok', data=1)
|
return schemas.Msg(code=0, msg='ok', data=1)
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/detail")
|
||||||
|
async def detail(
|
||||||
|
data_in: schemas.SpaceDetail,
|
||||||
|
game: str,
|
||||||
|
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||||
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||||
|
) -> schemas.Msg:
|
||||||
|
"""空间详细"""
|
||||||
|
space_info = await crud.space.get(db, id=data_in.space_id)
|
||||||
|
exists_member = {item.get('user_id') for item in space_info.get('members', [])}
|
||||||
|
members_info = await crud.user.find_ids(db, list(exists_member))
|
||||||
|
members_info = {item['_id']: item for item in members_info}
|
||||||
|
for item in space_info.get('members', []):
|
||||||
|
if user_info := members_info.get(item['user_id']):
|
||||||
|
item.update(schemas.UserDB(**user_info).dict(by_alias=True))
|
||||||
|
return schemas.Msg(code=0, msg='ok', data=space_info)
|
||||||
|
@ -7,20 +7,32 @@ from schemas import *
|
|||||||
|
|
||||||
__all__ = 'space',
|
__all__ = 'space',
|
||||||
|
|
||||||
|
from utils import get_uid
|
||||||
|
|
||||||
|
|
||||||
class CRUDSpace(CRUDBase):
|
class CRUDSpace(CRUDBase):
|
||||||
|
|
||||||
async def create(self, db: AsyncIOMotorDatabase, obj_in: SpaceCreate, user: UserDB):
|
async def create(self, db: AsyncIOMotorDatabase, obj_in: SpaceCreate, user: UserDB):
|
||||||
obj_in.members.append({'_id': user.id, 'name': user.name, 'authority': 'rw'})
|
obj_in.members.append({'user_id': user.id, 'authority': 'rw'})
|
||||||
db_obj = SpaceDB(
|
db_obj = SpaceDB(
|
||||||
**obj_in.dict(by_alias=True), user_id=user.id,
|
**obj_in.dict(by_alias=True), user_id=user.id,
|
||||||
_id=uuid.uuid1().hex
|
_id=get_uid()
|
||||||
)
|
)
|
||||||
return await db[self.coll_name].insert_one(db_obj.dict(by_alias=True))
|
return await db[self.coll_name].insert_one(db_obj.dict(by_alias=True))
|
||||||
|
|
||||||
async def read_space(self, db, user_id, project_id):
|
async def read_space(self, db, user_id, project_id):
|
||||||
return await self.read_have(db, user_id=user_id, project_id=project_id)
|
return await self.read_have(db, user_id=user_id, project_id=project_id)
|
||||||
|
|
||||||
|
async def set_members(self, db, data_in: schemas.AddSpaceMembers):
|
||||||
|
space_id = data_in.space_id
|
||||||
|
# space_info = await self.get(db, space_id)
|
||||||
|
# exists_member = {item.get('user_id') for item in space_info.get('members', [])}
|
||||||
|
add_member = []
|
||||||
|
for member in data_in.members:
|
||||||
|
# if member.user_id not in exists_member:
|
||||||
|
add_member.append(member.dict())
|
||||||
|
return await self.update_one(db, {'_id': space_id}, {'$set': {'members': add_member}})
|
||||||
|
|
||||||
async def rename(self, db, data_in: schemas.SpaceRename):
|
async def rename(self, db, data_in: schemas.SpaceRename):
|
||||||
return await self.update_one(db, {'_id': data_in.space_id}, {'$set': {'name': data_in.new_name}})
|
return await self.update_one(db, {'_id': data_in.space_id}, {'$set': {'name': data_in.new_name}})
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ class XAnalysis:
|
|||||||
cnt1,
|
cnt1,
|
||||||
{select_ltv_str}
|
{select_ltv_str}
|
||||||
FROM (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, uniqExact(`{quota}`) cnt1
|
FROM (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, uniqExact(`{quota}`) cnt1
|
||||||
FROM {self.game}.event
|
FROM {self.game}.event_view
|
||||||
where `#event_name` = 'create_account'
|
where `#event_name` = 'create_account'
|
||||||
AND {where_str}
|
AND {where_str}
|
||||||
GROUP BY toDate(addHours(`#event_time`, `#zone_offset`))) as reg
|
GROUP BY toDate(addHours(`#event_time`, `#zone_offset`))) as reg
|
||||||
@ -127,11 +127,11 @@ class XAnalysis:
|
|||||||
(select a.date,
|
(select a.date,
|
||||||
{sumpay_str}
|
{sumpay_str}
|
||||||
from (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, `{quota}`
|
from (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, `{quota}`
|
||||||
FROM {self.game}.event
|
FROM {self.game}.event_view
|
||||||
where `#event_name` = 'create_account'
|
where `#event_name` = 'create_account'
|
||||||
and {where_str}) as a
|
and {where_str}) as a
|
||||||
left join (select `{quota}`, unitPrice/100 as money, toDate(addHours(`#event_time`, `#zone_offset`)) as date
|
left join (select `{quota}`, unitPrice/100 as money, toDate(addHours(`#event_time`, `#zone_offset`)) as date
|
||||||
from {self.game}.event
|
from {self.game}.event_view
|
||||||
where `#event_name` = 'pay' and {where_order_str}) b
|
where `#event_name` = 'pay' and {where_order_str}) b
|
||||||
on a.`{quota}` = b.`{quota}`
|
on a.`{quota}` = b.`{quota}`
|
||||||
group by a.date) log on reg.date = log.date
|
group by a.date) log on reg.date = log.date
|
||||||
|
@ -17,8 +17,8 @@ class Authority(str, Enum):
|
|||||||
r = 'r'
|
r = 'r'
|
||||||
|
|
||||||
|
|
||||||
class Member(DBBase):
|
class Member(BaseModel):
|
||||||
name: str
|
user_id: str
|
||||||
authority: Authority
|
authority: Authority
|
||||||
|
|
||||||
|
|
||||||
@ -35,6 +35,10 @@ class SpaceDelete(DBBase):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class SpaceDetail(BaseModel):
|
||||||
|
space_id: str
|
||||||
|
|
||||||
|
|
||||||
class SpaceRename(BaseModel):
|
class SpaceRename(BaseModel):
|
||||||
space_id: str
|
space_id: str
|
||||||
new_name: str
|
new_name: str
|
||||||
@ -42,7 +46,7 @@ class SpaceRename(BaseModel):
|
|||||||
|
|
||||||
class AddSpaceMembers(BaseModel):
|
class AddSpaceMembers(BaseModel):
|
||||||
space_id: str
|
space_id: str
|
||||||
user_ids: List[str]
|
members: List[Member]
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user