package service import ( "fmt" "fonchain-artshow/cmd/dao" "fonchain-artshow/cmd/model" "fonchain-artshow/pb/artShow" "fonchain-artshow/pkg/db" "fonchain-artshow/pkg/m" "fonchain-artshow/pkg/serializer" "log" ) // 创建画展包申请 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) for i := 0; i < len(newShowRelS); i++ { log.Printf("%+v\n", newShowRelS[i]) err, showRel := dao.QueryShowRel(newShowRelS[i].ApplyUID, newShowRelS[i].ShowUID) if err != nil { tx.Rollback() return err, showApply.ApplyUID } if showRel.ShowRelUID != "" { newShowRelS[i].ShowRelUID = showRel.ShowRelUID } } 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_SALE_ADDRESS_PASS) 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.DelShowRelWithUID(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 DelApplyRelByApplyUID(in *artShow.DelApplyReq) (err error) { //tx, err := dao.DelShowApply(in) //if err != nil { // tx.Rollback() // return //} // 不删除 画展的画展包数量申请 tx := db.DbArtShow.Begin() for i := 0; i < len(in.ApplyUID); i++ { err = dao.DelShowReWithApplyUID(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 }