package service import ( "fmt" "fonchain-artshow/cmd/dao" "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" "fonchain-artshow/pkg/m" "fonchain-artshow/pkg/serializer" ) // 创建画展包申请 func CreateShowApply(in *artShow.SaveApplyReq) (err error, applyUID string) { showApply := serializer.BuildShowApply(in) err = dao.SaveShowApply(showApply) if err != nil { return } return err, showApply.ApplyUID } // 更新画展包申请 及 关联记录 func UpdateShowApplyWithShowRel(in *artShow.SaveApplyReq) (err error, applyUID string) { // 更新画展包申请 showApply := serializer.BuildShowApply(in) tx, err := dao.UpdateShowApply(showApply) if err != nil { tx.Rollback() return } // 更新 关联的 画展包的状态 为 已展 if len(in.Rel) > 0 { // 保存 新 show_rel newShowRelS := serializer.BuildShowRelM(in.Rel, showApply.ApplyUID) err, _ := dao.SaveShowRels(tx, newShowRelS) if err != nil { tx.Rollback() return err, showApply.ApplyUID } for i := 0; i < len(newShowRelS); i++ { // 更新 画展包状态 为 已展 show := serializer.BuildArtShowIsShowM(newShowRelS[i].ShowUID, m.ARTSHOW_SHOWING) err := dao.UpdateArtShow(tx, show) if err != nil { tx.Rollback() return err, showApply.ApplyUID } } } // 更新 取消关联的 画展包的状态 为 可展 if len(in.DelRel) > 0 { del := make([]string, 0) for i := 0; i < len(in.DelRel); i++ { del = append(del, in.DelRel[i].ShowRelUID) // 更新 画展包状态 为 可展 show := serializer.BuildArtShowIsShowM(in.DelRel[i].ShowUID, m.ARTSHOW_PASS) err := dao.UpdateArtShow(tx, show) if err != nil { tx.Rollback() return err, showApply.ApplyUID } } // 删除关联记录 err = dao.DelShowRel(tx, del) if err != nil { tx.Rollback() return err, showApply.ApplyUID } } err = tx.Commit().Error return err, showApply.ApplyUID } // 更新画展包申请状态 func UpdateShowApplyStatus(in *artShow.UpdateApplyStatusReq) (err error) { showApply := &model.ShowApply{ ApplyUID: in.ApplyUID, Status: int(in.Status), Remark: in.Remark, } tx, err := dao.UpdateShowApply(showApply) if err != nil { tx.Rollback() return } err = tx.Commit().Error return } // 查询画展包申请列表 func ShowApplyList(in *artShow.ApplyListReq) (err error, total int64, out []*artShow.ApplyDetail) { out = make([]*artShow.ApplyDetail, 0) err, total, applyList := dao.ShowApplyList(in) if err != nil { return } if len(applyList) > 0 { for i := 0; i < len(applyList); i++ { showApply := serializer.BuildShowApplyRes(applyList[i]) out = append(out, showApply) } } return } // 查询画展包申请详情 func ShowApplyDetail(applyUID string) (err error, out *artShow.ApplyShowRes) { out = new(artShow.ApplyShowRes) err, showApply := dao.ShowApplyDetail(applyUID) if err != nil { return } out.Apply = serializer.BuildShowApplyRes(showApply) err, artShow := dao.ArtShowList_apply(applyUID) if err != nil { return } out.Show = serializer.BuildArtShowListRes(artShow) fmt.Println(out.Show) return } // 删除画展包申请记录 func DelApplyByApplyUID(in *artShow.DelApplyReq) (err error) { tx, err := dao.DelShowApply(in) if err != nil { tx.Rollback() return } for i := 0; i < len(in.ApplyUID); i++ { err = dao.DelShowRelByApplyUID(tx, in.ApplyUID[i]) if err != nil { tx.Rollback() return } queryShowRelErr, showRels := dao.QueryShowRelList(in.ApplyUID[i]) if queryShowRelErr != nil { tx.Rollback() return queryShowRelErr } if len(showRels) > 0 { for i := 0; i < len(showRels); i++ { // 更新 画展包状态 为 可展 show := serializer.BuildArtShowIsShowM(showRels[i].ShowUID, m.ARTSHOW_PASS) updateArtShowErr := dao.UpdateArtShow(tx, show) if updateArtShowErr != nil { tx.Rollback() return updateArtShowErr } } } } err = tx.Commit().Error return } // 查询画展包申请关联记录 func QueryShowRel_showUID(showUID string) (err error, out *model.ShowRel) { out = new(model.ShowRel) err, out = dao.QueryShowRel_showUID(showUID) if err != nil { return err, nil } return }