sys_product_conf.py 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. # -*- coding: utf-8 -*-
  2. # @Author : YY
  3. from typing import List
  4. from typing_extensions import Annotated
  5. from pydantic import BeforeValidator
  6. from ruoyi_common.constant import UserConstants
  7. from ruoyi_common.base.model import AjaxResponse, TableResponse
  8. from ruoyi_common.base.transformer import ids_to_str_list
  9. # from ruoyi_common.domain.entity import SysProductConf
  10. from ruoyi_common.domain.entity import SysProductConf
  11. from ruoyi_common.domain.enum import BusinessType
  12. from ruoyi_common.descriptor.serializer import JsonSerializer
  13. from ruoyi_common.descriptor.validator import BodyValidator, QueryValidator,PathValidator
  14. from ruoyi_common.utils import security_util as SecurityUtil
  15. from ruoyi_system.service.module_conf.product_info_conf import SysModuleProductinfoConfService
  16. from ruoyi_framework.descriptor.log import Log
  17. from ruoyi_framework.descriptor.permission import HasPerm, PreAuthorize
  18. from ... import reg
  19. @reg.api.route("/system/moduleConf/productConf/list", methods=["GET"])
  20. @QueryValidator(is_page=True)
  21. # @PreAuthorize(HasPerm("moduleConf:productConf:list"))
  22. @JsonSerializer()
  23. def system_productinfo_conf_list(dto:SysProductConf):
  24. '''
  25. 获取单品配置列表
  26. '''
  27. rows = SysModuleProductinfoConfService.select_productinfo_conf_list(dto)
  28. table_response = TableResponse(rows=rows)
  29. return table_response
  30. @reg.api.route("/system/moduleConf/productConf/<string:id>", methods=["GET"])
  31. @PathValidator()
  32. @PreAuthorize(HasPerm("moduleConf:productConf:query"))
  33. @JsonSerializer()
  34. def module_productinfo_conf(id:str):
  35. '''
  36. 获取单品配置详情
  37. '''
  38. # 注意:如果需要数据权限控制,需要实现 check_productinfo_conf_data_scope 方法
  39. # SysModuleProductinfoConfService.check_productinfo_conf_data_scope(id)
  40. productinfoConf = SysModuleProductinfoConfService.select_productinfo_conf_by_id(id)
  41. ajax_response = AjaxResponse.from_success(data=productinfoConf)
  42. return ajax_response
  43. @reg.api.route("/system/moduleConf/productConf", methods=["POST"])
  44. @BodyValidator()
  45. @PreAuthorize(HasPerm("moduleConf:productConf:add"))
  46. @Log(title="单品配置管理",business_type=BusinessType.INSERT)
  47. @JsonSerializer()
  48. def system_productinfo_conf_create(dto:SysProductConf):
  49. '''
  50. 新增单品配置
  51. '''
  52. # if UserConstants.NOT_UNIQUE == SysModuleProductinfoConfService.check_productinfo_conf_name_unique(dto):
  53. # ajax_response = AjaxResponse.from_error("单品配置名称已存在")
  54. # return ajax_response
  55. # 注意:SysProductConf 不继承 AuditEntity,没有 create_by 等字段,所以不需要调用 create_by_user
  56. SysModuleProductinfoConfService.insert_conf(dto)
  57. ajax_response = AjaxResponse.from_success()
  58. return ajax_response
  59. @reg.api.route("/system/moduleConf/productConf", methods=["PUT"])
  60. @BodyValidator()
  61. @PreAuthorize(HasPerm("moduleConf:productConf:edit"))
  62. @Log(title="单品配置管理",business_type=BusinessType.UPDATE)
  63. @JsonSerializer()
  64. def system_productinfo_conf_update(dto:SysProductConf):
  65. '''
  66. 修改单品配置
  67. '''
  68. # SysModuleProductinfoConfService.check_productinfo_conf_data_scope(dto.productinfoConf_id)
  69. # if UserConstants.UNIQUE != SysModuleProductinfoConfService.check_productinfo_conf_name_unique(dto):
  70. # return AjaxResponse.from_error("单品配置名称已存在")
  71. # 注意:SysProductConf 不继承 AuditEntity,没有 update_by 等字段,所以不需要调用 update_by_user
  72. flag = SysModuleProductinfoConfService.update_conf(dto)
  73. return AjaxResponse.from_success() if flag else AjaxResponse.from_error()
  74. @reg.api.route("/system/moduleConf/productConf/<ids>", methods=["DELETE"])
  75. @PathValidator()
  76. @PreAuthorize(HasPerm("moduleConf:productConf:remove"))
  77. @Log(title="单品配置管理",business_type=BusinessType.DELETE)
  78. @JsonSerializer()
  79. def system_productinfo_conf_delete(
  80. ids: Annotated[List[str], BeforeValidator(ids_to_str_list)]
  81. ):
  82. '''
  83. 删除单品配置
  84. '''
  85. # if SysModuleProductinfoConfService.has_child_by_productinfo_conf_id(id):
  86. # return AjaxResponse.from_error("该单品配置存在下级单品配置,不允许删除")
  87. # if SysModuleProductinfoConfService.check_productinfo_conf_exist_user(id):
  88. # return AjaxResponse.from_error("该单品配置存在用户,不允许删除")
  89. # SysModuleProductinfoConfService.check_productinfo_conf_data_scope(id)
  90. flag = SysModuleProductinfoConfService.delete_productinfo_conf_by_id(ids)
  91. return AjaxResponse.from_success() if flag > 0 else AjaxResponse.from_error()