فهرست منبع

Merge branch 'crm/crm_15.9.1' of http://8.136.199.33:3000/hongze/hz_crm_api into debug

xingzai 7 ماه پیش
والد
کامیت
2398ff788d

+ 1 - 0
controllers/company_share.go

@@ -653,6 +653,7 @@ func (this *CompanyController) CompanyShareList() {
 				ShareSellerId:   v.ShareSellerId,
 				LastServiceTime: v.LastServiceTime,
 				ServiceTimes:    v.ServiceTimes,
+				IsUserMaker:     v.IsUserMaker,
 			}
 			if v.ShareSellerIds != "" {
 				shareSellerIds := strings.Split(v.ShareSellerIds, ",")

+ 5 - 0
controllers/statistic_company_merge.go

@@ -403,6 +403,7 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
 		list = make([]*models.IncrementalList, 0)
 	}
 	var companyContractIds []int
+	var companyIds []int
 	for i := 0; i < listLen; i++ {
 		item := list[i]
 		companyContractIds = append(companyContractIds, item.CompanyContractId)
@@ -415,6 +416,7 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
 			expireDay := fmt.Sprintf("%v", int(sub.Hours()/24))
 			list[i].ExpireDay = expireDay
 		}
+		companyIds = append(companyIds, item.CompanyId)
 	}
 
 	//合并合同所对应的权限
@@ -424,8 +426,11 @@ func (this *StatisticCompanyMergerController) MergeCompanyList() {
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
+
+	mapIsUserMaker := cygxService.GetCompanyProductIsUserMakerByCompanyIds(companyIds)
 	for _, v := range list {
 		v.PermissionName = mappermissionName[v.CompanyContractId]
+		v.IsUserMaker = mapIsUserMaker[v.CompanyId]
 	}
 
 	page := paging.GetPaging(currentIndex, pageSize, dataTotal)

+ 31 - 0
models/company/company_history_remark.go

@@ -63,3 +63,34 @@ func DelCompanyHistoryRemark(tableName string, tableId int) (err error) {
 	_, err = o.Raw(sql, tableName, tableId).Exec()
 	return
 }
+
+// GetCompanyHistoryRemarkList 获取备注列表
+func GetCompanyHistoryRemarkListinit() (items []*CompanyHistoryRemark, err error) {
+	o := orm.NewOrm()
+	sql := "SELECT * FROM company_history_remark  WHERE	 table_id > 0   "
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+// AddCompanyHistoryRemarkMultiinit 批量添加
+func AddCompanyHistoryRemarkMultiinit(items []*CompanyHistoryRemark) (err error) {
+	if len(items) == 0 {
+		return
+	}
+	o, err := orm.NewOrm().Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err == nil {
+			o.Commit()
+		} else {
+			o.Rollback()
+		}
+	}()
+	if len(items) > 0 {
+		//批量添加流水信息
+		_, err = o.InsertMulti(len(items), items)
+	}
+	return
+}

+ 9 - 0
models/company/company_product.go

@@ -61,6 +61,7 @@ type CompanyProduct struct {
 	ShareSeller         string    `description:"共享销售员"`
 	ShareSellerId       int       `description:"共享销售员id"`
 	ShareGroupId        int       `description:"共享销售员所属分组ID"`
+	IsUserMaker         int       `description:"近四周之内是否包含决策人互动过 ,0否,1是"`
 }
 
 // 新增客户产品
@@ -380,6 +381,14 @@ func GetRemarkList(CompanyId, ProductId string) (items []*CompanyProductRemark,
 	return
 }
 
+// GetRemarkList 获取备注列表15.9.1job
+func GetRemarkListInit() (items []*CompanyProductRemark, err error) {
+	o := orm.NewOrm()
+	sql := "SELECT * FROM company_product_remark WHERE product_id=2 ORDER BY create_time DESC"
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 // GetRemarkList 获取备注列表
 func GetRemarkListByCompanyId(CompanyId string) (items []*CompanyProductRemark, err error) {
 	o := orm.NewOrm()

+ 11 - 1
models/cygx/user_feedback.go

@@ -68,7 +68,7 @@ type CygxCygxUserFeedbackResp struct {
 	List []*CygxUserFeedbackResp
 }
 
-func GetCygxUserFeedbackList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxOrderResp, err error) {
+func GetCygxUserFeedbackList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxUserFeedback, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
 	sql := `SELECT *
 			FROM
@@ -79,6 +79,16 @@ func GetCygxUserFeedbackList(condition string, pars []interface{}, startSize, pa
 	return
 }
 
+func GetCygxUserFeedbackListInit() (items []*CygxUserFeedback, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT *
+			FROM
+			cygx_user_feedback
+			WHERE 1 = 1 `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 // 获取数量
 func GetCygxUserFeedbackCount(condition string, pars []interface{}) (count int, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")

+ 9 - 0
models/statistic_report.go

@@ -405,6 +405,7 @@ type IncrementalList struct {
 	PermissionNameStatus string                             `description:"权限状态"`
 	CompanyProductStatus string                             `description:"客户状态"`
 	//CompanyContractIdGroup string                             `description:"表company_contract合并的 company_contract_id"`
+	IsUserMaker int `description:"近四周之内是否包含决策人互动过 ,0否,1是"`
 }
 
 // GetIncrementalNewCompanyCount 获取增量客户报表列表统计数据(根据合同来展示)
@@ -842,6 +843,14 @@ func GetMoreRenewalReason(CompanyId, ProductId string) (items []*company.Company
 	return
 }
 
+// GetMoreRenewalReason 获取更多未续约说明列表15.9.1
+func GetMoreRenewalReasoninit() (items []*company.CompanyRenewalReason, err error) {
+	o := orm.NewOrm()
+	sql := "SELECT * FROM company_renewal_reason WHERE  product_id=2 ORDER BY create_time DESC"
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 // GetLastContractMoney 获取上一份权益合同的金额
 func GetLastContractMoney(CompanyIds string) (items []*IncrementalList, err error) {
 	o := orm.NewOrm()

+ 207 - 0
services/company_record.go

@@ -2,8 +2,13 @@ package services
 
 import (
 	"fmt"
+	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/company"
+	"hongze/hz_crm_api/models/cygx"
+	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services/alarm_msg"
+	"hongze/hz_crm_api/utils"
+	"time"
 )
 
 // 权益客户新增历史备注
@@ -34,3 +39,205 @@ func DelCompanyHistoryRemark(tableName string, tableId int) {
 	err = company.DelCompanyHistoryRemark(tableName, tableId)
 	return
 }
+
+//func init() {
+//	AddCompanyHistoryRemarkInit()
+//}
+
+// 权益客户新增历史备注脚本
+func AddCompanyHistoryRemarkInit() {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+		}
+	}()
+
+	sysUserList, err := system.GetAdminList()
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	mapadmin := make(map[int]string)
+	for _, v := range sysUserList {
+		mapadmin[v.AdminId] = v.RealName
+	}
+
+	listHistory, e := company.GetCompanyHistoryRemarkListinit()
+	if e != nil {
+		fmt.Println(e)
+		return
+	}
+
+	makHistoryMap := make(map[string]bool)
+
+	for _, v := range listHistory {
+		makHistoryMap[fmt.Sprintf("id_", v.TableId, "name_", v.TableName)] = true
+	}
+
+	var items []*company.CompanyHistoryRemark
+
+	recordOB := new(company.CompanyServiceRecord)
+	recordCond := ""
+	recordPars := make([]interface{}, 0)
+	records, e := recordOB.GetItemsByCondition(recordCond, recordPars, []string{}, "")
+	if e != nil {
+		fmt.Println(e)
+		return
+	}
+
+	//company_service_record
+	for _, v := range records {
+		if makHistoryMap[fmt.Sprintf("id_", v.CompanyServiceRecordId, "name_", v.TableName)] {
+			continue
+		}
+		item := new(company.CompanyHistoryRemark)
+		item.CompanyId = v.CompanyId
+		item.Content = v.Content
+		item.SysAdminId = v.SysAdminId
+		item.SysAdminName = v.SysAdminName
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		item.ShowTime = v.CreateTime
+		item.CompanyId = v.CompanyId
+		item.TableId = v.CompanyServiceRecordId
+		item.TableName = "company_service_record"
+		items = append(items, item)
+	}
+
+	//company_product_remark
+	listRemark, e := company.GetRemarkListInit()
+	if e != nil {
+		fmt.Println(e)
+		return
+	}
+	for _, v := range listRemark {
+		if makHistoryMap[fmt.Sprintf("id_", v.CompanyProductRemarkId, "name_", "company_product_remark")] {
+			continue
+		}
+		item := new(company.CompanyHistoryRemark)
+		item.CompanyId = v.CompanyId
+		item.Content = v.Remark
+		item.SysAdminId = v.SysUserId
+		item.SysAdminName = v.SysRealName
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		item.ShowTime = v.CreateTime
+		item.CompanyId = v.CompanyId
+		item.TableId = v.CompanyProductRemarkId
+		item.TableName = "company_product_remark"
+		items = append(items, item)
+	}
+	//company_product_remark  end
+
+	var condition string
+	var pars []interface{}
+	condition += ` AND product_id = 2  ORDER  BY  create_time DESC   `
+	listrenewed_note, err := company.GetCompanyNoRenewedNoteList(condition, pars, 0, 0)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+	//company_no_renewed_note
+	for _, v := range listrenewed_note {
+		if makHistoryMap[fmt.Sprintf("id_", v.NoRenewedNoteId, "name_", "company_no_renewed_note")] {
+			continue
+		}
+		item := new(company.CompanyHistoryRemark)
+		item.CompanyId = v.CompanyId
+		item.Content = v.Content
+		item.SysAdminId = v.AdminId
+		item.SysAdminName = mapadmin[v.AdminId]
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		item.ShowTime = utils.StrTimeToTime(v.CreateTime)
+		item.CompanyId = v.CompanyId
+		item.TableId = v.NoRenewedNoteId
+		item.TableName = "company_no_renewed_note"
+		items = append(items, item)
+	}
+	//company_no_renewed_note end
+
+	//company_renewal_reason
+	listRenewa, e := models.GetMoreRenewalReasoninit()
+	if e != nil {
+		fmt.Println(e)
+		return
+	}
+	for _, v := range listRenewa {
+		if makHistoryMap[fmt.Sprintf("id_", v.CompanyRenewalReasonId, "name_", "company_renewal_reason")] {
+			continue
+		}
+		item := new(company.CompanyHistoryRemark)
+		item.CompanyId = v.CompanyId
+		item.Content = v.RenewalReason
+		//item.SysAdminId = v.SysUserId
+		//item.SysAdminName = v.SysRealName
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		item.ShowTime = v.CreateTime
+		item.CompanyId = v.CompanyId
+		item.TableId = v.CompanyRenewalReasonId
+		item.TableName = "company_renewal_reason"
+		items = append(items, item)
+	}
+	//company_renewal_reason end
+
+	//cygx_user_feedback
+	// 权益服务明细表
+	listUserFeedback, e := cygx.GetCygxUserFeedbackListInit()
+	if e != nil {
+		fmt.Println(e)
+		return
+	}
+	for _, v := range listUserFeedback {
+		if makHistoryMap[fmt.Sprintf("id_", v.UserFeedbackId, "name_", "cygx_user_feedback")] {
+			continue
+		}
+		item := new(company.CompanyHistoryRemark)
+		item.CompanyId = v.CompanyId
+		item.Content = v.Content
+		item.SysAdminId = v.AdminId
+		item.SysAdminName = mapadmin[v.AdminId]
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		item.ShowTime = v.CreateTime
+		item.CompanyId = v.CompanyId
+		item.UserId = v.UserId
+		item.Mobile = v.Mobile
+		item.Email = v.Email
+		item.RealName = v.RealName
+		item.TableId = v.UserFeedbackId
+		item.TableName = "cygx_user_feedback"
+		items = append(items, item)
+	}
+
+	if len(items) > 0 {
+		var itemsAdd []*company.CompanyHistoryRemark
+		for k, v := range items {
+			v.ProductId = 2
+			itemsAdd = append(itemsAdd, v)
+			if len(itemsAdd)%2000 == 0 {
+				fmt.Println(k)
+				e = company.AddCompanyHistoryRemarkMultiinit(itemsAdd)
+				if e != nil {
+					fmt.Println(e)
+					return
+				}
+				itemsAdd = make([]*company.CompanyHistoryRemark, 0)
+			}
+		}
+		e = company.AddCompanyHistoryRemarkMultiinit(itemsAdd)
+		if e != nil {
+			fmt.Println(e)
+			return
+		}
+	}
+
+	//cygx_user_feedback end
+
+	fmt.Println(len(items))
+	fmt.Println(len(records))
+	return
+}

+ 31 - 0
services/cygx/contract_allocation.go

@@ -952,3 +952,34 @@ func UpdateCygxallocationCompanyContractByEnterScoreInit() {
 	fmt.Println("END")
 	return
 }
+
+// 根据公司ID获取近四周之内有决策人互动的客户
+func GetCompanyProductIsUserMakerByCompanyIds(companyIds []int) (mapIsUserMakerResp map[int]int) {
+	var err error
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg("根据公司ID获取近四周之内有决策人互动的客户失败 GetCompanyProductIsUserMakerByCompanyIds ErrMsg:"+err.Error(), 2)
+
+		}
+	}()
+	lenArr := len(companyIds)
+	if lenArr == 0 {
+		return
+	}
+	var condition string
+	var pars []interface{}
+
+	condition += " AND  company_id IN (" + utils.GetOrmInReplace(lenArr) + ")  AND product_id = 2 AND is_user_maker = 1 "
+	pars = append(pars, companyIds)
+
+	productList, e := company.GetCompanyProductList(condition, pars)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCompanyProductList, Err: " + e.Error())
+		return
+	}
+	mapIsUserMakerResp = make(map[int]int)
+	for _, v := range productList {
+		mapIsUserMakerResp[v.CompanyId] = v.IsUserMaker
+	}
+	return
+}