job.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package db
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/caixw/lib.go/conv"
  6. "youngee_m_api/model/gorm_model"
  7. "youngee_m_api/model/http_model"
  8. )
  9. func CreateJob(ctx context.Context, req *http_model.CreateJobRequest) (*http_model.CreateJobResponse, error) {
  10. db := GetReadDB(ctx)
  11. job := gorm_model.YounggeeJob{
  12. JobName: req.JobName,
  13. JobDetail: req.JobDetail,
  14. WorkshopPermission: req.WorkspacePermission,
  15. TaskcenterPermission: req.TaskcenterPermission,
  16. SectaskPermisson: req.SectaskPermission,
  17. FinancialPermission: req.FinancialPermission,
  18. UsercenterPermission: req.UsercenterPermission,
  19. OperatePermission: req.OperatePermission,
  20. AccountId: req.AccountID,
  21. }
  22. if err := db.Create(&job).Error; err != nil {
  23. return nil, err
  24. }
  25. // 返回更新后的结果
  26. res := &http_model.CreateJobResponse{
  27. JobName: job.JobName,
  28. JobID: job.JobId,
  29. }
  30. return res, nil
  31. }
  32. func UpdateJobInfo(ctx context.Context, req *http_model.UpdateJobInfoRequest) (*http_model.UpdateJobInfoResponse, error) {
  33. db := GetReadDB(ctx)
  34. JobInfo := gorm_model.YounggeeJob{}
  35. wherecondition := gorm_model.YounggeeJob{JobId: req.JobID}
  36. result := db.Where(&wherecondition).First(&JobInfo)
  37. if result.Error != nil {
  38. fmt.Println("result err:", result.Error)
  39. return nil, result.Error
  40. }
  41. updateData := gorm_model.YounggeeJob{
  42. JobName: req.JobName,
  43. JobDetail: req.JobDetail,
  44. WorkshopPermission: req.WorkspacePermission,
  45. TaskcenterPermission: req.TaskcenterPermission,
  46. SectaskPermisson: req.SectaskPermission,
  47. FinancialPermission: req.FinancialPermission,
  48. UsercenterPermission: req.UsercenterPermission,
  49. OperatePermission: req.OperatePermission,
  50. AccountId: req.AccountID,
  51. }
  52. updateResult := db.Model(&JobInfo).Where("job_id = ?", req.JobID).Updates(updateData)
  53. if updateResult.Error != nil {
  54. fmt.Println("result err:", updateResult.Error)
  55. return nil, updateResult.Error
  56. }
  57. res := &http_model.UpdateJobInfoResponse{
  58. JobID: JobInfo.JobId,
  59. JobName: JobInfo.JobName,
  60. }
  61. return res, nil
  62. }
  63. func DeleteJob(ctx context.Context, req *http_model.DeleteJobRequest) error {
  64. db := GetReadDB(ctx)
  65. job := gorm_model.YounggeeJob{
  66. JobId: req.JobId,
  67. }
  68. result := db.Where("job_id = ?", req.JobId).Delete(job)
  69. if result.Error != nil {
  70. return result.Error
  71. }
  72. return nil
  73. }
  74. func GetJobDetail(ctx context.Context, req *http_model.JobDetailRequest) (*http_model.JobData, error) {
  75. db := GetReadDB(ctx)
  76. // 获取分页参数
  77. page := req.PageNum
  78. pageSize := req.PageSize
  79. if page < 1 {
  80. page = 1
  81. }
  82. if pageSize < 1 {
  83. pageSize = 10 // 设置默认每页记录数为 10
  84. }
  85. // 构建查询条件
  86. query := db.Model(&gorm_model.YounggeeJob{})
  87. // 查询总数
  88. var total int64
  89. countQuery := query.Count(&total)
  90. if countQuery.Error != nil {
  91. return nil, countQuery.Error
  92. }
  93. // 计算偏移量
  94. offset := (page - 1) * pageSize
  95. jobInfo := []gorm_model.YounggeeJob{}
  96. result := query.Limit(pageSize).Offset(offset).Find(&jobInfo)
  97. if result.Error != nil {
  98. return nil, result.Error
  99. }
  100. var jobInfoPointers []*http_model.JobDetailResponse
  101. for i := range jobInfo {
  102. userInfo := gorm_model.YounggeeUser{}
  103. userResult := db.Where(gorm_model.YounggeeUser{ID: jobInfo[i].AccountId}).First(&userInfo)
  104. if userResult.Error != nil {
  105. return nil, userResult.Error
  106. }
  107. response := &http_model.JobDetailResponse{
  108. JobInfo: jobInfo[i],
  109. Creater: userInfo.Username,
  110. }
  111. jobInfoPointers = append(jobInfoPointers, response)
  112. }
  113. // 构造返回结果
  114. subaccountInfolist := &http_model.JobData{
  115. Job: jobInfoPointers,
  116. Total: conv.MustString(total, ""),
  117. }
  118. return subaccountInfolist, nil
  119. }