瀏覽代碼

Merge branch 'master' of http://8.136.199.33:3000/hongze/hz_crm_api into crm/crm_17.1_rai

zhangchuanxing 1 天之前
父節點
當前提交
fd9016aeb9

+ 167 - 9
controllers/cygx/rai_serve.go

@@ -1226,15 +1226,6 @@ func (this *RaiServeCoAntroller) AddRemark() {
 	item.TableName = "company_history_remark"
 	item.TableName = "company_history_remark"
 
 
 	err = company.AddCompanyHistoryRemark(item)
 	err = company.AddCompanyHistoryRemark(item)
-
-	//{
-	//	approveContent := req.Remark
-	//	remark := "新增备注"
-	//	operation := "add_remark"
-	//	services.AddCompanyOperationRecord(req.CompanyId, companyProduct.SellerId, sysUser.AdminId, companyProduct.ProductId, sysUser.AdminId, companyProduct.CompanyName,
-	//		companyProduct.ProductName, sysUser.RealName, remark, operation, approveContent, sysUser.RealName, "", companyProduct.Status)
-	//}
-
 	if err != nil {
 	if err != nil {
 		br.Msg = "编辑失败"
 		br.Msg = "编辑失败"
 		br.ErrMsg = "编辑失败,Err:" + err.Error()
 		br.ErrMsg = "编辑失败,Err:" + err.Error()
@@ -1290,6 +1281,7 @@ func (this *RaiServeCoAntroller) RemarkList() {
 	resp := new(company.CompanyHistoryRemarkListResp)
 	resp := new(company.CompanyHistoryRemarkListResp)
 	for _, v := range remarkList {
 	for _, v := range remarkList {
 		item := new(company.CompanyHistoryRemarkResp)
 		item := new(company.CompanyHistoryRemarkResp)
+		item.HistoryId = v.HistoryId
 		item.CompanyId = v.CompanyId
 		item.CompanyId = v.CompanyId
 		item.Content = v.Content
 		item.Content = v.Content
 		item.SysAdminName = v.SysAdminName
 		item.SysAdminName = v.SysAdminName
@@ -1305,6 +1297,12 @@ func (this *RaiServeCoAntroller) RemarkList() {
 			item.RemarkType = "未续约说明"
 			item.RemarkType = "未续约说明"
 		case "cygx_user_feedback":
 		case "cygx_user_feedback":
 			item.RemarkType = "交流反馈(" + v.RealName + ")"
 			item.RemarkType = "交流反馈(" + v.RealName + ")"
+		case "company_approval":
+			item.RemarkType = "申请解冻"
+		case "company_history_remark":
+			item.RemarkType = "备注"
+			item.BtnEdit = true
+			item.BtnDelete = true
 		default:
 		default:
 			item.RemarkType = "备注"
 			item.RemarkType = "备注"
 		}
 		}
@@ -1316,3 +1314,163 @@ func (this *RaiServeCoAntroller) RemarkList() {
 	br.Msg = "获取成功"
 	br.Msg = "获取成功"
 	br.Data = resp
 	br.Data = resp
 }
 }
+
+// EditRemark
+// @Title 修改历史备注
+// @Description 修改历史备注
+// @Param	request	body company.CompanyHistoryRemarkReq true "type json string"
+// @Success 200 编辑成功
+// @router /rai_serve/remark/edit [post]
+func (this *RaiServeCoAntroller) EditRemark() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	var req company.CompanyHistoryRemarkEditReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	historyId := req.HistoryId
+	content := req.Content
+	if historyId <= 0 {
+		br.Msg = "参数缺失"
+		br.ErrMsg = "参数缺失,备注ID未传!"
+		return
+	}
+	if content == "" {
+		br.Msg = "参数缺失"
+		br.ErrMsg = "参数缺失,备注说明未传!"
+		return
+	}
+	if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
+		br.Msg = "角色类型错误"
+		br.ErrMsg = "角色类型错误,该角色不能添加备注!"
+		return
+	}
+	detail, err := company.GetCompanyHistoryRemarkByHistoryId(historyId)
+	if err != nil {
+		br.Msg = "编辑失败"
+		br.ErrMsg = "编辑失败,Err:" + err.Error()
+		return
+	}
+	if detail.TableName != "company_history_remark" {
+		br.Msg = "编辑失败"
+		br.ErrMsg = "该类型无法编辑" + detail.TableName
+		return
+	}
+
+	whereParams := make(map[string]interface{})
+	updateParams := make(map[string]interface{})
+
+	whereParams["history_id"] = historyId
+
+	updateParams["content"] = content
+	updateParams["modify_time"] = time.Now()
+
+	err = company.UpdateCompanyHistoryRemark(whereParams, updateParams)
+	if err != nil {
+		br.Msg = "修改失败"
+		br.ErrMsg = "编辑失败,Err:" + err.Error()
+		return
+	}
+	item := new(company.CompanyHistoryRemarkLog)
+	item.HistoryId = detail.HistoryId
+	item.CompanyId = detail.CompanyId
+	item.ProductId = detail.ProductId
+	item.Content = detail.Content
+	item.ContentEdit = content
+	item.SysAdminId = sysUser.AdminId
+	item.SysAdminName = sysUser.RealName
+	item.CreateTime = time.Now()
+
+	err = company.AddCompanyHistoryRemarkLog(item)
+	if err != nil {
+		br.Msg = "编辑失败"
+		br.ErrMsg = "编辑失败,Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "编辑成功"
+}
+
+// DeletRemark
+// @Title 删除历史备注
+// @Description 删除历史备注
+// @Param	request	body company.CompanyHistoryRemarkEditReq true "type json string"
+// @Success 200 编辑成功
+// @router /rai_serve/remark/delete [post]
+func (this *RaiServeCoAntroller) DeleteRemark() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	var req company.CompanyHistoryRemarkEditReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	historyId := req.HistoryId
+
+	if historyId <= 0 {
+		br.Msg = "参数缺失"
+		br.ErrMsg = "参数缺失,备注ID未传!"
+		return
+	}
+
+	detail, err := company.GetCompanyHistoryRemarkByHistoryId(historyId)
+	if err != nil {
+		br.Msg = "编辑失败"
+		br.ErrMsg = "编辑失败,Err:" + err.Error()
+		return
+	}
+	if detail.TableName != "company_history_remark" {
+		br.Msg = "编辑失败"
+		br.ErrMsg = "该类型无法编辑" + detail.TableName
+		return
+	}
+
+	//whereParams := make(map[string]interface{})
+	//updateParams := make(map[string]interface{})
+	//
+	//whereParams["history_id"] = historyId
+	//
+	//updateParams["content"] = "12321312"
+	//updateParams["email"] = 1
+	////updateParams["is_del"] = 1
+	////updateParams["del_time"] = time.Now()
+	//updateParams["modify_time"] = time.Now()
+	////updateParams["del_admin_name"] = sysUser.RealName
+	////updateParams["del_admin_id"] = sysUser.AdminId
+
+	err = company.DeleteCompanyHistoryRemark(sysUser.RealName, sysUser.AdminId, historyId)
+	if err != nil {
+		br.Msg = "删除失败"
+		br.ErrMsg = "删除失败,Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "编辑成功"
+}

+ 3 - 0
controllers/cygx/report_selection.go

@@ -208,6 +208,7 @@ func (this *ReportSelectionController) PreserveAndPublish() {
 	//	existMap[v.ChartPermissionId] = v.ChartPermissionId
 	//	existMap[v.ChartPermissionId] = v.ChartPermissionId
 	//}
 	//}
 	go cygxService.UpdateReportSelectionResourceData(req.ArticleId) //首页最新页面数据逻辑处理 V11.1.1
 	go cygxService.UpdateReportSelectionResourceData(req.ArticleId) //首页最新页面数据逻辑处理 V11.1.1
+	go cygxService.UpdateReportSelectionSubjectNameList()           //获取报告精选最新一期标的名称
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true
 	br.Msg = "操作成功"
 	br.Msg = "操作成功"
@@ -582,6 +583,7 @@ func (this *ReportSelectionController) PublishAndCancel() {
 		return
 		return
 	}
 	}
 	go cygxService.UpdateReportSelectionResourceData(articleId) //首页最新页面数据逻辑处理 V11.1.1
 	go cygxService.UpdateReportSelectionResourceData(articleId) //首页最新页面数据逻辑处理 V11.1.1
+	go cygxService.UpdateReportSelectionSubjectNameList()       //获取报告精选最新一期标的名称
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true
 	br.Msg = "操作成功"
 	br.Msg = "操作成功"
@@ -969,6 +971,7 @@ func (this *ReportSelectionController) VisibleRange() {
 		return
 		return
 	}
 	}
 	go cygxService.UpdateReportSelectionResourceData(articleId) //首页最新页面数据逻辑处理 V11.1.1
 	go cygxService.UpdateReportSelectionResourceData(articleId) //首页最新页面数据逻辑处理 V11.1.1
+	go cygxService.UpdateReportSelectionSubjectNameList()       //获取报告精选最新一期标的名称
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true
 	br.Msg = "操作成功"
 	br.Msg = "操作成功"

+ 4 - 4
controllers/cygx/search_keyword.go

@@ -50,10 +50,10 @@ func (this *SearchKeywordController) HostKeywordList() {
 	startSize = utils.StartIndex(currentIndex, pageSize)
 	startSize = utils.StartIndex(currentIndex, pageSize)
 	var condition string
 	var condition string
 	var pars []interface{}
 	var pars []interface{}
-	currentTime := time.Now()
-	starTime := currentTime.AddDate(0, 0, -8).Format("2006-01-02") + " 00:00:00"
-	endTime := currentTime.AddDate(0, 0, -1).Format("2006-01-02") + " 23:59:59"
-	condition += ` AND create_time < ` + "'" + endTime + "'" + `AND create_time > ` + "'" + starTime + "'"
+	starTime := time.Now().AddDate(0, 0, -8).Format(utils.FormatDate)
+	endTime := time.Now().Format(utils.FormatDate)
+	condition += ` AND create_time > ? AND create_time < ?  AND user_id > 0 `
+	pars = append(pars, starTime, endTime)
 	total, err := cygx.GetSearchKeyWordCount(condition, pars)
 	total, err := cygx.GetSearchKeyWordCount(condition, pars)
 	if err != nil {
 	if err != nil {
 		br.Msg = "获取失败"
 		br.Msg = "获取失败"

+ 9 - 0
controllers/cygx/user_rai_label.go

@@ -353,8 +353,17 @@ func (this *UserRaiLabelController) List() {
 		br.ErrMsg = "获取失败,Err:" + err.Error() + "userId:" + strconv.Itoa(userId)
 		br.ErrMsg = "获取失败,Err:" + err.Error() + "userId:" + strconv.Itoa(userId)
 		return
 		return
 	}
 	}
+
 	if len(list) == 0 {
 	if len(list) == 0 {
 		list = make([]*cygx.WxUserRaiLabelListResp, 0)
 		list = make([]*cygx.WxUserRaiLabelListResp, 0)
+	} else {
+		RaiUserLabelStyleSetConfig := cygxService.RaiUserLabelStyleSet
+		for _, v := range list {
+			if RaiUserLabelStyleSetConfig[v.SourceType] != nil {
+				v.BackgroundColor = RaiUserLabelStyleSetConfig[v.SourceType].BackgroundColor
+				v.TextClolr = RaiUserLabelStyleSetConfig[v.SourceType].TextClolr
+			}
+		}
 	}
 	}
 	resp.List = list
 	resp.List = list
 	br.Ret = 200
 	br.Ret = 200

+ 39 - 2
models/company/company_history_remark.go

@@ -29,6 +29,12 @@ type CompanyHistoryRemarkReq struct {
 	Content   string `description:"备注内容"`
 	Content   string `description:"备注内容"`
 }
 }
 
 
+// CompanyHistoryRemarkReq 新增历史备注请求
+type CompanyHistoryRemarkEditReq struct {
+	HistoryId int    `description:"备注ID"`
+	Content   string `description:"备注内容"`
+}
+
 // 新增
 // 新增
 func AddCompanyHistoryRemark(remark *CompanyHistoryRemark) (err error) {
 func AddCompanyHistoryRemark(remark *CompanyHistoryRemark) (err error) {
 	o := orm.NewOrm()
 	o := orm.NewOrm()
@@ -37,11 +43,14 @@ func AddCompanyHistoryRemark(remark *CompanyHistoryRemark) (err error) {
 }
 }
 
 
 type CompanyHistoryRemarkResp struct {
 type CompanyHistoryRemarkResp struct {
+	HistoryId    int    `comment:"备注id"`
 	CompanyId    int    `comment:"客户ID"`
 	CompanyId    int    `comment:"客户ID"`
 	Content      string `comment:"备注内容"`
 	Content      string `comment:"备注内容"`
 	SysAdminName string `comment:"创建人姓名"`
 	SysAdminName string `comment:"创建人姓名"`
 	RemarkType   string `comment:"备注类型"`
 	RemarkType   string `comment:"备注类型"`
 	CreateTime   string `comment:"对外展示的创建时间"`
 	CreateTime   string `comment:"对外展示的创建时间"`
+	BtnEdit      bool   `description:"编辑按钮权限:true显示,false不显示"`
+	BtnDelete    bool   `description:"删除按钮权限:true显示,false不显示"`
 }
 }
 
 
 type CompanyHistoryRemarkListResp struct {
 type CompanyHistoryRemarkListResp struct {
@@ -51,7 +60,7 @@ type CompanyHistoryRemarkListResp struct {
 // GetCompanyHistoryRemarkList 获取备注列表
 // GetCompanyHistoryRemarkList 获取备注列表
 func GetCompanyHistoryRemarkList(CompanyId, ProductId string) (items []*CompanyHistoryRemark, err error) {
 func GetCompanyHistoryRemarkList(CompanyId, ProductId string) (items []*CompanyHistoryRemark, err error) {
 	o := orm.NewOrm()
 	o := orm.NewOrm()
-	sql := "SELECT * FROM company_history_remark WHERE company_id=? AND product_id=? ORDER BY show_time DESC "
+	sql := "SELECT * FROM company_history_remark WHERE  is_del = 0 AND  company_id=? AND product_id=? ORDER BY show_time DESC "
 	_, err = o.Raw(sql, CompanyId, ProductId).QueryRows(&items)
 	_, err = o.Raw(sql, CompanyId, ProductId).QueryRows(&items)
 	return
 	return
 }
 }
@@ -64,7 +73,7 @@ func DelCompanyHistoryRemark(tableName string, tableId int) (err error) {
 	return
 	return
 }
 }
 
 
-// GetCompanyHistoryRemarkList 获取备注列表
+// GetCompanyHistoryRemarkListinit 获取备注列表
 func GetCompanyHistoryRemarkListinit() (items []*CompanyHistoryRemark, err error) {
 func GetCompanyHistoryRemarkListinit() (items []*CompanyHistoryRemark, err error) {
 	o := orm.NewOrm()
 	o := orm.NewOrm()
 	sql := "SELECT * FROM company_history_remark  WHERE	 table_id > 0   "
 	sql := "SELECT * FROM company_history_remark  WHERE	 table_id > 0   "
@@ -94,3 +103,31 @@ func AddCompanyHistoryRemarkMultiinit(items []*CompanyHistoryRemark) (err error)
 	}
 	}
 	return
 	return
 }
 }
+
+// 根据ID获取详情
+func GetCompanyHistoryRemarkByHistoryId(historyId int) (item *CompanyHistoryRemark, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM company_history_remark WHERE history_id=? `
+	err = o.Raw(sql, historyId).QueryRow(&item)
+	return
+}
+
+// 更新
+func UpdateCompanyHistoryRemark(where, updateParams map[string]interface{}) error {
+	o := orm.NewOrm()
+	ptrStructOrTableName := "company_history_remark"
+	qs := o.QueryTable(ptrStructOrTableName)
+	for expr, exprV := range where {
+		qs = qs.Filter(expr, exprV)
+	}
+	_, err := qs.Update(updateParams)
+	return err
+}
+
+// 软删除
+func DeleteCompanyHistoryRemark(adminName string, adminId, historyId int) (err error) {
+	o := orm.NewOrm()
+	sql := ` UPDATE company_history_remark SET  is_del=1 , del_time= ? ,del_admin_name =?,del_admin_id =?   WHERE history_id=? `
+	_, err = o.Raw(sql, time.Now(), adminName, adminId, historyId).Exec()
+	return
+}

+ 25 - 0
models/company/company_history_remark_log.go

@@ -0,0 +1,25 @@
+package company
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CompanyHistoryRemarkLog struct {
+	LogId        int       `orm:"column(log_id);pk" comment:"日志id"`
+	HistoryId    int       ` comment:"备注id"`
+	CompanyId    int       `comment:"客户ID"`
+	ProductId    int       `comment:"产品id"`
+	Content      string    `comment:"备注内容"`
+	ContentEdit  string    `comment:"修改后的备注内容"`
+	SysAdminId   int       `comment:"创建人ID"`
+	SysAdminName string    `comment:"创建人姓名"`
+	CreateTime   time.Time `comment:"创建时间" `
+}
+
+// 新增
+func AddCompanyHistoryRemarkLog(remark *CompanyHistoryRemarkLog) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Insert(remark)
+	return
+}

+ 8 - 0
models/cygx/report_selection.go

@@ -370,3 +370,11 @@ func GetArticleInfoByIdAndTable(table string, articleId int) (item *CygxArticleI
 	err = o.Raw(sql, articleId).QueryRow(&item)
 	err = o.Raw(sql, articleId).QueryRow(&item)
 	return
 	return
 }
 }
+
+// 获取最新一期
+func GetCygxReportSelectionInfoBestNew() (item *CygxReportSelectionRep, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_report_selection WHERE   publish_status = 1  ORDER BY  article_id  DESC  LIMIT  1  `
+	err = o.Raw(sql).QueryRow(&item)
+	return
+}

+ 13 - 3
models/cygx/search_keyword.go

@@ -28,12 +28,22 @@ func GetSearchKeyWordCount(condition string, pars []interface{}) (count int, err
 
 
 // 获取搜索关键词列表
 // 获取搜索关键词列表
 func GetSearchKeyWordList(condition string, pars []interface{}, startSize, pageSize int) (items []*KeyWordList, err error) {
 func GetSearchKeyWordList(condition string, pars []interface{}, startSize, pageSize int) (items []*KeyWordList, err error) {
-	sql := `SELECT COUNT( key_word ) AS key_word_num, key_word FROM cygx_search_key_word WHERE 1= 1`
+	o := orm.NewOrmUsingDB("hz_cygx")
+	//sql := `SELECT COUNT( key_word ) AS key_word_num, key_word FROM cygx_search_key_word WHERE 1= 1`
+
+	sql := `SELECT
+				key_word,
+				MAX(id) as max_id ,
+				COUNT( DISTINCT user_id ) AS key_word_num 
+			FROM
+				cygx_search_key_word 
+			WHERE
+				1 = 1 `
 	if condition != "" {
 	if condition != "" {
 		sql += condition
 		sql += condition
 	}
 	}
-	sql += ` GROUP BY key_word ORDER BY COUNT( key_word ) DESC LIMIT ?,? `
-	o := orm.NewOrmUsingDB("hz_cygx")
+	sql += ` GROUP BY key_word ORDER BY key_word_num DESC, max_id DESC LIMIT ?,? `
+
 	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 	return
 	return
 }
 }

+ 6 - 4
models/cygx/wx_user_rai_label.go

@@ -50,10 +50,12 @@ type WxUserRaiLabelList struct {
 }
 }
 
 
 type WxUserRaiLabelListResp struct {
 type WxUserRaiLabelListResp struct {
-	UserId     int    `description:"用户ID"`
-	RaiLabelId int    `description:"ID"`
-	Label      string `description:"标签内容"`
-	SourceType int    `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
+	UserId          int    `description:"用户ID"`
+	RaiLabelId      int    `description:"ID"`
+	Label           string `description:"标签内容"`
+	BackgroundColor string `description:"背景颜色"`
+	TextClolr       string `description:"字体颜色"`
+	SourceType      int    `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
 }
 }
 
 
 type WxUserRaiLabelAddReq struct {
 type WxUserRaiLabelAddReq struct {

+ 2 - 1
models/db.go

@@ -268,7 +268,8 @@ func initCompany() {
 		new(company.CompanyContractNoRenewedAscribeLog),      // 合同确认不续约记录日志
 		new(company.CompanyContractNoRenewedAscribeLog),      // 合同确认不续约记录日志
 		new(company.CrmConfig),                               // 管理后台基本配置表
 		new(company.CrmConfig),                               // 管理后台基本配置表
 		new(company.CompanyRenewalRecord),                    // 客户续约状态记录表
 		new(company.CompanyRenewalRecord),                    // 客户续约状态记录表
-		new(company.CompanyHistoryRemark),                    // 客户记录历史记录表
+		new(company.CompanyHistoryRemark),                    // 客户记录历史备注表
+		new(company.CompanyHistoryRemarkLog),                 // 客户记录历史备注日志表
 		new(company.WxUserMoveLog),                           // 客户联系人移动记录日志表
 		new(company.WxUserMoveLog),                           // 客户联系人移动记录日志表
 	)
 	)
 }
 }

+ 18 - 0
routers/commentsRouter.go

@@ -2419,6 +2419,24 @@ func init() {
             Filters: nil,
             Filters: nil,
             Params: nil})
             Params: nil})
 
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:RaiServeCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:RaiServeCoAntroller"],
+        beego.ControllerComments{
+            Method: "DeleteRemark",
+            Router: `/rai_serve/remark/delete`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:RaiServeCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:RaiServeCoAntroller"],
+        beego.ControllerComments{
+            Method: "EditRemark",
+            Router: `/rai_serve/remark/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:RaiServeCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:RaiServeCoAntroller"],
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:RaiServeCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:RaiServeCoAntroller"],
         beego.ControllerComments{
         beego.ControllerComments{
             Method: "RemarkList",
             Method: "RemarkList",

+ 1 - 0
services/company_apply/company_approval.go

@@ -731,6 +731,7 @@ func afterApproved(companyApprovalId int, opUserId int, opUserName string) (err
 			startDate = tmpStartDate
 			startDate = tmpStartDate
 			endDate = tmpEndDate
 			endDate = tmpEndDate
 		}
 		}
+		go AddCompanyHistoryRemarkByCompanyApply(recodeInfo) //权益销售冻结销售申请试用,审批通过后,将申请内容添加到备注
 
 
 	case 3: //试用延期
 	case 3: //试用延期
 		tmpCompanyReportPermissionList, tmpEndDate, tmpErr := company.TryOutDelay(recodeInfo.CompanyId, recodeInfo.ProductId, opUser.AdminId, recodeInfo.CompanyApprovalId, opUser.RealName, companyProduct.EndDate, companyProduct.ProductName)
 		tmpCompanyReportPermissionList, tmpEndDate, tmpErr := company.TryOutDelay(recodeInfo.CompanyId, recodeInfo.ProductId, opUser.AdminId, recodeInfo.CompanyApprovalId, opUser.RealName, companyProduct.EndDate, companyProduct.ProductName)

+ 72 - 0
services/company_apply/company_history_remark.go

@@ -0,0 +1,72 @@
+package company_apply
+
+import (
+	"fmt"
+	"hongze/hz_crm_api/models/company"
+	"hongze/hz_crm_api/services/alarm_msg"
+	"hongze/hz_crm_api/utils"
+	"time"
+)
+
+// 权益销售冻结销售申请试用,审批通过后,将申请内容添加到备注
+func AddCompanyHistoryRemarkByCompanyApply(recodeInfo *company.CompanyApproval) {
+	if recodeInfo.ProductId != 2 {
+		return
+	}
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println("err:", err)
+			go alarm_msg.SendAlarmMsg(fmt.Sprint(" 权益销售冻结销售申请试用,审批通过后,将申请内容添加到备注 失败,AddCompanyHistoryRemarkByCompanyApply Err:", err.Error(), recodeInfo), 3)
+		}
+	}()
+
+	item := new(company.CompanyHistoryRemark)
+	item.CompanyId = recodeInfo.CompanyId
+	item.ProductId = 2
+	item.Content = recodeInfo.ApplyReasons
+	item.SysAdminId = recodeInfo.ApplyUserId
+	item.SysAdminName = recodeInfo.ApplyRealName
+	item.CreateTime = time.Now()
+	item.ModifyTime = time.Now()
+	item.ShowTime = time.Now()
+	item.TableName = "company_approval"
+	item.TableId = recodeInfo.CompanyApprovalId
+	err = company.AddCompanyHistoryRemark(item)
+	return
+}
+
+//func init() {
+//	init16_9_2()
+//}
+
+func init16_9_2() {
+	var condition string
+	var pars []interface{}
+	condition = "  AND  product_id = 2   AND approve_content = '冻结转试用'  AND approve_status = '已审批' "
+
+	CompanyApprovalList, e := company.GetCompanyApprovalList(condition, pars)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		fmt.Println(e)
+		return
+	}
+	fmt.Println(len(CompanyApprovalList))
+	//return
+
+	for k, recodeInfo := range CompanyApprovalList {
+		item := new(company.CompanyHistoryRemark)
+		item.CompanyId = recodeInfo.CompanyId
+		item.ProductId = 2
+		item.Content = recodeInfo.ApplyReasons
+		item.SysAdminId = recodeInfo.ApplyUserId
+		item.SysAdminName = recodeInfo.ApplyRealName
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		item.ShowTime = recodeInfo.ApproveTime
+		item.TableName = "company_approval"
+		item.TableId = recodeInfo.CompanyApprovalId
+		err := company.AddCompanyHistoryRemark(item)
+		fmt.Println(k, "____", err)
+	}
+
+}

+ 51 - 0
services/cygx/cygx_config.go

@@ -0,0 +1,51 @@
+package cygx
+
+import (
+	"encoding/json"
+	"errors"
+	"fmt"
+	"hongze/hz_crm_api/models/cygx"
+	"hongze/hz_crm_api/services/alarm_msg"
+	"hongze/hz_crm_api/utils"
+)
+
+type CygxUserLabelColorSetList struct {
+	List []*CygxUserLabelColorSet
+}
+
+type CygxUserLabelColorSet struct {
+	SourceType      int    `description:"类型"`
+	BackgroundColor string `description:"背景色"`
+	TextClolr       string `description:"字体色"`
+}
+
+var RaiUserLabelStyleSet = make(map[int]*CygxUserLabelColorSet)
+
+// 获取用户标签展示样式 (全局)
+func init() {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg(fmt.Sprint("获取用户标签展示样式 失败err:", err.Error()), 2)
+		}
+	}()
+	conf, e := cygx.GetCygxConfigDetailByCode("cygx_user_label_color_set")
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCygxConfigDetailByCode, Err: " + e.Error())
+		return
+	}
+	if conf.ConfigValue == "" {
+		err = errors.New("ConfigValue, 配置项内容为空 ")
+		return
+	}
+	list := new(CygxUserLabelColorSetList)
+	if e = json.Unmarshal([]byte(conf.ConfigValue), &list); e != nil {
+		err = errors.New("配置值解析失败, Err: " + e.Error())
+		return
+	}
+	for _, v := range list.List {
+		RaiUserLabelStyleSet[v.SourceType] = v
+	}
+	return
+}

+ 59 - 0
services/cygx/report_selection.go

@@ -0,0 +1,59 @@
+package cygx
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hz_crm_api/models/cygx"
+	"hongze/hz_crm_api/services/alarm_msg"
+	"strings"
+	"time"
+)
+
+//func init() {
+//	UpdateReportSelectionSubjectNameList()
+//}
+
+// 获取报告精选最新一期标的名称
+func UpdateReportSelectionSubjectNameList() {
+	time.Sleep(2 * time.Second)
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println("err:", err)
+			go alarm_msg.SendAlarmMsg("获取报告精选最新一期标的名称,UpdateReportSelectionSubjectNameList Err:"+err.Error(), 3)
+		}
+	}()
+	detail, e := cygx.GetCygxReportSelectionInfoBestNew()
+	if e != nil {
+		err = errors.New("GetCygxReportSelectionInfoBestNew, Err: " + e.Error())
+		return
+	}
+
+	articleId := detail.ArticleId
+	listSelectionLog, e := cygx.GetReportSelectionlogListAll(articleId)
+	if e != nil {
+		err = errors.New("GetReportSelectionlogListAll, Err: " + e.Error())
+		return
+	}
+
+	var keyNames []string
+	for _, v := range listSelectionLog {
+		if v.ThirdName != "" {
+			keyNames = append(keyNames, v.ThirdName)
+		} else if v.SubjectName != "" {
+			keyNames = append(keyNames, v.SubjectName)
+		} else {
+			keyNames = append(keyNames, v.IndustrialManagementNames)
+		}
+	}
+
+	keyNameStr := strings.Join(keyNames, ",")
+	keyNameStr = strings.Replace(keyNameStr, "/", ",", -1)
+	e = cygx.CygxConfigUpdateByCode(keyNameStr, "cygx_report_selection_subject")
+	if e != nil {
+		err = errors.New("CygxConfigUpdateByCode, Err: " + e.Error())
+		return
+	}
+	return
+
+}

+ 5 - 0
services/cygx/user_rai_label.go

@@ -27,7 +27,12 @@ func GetUserLabelByUserIdArr(userIdArr []int) (mapRsp map[int][]*cygx.WxUserRaiL
 		return
 		return
 	}
 	}
 	mapRsp = make(map[int][]*cygx.WxUserRaiLabelListResp)
 	mapRsp = make(map[int][]*cygx.WxUserRaiLabelListResp)
+	RaiUserLabelStyleSetConfig := RaiUserLabelStyleSet
 	for _, v := range labelList {
 	for _, v := range labelList {
+		if RaiUserLabelStyleSet[v.SourceType] != nil {
+			v.BackgroundColor = RaiUserLabelStyleSetConfig[v.SourceType].BackgroundColor
+			v.TextClolr = RaiUserLabelStyleSetConfig[v.SourceType].TextClolr
+		}
 		mapRsp[v.UserId] = append(mapRsp[v.UserId], v)
 		mapRsp[v.UserId] = append(mapRsp[v.UserId], v)
 	}
 	}
 	return
 	return

+ 7 - 0
services/user_login.go

@@ -29,6 +29,13 @@ func SendAdminMobileVerifyCode(source int, mobile, areaCode string) (ok bool, er
 	}
 	}
 
 
 	tplId := utils.SmsNewLoginTplId
 	tplId := utils.SmsNewLoginTplId
+
+	// 从配置里面获取短信模板ID
+	config, e := company.GetConfigDetailByCode("LoginSmsTpId")
+	if e == nil {
+		tplId = config.ConfigValue
+	}
+	
 	if areaCode == "86" {
 	if areaCode == "86" {
 		ok = SendSmsCode(mobile, verifyCode, tplId)
 		ok = SendSmsCode(mobile, verifyCode, tplId)
 	} else {
 	} else {