orginfo_service.go 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package service
  2. import (
  3. "XT_New/models"
  4. "github.com/jinzhu/gorm"
  5. "time"
  6. )
  7. func GetOrgTypes() (ots []*models.OrgType, err error) {
  8. err = readUserDb.Model(&models.OrgType{}).Where("status=1").Order("sort_no").Find(&ots).Error
  9. return
  10. }
  11. func UpdateOrgInfo(org *models.Org) (err error) {
  12. err = writeUserDb.Model(&models.Org{}).Where("id=?", org.Id).Update(org).Error
  13. return
  14. }
  15. func GetIllnessList() (ills []*models.Illness, err error) {
  16. err = readUserDb.Where("status=1").Find(&ills).Error
  17. return
  18. }
  19. func CreateOrgGalleryItem(item *models.OrgGallery) (err error) {
  20. err = writeUserDb.Create(item).Error
  21. return
  22. }
  23. func DeleteOrgGalleryItem(id int64) (err error) {
  24. err = writeUserDb.Model(&models.OrgGallery{}).Where("id=?", id).Update(map[string]interface{}{"Status": 0, "Mtime": time.Now().Unix()}).Error
  25. return
  26. }
  27. func CreateOrg(org *models.Org, mobile string, openXT bool, openCDM bool, openSCRM bool, openMall bool) error {
  28. now := time.Now()
  29. tx_admin := writeUserDb.Begin()
  30. if err := tx_admin.Create(org).Error; err != nil {
  31. tx_admin.Rollback()
  32. return err
  33. }
  34. role := models.Role{
  35. RoleName: "超级管理员",
  36. RoleIntro: "",
  37. Creator: org.Creator,
  38. OrgId: org.Id,
  39. AppId: 0,
  40. IsSuperAdmin: true,
  41. Status: 1,
  42. CreateTime: now.Unix(),
  43. ModifyTime: now.Unix(),
  44. }
  45. if err := tx_admin.Create(&role).Error; err != nil {
  46. tx_admin.Rollback()
  47. return err
  48. }
  49. // app 的创建顺序也决定了登录后前往 app 的优先级
  50. if err := createOrgApp(tx_admin, &role, mobile, 3, openXT); err != nil {
  51. tx_admin.Rollback()
  52. return err
  53. }
  54. nextMonthDate := now.AddDate(0, 0, 30)
  55. subscibe := models.ServeSubscibe{
  56. OrgId: int64(org.Id),
  57. PeriodStart: now.Unix(),
  58. PeriodEnd: nextMonthDate.Unix(),
  59. Status: 1,
  60. CreatedTime: now.Unix(),
  61. UpdatedTime: now.Unix(),
  62. State: 9,
  63. }
  64. if err := tx_admin.Create(&subscibe).Error; err != nil {
  65. tx_admin.Rollback()
  66. return err
  67. }
  68. tx_patient := writeDb.Begin()
  69. if err := tx_patient.Exec("INSERT INTO sgj_patient_articles_menu (name, status, type, user_org_id, ctime, mtime) VALUES(?, ?, ?, ?, ?, ?);", "科普教育", 1, 1, org.Id, now.Unix(), now.Unix()).Error; err != nil {
  70. tx_patient.Rollback()
  71. tx_admin.Rollback()
  72. return err
  73. }
  74. if err := tx_patient.Exec("INSERT INTO sgj_patient_good_category (user_org_id, category_name, status, created_time, updated_time) VALUES(?, ?, ?, ?, ?);", org.Id, "普通商品", 1, now.Unix(), now.Unix()).Error; err != nil {
  75. tx_patient.Rollback()
  76. tx_admin.Rollback()
  77. return err
  78. }
  79. if err := tx_admin.Exec("INSERT INTO sgj_user_membership_card (user_org_id, card_name, card_level, upgrade_integral, card_right, use_notice, background_type, background, service_phone, status, created_time, updated_time) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);", org.Id, "普通会员", 0, 0, "", "", 1, "#CACA41", "", 1, now.Unix(), now.Unix()).Error; err != nil {
  80. tx_admin.Rollback()
  81. tx_patient.Rollback()
  82. return err
  83. }
  84. tx_admin.Commit()
  85. tx_patient.Commit()
  86. return nil
  87. }
  88. func createOrgApp(tx *gorm.DB, superAdminRole *models.Role, userName string, appType int, open bool) error {
  89. openStatus := 0
  90. if open {
  91. openStatus = 1
  92. }
  93. now := time.Now().Unix()
  94. app := models.OrgApp{
  95. Creator: int(superAdminRole.Creator),
  96. OrgId: int(superAdminRole.OrgId),
  97. AppType: appType,
  98. OpenStatus: openStatus,
  99. Status: 1,
  100. CreateTime: now,
  101. ModifyTime: now,
  102. }
  103. if createAppErr := tx.Create(&app).Error; createAppErr != nil {
  104. return createAppErr
  105. }
  106. app_role := models.App_Role{
  107. AdminUserId: superAdminRole.Creator,
  108. OrgId: superAdminRole.OrgId,
  109. AppId: app.Id,
  110. RoleId: superAdminRole.Id,
  111. Avatar: "",
  112. UserName: userName,
  113. Intro: "",
  114. UserType: 1,
  115. UserTitle: 1,
  116. Status: 1,
  117. CreateTime: now,
  118. ModifyTime: now,
  119. }
  120. if createApp_RoleErr := tx.Create(&app_role).Error; createApp_RoleErr != nil {
  121. return createApp_RoleErr
  122. }
  123. return nil
  124. }
  125. func GetOrgTypeByName(org_type_name string) (org_type models.OrgType) {
  126. readUserDb.Model(&models.OrgType{}).Where("status = 1 AND name = ?", org_type_name).First(&org_type)
  127. return
  128. }