tm_responsiblePerson.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. package typeManage
  2. import (
  3. "errors"
  4. "fmt"
  5. "gorm.io/gorm"
  6. "log-server/global"
  7. "log-server/model/common/request"
  8. "log-server/model/typeManage"
  9. typeReq "log-server/model/typeManage/request"
  10. "math/rand"
  11. )
  12. func RandomString(n int) string {
  13. var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
  14. b := make([]rune, n)
  15. for i := range b {
  16. b[i] = letterRunes[rand.Intn(len(letterRunes))]
  17. }
  18. return string(b)
  19. }
  20. type ResponsiblePersonService struct {
  21. }
  22. // 创建负责人
  23. func (r *ResponsiblePersonService) CreateResponsiblePerson(person typeManage.ResponsiblePerson) (err error) {
  24. //先查找是否存在同名员工
  25. err = global.GVA_DB.Table("responsible_person").Where("name = ? and mobile_phone_number = ?", person.Name, person.MobilePhoneNumber).First(&typeManage.ResponsiblePerson{}).Error
  26. if !errors.Is(err, gorm.ErrRecordNotFound) {
  27. return errors.New("已存在同名员工,请勿重复添加")
  28. }
  29. //不存在同名员工
  30. //根据image是否为空来判断是否需要图片处理
  31. //fmt.Println(person.Img)
  32. //if person.Img != "" {
  33. // var (
  34. // enc = base64.StdEncoding
  35. // path string
  36. // )
  37. // img := person.Img
  38. // timestamp:=strconv.Itoa(int(time.Now().UnixNano()))
  39. // randomStr := (RandomString(5))
  40. // imgId := timestamp+"_"+randomStr
  41. //
  42. // if img[11] == 'j' {
  43. // img = img[23:]
  44. // path = fmt.Sprintf("/img/%s.jpg", imgId)
  45. // } else if img[11] == 'p' {
  46. // img = img[22:]
  47. // path = fmt.Sprintf("/img/%s.png", imgId)
  48. // } else if img[11] == 'g' {
  49. // img = img[22:]
  50. // path = fmt.Sprintf("/img/%s.gif", imgId)
  51. // } else {
  52. // fmt.Println("不支持该文件类型")
  53. // }
  54. //
  55. // data, err := enc.DecodeString(img)
  56. // if err != nil {
  57. // log.Println(err.Error())
  58. // }
  59. // // 图片写入文件
  60. // f, _ := os.OpenFile(path, os.O_RDWR|os.O_CREATE, os.ModePerm)
  61. // defer f.Close()
  62. // if _, err := f.Write(data); err != nil {
  63. // log.Println(err)
  64. // }
  65. // //记录图片保存的地址
  66. // path = "https://qmplusimg.henrongyi.top" + path
  67. // person.Img = path
  68. //
  69. //}
  70. //数据库插入
  71. return global.GVA_DB.Table("responsible_person").Omit("create_time", "update_time").Create(&person).Error
  72. }
  73. // 删除负责人
  74. func (r *ResponsiblePersonService) DeleteResponsiblePerson(person typeManage.ResponsiblePerson) (err error) {
  75. var entity typeManage.ResponsiblePerson
  76. err = global.GVA_DB.Table("responsible_person").Where("id = ?", person.Id).First(&entity).Error
  77. if errors.Is(err, gorm.ErrRecordNotFound) {
  78. return errors.New("未找到记录,删除失败")
  79. }
  80. return global.GVA_DB.Table("responsible_person").Delete(&entity).Error
  81. }
  82. // 批量删除
  83. func (r *ResponsiblePersonService) DeleteResponsiblePersonsByIds(ids request.IdsReq) (err error) {
  84. err = global.GVA_DB.Table("responsible_person").Delete(&[]typeManage.ResponsiblePerson{}, "id in ?", ids.Ids).Error
  85. return err
  86. }
  87. // 更改记录
  88. func (r *ResponsiblePersonService) UpdateResponsiblePerson(person typeManage.ResponsiblePerson) (err error) {
  89. err = global.GVA_DB.Table("responsible_person").Where("id != ? and name = ?", person.Id, person.Name).First(&typeManage.ResponsiblePerson{}).Error
  90. if !errors.Is(err, gorm.ErrRecordNotFound) {
  91. return errors.New("已存在相同名字,无法更改")
  92. }
  93. return global.GVA_DB.Table("responsible_person").Omit("create_time, update_time").Save(&person).Error
  94. }
  95. // 通过id查询负责人
  96. func (r *ResponsiblePersonService) GetResponsiblePersonById(id int) (person typeManage.ResponsiblePerson, err error) {
  97. err = global.GVA_DB.Table("responsible_person").Where("id = ?", id).First(&person).Error
  98. return
  99. }
  100. // 条件查询负责人
  101. func (r *ResponsiblePersonService) GetResponsiblePerson(person typeManage.ResponsiblePerson, info request.PageInfo, order string, desc bool) (list interface{}, total int64, err error) {
  102. //获取分页数据
  103. limit := info.PageSize
  104. offset := (info.Page - 1) * info.PageSize
  105. //绑定操作结构体
  106. db := global.GVA_DB.Table("responsible_person").Model(&typeManage.ResponsiblePerson{})
  107. var personList []typeManage.ResponsiblePerson
  108. //条件查询
  109. if person.Name != "" {
  110. db.Where("name like ?", "%"+person.Name+"%")
  111. }
  112. //先过滤在排序
  113. if err = db.Count(&total).Error; err != nil {
  114. return personList, total, err
  115. } else {
  116. //分页
  117. db.Limit(limit).Offset(offset)
  118. //判断是否有排序字段
  119. if order != "" {
  120. var orderStr string
  121. orderMap := make(map[string]bool, 1)
  122. orderMap["create_time"] = true
  123. if orderMap[order] {
  124. //合法排序字符
  125. if desc {
  126. orderStr = order + " desc"
  127. } else {
  128. orderStr = order
  129. }
  130. } else {
  131. //传入排序字段非法
  132. err = fmt.Errorf("传入非法字段 %v", order)
  133. return personList, total, err
  134. }
  135. err = db.Order(orderStr).Find(&personList).Error
  136. } else {
  137. //默认按照名字升序排序
  138. err = db.Order("name").Find(&personList).Error
  139. }
  140. }
  141. return personList, total, err
  142. }
  143. // GetResponsiblePersonAll 条件查询负责人
  144. func (r *ResponsiblePersonService) GetResponsiblePersonAll() (list interface{}, err error) {
  145. var personList []typeManage.ResponsiblePerson
  146. db := global.GVA_DB.Table("responsible_person").Model(&typeManage.ResponsiblePerson{})
  147. db.Where("state = 1")
  148. err = db.Order("name").Find(&personList).Error
  149. return personList, err
  150. }
  151. func (r *ResponsiblePersonService) SelectResponsiblePersonList() (list interface{}, err error) {
  152. //绑定操作结构体
  153. db := global.GVA_DB.Table("responsible_person").Model(&typeManage.ResponsiblePerson{})
  154. db = db.Where("state = ?", 1)
  155. var personList []typeManage.ResponsiblePerson
  156. //条件查询
  157. err = db.Find(&personList).Error
  158. return personList, err
  159. }
  160. //更改负责人启用状态
  161. func (r *ResponsiblePersonService) UpdateResponsibleStatus(c typeReq.UpdateResponsibleStatusRequest) (err error) {
  162. err = global.GVA_DB.Table("responsible_person").Where("id = ?", c.Id).Error
  163. if errors.Is(err, gorm.ErrRecordNotFound) {
  164. return errors.New("请传入正确的Id")
  165. }
  166. err = global.GVA_DB.Table("responsible_person").Where("id = ?", c.Id).Update("state", c.State).Error
  167. return err
  168. }
  169. //更改负责人推送状态
  170. func (r *ResponsiblePersonService) UpdatePushStatus(c typeReq.UpdatePushStatusRequest) (err error) {
  171. err = global.GVA_DB.Table("responsible_person").Where("id = ?", c.Id).Error
  172. if errors.Is(err, gorm.ErrRecordNotFound) {
  173. return errors.New("请传入正确的Id")
  174. }
  175. err = global.GVA_DB.Table("responsible_person").Where("id = ?", c.Id).Update("push_status", c.PushStatus).Error
  176. return err
  177. }