update
This commit is contained in:
parent
a67c41817a
commit
6c5febe330
@ -185,6 +185,17 @@ async def pre_order(
|
||||
current_user: UserDB = Depends(get_current_user)
|
||||
):
|
||||
|
||||
# 检查是否有配送员在线
|
||||
deliveryman_online = db.query(UserDB).filter(
|
||||
UserDB.roles.contains([UserRole.DELIVERYMAN]),
|
||||
UserDB.community_id == request.community_id,
|
||||
UserDB.is_delivering == True
|
||||
).first()
|
||||
|
||||
if not deliveryman_online:
|
||||
return error_response(code=400, message="没有配送员在线, 无法下单")
|
||||
|
||||
|
||||
# 检查是否有未支付的订单
|
||||
unpay_order = db.query(ShippingOrderDB).filter(
|
||||
ShippingOrderDB.userid == current_user.userid,
|
||||
|
||||
@ -23,7 +23,7 @@ from app.models.user_auth import UserAuthDB, UserAuthCreate, UserAuthInfo
|
||||
from app.core.qcloud import qcloud_manager
|
||||
from app.models.merchant import MerchantDB
|
||||
from app.models.address import AddressDB, AddressInfo
|
||||
from app.models.user import UserUpdateRoles
|
||||
from app.models.user import UserUpdateRoles, DeliverymanSetDelivering
|
||||
from app.models.order import ShippingOrderDB, OrderStatus
|
||||
from app.core.redis_client import redis_client
|
||||
import logging
|
||||
@ -434,6 +434,19 @@ async def change_password(
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
return error_response(code=500, message=f"修改密码失败: {str(e)}")
|
||||
|
||||
@router.put("/deliveryman/set_delivering", response_model=ResponseModel)
|
||||
async def deliveryman_set_delivering(
|
||||
request: DeliverymanSetDelivering,
|
||||
db: Session = Depends(get_db),
|
||||
current_user: UserDB = Depends(get_current_user)
|
||||
):
|
||||
"""配送员设置是否在配送中"""
|
||||
current_user.is_delivering = request.is_delivering
|
||||
db.commit()
|
||||
return success_response(message="设置成功",data={
|
||||
"is_delivering": current_user.is_delivering
|
||||
})
|
||||
|
||||
@router.post("/auth", response_model=ResponseModel)
|
||||
async def create_user_auth(
|
||||
|
||||
@ -52,6 +52,7 @@ class UserDB(Base):
|
||||
update_time = Column(DateTime(timezone=True), onupdate=func.now())
|
||||
community_id = Column(Integer, ForeignKey("communities.id"), nullable=True) # 归属小区
|
||||
is_auth = Column(Boolean, nullable=False, default=False)
|
||||
is_delivering = Column(Boolean, nullable=False, default=False) # 是否在配送中
|
||||
|
||||
# 用户所属小区关系
|
||||
community = relationship("CommunityDB", foreign_keys=[community_id], backref=backref("residents", lazy="dynamic"))
|
||||
@ -87,7 +88,7 @@ class UserInfo(BaseModel):
|
||||
community_id: Optional[int] = None
|
||||
community_name: Optional[str] = None
|
||||
is_auth: bool = False
|
||||
|
||||
is_delivering: bool = False
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
@ -124,6 +125,9 @@ class UserUpdateRoles(BaseModel):
|
||||
user_id: int
|
||||
roles: List[UserRole]
|
||||
|
||||
class DeliverymanSetDelivering(BaseModel):
|
||||
is_delivering: bool
|
||||
|
||||
def generate_user_code(db=None) -> str:
|
||||
"""生成6位大写字母+数字的用户编码"""
|
||||
chars = string.ascii_uppercase + string.digits
|
||||
|
||||
BIN
jobs.sqlite
BIN
jobs.sqlite
Binary file not shown.
Loading…
Reference in New Issue
Block a user