fonchain-artshow/cmd/service/show_apply.go

182 lines
4.2 KiB
Go
Raw Normal View History

2022-09-21 06:30:52 +00:00
package service
import (
2022-11-11 05:13:19 +00:00
"fmt"
2022-09-21 06:30:52 +00:00
"fonchain-artshow/cmd/dao"
"fonchain-artshow/cmd/model"
2022-09-22 06:23:56 +00:00
"fonchain-artshow/pb/artShow"
2022-10-27 08:06:36 +00:00
"fonchain-artshow/pkg/m"
2022-09-21 06:30:52 +00:00
"fonchain-artshow/pkg/serializer"
2022-11-30 03:01:14 +00:00
"log"
2022-09-21 06:30:52 +00:00
)
2022-11-11 05:13:19 +00:00
// 创建画展包申请
func CreateShowApply(in *artShow.SaveApplyReq) (err error, applyUID string) {
2022-09-21 06:30:52 +00:00
showApply := serializer.BuildShowApply(in)
2022-11-11 05:13:19 +00:00
err = dao.SaveShowApply(showApply)
2022-09-21 06:30:52 +00:00
if err != nil {
return
}
2022-11-11 05:13:19 +00:00
return err, showApply.ApplyUID
2022-09-21 06:30:52 +00:00
}
2022-11-11 05:13:19 +00:00
// 更新画展包申请 及 关联记录
func UpdateShowApplyWithShowRel(in *artShow.SaveApplyReq) (err error, applyUID string) {
2022-09-21 06:30:52 +00:00
// 更新画展包申请
showApply := serializer.BuildShowApply(in)
2022-11-11 05:13:19 +00:00
tx, err := dao.UpdateShowApply(showApply)
2022-09-21 06:30:52 +00:00
if err != nil {
tx.Rollback()
return
}
2022-11-11 05:13:19 +00:00
// 更新 关联的 画展包的状态 为 已展
2022-09-21 06:30:52 +00:00
if len(in.Rel) > 0 {
2022-10-27 08:06:36 +00:00
// 保存 新 show_rel
2022-11-11 05:13:19 +00:00
newShowRelS := serializer.BuildShowRelM(in.Rel, showApply.ApplyUID)
2022-11-30 03:01:14 +00:00
for i := 0; i < len(newShowRelS); i++ {
log.Printf("%+v\n", newShowRelS[i])
}
2022-10-27 08:06:36 +00:00
err, _ := dao.SaveShowRels(tx, newShowRelS)
2022-11-11 05:13:19 +00:00
if err != nil {
tx.Rollback()
return err, showApply.ApplyUID
}
2022-10-27 08:06:36 +00:00
for i := 0; i < len(newShowRelS); i++ {
// 更新 画展包状态 为 已展
2022-11-11 05:13:19 +00:00
show := serializer.BuildArtShowIsShowM(newShowRelS[i].ShowUID, m.ARTSHOW_SHOWING)
err := dao.UpdateArtShow(tx, show)
2022-10-27 08:06:36 +00:00
if err != nil {
tx.Rollback()
2022-11-11 05:13:19 +00:00
return err, showApply.ApplyUID
2022-10-27 08:06:36 +00:00
}
2022-09-21 06:30:52 +00:00
}
2022-11-11 05:13:19 +00:00
}
2022-09-21 06:30:52 +00:00
2022-11-11 05:13:19 +00:00
// 更新 取消关联的 画展包的状态 为 可展
if len(in.DelRel) > 0 {
del := make([]string, 0)
for i := 0; i < len(in.DelRel); i++ {
del = append(del, in.DelRel[i].ShowRelUID)
2022-09-21 06:30:52 +00:00
2022-11-11 05:13:19 +00:00
// 更新 画展包状态 为 可展
show := serializer.BuildArtShowIsShowM(in.DelRel[i].ShowUID, m.ARTSHOW_PASS)
err := dao.UpdateArtShow(tx, show)
2022-10-27 08:06:36 +00:00
if err != nil {
tx.Rollback()
2022-11-11 05:13:19 +00:00
return err, showApply.ApplyUID
2022-10-27 08:06:36 +00:00
}
2022-11-11 05:13:19 +00:00
}
2022-10-27 08:06:36 +00:00
2022-11-11 05:13:19 +00:00
// 删除关联记录
err = dao.DelShowRel(tx, del)
if err != nil {
tx.Rollback()
return err, showApply.ApplyUID
2022-09-21 06:30:52 +00:00
}
}
2022-11-11 05:13:19 +00:00
2022-09-21 06:30:52 +00:00
err = tx.Commit().Error
2022-11-11 05:13:19 +00:00
return err, showApply.ApplyUID
2022-09-21 06:30:52 +00:00
}
2022-11-11 05:13:19 +00:00
// 更新画展包申请状态
2022-09-22 06:23:56 +00:00
func UpdateShowApplyStatus(in *artShow.UpdateApplyStatusReq) (err error) {
2022-09-21 06:30:52 +00:00
showApply := &model.ShowApply{
2022-11-11 05:13:19 +00:00
ApplyUID: in.ApplyUID,
Status: int(in.Status),
Remark: in.Remark,
2022-09-21 06:30:52 +00:00
}
2022-11-11 05:13:19 +00:00
tx, err := dao.UpdateShowApply(showApply)
2022-09-21 06:30:52 +00:00
if err != nil {
tx.Rollback()
return
}
err = tx.Commit().Error
return
}
2022-11-11 05:13:19 +00:00
// 查询画展包申请列表
2022-09-22 06:23:56 +00:00
func ShowApplyList(in *artShow.ApplyListReq) (err error, total int64, out []*artShow.ApplyDetail) {
out = make([]*artShow.ApplyDetail, 0)
2022-09-21 06:30:52 +00:00
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
}
2022-11-11 05:13:19 +00:00
// 查询画展包申请详情
func ShowApplyDetail(applyUID string) (err error, out *artShow.ApplyShowRes) {
2022-09-22 06:23:56 +00:00
out = new(artShow.ApplyShowRes)
2022-09-21 06:30:52 +00:00
2022-11-11 05:13:19 +00:00
err, showApply := dao.ShowApplyDetail(applyUID)
2022-09-21 06:30:52 +00:00
if err != nil {
return
}
out.Apply = serializer.BuildShowApplyRes(showApply)
2022-11-11 05:13:19 +00:00
err, artShow := dao.ArtShowList_apply(applyUID)
2022-09-21 06:30:52 +00:00
if err != nil {
return
}
out.Show = serializer.BuildArtShowListRes(artShow)
2022-11-11 05:13:19 +00:00
fmt.Println(out.Show)
2022-09-21 06:30:52 +00:00
return
}
2022-11-11 05:13:19 +00:00
// 删除画展包申请记录
func DelApplyByApplyUID(in *artShow.DelApplyReq) (err error) {
2022-09-21 06:30:52 +00:00
tx, err := dao.DelShowApply(in)
if err != nil {
tx.Rollback()
return
}
2022-11-11 05:13:19 +00:00
for i := 0; i < len(in.ApplyUID); i++ {
err = dao.DelShowRelByApplyUID(tx, in.ApplyUID[i])
2022-09-21 06:30:52 +00:00
if err != nil {
tx.Rollback()
return
}
2022-11-11 05:13:19 +00:00
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
}
}
}
2022-09-21 06:30:52 +00:00
}
err = tx.Commit().Error
return
}
2022-11-11 05:13:19 +00:00
// 查询画展包申请关联记录
func QueryShowRel_showUID(showUID string) (err error, out *model.ShowRel) {
2022-09-21 06:30:52 +00:00
out = new(model.ShowRel)
2022-11-11 05:13:19 +00:00
err, out = dao.QueryShowRel_showUID(showUID)
2022-09-21 06:30:52 +00:00
if err != nil {
return err, nil
}
return
}