|
@@ -15,7 +15,6 @@ import (
|
|
|
"net/url"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
- "sync"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -218,56 +217,50 @@ func (this *OrderController) ProductOrderList() {
|
|
|
return
|
|
|
}
|
|
|
var ListView []*models.ProductOrderView
|
|
|
- var wg sync.WaitGroup
|
|
|
- wg.Add(len(List))
|
|
|
for _, orderItem := range List {
|
|
|
- go func(orderItem *models.ProductOrder) {
|
|
|
- defer wg.Done()
|
|
|
- view := &models.ProductOrderView{
|
|
|
- OrderID: orderItem.OrderId,
|
|
|
- RealName: orderItem.RealName,
|
|
|
- Mobile: fmt.Sprintf("+%s %s", orderItem.AreaCode, orderItem.Mobile),
|
|
|
- ProductType: ProductTypeMap[orderItem.ProductType],
|
|
|
- ProductName: orderItem.ProductName,
|
|
|
- TotalAmount: fmt.Sprintf("¥%s", orderItem.TotalAmount),
|
|
|
- TradeNO: orderItem.TradeNo,
|
|
|
- RefundAmount: orderItem.RefundAmount,
|
|
|
- RefundTradeId: orderItem.RefundTradeId,
|
|
|
- PaymentWay: PaymentWayMap[orderItem.PaymentWay],
|
|
|
- PaymentTime: orderItem.PaymentTime.Format(time.DateTime),
|
|
|
- Status: ProductOrderStatus[orderItem.Status],
|
|
|
- RefundStatus: RefundStatusMap[orderItem.RefundStatus],
|
|
|
- Remark: orderItem.Remark,
|
|
|
- CreatedTime: orderItem.CreatedTime.Format(time.DateTime),
|
|
|
- }
|
|
|
- if orderItem.TradeNo != "" {
|
|
|
- view.PaymentTime = orderItem.PaymentTime.Format(time.DateTime)
|
|
|
- tradeOrder, tradeErr := models.GetTradeOrderByNo(orderItem.TradeNo)
|
|
|
- if tradeErr != nil {
|
|
|
- utils.FileLog.Error("获取支付订单失败,支付订单号:" + orderItem.TradeNo + ",err:" + tradeErr.Error())
|
|
|
- } else {
|
|
|
- view.PaymentAmount = fmt.Sprintf("¥%s", tradeOrder.Amount)
|
|
|
- }
|
|
|
+ view := &models.ProductOrderView{
|
|
|
+ OrderID: orderItem.OrderId,
|
|
|
+ RealName: orderItem.RealName,
|
|
|
+ Mobile: fmt.Sprintf("+%s %s", orderItem.AreaCode, orderItem.Mobile),
|
|
|
+ ProductType: ProductTypeMap[orderItem.ProductType],
|
|
|
+ ProductName: orderItem.ProductName,
|
|
|
+ TotalAmount: fmt.Sprintf("¥%s", orderItem.TotalAmount),
|
|
|
+ TradeNO: orderItem.TradeNo,
|
|
|
+ RefundAmount: orderItem.RefundAmount,
|
|
|
+ RefundTradeId: orderItem.RefundTradeId,
|
|
|
+ PaymentWay: PaymentWayMap[orderItem.PaymentWay],
|
|
|
+ PaymentTime: orderItem.PaymentTime.Format(time.DateTime),
|
|
|
+ Status: ProductOrderStatus[orderItem.Status],
|
|
|
+ RefundStatus: RefundStatusMap[orderItem.RefundStatus],
|
|
|
+ Remark: orderItem.Remark,
|
|
|
+ CreatedTime: orderItem.CreatedTime.Format(time.DateTime),
|
|
|
+ }
|
|
|
+ if orderItem.TradeNo != "" {
|
|
|
+ view.PaymentTime = orderItem.PaymentTime.Format(time.DateTime)
|
|
|
+ tradeOrder, tradeErr := models.GetTradeOrderByNo(orderItem.TradeNo)
|
|
|
+ if tradeErr != nil {
|
|
|
+ utils.FileLog.Error("获取支付订单失败,支付订单号:" + orderItem.TradeNo + ",err:" + tradeErr.Error())
|
|
|
+ } else {
|
|
|
+ view.PaymentAmount = fmt.Sprintf("¥%s", tradeOrder.Amount)
|
|
|
}
|
|
|
- if orderItem.Status == models.OrderStatusPaid {
|
|
|
- access, accessErr := models.GetAccess(orderItem.ProductId, orderItem.TemplateUserId)
|
|
|
- if accessErr != nil {
|
|
|
- utils.FileLog.Error("获取用户订阅记录失败,templateUserId:" + string(rune(orderItem.TemplateUserId)) + "productId:" + string(rune(orderItem.ProductId)) + ",err:" + accessErr.Error())
|
|
|
+ }
|
|
|
+ if orderItem.Status == models.OrderStatusPaid {
|
|
|
+ access, accessErr := models.GetAccess(orderItem.ProductId, orderItem.TemplateUserId)
|
|
|
+ if accessErr != nil {
|
|
|
+ utils.FileLog.Error("获取用户订阅记录失败,templateUserId:" + string(rune(orderItem.TemplateUserId)) + "productId:" + string(rune(orderItem.ProductId)) + ",err:" + accessErr.Error())
|
|
|
+ } else {
|
|
|
+ if access.ProductType == models.ProductPackage {
|
|
|
+ view.ValidDuration = fmt.Sprintf("%s~%s", access.BeginDate.Format(time.DateOnly), access.EndDate.Format(time.DateOnly))
|
|
|
} else {
|
|
|
- if access.ProductType == models.ProductPackage {
|
|
|
- view.ValidDuration = fmt.Sprintf("%s~%s", access.BeginDate.Format(time.DateOnly), access.EndDate.Format(time.DateOnly))
|
|
|
- } else {
|
|
|
- view.ValidDuration = "永久有效"
|
|
|
- }
|
|
|
+ view.ValidDuration = "永久有效"
|
|
|
}
|
|
|
}
|
|
|
- if orderItem.Status == models.OrderStatusRefund && orderItem.RefundStatus == models.RefundStatusSuccess {
|
|
|
- view.RefundFinishTime = orderItem.RefundFinishTime.Format(time.DateTime)
|
|
|
- }
|
|
|
- ListView = append(ListView, view)
|
|
|
- }(orderItem)
|
|
|
+ }
|
|
|
+ if orderItem.Status == models.OrderStatusRefund && orderItem.RefundStatus == models.RefundStatusSuccess {
|
|
|
+ view.RefundFinishTime = orderItem.RefundFinishTime.Format(time.DateTime)
|
|
|
+ }
|
|
|
+ ListView = append(ListView, view)
|
|
|
}
|
|
|
- wg.Wait()
|
|
|
page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
resp := new(response.ProductOrderListResp)
|
|
|
resp.List = ListView
|
|
@@ -362,37 +355,31 @@ func (this *OrderController) TradeOrderList() {
|
|
|
return
|
|
|
}
|
|
|
var ListView []*models.TradeOrderView
|
|
|
- var wg sync.WaitGroup
|
|
|
- wg.Add(len(List))
|
|
|
for i := 0; i < len(List); i++ {
|
|
|
- go func(order *models.TradeOrder) {
|
|
|
- defer wg.Done()
|
|
|
- view := &models.TradeOrderView{
|
|
|
- RealName: order.RealName,
|
|
|
- Mobile: fmt.Sprintf("+%s %s", order.AreaCode, order.Mobile),
|
|
|
- ProductName: order.ProductName,
|
|
|
- Amount: fmt.Sprintf("¥%s", order.Amount),
|
|
|
- TransactionID: order.TransactionId,
|
|
|
- ProductOrderID: order.ProductOrderId,
|
|
|
- PaymentWay: PaymentWayMap[order.PaymentWay],
|
|
|
- PaymentAccount: order.PaymentAccount,
|
|
|
- MerchantID: order.MerchantId,
|
|
|
-
|
|
|
- CreatedTime: order.CreatedTime.Format(time.DateTime),
|
|
|
- }
|
|
|
- if order.PaymentStatus == models.PaymentStatusDone {
|
|
|
- view.DealTime = order.DealTime.Format(time.DateTime)
|
|
|
- }
|
|
|
- if IsRefund {
|
|
|
- view.PaymentStatus = RefundOrderStatus[order.PaymentStatus]
|
|
|
- } else {
|
|
|
- view.PaymentStatus = TradeOrderStatus[order.PaymentStatus]
|
|
|
- }
|
|
|
- ListView = append(ListView, view)
|
|
|
- }(List[i])
|
|
|
+ order := List[i]
|
|
|
+ view := &models.TradeOrderView{
|
|
|
+ RealName: order.RealName,
|
|
|
+ Mobile: fmt.Sprintf("+%s %s", order.AreaCode, order.Mobile),
|
|
|
+ ProductName: order.ProductName,
|
|
|
+ Amount: fmt.Sprintf("¥%s", order.Amount),
|
|
|
+ TransactionID: order.TransactionId,
|
|
|
+ ProductOrderID: order.ProductOrderId,
|
|
|
+ PaymentWay: PaymentWayMap[order.PaymentWay],
|
|
|
+ PaymentAccount: order.PaymentAccount,
|
|
|
+ MerchantID: order.MerchantId,
|
|
|
|
|
|
+ CreatedTime: order.CreatedTime.Format(time.DateTime),
|
|
|
+ }
|
|
|
+ if order.PaymentStatus == models.PaymentStatusDone {
|
|
|
+ view.DealTime = order.DealTime.Format(time.DateTime)
|
|
|
+ }
|
|
|
+ if IsRefund {
|
|
|
+ view.PaymentStatus = RefundOrderStatus[order.PaymentStatus]
|
|
|
+ } else {
|
|
|
+ view.PaymentStatus = TradeOrderStatus[order.PaymentStatus]
|
|
|
+ }
|
|
|
+ ListView = append(ListView, view)
|
|
|
}
|
|
|
- wg.Wait()
|
|
|
page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
resp := new(response.TradeOrderListResp)
|
|
|
resp.List = ListView
|
|
@@ -506,58 +493,50 @@ func (this *OrderController) ExportProductOrder() {
|
|
|
return
|
|
|
}
|
|
|
var ListView []models.ProductOrderView
|
|
|
- var wg sync.WaitGroup
|
|
|
- wg.Add(len(List))
|
|
|
for _, orderItem := range List {
|
|
|
- go func(orderItem *models.ProductOrder) {
|
|
|
- defer func() {
|
|
|
- wg.Done()
|
|
|
- }()
|
|
|
- view := models.ProductOrderView{
|
|
|
- OrderID: orderItem.OrderId,
|
|
|
- RealName: orderItem.RealName,
|
|
|
- Mobile: fmt.Sprintf("+%s %s", orderItem.AreaCode, orderItem.Mobile),
|
|
|
- ProductType: ProductTypeMap[orderItem.ProductType],
|
|
|
- ProductName: orderItem.ProductName,
|
|
|
- TotalAmount: fmt.Sprintf("¥%s", orderItem.TotalAmount),
|
|
|
- TradeNO: orderItem.TradeNo,
|
|
|
- RefundAmount: orderItem.RefundAmount,
|
|
|
- RefundTradeId: orderItem.RefundTradeId,
|
|
|
- PaymentWay: PaymentWayMap[orderItem.PaymentWay],
|
|
|
- PaymentTime: orderItem.PaymentTime.Format(time.DateTime),
|
|
|
- Status: ProductOrderStatus[orderItem.Status],
|
|
|
- RefundStatus: RefundStatusMap[orderItem.RefundStatus],
|
|
|
- Remark: orderItem.Remark,
|
|
|
- CreatedTime: orderItem.CreatedTime.Format(time.DateTime),
|
|
|
- }
|
|
|
- if orderItem.TradeNo != "" {
|
|
|
- view.PaymentTime = orderItem.PaymentTime.Format(time.DateTime)
|
|
|
- tradeOrder, tradeErr := models.GetTradeOrderByNo(orderItem.TradeNo)
|
|
|
- if tradeErr != nil {
|
|
|
- utils.FileLog.Error("获取支付订单失败,支付订单号:" + orderItem.TradeNo + ",err:" + tradeErr.Error())
|
|
|
- } else {
|
|
|
- view.PaymentAmount = fmt.Sprintf("¥%s", tradeOrder.Amount)
|
|
|
- }
|
|
|
+ view := models.ProductOrderView{
|
|
|
+ OrderID: orderItem.OrderId,
|
|
|
+ RealName: orderItem.RealName,
|
|
|
+ Mobile: fmt.Sprintf("+%s %s", orderItem.AreaCode, orderItem.Mobile),
|
|
|
+ ProductType: ProductTypeMap[orderItem.ProductType],
|
|
|
+ ProductName: orderItem.ProductName,
|
|
|
+ TotalAmount: fmt.Sprintf("¥%s", orderItem.TotalAmount),
|
|
|
+ TradeNO: orderItem.TradeNo,
|
|
|
+ RefundAmount: orderItem.RefundAmount,
|
|
|
+ RefundTradeId: orderItem.RefundTradeId,
|
|
|
+ PaymentWay: PaymentWayMap[orderItem.PaymentWay],
|
|
|
+ PaymentTime: orderItem.PaymentTime.Format(time.DateTime),
|
|
|
+ Status: ProductOrderStatus[orderItem.Status],
|
|
|
+ RefundStatus: RefundStatusMap[orderItem.RefundStatus],
|
|
|
+ Remark: orderItem.Remark,
|
|
|
+ CreatedTime: orderItem.CreatedTime.Format(time.DateTime),
|
|
|
+ }
|
|
|
+ if orderItem.TradeNo != "" {
|
|
|
+ view.PaymentTime = orderItem.PaymentTime.Format(time.DateTime)
|
|
|
+ tradeOrder, tradeErr := models.GetTradeOrderByNo(orderItem.TradeNo)
|
|
|
+ if tradeErr != nil {
|
|
|
+ utils.FileLog.Error("获取支付订单失败,支付订单号:" + orderItem.TradeNo + ",err:" + tradeErr.Error())
|
|
|
+ } else {
|
|
|
+ view.PaymentAmount = fmt.Sprintf("¥%s", tradeOrder.Amount)
|
|
|
}
|
|
|
- if orderItem.Status == models.OrderStatusPaid {
|
|
|
- access, accessErr := models.GetAccess(orderItem.ProductId, orderItem.TemplateUserId)
|
|
|
- if accessErr != nil {
|
|
|
- utils.FileLog.Error("获取用户订阅记录失败,templateUserId:" + string(rune(orderItem.TemplateUserId)) + "productId:" + string(rune(orderItem.ProductId)) + ",err:" + accessErr.Error())
|
|
|
+ }
|
|
|
+ if orderItem.Status == models.OrderStatusPaid {
|
|
|
+ access, accessErr := models.GetAccess(orderItem.ProductId, orderItem.TemplateUserId)
|
|
|
+ if accessErr != nil {
|
|
|
+ utils.FileLog.Error("获取用户订阅记录失败,templateUserId:" + string(rune(orderItem.TemplateUserId)) + "productId:" + string(rune(orderItem.ProductId)) + ",err:" + accessErr.Error())
|
|
|
+ } else {
|
|
|
+ if access.ProductType == models.ProductPackage {
|
|
|
+ view.ValidDuration = fmt.Sprintf("%s~%s", access.BeginDate.Format(time.DateOnly), access.EndDate.Format(time.DateOnly))
|
|
|
} else {
|
|
|
- if access.ProductType == models.ProductPackage {
|
|
|
- view.ValidDuration = fmt.Sprintf("%s~%s", access.BeginDate.Format(time.DateOnly), access.EndDate.Format(time.DateOnly))
|
|
|
- } else {
|
|
|
- view.ValidDuration = "永久有效"
|
|
|
- }
|
|
|
+ view.ValidDuration = "永久有效"
|
|
|
}
|
|
|
}
|
|
|
- if orderItem.Status == models.OrderStatusRefund && orderItem.RefundStatus == models.RefundStatusSuccess {
|
|
|
- view.RefundFinishTime = orderItem.RefundFinishTime.Format(time.DateTime)
|
|
|
- }
|
|
|
- ListView = append(ListView, view)
|
|
|
- }(orderItem)
|
|
|
+ }
|
|
|
+ if orderItem.Status == models.OrderStatusRefund && orderItem.RefundStatus == models.RefundStatusSuccess {
|
|
|
+ view.RefundFinishTime = orderItem.RefundFinishTime.Format(time.DateTime)
|
|
|
+ }
|
|
|
+ ListView = append(ListView, view)
|
|
|
}
|
|
|
- wg.Wait()
|
|
|
year, month, day := time.Now().Date()
|
|
|
yearStr := strconv.Itoa(year)[2:]
|
|
|
fileName := fmt.Sprintf("商品订单%s.%d.%d.xlsx", yearStr, month, day)
|
|
@@ -644,36 +623,30 @@ func (this *OrderController) ExportTradeOrder() {
|
|
|
return
|
|
|
}
|
|
|
var ListView []models.TradeOrderView
|
|
|
- var wg sync.WaitGroup
|
|
|
- wg.Add(len(List))
|
|
|
for i := 0; i < len(List); i++ {
|
|
|
- go func(order *models.TradeOrder) {
|
|
|
- defer wg.Done()
|
|
|
- view := models.TradeOrderView{
|
|
|
- RealName: order.RealName,
|
|
|
- Mobile: fmt.Sprintf("+%s %s", order.AreaCode, order.Mobile),
|
|
|
- ProductName: order.ProductName,
|
|
|
- Amount: fmt.Sprintf("¥%s", order.Amount),
|
|
|
- TransactionID: order.TransactionId,
|
|
|
- ProductOrderID: order.ProductOrderId,
|
|
|
- PaymentWay: PaymentWayMap[order.PaymentWay],
|
|
|
- PaymentAccount: order.PaymentAccount,
|
|
|
- MerchantID: order.MerchantId,
|
|
|
- CreatedTime: order.CreatedTime.Format(time.DateTime),
|
|
|
- }
|
|
|
- if order.PaymentStatus == models.PaymentStatusDone {
|
|
|
- view.DealTime = order.DealTime.Format(time.DateTime)
|
|
|
- }
|
|
|
- if IsRefund {
|
|
|
- view.PaymentStatus = RefundOrderStatus[order.PaymentStatus]
|
|
|
- } else {
|
|
|
- view.PaymentStatus = TradeOrderStatus[order.PaymentStatus]
|
|
|
- }
|
|
|
- ListView = append(ListView, view)
|
|
|
- }(List[i])
|
|
|
-
|
|
|
+ order := List[i]
|
|
|
+ view := models.TradeOrderView{
|
|
|
+ RealName: order.RealName,
|
|
|
+ Mobile: fmt.Sprintf("+%s %s", order.AreaCode, order.Mobile),
|
|
|
+ ProductName: order.ProductName,
|
|
|
+ Amount: fmt.Sprintf("¥%s", order.Amount),
|
|
|
+ TransactionID: order.TransactionId,
|
|
|
+ ProductOrderID: order.ProductOrderId,
|
|
|
+ PaymentWay: PaymentWayMap[order.PaymentWay],
|
|
|
+ PaymentAccount: order.PaymentAccount,
|
|
|
+ MerchantID: order.MerchantId,
|
|
|
+ CreatedTime: order.CreatedTime.Format(time.DateTime),
|
|
|
+ }
|
|
|
+ if order.PaymentStatus == models.PaymentStatusDone {
|
|
|
+ view.DealTime = order.DealTime.Format(time.DateTime)
|
|
|
+ }
|
|
|
+ if IsRefund {
|
|
|
+ view.PaymentStatus = RefundOrderStatus[order.PaymentStatus]
|
|
|
+ } else {
|
|
|
+ view.PaymentStatus = TradeOrderStatus[order.PaymentStatus]
|
|
|
+ }
|
|
|
+ ListView = append(ListView, view)
|
|
|
}
|
|
|
- wg.Wait()
|
|
|
year, month, day := time.Now().Date()
|
|
|
yearStr := strconv.Itoa(year)[2:]
|
|
|
if IsRefund {
|