Browse Source

修改数据逻辑

hongze 1 year ago
parent
commit
bb97e578e7

+ 13 - 12
controllers/overseas_custom/custom.go

@@ -107,9 +107,9 @@ func (this *OverseasCustomController) CustomList() {
 	}
 
 	if companyStatus == "试用" {
-		condition += ` AND m.company_status='试用' AND m.overseas_status='' `
+		condition += ` AND m.overseas_status='试用'`
 	} else if companyStatus == "正式" {
-		condition += ` AND (m.company_status='正式' OR m.overseas_status='正式') `
+		condition += ` AND m.overseas_status='正式' `
 	} else {
 		condition += ` AND m.company_status='关闭' `
 	}
@@ -342,10 +342,10 @@ func (this *OverseasCustomController) CustomOverseasLabelSet() {
 		return
 	}
 
+	nowTime := time.Now().Local()
 	if req.CompanyId > 1000000 {
 		enCompanyObj := new(models.EnglishCompany)
 		// 更新客户
-		nowTime := time.Now().Local()
 		enCompanyObj.CompanyId = req.CompanyId - utils.EnCompanyIdStep
 		enCompanyObj.OverseasLabel = req.OverseasLabel
 		enCompanyObj.ModifyTime = nowTime
@@ -356,11 +356,8 @@ func (this *OverseasCustomController) CustomOverseasLabelSet() {
 			return
 		}
 	} else {
-		companyObj := new(company.CompanyProduct)
-		companyObj.CompanyId = req.CompanyId
-		companyObj.OverseasLabel = req.OverseasLabel
-		updateCols := []string{"OverseasLabel"}
-		err := companyObj.Update(updateCols)
+		obj := new(overseas_custom.Custom)
+		err := obj.UpdateCompanyProductOverseasLabel(req.OverseasLabel, req.CompanyId)
 		if err != nil {
 			br.Msg = "设置失败"
 			br.ErrMsg = "设置客户标签状态失败, Err:" + err.Error()
@@ -421,8 +418,10 @@ func (this *OverseasCustomController) CustomStatistics() {
 
 		companyIds = append(companyIds, enCompanyIds...)
 
-		condition += fmt.Sprintf(` AND m.company_id IN (%s) `, utils.GetOrmInReplace(len(companyIds)))
-		pars = append(pars, companyIds)
+		if len(companyIds) > 0 {
+			condition += fmt.Sprintf(` AND m.company_id IN (%s) `, utils.GetOrmInReplace(len(companyIds)))
+			pars = append(pars, companyIds)
+		}
 	}
 	if sellerId > 0 {
 		condition += ` AND m.seller_id=? `
@@ -530,8 +529,10 @@ func (this *OverseasCustomController) CustomLabelStatistics() {
 
 		companyIds = append(companyIds, enCompanyIds...)
 
-		condition += fmt.Sprintf(` AND m.company_id IN (%s) `, utils.GetOrmInReplace(len(companyIds)))
-		pars = append(pars, companyIds)
+		if len(companyIds) > 0 {
+			condition += fmt.Sprintf(` AND m.company_id IN (%s) `, utils.GetOrmInReplace(len(companyIds)))
+			pars = append(pars, companyIds)
+		}
 	}
 	if sellerId > 0 {
 		condition += ` AND m.seller_id=? `

+ 14 - 0
controllers/overseas_custom/sale.go

@@ -78,6 +78,13 @@ func (this *OverseasCustomController) SaleSave() {
 					return
 				}
 			}
+			//修改客户状态
+			err = obj.HandelCompanyStatus(v)
+			if err != nil {
+				br.Msg = "保存失败!"
+				br.ErrMsg = "保存失败,同步客户状态失败,Err:" + err.Error()
+				return
+			}
 		}
 	}
 
@@ -96,6 +103,13 @@ func (this *OverseasCustomController) SaleSave() {
 				br.ErrMsg = "保存失败,处理特定销售客户信息失败,Err:" + err.Error()
 				return
 			}
+			////修改客户状态
+			//err = obj.HandelCompanyStatus(id)
+			//if err != nil {
+			//	br.Msg = "保存失败!"
+			//	br.ErrMsg = "保存失败,同步客户状态失败,Err:" + err.Error()
+			//	return
+			//}
 		}
 	}
 

+ 11 - 50
models/overseas_custom/custom.go

@@ -22,6 +22,7 @@ type Custom struct {
 	OverseasStatus string `description:"海外客户状态:'正式','试用','关闭'"`
 	Source         int    `description:"来源:1,英文客户,2:客户列表"`
 	OverseasLabel  int    `description:"海外客户试用子标签:1未分类、2  推进、3 跟踪、4 预备、"`
+	ResetBtn       int    `description:"转正式和重置按钮:同步过来默认为0:显示转正式为1:显示重置为2"`
 }
 
 type CustomTotal struct {
@@ -41,11 +42,6 @@ func (obj *Custom) GetCustomTotal(condition string, pars []interface{}) (list []
 
 	sql = `SELECT company_status,COUNT(1) AS total,is_hide FROM (
 				SELECT a.company_id,a.company_name,a.nation,b.seller_id,b.seller_name,
-				CASE b.status 
-				WHEN '正式' THEN '正式'
-				WHEN '永续' THEN '正式'
-				WHEN '试用' THEN '试用'
-				ELSE '关闭' END AS company_status,
 				b.view_total,b.road_show_total,a.created_time AS create_time,b.last_view_time,a.is_hide,a.overseas_status,b.overseas_label
 				FROM company AS a
 				INNER JOIN company_product AS b ON a.company_id=b.company_id
@@ -53,9 +49,6 @@ func (obj *Custom) GetCustomTotal(condition string, pars []interface{}) (list []
 				WHERE b.is_overseas = 0
 				UNION ALL
 				SELECT t.company_id+10000000,t.company_name,t.nation,t.seller_id,t.seller_name,
-				CASE t.enabled
-				WHEN 0 THEN '关闭'
-				ELSE '试用' END AS company_status,
 				t.view_total,0 AS road_show_total,t.create_time,'' AS last_view_time,t.is_hide,t.overseas_status,t.overseas_label
 				FROM %s.english_company AS t
 				INNER JOIN overseas_custom_seller AS n ON t.seller_id=n.seller_id
@@ -88,11 +81,6 @@ func (obj *Custom) GetCustomOverseasStatusTotal(condition string, pars []interfa
 
 	sql = `SELECT COUNT(1) AS total FROM (
 				SELECT a.company_id,a.company_name,a.nation,b.seller_id,b.seller_name,
-				CASE b.status 
-				WHEN '正式' THEN '正式'
-				WHEN '永续' THEN '正式'
-				WHEN '试用' THEN '试用'
-				ELSE '关闭' END AS company_status,
 				b.view_total,b.road_show_total,a.created_time AS create_time,b.last_view_time,a.is_hide,a.overseas_status,b.overseas_label
 				FROM company AS a
 				INNER JOIN company_product AS b ON a.company_id=b.company_id
@@ -100,9 +88,6 @@ func (obj *Custom) GetCustomOverseasStatusTotal(condition string, pars []interfa
 				WHERE b.is_overseas = 0
 				UNION ALL
 				SELECT t.company_id+10000000,t.company_name,t.nation,t.seller_id,t.seller_name,
-				CASE t.enabled
-				WHEN 0 THEN '关闭'
-				ELSE '试用' END AS company_status,
 				t.view_total,0 AS road_show_total,t.create_time,'' AS last_view_time,t.is_hide,t.overseas_status,t.overseas_label
 				FROM %s.english_company AS t
 				INNER JOIN overseas_custom_seller AS n ON t.seller_id=n.seller_id
@@ -146,11 +131,6 @@ func (obj *Custom) GetCustomListCount(condition string, pars []interface{}, comp
 
 	sql = `SELECT COUNT(1) AS count FROM (
 				SELECT a.company_id,a.company_name,a.nation,b.seller_id,b.seller_name,
-				CASE b.status 
-				WHEN '正式' THEN '正式'
-				WHEN '永续' THEN '正式'
-				WHEN '试用' THEN '试用'
-				ELSE '关闭' END AS company_status,
 				b.view_total,b.road_show_total,a.created_time AS create_time,b.last_view_time,a.is_hide,a.overseas_status,b.overseas_label
 				FROM company AS a
 				INNER JOIN company_product AS b ON a.company_id=b.company_id
@@ -166,9 +146,6 @@ func (obj *Custom) GetCustomListCount(condition string, pars []interface{}, comp
 	sql += `
 				UNION ALL
 				SELECT t.company_id+10000000,t.company_name,t.nation,t.seller_id,t.seller_name,
-				CASE t.enabled
-				WHEN 0 THEN '关闭'
-				ELSE '试用' END AS company_status,
 				t.view_total,0 AS road_show_total,t.create_time,'' AS last_view_time,t.is_hide,t.overseas_status,t.overseas_label
 				FROM %s.english_company AS t
 				INNER JOIN overseas_custom_seller AS n ON t.seller_id=n.seller_id
@@ -202,13 +179,8 @@ func (obj *Custom) GetCustomList(condition string, pars []interface{}, companySt
 
 	sql = `SELECT * FROM (
 				SELECT a.company_id,a.company_name,a.nation,b.seller_id,b.seller_name,
-				CASE b.status 
-				WHEN '正式' THEN '正式'
-				WHEN '永续' THEN '正式'
-				WHEN '试用' THEN '试用'
-				ELSE '关闭' END AS company_status,
 				b.view_total,b.road_show_total,a.created_time AS create_time,b.last_view_time,a.is_hide,a.overseas_status,
-				2 AS source,b.overseas_label
+				2 AS source,b.overseas_label,a.reset_btn
 				FROM company AS a
 				INNER JOIN company_product AS b ON a.company_id=b.company_id
 				INNER JOIN overseas_custom_seller AS c ON b.seller_id=c.seller_id
@@ -223,11 +195,8 @@ func (obj *Custom) GetCustomList(condition string, pars []interface{}, companySt
 	sql += `
 				UNION ALL
 				SELECT t.company_id+10000000,t.company_name,t.nation,t.seller_id,t.seller_name,
-				CASE t.enabled
-				WHEN 0 THEN '关闭'
-				ELSE '试用' END AS company_status,
 				t.view_total,t.road_show_total,t.create_time,t.last_view_time,t.is_hide,t.overseas_status,
-				1 AS source,t.overseas_label
+				1 AS source,t.overseas_label,t.reset_btn
 				FROM %s.english_company AS t
 				INNER JOIN overseas_custom_seller AS n ON t.seller_id=n.seller_id
              WHERE 1=1 AND t.is_deleted=0 `
@@ -294,11 +263,6 @@ func (obj *Custom) GetCustomByCompanyId(companyId int) (item *Custom, err error)
 
 	sql = `SELECT * FROM (
 				SELECT a.company_id,a.company_name,a.nation,b.seller_id,b.seller_name,
-				CASE b.status 
-				WHEN '正式' THEN '正式'
-				WHEN '永续' THEN '正式'
-				WHEN '试用' THEN '试用'
-				ELSE '关闭' END AS company_status,
 				b.view_total,b.road_show_total,a.created_time AS create_time,b.last_view_time,a.is_hide,a.overseas_status
 				FROM company AS a
 				INNER JOIN company_product AS b ON a.company_id=b.company_id
@@ -306,9 +270,6 @@ func (obj *Custom) GetCustomByCompanyId(companyId int) (item *Custom, err error)
 				WHERE b.is_overseas = 0`
 	sql += ` UNION ALL
 				SELECT t.company_id+10000000,t.company_name,t.nation,t.seller_id,t.seller_name,
-				CASE t.enabled
-				WHEN 0 THEN '关闭'
-				ELSE '试用' END AS company_status,
 				t.view_total,0 AS road_show_total,t.create_time,'' AS last_view_time,t.is_hide,t.overseas_status
 				FROM %s.english_company AS t
 				INNER JOIN overseas_custom_seller AS n ON t.seller_id=n.seller_id
@@ -339,11 +300,6 @@ func (obj *Custom) GetCustomOverseasLabelTotal(condition string, pars []interfac
 
 	sql = `SELECT overseas_label,COUNT(1) AS total FROM (
 				SELECT a.company_id,a.company_name,a.nation,b.seller_id,b.seller_name,
-				CASE b.status 
-				WHEN '正式' THEN '正式'
-				WHEN '永续' THEN '正式'
-				WHEN '试用' THEN '试用'
-				ELSE '关闭' END AS company_status,
 				b.view_total,b.road_show_total,a.created_time AS create_time,b.last_view_time,a.is_hide,a.overseas_status,b.overseas_label
 				FROM company AS a
 				INNER JOIN company_product AS b ON a.company_id=b.company_id
@@ -351,9 +307,6 @@ func (obj *Custom) GetCustomOverseasLabelTotal(condition string, pars []interfac
 				WHERE b.is_overseas = 0
 				UNION ALL
 				SELECT t.company_id+10000000,t.company_name,t.nation,t.seller_id,t.seller_name,
-				CASE t.enabled
-				WHEN 0 THEN '关闭'
-				ELSE '试用' END AS company_status,
 				t.view_total,0 AS road_show_total,t.create_time,'' AS last_view_time,t.is_hide,t.overseas_status,t.overseas_label
 				FROM %s.english_company AS t
 				INNER JOIN overseas_custom_seller AS n ON t.seller_id=n.seller_id
@@ -378,3 +331,11 @@ type CustomOverseasLabelSetReq struct {
 	CompanyId     int `description:"客户ID"`
 	OverseasLabel int `description:"海外客户试用子标签:1未分类、2  推进、3 跟踪、4 预备、"`
 }
+
+// 更新客户产品信息
+func (obj *Custom) UpdateCompanyProductOverseasLabel(overseasLabel, companyId int) (err error) {
+	o := orm.NewOrm()
+	sql := ` UPDATE company_product SET overseas_label=? WHERE company_id=? AND product_id=1 `
+	_, err = o.Raw(sql, overseasLabel, companyId).Exec()
+	return
+}

+ 85 - 0
models/overseas_custom/overseas_custom_seller.go

@@ -1,7 +1,9 @@
 package overseas_custom
 
 import (
+	"context"
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/models/company"
 	"time"
 )
 
@@ -75,3 +77,86 @@ func (m *OverseasCustomerSale) HandelOverseasCustomerSale(sellerId, isOverseas i
 	}
 	return err
 }
+
+// EnglishCompany 英文客户
+type EnglishCompany struct {
+	CompanyId      int       `orm:"column(company_id);pk" description:"英文客户ID"`
+	CompanyName    string    `description:"客户名称"`
+	CountryCode    string    `description:"国家Code"`
+	Country        string    `description:"国家"`
+	SellerId       int       `description:"销售ID"`
+	SellerName     string    `description:"销售姓名"`
+	ViewTotal      int       `description:"累计点击量/阅读量"`
+	IsDeleted      int       `description:"删除状态:0-正常;1-已删除"`
+	CreateTime     time.Time `description:"创建时间"`
+	ModifyTime     time.Time `description:"更新时间"`
+	Enabled        int       `description:"0-禁用; 1-启用; 2-部分禁用"`
+	Status         int       `description:"1:正式,2:临时,3:终止"`
+	Nation         string    `description:"所属国家"`
+	IsHide         int       `description:"是否隐藏:0:不隐藏,1:隐藏"`
+	OverseasStatus string    `description:"海外客户状态:'正式','试用','关闭'"`
+	OverseasLabel  int       `description:"海外客户试用子标签:1未分类、2  推进、3 跟踪、4 预备、"`
+}
+
+func (m *OverseasCustomerSale) HandelCompanyStatus(sellerId int) (err error) {
+	o := orm.NewOrm()
+	tx, err := o.BeginWithCtx(context.TODO())
+	if err != nil {
+		return err
+	}
+	enCompanyList := make([]*EnglishCompany, 0)
+	sql := ` SELECT * FROM english_company WHERE seller_id=? `
+	_, err = tx.Raw(sql, sellerId).QueryRows(&enCompanyList)
+	if err != nil {
+		return err
+	}
+
+	if len(enCompanyList) > 0 {
+		for _, v := range enCompanyList {
+			var overseasStatus string
+			var resetBtn int
+			if v.Enabled == 0 {
+				overseasStatus = "关闭"
+				resetBtn = 0
+			} else {
+				overseasStatus = "试用"
+				resetBtn = 1
+			}
+			sql = ` UPDATE english_company SET overseas_status=?,reset_btn=? WHERE company_id=? `
+			_, err = tx.Raw(sql, overseasStatus, resetBtn, v.CompanyId).Exec()
+			if err != nil {
+				return err
+			}
+		}
+	}
+
+	companyList := make([]*company.CompanyProduct, 0)
+	sql = ` SELECT * FROM company_product WHERE seller_id=? `
+	_, err = tx.Raw(sql, sellerId).QueryRows(&companyList)
+	if err != nil {
+		return err
+	}
+
+	if len(companyList) > 0 {
+		for _, v := range companyList {
+			var overseasStatus string
+			var resetBtn int
+			if v.Status == "正式" || v.Status == "永续" {
+				overseasStatus = "正式"
+				resetBtn = 0
+			} else if v.Status == "试用" {
+				overseasStatus = "试用"
+				resetBtn = 1
+			} else {
+				overseasStatus = "关闭"
+				resetBtn = 0
+			}
+			sql = ` UPDATE english_company SET overseas_status=?,reset_btn=? WHERE company_id=? `
+			_, err = tx.Raw(sql, overseasStatus, resetBtn, v.CompanyId).Exec()
+			if err != nil {
+				return err
+			}
+		}
+	}
+	return err
+}