feat 增加是否已读的列表页展示

main
耿阳 2 years ago
parent cfa705caa9
commit 56028d1db0

@ -1,6 +1,7 @@
# 帮助文档 # 帮助文档
## 一、审批服务 ## 一、审批服务
[接口文档](https://alidocs.dingtalk.com/i/team/WO3GjkDQW0x3qzDR/docs/WO4GjlraPpEvoXDR#)
### 部门服务 ### 部门服务
![image](docs/readmeimage/img_department.png) ![image](docs/readmeimage/img_department.png)

File diff suppressed because it is too large Load Diff

@ -19,6 +19,20 @@ service Approval {
} }
message ListRequest {
string Domain = 1 [json_name = "domain"];
uint64 Limit = 2 [json_name = "limit"]; //
uint64 Offset = 3 [json_name = "offset"]; //
uint64 Status = 4 [json_name = "status"];//0 1- 2-
string Type = 5 [json_name = "type"]; //
uint64 UserID = 6 [json_name = "userID"]; //
}
message ListResponse {
uint64 Count = 1 [json_name = "count"];
repeated CreateRequest data = 2 [json_name = "data"];
}
message ViewedRequest { message ViewedRequest {
string Domain = 1 [json_name = "domain"]; string Domain = 1 [json_name = "domain"];
uint64 ID = 2 [json_name = "ID"]; uint64 ID = 2 [json_name = "ID"];
@ -94,19 +108,6 @@ message Exhibition {
repeated ApprovalExhibition ApprovalExhibitions = 4 [json_name = "approvalExhibitions"]; repeated ApprovalExhibition ApprovalExhibitions = 4 [json_name = "approvalExhibitions"];
} }
message ListRequest {
string Domain = 1 [json_name = "domain"];
uint64 Limit = 2 [json_name = "limit"]; //
uint64 Offset = 3 [json_name = "offset"]; //
uint64 Status = 4 [json_name = "status"];//0 1- 2-
string Type = 5 [json_name = "type"]; //
}
message ListResponse {
uint64 Count = 1 [json_name = "count"];
repeated CreateRequest data = 2 [json_name = "data"];
}
message CreateRequest { message CreateRequest {
uint64 ID = 1 [json_name = "ID"]; uint64 ID = 1 [json_name = "ID"];
string Domain = 2 [json_name = "domain"]; string Domain = 2 [json_name = "domain"];
@ -119,10 +120,11 @@ message CreateRequest {
repeated CopyUser CopyUsers = 9 [json_name = "copyName"];// repeated CopyUser CopyUsers = 9 [json_name = "copyName"];//
string Content = 10 [json_name = "content"];// string Content = 10 [json_name = "content"];//
string Reply = 11 [json_name = "reply"];// string Reply = 11 [json_name = "reply"];//
Work Work = 12 [json_name = "work"]; bool IsViewed = 12 [json_name = "IsViewed"];//
Show Show = 13 [json_name = "show"]; Work Work = 13 [json_name = "work"];
Exhibition Exhibition = 14 [json_name = "exhibition"]; Show Show = 14 [json_name = "show"];
Bundle Bundle = 15 [json_name = "bundle"]; Exhibition Exhibition = 15 [json_name = "exhibition"];
Bundle Bundle = 16 [json_name = "bundle"];
} }
message DetailRequest { message DetailRequest {

@ -280,6 +280,11 @@ func ApprovalList(in *approval.ListRequest) ([]*Approval, int64) {
modelObj = modelObj.Where(&Approval{Type: in.Type}) modelObj = modelObj.Where(&Approval{Type: in.Type})
} }
if in.UserId != 0 {
modelObj = modelObj.Where(DB.Where(&Approval{ApproverID: in.UserId}).
Or("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserId))
}
if in.Status != 0 { if in.Status != 0 {
modelObj = modelObj.Where(&Approval{Status: int8(in.Status)}) modelObj = modelObj.Where(&Approval{Status: int8(in.Status)})
} }

@ -6,11 +6,20 @@ import (
) )
//BuildApproval 处理单个detail返回 //BuildApproval 处理单个detail返回
func BuildApproval(entity *model.Approval) *approval.CreateRequest { func BuildApproval(entity *model.Approval, userId uint64) *approval.CreateRequest {
var work *approval.Work var work *approval.Work
var show *approval.Show var show *approval.Show
var exhibition *approval.Exhibition var exhibition *approval.Exhibition
var bundle *approval.Bundle var bundle *approval.Bundle
isViewed := false
copyUsers := model.FormatToResponse(entity.CopyUsers)
for _, cu := range copyUsers {
if userId != 0 && cu.ID == userId && cu.IsViewed == true {
isViewed = true
}
}
response := &approval.CreateRequest{ response := &approval.CreateRequest{
ID: entity.ID, ID: entity.ID,
@ -19,10 +28,11 @@ func BuildApproval(entity *model.Approval) *approval.CreateRequest {
Type: entity.Type, Type: entity.Type,
ApproverID: entity.ApproverID, ApproverID: entity.ApproverID,
ApproverName: entity.ApproverName, ApproverName: entity.ApproverName,
CopyUsers: model.FormatToResponse(entity.CopyUsers), CopyUsers: copyUsers,
SubmitterID: entity.SubmitterID, SubmitterID: entity.SubmitterID,
SubmitterName: entity.SubmitterName, SubmitterName: entity.SubmitterName,
Content: entity.Content, Content: entity.Content,
IsViewed: isViewed,
Reply: entity.Reply, Reply: entity.Reply,
Work: work, Work: work,
Show: show, Show: show,
@ -36,10 +46,10 @@ func BuildApproval(entity *model.Approval) *approval.CreateRequest {
} }
//BuildApprovals 处理单个detail返回 //BuildApprovals 处理单个detail返回
func BuildApprovals(list []*model.Approval) (details []*approval.CreateRequest) { func BuildApprovals(list []*model.Approval, userId uint64) (details []*approval.CreateRequest) {
for _, item := range list { for _, item := range list {
temp := BuildApproval(item) temp := BuildApproval(item, userId)
details = append(details, temp) details = append(details, temp)
} }

@ -89,7 +89,7 @@ func (a *ApprovalProvider) Detail(ctx context.Context, in *approval.DetailReques
return response, err return response, err
} }
response = serializer.BuildApproval(entity) response = serializer.BuildApproval(entity, 0)
return response, err return response, err
} }
@ -127,7 +127,7 @@ func (a *ApprovalProvider) List(ctx context.Context, in *approval.ListRequest) (
list, count = model.ApprovalList(in) list, count = model.ApprovalList(in)
response.Count = uint64(count) response.Count = uint64(count)
response.Data = serializer.BuildApprovals(list) response.Data = serializer.BuildApprovals(list, in.UserId)
return response, nil return response, nil
} }
@ -151,17 +151,23 @@ func (a *ApprovalProvider) UpdateSetting(ctx context.Context, in *approval.Setti
ApproverName: in.ApproverName, ApproverName: in.ApproverName,
Domain: in.Domain, Domain: in.Domain,
} }
err = model.DB.Save(&setting).Error
} else { } else {
setting.DepartmentID = in.DepartmentID setting.DepartmentID = in.DepartmentID
setting.CopyUsers = copyUsers setting.CopyUsers = copyUsers
setting.ApproverID = in.ApproverID setting.ApproverID = in.ApproverID
setting.ApproverName = in.ApproverName setting.ApproverName = in.ApproverName
err = model.DB.Where(&model.DepartmentApprovalSetting{Domain: in.Domain, DepartmentID: in.DepartmentID}).Updates(&setting).Error
} }
err = model.DB.Save(&setting).Error if err == nil {
response.ID = setting.ID
response.Success = true
}
response.ID = setting.ID
response.Success = true
return response, err return response, err
} }

Loading…
Cancel
Save