# -*- coding: utf-8 -*- # @Author : {{ table.function_author }} # @FileName: {{ underscore(table.class_name) }}_service.py # @Time : {{ datetime }} from typing import List from ruoyi_common.exception import ServiceException from ruoyi_common.utils.base import LogUtil from {{ get_import_path(table.package_name, table.module_name, 'domain') }} import {{ class_name_pascal }} from {{ get_import_path(table.package_name, table.module_name, 'mapper') }}.{{ underscore(table.class_name) }}_mapper import {{ class_name_pascal }}Mapper class {{ class_name_pascal }}Service: """{{ table.function_name }}服务类""" def select_{{ underscore(table.class_name) }}_list(self, {{ underscore(table.business_name) }}: {{ class_name_pascal }}) -> List[{{ class_name_pascal }}]: """ 查询{{ table.function_name }}列表 Args: {{ underscore(table.business_name) }} ({{ table.class_name }}): {{ table.function_name }}对象 Returns: List[{{ table.class_name }}]: {{ table.function_name }}列表 """ return {{ class_name_pascal }}Mapper.select_{{ underscore(table.class_name) }}_list({{ underscore(table.business_name) }}) {% if table.pk_column %} def select_{{ underscore(table.class_name) }}_by_id(self, {{ underscore(table.pk_column.java_field) }}: int) -> {{ class_name_pascal }}: """ 根据ID查询{{ table.function_name }} Args: {{ underscore(table.pk_column.java_field) }} (int): {{ table.pk_column.column_comment }} Returns: {{ table.class_name }}: {{ table.function_name }}对象 """ return {{ class_name_pascal }}Mapper.select_{{ underscore(table.class_name) }}_by_id({{ underscore(table.pk_column.java_field) }}) {% endif %} def insert_{{ underscore(table.class_name) }}(self, {{ underscore(table.business_name) }}: {{ class_name_pascal }}) -> int: """ 新增{{ table.function_name }} Args: {{ underscore(table.business_name) }} ({{ table.class_name }}): {{ table.function_name }}对象 Returns: int: 插入的记录数 """ return {{ class_name_pascal }}Mapper.insert_{{ underscore(table.class_name) }}({{ underscore(table.business_name) }}) {% if table.pk_column %} def update_{{ underscore(table.class_name) }}(self, {{ underscore(table.business_name) }}: {{ class_name_pascal }}) -> int: """ 修改{{ table.function_name }} Args: {{ underscore(table.business_name) }} ({{ table.class_name }}): {{ table.function_name }}对象 Returns: int: 更新的记录数 """ return {{ class_name_pascal }}Mapper.update_{{ underscore(table.class_name) }}({{ underscore(table.business_name) }}) {% endif %} {% if table.pk_column %} def delete_{{ underscore(table.class_name) }}_by_ids(self, ids: List[int]) -> int: """ 批量删除{{ table.function_name }} Args: ids (List[int]): ID列表 Returns: int: 删除的记录数 """ return {{ class_name_pascal }}Mapper.delete_{{ underscore(table.class_name) }}_by_ids(ids) {% endif %} def import_{{ underscore(table.class_name) }}(self, {{ underscore(table.business_name) }}_list: List[{{ class_name_pascal }}], is_update: bool = False) -> str: """ 导入{{ table.function_name }}数据 Args: {{ underscore(table.business_name) }}_list (List[{{ table.class_name }}]): {{ table.function_name }}列表 is_update (bool): 是否更新已存在的数据 Returns: str: 导入结果消息 """ if not {{ underscore(table.business_name) }}_list: raise ServiceException("导入{{ table.function_name }}数据不能为空") success_count = 0 fail_count = 0 success_msg = "" fail_msg = "" for {{ underscore(table.business_name) }} in {{ underscore(table.business_name) }}_list: try: display_value = {{ underscore(table.business_name) }} {% if table.pk_column %} display_value = getattr({{ underscore(table.business_name) }}, "{{ underscore(table.pk_column.java_field) }}", display_value) existing = None if {{ underscore(table.business_name) }}.{{ underscore(table.pk_column.java_field) }} is not None: existing = {{ class_name_pascal }}Mapper.select_{{ underscore(table.class_name) }}_by_id({{ underscore(table.business_name) }}.{{ underscore(table.pk_column.java_field) }}) if existing: if is_update: result = {{ class_name_pascal }}Mapper.update_{{ underscore(table.class_name) }}({{ underscore(table.business_name) }}) else: fail_count += 1 fail_msg += f"
第{fail_count}条数据,已存在:{display_value}" continue else: result = {{ class_name_pascal }}Mapper.insert_{{ underscore(table.class_name) }}({{ underscore(table.business_name) }}) {% else %} display_value = str(display_value) result = {{ class_name_pascal }}Mapper.insert_{{ underscore(table.class_name) }}({{ underscore(table.business_name) }}) {% endif %} if result > 0: success_count += 1 success_msg += f"
第{success_count}条数据,操作成功:{display_value}" else: fail_count += 1 fail_msg += f"
第{fail_count}条数据,操作失败:{display_value}" except Exception as e: fail_count += 1 fail_msg += f"
第{fail_count}条数据,导入失败,原因:{e.__class__.__name__}" LogUtil.logger.error(f"导入{{ table.function_name }}失败,原因:{e}") if fail_count > 0: if success_msg: fail_msg = f"导入成功{success_count}条,失败{fail_count}条。{success_msg}
" + fail_msg else: fail_msg = f"导入成功{success_count}条,失败{fail_count}条。{fail_msg}" raise ServiceException(fail_msg) success_msg = f"恭喜您,数据已全部导入成功!共 {success_count} 条,数据如下:" + success_msg return success_msg