rdluck 4 年之前
父節點
當前提交
c5c80611e3
共有 4 個文件被更改,包括 131 次插入21 次删除
  1. 38 3
      models/company.go
  2. 80 5
      services/company.go
  3. 12 12
      services/company_product.go
  4. 1 1
      services/task.go

+ 38 - 3
models/company.go

@@ -6,7 +6,7 @@ import (
 )
 
 type Company struct {
-	CompanyId       int     `orm:"column(company_id);pk"`
+	CompanyId       int       `orm:"column(company_id);pk"`
 	CompanyName     string    `description:"客户名称"`
 	CreditCode      string    `description:"社会统一信用码"`
 	CompanyCode     string    `description:"客户编码"`
@@ -41,6 +41,13 @@ func GetCompanyByName(companyName string) (item *Company, err error) {
 	return
 }
 
+func GetCompanyCountByCreditCode(CreditCode string) (count int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT COUNT(1) AS count FROM company WHERE credit_code=? `
+	err = o.Raw(sql, CreditCode).QueryRow(&count)
+	return
+}
+
 func AddCompany(item *Company) (newId int64, err error) {
 	o := orm.NewOrm()
 	newId, err = o.Insert(item)
@@ -59,8 +66,8 @@ type CompanyNeedFreeze struct {
 	CompanyProductId int
 	ProductId        int
 	CompanyName      string
-	ProductName string
-	Status string
+	ProductName      string
+	Status           string
 }
 
 func GetCompanyNeedFreeze(endDate string) (items []*CompanyNeedFreeze, err error) {
@@ -96,3 +103,31 @@ func GetCompanyNeedTryOut(endDate string) (items []*CompanyNeedFreeze, err error
 	_, err = o.Raw(sql, endDate).QueryRows(&items)
 	return
 }
+
+type CompanyIndustry struct {
+	IndustryId   int    `description:"行业id"`
+	IndustryName string `description:"行业名称"`
+	ParentId     int    `description:"父级id"`
+	Classify     string `description:"分类"`
+}
+
+func GetCompanyIndustryByName(industryName string) (items *CompanyIndustry, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM company_industry WHERE industry_name=? `
+	err = o.Raw(sql, industryName).QueryRow(&items)
+	return
+}
+
+func ModifyCompanyCreditCode(companyId int, creditCode string) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE company SET credit_code=? WHERE company_id=? AND credit_code='' `
+	_, err = o.Raw(sql, creditCode, companyId).Exec()
+	return
+}
+
+func ModifyCompanyIndustry(industryId,companyId int, industryName string) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE company_product SET industry_id=?,industry_name=? WHERE company_id=? AND product_id=1 AND industry_id=0 `
+	_, err = o.Raw(sql, industryId,industryName, companyId).Exec()
+	return
+}

+ 80 - 5
services/company.go

@@ -47,8 +47,8 @@ func ImportCompany() {
 		rows := sheet.MaxRow
 		for i := 0; i < rows; i++ {
 			if i > 2 {
-				row:= sheet.Row(i)
-				cells:=row.Cells
+				row := sheet.Row(i)
+				cells := row.Cells
 				realName := cells[1].String()
 				realName = strings.Trim(realName, " ")
 				realName = strings.Replace(realName, " ", "", -1)
@@ -161,8 +161,8 @@ func ImportCompanyUsers() {
 		rows := sheet.MaxRow
 		for i := 0; i < rows; i++ {
 			if i > 2 {
-				row:= sheet.Row(i)
-				cells:=row.Cells
+				row := sheet.Row(i)
+				cells := row.Cells
 
 				realName := cells[1].String()
 				realName = strings.Trim(realName, " ")
@@ -203,4 +203,79 @@ func ImportCompanyUsers() {
 		}
 	}
 	fmt.Println("len:", n)
-}
+}
+
+//导入客户信用码
+func ImportCompanyCreditCode() {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println("err:", err.Error())
+		}
+	}()
+	fileName := "./客户社会信用码.xlsx"
+	xlFile, err := xlsx.OpenFile(fileName)
+	if err != nil {
+		fmt.Printf("open failed: %s\n", err)
+	}
+	n := 0
+	for _, sheet := range xlFile.Sheet {
+		rows := sheet.MaxRow
+		for i := 0; i < rows; i++ {
+			if i > 2 {
+				row := sheet.Row(i)
+				cells := row.Cells
+
+				companyName := cells[0].String()
+				companyName = strings.Trim(companyName, " ")
+				companyName = strings.Replace(companyName, " ", "", -1)
+
+				creditCode := cells[4].String()
+				creditCode = strings.Trim(creditCode, " ")
+				creditCode = strings.Replace(creditCode, " ", "", -1)
+
+				industryName := cells[5].String()
+				industryName = strings.Trim(industryName, " ")
+				industryName = strings.Replace(industryName, " ", "", -1)
+
+				companyItem, err := models.GetCompanyByName(companyName)
+				if err != nil {
+					fmt.Println("GetCompanyByName Err:" + err.Error())
+					continue
+				}
+				if companyItem == nil {
+					fmt.Println("companyItem is nil")
+				}
+				count,err:=models.GetCompanyCountByCreditCode(creditCode)
+				if err!=nil {
+					fmt.Println("GetCompanyCountByCreditCode Err:"+err.Error())
+					continue
+				}
+				if count>0 {
+					fmt.Println("creditCode exist")
+					continue
+				}else{
+					industryItem,err:=models.GetCompanyIndustryByName(industryName)
+					if err!=nil {
+						fmt.Println("GetCompanyIndustryByName Err:"+err.Error())
+						return
+					}
+					fmt.Println(industryItem.IndustryId,industryItem.IndustryName)
+
+					err=models.ModifyCompanyCreditCode(companyItem.CompanyId,creditCode)
+					if err!=nil {
+						fmt.Println("Err:"+err.Error())
+						return
+					}
+					err=models.ModifyCompanyIndustry(industryItem.IndustryId,companyItem.CompanyId,industryName)
+					if err!=nil {
+						fmt.Println("Err:"+err.Error())
+						return
+					}
+				}
+				fmt.Println(companyName, creditCode, industryName)
+			}
+		}
+	}
+	fmt.Println("len:", n)
+}

+ 12 - 12
services/company_product.go

@@ -318,7 +318,7 @@ func CompanyRemind15Day(seller *models.Sellers) {
 	var isSend bool
 	msgContent := ``
 	emailContents := "<div><p>您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于15天后到期,请注意查看</p>"
-	emailContents += "<table border='1'><tr><td width='200'>30天后到期客户名称</td><td width='200'>到期日期</td><td width='200'>销售人员</td><td>客户类型</td></tr>"
+	emailContents += "<table border='1'><tr><td width='200'>15天后到期客户名称</td><td width='200'>到期日期</td><td width='200'>销售人员</td><td>客户类型</td></tr>"
 	for _, v := range companyItems {
 		emailContents += `<tr><td>` + v.CompanyName + `</td><td>` + v.EndDate + `</td><td>` + seller.RealName + `</td><td>` + v.Status + `</td></tr>`
 		msgContent += `客户:` + v.CompanyName + ";状态:" + v.Status + "\n"
@@ -328,12 +328,12 @@ func CompanyRemind15Day(seller *models.Sellers) {
 
 	if isSend {
 		if seller.Email != "" {
-			utils.SendEmailByHongze("到期前30天提醒", emailContents, seller.Email, "", "")
+			utils.SendEmailByHongze("到期前15天提醒", emailContents, seller.Email, "", "")
 		}
 
 		if seller.OpenId != "" {
-			first := "您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于30天后到期,请注意查看"
-			keyword1 := "到期前30天提醒"
+			first := "您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于15天后到期,请注意查看"
+			keyword1 := "到期前15天提醒"
 			keyword2 := remindEndDate
 			remark := msgContent
 
@@ -362,7 +362,7 @@ func CompanyRemind7Day(seller *models.Sellers) {
 	var isSend bool
 	msgContent := ``
 	emailContents := "<div><p>您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于7天后到期,请注意查看</p>"
-	emailContents += "<table border='1'><tr><td width='200'>30天后到期客户名称</td><td width='200'>到期日期</td><td width='200'>销售人员</td><td>客户类型</td></tr>"
+	emailContents += "<table border='1'><tr><td width='200'>7天后到期客户名称</td><td width='200'>到期日期</td><td width='200'>销售人员</td><td>客户类型</td></tr>"
 	for _, v := range companyItems {
 		emailContents += `<tr><td>` + v.CompanyName + `</td><td>` + v.EndDate + `</td><td>` + seller.RealName + `</td><td>` + v.Status + `</td></tr>`
 		msgContent += `客户:` + v.CompanyName + ";状态:" + v.Status + "\n"
@@ -372,12 +372,12 @@ func CompanyRemind7Day(seller *models.Sellers) {
 
 	if isSend {
 		if seller.Email != "" {
-			utils.SendEmailByHongze("到期前30天提醒", emailContents, seller.Email, "", "")
+			utils.SendEmailByHongze("到期前7天提醒", emailContents, seller.Email, "", "")
 		}
 
 		if seller.OpenId != "" {
-			first := "您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于30天后到期,请注意查看"
-			keyword1 := "到期前30天提醒"
+			first := "您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于7天后到期,请注意查看"
+			keyword1 := "到期前7天提醒"
 			keyword2 := remindEndDate
 			remark := msgContent
 
@@ -406,7 +406,7 @@ func CompanyRemind1Day(seller *models.Sellers) {
 	var isSend bool
 	msgContent := ``
 	emailContents := "<div><p>您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于今天后到期,请注意查看</p>"
-	emailContents += "<table border='1'><tr><td width='200'>30天后到期客户名称</td><td width='200'>到期日期</td><td width='200'>销售人员</td><td>客户类型</td></tr>"
+	emailContents += "<table border='1'><tr><td width='200'>1天后到期客户名称</td><td width='200'>到期日期</td><td width='200'>销售人员</td><td>客户类型</td></tr>"
 	for _, v := range companyItems {
 		emailContents += `<tr><td>` + v.CompanyName + `</td><td>` + v.EndDate + `</td><td>` + seller.RealName + `</td><td>` + v.Status + `</td></tr>`
 		msgContent += `客户:` + v.CompanyName + ";状态:" + v.Status + "\n"
@@ -416,12 +416,12 @@ func CompanyRemind1Day(seller *models.Sellers) {
 
 	if isSend {
 		if seller.Email != "" {
-			utils.SendEmailByHongze("到期前30天提醒", emailContents, seller.Email, "", "")
+			utils.SendEmailByHongze("到期前1天提醒", emailContents, seller.Email, "", "")
 		}
 
 		if seller.OpenId != "" {
-			first := "您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于30天后到期,请注意查看"
-			keyword1 := "到期前30天提醒"
+			first := "您有【" + strconv.Itoa(len(companyItems)) + "】 客户将于1天后到期,请注意查看"
+			keyword1 := "到期前1天提醒"
 			keyword2 := remindEndDate
 			remark := msgContent
 

+ 1 - 1
services/task.go

@@ -59,7 +59,7 @@ func Task() {
 
 func Task123() {
 	fmt.Println("start")
-	CompanyRemind()
+	ImportCompanyCreditCode()
 	fmt.Println("end")
 }