Parcourir la source

0808后端新

shenzekai il y a 1 an
Parent
commit
8ac8738e61

+ 9 - 3
db/selection.go

@@ -4,6 +4,7 @@ import (
 	"context"
 	"errors"
 	"fmt"
+	"github.com/issue9/conv"
 	"github.com/sirupsen/logrus"
 	"gorm.io/gorm"
 	"reflect"
@@ -74,16 +75,20 @@ func GetSelectionByEnterpiseIdAndProductId(ctx context.Context, enterpriseId str
 func GetSelectionList(ctx context.Context, enterpriseID string, pageSize, pageNum int64, conditions *common_model.SelectionConditions) ([]*gorm_model.YounggeeSelectionInfo, int64, error) {
 	db := GetReadDB(ctx)
 	db = db.Debug().Model(gorm_model.YounggeeSelectionInfo{}).Where("enterprise_id = ?", enterpriseID)
+
 	conditionType := reflect.TypeOf(conditions).Elem()
 	conditionValue := reflect.ValueOf(conditions).Elem()
+	fmt.Printf("状态内容:%v %v", conditionType, conditionValue)
 	selectionStatus := ""
 	searchValue := ""
 	for i := 0; i < conditionType.NumField(); i++ {
 		field := conditionType.Field(i)
 		tag := field.Tag.Get("condition")
+		fmt.Printf("Tag:%v %v", tag, field.Name)
 		value := conditionValue.FieldByName(field.Name)
 		if tag == "selection_status" {
-			selectionStatus = fmt.Sprintf("%v", value.Interface())
+			selectionStatus = fmt.Sprintf("%v", conv.MustInt(value.Interface()))
+			db = db.Where("selection_status = ?", selectionStatus)
 		} else if tag == "search_value" {
 			searchValue = fmt.Sprintf("%v", value.Interface())
 		} else if tag == "submit_at" && value.Interface() != "" {
@@ -103,9 +108,10 @@ func GetSelectionList(ctx context.Context, enterpriseID string, pageSize, pageNu
 	}
 	// 查询该页数据
 	limit := pageSize
-	offset := pageSize * pageNum // assert pageNum start with 0
+	offset := pageSize * pageNum // assert pageNum start with 0\
+	fmt.Printf("选品状态:%v", selectionStatus)
 	if selectionStatus == "1" {
-		err := db.Order("submit_at desc").Limit(int(limit)).Offset(int(offset)).Find(&selectionInfos).Error
+		err := db.Order("updated_at desc").Limit(int(limit)).Offset(int(offset)).Find(&selectionInfos).Error
 		if err != nil {
 			logrus.WithContext(ctx).Errorf("[GetSelectionList] error query mysql total, err:%+v", err)
 			return nil, 0, err

+ 18 - 17
model/http_model/UpdateSelection.go

@@ -1,23 +1,24 @@
 package http_model
 
 type UpdateSelectionRequest struct {
-	SelectionID     string            `json:"selection_id"` // 选品项目id
-	Platform        string            `json:"platform"`
-	ProductId       int               `json:"product_id"`
-	ContentType     int               `json:"content_type"`
-	TaskMode        int               `json:"task_mode"`
-	SampleNum       int               `json:"sample_num"`  // 样品数量
-	RemainNum       int               `json:"remain_num"`  // 剩余数量
-	TaskReward      float64           `json:"task_reward"` // 任务悬赏
-	TaskDdl         string            `json:"task_ddl"`
-	SampleMode      int               `json:"sample_mode"`
-	CommissionRate  int               `json:"commission_rate"`
-	ProductUrl      string            `json:"product_url"`
-	SampleCondition string            `json:"sample_condition"`
-	RewardCondition string            `json:"reward_condition"` // 返现悬赏条件
-	SecBrief        []*SecBriefInfo   `json:"sec_brief"`
-	SecExample      []*SecExampleInfo `json:"sec_example"`
-	Detail          string            `json:"detail"`
+	SelectionID      string            `json:"selection_id"` // 选品项目id
+	Platform         string            `json:"platform"`
+	ProductId        int               `json:"product_id"`
+	ContentType      int               `json:"content_type"`
+	TaskMode         int               `json:"task_mode"`
+	SampleNum        int               `json:"sample_num"`  // 样品数量
+	RemainNum        int               `json:"remain_num"`  // 剩余数量
+	TaskReward       float64           `json:"task_reward"` // 任务悬赏
+	TaskDdl          string            `json:"task_ddl"`
+	SampleMode       int               `json:"sample_mode"`
+	CommissionRate   int               `json:"commission_rate"`
+	ProductUrl       string            `json:"product_url"`
+	SettlementAmount float64           `json:"settlement_amount"` //结算金额
+	SampleCondition  string            `json:"sample_condition"`
+	RewardCondition  string            `json:"reward_condition"` // 返现悬赏条件
+	SecBrief         []*SecBriefInfo   `json:"sec_brief"`
+	SecExample       []*SecExampleInfo `json:"sec_example"`
+	Detail           string            `json:"detail"`
 }
 
 type SecBriefInfo struct {

+ 7 - 3
service/selection_service/selection.go

@@ -53,12 +53,13 @@ func (*selection) Create(ctx context.Context, request http_model.CreateSelection
 	newSelection := gorm_model.YounggeeSelectionInfo{
 		SelectionID:      selectionId,
 		SelectionName:    selectionName,
+		SelectionStatus:  1,
 		ProductID:        conv.MustInt(request.ProductId, 0),
 		EnterpriseID:     enterpriseId,
 		Platform:         conv.MustInt(request.Platform, 0),
 		ProductSnap:      string(productInfoToJson),
 		ProductPhotoSnap: string(productPhotosToJson),
-		CreatedAt:        time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC),
+		CreatedAt:        time.Now(),
 		SubmitAt:         time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC),
 		PassAt:           time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC),
 		PayAt:            time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC),
@@ -126,6 +127,8 @@ func (*selection) Update(ctx context.Context, request http_model.UpdateSelection
 		SampleNum:        conv.MustInt(request.SampleNum, 0),
 		RemainNum:        conv.MustInt(request.SampleNum, 0),
 		CommissionRate:   conv.MustInt(request.CommissionRate, 0),
+		TaskReward:       conv.MustString(request.TaskReward, "0"),
+		SettlementAmount: conv.MustString(request.SettlementAmount, "0"),
 		EstimatedCost:    estimatedCostToString,
 		SampleCondition:  request.SampleCondition,
 		RewardCondition:  request.RewardCondition,
@@ -138,9 +141,10 @@ func (*selection) Update(ctx context.Context, request http_model.UpdateSelection
 		SubmitAt:         time.Now(),
 	}
 	// 合并传入参数和数据表中原记录,若传入参数字段值为空,则将字段赋值为原记录中值
-	result := util.MergeStructValue(&updateSelection, &selectionInfo)
+	//fmt.Printf("MergeTest %+v %+v", updateSelection, selectionInfo)
+	result := util.MergeStructValue(&updateSelection, selectionInfo)
 	// 利用反射机制将interface类型转换为结构体类型
-	v := reflect.ValueOf(result).Elem()
+	v := reflect.ValueOf(&result).Elem()
 	if v.Kind() == reflect.Struct {
 		updateSelection = v.Interface().(gorm_model.YounggeeSelectionInfo)
 		//fmt.Println(p)

+ 5 - 2
util/structFunc.go

@@ -1,6 +1,9 @@
 package util
 
-import "reflect"
+import (
+	"fmt"
+	"reflect"
+)
 
 /*
 	合并两个结构体的值,遍历结构体s1,若s1中某字段值为空,则将s2该字段的值赋给s1,否则不变
@@ -14,9 +17,9 @@ func MergeStructValue(s1 interface{}, s2 interface{}) interface{} {
 		field := v1.Field(i)
 		name := v1.Type().Field(i).Name
 		if field.Interface() == reflect.Zero(field.Type()).Interface() {
+			fmt.Printf("%+v %+v", name, v1.Kind() == reflect.Ptr)
 			v1.FieldByName(name).Set(v2.FieldByName(name))
 		}
 	}
-
 	return v1
 }