فهرست منبع

增加系统配置接口

kobe6258 4 ماه پیش
والد
کامیت
c3740e4aa2
3فایلهای تغییر یافته به همراه51 افزوده شده و 22 حذف شده
  1. 48 19
      controllers/order.go
  2. 2 2
      controllers/sys_config.go
  3. 1 1
      models/product_order.go

+ 48 - 19
controllers/order.go

@@ -503,26 +503,55 @@ func (this *OrderController) ExportProductOrder() {
 		return
 	}
 	var ListView []models.ProductOrderView
-	for _, order := range List {
-		view := models.ProductOrderView{
-			OrderID:          order.OrderID,
-			RealName:         order.RealName,
-			Mobile:           fmt.Sprintf("+%s %s", order.AreaCode, order.Mobile),
-			ProductType:      ProductTypeMap[order.ProductType],
-			ProductName:      order.ProductName,
-			TotalAmount:      order.TotalAmount,
-			TradeNO:          order.TradeNO,
-			RefundAmount:     order.RefundAmount,
-			PaymentWay:       PaymentWayMap[order.PaymentWay],
-			PaymentTime:      order.PaymentTime.Format(time.DateTime),
-			Status:           ProductOrderStatus[order.Status],
-			RefundStatus:     RefundStatusMap[order.RefundStatus],
-			RefundFinishTime: order.RefundFinishTime.Format(time.DateTime),
-			Remark:           order.Remark,
-			CreatedTime:      order.CreatedTime.Format(time.DateTime),
-		}
-		ListView = append(ListView, view)
+	var wg sync.WaitGroup
+	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:   orderItem.TotalAmount,
+				TradeNO:       orderItem.TradeNO,
+				RefundAmount:  orderItem.RefundAmount,
+				RefundTradeId: orderItem.RefundTradeId,
+				PaymentWay:    PaymentWayMap[orderItem.PaymentWay],
+				PaymentAmount: orderItem.PaymentAmount,
+				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 %.2f", tradeOrder.Currency, 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())
+				} 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 = "永久有效"
+					}
+				}
+			}
+			if orderItem.Status == models.OrderStatusRefund && orderItem.RefundStatus == models.RefundStatusSuccess {
+				view.RefundFinishTime = orderItem.RefundFinishTime.Format(time.DateTime)
+			}
+			ListView = append(ListView, view)
+		}(orderItem)
 	}
+	wg.Wait()
 	year, month, day := time.Now().Date()
 	yearStr := strconv.Itoa(year)[2:]
 	fileName := fmt.Sprintf("商品订单%s.%d.%d.xlsx", yearStr, month, day)

+ 2 - 2
controllers/sys_config.go

@@ -23,12 +23,12 @@ const (
 )
 const (
 	// configCode
-	PaymentWay = "paymentWay"
+	PaymentWayCode = "paymentWay"
 )
 
 // SysConfigMap 用于存储错误码和错误信息的映射
 var SysConfigMap = map[string]*Config{
-	PaymentWay: {ConfigId: 1003, ConfigType: ConfigTypeStr, Json: true},
+	PaymentWayCode: {ConfigId: 1003, ConfigType: ConfigTypeStr, Json: true},
 }
 
 func GetConfig(code string) *Config {

+ 1 - 1
models/product_order.go

@@ -93,7 +93,7 @@ func GetProductOrderByCondition(condition string, sortCondition string, startSiz
 	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&list)
 	return
 }
-func GetProductOrderListByCondition(condition string, sortCondition string) (list []*ProductOrder, err error) {
+func GetProductOrderListByCondition(condition string, sortCondition string) (list []ProductOrder, err error) {
 	o := orm.NewOrm()
 	sql := `select * from product_orders where is_deleted=0`
 	if condition != "" {