contract_service.go 4.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package fms
  2. import (
  3. "hongze/fms_api/global"
  4. "hongze/fms_api/models/base"
  5. )
  6. // ContractService 合同服务套餐
  7. type ContractService struct {
  8. ContractServiceId int `gorm:"primaryKey;column:contract_service_id" json:"contract_service_id"`
  9. ContractRegisterId int `gorm:"column:contract_register_id" json:"contract_register_id" description:"登记ID"`
  10. ProductId int `gorm:"column:product_id" json:"product_id" description:"产品ID"`
  11. ServiceTemplateId int `gorm:"column:service_template_id" json:"service_template_id" description:"合同服务模板ID"`
  12. Title string `gorm:"column:title" json:"title" description:"套餐名称"`
  13. Value string `gorm:"column:value" json:"value" description:"套餐的值"`
  14. TableValue string `gorm:"column:table_value" json:"table_value" description:"表格数据,用于word生成时的json数据"`
  15. HasDetail string `gorm:"column:has_detail" json:"has_detail" description:"是否有详情: 无; 有"`
  16. ChartPermissionId int `gorm:"column:chart_permission_id" json:"chart_permission_id" description:"权限ID"`
  17. ChartPermissionIds string `gorm:"column:chart_permission_ids" json:"chart_permission_ids" description:"权限IDs-小套餐"`
  18. base.TimeBase
  19. }
  20. func (c *ContractService) TableName() string {
  21. return "contract_service"
  22. }
  23. func (c *ContractService) List(condition string, pars []interface{}) (list []*ContractService, err error) {
  24. list = make([]*ContractService, 0)
  25. err = global.DEFAULT_MYSQL.Model(c).
  26. Where(condition, pars...).
  27. Find(&list).Error
  28. return
  29. }
  30. // ContractServiceAddReq 新增合同套餐请求体
  31. type ContractServiceAddReq struct {
  32. ServiceTemplateId int `json:"service_template_id" description:"服务套餐id"`
  33. Title string `json:"title" description:"服务套餐名称"`
  34. Value string `json:"value" description:"服务套餐内容"`
  35. Detail [][]ContractServiceDetailAddReq `json:"detail" description:"详情数据"`
  36. ChartPermissionIds string `json:"chart_permission_ids" description:"品种权限"`
  37. }
  38. // ContractServiceAndDetail 合同的服务内容
  39. type ContractServiceAndDetail struct {
  40. ContractServiceId int `json:"contract_service_id" description:"合同服务ID"`
  41. ContractRegisterId int `json:"contract_register_id" description:"合同登记ID"`
  42. ProductId int `json:"product_id" description:"产品id,1:ficc;2:权益"`
  43. ServiceTemplateId int `json:"service_template_id" description:"合同服务模板id"`
  44. Title string `json:"title" description:"套餐标题"`
  45. Value string `json:"value" description:"套餐的值"`
  46. HasDetail string `json:"has_detail" description:"是否有详情,枚举值:是、否;默认:否"`
  47. TableValue string `json:"table_value" description:"表格数据,用于word生成时的json数据"`
  48. ChartPermissionId int `json:"chart_permission_id" description:"权限id"`
  49. ChartPermissionIds string `json:"chart_permission_ids" description:"品种权限-小套餐"`
  50. DetailList []*ContractServiceDetail `json:"detail_list"`
  51. }
  52. // GetContractServiceAndDetailList 根据id获取合同列表数据
  53. func GetContractServiceAndDetailList(contractRegisterId int) (list []*ContractServiceAndDetail, err error) {
  54. err = global.DEFAULT_MYSQL.Model(ContractService{}).
  55. Where("contract_register_id = ?", contractRegisterId).
  56. Find(&list).Error
  57. return
  58. }
  59. // GetContractRegisterIdsByTempId 套餐模板ID获取关联的合同登记ID
  60. func GetContractRegisterIdsByTempId(tempId int) (registerIds []int, err error) {
  61. err = global.DEFAULT_MYSQL.Model(ContractService{}).
  62. Select("DISTINCT contract_register_id").
  63. Where("service_template_id = ?", tempId).
  64. Find(&registerIds).Error
  65. return
  66. }
  67. // ContractRegisterServicesName 合同登记套餐信息
  68. type ContractRegisterServicesName struct {
  69. ContractRegisterId int `json:"contract_register_id" description:"登记ID"`
  70. ServicesName string `json:"services_name" description:"套餐信息, 英文逗号拼接"`
  71. }
  72. // GetContractRegisterServicesNameByRegisterIds 合同登记IDs获取套餐拼接字符串
  73. func GetContractRegisterServicesNameByRegisterIds(registerIds []int) (list []*ContractRegisterServicesName, err error) {
  74. list = make([]*ContractRegisterServicesName, 0)
  75. err = global.DEFAULT_MYSQL.Model(ContractService{}).
  76. Select("contract_register_id, GROUP_CONCAT(title) AS services_name").
  77. Where("contract_register_id IN ?", registerIds).
  78. Group("contract_register_id").
  79. Find(&list).Error
  80. return
  81. }