From a155dc9f33a0789edd499fa2871cb9d1f361a070 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Sun, 14 Jun 2026 23:08:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E5=BD=B1=E5=93=8D=E7=94=9F=E4=BA=A7=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- a_long_dianjing/asgi.py | 12 +----- a_long_dianjing/celery.py | 76 +++++------------------------------ a_long_dianjing/celery_app.py | 4 +- a_long_dianjing/settings.py | 3 +- a_long_dianjing/urls.py | 25 ------------ a_long_dianjing/wsgi.py | 12 +----- backend/apps.py | 5 ++- backend/models.py | 2 +- backend/serializers.py | 3 +- backend/urls.py | 34 ++++++++-------- backend/utils.py | 2 +- backend/view.py | 4 +- config/admin.py | 2 - config/apps.py | 4 +- config/models.py | 1 - config/tests.py | 2 - config/urls.py | 1 + config/views.py | 3 +- orders/admin.py | 2 - orders/apps.py | 4 +- orders/tasks.py | 5 --- orders/tests.py | 2 - orders/views.py | 9 +---- products/admin.py | 2 - products/apps.py | 4 +- products/tests.py | 2 - products/urls.py | 2 - products/utils.py | 2 - products/views.py | 5 +-- rank/apps.py | 4 +- rank/services.py | 3 +- rank/tests.py | 2 - rank/urls.py | 1 + rank/utils.py | 6 +-- rank/views.py | 4 +- shop/admin.py | 2 - shop/apps.py | 4 +- users/admin.py | 2 - users/apps.py | 4 +- users/fadan_fenhong_utils.py | 2 - users/models.py | 4 +- users/tests.py | 2 - utils/admin.py | 2 - 43 files changed, 66 insertions(+), 210 deletions(-) diff --git a/a_long_dianjing/asgi.py b/a_long_dianjing/asgi.py index 58db31d..c200efe 100644 --- a/a_long_dianjing/asgi.py +++ b/a_long_dianjing/asgi.py @@ -1,16 +1,6 @@ -""" -ASGI config for a_long_dianjing project. - -It exposes the ASGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/6.0/howto/deployment/asgi/ -""" - import os - from django.core.asgi import get_asgi_application -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'a_long_dianjing.settings') +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'a_long_dianjing.settings') application = get_asgi_application() diff --git a/a_long_dianjing/celery.py b/a_long_dianjing/celery.py index d98cbfb..4b34db4 100644 --- a/a_long_dianjing/celery.py +++ b/a_long_dianjing/celery.py @@ -12,27 +12,24 @@ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'a_long_dianjing.settings') # 创建Celery应用实例 app = Celery('a_long_dianjing') - # 从Django settings中加载Celery配置(CELERY_前缀) app.config_from_object('django.conf:settings', namespace='CELERY') - # 自动发现所有已注册app中的tasks.py文件 #app.autodiscover_tasks() -app.autodiscover_tasks(['yonghu.tasks', 'yonghu.ranking_tasks', 'dingdan.tasks', 'peizhi.tasks']) +app.autodiscover_tasks(['users.tasks', 'users.ranking_tasks', 'orders.tasks', 'config.tasks']) # 配置周期性任务(Celery Beat Schedule) app.conf.beat_schedule = { - # 月榜数据转移(每月最后一天23:50执行) 'yuebang_zhuanyi': { - 'task': 'yonghu.ranking_tasks.zhuanyi_yuebang', + 'task': 'users.ranking_tasks.zhuanyi_yuebang', 'schedule': crontab(hour=23, minute=50, day_of_month='28-31'), # ✅ 修改这里 'options': {'queue': 'periodic_tasks', 'priority': 7}, }, # 日榜数据转移(每天23:55执行,在清零前) 'ribang_zhuanyi': { - 'task': 'yonghu.ranking_tasks.zhuanyi_ribang', + 'task': 'users.ranking_tasks.zhuanyi_ribang', #'schedule': crontab(minute='*/1'), # 每分钟执行一次,测试用 'schedule': crontab(hour=23, minute=55), # 每天23:55 'options': {'queue': 'periodic_tasks', 'priority': 7}, # 优先级高于清零任务 @@ -40,21 +37,21 @@ app.conf.beat_schedule = { # 清理旧历史数据(每月1号凌晨1点执行) 'qingli_jiulishuju': { - 'task': 'yonghu.ranking_tasks.qingli_jiulishuju', + 'task': 'users.ranking_tasks.qingli_jiulishuju', 'schedule': crontab(hour=1, minute=0, day_of_month=1), # 每月1号凌晨1点 'options': {'queue': 'periodic_tasks', 'priority': 4}, }, # 补偿检查任务(每5分钟运行) 'check_order_expire_task': { - 'task': 'dingdan.tasks.check_order_expire_task', + 'task': 'orders.tasks.check_order_expire_task', 'schedule': crontab(minute='*/5000'), 'options': {'queue': 'order_tasks', 'priority': 3}, }, # 1. 每日凌晨0点执行 - 清零任务 'daily_reset_task': { - 'task': 'yonghu.tasks.daily_reset_task', + 'task': 'users.tasks.daily_reset_task', 'schedule': crontab(hour=0, minute=0), # 每天0点 'options': { 'queue': 'periodic_tasks', @@ -66,7 +63,7 @@ app.conf.beat_schedule = { # 2. 每月1日凌晨0点执行 - 月度清零任务 'monthly_reset_task': { - 'task': 'yonghu.tasks.monthly_reset_task', + 'task': 'users.tasks.monthly_reset_task', 'schedule': crontab(hour=0, minute=0, day_of_month=1), # 每月1日0点 'options': { 'queue': 'periodic_tasks', @@ -78,7 +75,7 @@ app.conf.beat_schedule = { # 4. 每天凌晨0点5分清理收支记录 'daily_sz_reset_task': { - 'task': 'peizhi.tasks.daily_sz_reset_task', + 'task': 'config.tasks.daily_sz_reset_task', 'schedule': crontab(hour=0, minute=5), # 每天0点5分 'options': { 'queue': 'periodic_tasks', @@ -90,66 +87,15 @@ app.conf.beat_schedule = { } -# 配置周期性任务(Celery Beat Schedule) -'''app.conf.beat_schedule = { - # 1. 每日凌晨0点执行 - 清零任务 - 'daily_reset_task': { - 'task': 'yonghu.tasks.daily_reset_task', - 'schedule': crontab(hour=0, minute=0), # 每天0点 - 'options': { - 'queue': 'periodic_tasks', - 'priority': 5 - }, - 'args': (), - 'kwargs': {} - }, - - # 2. 每月1日凌晨0点执行 - 月度清零任务 - 'monthly_reset_task': { - 'task': 'yonghu.tasks.monthly_reset_task', - 'schedule': crontab(hour=0, minute=0, day_of_month=1), # 每月1日0点 - 'options': { - 'queue': 'periodic_tasks', - 'priority': 5 - }, - 'args': (), - 'kwargs': {} - }, - - # 3. 每5分钟检查一次待处理订单 - 作为补偿机制 - 'check_order_expire_task': { - 'task': 'dingdan.tasks.check_order_expire_task', - 'schedule': crontab(minute='*/5'), # 每5分钟 - 'options': { - 'queue': 'order_tasks', - 'priority': 3 - }, - 'args': (), - 'kwargs': {} - }, - - # 4. 每天凌晨0点5分清理收支记录 - 'daily_sz_reset_task': { - 'task': 'peizhi.tasks.daily_sz_reset_task', - 'schedule': crontab(hour=0, minute=5), # 每天0点5分 - 'options': { - 'queue': 'periodic_tasks', - 'priority': 4 - }, - 'args': (), - 'kwargs': {} - } -}''' - # 时区设置 app.conf.timezone = 'Asia/Shanghai' app.conf.enable_utc = True # 队列路由配置 app.conf.task_routes = { - 'dingdan.tasks.*': {'queue': 'order_tasks'}, - 'yonghu.tasks.*': {'queue': 'periodic_tasks'}, - 'peizhi.tasks.*': {'queue': 'periodic_tasks'}, + 'orders.tasks.*': {'queue': 'order_tasks'}, + 'users.tasks.*': {'queue': 'periodic_tasks'}, + 'config.tasks.*': {'queue': 'periodic_tasks'}, } # 任务序列化 diff --git a/a_long_dianjing/celery_app.py b/a_long_dianjing/celery_app.py index 140f6e0..4d177fd 100644 --- a/a_long_dianjing/celery_app.py +++ b/a_long_dianjing/celery_app.py @@ -1,10 +1,10 @@ -# celery_app.py import os from celery import Celery + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'a_long_dianjing.settings') app = Celery('a_long_dianjing') app.config_from_object('django.conf:settings', namespace='CELERY') # 手动导入任务模块,避免与已有 tasks.py 冲突 -app.autodiscover_tasks(['dingdan.notice_tasks']) +app.autodiscover_tasks(['orders.notice_tasks']) diff --git a/a_long_dianjing/settings.py b/a_long_dianjing/settings.py index 2e6ab89..ed3499e 100644 --- a/a_long_dianjing/settings.py +++ b/a_long_dianjing/settings.py @@ -3,14 +3,13 @@ Django settings for a_long_dianjing project. """ from pathlib import Path from datetime import timedelta -import os -# 从密钥配置文件导入敏感信息 try: import app_secrets except ImportError: raise ImportError("缺少 appapp_secrets.py 密钥配置文件,请参照项目说明创建") + BASE_DIR = Path(__file__).resolve().parent.parent SECRET_KEY = app_secrets.SECRET_KEY diff --git a/a_long_dianjing/urls.py b/a_long_dianjing/urls.py index c076e01..65a0134 100644 --- a/a_long_dianjing/urls.py +++ b/a_long_dianjing/urls.py @@ -1,32 +1,7 @@ """ -URL configuration for a_long_dianjing project. - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/6.0/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: path('', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.urls import include, path - 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) -""" -'''from django.contrib import admin -from django.urls import path - -urlpatterns = [ - path('admin/', admin.site.urls), -]''' - -# a_long_dianjing/urls.py -""" 项目根路由配置 - 按照生产环境格式,连接所有APP路由 注意:本项目使用MinIO模拟OSS,文件上传不经过Django MEDIA_URL,所以不需要static(settings.MEDIA_URL)配置 """ - from django.contrib import admin from django.urls import path, include diff --git a/a_long_dianjing/wsgi.py b/a_long_dianjing/wsgi.py index 8d00672..9233765 100644 --- a/a_long_dianjing/wsgi.py +++ b/a_long_dianjing/wsgi.py @@ -1,16 +1,6 @@ -""" -WSGI config for a_long_dianjing project. - -It exposes the WSGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/6.0/howto/deployment/wsgi/ -""" - import os - from django.core.wsgi import get_wsgi_application -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'a_long_dianjing.settings') +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'a_long_dianjing.settings') application = get_wsgi_application() diff --git a/backend/apps.py b/backend/apps.py index f64e2fd..6a3779f 100644 --- a/backend/apps.py +++ b/backend/apps.py @@ -1,5 +1,6 @@ from django.apps import AppConfig -class HoutaiConfig(AppConfig): + +class BackendConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' - name = 'houtai' + name = 'backend' diff --git a/backend/models.py b/backend/models.py index b2ed194..87f2b39 100644 --- a/backend/models.py +++ b/backend/models.py @@ -1,5 +1,6 @@ from django.db import models + # ==================== 1. 角色表 ==================== class Role(models.Model): """角色表""" @@ -17,7 +18,6 @@ class Role(models.Model): verbose_name_plural = '角色' indexes = [ models.Index(fields=['role_code']), - ] def __str__(self): diff --git a/backend/serializers.py b/backend/serializers.py index 8c1f8fd..8089310 100644 --- a/backend/serializers.py +++ b/backend/serializers.py @@ -1,9 +1,8 @@ -# serializers.py - #小程序弹窗序列化器 from rest_framework import serializers from config.models import PopupPage, PopupConfig, PopupImage + class PopupImageSerializer(serializers.ModelSerializer): """图片序列化器(输出用)""" class Meta: diff --git a/backend/urls.py b/backend/urls.py index 5b45078..700f7b5 100644 --- a/backend/urls.py +++ b/backend/urls.py @@ -1,25 +1,25 @@ from django.urls import path from django.views.decorators.csrf import csrf_exempt -from .view import GetClubConfigView, GetCrossOrderListView, PartnerGetOrderDataView,PartnerRefundNotifyView,\ - CrossPlatformRefundView, GetCrossOrderDetailView, CrossPlatformForceCompleteView, CrossPlatformTransferHallView,\ - PartnerTransferHallNotifyView, GetSettingsView, UpdateSettingsView, GetMappingsView, UpdateMappingsView,\ - PartnerUpdateSelfConfigView, GetPartnerClubsView, GetStatsView, PunishDashouView, PartnerPunishNotifyView,\ - GetClubConfigForPreSettlementView, PreSettlementActionView, GetPreSettlementDataView, GetRolePermissionView,\ - ModifyRolePermissionView, AddRoleView, GetAdminRolesView, GetAdminUserListView, AddAdminUserView,\ - ModifyAdminUserView, KefuGetDashouListView, KefuGetDashouDetailView, KefuUpdateDashouView, KefuGetShangjiaListView,\ - KefuGetShangjiaDetailView, KefuUpdateShangjiaView, GetProductBaseDataView, GetProductListView, SaveProductOrderView,\ - AddProductView, DeleteProductView, GetProductDetailView, UpdateProductView, UpdateMemberView, GetMemberListView,\ - AddMemberView, GetGuanliListView, GetGuanliDetailView, UpdateGuanliView, GetWithdrawSettingsView,\ - UpdateWithdrawSettingsView, GetZuzhangListView, GetZuzhangDetailView, UpdateZuzhangView, GetProductTypeZoneView,\ - ModifyProductTypeZoneView, GetRateView, ModifyRateView, PopupNoticeListAPIView, PopupNoticeModifyAPIView,ShopListView, ShopModifyView, ShopPublicTypeAndAuditView, ShopListForProductView, ShopProductModifyView,\ - ShopProductTypeMappingView, ProductListView, ProductModifyView, KefuChatPermissionsView,\ - PartnerFineNotifyView,FineApplyView, FaKuanTongJiView, FaKuanLieBiaoView, FaKuanChuLiView, FaKuanChuangJianView,\ - HqbkxxView,BkxgView,CaiwuView,CwhybkhqView, HybkjtsjView, SzxxView, CwddhqlxView, CwhqjtddsjView,\ - CwqtczhqView, KhpzhqView, ChzsgcView,KhgglView, ShgxgsjView, ZxkfghdsView, KptxwztjbView +from .view import (GetClubConfigView, GetCrossOrderListView, PartnerGetOrderDataView,PartnerRefundNotifyView, + CrossPlatformRefundView, GetCrossOrderDetailView, CrossPlatformForceCompleteView, CrossPlatformTransferHallView, + PartnerTransferHallNotifyView, GetSettingsView, UpdateSettingsView, GetMappingsView, UpdateMappingsView, + PartnerUpdateSelfConfigView, GetPartnerClubsView, GetStatsView, PunishDashouView, PartnerPunishNotifyView, + GetClubConfigForPreSettlementView, PreSettlementActionView, GetPreSettlementDataView, GetRolePermissionView, + ModifyRolePermissionView, AddRoleView, GetAdminRolesView, GetAdminUserListView, AddAdminUserView, + ModifyAdminUserView, KefuGetDashouListView, KefuGetDashouDetailView, KefuUpdateDashouView, KefuGetShangjiaListView, + KefuGetShangjiaDetailView, KefuUpdateShangjiaView, GetProductBaseDataView, GetProductListView, SaveProductOrderView, + AddProductView, DeleteProductView, GetProductDetailView, UpdateProductView, UpdateMemberView, GetMemberListView, + AddMemberView, GetGuanliListView, GetGuanliDetailView, UpdateGuanliView, GetWithdrawSettingsView, + UpdateWithdrawSettingsView, GetZuzhangListView, GetZuzhangDetailView, UpdateZuzhangView, GetProductTypeZoneView, + ModifyProductTypeZoneView, GetRateView, ModifyRateView, PopupNoticeListAPIView, PopupNoticeModifyAPIView,ShopListView, + ShopModifyView, ShopPublicTypeAndAuditView, ShopListForProductView, ShopProductModifyView, + ShopProductTypeMappingView, ProductListView, ProductModifyView, KefuChatPermissionsView, + PartnerFineNotifyView,FineApplyView, FaKuanTongJiView, FaKuanLieBiaoView, FaKuanChuLiView, FaKuanChuangJianView, + HqbkxxView,BkxgView,CaiwuView,CwhybkhqView, HybkjtsjView, SzxxView, CwddhqlxView, CwhqjtddsjView, + CwqtczhqView, KhpzhqView, ChzsgcView,KhgglView, ShgxgsjView, ZxkfghdsView, KptxwztjbView) urlpatterns = [ - path('kpthq', GetClubConfigView.as_view(), name='跨平台订单页面获取俱乐部数据'), path('hqddlb', GetCrossOrderListView.as_view(), name='获取跨平台订单'), path('kpthqtp',csrf_exempt(PartnerGetOrderDataView.as_view()), name='跨平台接受对方服务器获取订单数据'), diff --git a/backend/utils.py b/backend/utils.py index 3299e0b..b1fe88f 100644 --- a/backend/utils.py +++ b/backend/utils.py @@ -3,7 +3,7 @@ import logging import json from django.core.exceptions import ObjectDoesNotExist from rest_framework.response import Response -from .models import AbnormalUserLog, UserRole, RolePermission, Permission, DashouRiTongji, ShangjiaRiTongji, \ +from .models import AbnormalUserLog, UserRole, Permission, DashouRiTongji, ShangjiaRiTongji, \ GuanshiXufeiRiTongji, GuanshiRiTongji, ZuzhangRiTongji, TixianRiTongji from django.db import transaction diff --git a/backend/view.py b/backend/view.py index 49af8c9..9425236 100644 --- a/backend/view.py +++ b/backend/view.py @@ -79,11 +79,11 @@ from config.models import ( ## rank from rank.models import ( KaoheguanBankuai, Bankuai, Chenghao, KaoheCishuFeiyong, - YonghuChenghao, ShenheJilu + YonghuChenghao ) # 序列化器 -from .serializers import PopupPageSerializer, PopupConfigSerializer, PopupImageSerializer +from .serializers import PopupPageSerializer # 全局常量、日志对象 logger = logging.getLogger('houtai') diff --git a/config/admin.py b/config/admin.py index 8c38f3f..694323f 100644 --- a/config/admin.py +++ b/config/admin.py @@ -1,3 +1 @@ from django.contrib import admin - -# Register your models here. diff --git a/config/apps.py b/config/apps.py index f012e26..8fd75bf 100644 --- a/config/apps.py +++ b/config/apps.py @@ -1,5 +1,5 @@ from django.apps import AppConfig -class PeizhiConfig(AppConfig): - name = "peizhi" +class ConfigConfig(AppConfig): + name = "config" diff --git a/config/models.py b/config/models.py index c4ac910..0e3305f 100644 --- a/config/models.py +++ b/config/models.py @@ -1,7 +1,6 @@ from django.db import models - class Lunbo(models.Model): tupian_url = models.CharField(max_length=500, null=True, blank=True, verbose_name='轮播图片URL') leixing = models.IntegerField(null=True, blank=True, verbose_name='图片类型:1:轮播2:个人中心背景') diff --git a/config/tests.py b/config/tests.py index 7ce503c..2e9cb5f 100644 --- a/config/tests.py +++ b/config/tests.py @@ -1,3 +1 @@ from django.test import TestCase - -# Create your tests here. diff --git a/config/urls.py b/config/urls.py index 0459e8e..4e4129d 100644 --- a/config/urls.py +++ b/config/urls.py @@ -7,6 +7,7 @@ from .views import ShangpinGonggaoView, AdminUpdateConfigView, AdminUploadImageV GetDynamicConfigView, PopupConfigView, GetWithdrawModeView,CheckPhoneAuthView,\ ShangjiaLianjieListView + urlpatterns = [ path('shangpingonggao/', ShangpinGonggaoView.as_view(), name='商品公告轮播获取'), path('adpzhq', AdminConfigQueryView.as_view(), name='管理员获取配置'), diff --git a/config/views.py b/config/views.py index f0cb6db..86b09c7 100644 --- a/config/views.py +++ b/config/views.py @@ -1,6 +1,5 @@ import io import os -import json import re import time import random @@ -11,7 +10,7 @@ import urllib.parse from decimal import Decimal, InvalidOperation from django.conf import settings -from django.db import models, transaction, connection +from django.db import transaction, connection from django.db.models import Q, F, Max, Prefetch from django.core.cache import cache from django.core.paginator import Paginator diff --git a/orders/admin.py b/orders/admin.py index 8c38f3f..694323f 100644 --- a/orders/admin.py +++ b/orders/admin.py @@ -1,3 +1 @@ from django.contrib import admin - -# Register your models here. diff --git a/orders/apps.py b/orders/apps.py index 789b4b7..0a44e8b 100644 --- a/orders/apps.py +++ b/orders/apps.py @@ -1,9 +1,9 @@ from django.apps import AppConfig -class DingdanConfig(AppConfig): +class OrdersConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' - name = 'dingdan' + name = 'orders' def ready(self): # 导入信号处理,确保信号被注册 diff --git a/orders/tasks.py b/orders/tasks.py index 8a71d45..a898b43 100644 --- a/orders/tasks.py +++ b/orders/tasks.py @@ -22,16 +22,11 @@ logger = logging.getLogger(__name__) - - - @shared_task(bind=True, max_retries=3, default_retry_delay=60) def process_expired_order(self, dingdan_id): """ 处理单个超时订单(订单状态=8,超过48小时未处理) """ - - try: # 使用select_for_update锁定记录,防止并发修改 with transaction.atomic(): diff --git a/orders/tests.py b/orders/tests.py index 7ce503c..2e9cb5f 100644 --- a/orders/tests.py +++ b/orders/tests.py @@ -1,3 +1 @@ from django.test import TestCase - -# Create your tests here. diff --git a/orders/views.py b/orders/views.py index 6d5a984..076353d 100644 --- a/orders/views.py +++ b/orders/views.py @@ -5,7 +5,6 @@ import json import time import random import string -import uuid import traceback import threading import requests @@ -14,15 +13,12 @@ import xml.etree.ElementTree as ET import xmltodict import logging from decimal import Decimal -from datetime import datetime from django.conf import settings from django.db import models, transaction -from django.db.models import F, Q, Count, OuterRef, Subquery, Prefetch +from django.db.models import F, Q, OuterRef, Subquery from django.core.cache import cache -from django.core.paginator import Paginator from django.core.exceptions import ObjectDoesNotExist -from django.shortcuts import render from django.http import HttpResponse from django.utils import timezone @@ -41,7 +37,6 @@ from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentClo from tencentcloud.sts.v20180813 import sts_client, models from utils.weixin_broadcast import WeixinBroadcastSender -from utils.goeasy_service import GoEasyService from utils.chat_utils import _send_group_message, _subscribe_users_to_group, establish_order_chat from utils.fadan_utils import check_fadan_qiangdan_eligible @@ -60,7 +55,7 @@ from orders.notice_tasks import dingdan_guangbo from .models import ( Dingdan, DingdanShangjia, DingdanPingtai, Dashoutupian, - Chufajilu, Chufatupian, Fadan, FadanFenhong, Liaotian + Chufajilu, Chufatupian, Fadan, FadanFenhong ) from orders.models import ( Lilubiao, Pingfen, PreSettlement, Tuikuanjilu, CrossPlatformOrderData diff --git a/products/admin.py b/products/admin.py index 8c38f3f..694323f 100644 --- a/products/admin.py +++ b/products/admin.py @@ -1,3 +1 @@ from django.contrib import admin - -# Register your models here. diff --git a/products/apps.py b/products/apps.py index 9666a1b..4b1b6ac 100644 --- a/products/apps.py +++ b/products/apps.py @@ -1,5 +1,5 @@ from django.apps import AppConfig -class ShangpinConfig(AppConfig): - name = "shangpin" +class ProductsConfig(AppConfig): + name = "products" diff --git a/products/tests.py b/products/tests.py index 7ce503c..2e9cb5f 100644 --- a/products/tests.py +++ b/products/tests.py @@ -1,3 +1 @@ from django.test import TestCase - -# Create your tests here. diff --git a/products/urls.py b/products/urls.py index bfd630c..b5e6b55 100644 --- a/products/urls.py +++ b/products/urls.py @@ -64,8 +64,6 @@ urlpatterns = [ path('adhyjllxcx',HuiyuanTypeListView.as_view(), name='管理员查询会员记录获取会员类型'), path('adhyjlcxhq',HuiyuanRecordListView.as_view(), name='管理员查询会员记录'), - - path('zuzhangfenhong', ZuzhangFenhongView.as_view(), name='组长分红记录获取'), path('czhqdy', CzhqdyView.as_view(), name='充值打手抵押查询'), path('dsqrgmdh', DsqrgmdhView.as_view(), name='充值抵扣'), diff --git a/products/utils.py b/products/utils.py index 78df05e..ce2910e 100644 --- a/products/utils.py +++ b/products/utils.py @@ -1,5 +1,3 @@ -# tongji/utils.py 或 shangpin/utils.py - import logging from datetime import date from decimal import Decimal diff --git a/products/views.py b/products/views.py index 4ced5df..942e2ee 100644 --- a/products/views.py +++ b/products/views.py @@ -15,9 +15,8 @@ import defusedxml.ElementTree as ET # ==================== Django 内置 ==================== from django.conf import settings -from django.db import models, transaction, connection -from django.db.models import Q, Count, Subquery, OuterRef -from django.core.paginator import Paginator +from django.db import transaction, connection +from django.db.models import Q from django.shortcuts import render, get_object_or_404 from django.http import HttpResponse from django.utils import timezone diff --git a/rank/apps.py b/rank/apps.py index e330120..1b636d2 100644 --- a/rank/apps.py +++ b/rank/apps.py @@ -1,6 +1,6 @@ from django.apps import AppConfig -class DengjiConfig(AppConfig): +class RankConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' - name = 'dengji' + name = 'rank' diff --git a/rank/services.py b/rank/services.py index 30ffcca..ba59c10 100644 --- a/rank/services.py +++ b/rank/services.py @@ -4,7 +4,8 @@ from django.db import transaction, IntegrityError from django.utils import timezone from .models import DashouBiaoxian -logger = logging.getLogger('dengji') + +logger = logging.getLogger(__name__) def record_dashou_biaoxian(dingdan_id, dashou_id, xingwei, **kwargs): """ diff --git a/rank/tests.py b/rank/tests.py index 7ce503c..2e9cb5f 100644 --- a/rank/tests.py +++ b/rank/tests.py @@ -1,3 +1 @@ from django.test import TestCase - -# Create your tests here. diff --git a/rank/urls.py b/rank/urls.py index aa54ee2..dd21436 100644 --- a/rank/urls.py +++ b/rank/urls.py @@ -3,6 +3,7 @@ from .views import DashouBiaoqianView , BankuaiBiaoqianView, KaoheguanRegisterVi KaoheguanRefreshView , ShenheDatingModuleView, ShenheDatingDataView, ShenheQiangdanView, ShenheCaozuoView,ShenheXiangqingView, KaoheJinpaiTagsView, KaoheJiluView, KaoheFreeApplyView,\ KaoheJiluListView + urlpatterns = [ path('dsbqhq', DashouBiaoqianView.as_view(), name='打手标签获取'), # 其他已有路由保持不变 diff --git a/rank/utils.py b/rank/utils.py index d115360..2a2464c 100644 --- a/rank/utils.py +++ b/rank/utils.py @@ -4,8 +4,7 @@ import random import logging from decimal import Decimal # Django 内置 -from django.db import models -from django.db.models import Q, F, Max +from django.db.models import F, Max # 项目模型 ## 当前dengji应用 from .models import ( @@ -70,9 +69,6 @@ def check_dashou_biaoqian_required(order_id, dashou_yonghuid): - - - def get_tag_fee(chenghao, cishu): """ 获取标签在指定考核次数下的费用。 diff --git a/rank/views.py b/rank/views.py index cfbd185..15dc4de 100644 --- a/rank/views.py +++ b/rank/views.py @@ -1,8 +1,8 @@ import json import logging from decimal import Decimal -from django.db import models, transaction, IntegrityError -from django.db.models import F, Q, OuterRef, Subquery, Count, Max +from django.db import models, transaction +from django.db.models import F from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated diff --git a/shop/admin.py b/shop/admin.py index 8c38f3f..694323f 100644 --- a/shop/admin.py +++ b/shop/admin.py @@ -1,3 +1 @@ from django.contrib import admin - -# Register your models here. diff --git a/shop/apps.py b/shop/apps.py index 5be5e60..1f05a2b 100644 --- a/shop/apps.py +++ b/shop/apps.py @@ -1,6 +1,6 @@ from django.apps import AppConfig -class ShangdianConfig(AppConfig): +class ShopConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' - name = 'shangdian' + name = 'shop' diff --git a/users/admin.py b/users/admin.py index 8c38f3f..694323f 100644 --- a/users/admin.py +++ b/users/admin.py @@ -1,3 +1 @@ from django.contrib import admin - -# Register your models here. diff --git a/users/apps.py b/users/apps.py index 36f20dc..3ef1284 100644 --- a/users/apps.py +++ b/users/apps.py @@ -1,5 +1,5 @@ from django.apps import AppConfig -class YonghuConfig(AppConfig): - name = "yonghu" +class UsersConfig(AppConfig): + name = "users" diff --git a/users/fadan_fenhong_utils.py b/users/fadan_fenhong_utils.py index ddc4352..3bfb1a6 100644 --- a/users/fadan_fenhong_utils.py +++ b/users/fadan_fenhong_utils.py @@ -1,11 +1,9 @@ # yonghu/fadan_fenhong_utils.py # 罚款缴纳分红处理公共方法(支持更新罚单中的申请人分红金额) -import decimal import logging from decimal import Decimal from django.db import transaction -from django.core.exceptions import ObjectDoesNotExist from orders.models import Fadan, FadanFenhong, FadanFenhongLilv from users.models import UserShangjia diff --git a/users/models.py b/users/models.py index 8245b45..bfc02fd 100644 --- a/users/models.py +++ b/users/models.py @@ -1,8 +1,6 @@ # models.py from django.db import models -import random -import string -from django.contrib.auth.models import AbstractBaseUser, BaseUserManager +from django.contrib.auth.models import AbstractBaseUser # ==================== 用户主表 ==================== class UserMain(AbstractBaseUser): diff --git a/users/tests.py b/users/tests.py index 7ce503c..2e9cb5f 100644 --- a/users/tests.py +++ b/users/tests.py @@ -1,3 +1 @@ from django.test import TestCase - -# Create your tests here. diff --git a/utils/admin.py b/utils/admin.py index 8c38f3f..694323f 100644 --- a/utils/admin.py +++ b/utils/admin.py @@ -1,3 +1 @@ from django.contrib import admin - -# Register your models here.