fonchain-fiee/pkg/service/paybill.go

595 lines
18 KiB
Go
Raw Normal View History

2025-02-19 06:24:15 +00:00
package service
import (
"context"
"fmt"
"dubbo.apache.org/dubbo-go/v3/common/logger"
artShow "github.com/fonchain_enterprise/fonchain-main/api/artShow"
"github.com/fonchain_enterprise/fonchain-main/api/artwork_third_party"
"github.com/fonchain_enterprise/fonchain-main/api/paybill"
"github.com/fonchain_enterprise/fonchain-main/pkg/e"
"github.com/fonchain_enterprise/fonchain-main/pkg/logic"
"github.com/fonchain_enterprise/fonchain-main/pkg/serializer"
"github.com/gin-gonic/gin"
)
func PayBillList(c *gin.Context) {
//声明一个变量
var req paybill.PayBillListreq
if err := c.ShouldBind(&req); err != nil {
logger.Errorf("PayBillList ShouldBind err", err)
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
// 账单列表
resp, err := GrpcPayBillImpl.PayBillList(context.Background(), &req)
if err != nil {
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
if resp.Data == nil || len(resp.Data) == 0 {
ResponseMsg(c, e.SUCCESS, serializer.Response{
Data: resp,
Status: e.Ok,
})
return
}
retPayBillInfo := make([]*paybill.PayBillListres_Info, 0)
//前端是否传经纪人
if req.Agent == "" {
showDetailReq := artShow.ShowDetailReq{}
uids := make([]string, 0)
for i := 0; i < len(resp.Data); i++ {
uids = append(uids, resp.Data[i].ShowUid)
}
showDetailReq.ShowUID = uids
showDetailRes, err := GrpcArtShowImpl.ShowDetail(context.Background(), &showDetailReq)
if err != nil {
ResponseMsg(c, e.InvalidParams, serializer.Response{
Msg: err.Error(),
Status: e.Failed,
})
return
}
// 把画家画展次数塞进列表,屎山堆屎不能怪我,实在不想看这块代码
showMap := make(map[string]*artShow.ShowDetail)
for _, singleShow := range showDetailRes.Data {
showMap[singleShow.ShowUID] = singleShow
}
for _, data := range resp.Data {
if showMap[data.ShowUid] != nil {
data.ArtistShowCount = showMap[data.ShowUid].ArtistShowCount
} else {
data.ArtistShowCount = ""
}
}
fmt.Println(showDetailRes.Data)
fmt.Println("showDetailRes.Data 的len:", showDetailRes.Data)
// if len(showDetailRes.Data) < 1 {
// logger.Errorf("ShowDetail query err :", "画展包信息为空,请选择其他日期")
// ResponseMsg(c, e.SUCCESS, serializer.Response{
// Data: resp,
// Msg: "画展包信息为空,请选择其他日期",
// Status: 0,
// })
// return
// }
// // 组装 画展包付款单 基础信息
// artworkData := make(map[string]*artwork_third_party.AwDataByShowIdResponse_Info, 0)
// artworkData := make(map[string]*paybill.PayBillListres_Info, 0)
fmt.Println("++++++++++++++++++++++++++++++++++++++++++++++")
fmt.Println(len(resp.Data))
fmt.Println("==============================================")
for i := 0; i < len(resp.Data); i++ {
// 账单列表 画作及画家信息
for j := 0; j < len(showDetailRes.Data); j++ {
if showDetailRes.Data[j].ShowUID == resp.Data[i].ShowUid {
// resp.Data[i].ArtistName = data.Data[j].ArtistName
resp.Data[i].Agent = showDetailRes.Data[j].Agent
// resp.Data[i].BankName = showDetailRes.Data[j].BankName
// resp.Data[i].BankNum = showDetailRes.Data[j].BankNum
break
}
}
// artworkData[resp.Data[i].ShowUID] = resp.Data[i]
}
// // 组装 获取 画作 基础信息参数
artworkDataReq := artwork_third_party.AwDataByShowIdRequest{}
artworkDataReq.ArtShowIds = uids
// // 获取 画作 基础信息 以及 画家 账户信息
data, err := GrpcArtworkThirdPartyImpl.AwDataByShowId(context.Background(), &artworkDataReq)
if err != nil {
logger.Errorf("AwDataByShowId query err", err)
ResponseMsg(c, e.SUCCESS, serializer.Response{
Msg: err.Error(),
Status: e.Ok,
})
fmt.Println(len(data.Data))
return
}
if len(data.Data) < 1 {
logger.Errorf("ExportShowPrice query params err :", "画作信息为空")
ResponseMsg(c, e.SUCCESS, serializer.Response{
Data: resp,
Msg: "画作信息为空",
Status: e.Ok,
})
return
}
// // 组装 画作 基础信息
// artworkData := make(map[string]*artwork_third_party.AwDataByShowIdResponse_Info, 0)
// artworkData := make(map[string]*paybill.PayBillListres_Info, 0)
fmt.Println("++++++++++++++++++++++++++++++++++++++++++++++")
fmt.Println(len(resp.Data))
fmt.Println("==============================================")
for i := 0; i < len(resp.Data); i++ {
// 账单列表 画作及画家信息
for j := 0; j < len(data.Data); j++ {
if data.Data[j].ArtShowId == resp.Data[i].ShowUid {
// resp.Data[i].ArtistName = data.Data[j].ArtistName
// resp.Data[i].Agent = data.Data[j].Agent
resp.Data[i].BankName = data.Data[j].BankName
resp.Data[i].BankNum = data.Data[j].BankNum
break
}
}
// artworkData[resp.Data[i].ShowUID] = resp.Data[i]
}
// ResponseQuickMsg(c, e.Ok, resp.Msg, resp.Data)
// return
retPayBillInfo = resp.Data
//ResponseQuickMsg(c, e.Ok, resp.Msg, resp)
} else {
showListReq := artShow.ShowListReq{}
uids := make([]string, 0)
for i := 0; i < len(resp.Data); i++ {
uids = append(uids, resp.Data[i].ShowUid)
}
fmt.Println(uids)
showListReq.Agent = req.Agent
showListReq.IsShow = append(showListReq.IsShow, 4)
showListReq.StartShowTime = req.StartShowDate
showListReq.EndShowTime = req.EndShowDate
showListReq.ArtistName = req.ArtistName
showListRes, err := GrpcArtShowImpl.ShowListWithRel(context.Background(), &showListReq)
fmt.Println(showListRes.Data)
if len(showListRes.Data) == 0 {
// 经纪人参数不为空但是showListRes.Data为空的处理逻辑
logger.Errorf("ShowListWithRel query err: 未查到相关经纪人,需用汉字查询")
ResponseQuickMsg(c, e.Ok, "未查到相关经纪人,需用汉字查询", "未查到相关经纪人,需用汉字查询")
return
}
fmt.Println("ShowListWithRel err is : ", err)
if err != nil {
ResponseMsg(c, e.SUCCESS, serializer.Response{
Msg: err.Error(),
Status: e.Failed,
})
return
}
if len(showListRes.Data) > 0 {
for i := 0; i < len(uids); i++ {
for j := 0; j < len(showListRes.Data); j++ {
if uids[i] == showListRes.Data[j].ShowUID {
resp.Data[i].Agent = showListRes.Data[j].Agent
// break
}
}
}
}
// 组装 获取 画作 基础信息参数
artworkDataReq := artwork_third_party.AwDataByShowIdRequest{}
uidshow := make([]string, 0)
for i := 0; i < len(showListRes.Data); i++ {
uidshow = append(uidshow, showListRes.Data[i].ShowUID)
}
artworkDataReq.ArtShowIds = uidshow
fmt.Println("artworkDataReq.ArtShowIds is :", artworkDataReq.ArtShowIds)
// // 获取 画作 基础信息 以及 画家 账户信息
data, err := GrpcArtworkThirdPartyImpl.AwDataByShowId(context.Background(), &artworkDataReq)
fmt.Println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
fmt.Println(len(data.Data))
if err != nil {
logger.Errorf("AwDataByShowId query err", err)
ResponseMsg(c, e.SUCCESS, serializer.Response{
Msg: err.Error(),
Status: e.Failed,
})
return
}
if len(data.Data) < 1 {
logger.Errorf("ExportShowPrice query params err :", "画作信息为空")
ResponseMsg(c, e.SUCCESS, serializer.Response{
Data: showListRes.Data,
// Msg: "画作信息为空1",
Status: e.Ok,
})
return
}
// // 组装 画作 基础信息
// artworkData := make(map[string]*artwork_third_party.AwDataByShowIdResponse_Info, 0)
// artworkData := make(map[string]*paybill.PayBillListres_Info, 0)
fmt.Println("++++++++++++++++++++++++++++++++++++++++++++++")
fmt.Println(len(showListRes.Data))
fmt.Println("==============================================")
for _, respItem := range resp.Data {
found := false
for _, dataItem := range data.Data {
if found {
break
}
for _, showItem := range showListRes.Data {
if dataItem.ArtShowId == showItem.ShowUID && showItem.ShowUID == respItem.ShowUid {
respItem.BankName = dataItem.BankName
respItem.BankNum = dataItem.BankNum
retPayBillInfo = append(retPayBillInfo, respItem)
found = true
break
}
}
}
}
resp.Data = retPayBillInfo
//ResponseQuickMsg(c, e.Ok, resp.Msg, resp)
}
ResponseQuickMsg(c, e.Ok, resp.Msg, resp)
return
}
func UpdatePayBill(c *gin.Context) {
var req paybill.UpdatePayBillreq
if err := c.ShouldBind(&req); err != nil {
logger.Errorf("PayBillUpdate ShouldBind err", err)
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
resp, err := GrpcPayBillImpl.UpdatePayBill(context.Background(), &req)
if err != nil {
ResponseQuickMsg(c, e.Ok, resp.Msg, nil)
return
}
ResponseQuickMsg(c, e.Ok, resp.Msg, nil)
return
}
// 回滚画展包状态
func RollbackState(c *gin.Context) {
var req paybill.RollbackStatereq
if err := c.ShouldBind(&req); err != nil {
logger.Errorf("RollbackState ShouldBind err", err)
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
resp, err := GrpcPayBillImpl.RollbackState(context.Background(), &req)
if err != nil {
ResponseQuickMsg(c, e.Ok, resp.Msg, nil)
return
}
ResponseQuickMsg(c, e.Ok, resp.Msg, nil)
return
}
// 未处理画展包数量
func NoCount(c *gin.Context) {
var req paybill.NoCountreq
if err := c.ShouldBind(&req); err != nil {
logger.Errorf("Count ShouldBind err", err)
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
resp, err := GrpcPayBillImpl.NoCount(context.Background(), &req)
if err != nil {
ResponseQuickMsg(c, e.Ok, "返回值有问题", nil)
return
}
ResponseQuickMsg(c, e.Ok, "成功", resp)
return
}
// 付款单导出
func ExcelBill(c *gin.Context) {
var req paybill.PayBillListreq
if err := c.ShouldBind(&req); err != nil {
logger.Errorf("PayBillList ShouldBind err", err)
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
// 账单列表
resp, err := GrpcPayBillImpl.PayBillList(context.Background(), &req)
if err != nil {
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
payBillList := make([]*paybill.PayBillListres_Info, 0)
for i := 0; i < len(resp.Data); i++ {
if resp.Data[i].Rollback == 1 {
payBillList = append(payBillList, resp.Data[i])
}
}
if len(payBillList) < 1 {
ResponseQuickMsg(c, e.Failed, "暂无数据可导出", nil)
return
}
// // 组装 获取 画作 基础信息参数
// artworkDataReq := artwork_third_party.AwDataByShowIdRequest{}
// uids := make([]string, 0)
// for i := 0; i < len(resp.Data); i++ {
// uids = append(uids, resp.Data[i].ShowUid)
// }
// artworkDataReq.ArtShowIds = uids
// fmt.Println(artworkDataReq.ArtShowIds)
// // // 获取 画作 基础信息 以及 画家 账户信息
// data, err := GrpcArtworkThirdPartyImpl.AwDataByShowId(context.Background(), &artworkDataReq)
// if err != nil {
// logger.Errorf("AwDataByShowId query err", err)
// ResponseMsg(c, e.SUCCESS, serializer.Response{
// Msg: err.Error(),
// Status: e.Ok,
// })
// fmt.Println(len(data.Data))
// return
// }
// if len(data.Data) < 1 {
// logger.Errorf("ExportShowPrice query params err :", "画作信息为空")
// ResponseMsg(c, e.SUCCESS, serializer.Response{
// Data: resp.Data,
// Msg: "画作信息为空",
// Status: e.Ok,
// })
// return
// }
// // // 组装 画作 基础信息
// // artworkData := make(map[string]*artwork_third_party.AwDataByShowIdResponse_Info, 0)
// // artworkData := make(map[string]*paybill.PayBillListres_Info, 0)
// for i := 0; i < len(resp.Data); i++ {
// // 账单列表 画作及画家信息
// for j := 0; j < len(data.Data); j++ {
// if data.Data[j].ArtShowId == resp.Data[i].ShowUid {
// // resp.Data[i].ArtistName = data.Data[j].ArtistName
// resp.Data[i].Agent = data.Data[j].Agent
// resp.Data[i].BankName = data.Data[j].BankName
// resp.Data[i].BankNum = data.Data[j].BankNum
// break
// }
// }
// // artworkData[resp.Data[i].ShowUID] = resp.Data[i]
// }
showDetailReq := artShow.ShowDetailReq{}
uids := make([]string, 0)
for i := 0; i < len(payBillList); i++ {
uids = append(uids, payBillList[i].ShowUid)
}
showDetailReq.ShowUID = uids
showDetailRes, err := GrpcArtShowImpl.ShowDetail(context.Background(), &showDetailReq)
if err != nil {
ResponseMsg(c, e.InvalidParams, serializer.Response{
Msg: err.Error(),
Status: e.Failed,
})
return
}
fmt.Println(showDetailRes.Data)
fmt.Println("showDetailRes.Data 的len:", showDetailRes.Data)
if len(showDetailRes.Data) < 1 {
logger.Errorf("ShowDetail query err :", "画展包信息为空,请选择其他日期")
ResponseMsg(c, e.SUCCESS, serializer.Response{
Data: "",
Msg: "画展包信息为空,请选择其他日期",
Status: 0,
})
return
}
// // 组装 画展包付款单 基础信息
// artworkData := make(map[string]*artwork_third_party.AwDataByShowIdResponse_Info, 0)
// artworkData := make(map[string]*paybill.PayBillListres_Info, 0)
fmt.Println("++++++++++++++++++++++++++++++++++++++++++++++")
fmt.Println(len(payBillList))
fmt.Println("==============================================")
for i := 0; i < len(payBillList); i++ {
// 账单列表 画作及画家信息
for j := 0; j < len(showDetailRes.Data); j++ {
if showDetailRes.Data[j].ShowUID == payBillList[i].ShowUid {
// resp.Data[i].ArtistName = data.Data[j].ArtistName
payBillList[i].Agent = showDetailRes.Data[j].Agent
// resp.Data[i].BankName = showDetailRes.Data[j].BankName
// resp.Data[i].BankNum = showDetailRes.Data[j].BankNum
break
}
}
// artworkData[resp.Data[i].ShowUID] = resp.Data[i]
}
// // 组装 获取 画作 基础信息参数
artworkDataReq := artwork_third_party.AwDataByShowIdRequest{}
artworkDataReq.ArtShowIds = uids
// // 获取 画作 基础信息 以及 画家 账户信息
data, err := GrpcArtworkThirdPartyImpl.AwDataByShowId(context.Background(), &artworkDataReq)
if err != nil {
logger.Errorf("AwDataByShowId query err", err)
ResponseMsg(c, e.SUCCESS, serializer.Response{
Msg: err.Error(),
Status: e.Ok,
})
fmt.Println(len(data.Data))
return
}
if len(data.Data) < 1 {
logger.Errorf("ExportShowPrice query params err :", "画作信息为空")
ResponseMsg(c, e.SUCCESS, serializer.Response{
Data: resp,
Msg: "画作信息为空",
Status: e.Ok,
})
return
}
// // 组装 画作 基础信息
// artworkData := make(map[string]*artwork_third_party.AwDataByShowIdResponse_Info, 0)
// artworkData := make(map[string]*paybill.PayBillListres_Info, 0)
fmt.Println("++++++++++++++++++++++++++++++++++++++++++++++")
fmt.Println(len(payBillList))
fmt.Println("==============================================")
for i := 0; i < len(payBillList); i++ {
// 账单列表 画作及画家信息
for j := 0; j < len(data.Data); j++ {
if data.Data[j].ArtShowId == payBillList[i].ShowUid {
// resp.Data[i].ArtistName = data.Data[j].ArtistName
// resp.Data[i].Agent = data.Data[j].Agent
payBillList[i].BankName = data.Data[j].BankName
payBillList[i].BankNum = data.Data[j].BankNum
break
}
}
// artworkData[resp.Data[i].ShowUID] = resp.Data[i]
}
fmt.Println("导出画展包测试:", resp.Data)
var exportUrl string
if exportUrl, err = logic.PayBillExcel(c, payBillList); err != nil {
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
ResponseQuickMsg(c, e.Ok, resp.Msg, map[string]string{
"ExportUrl": exportUrl,
})
return
}
// 下拉框画家所有列表
func ArtistAll(c *gin.Context) {
var req paybill.ArtistAllreq
if err := c.ShouldBind(&req); err != nil {
logger.Errorf("ArtistList ShouldBind err", err)
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
//下拉框
resp, err := GrpcPayBillImpl.ArtistAll(context.Background(), &req)
if err != nil {
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
ResponseQuickMsg(c, e.Ok, resp.Msg, resp.Data)
return
}
// 根据画家来查找画展包付款单
func ArtistBill(c *gin.Context) {
var req paybill.ArtistBillreq
if err := c.ShouldBind(&req); err != nil {
logger.Errorf("ArtistBill ShouldBind err", err)
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
//查找画展包付款单
resp, err := GrpcPayBillImpl.ArtistBill(context.Background(), &req)
if err != nil {
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
// 组装 获取 画作 基础信息参数
artworkDataReq := artwork_third_party.AwDataByShowIdRequest{}
uids := make([]string, 0)
for i := 0; i < len(resp.Data); i++ {
uids = append(uids, resp.Data[i].ShowUid)
}
artworkDataReq.ArtShowIds = uids
// 获取 画作 基础信息 以及 画家 账户信息
data, err := GrpcArtworkThirdPartyImpl.AwDataByShowId(context.Background(), &artworkDataReq)
if err != nil {
logger.Errorf("AwDataByShowId query err", err)
ResponseMsg(c, e.SUCCESS, serializer.Response{
Msg: err.Error(),
Status: e.Ok,
})
fmt.Println(len(data.Data))
return
}
if len(data.Data) < 1 {
logger.Errorf("ExportShowPrice query params err :", "画作信息为空")
ResponseMsg(c, e.SUCCESS, serializer.Response{
Data: resp.Data,
Msg: "画作信息为空",
Status: e.Ok,
})
return
}
// 组装 画作 基础信息
// artworkData := make(map[string]*artwork_third_party.AwDataByShowIdResponse_Info, 0)
// artworkData := make(map[string]*paybill.PayBillListres_Info, 0)
fmt.Println("++++++++++++++++++++++++++++++++++++++++++++++")
fmt.Println(len(resp.Data))
fmt.Println("==============================================")
for i := 0; i < len(resp.Data); i++ {
// 账单列表 画作及画家信息
for j := 0; j < len(data.Data); j++ {
if data.Data[j].ArtShowId == resp.Data[i].ShowUid {
// resp.Data[i].ArtistName = data.Data[j].ArtistName
resp.Data[i].Agent = data.Data[j].Agent
resp.Data[i].BankName = data.Data[j].BankName
resp.Data[i].BankNum = data.Data[j].BankNum
break
}
}
// artworkData[resp.Data[i].ShowUID] = resp.Data[i]
}
ResponseQuickMsg(c, e.Ok, resp.Msg, resp.Data)
return
}
// 根据画展包uid和姓名来更新画展包时间和地址
func UpdateAddress(c *gin.Context) {
var req paybill.UpdateAddressreq
if err := c.ShouldBind(&req); err != nil {
logger.Errorf("UpdateAddress ShouldBind err", err)
ResponseQuickMsg(c, e.Failed, err.Error(), nil)
return
}
resp, err := GrpcPayBillImpl.UpdateAddress(context.Background(), &req)
if err != nil {
ResponseQuickMsg(c, e.Ok, resp.Msg, nil)
return
}
ResponseQuickMsg(c, e.Ok, resp.Msg, nil)
return
}