Kaynağa Gözat

创建样式修改,草稿箱

shenzekai 2 yıl önce
ebeveyn
işleme
575dc32b42

+ 21 - 0
db/auto_default.go

@@ -0,0 +1,21 @@
+package db
+
+import (
+	"context"
+	log "github.com/sirupsen/logrus"
+	"youngee_b_api/model/gorm_model"
+)
+
+func GetLastAutoDefaultID() (int, error) {
+	db := GetReadDB(context.Background())
+	// 查找最后一个
+	LastDefault := gorm_model.InfoAutoDefaultHandle{}
+	result := db.Last(&LastDefault)
+	err := result.Error
+	if err != nil {
+		log.Println("DB GetLastAutoDefaultID:", err)
+		return 0, err
+	}
+	//fmt.Printf("auto task %+v %+v", result, LastTask)
+	return LastDefault.AutoDefaultID, nil
+}

+ 14 - 0
db/auto_task.go

@@ -21,6 +21,20 @@ func AutoUpdateStatus() error {
 	return nil
 }
 
+func GetLastAutoTaskID() (int, error) {
+	db := GetReadDB(context.Background())
+	// 查找最后一个
+	LastTask := gorm_model.InfoAutoTask{}
+	result := db.Last(&LastTask)
+	err := result.Error
+	if err != nil {
+		log.Println("DB GetLastAutoTaskID:", err)
+		return 0, err
+	}
+	//fmt.Printf("auto task %+v %+v", result, LastTask)
+	return LastTask.AutoTaskID, nil
+}
+
 func AutoUpdateApplyTimes() error {
 	db := GetReadDB(context.Background())
 	// 查询task表信息

+ 51 - 0
db/project.go

@@ -34,6 +34,15 @@ func UpdateProject(ctx context.Context, project gorm_model.ProjectInfo) (*int64,
 	return &project.ProjectID, nil
 }
 
+func DeleteProject(ctx context.Context, projectID int64) (*int64, error) {
+	db := GetReadDB(ctx)
+	err := db.Where("project_id = ?", projectID).Delete(&gorm_model.ProjectInfo{}).Error
+	if err != nil {
+		return nil, err
+	}
+	return &projectID, nil
+}
+
 func GetFullProjectList(ctx context.Context, enterpriseID int64, pageSize, pageNum int32, condition *common_model.ProjectCondition) ([]*gorm_model.ProjectInfo, int64, error) {
 	db := GetReadDB(ctx)
 	// 根据企业id过滤
@@ -76,6 +85,48 @@ func GetFullProjectList(ctx context.Context, enterpriseID int64, pageSize, pageN
 	return fullProjects, total, nil
 }
 
+func GetProjectDraftList(ctx context.Context, enterpriseID int64, pageSize, pageNum int32, condition *common_model.ProjectCondition) ([]*gorm_model.ProjectInfo, int64, error) {
+	db := GetReadDB(ctx)
+	// 根据企业id过滤
+	db = db.Debug().Model(gorm_model.ProjectInfo{}).Where("enterprise_id = ?", enterpriseID)
+	// 根据Project条件过滤
+	conditionType := reflect.TypeOf(condition).Elem()
+	conditionValue := reflect.ValueOf(condition).Elem()
+	for i := 0; i < conditionType.NumField(); i++ {
+		field := conditionType.Field(i)
+		tag := field.Tag.Get("condition")
+		value := conditionValue.FieldByName(field.Name)
+		if tag == "project_status" && util.IsBlank(value) {
+			db = db.Where(fmt.Sprintf("project_status = 1"))
+		}
+		if !util.IsBlank(value) && tag != "updated_at" && tag != "project_name" {
+			db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+		}
+		if tag == "updated_at" && value.Interface() != "0" {
+			db = db.Where(fmt.Sprintf("%s > ?", tag), value.Interface())
+		}
+		if tag == "project_name" && !util.IsBlank(value) {
+			db = db.Where(fmt.Sprintf("%s = ?", tag), value.Interface())
+		}
+	}
+	// 查询总数
+	var total int64
+	var projectDrafts []*gorm_model.ProjectInfo
+	if err := db.Count(&total).Error; err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectDraftList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	// 查询该页数据
+	limit := pageSize
+	offset := pageSize * pageNum // assert pageNum start with 0
+	err := db.Order("project_id").Limit(int(limit)).Offset(int(offset)).Find(&projectDrafts).Error
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[GetProjectDraftList] error query mysql total, err:%+v", err)
+		return nil, 0, err
+	}
+	return projectDrafts, total, nil
+}
+
 func GetProjectTaskList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TaskConditions) ([]*http_model.ProjectTaskInfo, int64, error) {
 	db := GetReadDB(ctx)
 	// 查询task表信息

+ 58 - 0
handler/project_delete.go

@@ -0,0 +1,58 @@
+package handler
+
+import (
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+	log "github.com/sirupsen/logrus"
+	"youngee_b_api/consts"
+	"youngee_b_api/model/http_model"
+	"youngee_b_api/service"
+	"youngee_b_api/util"
+)
+
+func WrapDeleteProjectHandler(ctx *gin.Context) {
+	handler := newDeleteProjectHandler(ctx)
+	baseRun(handler)
+}
+
+func newDeleteProjectHandler(ctx *gin.Context) *DeleteProjectHandler {
+	return &DeleteProjectHandler{
+		req:  http_model.NewDeleteProjectRequest(),
+		resp: http_model.NewDeleteProjectResponse(),
+		ctx:  ctx,
+	}
+}
+
+type DeleteProjectHandler struct {
+	req  *http_model.DeleteProjectRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *DeleteProjectHandler) getRequest() interface{} {
+	return h.req
+}
+func (h *DeleteProjectHandler) getContext() *gin.Context {
+	return h.ctx
+}
+func (h *DeleteProjectHandler) getResponse() interface{} {
+	return h.resp
+}
+func (h *DeleteProjectHandler) run() {
+	data := http_model.DeleteProjectRequest{}
+	data = *h.req
+	//auth := middleware.GetSessionAuth(h.ctx)
+	//enterpriseID := auth.EnterpriseID
+	res, err := service.Project.Delete(h.ctx, data.ProjectID)
+	if err != nil {
+		logrus.Errorf("[DeleteProjectHandler] call Show err:%+v\n", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, "")
+		log.Info("DeleteProject fail,req:%+v", h.req)
+		return
+	}
+	//h.resp.Message = "成功删除项目"
+	h.resp.Data = res
+}
+func (h *DeleteProjectHandler) checkParam() error {
+	return nil
+}

+ 97 - 0
handler/project_draft_list.go

@@ -0,0 +1,97 @@
+package handler
+
+import (
+	"errors"
+	"fmt"
+	"time"
+	"youngee_b_api/consts"
+	"youngee_b_api/middleware"
+	"youngee_b_api/model/http_model"
+	"youngee_b_api/pack"
+	"youngee_b_api/service"
+	"youngee_b_api/util"
+
+	"github.com/issue9/conv"
+
+	"github.com/gin-gonic/gin"
+	"github.com/sirupsen/logrus"
+)
+
+func WrapProjectDraftBoxListHandler(ctx *gin.Context) {
+	handler := newProjectDraftListHandler(ctx)
+	baseRun(handler)
+}
+
+func newProjectDraftListHandler(ctx *gin.Context) *ProjectDraftListHandler {
+	return &ProjectDraftListHandler{
+		req:  http_model.NewProjectDraftListRequest(),
+		resp: http_model.NewProjectDraftListResponse(),
+		ctx:  ctx,
+	}
+}
+
+type ProjectDraftListHandler struct {
+	req  *http_model.ProjectDraftListRequest
+	resp *http_model.CommonResponse
+	ctx  *gin.Context
+}
+
+func (h *ProjectDraftListHandler) getRequest() interface{} {
+	return h.req
+}
+func (h *ProjectDraftListHandler) getContext() *gin.Context {
+	return h.ctx
+}
+func (h *ProjectDraftListHandler) getResponse() interface{} {
+	return h.resp
+}
+func (h *ProjectDraftListHandler) run() {
+	enterpriseID := middleware.GetSessionAuth(h.ctx).EnterpriseID
+	condition := pack.HttpProjectDraftRequestToCondition(h.req)
+	data, err := service.Project.GetProjectDraftList(h.ctx, enterpriseID, h.req.PageSize, h.req.PageNum, condition)
+	if err != nil {
+		logrus.WithContext(h.ctx).Errorf("[ProjectDraftListHandler] error GetProjectDraftList, err:%+v", err)
+		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, consts.DefaultToast)
+		return
+	}
+	h.resp.Data = data
+}
+func (h *ProjectDraftListHandler) checkParam() error {
+	var errs []error
+	if h.req.PageNum < 0 || h.req.PageSize <= 0 {
+		errs = append(errs, errors.New("page param error"))
+	}
+	h.req.PageNum--
+	h.req.ProjectForm = util.IsNull(h.req.ProjectForm)
+	if _, err := conv.Int64(h.req.ProjectForm); err != nil {
+		errs = append(errs, err)
+	}
+	h.req.ProjectId = util.IsNull(h.req.ProjectId)
+	if _, err := conv.Int64(h.req.ProjectId); err != nil {
+		errs = append(errs, err)
+	}
+	//h.req.ProjectName = util.IsNull(h.req.ProjectName)
+
+	h.req.ProjectStatus = util.IsNull(h.req.ProjectStatus)
+	if _, err := conv.Int64(h.req.ProjectStatus); err != nil {
+		errs = append(errs, err)
+	}
+	formatTime, _ := time.Parse("2006-01-02 15:04:05", h.req.ProjectUpdated)
+	//fmt.Println(h.req.ProjectUpdated)
+	h.req.ProjectUpdated = util.IsNull(h.req.ProjectUpdated)
+	if _, err := conv.Int64(formatTime.Unix()); err != nil {
+		errs = append(errs, err)
+	}
+	h.req.ProjectContentType = util.IsNull(h.req.ProjectContentType)
+	if _, err := conv.Int64(h.req.ProjectContentType); err != nil {
+		errs = append(errs, err)
+	}
+	h.req.ProjectPlatform = util.IsNull(h.req.ProjectPlatform)
+	if _, err := conv.Int64(h.req.ProjectPlatform); err != nil {
+		errs = append(errs, err)
+	}
+	if len(errs) != 0 {
+		return fmt.Errorf("check param errs:%+v", errs)
+	}
+	return nil
+}

+ 29 - 0
model/gorm_model/info_auto_default.go

@@ -0,0 +1,29 @@
+package gorm_model
+
+// Code generated by sql2gorm. DO NOT EDIT.
+
+
+type InfoAutoDefaultHandle struct {
+	AutoDefaultID          int `gorm:"column:auto_default_id;primary_key;AUTO_INCREMENT"` // 自动处理规则id
+	SketchReplaceNotUpload int `gorm:"column:sketch_replace_not_upload"`                  // 初稿违约 产品置换 未上传初稿
+	SketchReplaceTimeOut   int `gorm:"column:sketch_replace_time_out"`                    // 初稿违约 产品置换 超时未上传初稿
+	SketchOtherNotUpload   int `gorm:"column:sketch_other_not_upload"`                    // 初稿违约 自报价、固定稿费 未上传初稿
+	SketchOtherTimeOut     int `gorm:"column:sketch_other_time_out"`                      // 初稿违约 自报价、固定稿费 超时未上传初稿
+	ScriptReplaceNotUpload int `gorm:"column:script_replace_not_upload"`                  // 脚本违约 产品置换 未上传脚本
+	ScriptReplaceTimeOut   int `gorm:"column:script_replace_time_out"`                    // 脚本违约 产品置换 超时未上传脚本
+	ScriptOtherNotUpload   int `gorm:"column:script_other_not_upload"`                    // 脚本违约 自报价、固定稿费 未上传脚本
+	ScriptOtherTimeOut     int `gorm:"column:script_other_time_out"`                      // 脚本违约 自报价、固定稿费 超时未上传脚本
+	LinkReplaceNotUpload   int `gorm:"column:link_replace_not_upload"`                    // 链接违约 产品置换 未上传链接
+	LinkReplaceTimeOut     int `gorm:"column:link_replace_time_out"`                      // 链接违约 产品置换 超时未上传链接
+	LinkOtherNotUpload     int `gorm:"column:link_other_not_upload"`                      // 链接违约 自报价、固定稿费 未上传链接
+	LinkOtherTimeOut       int `gorm:"column:link_other_time_out"`                        // 链接违约 自报价、固定稿费 超时未上传链接
+	DataReplaceNotUpload   int `gorm:"column:data_replace_not_upload"`                    // 数据违约 产品置换 未上传数据
+	DataReplaceTimeOut     int `gorm:"column:data_replace_time_out"`                      // 数据违约 产品置换 超时未上传数据
+	DataOtherNotUpload     int `gorm:"column:data_other_not_upload"`                      // 数据违约 自报价、固定稿费 未上传数据
+	DataOtherTimeOut       int `gorm:"column:data_other_time_out"`                        // 数据违约 自报价、固定稿费 超时未上传数据
+}
+
+func (m *InfoAutoDefaultHandle) TableName() string {
+	return "info_auto_default_handle"
+}
+

+ 23 - 0
model/gorm_model/info_auto_task.go

@@ -0,0 +1,23 @@
+package gorm_model
+
+// Code generated by sql2gorm. DO NOT EDIT.
+
+type InfoAutoTask struct {
+	AutoTaskID        int `gorm:"column:auto_task_id;primary_key;AUTO_INCREMENT"` // 自动处理规则id
+	SignInOffline     int `gorm:"column:sign_in_offline"`                         // 线下探店自动签收时间
+	SignInVirtual     int `gorm:"column:sign_in_virtual"`                         // 虚拟产品测评自动签收时间
+	ReviewInMv        int `gorm:"column:review_in_mv"`                            // 视频形式的审稿处理
+	ReviewUnlimited   int `gorm:"column:review_unlimited"`                        // 不限形式的审稿处理
+	Postreview        int `gorm:"column:postreview"`                              // 发布审核自动处理
+	CaseClose         int `gorm:"column:case_close"`                              // 结案自动处理
+	Invalid           int `gorm:"column:invalid"`                                 // 失效自动处理
+	DraftDefaultInPic int `gorm:"column:draft_default_in_pic"`                    // 图片初稿违约自动处理
+	DraftDefaultInMv  int `gorm:"column:draft_default_in_mv"`                     // 视频初稿违约自动处理
+	ScriptDefault     int `gorm:"column:script_default"`                          // 脚本违约自动处理
+	LinkBreach        int `gorm:"column:link_breach"`                             // 链接违约自动处理
+	CaseCloseDefault  int `gorm:"column:case_close_default"`                      // 结案违约自动处理
+}
+
+func (m *InfoAutoTask) TableName() string {
+	return "info_auto_task"
+}

+ 6 - 6
model/gorm_model/project.go

@@ -23,13 +23,13 @@ type ProjectInfo struct {
 	CreatedAt         time.Time `gorm:"column:created_at"`                            // 创建时间
 	UpdatedAt         time.Time `gorm:"column:updated_at"`                            // 修改时间
 	FeeForm           string    `gorm:"column:fee_form"`                              // 稿费形式列表
-	AutoFailAt        time.Time `gorm:"column:auto_fail_at"`                          // 失效自动处理时间
-	AutoTaskID        int64       `gorm:"column:auto_task_id;NOT NULL"`                 // 定时任务id
-	AutoDefaultID     int64       `gorm:"column:auto_default_id;NOT NULL"`              // 违约状态id
+	AutoFailAt        *time.Time `gorm:"column:auto_fail_at"`                          // 失效自动处理时间
+	AutoTaskID        int64     `gorm:"column:auto_task_id;NOT NULL"`                 // 定时任务id
+	AutoDefaultID     int64     `gorm:"column:auto_default_id;NOT NULL"`              // 违约状态id
 	PaymentAmount     float64   `gorm:"column:payment_amount"`                        // 支付金额
-	PayAt             time.Time `gorm:"column:pay_at"`                                // 支付时间
-	AutoScriptBreakAt time.Time `gorm:"column:auto_script_break_at"`                  // 脚本违约自动处理时间
-	AutoSketchBreakAt time.Time `gorm:"column:auto_sketch_break_at"`                  // 初稿违约自动处理时间
+	PayAt             *time.Time `gorm:"column:pay_at"`                                // 支付时间
+	AutoScriptBreakAt *time.Time `gorm:"column:auto_script_break_at"`                  // 脚本违约自动处理时间
+	AutoSketchBreakAt *time.Time `gorm:"column:auto_sketch_break_at"`                  // 初稿违约自动处理时间
 	FailReason        int64       `gorm:"column:fail_reason"`                           // 失效原因,1、2分别表示逾期未支付、项目存在风险
 }
 

+ 17 - 0
model/http_model/project_delete.go

@@ -0,0 +1,17 @@
+package http_model
+
+type DeleteProjectRequest struct {
+	ProjectID int64 `json:"Project_id"` // 项目id
+}
+type DeleteProjectData struct {
+	ProjectID int64 `json:"Project_id"` // 项目id
+}
+
+func NewDeleteProjectRequest() *DeleteProjectRequest {
+	return new(DeleteProjectRequest)
+}
+func NewDeleteProjectResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(DeleteProjectData)
+	return resp
+}

+ 36 - 0
model/http_model/project_draft_list.go

@@ -0,0 +1,36 @@
+package http_model
+
+type ProjectDraftListRequest struct {
+	PageSize           int32  `json:"page_size"`
+	PageNum            int32  `json:"page_num"`
+	ProjectId          string `json:"project_id"`           // 项目ID
+	ProjectName        string `json:"project_name"`         // 项目名
+	ProjectStatus      string `json:"project_status"`       // 项目状态
+	ProjectPlatform    string `json:"project_platform"`     // 项目平台
+	ProjectForm        string `json:"project_form"`         // 项目形式
+	ProjectContentType string `json:"project_content_type"` // 内容形式
+	ProjectUpdated     string `json:"project_updated"`      // 最后操作时间
+}
+type ProjectDraftPreview struct {
+	ProjectId       string `json:"project_id"`       // 项目ID
+	ProjectName     string `json:"project_name"`     // 项目名
+	ProjectStatus   string `json:"project_status"`   // 项目状态
+	ProjectPlatform string `json:"project_platform"` // 项目平台
+	ProjectForm     string `json:"project_form"`     // 项目形式
+	//ProjectFeeForms    []string `json:"project_fee_forms"`    // 稿费形式
+	ProjectContentType string `json:"project_content_type"` // 内容形式
+	ProjectUpdated     string `json:"project_updated"`      // 最后操作时间
+}
+type ProjectDraftListData struct {
+	ProjectDraftPreview []*ProjectDraftPreview `json:"full_project_pre_view"`
+	Total               string                 `json:"total"`
+}
+
+func NewProjectDraftListRequest() *ProjectDraftListRequest {
+	return new(ProjectDraftListRequest)
+}
+func NewProjectDraftListResponse() *CommonResponse {
+	resp := new(CommonResponse)
+	resp.Data = new(ProjectDraftListData)
+	return resp
+}

+ 30 - 0
pack/project_draft.go

@@ -0,0 +1,30 @@
+package pack
+
+import (
+	"github.com/issue9/conv"
+	"youngee_b_api/consts"
+	"youngee_b_api/model/gorm_model"
+	"youngee_b_api/model/http_model"
+)
+
+func MGormProjectDraftToHttpProjectDraftPreview(gormProjectInfos []*gorm_model.ProjectInfo) []*http_model.ProjectDraftPreview {
+	var httpProjectPreviews []*http_model.ProjectDraftPreview
+	for _, gormProjectInfo := range gormProjectInfos {
+		httpProjectPreview := GormProjectDraftToHttpProjectDraftPreview(gormProjectInfo)
+		httpProjectPreviews = append(httpProjectPreviews, httpProjectPreview)
+	}
+	return httpProjectPreviews
+}
+func GormProjectDraftToHttpProjectDraftPreview(gormProjectInfo *gorm_model.ProjectInfo) *http_model.ProjectDraftPreview {
+	updatedTime := conv.MustString(gormProjectInfo.UpdatedAt)
+	updatedTime = updatedTime[0:19]
+	return &http_model.ProjectDraftPreview{
+		ProjectId:          conv.MustString(gormProjectInfo.ProjectID),
+		ProjectName:        gormProjectInfo.ProjectName,
+		ProjectStatus:      consts.GetProjectStatus(gormProjectInfo.ProjectStatus),
+		ProjectPlatform:    consts.GetProjectPlatform(gormProjectInfo.ProjectPlatform),
+		ProjectForm:        consts.GetProjectForm(gormProjectInfo.ProjectForm),
+		ProjectContentType: consts.GetProjectContentType(gormProjectInfo.ContentType),
+		ProjectUpdated:     updatedTime,
+	}
+}

+ 21 - 0
pack/project_draft_condition.go

@@ -0,0 +1,21 @@
+package pack
+
+import (
+	"github.com/issue9/conv"
+	"youngee_b_api/model/common_model"
+	"youngee_b_api/model/http_model"
+)
+
+func HttpProjectDraftRequestToCondition(req *http_model.ProjectDraftListRequest) *common_model.ProjectCondition {
+	projectUpdated := conv.MustString(req.ProjectUpdated)
+	projectName := req.ProjectName
+	return &common_model.ProjectCondition{
+		ProjectId:          conv.MustInt64(req.ProjectId, 0),
+		ProjectName:        projectName,
+		ProjectStatus:      conv.MustInt64(req.ProjectStatus, 0),
+		ProjectPlatform:    conv.MustInt64(req.ProjectPlatform, 0),
+		ProjectForm:        conv.MustInt64(req.ProjectForm, 0),
+		ProjectContentType: conv.MustInt64(req.ProjectContentType, 0),
+		ProjectUpdated:     projectUpdated,
+	}
+}

+ 4 - 2
route/init.go

@@ -43,14 +43,16 @@ func InitRoute(r *gin.Engine) {
 			auth := middleware.GetSessionAuth(c)
 			logrus.Infof("auth:%+v", auth)
 		})
-		m.POST("/product/findall", handler.WrapFindAllProductHandler)
+		m.POST("/product/findall", handler.WrapFindAllProductHandler) //查询全部产品
 		m.POST("/product/find", handler.WrapFindProductHandler)
 		m.POST("/project/create", handler.WrapCreateProjectHandler)
 		m.POST("/project/show", handler.WrapShowProjectHandler)
 		m.POST("/project/update", handler.WrapUpdateProjectHandler)
+		m.POST("/project/delete", handler.WrapDeleteProjectHandler)
 		m.POST("/product/create", handler.WrapCreateProductHandler)
 		m.POST("/product/list", handler.WrapFullProjectListHandler)
 		m.POST("/project/taskList", handler.WrapProjectTaskListHandler)
+		m.POST("/project/draftlist", handler.WrapProjectDraftBoxListHandler) //草稿箱查询
 		m.POST("/project/changeTaskStatus", handler.WrapProjectChangeTaskStatusHandler)
 		m.POST("/pay/paysum", handler.WrapPaySumHandler)
 		m.POST("/pay/projectpay", handler.WrapProjectPayHandler)
@@ -84,7 +86,7 @@ func InitRoute(r *gin.Engine) {
 		m.POST("/invoice/operateReceiveInfo", handler.WrapOperateReceiveInfoHandler)       // 修改或删除发票信息
 		m.POST("/invoice/operateReceiveAddress", handler.WrapOperateReceiveAddressHandler) // 修改或删除发票信息
 		m.POST("/invoice/addInvoiceRecord", handler.WrapAddInvoiceRecordHandler)           // 修改或删除发票信息
-		m.POST("/project/getlinknumberinfo", handler.WrapGetLinkNumberInfoHandler)
+		m.POST("/project/getlinknumberinfo", handler.WrapGetLinkNumberInfoHandler)         //获取链接信息
 		m.POST("/project/getdatanumberinfo", handler.WrapGetDataNumberInfoHandler)
 		m.POST("/project/getreviewnumberinfo", handler.WrapGetReviewNumberInfoHandler)
 		m.POST("/project/getdefaultnumberinfo", handler.WrapGetDefaultNumberInfoHandler)

+ 45 - 0
service/project.go

@@ -29,6 +29,14 @@ func (*project) Create(ctx context.Context, newProject http_model.CreateProjectR
 	if err != nil {
 		return nil, err
 	}
+	AutoTaskID, err := db.GetLastAutoTaskID()
+	if err != nil {
+		return nil, err
+	}
+	AutoDefaultID, err := db.GetLastAutoDefaultID()
+	if err != nil {
+		return nil, err
+	}
 	// 按照品牌名-商品名对项目进行命名
 	projectName := product.BrandName + "-" + product.ProductName
 	//feeForm := fmt.Sprintf("[")
@@ -53,6 +61,8 @@ func (*project) Create(ctx context.Context, newProject http_model.CreateProjectR
 		EnterpriseID:    enterpriseID,
 		ProductID:       newProject.ProductID,
 		FeeForm:         feeFroms,
+		AutoTaskID:      conv.MustInt64(AutoTaskID),
+		AutoDefaultID:   conv.MustInt64(AutoDefaultID),
 	}
 	// db create ProjectInfo
 	projectID, err := db.CreateProject(ctx, projectInfo)
@@ -171,6 +181,28 @@ func (*project) Update(ctx context.Context, newProject http_model.UpdateProjectR
 	return res, nil
 }
 
+func (*project) Delete(ctx context.Context, projectID int64) (*http_model.DeleteProjectData, error) {
+	// 删除该项目之前的所有图片
+	err := db.DeleteProjectPhotoByProjecttID(ctx, projectID)
+	if err != nil {
+		return nil, err
+	}
+	// 删除该项目之前的所有策略
+	err = db.DeleteRecruitStrategyByProjectID(ctx, projectID)
+	if err != nil {
+		return nil, err
+	}
+	//删除项目
+	NewProjectID, err1 := db.DeleteProject(ctx, projectID)
+	if err1 != nil {
+		return nil, err1
+	}
+	res := &http_model.DeleteProjectData{
+		ProjectID: *NewProjectID,
+	}
+	return res, nil
+}
+
 func (*project) GetFullProjectList(ctx context.Context, enterpriseID int64, pageSize, pageNum int32, condition *common_model.ProjectCondition) (*http_model.FullProjectListData, error) {
 
 	fullProjects, total, err := db.GetFullProjectList(ctx, enterpriseID, pageSize, pageNum, condition)
@@ -184,6 +216,19 @@ func (*project) GetFullProjectList(ctx context.Context, enterpriseID int64, page
 	return fullProjectListData, nil
 }
 
+func (*project) GetProjectDraftList(ctx context.Context, enterpriseID int64, pageSize, pageNum int32, condition *common_model.ProjectCondition) (*http_model.ProjectDraftListData, error) {
+
+	ProjectDrafts, total, err := db.GetProjectDraftList(ctx, enterpriseID, pageSize, pageNum, condition)
+	if err != nil {
+		logrus.WithContext(ctx).Errorf("[project service] call GetProjectDraftList error,err:%+v", err)
+		return nil, err
+	}
+	ProjectDraftListData := new(http_model.ProjectDraftListData)
+	ProjectDraftListData.ProjectDraftPreview = pack.MGormProjectDraftToHttpProjectDraftPreview(ProjectDrafts)
+	ProjectDraftListData.Total = conv.MustString(total)
+	return ProjectDraftListData, nil
+}
+
 func (*project) GetProjectTaskList(ctx context.Context, projectID string, pageSize, pageNum int64, conditions *common_model.TaskConditions) (*http_model.ProjectTaskListData, error) {
 	projectTasks, total, err := db.GetProjectTaskList(ctx, projectID, pageSize, pageNum, conditions)
 	if err != nil {