feat 对已经申请过的进行处理

main
耿阳 2 years ago
parent 2618dfa869
commit 5690a6697c

@ -163,6 +163,22 @@ AND approval.domain = ? AND approval.submitter_id = ? AND approval.type = ? AND
return total - usedNum return total - usedNum
} }
func ExistPayApproval(in *approval.CreateRequest) bool {
var count int64
//
subQuery1 := DB.Model(&Approval{}).Where(&Approval{SubmitterID: in.SubmitterID, Type: TypeBundlePayPrice}).
Where("status in (?)",[]uint64{StatusDoing,StatusOk}).
Select("id")
DB.Model(&BundlePayPrice{}).Where("approval_id in (?)", subQuery1).Where(&BundlePayPrice{ShowUid: in.BundlePayPrice.ShowUid}).Count(&count)
if count >= 1 {
return true
}
return false
}
func StoreApproval(in *approval.CreateRequest) (*Approval, error) { func StoreApproval(in *approval.CreateRequest) (*Approval, error) {
var entity *Approval var entity *Approval
@ -525,7 +541,7 @@ func MyAllWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
modelObj = modelObj.Where(&Approval{Type: in.Type}).Where( modelObj = modelObj.Where(&Approval{Type: in.Type}).Where(
DB.Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}). // 我需要审批的 DB.Where(&Approval{NowUserId: in.UserID, Status: StatusDoing}). // 我需要审批的
Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的 Or(DB.Where("status = ?", StatusOk).Where("id in (?)", s1))) // 已完成,抄送给我的
modelObj.Count(&count) modelObj.Count(&count)
if len(ids) > 0 { //根据具体id排序 if len(ids) > 0 { //根据具体id排序
@ -570,8 +586,8 @@ func MyApprovalWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
if in.UserID != 0 { if in.UserID != 0 {
modelObj = modelObj.Where( modelObj = modelObj.Where(
DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID).
Where("status != ?", StatusDoing). //完成,我参与审批 Where("status != ?", StatusDoing). //完成,我参与审批
Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我,
Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送)
} }
@ -627,8 +643,8 @@ func MyWorkApprovals(in *approval.ListRequest) ([]*Approval, int64) {
if in.UserID != 0 { if in.UserID != 0 {
modelObj = modelObj.Where( modelObj = modelObj.Where(
DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID). DB.Where("JSON_CONTAINS(approval_users,JSON_OBJECT('ID', ?))", in.UserID).
Where("status != ?", StatusDoing). //完成,我参与审批 Where("status != ?", StatusDoing). //完成,我参与审批
Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我, Or(DB.Where("now_user_id", in.UserID).Where("status = ?", StatusDoing)). //进行中,当前审批人是我,
Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送) Or(DB.Where("JSON_CONTAINS(copy_users,JSON_OBJECT('ID', ?))", in.UserID).Where("status = ?", StatusOk))) //抄送人(完成抄送)
} }

@ -19,6 +19,13 @@ type ApprovalProvider struct {
func (a *ApprovalProvider) Create(ctx context.Context, in *approval.CreateRequest) (*approval.ApprovalResponse, error) { func (a *ApprovalProvider) Create(ctx context.Context, in *approval.CreateRequest) (*approval.ApprovalResponse, error) {
response := &approval.ApprovalResponse{} response := &approval.ApprovalResponse{}
//下载单子只能下载一次
if in.Type == model.TypeBundlePayPrice {
if model.ExistPayApproval(in) == true {
return response, errors.New("该画展宝已经有审批中或者审批通过的提交")
}
}
entity, err := model.StoreApproval(in) entity, err := model.StoreApproval(in)
if err != nil { if err != nil {
return response, err return response, err

Loading…
Cancel
Save