增加固定金额分账
This commit is contained in:
parent
232a49ba32
commit
1fcf9cd3ce
@ -395,6 +395,8 @@ async def get_order_detail(
|
|||||||
deliveryman_share = 0
|
deliveryman_share = 0
|
||||||
if current_user.delivery_commission_rate is not None:
|
if current_user.delivery_commission_rate is not None:
|
||||||
deliveryman_share = round(order.original_amount * (current_user.delivery_commission_rate / 100.0), 2)
|
deliveryman_share = round(order.original_amount * (current_user.delivery_commission_rate / 100.0), 2)
|
||||||
|
if current_user.delivery_commission_fixed is not None:
|
||||||
|
deliveryman_share = current_user.delivery_commission_fixed
|
||||||
|
|
||||||
# 如果有配送员 id,则获取配送员信息
|
# 如果有配送员 id,则获取配送员信息
|
||||||
if order.deliveryman_user_id:
|
if order.deliveryman_user_id:
|
||||||
@ -1064,7 +1066,10 @@ async def deliveryman_complete_order(
|
|||||||
order.completed_time = datetime.now()
|
order.completed_time = datetime.now()
|
||||||
|
|
||||||
# 计算配送员分账金额
|
# 计算配送员分账金额
|
||||||
deliveryman_share = order.original_amount * current_user.delivery_commission_rate / 100
|
if current_user.delivery_commission_rate is not None:
|
||||||
|
deliveryman_share = order.original_amount * current_user.delivery_commission_rate / 100
|
||||||
|
else:
|
||||||
|
deliveryman_share = current_user.delivery_commission_fixed
|
||||||
|
|
||||||
# 使用账户管理器处理分账
|
# 使用账户管理器处理分账
|
||||||
account_manager = AccountManager(db)
|
account_manager = AccountManager(db)
|
||||||
|
|||||||
@ -23,7 +23,7 @@ from app.models.user_auth import UserAuthDB, UserAuthCreate, UserAuthInfo
|
|||||||
from app.core.qcloud import qcloud_manager
|
from app.core.qcloud import qcloud_manager
|
||||||
from app.models.merchant import MerchantDB
|
from app.models.merchant import MerchantDB
|
||||||
from app.models.address import AddressDB, AddressInfo
|
from app.models.address import AddressDB, AddressInfo
|
||||||
from app.models.user import UserUpdateRoles, UserUpdateDeliveryCommissionRate
|
from app.models.user import UserUpdateRoles, UserUpdateDeliveryCommission
|
||||||
from app.models.order import ShippingOrderDB, OrderStatus
|
from app.models.order import ShippingOrderDB, OrderStatus
|
||||||
from app.core.redis_client import redis_client
|
from app.core.redis_client import redis_client
|
||||||
|
|
||||||
@ -243,9 +243,9 @@ async def update_user_info(
|
|||||||
db.rollback()
|
db.rollback()
|
||||||
return error_response(code=500, message=f"更新失败: {str(e)}")
|
return error_response(code=500, message=f"更新失败: {str(e)}")
|
||||||
|
|
||||||
@router.put("/delivery-commission-rate", response_model=ResponseModel)
|
@router.put("/delivery-commission", response_model=ResponseModel)
|
||||||
async def update_delivery_commission_rate(
|
async def update_delivery_commission(
|
||||||
update_data: UserUpdateDeliveryCommissionRate,
|
update_data: UserUpdateDeliveryCommission,
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
current_user: UserDB = Depends(get_admin_user)
|
current_user: UserDB = Depends(get_admin_user)
|
||||||
):
|
):
|
||||||
@ -255,7 +255,11 @@ async def update_delivery_commission_rate(
|
|||||||
if not user:
|
if not user:
|
||||||
return error_response(code=404, message="用户不存在")
|
return error_response(code=404, message="用户不存在")
|
||||||
|
|
||||||
user.delivery_commission_rate = update_data.delivery_commission_rate
|
if update_data.delivery_commission_rate:
|
||||||
|
user.delivery_commission_rate = update_data.delivery_commission_rate
|
||||||
|
|
||||||
|
if update_data.delivery_commission_fixed:
|
||||||
|
user.delivery_commission_fixed = update_data.delivery_commission_fixed
|
||||||
db.commit()
|
db.commit()
|
||||||
db.refresh(user)
|
db.refresh(user)
|
||||||
|
|
||||||
|
|||||||
@ -50,6 +50,7 @@ class UserDB(Base):
|
|||||||
community_id = Column(Integer, ForeignKey("communities.id"), nullable=True) # 归属小区
|
community_id = Column(Integer, ForeignKey("communities.id"), nullable=True) # 归属小区
|
||||||
is_auth = Column(Boolean, nullable=False, default=False)
|
is_auth = Column(Boolean, nullable=False, default=False)
|
||||||
delivery_commission_rate = Column(Integer, nullable=False, default=0) # 配送佣金比例
|
delivery_commission_rate = Column(Integer, nullable=False, default=0) # 配送佣金比例
|
||||||
|
delivery_commission_fixed = Column(DECIMAL(10, 2), nullable=False, default=0) # 配送佣金固定金额
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def optimized_avatar(self):
|
def optimized_avatar(self):
|
||||||
@ -83,6 +84,7 @@ class UserInfo(BaseModel):
|
|||||||
community_name: Optional[str] = None
|
community_name: Optional[str] = None
|
||||||
is_auth: bool = False
|
is_auth: bool = False
|
||||||
delivery_commission_rate: Optional[int] = None
|
delivery_commission_rate: Optional[int] = None
|
||||||
|
delivery_commission_fixed: Optional[float] = None
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
from_attributes = True
|
from_attributes = True
|
||||||
@ -119,9 +121,10 @@ class UserUpdateRoles(BaseModel):
|
|||||||
user_id: int
|
user_id: int
|
||||||
roles: List[UserRole]
|
roles: List[UserRole]
|
||||||
|
|
||||||
class UserUpdateDeliveryCommissionRate(BaseModel):
|
class UserUpdateDeliveryCommission(BaseModel):
|
||||||
user_id: int
|
user_id: int
|
||||||
delivery_commission_rate: int
|
delivery_commission_rate: Optional[int] = None
|
||||||
|
delivery_commission_fixed: Optional[float] = None
|
||||||
|
|
||||||
def generate_user_code(db=None) -> str:
|
def generate_user_code(db=None) -> str:
|
||||||
"""生成6位大写字母+数字的用户编码"""
|
"""生成6位大写字母+数字的用户编码"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user