manage_center_service.go 7.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. package service
  2. import "XT_New/models"
  3. func GetDictionaryConfigList(orgID int64) (dataconfig interface{}, err error) {
  4. var configList []*models.DictionaryDataconfig
  5. err = readDb.Model(&models.DictionaryDataconfig{}).Where("(org_id in (0,?) and status = 1) or (status = 0 and delete_id_system > 0 and org_id = ?)", orgID, orgID).Order("orders asc, id asc").Find(&configList).Error
  6. if err != nil {
  7. return nil, err
  8. }
  9. // configResult := make([]*ConfigViewModel,0)
  10. childConfig := make(map[int64][]*models.DictionaryDataconfig)
  11. resultConfig := make(map[string][]*models.DictionaryConfigViewModel)
  12. deleteSystemChilds := make([]*models.DictionaryDataconfig, 0)
  13. editSystemChilds := make([]*models.DictionaryDataconfig, 0)
  14. for _, config := range configList {
  15. if config.Status == 1 && config.DeleteIdSystem > 0 {
  16. editSystemChilds = append(editSystemChilds, config)
  17. }
  18. if config.Status == 0 && config.DeleteIdSystem > 0 {
  19. deleteSystemChilds = append(deleteSystemChilds, config)
  20. }
  21. }
  22. continueFlag := false
  23. for _, config := range configList {
  24. continueFlag = false
  25. if config.ParentId == 0 {
  26. newConfig := &models.DictionaryConfigViewModel{
  27. ID: config.ID,
  28. ParentId: config.ParentId,
  29. Module: config.Module,
  30. OrgId: config.OrgId,
  31. Name: config.Name,
  32. FieldName: config.FieldName,
  33. Value: config.Value,
  34. CreateUserId: config.CreateUserId,
  35. Status: config.Status,
  36. Remark: config.Remark,
  37. Title: config.Title,
  38. Content: config.Content,
  39. }
  40. // configResult = append(configResult,newConfig)
  41. result := resultConfig[config.Module]
  42. if result == nil {
  43. result = make([]*models.DictionaryConfigViewModel, 0)
  44. }
  45. for _, vm := range editSystemChilds {
  46. if vm.DeleteIdSystem == config.ID {
  47. continueFlag = true
  48. break
  49. }
  50. }
  51. for _, _vm := range deleteSystemChilds {
  52. if _vm.DeleteIdSystem == config.ID {
  53. continueFlag = true
  54. break
  55. }
  56. }
  57. if config.OrgId != 0 && config.Status == 0 && config.DeleteIdSystem > 0 {
  58. continue
  59. }
  60. if continueFlag {
  61. continue
  62. }
  63. result = append(result, newConfig)
  64. resultConfig[config.Module] = result
  65. } else {
  66. childs := childConfig[config.ParentId]
  67. if childs == nil {
  68. childs = make([]*models.DictionaryDataconfig, 0)
  69. }
  70. continueFlag := false
  71. for _, vm := range editSystemChilds {
  72. if vm.DeleteIdSystem == config.ID {
  73. continueFlag = true
  74. break
  75. }
  76. }
  77. for _, _vm := range deleteSystemChilds {
  78. if _vm.DeleteIdSystem == config.ID {
  79. continueFlag = true
  80. break
  81. }
  82. }
  83. if config.OrgId != 0 && config.Status == 0 && config.DeleteIdSystem > 0 {
  84. continue
  85. }
  86. if continueFlag {
  87. continue
  88. }
  89. childs = append(childs, config)
  90. childConfig[config.ParentId] = childs
  91. }
  92. }
  93. for _, vm := range resultConfig {
  94. for _, _vm := range vm {
  95. _vm.Childs = childConfig[_vm.ID]
  96. }
  97. // vm.Childs = childConfig[vm.ID]
  98. }
  99. return resultConfig, err
  100. }
  101. func CreateDictionaryConfig(dataconfig *models.DictionaryDataconfig) (err error) {
  102. // readDb.Model(&models.Dataconfig{}).Where("module = ? and parent_id = 0 and org_id in (0,?)",dataconfig.Module,dataconfig.OrgId).Count(&total)
  103. err = readDb.Create(&dataconfig).Error
  104. return
  105. }
  106. func GetDictionaryChildValue(module string, parent_id int64, org_id int64) (value int) {
  107. readDb.Model(&models.DictionaryDataconfig{}).Where("module=? and parent_id=? and org_id in (0,?)", module, parent_id, org_id).Count(&value)
  108. return
  109. }
  110. func FindDictionaryConfigByTitle(module string, title string, org_id int64) (dataconfig models.DictionaryDataconfig, err error) {
  111. err = readDb.Model(&models.DictionaryDataconfig{}).Where("module=? and title=? and org_id in (0,?) and status = 1", module, title, org_id).First(&dataconfig).Error
  112. return
  113. }
  114. func UpdateDictionaryTemplate(dataconfig *models.DictionaryDataconfig) (err error) {
  115. err = readDb.Model(&models.DictionaryDataconfig{}).Where("id =?", dataconfig.ID).Update(map[string]interface{}{"title": dataconfig.Title, "content": dataconfig.Content, "update_time": dataconfig.UpdatedTime, "remark": dataconfig.Remark}).Error
  116. return
  117. }
  118. func UpdateDictionaryChildConfig(dataconfig *models.DictionaryDataconfig) (err error) {
  119. err = readDb.Model(&models.DictionaryDataconfig{}).Where("id =?", dataconfig.ID).Update(map[string]interface{}{"name": dataconfig.Name, "update_time": dataconfig.UpdatedTime, "remark": dataconfig.Remark, "orders": dataconfig.Order}).Error
  120. return
  121. }
  122. func DeleteDictionaryChildConfig(dataconfig *models.DictionaryDataconfig) (err error) {
  123. err = readDb.Model(&models.DictionaryDataconfig{}).Where("id =?", dataconfig.ID).Update(map[string]interface{}{"status": dataconfig.Status, "update_time": dataconfig.UpdatedTime}).Error
  124. return
  125. }
  126. func CreateBaseDrugLib(lib *models.BaseDrugLib) (err error) {
  127. err = writeDb.Create(&lib).Error
  128. return
  129. }
  130. func UpdateBaseDrugLib(lib *models.BaseDrugLib) (err error) {
  131. err = writeDb.Save(lib).Error
  132. return
  133. }
  134. func FindBaseDrugLibRecordCount(lib *models.BaseDrugLib) (count int64) {
  135. readDb.Model(&models.BaseDrugLib{}).Where("org_id = ? AND drug_name = ? AND drug_category = ? AND drug_spec=? AND drug_type=? AND status = 1", lib.OrgId, lib.DrugName, lib.DrugCategory, lib.DrugSpec, lib.DrugType).Count(&count)
  136. return
  137. }
  138. func FindAllDrugLibRecordTotal(org_id int64) (count int64) {
  139. readDb.Model(&models.BaseDrugLib{}).Where("org_id = ? AND status = 1", org_id).Count(&count)
  140. return
  141. }
  142. func FindBaseDrugLibRecord(org_id int64, id int64) (lib models.BaseDrugLib, err error) {
  143. err = readDb.Model(&models.BaseDrugLib{}).Where("org_id = ? AND id = ? AND status = 1", org_id, id).First(&lib).Error
  144. return
  145. }
  146. func GetBaseDrugLibList(org_id int64, keyword string, page int64, limit int64, is_use int64, is_charge int64, is_inject int64) (list []*models.BaseDrugLib, total int64, err error) {
  147. db := readDb.Model(&models.BaseDrugLib{}).Where("org_id = ? AND status = 1", org_id)
  148. if len(keyword) != 0 {
  149. keyword = "%" + keyword + "%"
  150. db = db.Where("drug_name Like ?", keyword)
  151. }
  152. if is_use != 0 {
  153. if is_use == 1 {
  154. db = db.Where("find_in_set('停用',drug_status) = 0")
  155. } else {
  156. db = db.Where("find_in_set('停用',drug_status) > 0")
  157. }
  158. }
  159. if is_charge != 0 {
  160. //db = db.Where("drug_name Like ?", keyword)
  161. if is_charge == 1 {
  162. db = db.Where("find_in_set('收费',drug_status) > 0")
  163. } else {
  164. db = db.Where("find_in_set('收费',drug_status) = 0")
  165. }
  166. }
  167. if is_inject != 0 {
  168. //db = db.Where("drug_name Like ?", keyword)
  169. if is_inject == 1 {
  170. db = db.Where("find_in_set('注射类',drug_status) > 0")
  171. } else {
  172. db = db.Where("find_in_set('注射类',drug_status) = 0")
  173. }
  174. }
  175. offset := (page - 1) * limit
  176. err = db.Count(&total).Offset(offset).Limit(limit).Order("ctime desc").Find(&list).Error
  177. return
  178. }
  179. func CreateMedicineInsurancePercentage(mip *models.MedicineInsurancePercentage) (err error) {
  180. err = writeDb.Create(mip).Error
  181. return
  182. }
  183. func CreateUnitSafeguard(dus *models.DrugUnitSafeguard) (err error) {
  184. err = writeDb.Create(dus).Error
  185. return
  186. }