You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
2.4 KiB
Go

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"
"strconv"
)
func ArtworkPriceInfo(in *artShow.ArtworkPriceReq) (err error, artworkPriceRes *artShow.ArtworkPriceRes) {
err, artworkPrice := dao.QueryArtworkPrice_artworkUID(in.ArtworkUID)
if err != nil {
return
}
artworkPriceRes = serializer.BuildArtworkPriceRes(artworkPrice)
return
}
func ArtworkPriceList(in *artShow.ShowDetailReq) (err error, artworkPriceList []*artShow.ArtworkPriceDetail) {
list := make([]*model.ArtworkPrice, 0)
artworkPriceList = make([]*artShow.ArtworkPriceDetail, 0)
err, list = dao.ArtworkPriceList(in.ShowUID[len(in.ShowUID)-1])
if len(list) > 0 {
artworkPriceList = serializer.BuildShowArtworkListRpc(list)
}
return
}
func UpdateArtworkPriceReward(in *artShow.UpdateArtworkRewardReq) (err error) {
var (
showUid string
reward int
)
tx := db.DbArtShow.Begin()
for i := 0; i < len(in.Data); i++ {
err, artwork := dao.QueryArtworkPrice_uid(in.Data[i].ArtworkPriceUid)
if err != nil {
tx.Rollback()
return err
}
if showUid == "" {
showUid = artwork.ShowUID
}
artworkReward, _ := strconv.Atoi(in.Data[i].Reward)
reward += int(artwork.Ruler) * artworkReward
err = dao.UpdateArtworkInfoWithMap(tx, map[string]interface{}{"reward": in.Data[i].Reward}, "", in.Data[i].ArtworkPriceUid)
if err != nil {
tx.Rollback()
return err
}
}
err = dao.UpdateArtShow(tx, &model.ArtShow{
ShowUID: showUid,
IsShow: m.ARTSHOW_REWARD_PASS,
Reward: int64(reward),
})
if err != nil {
fmt.Println("update art_show err is :", err)
return err
}
err = tx.Commit().Error
return err
}
func UpdateArtworkPriceSaleAddress(in *artShow.UpdateArtworkSaleAddressReq) (err error) {
err, artworkPrice := dao.QueryArtworkPrice_uid(in.Data[0].ArtworkPriceUid)
if err != nil {
return err
}
tx := db.DbArtShow.Begin()
err = dao.UpdateArtShow(tx, &model.ArtShow{
ShowUID: artworkPrice.ShowUID,
IsShow: m.ARTSHOW_SALE_ADDRESS_PASS,
})
if err != nil {
fmt.Println("update art_show err is :", err)
return err
}
for i := 0; i < len(in.Data); i++ {
err = dao.UpdateArtworkInfoWithMap(tx, map[string]interface{}{"sale_address": in.Data[i].SaleAddress}, "", in.Data[i].ArtworkPriceUid)
if err != nil {
tx.Rollback()
return err
}
}
err = tx.Commit().Error
return err
}