Browse Source

Merge branch 'master' of http://8.136.199.33:3000/hongze/hz_crm_api into crm/crm_15.4

xingzai 1 year ago
parent
commit
9bc45b5db4

+ 7 - 3
controllers/company.go

@@ -1169,9 +1169,9 @@ func (this *CompanyController) List() {
 	btnServiceRecordMap := make(map[int]bool)
 	if len(companyIds) > 0 {
 		serRecOB := new(company.CompanyServiceRecord)
-		serRecCond := ` AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `)`
+		serRecCond := ` AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `) AND company_type = ? `
 		serRecPars := make([]interface{}, 0)
-		serRecPars = append(serRecPars, companyIds)
+		serRecPars = append(serRecPars, companyIds, 2)
 		serRecs, e := serRecOB.GetItemsByCondition(serRecCond, serRecPars, []string{"company_service_record_id", "company_id"}, "")
 		if e != nil {
 			br.Msg = "获取失败"
@@ -2904,7 +2904,11 @@ func (this *CompanyController) Add() {
 	companyProduct.TryStage = 1
 	companyProduct.OverseasLabel = 1
 	if seller.Mobile == "13065778668" {
-		companyProduct.IsOverseas = 1
+		if req.RegionType == "海外" {
+			companyProduct.IsOverseas = 0
+		} else {
+			companyProduct.IsOverseas = 1
+		}
 	}
 	if productId == utils.COMPANY_PRODUCT_RAI_ID && req.Status == utils.COMPANY_STATUS_FOREVER { // 权益的永续客户给一个状态初始化的记录
 		companyProduct.InitStatus = req.Status

+ 26 - 18
controllers/company_service_record.go

@@ -10,15 +10,16 @@ import (
 	"time"
 )
 
-// CompanyServiceRecordController 客户-服务记录
+// CompanyServiceRecordController 客户-沟通记录
 type CompanyServiceRecordController struct {
 	BaseAuthController
 }
 
 // ServiceRecordList
-// @Title 服务记录列表
-// @Description 服务记录列表
+// @Title 沟通记录列表
+// @Description 沟通记录列表
 // @Param   CompanyId  query  int  true  "客户ID"
+// @Param   CompanyType  query  int  true  "客户类型,0:中文客户,1:英文客户"
 // @Success Ret=200 获取成功
 // @router /service_record/list [get]
 func (this *CompanyServiceRecordController) ServiceRecordList() {
@@ -42,15 +43,16 @@ func (this *CompanyServiceRecordController) ServiceRecordList() {
 		br.Msg = "参数有误"
 		return
 	}
+	companyType, _ := this.GetInt("CompanyType", 2)
 
 	recordOB := new(company.CompanyServiceRecord)
-	recordCond := fmt.Sprintf(` AND %s = ?`, company.CompanyServiceRecordColumns.CompanyId)
+	recordCond := fmt.Sprintf(` AND %s = ? AND company_type = ? `, company.CompanyServiceRecordColumns.CompanyId)
 	recordPars := make([]interface{}, 0)
-	recordPars = append(recordPars, companyId)
+	recordPars = append(recordPars, companyId, companyType)
 	records, e := recordOB.GetItemsByCondition(recordCond, recordPars, []string{}, "")
 	if e != nil {
 		br.Msg = "获取失败"
-		br.ErrMsg = "获取客户服务记录失败, Err: " + e.Error()
+		br.ErrMsg = "获取客户沟通记录失败, Err: " + e.Error()
 		return
 	}
 	respList := make([]*company.CompanyServiceRecordItem, 0)
@@ -72,8 +74,8 @@ func (this *CompanyServiceRecordController) ServiceRecordList() {
 }
 
 // ServiceRecordAdd
-// @Title 新增服务记录
-// @Description 新增服务记录
+// @Title 新增沟通记录
+// @Description 新增沟通记录
 // @Param	request	body company.CompanyServiceRecordAddReq true "type json string"
 // @Success Ret=200 操作成功
 // @router /service_record/add [post]
@@ -105,15 +107,21 @@ func (this *CompanyServiceRecordController) ServiceRecordAdd() {
 	}
 	req.Content = strings.TrimSpace(req.Content)
 	if req.Content == "" {
-		br.Msg = "请输入服务描述"
+		br.Msg = "请输入沟通描述"
 		return
 	}
-	if len([]rune(req.Content)) > 100 {
-		br.Msg = "服务描述不可超过100个字符"
-		return
+	//if len([]rune(req.Content)) > 100 {
+	//	br.Msg = "沟通描述不可超过100个字符"
+	//	return
+	//}
+
+	// 默认中文客户
+	if req.CompanyType == 0 {
+		req.CompanyType = 2
 	}
 
 	item := new(company.CompanyServiceRecord)
+	item.CompanyType = req.CompanyType
 	item.CompanyId = req.CompanyId
 	item.Content = req.Content
 	item.SysAdminId = sysUser.AdminId
@@ -122,7 +130,7 @@ func (this *CompanyServiceRecordController) ServiceRecordAdd() {
 	item.ModifyTime = time.Now().Local()
 	if e := item.Create(); e != nil {
 		br.Msg = "操作失败"
-		br.ErrMsg = "新增服务记录失败, Err: " + e.Error()
+		br.ErrMsg = "新增沟通记录失败, Err: " + e.Error()
 		return
 	}
 
@@ -132,8 +140,8 @@ func (this *CompanyServiceRecordController) ServiceRecordAdd() {
 }
 
 // ServiceRecordDel
-// @Title 删除服务记录
-// @Description 删除服务记录
+// @Title 删除沟通记录
+// @Description 删除沟通记录
 // @Param	request	body company.CompanyServiceRecordDelReq true "type json string"
 // @Success Ret=200 操作成功
 // @router /service_record/del [post]
@@ -167,16 +175,16 @@ func (this *CompanyServiceRecordController) ServiceRecordDel() {
 	item := new(company.CompanyServiceRecord)
 	if e := item.GetItemById(req.CompanyServiceRecordId); e != nil {
 		if e.Error() == utils.ErrNoRow() {
-			br.Msg = "服务记录已被删除, 请刷新页面"
+			br.Msg = "沟通记录已被删除, 请刷新页面"
 			return
 		}
 		br.Msg = "操作失败"
-		br.ErrMsg = "获取服务记录失败, Err: " + e.Error()
+		br.ErrMsg = "获取沟通记录失败, Err: " + e.Error()
 		return
 	}
 	if e := item.Del(); e != nil {
 		br.Msg = "操作失败"
-		br.ErrMsg = "删除服务记录失败, Err: " + e.Error()
+		br.ErrMsg = "删除沟通记录失败, Err: " + e.Error()
 		return
 	}
 

+ 2 - 2
controllers/full_company.go

@@ -769,9 +769,9 @@ func (this *FullCompanyController) List() {
 	btnServiceRecordMap := make(map[int]bool)
 	if len(companyIds) > 0 {
 		serRecOB := new(company.CompanyServiceRecord)
-		serRecCond := ` AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `)`
+		serRecCond := ` AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `) AND company_type = ? `
 		serRecPars := make([]interface{}, 0)
-		serRecPars = append(serRecPars, companyIds)
+		serRecPars = append(serRecPars, companyIds, 2)
 		serRecs, e := serRecOB.GetItemsByCondition(serRecCond, serRecPars, []string{"company_service_record_id", "company_id"}, "")
 		if e != nil {
 			br.Msg = "获取失败"

+ 9 - 5
controllers/statistic_report.go

@@ -6235,6 +6235,7 @@ func (this *StatisticReportController) SimpleList() {
 // @Title 获取续约异常的客户统计数据
 // @Description 获取续约客户统计数据接口
 // @Param   DataType   query   string  true       "枚举值:week、month、time_interval"
+// @Param   Source   query   int  true       "类型,枚举值,1:续约异常客户;2:续约正常客户;3:超时续约客户;4:合同到期后一个月未续约客户;5:合同到期未续约客户;6:合同到期前一个月还未续约的客户;7:合同到期前两个月还未续约客户;8:合同到期前3个月还未续约客户;9:合同到期前4个月还未续约客户"
 // @Param   StartDate   query   string  true       "开始日期,格式:2022-04-06"
 // @Param   EndDate   query   string  true       "结束日期,格式:2022-04-06"
 // @Success 200 {object} statistic_report.CompanyUnusualRenewRecordResp
@@ -6258,6 +6259,7 @@ func (this *StatisticReportController) UnusualRenewCompanyStatistics() {
 	productId, _ := this.GetInt("ProductId", 1)
 	startDate := this.GetString("StartDate")
 	endDate := this.GetString("EndDate")
+	source, _ := this.GetInt("Source", 1)
 
 	var companyUnusualRenewDataMapList []statistic_report.UnusualCompanyRenewDataMap
 	var err error
@@ -6267,7 +6269,7 @@ func (this *StatisticReportController) UnusualRenewCompanyStatistics() {
 	case "week":
 		nowWeekMonday := utils.GetNowWeekMonday() //本周周一
 		//companyRenewDataMapList, firstDate, err = statistic_report.GetWeekData()
-		companyUnusualRenewDataMapList, _, err = statistic_report.GetUnusualRenewWeekDataNum(nowWeekMonday, productId, 6)
+		companyUnusualRenewDataMapList, _, err = statistic_report.GetUnusualRenewWeekDataNum(nowWeekMonday, productId, source, 6)
 		if err != nil {
 			br.Msg = "数据异常"
 			br.ErrMsg = "数据异常,Err:" + err.Error()
@@ -6275,7 +6277,7 @@ func (this *StatisticReportController) UnusualRenewCompanyStatistics() {
 		}
 	case "month":
 		nowMonthFirstDay := utils.GetNowMonthFirstDay() //本月第一天
-		companyUnusualRenewDataMapList, _, err = statistic_report.GetUnusualRenewMonthDataNum(nowMonthFirstDay, productId, 6)
+		companyUnusualRenewDataMapList, _, err = statistic_report.GetUnusualRenewMonthDataNum(nowMonthFirstDay, productId, source, 6)
 		if err != nil {
 			br.Msg = "数据异常"
 			br.ErrMsg = "数据异常,Err:" + err.Error()
@@ -6287,7 +6289,7 @@ func (this *StatisticReportController) UnusualRenewCompanyStatistics() {
 			br.ErrMsg = "开始日期或结束日期不能为空,Err:" + err.Error()
 			return
 		}
-		companyUnusualRenewDataMapList, _, err = statistic_report.GetUnusualRenewTimeIntervalData(productId, startDate, endDate)
+		companyUnusualRenewDataMapList, _, err = statistic_report.GetUnusualRenewTimeIntervalData(productId, source, startDate, endDate)
 		if err != nil {
 			br.Msg = "数据异常"
 			br.ErrMsg = "数据异常,Err:" + err.Error()
@@ -6393,8 +6395,9 @@ func (this *StatisticReportController) UnusualRenewCompanyStatistics() {
 
 // UnusualRenewCompanyList
 // @Title 获取未续约的公司合同列表
-// @Description 合同套餐列表
+// @Description 获取未续约的公司合同列表
 // @Param   ProductId  query  int  false  "套餐类型: 1-FICC(默认); 2-权益"
+// @Param   Source   query   int  true       "类型,枚举值,1:续约异常客户;2:续约正常客户;3:超时续约客户;4:合同到期后一个月未续约客户;5:合同到期未续约客户;6:合同到期前一个月还未续约的客户;7:合同到期前两个月还未续约客户;8:合同到期前3个月还未续约客户;9:合同到期前4个月还未续约客户"
 // @Param   StartDate   query   string  true       "开始日期,格式:2022-04"
 // @Param   EndDate   query   string  true       "结束日期,格式:2022-04"
 // @Success 200 {object} company.GetUnusualRenewListGroupMonthResp
@@ -6418,6 +6421,7 @@ func (this *StatisticReportController) UnusualRenewCompanyList() {
 	productId, _ := this.GetInt("ProductId", 1)
 	startDate := this.GetString("StartDate")
 	endDate := this.GetString("EndDate")
+	source, _ := this.GetInt("Source", 1)
 
 	if startDate == `` || endDate == `` {
 		br.Msg = "开始日期或结束日期不能为空"
@@ -6472,7 +6476,7 @@ func (this *StatisticReportController) UnusualRenewCompanyList() {
 	}
 	sellerIds := strings.Join(subAdminIds, ",")
 
-	list, err := company.GetUnusualRenewList(startDateTimer, endDateTimer, productId, sellerIds)
+	list, err := company.GetUnusualRenewList(startDateTimer, endDateTimer, productId, source, sellerIds)
 	if err != nil {
 		br.Msg = "数据异常"
 		br.ErrMsg = "数据异常,Err:" + err.Error()

+ 6 - 6
models/company/company_renewal_record.go

@@ -47,7 +47,7 @@ WHERE
 }
 
 // GetUnusualRenewCompanyByShareSellerList 获取销售未续约数据
-func GetUnusualRenewCompanyByShareSellerList(startDate, endDate time.Time, productId int) (list []*UnusualRenewCompanyGroup, err error) {
+func GetUnusualRenewCompanyByShareSellerList(startDate, endDate time.Time, productId, source int) (list []*UnusualRenewCompanyGroup, err error) {
 	o := orm.NewOrm()
 	sql := `	SELECT
 	a.seller_id,a.share_seller_id,
@@ -59,12 +59,12 @@ func GetUnusualRenewCompanyByShareSellerList(startDate, endDate time.Time, produ
 WHERE
 	a.modify_time BETWEEN ? 
 	AND ? 
-    AND a.source = 1 
+    AND a.source = ? 
 	AND a.product_id = ?
 GROUP BY
 	a.share_seller_id;
 `
-	_, err = o.Raw(sql, startDate, endDate, productId).QueryRows(&list)
+	_, err = o.Raw(sql, startDate, endDate, source, productId).QueryRows(&list)
 
 	return
 }
@@ -96,14 +96,14 @@ type GetUnusualRenewListGroupMonthResp struct {
 }
 
 // GetUnusualRenewList 获取未续约公司列表
-func GetUnusualRenewList(startDate, endDate time.Time, productId int, sellerIds string) (list []*CompanyRenewalRecord, err error) {
+func GetUnusualRenewList(startDate, endDate time.Time, productId, source int, sellerIds string) (list []*CompanyRenewalRecord, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
 	* 
 FROM
 	company_renewal_record 
 WHERE
-	source = 1 
+	source = ? 
 	AND modify_time BETWEEN ? 
 	AND ? 
 	AND product_id = ?
@@ -111,7 +111,7 @@ WHERE
 	OR seller_id in (` + sellerIds + `))
 
 `
-	_, err = o.Raw(sql, startDate, endDate, productId).QueryRows(&list)
+	_, err = o.Raw(sql, source, startDate, endDate, productId).QueryRows(&list)
 
 	return
 }

+ 6 - 2
models/company/company_service_record.go

@@ -11,6 +11,7 @@ import (
 // CompanyServiceRecord 客户-服务记录表
 type CompanyServiceRecord struct {
 	CompanyServiceRecordId int       `orm:"column(company_service_record_id);pk" description:"服务记录ID"`
+	CompanyType            int       `description:"客户类型,1:英文客户,2:中文客户"`
 	CompanyId              int       `description:"客户ID"`
 	Content                string    `description:"内容"`
 	SysAdminId             int       `description:"创建人ID"`
@@ -22,6 +23,7 @@ type CompanyServiceRecord struct {
 
 var CompanyServiceRecordColumns = struct {
 	CompanyServiceRecordId string
+	CompanyType            string
 	CompanyId              string
 	Content                string
 	SysAdminId             string
@@ -30,6 +32,7 @@ var CompanyServiceRecordColumns = struct {
 	ModifyTime             string
 }{
 	CompanyServiceRecordId: "company_service_record_id",
+	CompanyType:            "company_type",
 	CompanyId:              "company_id",
 	Content:                "content",
 	SysAdminId:             "sys_admin_id",
@@ -124,8 +127,9 @@ func (m *CompanyServiceRecord) GetPageItemsByCondition(startSize, pageSize int,
 }
 
 type CompanyServiceRecordAddReq struct {
-	CompanyId int    `description:"客户ID"`
-	Content   string `description:"内容"`
+	CompanyType int    `description:"客户类型,0:中文客户,1:英文客户"`
+	CompanyId   int    `description:"客户ID"`
+	Content     string `description:"内容"`
 }
 
 type CompanyServiceRecordDelReq struct {

+ 2 - 1
models/system/sys_admin.go

@@ -473,7 +473,8 @@ func GetSysuserRaiList() (items []*AdminItem, err error) {
 			role_type_code LIKE '%rai%' 
 			AND group_id NOT IN ( 19, 10, 17 ) 
 			AND enabled = 1 
-			OR real_name IN ( '沈涛', '张传星' )`
+			OR real_name IN ( '沈涛', '张传星' )  
+			OR mobile IN ( '15011263967', '18935318900' , '15600639653', '18010097689', '13520990566') ` // 先写死,看情况要不要改
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }

+ 8 - 8
services/statistic_report/unusual_renew_company.go

@@ -19,7 +19,7 @@ type UnusualCompanyRenewDataMap struct {
 }
 
 // GetUnusualRenewWeekDataNum 周度数据
-func GetUnusualRenewWeekDataNum(nowWeekMonday time.Time, productId, dataNum int) (adminDataList []UnusualCompanyRenewDataMap, firstDate time.Time, err error) {
+func GetUnusualRenewWeekDataNum(nowWeekMonday time.Time, productId, source, dataNum int) (adminDataList []UnusualCompanyRenewDataMap, firstDate time.Time, err error) {
 	nowWeekSunday := nowWeekMonday.AddDate(0, 0, 7).Add(-1 * time.Second) //本周周日
 
 	chanList := make([]chan UnusualCompanyRenewDataMap, 0)
@@ -32,7 +32,7 @@ func GetUnusualRenewWeekDataNum(nowWeekMonday time.Time, productId, dataNum int)
 
 		// 第一个开始日期
 		firstDate = lastWeekMonday
-		go getUnusualRenewSectionData(productId, lastWeekMonday, lastWeekSunday, tmpCh)
+		go getUnusualRenewSectionData(productId, source, lastWeekMonday, lastWeekSunday, tmpCh)
 	}
 
 	adminDataList = make([]UnusualCompanyRenewDataMap, 0)
@@ -47,7 +47,7 @@ func GetUnusualRenewWeekDataNum(nowWeekMonday time.Time, productId, dataNum int)
 }
 
 // GetUnusualRenewMonthDataNum 月度数据
-func GetUnusualRenewMonthDataNum(nowMonthFirstDay time.Time, productId, dataNum int) (adminDataList []UnusualCompanyRenewDataMap, firstDate time.Time, err error) { //三个协程返回
+func GetUnusualRenewMonthDataNum(nowMonthFirstDay time.Time, productId, source, dataNum int) (adminDataList []UnusualCompanyRenewDataMap, firstDate time.Time, err error) { //三个协程返回
 	//nowMonthLastDay := nowMonthFirstDay.AddDate(0, 1, 0).Add(-1 * time.Second) //本月最后一天
 
 	chanList := make([]chan UnusualCompanyRenewDataMap, 0)
@@ -61,7 +61,7 @@ func GetUnusualRenewMonthDataNum(nowMonthFirstDay time.Time, productId, dataNum
 
 		// 第一个开始日期
 		firstDate = lastMonthFirstDay
-		go getUnusualRenewSectionData(productId, lastMonthFirstDay, lastMonthLastDay, tmpCh)
+		go getUnusualRenewSectionData(productId, source, lastMonthFirstDay, lastMonthLastDay, tmpCh)
 	}
 
 	adminDataList = make([]UnusualCompanyRenewDataMap, 0)
@@ -76,7 +76,7 @@ func GetUnusualRenewMonthDataNum(nowMonthFirstDay time.Time, productId, dataNum
 }
 
 // GetUnusualRenewTimeIntervalData 区间数据
-func GetUnusualRenewTimeIntervalData(productId int, startDate, endDate string) (adminDataMapList []UnusualCompanyRenewDataMap, firstDate time.Time, err error) { //三个协程返回
+func GetUnusualRenewTimeIntervalData(productId, source int, startDate, endDate string) (adminDataMapList []UnusualCompanyRenewDataMap, firstDate time.Time, err error) { //三个协程返回
 	startDateTimer, _ := time.ParseInLocation(utils.FormatDate, startDate, time.Local)
 	endDateTimer, _ := time.ParseInLocation(utils.FormatDate, endDate, time.Local)
 	endDateTimer = endDateTimer.AddDate(0, 0, 1).Add(-1 * time.Second) //本月最后一天
@@ -86,7 +86,7 @@ func GetUnusualRenewTimeIntervalData(productId int, startDate, endDate string) (
 
 	ch1 := make(chan UnusualCompanyRenewDataMap, 0)
 
-	go getUnusualRenewSectionData(productId, startDateTimer, endDateTimer, ch1)
+	go getUnusualRenewSectionData(productId, source, startDateTimer, endDateTimer, ch1)
 
 	var adminDataMap UnusualCompanyRenewDataMap
 
@@ -99,7 +99,7 @@ func GetUnusualRenewTimeIntervalData(productId int, startDate, endDate string) (
 }
 
 // getUnusualRenewSectionData 获取周期数据
-func getUnusualRenewSectionData(productId int, startDate, endDate time.Time, ch chan UnusualCompanyRenewDataMap) (adminDataMap UnusualCompanyRenewDataMap, err error) {
+func getUnusualRenewSectionData(productId, source int, startDate, endDate time.Time, ch chan UnusualCompanyRenewDataMap) (adminDataMap UnusualCompanyRenewDataMap, err error) {
 	defer func() {
 		ch <- adminDataMap
 	}()
@@ -117,7 +117,7 @@ func getUnusualRenewSectionData(productId int, startDate, endDate time.Time, ch
 	// 续约异常
 	{
 
-		data, tmpErr := company.GetUnusualRenewCompanyByShareSellerList(startDate, endDate, productId)
+		data, tmpErr := company.GetUnusualRenewCompanyByShareSellerList(startDate, endDate, productId, source)
 
 		if tmpErr != nil {
 			err = tmpErr