Browse Source

策略配置

Ethan 4 weeks ago
parent
commit
4614085707

+ 279 - 0
app/controller/account_controller.go

@@ -3,6 +3,8 @@ package controller
 import (
 	"github.com/gin-gonic/gin"
 	"github.com/sirupsen/logrus"
+	"youngee_b_api/app/dao"
+	"youngee_b_api/app/entity"
 	"youngee_b_api/app/service/review_service"
 	"youngee_b_api/app/vo"
 )
@@ -27,3 +29,280 @@ func (t AccountController) OCRIdentify(c *gin.Context) {
 	}
 	returnSuccess(c, 20000, resultMap)
 }
+
+// 策略配置-自动执行&违约规则
+func (t AccountController) StrategyAuto(c *gin.Context) {
+	param := &vo.InfoAutoParam{}
+	err := c.BindJSON(param)
+	if err != nil {
+		logrus.Errorf("Request bind err:%+v\n", err)
+		returnError(c, 40000, "Parameter Error: "+err.Error())
+		return
+	}
+	autoTaskInfoLast := dao.InfoAutoTaskDao{}.GetAutoTaskLast(param.EnterpriseId)
+	autoTaskInfoNew := entity.InfoAutoTask{
+		EnterpriseID:                 param.EnterpriseId,
+		ReviewAuto:                   autoTaskInfoLast.ReviewAuto,
+		LinkReviewAuto:               autoTaskInfoLast.LinkReviewAuto,
+		TaskFinishAuto:               autoTaskInfoLast.TaskFinishAuto,
+		Invalid:                      autoTaskInfoLast.Invalid,
+		SelectionInvalid:             autoTaskInfoLast.SelectionInvalid,
+		DraftDefault:                 autoTaskInfoLast.DraftDefault,
+		DraftCooperateProjectDefault: autoTaskInfoLast.DraftCooperateProjectDefault,
+		DraftStoreDefault:            autoTaskInfoLast.DraftStoreDefault,
+		DraftCooperateLocalDefault:   autoTaskInfoLast.DraftCooperateLocalDefault,
+		LinkBreach:                   autoTaskInfoLast.LinkBreach,
+		CaseCloseDefault:             autoTaskInfoLast.CaseCloseDefault,
+
+		ReviewAutoOperator:                   autoTaskInfoLast.ReviewAutoOperator,
+		LinkReviewAutoOperator:               autoTaskInfoLast.LinkReviewAutoOperator,
+		TaskFinishAutoOperator:               autoTaskInfoLast.TaskFinishAutoOperator,
+		InvalidOperator:                      autoTaskInfoLast.InvalidOperator,
+		SelectionInvalidOperator:             autoTaskInfoLast.SelectionInvalidOperator,
+		DraftDefaultOperator:                 autoTaskInfoLast.DraftDefaultOperator,
+		DraftCooperateProjectDefaultOperator: autoTaskInfoLast.DraftCooperateProjectDefaultOperator,
+		DraftStoreDefaultOperator:            autoTaskInfoLast.DraftStoreDefaultOperator,
+		DraftCooperateLocalDefaultOperator:   autoTaskInfoLast.DraftCooperateLocalDefaultOperator,
+		LinkBreachOperator:                   autoTaskInfoLast.LinkBreachOperator,
+		CaseCloseDefaultOperator:             autoTaskInfoLast.CaseCloseDefaultOperator,
+	}
+	if param.ReviewAuto != 0 {
+		autoTaskInfoNew.ReviewAuto = param.ReviewAuto
+		autoTaskInfoNew.ReviewAutoOperator = param.EnterpriseId
+	}
+	if param.LinkReviewAuto != 0 {
+		autoTaskInfoNew.LinkReviewAuto = param.LinkReviewAuto
+		autoTaskInfoNew.LinkReviewAutoOperator = param.EnterpriseId
+	}
+	if param.TaskFinishAuto != 0 {
+		autoTaskInfoNew.TaskFinishAuto = param.TaskFinishAuto
+		autoTaskInfoNew.TaskFinishAutoOperator = param.EnterpriseId
+	}
+	if param.Invalid != 0 {
+		autoTaskInfoNew.Invalid = param.Invalid
+		autoTaskInfoNew.InvalidOperator = param.EnterpriseId
+	}
+	if param.SelectionInvalid != 0 {
+		autoTaskInfoNew.SelectionInvalid = param.SelectionInvalid
+		autoTaskInfoNew.SelectionInvalidOperator = param.EnterpriseId
+	}
+	if param.DraftDefault != 0 {
+		autoTaskInfoNew.DraftDefault = param.DraftDefault
+		autoTaskInfoNew.DraftDefaultOperator = param.EnterpriseId
+	}
+	if param.DraftCooperateProjectDefault != 0 {
+		autoTaskInfoNew.DraftCooperateProjectDefault = param.DraftCooperateProjectDefault
+		autoTaskInfoNew.DraftCooperateProjectDefaultOperator = param.EnterpriseId
+	}
+	if param.DraftStoreDefault != 0 {
+		autoTaskInfoNew.DraftStoreDefault = param.DraftStoreDefault
+		autoTaskInfoNew.DraftStoreDefaultOperator = param.EnterpriseId
+	}
+	if param.DraftCooperateLocalDefault != 0 {
+		autoTaskInfoNew.DraftCooperateLocalDefault = param.DraftCooperateLocalDefault
+		autoTaskInfoNew.DraftCooperateLocalDefaultOperator = param.EnterpriseId
+	}
+	if param.LinkBreach != 0 {
+		autoTaskInfoNew.LinkBreach = param.LinkBreach
+		autoTaskInfoNew.LinkBreachOperator = param.EnterpriseId
+	}
+	if param.CaseCloseDefault != 0 {
+		autoTaskInfoNew.CaseCloseDefault = param.CaseCloseDefault
+		autoTaskInfoNew.CaseCloseDefaultOperator = param.EnterpriseId
+	}
+	err1 := dao.InfoAutoTaskDao{}.Insert(autoTaskInfoNew)
+	if err1 != nil {
+		logrus.Errorf("[StrategyAuto] call Insert err:%+v\n", err1)
+		returnError(c, 40000, err1.Error())
+		return
+	}
+
+	returnSuccess(c, 20000, nil)
+}
+
+// 策略配置-违约扣款
+func (t AccountController) StrategyDefaultPayment(c *gin.Context) {
+	param := &vo.InfoAutoDefaultParam{}
+	err := c.BindJSON(param)
+	if err != nil {
+		logrus.Errorf("Request bind err:%+v\n", err)
+		returnError(c, 40000, "Parameter Error: "+err.Error())
+		return
+	}
+	autoDefaultInfoLast := dao.InfoAutoDefaultDao{}.GetAutoDefaultLast(param.EnterpriseId)
+	infoAutoDefaultNew := entity.InfoAutoDefault{
+		EnterpriseID:         param.EnterpriseId,
+		SketchOtherTimeOut:   autoDefaultInfoLast.SketchOtherTimeOut,
+		SketchOtherNotUpload: autoDefaultInfoLast.SketchOtherNotUpload,
+		LinkReplaceTimeOut:   autoDefaultInfoLast.LinkReplaceTimeOut,
+		LinkReplaceNotUpload: autoDefaultInfoLast.LinkReplaceNotUpload,
+		DataReplaceTimeOut:   autoDefaultInfoLast.DataReplaceTimeOut,
+		DataReplaceNotUpload: autoDefaultInfoLast.DataReplaceNotUpload,
+
+		SketchOtherTimeOutOperator:   autoDefaultInfoLast.SketchOtherTimeOutOperator,
+		SketchOtherNotUploadOperator: autoDefaultInfoLast.SketchOtherNotUploadOperator,
+		LinkReplaceTimeOutOperator:   autoDefaultInfoLast.LinkReplaceTimeOutOperator,
+		LinkReplaceNotUploadOperator: autoDefaultInfoLast.LinkReplaceNotUploadOperator,
+		DataReplaceTimeOutOperator:   autoDefaultInfoLast.DataReplaceTimeOutOperator,
+		DataReplaceNotUploadOperator: autoDefaultInfoLast.DataReplaceNotUploadOperator,
+	}
+	if param.SketchOtherTimeOut != 0 {
+		infoAutoDefaultNew.SketchOtherTimeOut = param.SketchOtherTimeOut
+		infoAutoDefaultNew.SketchOtherNotUploadOperator = param.EnterpriseId
+	}
+	if param.SketchOtherNotUpload != 0 {
+		infoAutoDefaultNew.SketchOtherNotUpload = param.SketchOtherNotUpload
+		infoAutoDefaultNew.SketchOtherNotUploadOperator = param.EnterpriseId
+	}
+	if param.LinkReplaceTimeOut != 0 {
+		infoAutoDefaultNew.LinkReplaceTimeOut = param.LinkReplaceTimeOut
+		infoAutoDefaultNew.LinkReplaceTimeOutOperator = param.EnterpriseId
+	}
+	if param.LinkReplaceNotUpload != 0 {
+		infoAutoDefaultNew.LinkReplaceNotUpload = param.LinkReplaceNotUpload
+		infoAutoDefaultNew.LinkReplaceNotUploadOperator = param.EnterpriseId
+	}
+	if param.DataReplaceTimeOut != 0 {
+		infoAutoDefaultNew.DataReplaceTimeOut = param.DataReplaceTimeOut
+		infoAutoDefaultNew.DataReplaceTimeOutOperator = param.EnterpriseId
+	}
+	if param.DataReplaceNotUpload != 0 {
+		infoAutoDefaultNew.DataReplaceNotUpload = param.DataReplaceNotUpload
+		infoAutoDefaultNew.DataReplaceNotUploadOperator = param.EnterpriseId
+	}
+	err1 := dao.InfoAutoDefaultDao{}.Insert(infoAutoDefaultNew)
+	if err1 != nil {
+		logrus.Errorf("[StrategyDefaultPayment] call Insert err:%+v\n", err1)
+		returnError(c, 40000, err1.Error())
+		return
+	}
+
+	returnSuccess(c, 20000, nil)
+}
+
+// 策略配置-自动执行&违约规则 详情
+func (t AccountController) StrategyAutoDetail(c *gin.Context) {
+	param := &vo.InfoAutoParam{}
+	err := c.BindJSON(param)
+	if err != nil {
+		logrus.Errorf("Request bind err:%+v\n", err)
+		returnError(c, 40000, "Parameter Error: "+err.Error())
+		return
+	}
+	autoTaskInfo := dao.InfoAutoTaskDao{}.GetAutoTaskLast(param.EnterpriseId)
+	reInfoAuto := vo.ReInfoAuto{
+		ReviewAuto:                           autoTaskInfo.ReviewAuto,
+		LinkReviewAuto:                       autoTaskInfo.LinkReviewAuto,
+		TaskFinishAuto:                       autoTaskInfo.TaskFinishAuto,
+		Invalid:                              autoTaskInfo.Invalid,
+		SelectionInvalid:                     autoTaskInfo.SelectionInvalid,
+		DraftDefault:                         autoTaskInfo.DraftDefault,
+		DraftCooperateProjectDefault:         autoTaskInfo.DraftCooperateProjectDefault,
+		DraftStoreDefault:                    autoTaskInfo.DraftStoreDefault,
+		DraftCooperateLocalDefault:           autoTaskInfo.DraftCooperateLocalDefault,
+		LinkBreach:                           autoTaskInfo.LinkBreach,
+		CaseCloseDefault:                     autoTaskInfo.CaseCloseDefault,
+		ReviewAutoOperator:                   "样叽系统",
+		LinkReviewAutoOperator:               "样叽系统",
+		TaskFinishAutoOperator:               "样叽系统",
+		InvalidOperator:                      "样叽系统",
+		SelectionInvalidOperator:             "样叽系统",
+		DraftDefaultOperator:                 "样叽系统",
+		DraftCooperateProjectDefaultOperator: "样叽系统",
+		DraftStoreDefaultOperator:            "样叽系统",
+		DraftCooperateLocalDefaultOperator:   "样叽系统",
+		LinkBreachOperator:                   "样叽系统",
+		CaseCloseDefaultOperator:             "样叽系统",
+	}
+	var businessName string
+	enterprise, err1 := dao.EnterpriseDao{}.GetEnterprise(autoTaskInfo.EnterpriseID)
+	if err1 != nil && enterprise != nil {
+		businessName = enterprise.BusinessName
+	}
+	if autoTaskInfo.ReviewAutoOperator != "0" {
+		reInfoAuto.ReviewAutoOperator = businessName
+	}
+	if autoTaskInfo.LinkReviewAutoOperator != "0" {
+		reInfoAuto.LinkReviewAutoOperator = businessName
+	}
+	if autoTaskInfo.TaskFinishAutoOperator != "0" {
+		reInfoAuto.TaskFinishAutoOperator = businessName
+	}
+	if autoTaskInfo.InvalidOperator != "0" {
+		reInfoAuto.InvalidOperator = businessName
+	}
+	if autoTaskInfo.SelectionInvalidOperator != "0" {
+		reInfoAuto.SelectionInvalidOperator = businessName
+	}
+	if autoTaskInfo.DraftDefaultOperator != "0" {
+		reInfoAuto.DraftDefaultOperator = businessName
+	}
+	if autoTaskInfo.DraftCooperateProjectDefaultOperator != "0" {
+		reInfoAuto.DraftCooperateProjectDefaultOperator = businessName
+	}
+	if autoTaskInfo.DraftStoreDefaultOperator != "0" {
+		reInfoAuto.DraftStoreDefaultOperator = businessName
+	}
+	if autoTaskInfo.DraftCooperateLocalDefaultOperator != "0" {
+		reInfoAuto.DraftCooperateLocalDefaultOperator = businessName
+	}
+	if autoTaskInfo.LinkBreachOperator != "0" {
+		reInfoAuto.LinkBreachOperator = businessName
+	}
+	if autoTaskInfo.CaseCloseDefaultOperator != "0" {
+		reInfoAuto.CaseCloseDefaultOperator = businessName
+	}
+
+	returnSuccess(c, 20000, reInfoAuto)
+}
+
+// 策略配置-违约扣款 详情
+func (t AccountController) StrategyDefaultPaymentPaymentDetail(c *gin.Context) {
+	param := &vo.InfoAutoDefaultParam{}
+	err := c.BindJSON(param)
+	if err != nil {
+		logrus.Errorf("Request bind err:%+v\n", err)
+		returnError(c, 40000, "Parameter Error: "+err.Error())
+		return
+	}
+	autoDefaultInfo := dao.InfoAutoDefaultDao{}.GetAutoDefaultLast(param.EnterpriseId)
+	reInfoAutoDefault := vo.ReInfoAutoDefault{
+		SketchOtherTimeOut:           autoDefaultInfo.SketchOtherTimeOut,
+		SketchOtherNotUpload:         autoDefaultInfo.SketchOtherNotUpload,
+		LinkReplaceTimeOut:           autoDefaultInfo.LinkReplaceTimeOut,
+		LinkReplaceNotUpload:         autoDefaultInfo.LinkReplaceNotUpload,
+		DataReplaceTimeOut:           autoDefaultInfo.DataReplaceTimeOut,
+		DataReplaceNotUpload:         autoDefaultInfo.DataReplaceNotUpload,
+		SketchOtherTimeOutOperator:   "样叽系统",
+		SketchOtherNotUploadOperator: "样叽系统",
+		LinkReplaceTimeOutOperator:   "样叽系统",
+		LinkReplaceNotUploadOperator: "样叽系统",
+		DataReplaceTimeOutOperator:   "样叽系统",
+		DataReplaceNotUploadOperator: "样叽系统",
+	}
+	var businessName string
+	enterprise, err1 := dao.EnterpriseDao{}.GetEnterprise(autoDefaultInfo.EnterpriseID)
+	if err1 != nil && enterprise != nil {
+		businessName = enterprise.BusinessName
+	}
+	if autoDefaultInfo.SketchOtherTimeOutOperator != "0" {
+		reInfoAutoDefault.SketchOtherTimeOutOperator = businessName
+	}
+	if autoDefaultInfo.SketchOtherNotUploadOperator != "0" {
+		reInfoAutoDefault.SketchOtherNotUploadOperator = businessName
+	}
+	if autoDefaultInfo.LinkReplaceTimeOutOperator != "0" {
+		reInfoAutoDefault.LinkReplaceTimeOutOperator = businessName
+	}
+	if autoDefaultInfo.LinkReplaceNotUploadOperator != "0" {
+		reInfoAutoDefault.LinkReplaceNotUploadOperator = businessName
+	}
+	if autoDefaultInfo.DataReplaceTimeOutOperator != "0" {
+		reInfoAutoDefault.DataReplaceTimeOutOperator = businessName
+	}
+	if autoDefaultInfo.DataReplaceNotUploadOperator != "0" {
+		reInfoAutoDefault.DataReplaceNotUploadOperator = businessName
+	}
+
+	returnSuccess(c, 20000, reInfoAutoDefault)
+}

+ 9 - 0
app/dao/info_auto_default_dao.go

@@ -10,6 +10,9 @@ type InfoAutoDefaultDao struct{}
 func (d InfoAutoDefaultDao) GetAutoDefaultLast(enterpriseId string) entity.InfoAutoDefault {
 	autoDefaultInfo := entity.InfoAutoDefault{}
 	Db.Model(&entity.InfoAutoDefault{}).Where("enterprise_id = ?", enterpriseId).Last(&autoDefaultInfo)
+	if autoDefaultInfo.AutoDefaultID == 0 {
+		Db.Model(&entity.InfoAutoDefault{}).Where("auto_default_id = ?", 0).Find(&autoDefaultInfo)
+	}
 	return autoDefaultInfo
 }
 
@@ -19,3 +22,9 @@ func (d InfoAutoDefaultDao) GetValueByIdFieldName(autoDefaultId int64, fieldName
 	Db.Model(&entity.InfoAutoDefault{}).Select(fieldName).Where("auto_default_id = ?", autoDefaultId).Find(&value)
 	return value
 }
+
+// 为当前 enterpriseId 插入新的策略配置
+func (d InfoAutoDefaultDao) Insert(infoAutoDefault entity.InfoAutoDefault) error {
+	err := Db.Model(&entity.InfoAutoDefault{}).Create(&infoAutoDefault).Error
+	return err
+}

+ 9 - 0
app/dao/info_auto_task_dao.go

@@ -10,6 +10,9 @@ type InfoAutoTaskDao struct{}
 func (d InfoAutoTaskDao) GetAutoTaskLast(enterpriseId string) entity.InfoAutoTask {
 	autoTaskInfo := entity.InfoAutoTask{}
 	Db.Model(&entity.InfoAutoTask{}).Where("enterprise_id = ?", enterpriseId).Last(&autoTaskInfo)
+	if autoTaskInfo.AutoTaskID == 0 {
+		Db.Model(&entity.InfoAutoTask{}).Where("auto_task_id = ?", 0).Find(&autoTaskInfo)
+	}
 	return autoTaskInfo
 }
 
@@ -19,3 +22,9 @@ func (d InfoAutoTaskDao) GetValueByIdFieldName(autoTaskId int64, fieldName strin
 	Db.Model(&entity.InfoAutoTask{}).Select(fieldName).Where("auto_task_id = ?", autoTaskId).First(&autoTaskInfo)
 	return autoTaskInfo
 }
+
+// 为当前 enterpriseId 插入新的策略配置
+func (d InfoAutoTaskDao) Insert(autoTaskInfo entity.InfoAutoTask) error {
+	err := Db.Debug().Model(&entity.InfoAutoTask{}).Create(&autoTaskInfo).Error
+	return err
+}

+ 16 - 20
app/entity/info_auto_default.go

@@ -1,26 +1,22 @@
-package entity
-
 // Code generated by sql2gorm. DO NOT EDIT.
+package entity
 
+// 违约扣款配置
 type InfoAutoDefault struct {
-	AutoDefaultID          int64 `gorm:"column:auto_default_id;primary_key;AUTO_INCREMENT"` // 自动处理规则id
-	EnterpriseId           int64 `gorm:"column:enterprise_id"`                              // 企业id
-	SketchReplaceNotUpload int64 `gorm:"column:sketch_replace_not_upload"`                  // 初稿违约 产品置换 未上传初稿
-	SketchReplaceTimeOut   int64 `gorm:"column:sketch_replace_time_out"`                    // 初稿违约 产品置换 超时未上传初稿
-	SketchOtherNotUpload   int64 `gorm:"column:sketch_other_not_upload"`                    // 初稿违约 自报价、固定稿费 未上传初稿
-	SketchOtherTimeOut     int64 `gorm:"column:sketch_other_time_out"`                      // 初稿违约 自报价、固定稿费 超时未上传初稿
-	ScriptReplaceNotUpload int64 `gorm:"column:script_replace_not_upload"`                  // 脚本违约 产品置换 未上传脚本
-	ScriptReplaceTimeOut   int64 `gorm:"column:script_replace_time_out"`                    // 脚本违约 产品置换 超时未上传脚本
-	ScriptOtherNotUpload   int64 `gorm:"column:script_other_not_upload"`                    // 脚本违约 自报价、固定稿费 未上传脚本
-	ScriptOtherTimeOut     int64 `gorm:"column:script_other_time_out"`                      // 脚本违约 自报价、固定稿费 超时未上传脚本
-	LinkReplaceNotUpload   int64 `gorm:"column:link_replace_not_upload"`                    // 链接违约 产品置换 未上传链接
-	LinkReplaceTimeOut     int64 `gorm:"column:link_replace_time_out"`                      // 链接违约 产品置换 超时未上传链接
-	LinkOtherNotUpload     int64 `gorm:"column:link_other_not_upload"`                      // 链接违约 自报价、固定稿费 未上传链接
-	LinkOtherTimeOut       int64 `gorm:"column:link_other_time_out"`                        // 链接违约 自报价、固定稿费 超时未上传链接
-	DataReplaceNotUpload   int64 `gorm:"column:data_replace_not_upload"`                    // 数据违约 产品置换 未上传数据
-	DataReplaceTimeOut     int64 `gorm:"column:data_replace_time_out"`                      // 数据违约 产品置换 超时未上传数据
-	DataOtherNotUpload     int64 `gorm:"column:data_other_not_upload"`                      // 数据违约 自报价、固定稿费 未上传数据
-	DataOtherTimeOut       int64 `gorm:"column:data_other_time_out"`                        // 数据违约 自报价、固定稿费 超时未上传数据
+	AutoDefaultID                int64  `gorm:"column:auto_default_id;primary_key;AUTO_INCREMENT"` // 自动处理规则id
+	EnterpriseID                 string `gorm:"column:enterprise_id;NOT NULL"`                     // 企业id
+	SketchOtherTimeOut           int64  `gorm:"column:sketch_other_time_out;NOT NULL"`             // (初稿违约扣款1)
+	SketchOtherNotUpload         int64  `gorm:"column:sketch_other_not_upload;NOT NULL"`           // (初稿违约扣款2)
+	LinkReplaceTimeOut           int64  `gorm:"column:link_replace_time_out;NOT NULL"`             // (链接质检违约扣款1)
+	LinkReplaceNotUpload         int64  `gorm:"column:link_replace_not_upload;NOT NULL"`           // (链接质检违约扣款2)
+	DataReplaceTimeOut           int64  `gorm:"column:data_replace_time_out;NOT NULL"`             // (数据质检违约扣款1)
+	DataReplaceNotUpload         int64  `gorm:"column:data_replace_not_upload;NOT NULL"`           // (数据质检违约扣款2)
+	SketchOtherTimeOutOperator   string `gorm:"column:sketch_other_time_out_operator;NOT NULL"`    // (初稿违约扣款1)
+	SketchOtherNotUploadOperator string `gorm:"column:sketch_other_not_upload_operator;NOT NULL"`  // (初稿违约扣款2)
+	LinkReplaceTimeOutOperator   string `gorm:"column:link_replace_time_out_operator;NOT NULL"`    // (链接质检违约扣款1)
+	LinkReplaceNotUploadOperator string `gorm:"column:link_replace_not_upload_operator;NOT NULL"`  // (链接质检违约扣款2)
+	DataReplaceTimeOutOperator   string `gorm:"column:data_replace_time_out_operator;NOT NULL"`    // (数据质检违约扣款1)
+	DataReplaceNotUploadOperator string `gorm:"column:data_replace_not_upload_operator;NOT NULL"`  // (数据质检违约扣款2)
 }
 
 func (m *InfoAutoDefault) TableName() string {

+ 35 - 15
app/entity/info_auto_task.go

@@ -1,21 +1,41 @@
+// Code generated by sql2gorm. DO NOT EDIT.
 package entity
 
+// 自动执行、违约规则配置
 type InfoAutoTask struct {
-	AutoTaskID        int64 `gorm:"column:auto_task_id;primary_key;AUTO_INCREMENT"` // 自动处理规则id
-	EnterpriseId      int64 `gorm:"column:enterprise_id"`                           // 企业id
-	SignInOffline     int64 `gorm:"column:sign_in_offline"`                         // 线下探店自动签收时间
-	SignInVirtual     int64 `gorm:"column:sign_in_virtual"`                         // 虚拟产品测评自动签收时间
-	ReviewInMv        int64 `gorm:"column:review_in_mv"`                            // 视频形式的审稿处理
-	ReviewUnlimited   int64 `gorm:"column:review_unlimited"`                        // 不限形式的审稿处理
-	PostReview        int64 `gorm:"column:post_review"`                             // 发布审核自动处理
-	CaseClose         int64 `gorm:"column:case_close"`                              // 结案自动处理
-	Invalid           int64 `gorm:"column:invalid"`                                 // 全流程项目失效自动处理
-	DraftDefaultInPic int64 `gorm:"column:draft_default_in_pic"`                    // 图片初稿违约自动处理
-	DraftDefaultInMv  int64 `gorm:"column:draft_default_in_mv"`                     // 视频初稿违约自动处理
-	ScriptDefault     int64 `gorm:"column:script_default"`                          // 脚本违约自动处理
-	LinkBreach        int64 `gorm:"column:link_breach"`                             // 链接违约自动处理
-	CaseCloseDefault  int64 `gorm:"column:case_close_default"`                      // 结案违约自动处理
-	SelectionInvalid  int64 `gorm:"column:selection_invalid"`                       // 选品项目失效自动处理
+	AutoTaskID                   int64  `gorm:"column:auto_task_id;primary_key;AUTO_INCREMENT"`  // 自动处理规则id
+	EnterpriseID                 string `gorm:"column:enterprise_id;NOT NULL"`                   // 企业id
+	ReviewAuto                   int64  `gorm:"column:review_auto;NOT NULL"`                     // (审稿自动执行)
+	LinkReviewAuto               int64  `gorm:"column:link_review_auto;NOT NULL"`                // (链接质检自动执行)
+	TaskFinishAuto               int64  `gorm:"column:task_finish_auto;NOT NULL"`                // (任务结算自动执行)
+	Invalid                      int64  `gorm:"column:invalid;NOT NULL"`                         // 全流程项目失效自动处理(任务失效自动执行1)
+	SelectionInvalid             int64  `gorm:"column:selection_invalid;NOT NULL"`               // 选品项目失效自动处理(任务失效自动执行2)
+	DraftDefault                 int64  `gorm:"column:draft_default;NOT NULL"`                   // 初稿违约时间(初稿违约1)
+	DraftCooperateProjectDefault int64  `gorm:"column:draft_cooperate_project_default;NOT NULL"` // (初稿违约2)
+	DraftStoreDefault            int64  `gorm:"column:draft_store_default;NOT NULL"`             // (初稿违约3)
+	DraftCooperateLocalDefault   int64  `gorm:"column:draft_cooperate_local_default;NOT NULL"`   // (初稿违约4)
+	LinkBreach                   int64  `gorm:"column:link_breach;NOT NULL"`                     // 链接违约时间(链接质检违约)
+	CaseCloseDefault             int64  `gorm:"column:case_close_default;NOT NULL"`              // 数据违约时间(数据质检违约)
+
+	ReviewAutoOperator                   string `gorm:"column:review_auto_operator;NOT NULL"`                     // (审稿自动执行)
+	LinkReviewAutoOperator               string `gorm:"column:link_review_auto_operator;NOT NULL"`                // (链接质检自动执行)
+	TaskFinishAutoOperator               string `gorm:"column:task_finish_auto_operator;NOT NULL"`                // (任务结算自动执行)
+	InvalidOperator                      string `gorm:"column:invalid_operator;NOT NULL"`                         // 全流程项目失效自动处理(任务失效自动执行1)
+	SelectionInvalidOperator             string `gorm:"column:selection_invalid_operator;NOT NULL"`               // 选品项目失效自动处理(任务失效自动执行2)
+	DraftDefaultOperator                 string `gorm:"column:draft_default_operator;NOT NULL"`                   // 初稿违约时间(初稿违约1)
+	DraftCooperateProjectDefaultOperator string `gorm:"column:draft_cooperate_project_default_operator;NOT NULL"` // (初稿违约2)
+	DraftStoreDefaultOperator            string `gorm:"column:draft_store_default_operator;NOT NULL"`             // (初稿违约3)
+	DraftCooperateLocalDefaultOperator   string `gorm:"column:draft_cooperate_local_default_operator;NOT NULL"`   // (初稿违约4)
+	LinkBreachOperator                   string `gorm:"column:link_breach_operator;NOT NULL"`                     // 链接违约时间(链接质检违约)
+	CaseCloseDefaultOperator             string `gorm:"column:case_close_default_operator;NOT NULL"`              // 数据违约时间(数据质检违约)
+
+	SignInOffline   int64 `gorm:"column:sign_in_offline;NOT NULL"`  // 线下探店自动签收时间
+	SignInVirtual   int64 `gorm:"column:sign_in_virtual;NOT NULL"`  // 虚拟产品测评自动签收时间
+	ReviewInMv      int64 `gorm:"column:review_in_mv;NOT NULL"`     // 视频形式的审稿处理
+	ReviewUnlimited int64 `gorm:"column:review_unlimited;NOT NULL"` // 不限形式的审稿处理
+	PostReview      int64 `gorm:"column:post_review;NOT NULL"`      // 发布审核自动处理
+	CaseClose       int64 `gorm:"column:case_close;NOT NULL"`       // 结案自动处理
+	ScriptDefault   int64 `gorm:"column:script_default;NOT NULL"`   // 脚本违约自动处理
 }
 
 func (m *InfoAutoTask) TableName() string {

+ 20 - 0
app/vo/info_auto_default_param.go

@@ -0,0 +1,20 @@
+package vo
+
+type InfoAutoDefaultParam struct {
+	EnterpriseId string `json:"enterprise_id"`
+	SubAccountId int64  `json:"sub_account_id"`
+
+	SketchOtherTimeOut   int64 `json:"sketch_other_time_out"`
+	SketchOtherNotUpload int64 `json:"sketch_other_not_upload"`
+	LinkReplaceTimeOut   int64 `json:"link_replace_time_out"`
+	LinkReplaceNotUpload int64 `json:"link_replace_not_upload"`
+	DataReplaceTimeOut   int64 `json:"data_replace_time_out"`
+	DataReplaceNotUpload int64 `json:"data_replace_not_upload"`
+
+	//SketchOtherTimeOutOperator   string `json:"sketch_other_time_out_operator"`
+	//SketchOtherNotUploadOperator string `json:"sketch_other_not_upload_operator"`
+	//LinkReplaceTimeOutOperator   string `json:"link_replace_time_out_operator"`
+	//LinkReplaceNotUploadOperator string `json:"link_replace_not_upload_operator"`
+	//DataReplaceTimeOutOperator   string `json:"data_replace_time_out_operator"`
+	//DataReplaceNotUploadOperator string `json:"data_replace_not_upload_operator"`
+}

+ 30 - 0
app/vo/info_auto_param.go

@@ -0,0 +1,30 @@
+package vo
+
+type InfoAutoParam struct {
+	EnterpriseId string `json:"enterprise_id"`
+	SubAccountId int64  `json:"sub_account_id"`
+
+	ReviewAuto                   int64 `json:"review_auto"`
+	LinkReviewAuto               int64 `json:"link_review_auto"`
+	TaskFinishAuto               int64 `json:"task_finish_auto"`
+	Invalid                      int64 `json:"invalid"`
+	SelectionInvalid             int64 `json:"selection_invalid"`
+	DraftDefault                 int64 `json:"draft_default"`
+	DraftCooperateProjectDefault int64 `json:"draft_cooperate_project_default"`
+	DraftStoreDefault            int64 `json:"draft_store_default"`
+	DraftCooperateLocalDefault   int64 `json:"draft_cooperate_local_default"`
+	LinkBreach                   int64 `json:"link_breach"`
+	CaseCloseDefault             int64 `json:"case_close_default"`
+
+	//ReviewAutoOperator                   string `json:"review_auto_operator"`
+	//LinkReviewAutoOperator               string `json:"link_review_auto_operator"`
+	//TaskFinishAutoOperator               string `json:"task_finish_auto_operator"`
+	//InvalidOperator                      string `json:"invalid_operator"`
+	//SelectionInvalidOperator             string `json:"selection_invalid_operator"`
+	//DraftDefaultOperator                 string `json:"draft_default_operator"`
+	//DraftCooperateProjectDefaultOperator string `json:"draft_cooperate_project_default_operator"`
+	//DraftStoreDefaultOperator            string `json:"draft_store_default_operator"`
+	//DraftCooperateLocalDefaultOperator   string `json:"draft_cooperate_local_default_operator"`
+	//LinkBreachOperator                   string `json:"link_breach_operator"`
+	//CaseCloseDefaultOperator             string `json:"case_close_default_operator"`
+}

+ 27 - 0
app/vo/re_info_auto.go

@@ -0,0 +1,27 @@
+package vo
+
+type ReInfoAuto struct {
+	ReviewAuto                   int64 `json:"reviewAuto"`
+	LinkReviewAuto               int64 `json:"linkReviewAuto"`
+	TaskFinishAuto               int64 `json:"taskFinishAuto"`
+	Invalid                      int64 `json:"invalid"`
+	SelectionInvalid             int64 `json:"selectionInvalid"`
+	DraftDefault                 int64 `json:"draftDefault"`
+	DraftCooperateProjectDefault int64 `json:"draftCooperateProjectDefault"`
+	DraftStoreDefault            int64 `json:"draftStoreDefault"`
+	DraftCooperateLocalDefault   int64 `json:"draftCooperateLocalDefault"`
+	LinkBreach                   int64 `json:"linkBreach"`
+	CaseCloseDefault             int64 `json:"caseCloseDefault"`
+
+	ReviewAutoOperator                   string `json:"reviewAutoOperator"`
+	LinkReviewAutoOperator               string `json:"linkReviewAutoOperator"`
+	TaskFinishAutoOperator               string `json:"taskFinishAutoOperator"`
+	InvalidOperator                      string `json:"invalidOperator"`
+	SelectionInvalidOperator             string `json:"selectionInvalidOperator"`
+	DraftDefaultOperator                 string `json:"draftDefaultOperator"`
+	DraftCooperateProjectDefaultOperator string `json:"draftCooperateProjectDefaultOperator"`
+	DraftStoreDefaultOperator            string `json:"draftStoreDefaultOperator"`
+	DraftCooperateLocalDefaultOperator   string `json:"draftCooperateLocalDefaultOperator"`
+	LinkBreachOperator                   string `json:"linkBreachOperator"`
+	CaseCloseDefaultOperator             string `json:"caseCloseDefaultOperator"`
+}

+ 17 - 0
app/vo/re_info_auto_default.go

@@ -0,0 +1,17 @@
+package vo
+
+type ReInfoAutoDefault struct {
+	SketchOtherTimeOut   int64 `json:"sketchOtherTimeOut"`
+	SketchOtherNotUpload int64 `json:"sketchOtherNotUpload"`
+	LinkReplaceTimeOut   int64 `json:"linkReplaceTimeOut"`
+	LinkReplaceNotUpload int64 `json:"linkReplaceNotUpload"`
+	DataReplaceTimeOut   int64 `json:"dataReplaceTimeOut"`
+	DataReplaceNotUpload int64 `json:"dataReplaceNotUpload"`
+
+	SketchOtherTimeOutOperator   string `json:"sketchOtherTimeOutOperator"`
+	SketchOtherNotUploadOperator string `json:"sketchOtherNotUploadOperator"`
+	LinkReplaceTimeOutOperator   string `json:"linkReplaceTimeOutOperator"`
+	LinkReplaceNotUploadOperator string `json:"linkReplaceNotUploadOperator"`
+	DataReplaceTimeOutOperator   string `json:"dataReplaceTimeOutOperator"`
+	DataReplaceNotUploadOperator string `json:"dataReplaceNotUploadOperator"`
+}

+ 6 - 2
route/init.go

@@ -370,9 +370,13 @@ func InitRoute(r *gin.Engine) {
 	account := r.Group("/youngee/b/account")
 	{
 		account.Use(middleware.LoginAuthMiddleware)
-		account.POST("/businessLicense", controller.AccountController{}.OCRIdentify) // 营业执照OCR识别/认证
+		account.POST("/businessLicense", controller.AccountController{}.OCRIdentify)                                        // 营业执照OCR识别/认证
+		account.POST("/strategy/auto/update", controller.AccountController{}.StrategyAuto)                                  // 策略配置-自动执行&违约规则
+		account.POST("/strategy/defaultPayment/update", controller.AccountController{}.StrategyDefaultPayment)              // 策略配置-违约扣款
+		account.POST("/strategy/auto/detail", controller.AccountController{}.StrategyAutoDetail)                            // 策略配置-自动执行&违约规则 详情
+		account.POST("/strategy/defaultPayment/detail", controller.AccountController{}.StrategyDefaultPaymentPaymentDetail) // 策略配置-违约扣款 详情
 	}
-	// 账号管理
+	// 通用
 	common := r.Group("/youngee/b/common")
 	{
 		common.POST("/platform", controller.CommonController{}.CooperationPlatform)     // 获取合作平台icon