Browse Source

增加系统配置接口

kobe6258 4 tháng trước cách đây
mục cha
commit
c786bc0aa4

+ 1 - 1
controllers/web_hook/htfutures_trade_controller.go

@@ -32,7 +32,7 @@ func (h *HTFuturesTradeController) InformPaymentResult() {
 		if s.Success {
 			productOrderNo, _ := orderService.DealPayment(s.TradeOrderNo, orderService.PaySuccess)
 			//privateKey, err := authUtils.ParsePrivateKey(htConfig.GetWebhookPrivateKey())
-			_ = product.OpenProduct(s.User, productOrderNo)
+			_ = product.OpenProduct(productOrderNo)
 		} else {
 			_, _ = orderService.DealPayment(s.TradeOrderNo, orderService.PayFail)
 		}

+ 4 - 4
domian/order/product_order.go

@@ -106,7 +106,7 @@ func CreateProductOrder(orderDTO ProductOrderDTO) (orderNo string, err error) {
 	return
 }
 
-func convertProductOrderDTO(order orderDao.ProductOrder) (orderDTO ProductOrderDTO) {
+func ConvertProductOrderDTO(order orderDao.ProductOrder) (orderDTO ProductOrderDTO) {
 	orderDTO = ProductOrderDTO{
 		ID:             order.ID,
 		OrderID:        order.OrderID,
@@ -250,7 +250,7 @@ func GetOrderPage(pageInfo page.PageInfo, userId int, orderStatus string) (order
 		return
 	}
 	for _, order := range orderList {
-		orderDTOS = append(orderDTOS, convertProductOrderDTO(order))
+		orderDTOS = append(orderDTOS, ConvertProductOrderDTO(order))
 	}
 	return
 }
@@ -266,7 +266,7 @@ func GetUserOrderByProduct(productId int, userId int, status string) (orderDTO P
 		logger.Error("获取产品信息失败:%v", err)
 		return
 	}
-	orderDTO = convertProductOrderDTO(order)
+	orderDTO = ConvertProductOrderDTO(order)
 	orderDTO.ProductName = product.Title
 	orderDTO.ProductDescription = product.Description
 	return
@@ -335,7 +335,7 @@ func GetOrderByUser(templateUserId int, orderNo string) (orderDTO ProductOrderDT
 		logger.Error("获取产品信息失败:%v", err)
 		return
 	}
-	orderDTO = convertProductOrderDTO(order)
+	orderDTO = ConvertProductOrderDTO(order)
 	orderDTO.ProductName = product.Title
 	orderDTO.ProductDescription = product.Description
 	return

+ 8 - 3
domian/order/trade_order.go

@@ -204,7 +204,7 @@ func DealRefund(refundOrderNo string, flag string) (dto RefundDealFlowDTO, err e
 	_ = createRefundMetaInfo(flow.OperatorUserID, flow.ProductOrderNo, flag)
 	return
 }
-func DealPayment(tradeOrderNo string, flag string) (productOrderNo string, err error) {
+func DealPayment(tradeOrderNo string, flag string) (productOrderDTO ProductOrderDTO, err error) {
 	//处理退款订单
 	tradeOrder, err := order.GetTradeOrderByNo(tradeOrderNo, order.PaymentTypePay)
 	if err != nil {
@@ -220,7 +220,12 @@ func DealPayment(tradeOrderNo string, flag string) (productOrderNo string, err e
 		logger.Error("处理支付结果失败%v,支付订单:%s", err, tradeOrderNo)
 		return
 	}
-	productOrderNo = tradeOrder.ProductOrderID
+	var productOrder order.ProductOrder
+	productOrder, err = order.GetOrderByOrderNo(tradeOrder.ProductOrderID)
+	if err != nil {
+		logger.Error("获取产品订单失败%v,支付订单:%s", err, tradeOrderNo)
+		return
+	}
+	productOrderDTO = ConvertProductOrderDTO(productOrder)
 	return
-
 }

+ 3 - 0
domian/user/user_subscription_service.go

@@ -7,3 +7,6 @@ import (
 func GetUserSubscribe(productIds []int, userId int) (list []subscribeDao.UserSubscriptionAccessList, err error) {
 	return subscribeDao.GetUserSubscribe(productIds, userId)
 }
+func GetNeedExpiredAccessCount() (count int) {
+	return subscribeDao.GetNeedExpiredAccessCount()
+}

+ 9 - 0
models/merchant/user_subscription_access_list.go

@@ -117,3 +117,12 @@ func GetTotalUserPageCountByProductType(productType string, templateUserId int)
 	}
 	return
 }
+
+func GetNeedExpiredAccessCount() (count int) {
+	db := models.Main()
+	err := db.Model(&UserSubscriptionAccessList{}).Select("count(*)").Where(" product_type=? and status=? ", Package, SubscribeValid).Scan(&count).Error
+	if err != nil {
+		logger.Error("查询用户订阅总数失败:%s", err)
+	}
+	return
+}

+ 19 - 11
service/product/product_service.go

@@ -7,6 +7,7 @@ import (
 	permissionService "eta/eta_mini_ht_api/domian/config"
 	mediaDomain "eta/eta_mini_ht_api/domian/media"
 	merchantService "eta/eta_mini_ht_api/domian/merchant"
+	orderDomain "eta/eta_mini_ht_api/domian/order"
 	reportDomain "eta/eta_mini_ht_api/domian/report"
 	"eta/eta_mini_ht_api/domian/user"
 	"eta/eta_mini_ht_api/models/config"
@@ -161,21 +162,16 @@ func convertToProductDTO(product merchantService.MerchantProductDTO) (productDTO
 }
 
 // OpenProduct 开通产品
-func OpenProduct(templateUserId int, productOrderNo string) (err error) {
-	productOrder, err := order.GetProductOrderByUser(templateUserId, productOrderNo)
-	if err != nil {
-		logger.Error("获取产品订单信息失败:%v", err)
-		return
-	}
+func OpenProduct(productOrder orderDomain.ProductOrderDTO) (err error) {
 	product, err := merchantService.GetMerchantProductById(productOrder.ProductID)
 	if err != nil {
 		logger.Error("获取产品信息失败:%v", err)
 		return
 	}
-	return merchantService.OpenProduct(templateUserId, productOrderNo, product)
+	return merchantService.OpenProduct(productOrder.TemplateUserID, productOrder.OrderID, product)
 }
 
-// OpenProduct 开通产品
+// CloseProduct  退款关闭套餐
 func CloseProduct(templateUserId int, productOrderNo string) (err error) {
 	productOrder, err := order.GetProductOrderByUser(templateUserId, productOrderNo)
 	if err != nil {
@@ -190,9 +186,21 @@ func CloseProduct(templateUserId int, productOrderNo string) (err error) {
 	return merchantService.CloseProduct(templateUserId, productOrderNo, product)
 }
 
-//过期产品(套餐)
-
-// 退款关闭套餐
+// 过期产品
+func ExpireProduct() (err error) {
+	_ = user.GetNeedExpiredAccessCount()
+	//if err != nil {
+	//	logger.Error("获取产品订单信息失败:%v", err)
+	//	return
+	//}
+	//product, err := merchantService.GetMerchantProductById(productOrder.ProductID)
+	//if err != nil {
+	//	logger.Error("获取产品信息失败:%v", err)
+	//	return
+	//}
+	//return merchantService.CloseProduct(productOrderNo, product)
+	return
+}
 func GetRelatePackage(info ProductDTO) (prodList []ProductDTO, err error) {
 	switch info.Type {
 	case "audio", "video":

+ 33 - 0
task/product/product_expire_task.go

@@ -0,0 +1,33 @@
+package sms
+
+import (
+	logger "eta/eta_mini_ht_api/common/component/log"
+	"eta/eta_mini_ht_api/common/contants"
+	productService "eta/eta_mini_ht_api/service/product"
+	"eta/eta_mini_ht_api/task/base"
+)
+
+var (
+	taskName base.TaskType = "ExpireProductTask"
+	cron                   = "59 59 23 * * *"
+)
+
+// Execute Task ETA取研报的数据
+func (st *OrderTask) Execute(taskDetail *base.TaskDetail) error {
+	logger.Info(contants.TaskFormat, "处理到期产品开始")
+
+	err := productService.ExpireProduct()
+	if err != nil {
+		logger.Error("处理到期产品失败:%v", err)
+	}
+	logger.Info(contants.TaskFormat, "处理到期产品结束")
+	return err
+}
+
+type OrderTask struct {
+}
+
+func init() {
+	orderTask := base.NewTask(taskName, cron, new(OrderTask), base.PROD)
+	base.RegisterTask(&orderTask)
+}