Merge branch 'test' of http://gitlab.fjmaimaimai.com/allied-creation/performance into test
正在显示
17 个修改的文件
包含
708 行增加
和
43 行删除
@@ -263,3 +263,11 @@ func CreateTaskAnomalyRepository(options map[string]interface{}) domain.TaskAnom | @@ -263,3 +263,11 @@ func CreateTaskAnomalyRepository(options map[string]interface{}) domain.TaskAnom | ||
263 | } | 263 | } |
264 | return repository.NewTaskAnomalyRepository(transactionContext) | 264 | return repository.NewTaskAnomalyRepository(transactionContext) |
265 | } | 265 | } |
266 | + | ||
267 | +func CreateLogOptRepository(options map[string]interface{}) domain.LogOptRepository { | ||
268 | + var transactionContext *pg.TransactionContext | ||
269 | + if value, ok := options["transactionContext"]; ok { | ||
270 | + transactionContext = value.(*pg.TransactionContext) | ||
271 | + } | ||
272 | + return repository.NewLogOptRepository(transactionContext) | ||
273 | +} |
1 | +package command | ||
2 | + | ||
3 | +import "github.com/beego/beego/v2/core/validation" | ||
4 | + | ||
5 | +type QueryLogCommand struct { | ||
6 | + CompanyId int64 `cname:"公司ID" json:"-"` | ||
7 | + TaskId int `cname:"任务ID" json:"taskId,string" valid:"Required"` | ||
8 | + PageNumber int64 `cname:"分页页码" json:"pageNumber" valid:"Required"` | ||
9 | + PageSize int64 `cname:"分页数量" json:"pageSize" valid:"Required"` | ||
10 | +} | ||
11 | + | ||
12 | +func (in *QueryLogCommand) Valid(*validation.Validation) { | ||
13 | + | ||
14 | +} |
pkg/application/log_opt/log_opt.go
0 → 100644
1 | +package log_opt | ||
2 | + | ||
3 | +import ( | ||
4 | + "fmt" | ||
5 | + "github.com/linmadan/egglib-go/core/application" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | ||
8 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/log" | ||
9 | + "strconv" | ||
10 | + "time" | ||
11 | +) | ||
12 | + | ||
13 | +func CreateTask(u *domain.UserAuth, task domain.Task) error { | ||
14 | + transactionContext, err := factory.StartTransaction() | ||
15 | + if err != nil { | ||
16 | + return err | ||
17 | + } | ||
18 | + defer func() { | ||
19 | + _ = transactionContext.RollbackTransaction() | ||
20 | + if err := recover(); err != nil { | ||
21 | + log.Logger.Error(application.ThrowError(application.BUSINESS_ERROR, fmt.Sprintf("创建任务日志异常:%s", err)).Error()) | ||
22 | + } | ||
23 | + }() | ||
24 | + logOptRepo := factory.CreateLogOptRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
25 | + | ||
26 | + logOpt := createdLogOpt(u, strconv.Itoa(task.Id)) | ||
27 | + logOpt.OptMethod = domain.CREATE | ||
28 | + logOpt.OptField = "创建了任务" | ||
29 | + logOpt.OptValue = task.Alias | ||
30 | + | ||
31 | + _, err = logOptRepo.Insert(logOpt) | ||
32 | + if err != nil { | ||
33 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
34 | + } | ||
35 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
36 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
37 | + } | ||
38 | + return nil | ||
39 | +} | ||
40 | + | ||
41 | +func UpdateTask(u *domain.UserAuth, | ||
42 | + srcTask *domain.Task, | ||
43 | + newTask *domain.Task, | ||
44 | + srcStage []*domain.TaskStage, | ||
45 | + newStage []*domain.TaskStage, | ||
46 | +) error { | ||
47 | + transactionContext, err := factory.StartTransaction() | ||
48 | + if err != nil { | ||
49 | + return err | ||
50 | + } | ||
51 | + defer func() { | ||
52 | + _ = transactionContext.RollbackTransaction() | ||
53 | + if err := recover(); err != nil { | ||
54 | + log.Logger.Error(application.ThrowError(application.BUSINESS_ERROR, fmt.Sprintf("更新任务日志异常:%s", err)).Error()) | ||
55 | + } | ||
56 | + }() | ||
57 | + logOptRepo := factory.CreateLogOptRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
58 | + | ||
59 | + var logArray = compareTask(u, srcTask, newTask) | ||
60 | + var logArray2 = compareStage(u, newTask.Id, srcStage, newStage) | ||
61 | + logArray = append(logArray, logArray2...) | ||
62 | + if len(logArray) == 0 { | ||
63 | + return nil | ||
64 | + } | ||
65 | + for _, v := range logArray { | ||
66 | + _, err = logOptRepo.Insert(v) | ||
67 | + if err != nil { | ||
68 | + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
69 | + } | ||
70 | + } | ||
71 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
72 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
73 | + } | ||
74 | + return nil | ||
75 | +} | ||
76 | + | ||
77 | +func compareTask(u *domain.UserAuth, srcTask *domain.Task, newTask *domain.Task) []*domain.LogOpt { | ||
78 | + var taskId = strconv.Itoa(newTask.Id) | ||
79 | + logArray := make([]*domain.LogOpt, 0) | ||
80 | + if srcTask.Alias != newTask.Alias { | ||
81 | + logOpt := createdLogOpt(u, taskId) | ||
82 | + logOpt.OptField = "修改了任务名称" | ||
83 | + logOpt.OptValue = newTask.Alias | ||
84 | + logArray = append(logArray, logOpt) | ||
85 | + } | ||
86 | + | ||
87 | + if srcTask.EndTime != newTask.EndTime { | ||
88 | + logOpt := createdLogOpt(u, taskId) | ||
89 | + logOpt.OptField = "修改了任务截止时间" | ||
90 | + if newTask.EndTime == 0 { | ||
91 | + logOpt.OptValue = "未设置时间" | ||
92 | + } else { | ||
93 | + logOpt.OptValue = time.Unix(newTask.EndTime, 0).Local().Format("2006-01-02 15:04:05") | ||
94 | + } | ||
95 | + logArray = append(logArray, logOpt) | ||
96 | + } | ||
97 | + | ||
98 | + if srcTask.UseEndTime != newTask.UseEndTime { | ||
99 | + logOpt := createdLogOpt(u, taskId) | ||
100 | + logOpt.OptField = "修改了任务截止时间应用到日评中" | ||
101 | + if newTask.UseEndTime == 0 { | ||
102 | + logOpt.OptValue = "不应用" | ||
103 | + } else { | ||
104 | + logOpt.OptValue = "应用" | ||
105 | + } | ||
106 | + logArray = append(logArray, logOpt) | ||
107 | + } | ||
108 | + | ||
109 | + if srcTask.LevelName != newTask.LevelName { | ||
110 | + logOpt := createdLogOpt(u, taskId) | ||
111 | + logOpt.OptField = "修改了任务类型" | ||
112 | + logOpt.OptValue = newTask.LevelName | ||
113 | + logArray = append(logArray, logOpt) | ||
114 | + } | ||
115 | + | ||
116 | + if srcTask.SortBy != newTask.SortBy { | ||
117 | + logOpt := createdLogOpt(u, taskId) | ||
118 | + logOpt.OptField = "修改了任务优先级" | ||
119 | + logOpt.OptValue = newTask.SortBy.Named() | ||
120 | + logArray = append(logArray, logOpt) | ||
121 | + } | ||
122 | + | ||
123 | + if srcTask.AssistFlagMax != newTask.AssistFlagMax { | ||
124 | + logOpt := createdLogOpt(u, taskId) | ||
125 | + logOpt.OptField = "修改了上级辅导时间" | ||
126 | + logOpt.OptValue = strconv.Itoa(newTask.AssistFlagMax) | ||
127 | + logArray = append(logArray, logOpt) | ||
128 | + } | ||
129 | + | ||
130 | + // 新的任务相关方 | ||
131 | + uidNewMap := map[int]int{} | ||
132 | + for _, id := range newTask.RelatedUser { | ||
133 | + uidNewMap[id] = id | ||
134 | + } | ||
135 | + // 被移除的任务相关方 | ||
136 | + removedIds := make([]int, 0) | ||
137 | + for _, id := range srcTask.RelatedUser { | ||
138 | + if _, ok := uidNewMap[id]; ok { | ||
139 | + delete(uidNewMap, id) // 删除后,剩余的都是新增的 | ||
140 | + } else { | ||
141 | + removedIds = append(removedIds, id) | ||
142 | + } | ||
143 | + } | ||
144 | + | ||
145 | + // 变动的任务相关方 | ||
146 | + changeIds := make([]int, 0) | ||
147 | + for _, v := range removedIds { | ||
148 | + changeIds = append(changeIds, v) | ||
149 | + } | ||
150 | + for _, v := range uidNewMap { | ||
151 | + changeIds = append(changeIds, v) | ||
152 | + } | ||
153 | + userMap, _ := getUserMap(changeIds) | ||
154 | + | ||
155 | + for _, v := range removedIds { | ||
156 | + logOpt := createdLogOpt(u, taskId) | ||
157 | + logOpt.OptMethod = domain.DELETE | ||
158 | + logOpt.OptField = "移除了任务相关方" | ||
159 | + if v, ok := userMap[v]; ok { | ||
160 | + logOpt.OptValue = v.Name | ||
161 | + } | ||
162 | + logArray = append(logArray, logOpt) | ||
163 | + } | ||
164 | + | ||
165 | + for _, v := range uidNewMap { | ||
166 | + logOpt := createdLogOpt(u, taskId) | ||
167 | + logOpt.OptMethod = domain.CREATE | ||
168 | + logOpt.OptField = "添加了任务相关方" | ||
169 | + if v, ok := userMap[v]; ok { | ||
170 | + logOpt.OptValue = v.Name | ||
171 | + } | ||
172 | + logArray = append(logArray, logOpt) | ||
173 | + } | ||
174 | + | ||
175 | + return logArray | ||
176 | +} | ||
177 | + | ||
178 | +func compareStage(u *domain.UserAuth, id int, srcStage []*domain.TaskStage, newStage []*domain.TaskStage) []*domain.LogOpt { | ||
179 | + taskId := strconv.Itoa(id) | ||
180 | + logArray := make([]*domain.LogOpt, 0) | ||
181 | + srcMap := map[int]*domain.TaskStage{} | ||
182 | + for i := range srcStage { | ||
183 | + it := srcStage[i] | ||
184 | + srcMap[it.Id] = it | ||
185 | + } | ||
186 | + | ||
187 | + for i := range newStage { | ||
188 | + it := newStage[i] | ||
189 | + if it.DeletedAt != nil { | ||
190 | + logOpt := createdLogOpt(u, taskId) | ||
191 | + logOpt.OptMethod = domain.DELETE | ||
192 | + logOpt.OptField = "删除了里程碑" | ||
193 | + logOpt.OptValue = it.Name | ||
194 | + logArray = append(logArray, logOpt) | ||
195 | + continue | ||
196 | + } | ||
197 | + | ||
198 | + // 新旧比对 | ||
199 | + if v, ok := srcMap[it.Id]; ok { | ||
200 | + if it.Name != v.Name { | ||
201 | + logOpt := createdLogOpt(u, taskId) | ||
202 | + logOpt.OptField = "修改了里程碑名称" | ||
203 | + logOpt.OptValue = it.Name | ||
204 | + logArray = append(logArray, logOpt) | ||
205 | + } | ||
206 | + if it.PlanCompletedAt != v.PlanCompletedAt { | ||
207 | + logOpt := createdLogOpt(u, taskId) | ||
208 | + logOpt.OptField = "修改了里程碑" + it.Name + "计划完成时间" | ||
209 | + if it.PlanCompletedAt == 0 { | ||
210 | + logOpt.OptValue = "未设置时间" | ||
211 | + } else { | ||
212 | + logOpt.OptValue = time.Unix(it.PlanCompletedAt, 0).Local().Format("2006-01-02 15:04:05") | ||
213 | + } | ||
214 | + logArray = append(logArray, logOpt) | ||
215 | + } | ||
216 | + } else { | ||
217 | + logOpt := createdLogOpt(u, taskId) | ||
218 | + logOpt.OptMethod = domain.CREATE | ||
219 | + logOpt.OptField = "创建了里程碑" | ||
220 | + logOpt.OptValue = it.Name | ||
221 | + logArray = append(logArray, logOpt) | ||
222 | + } | ||
223 | + } | ||
224 | + | ||
225 | + return logArray | ||
226 | +} | ||
227 | + | ||
228 | +func getUserMap(ids []int) (map[int]*domain.User, error) { | ||
229 | + userMap := map[int]*domain.User{} | ||
230 | + if len(ids) == 0 { | ||
231 | + return userMap, nil | ||
232 | + } | ||
233 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
234 | + if err != nil { | ||
235 | + return userMap, err | ||
236 | + } | ||
237 | + userRepo := factory.CreateUserRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
238 | + _, users, err := userRepo.Find(map[string]interface{}{"ids": ids, "limit": len(ids)}) | ||
239 | + if err != nil { | ||
240 | + return userMap, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
241 | + } | ||
242 | + for i := range users { | ||
243 | + user := users[i] | ||
244 | + userMap[int(user.Id)] = user | ||
245 | + } | ||
246 | + return userMap, nil | ||
247 | +} | ||
248 | + | ||
249 | +func createdLogOpt(u *domain.UserAuth, taskId string) *domain.LogOpt { | ||
250 | + var createdAt = time.Now() | ||
251 | + var updatedAt = createdAt | ||
252 | + operator := domain.StaffDesc{ | ||
253 | + UserId: int(u.UserId), | ||
254 | + CompanyName: u.CompanyName, | ||
255 | + Account: u.Phone, | ||
256 | + UserName: u.Name, | ||
257 | + } | ||
258 | + return &domain.LogOpt{ | ||
259 | + Id: 0, | ||
260 | + CompanyId: int(u.CompanyId), | ||
261 | + Operator: operator, | ||
262 | + OptMethod: domain.UPDATE, | ||
263 | + OptTargetId: taskId, | ||
264 | + OptField: "", | ||
265 | + OptValue: "", | ||
266 | + CreatedAt: createdAt, | ||
267 | + UpdatedAt: updatedAt, | ||
268 | + } | ||
269 | +} |
pkg/application/log_opt/log_opt_service.go
0 → 100644
1 | +package log_opt | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/linmadan/egglib-go/core/application" | ||
5 | + "github.com/linmadan/egglib-go/utils/tool_funs" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/factory" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/log_opt/command" | ||
8 | +) | ||
9 | + | ||
10 | +type LogOptService struct { | ||
11 | +} | ||
12 | + | ||
13 | +func NewLogOptService() *LogOptService { | ||
14 | + newRoleService := &LogOptService{} | ||
15 | + return newRoleService | ||
16 | +} | ||
17 | + | ||
18 | +func (rs *LogOptService) List(in *command.QueryLogCommand) (interface{}, error) { | ||
19 | + transactionContext, err := factory.ValidateStartTransaction(in) | ||
20 | + if err != nil { | ||
21 | + return nil, err | ||
22 | + } | ||
23 | + defer func() { | ||
24 | + transactionContext.RollbackTransaction() | ||
25 | + }() | ||
26 | + | ||
27 | + ssMap := tool_funs.SimpleStructToMap(in) | ||
28 | + ssMap["companyId"] = in.CompanyId | ||
29 | + ssMap["optTargetId"] = in.TaskId | ||
30 | + | ||
31 | + logRepository := factory.CreateLogOptRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
32 | + total, logList, err := logRepository.Find(ssMap) | ||
33 | + if err != nil { | ||
34 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
35 | + } | ||
36 | + | ||
37 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
38 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
39 | + } | ||
40 | + | ||
41 | + return tool_funs.SimpleWrapGridMap(total, logList), nil | ||
42 | +} |
@@ -22,9 +22,12 @@ type AssessInfoResp struct { | @@ -22,9 +22,12 @@ type AssessInfoResp struct { | ||
22 | SupperUser string `json:"superUser"` //目标用户的上级 | 22 | SupperUser string `json:"superUser"` //目标用户的上级 |
23 | DutyTime string `json:"dutyTime"` //入职时间 | 23 | DutyTime string `json:"dutyTime"` //入职时间 |
24 | AssessContent []*domain.StaffAssessContent `json:"assessContent"` //评估内容 | 24 | AssessContent []*domain.StaffAssessContent `json:"assessContent"` //评估内容 |
25 | - //CategoryTaskRecords []*domain.TaskRecord `json:"categoryTaskRecords"` //类别任务反馈记录 | ||
26 | - //AssessTaskRecords []*domain.TaskRecord `json:"assessTaskRecords"` //评估任务反馈记录 | ||
27 | - TaskRecords []*domain.TaskRecord `json:"taskRecords"` //里程碑内容 | 25 | + TaskRecords []*TaskRecordAdapter `json:"taskRecords"` //里程碑内容 |
26 | +} | ||
27 | + | ||
28 | +type TaskRecordAdapter struct { | ||
29 | + *domain.TaskRecord | ||
30 | + EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 | ||
28 | } | 31 | } |
29 | 32 | ||
30 | // 周期内的每日自评小结 | 33 | // 周期内的每日自评小结 |
@@ -909,25 +909,42 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada | @@ -909,25 +909,42 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada | ||
909 | srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList) | 909 | srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList) |
910 | } | 910 | } |
911 | 911 | ||
912 | - taskRecords := make([]*domain.TaskRecord, 0) // 类别任务反馈记录 | ||
913 | - //categoryTaskRecords := make([]*domain.TaskRecord, 0) // 类别任务反馈记录 | ||
914 | - //assessTaskRecords := make([]*domain.TaskRecord, 0) // 评估项任务反馈记录 | 912 | + taskRecordAdapter := make([]*adapter.TaskRecordAdapter, 0) // 类别任务反馈记录 |
915 | // 如果评估类型为自评、目标是登录用户时,获取所有任务记录数据 | 913 | // 如果评估类型为自评、目标是登录用户时,获取所有任务记录数据 |
916 | if assessData.Types == domain.AssessSelf || param.UserId == assessData.TargetUser.UserId { | 914 | if assessData.Types == domain.AssessSelf || param.UserId == assessData.TargetUser.UserId { |
917 | taskRecordRepository := factory.CreateTaskRecordRepository(map[string]interface{}{"transactionContext": transactionContext}) | 915 | taskRecordRepository := factory.CreateTaskRecordRepository(map[string]interface{}{"transactionContext": transactionContext}) |
918 | - _, taskRecords, err = taskRecordRepository.Find(map[string]interface{}{"staffAssessId": assessData.Id}) | 916 | + _, taskRecords, err := taskRecordRepository.Find(map[string]interface{}{"staffAssessId": assessData.Id}) |
919 | if err != nil { | 917 | if err != nil { |
920 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error()) | 918 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error()) |
921 | } | 919 | } |
922 | - //// 区分任务来源分类 | ||
923 | - //for i := range taskRecords { | ||
924 | - // it := taskRecords[i] | ||
925 | - // if it.TaskCreatedBy == 0 { | ||
926 | - // categoryTaskRecords = append(categoryTaskRecords, it) | ||
927 | - // } else { | ||
928 | - // assessTaskRecords = append(assessTaskRecords, it) | ||
929 | - // } | ||
930 | - //} | 920 | + |
921 | + taskIdMap := map[int]int{} | ||
922 | + taskIdArray := make([]int, 0) | ||
923 | + for _, v := range taskRecords { | ||
924 | + taskIdMap[v.TaskId] = v.TaskId | ||
925 | + } | ||
926 | + for _, v := range taskIdMap { | ||
927 | + taskIdArray = append(taskIdArray, v) | ||
928 | + } | ||
929 | + taskMap := map[int]*domain.Task{} | ||
930 | + taskRepository := factory.CreateTaskRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
931 | + _, tasks, err := taskRepository.Find(map[string]interface{}{"ids": taskIdArray, "limit": len(taskIdArray)}) | ||
932 | + if err != nil { | ||
933 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error()) | ||
934 | + } | ||
935 | + for i := range tasks { | ||
936 | + taskMap[tasks[i].Id] = tasks[i] | ||
937 | + } | ||
938 | + | ||
939 | + for i := range taskRecords { | ||
940 | + it := taskRecords[i] | ||
941 | + a := &adapter.TaskRecordAdapter{} | ||
942 | + a.TaskRecord = it | ||
943 | + if v, ok := taskMap[it.TaskId]; ok { | ||
944 | + a.EndTime = v.EndTime | ||
945 | + } | ||
946 | + taskRecordAdapter = append(taskRecordAdapter, a) | ||
947 | + } | ||
931 | } | 948 | } |
932 | 949 | ||
933 | if err := transactionContext.CommitTransaction(); err != nil { | 950 | if err := transactionContext.CommitTransaction(); err != nil { |
@@ -952,9 +969,7 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada | @@ -952,9 +969,7 @@ func (srv StaffAssessServeice) GetAssessInfo(param *query.AssessInfoQuery) (*ada | ||
952 | SupperUser: "", | 969 | SupperUser: "", |
953 | DutyTime: "", | 970 | DutyTime: "", |
954 | AssessContent: assessContentList, | 971 | AssessContent: assessContentList, |
955 | - //CategoryTaskRecords: categoryTaskRecords, | ||
956 | - //AssessTaskRecords: assessTaskRecords, | ||
957 | - TaskRecords: taskRecords, | 972 | + TaskRecords: taskRecordAdapter, |
958 | } | 973 | } |
959 | if len(assessContentList) == 0 { | 974 | if len(assessContentList) == 0 { |
960 | result.AssessContent = []*domain.StaffAssessContent{} | 975 | result.AssessContent = []*domain.StaffAssessContent{} |
@@ -763,13 +763,11 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | @@ -763,13 +763,11 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | ||
763 | cache = srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList) | 763 | cache = srv.recoverAssessCache(transactionContext, assessData.Id, assessContentList) |
764 | } | 764 | } |
765 | 765 | ||
766 | - taskRecords := make([]*domain.TaskRecord, 0) // 类别任务反馈记录 | ||
767 | - //categoryTaskRecords := make([]*domain.TaskRecord, 0) // 类别任务反馈记录 | ||
768 | - //assessTaskRecords := make([]*domain.TaskRecord, 0) // 评估项任务反馈记录 | 766 | + taskRecordAdapter := make([]*adapter.TaskRecordAdapter, 0) // 类别任务反馈记录 |
769 | // 如果评估类型为自评、目标是登录用户时,获取所有任务记录数据 | 767 | // 如果评估类型为自评、目标是登录用户时,获取所有任务记录数据 |
770 | if param.UserId == param.TargetUserId { | 768 | if param.UserId == param.TargetUserId { |
771 | taskRecordRepository := factory.CreateTaskRecordRepository(map[string]interface{}{"transactionContext": transactionContext}) | 769 | taskRecordRepository := factory.CreateTaskRecordRepository(map[string]interface{}{"transactionContext": transactionContext}) |
772 | - _, taskRecords, err = taskRecordRepository.Find(map[string]interface{}{"staffAssessId": assessData.Id}) | 770 | + _, taskRecords, err := taskRecordRepository.Find(map[string]interface{}{"staffAssessId": assessData.Id}) |
773 | if err != nil { | 771 | if err != nil { |
774 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error()) | 772 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error()) |
775 | } | 773 | } |
@@ -777,15 +775,35 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | @@ -777,15 +775,35 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | ||
777 | if param.AcquireCache != 0 { | 775 | if param.AcquireCache != 0 { |
778 | srv.recoverCacheWithTaskRecord(cache, taskRecords) | 776 | srv.recoverCacheWithTaskRecord(cache, taskRecords) |
779 | } | 777 | } |
780 | - //// 区分任务来源分类 | ||
781 | - //for i := range taskRecords { | ||
782 | - // it := taskRecords[i] | ||
783 | - // if it.TaskCreatedBy == 0 { | ||
784 | - // categoryTaskRecords = append(categoryTaskRecords, it) | ||
785 | - // } else { | ||
786 | - // assessTaskRecords = append(assessTaskRecords, it) | ||
787 | - // } | ||
788 | - //} | 778 | + |
779 | + taskIdMap := map[int]int{} | ||
780 | + taskIdArray := make([]int, 0) | ||
781 | + for _, v := range taskRecords { | ||
782 | + taskIdMap[v.TaskId] = v.TaskId | ||
783 | + } | ||
784 | + for _, v := range taskIdMap { | ||
785 | + taskIdArray = append(taskIdArray, v) | ||
786 | + } | ||
787 | + | ||
788 | + taskMap := map[int]*domain.Task{} | ||
789 | + taskRepository := factory.CreateTaskRepository(map[string]interface{}{"transactionContext": transactionContext}) | ||
790 | + _, tasks, err := taskRepository.Find(map[string]interface{}{"ids": taskIdArray, "limit": len(taskIdArray)}) | ||
791 | + if err != nil { | ||
792 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取里程碑数据:"+err.Error()) | ||
793 | + } | ||
794 | + for i := range tasks { | ||
795 | + taskMap[tasks[i].Id] = tasks[i] | ||
796 | + } | ||
797 | + | ||
798 | + for i := range taskRecords { | ||
799 | + it := taskRecords[i] | ||
800 | + a := &adapter.TaskRecordAdapter{} | ||
801 | + a.TaskRecord = it | ||
802 | + if v, ok := taskMap[it.TaskId]; ok { | ||
803 | + a.EndTime = v.EndTime | ||
804 | + } | ||
805 | + taskRecordAdapter = append(taskRecordAdapter, a) | ||
806 | + } | ||
789 | } | 807 | } |
790 | 808 | ||
791 | if err := transactionContext.CommitTransaction(); err != nil { | 809 | if err := transactionContext.CommitTransaction(); err != nil { |
@@ -810,9 +828,7 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | @@ -810,9 +828,7 @@ func (srv StaffAssessServeice) GetAssessSelfInfoV2(param *query.GetExecutorSelfA | ||
810 | SupperUser: "", | 828 | SupperUser: "", |
811 | DutyTime: "", | 829 | DutyTime: "", |
812 | AssessContent: assessContentList, | 830 | AssessContent: assessContentList, |
813 | - //CategoryTaskRecords: categoryTaskRecords, | ||
814 | - //AssessTaskRecords: assessTaskRecords, | ||
815 | - TaskRecords: taskRecords, | 831 | + TaskRecords: taskRecordAdapter, |
816 | } | 832 | } |
817 | if staffDesc != nil { | 833 | if staffDesc != nil { |
818 | result.CompanyName = staffDesc.CompanyName | 834 | result.CompanyName = staffDesc.CompanyName |
@@ -9,7 +9,7 @@ type UpdateTaskCommand struct { | @@ -9,7 +9,7 @@ type UpdateTaskCommand struct { | ||
9 | RelatedUserId []string `json:"relatedUserId"` // 相关人员id | 9 | RelatedUserId []string `json:"relatedUserId"` // 相关人员id |
10 | SortBy int `json:"sortBy"` // 优先级排序;值越小优先级越高 | 10 | SortBy int `json:"sortBy"` // 优先级排序;值越小优先级越高 |
11 | EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 | 11 | EndTime int64 `json:"endTime"` // 任务截止的时间戳,单位:秒;等于0时表示未设置时间 |
12 | - UseEndtime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用 | 12 | + UseEndTime int `json:"useEndTime"` // 是否应用任务截止的时间;默认值0:不应用,1:应用 |
13 | StageList []struct { | 13 | StageList []struct { |
14 | Id int `json:"id,string"` | 14 | Id int `json:"id,string"` |
15 | Name string `json:"name"` //里程碑名称 | 15 | Name string `json:"name"` //里程碑名称 |
@@ -2,6 +2,7 @@ package service | @@ -2,6 +2,7 @@ package service | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "fmt" | 4 | "fmt" |
5 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/log_opt" | ||
5 | "strconv" | 6 | "strconv" |
6 | "strings" | 7 | "strings" |
7 | "time" | 8 | "time" |
@@ -116,8 +117,8 @@ func (srv TaskService) CreateTaskByProject(transactionContext application.Transa | @@ -116,8 +117,8 @@ func (srv TaskService) CreateTaskByProject(transactionContext application.Transa | ||
116 | return nil | 117 | return nil |
117 | } | 118 | } |
118 | 119 | ||
119 | -// 创建任务 | ||
120 | -func (srv TaskService) CreateTask(param *command.CreateTaskCommand) (map[string]interface{}, error) { | 120 | +// CreateTask 创建任务 |
121 | +func (srv TaskService) CreateTask(param *command.CreateTaskCommand, userReq *domain.UserAuth) (map[string]interface{}, error) { | ||
121 | sortNamed := domain.TaskSortBy(param.SortBy) | 122 | sortNamed := domain.TaskSortBy(param.SortBy) |
122 | if sortNamed.Named() == "" { | 123 | if sortNamed.Named() == "" { |
123 | return nil, application.ThrowError(application.TRANSACTION_ERROR, "优先级设置错误") | 124 | return nil, application.ThrowError(application.TRANSACTION_ERROR, "优先级设置错误") |
@@ -220,11 +221,15 @@ func (srv TaskService) CreateTask(param *command.CreateTaskCommand) (map[string] | @@ -220,11 +221,15 @@ func (srv TaskService) CreateTask(param *command.CreateTaskCommand) (map[string] | ||
220 | if err := transactionContext.CommitTransaction(); err != nil { | 221 | if err := transactionContext.CommitTransaction(); err != nil { |
221 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 222 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
222 | } | 223 | } |
224 | + | ||
225 | + // 生成创建日志 | ||
226 | + _ = log_opt.CreateTask(userReq, newTask) | ||
227 | + | ||
223 | return map[string]interface{}{"id": newTask.Id}, nil | 228 | return map[string]interface{}{"id": newTask.Id}, nil |
224 | } | 229 | } |
225 | 230 | ||
226 | -// 更新任务 | ||
227 | -func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string]interface{}, error) { | 231 | +// UpdateTask 更新任务 |
232 | +func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand, userReq *domain.UserAuth) (map[string]interface{}, error) { | ||
228 | transactionContext, err := factory.CreateTransactionContext(nil) | 233 | transactionContext, err := factory.CreateTransactionContext(nil) |
229 | if err != nil { | 234 | if err != nil { |
230 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 235 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
@@ -274,6 +279,14 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] | @@ -274,6 +279,14 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] | ||
274 | if leaderList[0].CompanyId != int64(param.CompanyId) { | 279 | if leaderList[0].CompanyId != int64(param.CompanyId) { |
275 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "负责人数据验证不通过") | 280 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "负责人数据验证不通过") |
276 | } | 281 | } |
282 | + | ||
283 | + // 拷贝数据 | ||
284 | + var copyTask = taskData.Copy() | ||
285 | + var copyStageList = make([]*domain.TaskStage, 0) | ||
286 | + for _, v := range stageList { | ||
287 | + copyStageList = append(copyStageList, v) | ||
288 | + } | ||
289 | + | ||
277 | //更新任务的相关人员 | 290 | //更新任务的相关人员 |
278 | relatedUserIds := []int{} | 291 | relatedUserIds := []int{} |
279 | for _, val := range param.RelatedUserId { | 292 | for _, val := range param.RelatedUserId { |
@@ -382,7 +395,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] | @@ -382,7 +395,7 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] | ||
382 | } else { | 395 | } else { |
383 | taskData.EndTime = dayEndTime(time.Unix(param.EndTime, 10)).Unix() | 396 | taskData.EndTime = dayEndTime(time.Unix(param.EndTime, 10)).Unix() |
384 | } | 397 | } |
385 | - taskData.UseEndTime = param.UseEndtime | 398 | + taskData.UseEndTime = param.UseEndTime |
386 | taskData.AssistFlagMax = param.AssistFlagMax | 399 | taskData.AssistFlagMax = param.AssistFlagMax |
387 | err = taskRepo.Save(taskData) | 400 | err = taskRepo.Save(taskData) |
388 | if err != nil { | 401 | if err != nil { |
@@ -420,6 +433,10 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] | @@ -420,6 +433,10 @@ func (srv TaskService) UpdateTask(param *command.UpdateTaskCommand) (map[string] | ||
420 | if err := transactionContext.CommitTransaction(); err != nil { | 433 | if err := transactionContext.CommitTransaction(); err != nil { |
421 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 434 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
422 | } | 435 | } |
436 | + | ||
437 | + // 生成更新日志 | ||
438 | + _ = log_opt.UpdateTask(userReq, ©Task, taskData, copyStageList, stageList) | ||
439 | + | ||
423 | return map[string]interface{}{ | 440 | return map[string]interface{}{ |
424 | "id": param.Id, | 441 | "id": param.Id, |
425 | }, nil | 442 | }, nil |
pkg/domain/log_opt.go
0 → 100644
1 | +package domain | ||
2 | + | ||
3 | +import "time" | ||
4 | + | ||
5 | +type OptMethod int | ||
6 | + | ||
7 | +const ( | ||
8 | + CREATE OptMethod = 1 // 创建 | ||
9 | + UPDATE OptMethod = 2 // 更新 | ||
10 | + DELETE OptMethod = 3 // 删除 | ||
11 | +) | ||
12 | + | ||
13 | +// LogOpt 操作日志 | ||
14 | +type LogOpt struct { | ||
15 | + //OptModule string `json:"optModule" comment:"操作模块"` | ||
16 | + Id int `json:"id,string" comment:"ID" pg:"id,pk"` | ||
17 | + CompanyId int `json:"companyId" comment:"公司ID"` | ||
18 | + Operator StaffDesc `json:"operator" comment:"操作人"` | ||
19 | + OptMethod OptMethod `json:"optMethod" comment:"操作方法"` | ||
20 | + OptTargetId string `json:"optTargetId" comment:"操作目标ID"` | ||
21 | + OptField string `json:"optField" comment:"操作字段"` | ||
22 | + OptValue string `json:"optValue" comment:"操作字段值"` | ||
23 | + CreatedAt time.Time `json:"createdAt" comment:"创建时间"` | ||
24 | + UpdatedAt time.Time `json:"updatedAt" comment:"更新时间"` | ||
25 | + DeletedAt *time.Time `json:"deletedAt" comment:"删除时间"` | ||
26 | +} | ||
27 | + | ||
28 | +type LogOptRepository interface { | ||
29 | + Insert(opt *LogOpt) (*LogOpt, error) | ||
30 | + Remove(opt *LogOpt) (*LogOpt, error) | ||
31 | + FindOne(queryOptions map[string]interface{}) (*LogOpt, error) | ||
32 | + Find(queryOptions map[string]interface{}) (int64, []*LogOpt, error) | ||
33 | + Count(queryOptions map[string]interface{}) (int64, error) | ||
34 | +} |
@@ -51,6 +51,7 @@ func init() { | @@ -51,6 +51,7 @@ func init() { | ||
51 | &models.SummaryEvaluationValue{}, | 51 | &models.SummaryEvaluationValue{}, |
52 | &models.Permission{}, | 52 | &models.Permission{}, |
53 | &models.LogSms{}, | 53 | &models.LogSms{}, |
54 | + &models.LogOpt{}, | ||
54 | &models.MessagePersonal{}, | 55 | &models.MessagePersonal{}, |
55 | &models.Task{}, | 56 | &models.Task{}, |
56 | &models.TaskStage{}, | 57 | &models.TaskStage{}, |
pkg/infrastructure/pg/models/log_opt.go
0 → 100644
1 | +package models | ||
2 | + | ||
3 | +import ( | ||
4 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | ||
5 | + "time" | ||
6 | +) | ||
7 | + | ||
8 | +// LogOpt 操作日志 | ||
9 | +type LogOpt struct { | ||
10 | + //OptModule string `comment:"操作模块"` | ||
11 | + tableName struct{} `comment:"操作日志" pg:"log_opt"` | ||
12 | + Id int `comment:"ID" pg:"id,pk"` | ||
13 | + CompanyId int `comment:"公司ID"` | ||
14 | + Operator domain.StaffDesc `comment:"操作人"` | ||
15 | + OptMethod domain.OptMethod `comment:"操作方法"` | ||
16 | + OptTargetId string `comment:"操作目标ID"` | ||
17 | + OptField string `comment:"操作字段"` | ||
18 | + OptValue string `comment:"操作字段值"` | ||
19 | + CreatedAt time.Time `comment:"创建时间"` | ||
20 | + UpdatedAt time.Time `comment:"更新时间"` | ||
21 | + DeletedAt *time.Time `comment:"删除时间"` | ||
22 | +} |
1 | +package repository | ||
2 | + | ||
3 | +import ( | ||
4 | + "errors" | ||
5 | + "fmt" | ||
6 | + "time" | ||
7 | + | ||
8 | + "github.com/go-pg/pg/v10" | ||
9 | + "github.com/linmadan/egglib-go/persistent/pg/sqlbuilder" | ||
10 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
11 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | ||
12 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/pg/models" | ||
13 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/utils" | ||
14 | +) | ||
15 | + | ||
16 | +type LogOptRepository struct { | ||
17 | + transactionContext *pgTransaction.TransactionContext | ||
18 | +} | ||
19 | + | ||
20 | +func NewLogOptRepository(transactionContext *pgTransaction.TransactionContext) *LogOptRepository { | ||
21 | + return &LogOptRepository{transactionContext: transactionContext} | ||
22 | +} | ||
23 | + | ||
24 | +func (repo *LogOptRepository) TransformToDomain(m *models.LogOpt) domain.LogOpt { | ||
25 | + return domain.LogOpt{ | ||
26 | + Id: m.Id, | ||
27 | + CompanyId: m.CompanyId, | ||
28 | + Operator: m.Operator, | ||
29 | + OptMethod: m.OptMethod, | ||
30 | + OptTargetId: m.OptTargetId, | ||
31 | + OptField: m.OptField, | ||
32 | + OptValue: m.OptValue, | ||
33 | + CreatedAt: m.CreatedAt.Local(), | ||
34 | + UpdatedAt: m.UpdatedAt.Local(), | ||
35 | + DeletedAt: m.DeletedAt, | ||
36 | + } | ||
37 | +} | ||
38 | + | ||
39 | +func (repo *LogOptRepository) TransformToModel(d *domain.LogOpt) models.LogOpt { | ||
40 | + return models.LogOpt{ | ||
41 | + Id: d.Id, | ||
42 | + CompanyId: d.CompanyId, | ||
43 | + Operator: d.Operator, | ||
44 | + OptMethod: d.OptMethod, | ||
45 | + OptTargetId: d.OptTargetId, | ||
46 | + OptField: d.OptField, | ||
47 | + OptValue: d.OptValue, | ||
48 | + CreatedAt: d.CreatedAt, | ||
49 | + UpdatedAt: d.UpdatedAt, | ||
50 | + DeletedAt: d.DeletedAt, | ||
51 | + } | ||
52 | +} | ||
53 | + | ||
54 | +func (repo *LogOptRepository) Insert(d *domain.LogOpt) (*domain.LogOpt, error) { | ||
55 | + var isCreate = d.Id == 0 | ||
56 | + if isCreate { | ||
57 | + id, err := utils.NewSnowflakeId() | ||
58 | + if err != nil { | ||
59 | + return d, err | ||
60 | + } | ||
61 | + d.Id = int(id) | ||
62 | + d.CreatedAt = time.Now() | ||
63 | + d.UpdatedAt = d.CreatedAt | ||
64 | + } else { | ||
65 | + d.UpdatedAt = time.Now() | ||
66 | + } | ||
67 | + m := repo.TransformToModel(d) | ||
68 | + tx := repo.transactionContext.PgTx | ||
69 | + var err error | ||
70 | + if isCreate { | ||
71 | + _, err = tx.Model(&m).Returning("id").Insert() | ||
72 | + } else { | ||
73 | + _, err = tx.Model(&m).Returning("id").WherePK().Update() // 更新和删除必须增加条件 | ||
74 | + } | ||
75 | + if err != nil { | ||
76 | + return nil, err | ||
77 | + } | ||
78 | + d.Id = m.Id | ||
79 | + return d, nil | ||
80 | +} | ||
81 | + | ||
82 | +func (repo *LogOptRepository) Remove(d *domain.LogOpt) (*domain.LogOpt, error) { | ||
83 | + tx := repo.transactionContext.PgTx | ||
84 | + nowTime := time.Now() | ||
85 | + m := repo.TransformToModel(d) | ||
86 | + m.DeletedAt = &nowTime | ||
87 | + if _, err := tx.Model(&m).WherePK().Update(); err != nil { | ||
88 | + return d, err | ||
89 | + } | ||
90 | + return d, nil | ||
91 | +} | ||
92 | + | ||
93 | +func (repo *LogOptRepository) FindOne(queryOptions map[string]interface{}) (*domain.LogOpt, error) { | ||
94 | + tx := repo.transactionContext.PgTx | ||
95 | + m := new(models.LogOpt) | ||
96 | + query := tx.Model(m) | ||
97 | + query.Where("deleted_at isnull") | ||
98 | + if id, ok := queryOptions["id"]; ok { | ||
99 | + query.Where("id=?", id) | ||
100 | + } | ||
101 | + if err := query.First(); err != nil { | ||
102 | + if errors.Is(err, pg.ErrNoRows) { | ||
103 | + return nil, fmt.Errorf("没有此资源") | ||
104 | + } else { | ||
105 | + return nil, err | ||
106 | + } | ||
107 | + } | ||
108 | + u := repo.TransformToDomain(m) | ||
109 | + return &u, nil | ||
110 | +} | ||
111 | + | ||
112 | +func (repo *LogOptRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.LogOpt, error) { | ||
113 | + tx := repo.transactionContext.PgTx | ||
114 | + var m []*models.LogOpt | ||
115 | + | ||
116 | + query := tx.Model(&m).Where("deleted_at isnull") | ||
117 | + | ||
118 | + if v, ok := queryOptions["ids"]; ok { | ||
119 | + query.Where("id in (?)", pg.In(v)) | ||
120 | + } | ||
121 | + | ||
122 | + if v, ok := queryOptions["id"]; ok { | ||
123 | + query.Where("id=?", v) | ||
124 | + } | ||
125 | + | ||
126 | + if v, ok := queryOptions["companyId"]; ok { | ||
127 | + query.Where("company_id = ?", v) | ||
128 | + } | ||
129 | + | ||
130 | + if v, ok := queryOptions["optTargetId"]; ok { | ||
131 | + query.Where("opt_target_id = ?", v) | ||
132 | + } | ||
133 | + | ||
134 | + if v, ok := queryOptions["limit"].(int64); ok { | ||
135 | + query.Limit(int(v)) | ||
136 | + } | ||
137 | + if v, ok := queryOptions["offset"].(int64); ok { | ||
138 | + query.Offset(int(v)) | ||
139 | + } | ||
140 | + | ||
141 | + // 按创建时间降序 | ||
142 | + query.Order("created_at DESC") | ||
143 | + | ||
144 | + count, err := query.SelectAndCount() | ||
145 | + if err != nil { | ||
146 | + return 0, nil, err | ||
147 | + } | ||
148 | + var arrays []*domain.LogOpt | ||
149 | + for _, v := range m { | ||
150 | + d := repo.TransformToDomain(v) | ||
151 | + arrays = append(arrays, &d) | ||
152 | + } | ||
153 | + return int64(count), arrays, nil | ||
154 | +} | ||
155 | + | ||
156 | +func (repo *LogOptRepository) Count(queryOptions map[string]interface{}) (int64, error) { | ||
157 | + tx := repo.transactionContext.PgTx | ||
158 | + m := new(models.LogOpt) | ||
159 | + query := sqlbuilder.BuildQuery(tx.Model(m), queryOptions) | ||
160 | + query.Where("deleted_at isnull") | ||
161 | + | ||
162 | + if id, ok := queryOptions["id"]; ok { | ||
163 | + query.Where("id = ?", id) | ||
164 | + } | ||
165 | + | ||
166 | + if notId, ok := queryOptions["notId"]; ok { | ||
167 | + query.Where("id != ?", notId) | ||
168 | + } | ||
169 | + | ||
170 | + if v, ok := queryOptions["companyId"]; ok { | ||
171 | + query.Where("company_id = ?", v) | ||
172 | + } | ||
173 | + | ||
174 | + count, err := query.Count() | ||
175 | + if err != nil { | ||
176 | + return 0, err | ||
177 | + } | ||
178 | + return int64(count), nil | ||
179 | +} |
@@ -145,6 +145,9 @@ func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*d | @@ -145,6 +145,9 @@ func (repo *TaskRepository) Find(queryOptions map[string]interface{}) (int, []*d | ||
145 | if val, ok := queryOptions["id"]; ok { | 145 | if val, ok := queryOptions["id"]; ok { |
146 | query.Where("task.id=?", val) | 146 | query.Where("task.id=?", val) |
147 | } | 147 | } |
148 | + if val, ok := queryOptions["ids"]; ok { | ||
149 | + query.Where("task.id in(?)", pg.In(val)) | ||
150 | + } | ||
148 | if val, ok := queryOptions["leaderId"]; ok { | 151 | if val, ok := queryOptions["leaderId"]; ok { |
149 | query.Where("task.leader->>'id'=?", val) | 152 | query.Where("task.leader->>'id'=?", val) |
150 | } | 153 | } |
1 | +package controllers | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/linmadan/egglib-go/core/application" | ||
5 | + "github.com/linmadan/egglib-go/web/beego" | ||
6 | + service "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/log_opt" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/application/log_opt/command" | ||
8 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/beego/middlewares" | ||
9 | +) | ||
10 | + | ||
11 | +type LogOptController struct { | ||
12 | + beego.BaseController | ||
13 | +} | ||
14 | + | ||
15 | +func (controller *LogOptController) ListLog() { | ||
16 | + logService := service.NewLogOptService() | ||
17 | + in := &command.QueryLogCommand{} | ||
18 | + if err := controller.Unmarshal(in); err != nil { | ||
19 | + controller.Response(nil, application.ThrowError(application.ARG_ERROR, err.Error())) | ||
20 | + } else { | ||
21 | + ua := middlewares.GetUser(controller.Ctx) | ||
22 | + in.CompanyId = ua.CompanyId | ||
23 | + controller.Response(logService.List(in)) | ||
24 | + } | ||
25 | +} |
@@ -41,7 +41,7 @@ func (c *TaskController) UpdateTask() { | @@ -41,7 +41,7 @@ func (c *TaskController) UpdateTask() { | ||
41 | } | 41 | } |
42 | userReq := middlewares.GetUser(c.Ctx) | 42 | userReq := middlewares.GetUser(c.Ctx) |
43 | paramReq.CompanyId = int(userReq.CompanyId) | 43 | paramReq.CompanyId = int(userReq.CompanyId) |
44 | - data, err := srv.UpdateTask(paramReq) | 44 | + data, err := srv.UpdateTask(paramReq, userReq) |
45 | c.Response(data, err) | 45 | c.Response(data, err) |
46 | } | 46 | } |
47 | 47 | ||
@@ -57,7 +57,7 @@ func (c *TaskController) CreateTask() { | @@ -57,7 +57,7 @@ func (c *TaskController) CreateTask() { | ||
57 | } | 57 | } |
58 | userReq := middlewares.GetUser(c.Ctx) | 58 | userReq := middlewares.GetUser(c.Ctx) |
59 | paramReq.CompanyId = int(userReq.CompanyId) | 59 | paramReq.CompanyId = int(userReq.CompanyId) |
60 | - resp, err := srv.CreateTask(paramReq) | 60 | + resp, err := srv.CreateTask(paramReq, userReq) |
61 | c.Response(resp, err) | 61 | c.Response(resp, err) |
62 | } | 62 | } |
63 | 63 |
pkg/port/beego/routers/log_opt_router.go
0 → 100644
1 | +package routers | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/beego/beego/v2/server/web" | ||
5 | + "github.com/linmadan/egglib-go/web/beego/filters" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/beego/controllers" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/port/beego/middlewares" | ||
8 | +) | ||
9 | + | ||
10 | +func init() { | ||
11 | + ns := web.NewNamespace("/v1/log-opt", | ||
12 | + web.NSBefore(filters.AllowCors(), middlewares.CheckAdminToken()), | ||
13 | + web.NSRouter("/list", &controllers.LogOptController{}, "Post:ListLog"), | ||
14 | + ) | ||
15 | + | ||
16 | + web.AddNamespace(ns) | ||
17 | +} |
-
请 注册 或 登录 后发表评论