sys_compo_conf_mapper.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. # -*- coding: utf-8 -*-
  2. # @Author : YY
  3. # @FileName: sys_compo_conf_mapper.py
  4. # @Time : 2025-12-22 04:49:51
  5. from typing import List
  6. from datetime import datetime
  7. from flask import g
  8. from sqlalchemy import select, update, delete, func
  9. from ruoyi_admin.ext import db
  10. from ruoyi_common.domain.entity import SysCompoConf
  11. from ruoyi_system.domain.po import SysCompoConfPo
  12. from ruoyi_common.utils.base import Seq
  13. class SysCompoInfoConfMapper:
  14. """套餐配置表Mapper"""
  15. @staticmethod
  16. def select_compoinfo_conf_list(sys: SysCompoConf) -> List[SysCompoConf]:
  17. """
  18. 查询套餐配置表列表
  19. Args:
  20. sys (sys_compo_info_conf): 套餐配置表对象
  21. Returns:
  22. List[sys_compo_info_conf]: 套餐配置表列表
  23. """
  24. try:
  25. # 构建查询条件
  26. stmt = select(SysCompoConfPo)
  27. if sys.conf_id is not None:
  28. stmt = stmt.where(SysCompoConfPo.conf_id == sys.conf_id)
  29. if sys.module_index is not None:
  30. stmt = stmt.where(SysCompoConfPo.module_index == sys.module_index)
  31. if sys.category is not None:
  32. stmt = stmt.where(SysCompoConfPo.category == sys.category)
  33. if sys.attributes is not None:
  34. stmt = stmt.where(SysCompoConfPo.attributes == sys.attributes)
  35. if "criterian_meta" in g and g.criterian_meta.page:
  36. g.criterian_meta.page.stmt = stmt
  37. result = db.session.execute(stmt).scalars().all()
  38. return [SysCompoConf.model_validate(item) for item in result] if result else []
  39. except Exception as e:
  40. print(f"查询套餐配置表列表出错: {e}")
  41. return []
  42. @staticmethod
  43. def select_sys_compo_info_conf_by_id(conf_id: str) -> SysCompoConf:
  44. """
  45. 根据ID查询套餐配置表
  46. Args:
  47. conf_id (str): conf_id
  48. Returns:
  49. sys_compo_info_conf: 套餐配置表对象
  50. """
  51. try:
  52. result = db.session.get(SysCompoConfPo, conf_id)
  53. return SysCompoConf.model_validate(result) if result else None
  54. except Exception as e:
  55. print(f"根据ID查询套餐配置表出错: {e}")
  56. return None
  57. @staticmethod
  58. def insert_sys_compo_info_conf(sys: SysCompoConf) -> int:
  59. """
  60. 新增套餐配置表
  61. Args:
  62. sys (sys_compo_info_conf): 套餐配置表对象
  63. Returns:
  64. int: 插入的记录数
  65. """
  66. try:
  67. now = datetime.now()
  68. new_po = SysCompoConfPo()
  69. # 如果 conf_id 为空,需要生成新的主键值(varchar类型,使用序列号生成)
  70. if sys.conf_id is None or sys.conf_id == "":
  71. # 使用序列号生成器生成字符串ID
  72. new_po.conf_id = Seq.get_seq_id("common")
  73. else:
  74. new_po.conf_id = sys.conf_id
  75. new_po.module_index = sys.module_index
  76. new_po.category = sys.category
  77. new_po.attributes = sys.attributes
  78. new_po.version = sys.version
  79. new_po.delete_flag = sys.delete_flag
  80. new_po.status = sys.status
  81. db.session.add(new_po)
  82. db.session.commit()
  83. sys.conf_id = new_po.conf_id
  84. return 1
  85. except Exception as e:
  86. db.session.rollback()
  87. print(f"新增套餐配置表出错: {e}")
  88. return 0
  89. @staticmethod
  90. def update_sys_compo_info_conf(sys: SysCompoConf) -> int:
  91. """
  92. 修改套餐配置表
  93. Args:
  94. sys (sys_compo_info_conf): 套餐配置表对象
  95. Returns:
  96. int: 更新的记录数
  97. """
  98. try:
  99. existing = db.session.get(SysCompoConfPo, sys.conf_id)
  100. if not existing:
  101. return 0
  102. now = datetime.now()
  103. # 主键不参与更新
  104. existing.module_index = sys.module_index
  105. existing.category = sys.category
  106. existing.attributes = sys.attributes
  107. existing.version = sys.version
  108. existing.delete_flag = sys.delete_flag
  109. existing.status = sys.status
  110. db.session.commit()
  111. return 1
  112. except Exception as e:
  113. db.session.rollback()
  114. print(f"修改套餐配置表出错: {e}")
  115. return 0
  116. @staticmethod
  117. def delete_sys_compo_info_conf_by_ids(ids: List[str]) -> int:
  118. """
  119. 批量删除套餐配置表
  120. Args:
  121. ids (List[str]): ID列表
  122. Returns:
  123. int: 删除的记录数
  124. """
  125. try:
  126. stmt = delete(SysCompoConfPo).where(SysCompoConfPo.conf_id.in_(ids))
  127. result = db.session.execute(stmt)
  128. db.session.commit()
  129. return result.rowcount
  130. except Exception as e:
  131. db.session.rollback()
  132. print(f"批量删除套餐配置表出错: {e}")
  133. return 0