Browse Source

完善招募策略

shenzekai 2 năm trước cách đây
mục cha
commit
3ceec9b248

+ 2 - 6
db/recruit_strategy.go

@@ -26,16 +26,12 @@ func DeleteRecruitStrategyByProjectID(ctx context.Context, projectID int64) erro
 	return nil
 }
 
-func CalculateSelectedNumberByRecruitStrategyID(ctx context.Context, recruitstrategyID int64, selected_number int64) error {
+func CalculateSelectedNumberByRecruitStrategyID(ctx context.Context, recruitstrategyIDs []int64, AddNumber int64) error {
 	db := GetReadDB(ctx)
-	err := db.Where("recruit_strategy_id = ?", recruitstrategyID).Update("selected_number", selected_number).Error
-	err1 := db.Where("recruit_strategy_id = ?", recruitstrategyID).Update("waiting_number", selected_number).Error
+	err := db.Model(gorm_model.RecruitStrategy{}).Where("recruit_strategy_id in ?", recruitstrategyIDs).Updates(map[string]interface{}{"selected_number": gorm.Expr("selected_number + ?", AddNumber), "waiting_number": gorm.Expr("waiting_number + ?", AddNumber)}).Error
 	if err != nil {
 		return err
 	}
-	if err1 != nil {
-		return err
-	}
 	return nil
 }
 

+ 24 - 7
db/task.go

@@ -41,18 +41,35 @@ func GetProjectIdByTaskId(ctx context.Context, taskID int64) (*int, error) {
 	return &task.ProjectID, nil
 }
 
-func ChangeTaskStatus(ctx context.Context, taskIds []string, taskStatus string) error {
+func ChangeTaskStatus(ctx context.Context, taskIds []string, taskStatus string) ([]int64, error) {
 	db := GetReadDB(ctx)
-	taskInfo := gorm_model.YoungeeTaskInfo{}
+
 	taskSta, err := strconv.Atoi(taskStatus)
 	if err != nil {
-		return err
+		logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]1 error query mysql total, err:%+v", err)
+		return nil, err
 	}
-	if err := db.Debug().Model(&taskInfo).Where("task_id IN ?", taskIds).
+	if err := db.Debug().Model(&gorm_model.YoungeeTaskInfo{}).Where("task_id IN ?", taskIds).
 		Updates(gorm_model.YoungeeTaskInfo{TaskStatus: taskSta}).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]2 error query mysql total, err:%+v", err)
+		return nil, err
+	}
 
-		logrus.WithContext(ctx).Errorf("[ChangeTaskStatus] error query mysql total, err:%+v", err)
-		return err
+	var taskInfos []gorm_model.YoungeeTaskInfo
+	err = db.Debug().Model(&gorm_model.YoungeeTaskInfo{}).Where("task_id IN ?", taskIds).Find(&taskInfos).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]3 error query mysql total, err:%+v", err)
+		return nil, err
 	}
-	return nil
+	var recruitStrategysIDs []int64
+	recruitStrategys := gorm_model.RecruitStrategy{}
+	for _, taskInfo := range taskInfos {
+		err2 := db.Debug().Model(gorm_model.RecruitStrategy{}).Where("project_id=? AND strategy_id=?", taskInfo.ProjectID, taskInfo.StrategyID).Scan(&recruitStrategys).Error
+		if err2 != nil {
+			logrus.WithContext(ctx).Errorf("[ChangeTaskStatus]4 error query mysql total, err:%+v", err2)
+			return nil, err2
+		}
+		recruitStrategysIDs = append(recruitStrategysIDs, recruitStrategys.RecruitStrategyID)
+	}
+	return recruitStrategysIDs, nil
 }

+ 0 - 71
handler/recruitStrategy_number_calculate.go

@@ -1,71 +0,0 @@
-package handler
-
-import (
-	"youngee_b_api/consts"
-	"youngee_b_api/model/http_model"
-	"youngee_b_api/service"
-	"youngee_b_api/util"
-
-	"github.com/sirupsen/logrus"
-
-	"github.com/gin-gonic/gin"
-)
-
-// WrapProjectChangeTaskStatusHandler
-// @BasePath /youngee/m/
-// SendCode godoc
-// @Summary ProjectChangeTaskStatus 更改项目任务状态
-// @Schemes
-// @Description  更改项目任务的状态
-// @Accept json
-// @Produce json
-// @Param req body http_model.ProjectChangeTaskStatusRequest true "更改项目任务状态的请求结构体"
-// @Success 200 {object} http_model.CommonResponse{} "更改项目任务状态相应结构体"
-// @Router /product/changeTaskStatus [post]
-func WrapRecruitStrategyNumberCalculate(ctx *gin.Context) {
-	handler := newRecruitStrategyNumberCalculate(ctx)
-	baseRun(handler)
-}
-
-func newRecruitStrategyNumberCalculate(ctx *gin.Context) *RecruitStrategyNumberCalculateHandler {
-	return &RecruitStrategyNumberCalculateHandler{
-		req:  http_model.NewRecruitStrategyNumberCalculateRequst(),
-		resp: http_model.NewRecruitStrategyNumberCalculateResponse(),
-		ctx:  ctx,
-	}
-}
-
-type RecruitStrategyNumberCalculateHandler struct {
-	req  *http_model.RecruitStrategyNumberCalculateRequest
-	resp *http_model.CommonResponse
-	ctx  *gin.Context
-}
-
-func (p *RecruitStrategyNumberCalculateHandler) getContext() *gin.Context {
-	return p.ctx
-}
-
-func (p *RecruitStrategyNumberCalculateHandler) getResponse() interface{} {
-	return p.resp
-}
-
-func (p *RecruitStrategyNumberCalculateHandler) getRequest() interface{} {
-	return p.req
-}
-
-func (p *RecruitStrategyNumberCalculateHandler) run() {
-	data := http_model.RecruitStrategyNumberCalculateRequest{}
-	data = *p.req
-	err := service.Recruitstrategy.RecruitStrategyNumberCalculate(p.ctx, data)
-	if err != nil {
-		logrus.Errorf("[ChangeTaskStatusHandler] call Create err:%+v\n", err)
-		util.HandlerPackErrorResp(p.resp, consts.ErrorInternal, "")
-		logrus.Info("ChangeTaskStatus fail,req:%+v", p.req)
-		return
-	}
-	p.resp.Message = "已选数量变更成功"
-}
-
-func (p *RecruitStrategyNumberCalculateHandler) checkParam() error {
-	return nil
-}

+ 1 - 1
route/init.go

@@ -55,7 +55,7 @@ func InitRoute(r *gin.Engine) {
 		m.POST("/pay/paysum", handler.WrapPaySumHandler)
 		m.POST("/pay/projectpay", handler.WrapProjectPayHandler)
 		m.POST("/enterprise/balance", handler.WrapEnterpriseBalanceHandler)
-		m.POST("/project/recruitstrategycalculate", handler.WrapRecruitStrategyNumberCalculate)
+		//m.POST("/project/recruitstrategycalculate", handler.WrapRecruitStrategyNumberCalculate)
 		m.POST("/project/tasklogisticslist", handler.WrapTaskLogisticsListHandler)
 		m.POST("/project/createlogistics", handler.WrapCreateLogisticsHandler)
 		m.POST("/project/signforreceipt", handler.WrapSignForReceiptHandler)

+ 14 - 1
service/project.go

@@ -283,10 +283,23 @@ func (*project) GetTaskLogisticsList(ctx context.Context, projectID string, page
 }
 
 func (*project) ChangeTaskStatus(ctx *gin.Context, data http_model.ProjectChangeTaskStatusRequest) interface{} {
-	err := db.ChangeTaskStatus(ctx, data.TaskIds, data.TaskStatus)
+	RecruitStrategyIDs, err := db.ChangeTaskStatus(ctx, data.TaskIds, data.TaskStatus)
 	if err != nil {
 		logrus.WithContext(ctx).Errorf("[project service] call ChangeTaskStatus error,err:%+v", err)
 		return err
 	}
+	if data.TaskStatus == "2" {
+		err = db.CalculateSelectedNumberByRecruitStrategyID(ctx, RecruitStrategyIDs, 1)
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[project service] call ChangeTaskStatus error,err:%+v", err)
+			return err
+		}
+	} else {
+		err = db.CalculateSelectedNumberByRecruitStrategyID(ctx, RecruitStrategyIDs, -1)
+		if err != nil {
+			logrus.WithContext(ctx).Errorf("[project service] call ChangeTaskStatus error,err:%+v", err)
+			return err
+		}
+	}
 	return nil
 }

+ 0 - 29
service/recruitstrategy.go

@@ -1,29 +0,0 @@
-package service
-
-import (
-	"context"
-	"github.com/sirupsen/logrus"
-	"youngee_b_api/db"
-	"youngee_b_api/model/http_model"
-)
-
-var Recruitstrategy *recruitstrategy
-
-type recruitstrategy struct {
-}
-
-func (*recruitstrategy) RecruitStrategyNumberCalculate(ctx context.Context, recruitstrategy http_model.RecruitStrategyNumberCalculateRequest) error {
-	AddSub := recruitstrategy.AddSub
-	selected_number := recruitstrategy.SelectedNumber
-	if AddSub {
-		selected_number += 1
-	} else {
-		selected_number -= 1
-	}
-	err := db.CalculateSelectedNumberByRecruitStrategyID(ctx, recruitstrategy.RecruitStrategyID, selected_number)
-	if err != nil {
-		logrus.WithContext(ctx).Errorf("[RecruitStrategy] call RecruitStrategyNumberCalculate error,err:%+v", err)
-		return err
-	}
-	return nil
-}