duxin 4 miesięcy temu
rodzic
commit
b7de469617
2 zmienionych plików z 106 dodań i 0 usunięć
  1. 2 0
      run/orderFlush/main.go
  2. 104 0
      run/orderFlush/product/bigmember.go

+ 2 - 0
run/orderFlush/main.go

@@ -83,6 +83,8 @@ func FlushOrder(ctx context.Context) error {
 				g.Log().Error(ctx, "格式化超级订阅订单%s 异常%v", orderCode, err.Error())
 			}
 			service_type = vip_type + 1
+		case "大会员", "大会员-子账号", "大会员-AI中标预测包", "大会员-招标文件解读", "大会员-补充包":
+			newFilterMap, product_code, err = product.GetBigFilter(m)
 		case "历史数据", "结构化数据":
 			var (
 				data_spec    = gconv.String(m["data_spec"])

+ 104 - 0
run/orderFlush/product/bigmember.go

@@ -0,0 +1,104 @@
+package product
+
+import (
+	"context"
+	"fmt"
+	"github.com/gogf/gf/v2/frame/g"
+	"github.com/gogf/gf/v2/util/gconv"
+	"strings"
+)
+
+type (
+	JyBigProductFilter struct {
+		ComboId          int `json:"comboId"`
+		BuyAccountCount  int `json:"buyAccountCount"`  //购买数量
+		GiftAccountCount int `json:"giftAccountCount"` //赠送数量
+		FreeAccountCount int `json:"freeAccountCount"` //免费数量
+
+		Count int `json:"count"` //招投标次数免费数量
+
+		BuyCycle   int      `json:"buy_cycle"`  //购买周期
+		BuyType    int      `json:"buy_type"`   //购买周期 类型 1天 2月 3年 4季度
+		GiftCycle  int      `json:"give_cycle"` //赠送周期
+		GiftType   int      `json:"give_type"`  //赠送周期 类型 1天 2月 3年 4季度
+		ServiceIds []string `json:"serviceIds"` //服务id
+
+		SupServiceIds     []string `json:"supServiceIds"`
+		FinalAccountCount int      `json:"finalAccountCount"` //当前套餐最终
+		FinalAreaCount    int      `json:"finalAreaCount"`
+	}
+)
+
+func GetBigFilter(data map[string]interface{}) (g.Map, string, error) {
+	var (
+		bigFilter g.Map
+		bigCode   string
+	)
+	filter := gconv.Map(data["filter"])
+	if filter["comboId"] != nil {
+		bigFilter["comboId"] = gconv.Int(filter["comboId"])
+	} else {
+		//1:专业版;2:智慧版;3:商机版;4:试用版 5:试用版 6:商机版2.0 7:专家版2.0 30190:商机版2.0(单省版)
+		bigFilter["comboId"] = gconv.Int(filter["level"])
+	}
+	switch bigFilter["comboId"] {
+	case 0:
+		bigCode = "dyh001"
+	case 3:
+		bigCode = "dyh005"
+	case 6:
+		bigCode = "dyh002"
+	case 7:
+		bigCode = "dyh003"
+	case 30190:
+		bigCode = "dyh004"
+	}
+
+	ctx := context.Background()
+	bigFilter["finalAreaCount"] = -1
+	if gconv.Int(filter["areaCount"]) > 0 {
+		bigFilter["finalAreaCount"] = gconv.Int(filter["areaCount"])
+	}
+
+	switch gconv.String(data["product_type"]) {
+	case "大会员", "大会员-子账号":
+		bigFilter["buy_cycle"] = gconv.Int(filter["cycle"])
+		if gconv.Int(filter["level"]) == 4 || gconv.Int(filter["cycleType"]) == 1 {
+			bigFilter["buy_type"] = 1
+		} else if gconv.Int(filter["cycleType"]) == 0 {
+			bigFilter["buy_type"] = 2
+		} else {
+			bigFilter["buy_type"] = 3
+		}
+		bigFilter["buyAccountCount"] = gconv.Int(data["buy_count"]) //购买账号数
+		if gconv.Int(filter["pay_sub_num"]) > 0 {                   //老订单购买的付费账号
+			bigFilter["buyAccountCount"] = gconv.Int(bigFilter["buyAccountCount"]) + gconv.Int(filter["pay_sub_num"])
+		}
+		bigFilter["freeAccountCount"] = gconv.Int(filter["free_sub_num"])
+		bigFilter["finalAccountCount"] = gconv.Int(bigFilter["buyAccountCount"]) + gconv.Int(bigFilter["freeAccountCount"])
+
+		switch gconv.Int(filter["createType"]) {
+		case 2:
+			if supServiceId := gconv.String(filter["new_serverArr"]); supServiceId != "" {
+				bigFilter["supServiceIds"] = strings.Split(supServiceId, ",")
+				bigFilter["serviceIds"] = strings.Split(gconv.String(filter["serversId"]), ",")
+			} else {
+				bigFilter["supServiceIds"] = strings.Split(gconv.String(filter["serversId"]), ",")
+				ids, _ := g.DB().Ctx(ctx).GetOne(ctx, fmt.Sprintf(`SELECT ROUP_CONCAT(DISTINCT s_serviceid ORDER BY s_serviceid SEPARATOR ',') AS concatenated_ids FROM bigmember_service_user WHERE s_userid ='%s'`, gconv.String(data["user_id"])))
+				if !ids.IsEmpty() {
+					bigFilter["serviceIds"] = strings.Split(gconv.String(ids.Map()["concatenated_ids"]), ",")
+				}
+			}
+		}
+	case "大会员-AI中标预测包", "大会员-招标文件解读":
+		bigFilter["buyAccountCount"] = gconv.Int(filter["count"])
+	case "大会员-补充包": //补充服务为原有服务 增加份数
+		bigFilter["serviceIds"] = strings.Split(gconv.String(filter["serversId"]), ",")
+		var supIds []string
+		for _, m := range gconv.Maps(filter["supplys"]) { //补充服务id
+			supIds = append(supIds, gconv.String(m["id"]))
+		}
+		bigFilter["supServiceIds"] = supIds
+	}
+	return bigFilter, bigCode, nil
+}