fileService.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package service
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "iot_manager_service/app/file/dao"
  5. "iot_manager_service/app/file/model"
  6. userdao "iot_manager_service/app/user/dao"
  7. "iot_manager_service/util/common"
  8. "iot_manager_service/util/websocket"
  9. "path"
  10. "strconv"
  11. "time"
  12. )
  13. // 用户管理服务
  14. var FileService = new(fileService)
  15. type fileService struct{}
  16. func (f *fileService) Distribute(encryptedname, savepath string, requserfile *model.ReqUserFile, uid int) *common.Errors {
  17. file := &dao.File{
  18. OriginalName: requserfile.OriginalName,
  19. EncryptedName: encryptedname,
  20. SavePath: savepath,
  21. CategoryName: requserfile.CategoryName,
  22. AuthId: requserfile.AuthId,
  23. SuffixName: path.Ext(requserfile.OriginalName),
  24. UploadTime: time.Now(),
  25. Uploader: uid,
  26. }
  27. err := file.Create()
  28. if err != nil {
  29. return common.FailResponse("保存文件失败", nil)
  30. }
  31. //查询部门下对应的员工
  32. user := &userdao.User{}
  33. users, err := user.GetDeptsUsers(requserfile.DeptsId)
  34. if err != nil {
  35. return common.FailResponse(err.Error(), nil)
  36. }
  37. var userfile []dao.UserFile
  38. for _, u := range users {
  39. userfile = append(userfile, dao.UserFile{
  40. Operator: uid,
  41. Receiver: u.ID,
  42. FileID: file.ID,
  43. EffectiveDate: requserfile.EffectiveDate,
  44. OperationStatus: "上传",
  45. })
  46. }
  47. userfiledao := &dao.UserFile{}
  48. err = userfiledao.BatchUFRecords(userfile)
  49. if err != nil {
  50. return common.FailResponse(err.Error(), nil)
  51. }
  52. //下发消息
  53. for _, u := range users {
  54. websocket.SendMessage(strconv.Itoa(u.ID), "您有新的文件,请注意查收!")
  55. }
  56. return common.SuccessResponse("新增记录成功", nil)
  57. }
  58. func (f *fileService) GetUserFiles(id string) *common.Errors {
  59. filedao := &dao.File{}
  60. uid, _ := strconv.Atoi(id)
  61. files, err := filedao.GetUserFiles(uid)
  62. if err != nil {
  63. return common.FailResponse(err.Error(), nil)
  64. }
  65. return common.SuccessResponse("查询成功", gin.H{"files": files})
  66. }