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 = await ck.distinct(game, 'event', '#event_name')
|
||||
my_data_auth = await ck.distinct(game, 'event_view', '#event_name')
|
||||
|
||||
#
|
||||
# else:
|
||||
|
@ -227,7 +227,7 @@ async def read_kanban(
|
||||
# 我的空间
|
||||
where = {
|
||||
'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}]
|
||||
}
|
||||
spaces = await crud.space.find_many(db, where)
|
||||
|
@ -11,6 +11,7 @@ router = APIRouter()
|
||||
|
||||
@router.post("/create")
|
||||
async def create(
|
||||
game: str,
|
||||
data_in: schemas.SpaceCreate,
|
||||
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||
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)
|
||||
|
||||
|
||||
@router.post("/add_members")
|
||||
async def add_members(
|
||||
@router.post("/set_members")
|
||||
async def set_members(
|
||||
data_in: schemas.AddSpaceMembers,
|
||||
game: str,
|
||||
db: AsyncIOMotorDatabase = Depends(get_database),
|
||||
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||
) -> schemas.Msg:
|
||||
"""添加空间成员"""
|
||||
# res = await crud.space.rename(db, data_in)
|
||||
pass
|
||||
|
||||
"""设置空间成员"""
|
||||
res = await crud.space.set_members(db, data_in)
|
||||
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',
|
||||
|
||||
from utils import get_uid
|
||||
|
||||
|
||||
class CRUDSpace(CRUDBase):
|
||||
|
||||
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(
|
||||
**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))
|
||||
|
||||
async def read_space(self, db, user_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):
|
||||
return await self.update_one(db, {'_id': data_in.space_id}, {'$set': {'name': data_in.new_name}})
|
||||
|
||||
|
@ -119,7 +119,7 @@ class XAnalysis:
|
||||
cnt1,
|
||||
{select_ltv_str}
|
||||
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'
|
||||
AND {where_str}
|
||||
GROUP BY toDate(addHours(`#event_time`, `#zone_offset`))) as reg
|
||||
@ -127,11 +127,11 @@ class XAnalysis:
|
||||
(select a.date,
|
||||
{sumpay_str}
|
||||
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'
|
||||
and {where_str}) as a
|
||||
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
|
||||
on a.`{quota}` = b.`{quota}`
|
||||
group by a.date) log on reg.date = log.date
|
||||
|
@ -17,8 +17,8 @@ class Authority(str, Enum):
|
||||
r = 'r'
|
||||
|
||||
|
||||
class Member(DBBase):
|
||||
name: str
|
||||
class Member(BaseModel):
|
||||
user_id: str
|
||||
authority: Authority
|
||||
|
||||
|
||||
@ -35,6 +35,10 @@ class SpaceDelete(DBBase):
|
||||
pass
|
||||
|
||||
|
||||
class SpaceDetail(BaseModel):
|
||||
space_id: str
|
||||
|
||||
|
||||
class SpaceRename(BaseModel):
|
||||
space_id: str
|
||||
new_name: str
|
||||
@ -42,7 +46,7 @@ class SpaceRename(BaseModel):
|
||||
|
||||
class AddSpaceMembers(BaseModel):
|
||||
space_id: str
|
||||
user_ids: List[str]
|
||||
members: List[Member]
|
||||
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user