package service import ( "fonchain-artshow/cmd/dao" "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" "fonchain-artshow/pkg/m" "fonchain-artshow/pkg/serializer" "gorm.io/gorm" ) func CreateShowApply(in *artShow.SaveApplyReq) (err error, applyID uint) { showApply := serializer.BuildShowApply(in) tx, err := dao.SaveShowApply(showApply) if err != nil { tx.Rollback() return } err = tx.Commit().Error // 申请画展包时,暂时不携带画展包信息 /* showRels := serializer.BuildShowRel(in.Rel, showApply.ID) err = dao.SaveShowRels(tx, showRels) if err != nil { tx.Rollback() return } err = tx.Commit().Error*/ return err, showApply.ID } func UpdateShowApplyWithShowRel(in *artShow.SaveApplyReq) (err error, applyID uint) { // 更新画展包申请 showApply := serializer.BuildShowApply(in) tx, err := dao.SaveShowApply(showApply) if err != nil { tx.Rollback() return } // 更新画展包申请关系 if len(in.Rel) > 0 { // 保存 新 show_rel newShowRelS := serializer.BuildShowRelM(in.Rel, showApply.ID) err, _ := dao.SaveShowRels(tx, newShowRelS) for i := 0; i < len(newShowRelS); i++ { // 更新 画展包状态 为 已展 show := serializer.BuildArtShowIsShowM(newShowRelS[i].ShowID, m.ARTSHOW_SHOWING) err := dao.SaveArtShow(tx, show) if err != nil { tx.Rollback() return err, showApply.ID } } if len(in.DelRel) > 0 { // 如果 旧 show_rel 有数据 则 删除 旧记录(去除 保留下来的) del := make([]int64, 0) for i := 0; i < len(in.DelRel); i++ { del = append(del, in.DelRel[i].ID) // 更新 画展包状态 为 可展 show := serializer.BuildArtShowIsShowM(newShowRelS[i].ShowID, m.ARTSHOW_PASS) err := dao.SaveArtShow(tx, show) if err != nil { tx.Rollback() return err, showApply.ID } } err = dao.DelShowRel(tx, del) if err != nil { tx.Rollback() return err, showApply.ID } } } err = tx.Commit().Error return err, showApply.ID } func UpdateShowApplyStatus(in *artShow.UpdateApplyStatusReq) (err error) { // 更新画展包申请 状态 showApply := &model.ShowApply{ Model: gorm.Model{ID: uint(in.ApplyID)}, Status: int(in.Status), Remark: in.Remark, } tx, err := dao.SaveShowApply(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(applyID uint) (err error, out *artShow.ApplyShowRes) { out = new(artShow.ApplyShowRes) err, showApply := dao.ShowApplyDetail(applyID) if err != nil { return } out.Apply = serializer.BuildShowApplyRes(showApply) err, artShow := dao.ArtShowList_apply(applyID) if err != nil { return } out.Show = serializer.BuildArtShowListRes(artShow) return } func DelApplyByApplyID(in *artShow.DelApplyReq) (err error) { tx, err := dao.DelShowApply(in) if err != nil { tx.Rollback() return } for i := 0; i < len(in.ApplyID); i++ { err = dao.DelShowRelByApplyID(tx, uint(in.ApplyID[i])) if err != nil { tx.Rollback() return } } err = tx.Commit().Error return } func QueryShowRel_showId(showID int64) (err error, out *model.ShowRel) { out = new(model.ShowRel) err, out = dao.QueryShowRel_showId(showID) if err != nil { return err, nil } return }