This commit is contained in:
han0
2024-12-25 11:31:31 +08:00
parent 370a4861dd
commit 0e528d81e0
7 changed files with 161 additions and 31 deletions

View File

@@ -36,7 +36,7 @@ class FujianSurvey(db.Model, Model, BaseModelMixin):
return result
@classmethod
def get_query(cls, year=None, month=None, name=None, spec=None, name_in=None, region='福州', material_id=None):
def get_query(cls, year=None, month=None, name=None, spec=None, name_in=None, region='福州', material_id=None, material_id_in=None):
query = cls.query
if year and month:
start_date = datetime.date(year, month, 1)
@@ -49,6 +49,8 @@ class FujianSurvey(db.Model, Model, BaseModelMixin):
query = query.filter(cls.material_id == material_id)
if name_in:
query = query.filter(cls.name.in_(name_in))
if material_id_in:
query = query.filter(cls.material_id.in_(material_id_in))
if spec:
query = query.filter(cls.spec.like(f'%{spec}%'))
if region:

View File

@@ -43,9 +43,9 @@ class PriceResult(db.Model, Model, OperationTrackMixin, BaseModelMixin):
)
@classmethod
def get_by_key(cls, name, year, month):
def get_by_key(cls, material_id, year, month):
query = cls.query
query = query.filter(cls.name == name).filter(cls.year == year).filter(cls.month == month)
query = query.filter(cls.material_id == material_id).filter(cls.year == year).filter(cls.month == month)
return query.one_or_none()
def find_by_key(self):
@@ -53,15 +53,17 @@ class PriceResult(db.Model, Model, OperationTrackMixin, BaseModelMixin):
query = cls.query
query = query.filter(cls.year == self.year)
query = query.filter(cls.month == self.month)
query = query.filter(cls.name == self.name)
query = query.filter(cls.material_id == self.material_id)
result = query.one_or_none()
return result
@classmethod
def get_query(cls, year, month, name_in=None, name=None):
def get_query(cls, year, month, name_in=None, name=None, material_id_in=None):
query = cls.query
query = query.filter(cls.year == year)
query = query.filter(cls.month == month)
if material_id_in:
query = query.filter(cls.material_id.in_(material_id_in))
if name_in:
query = query.filter(cls.name.in_(name_in))
if name: