Browse Source

no message

xingzai 6 tháng trước cách đây
mục cha
commit
8c106d8927

+ 150 - 0
controllers/cygx/rai_serve.go

@@ -1,12 +1,14 @@
 package cygx
 
 import (
+	"encoding/json"
 	"errors"
 	"fmt"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"github.com/tealeg/xlsx"
 	"hongze/hz_crm_api/controllers"
 	"hongze/hz_crm_api/models"
+	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/models/roadshow"
 	cygxService "hongze/hz_crm_api/services/cygx"
@@ -1034,3 +1036,151 @@ func (this *RaiServeCoAntroller) BillList() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// AddCompanyHistoryRemark
+// @Title 新增历史备注
+// @Description 新增历史备注
+// @Param	request	body company.CompanyHistoryRemarkReq true "type json string"
+// @Success 200 编辑成功
+// @router /rai_serve/remark/add [post]
+func (this *RaiServeCoAntroller) AddRemark() {
+	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.CompanyHistoryRemarkReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.CompanyId <= 0 {
+		br.Msg = "参数缺失"
+		br.ErrMsg = "参数缺失,客户编号未传!"
+		return
+	}
+	if req.Content == "" {
+		br.Msg = "参数缺失"
+		br.ErrMsg = "参数缺失,备注说明未传!"
+		return
+	}
+	var productId int
+	//var productName string
+	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
+	}
+	productId = 2
+
+	item := new(company.CompanyHistoryRemark)
+	item.CompanyId = req.CompanyId
+	item.ProductId = productId
+	item.Content = req.Content
+	item.SysAdminId = sysUser.AdminId
+	item.SysAdminName = sysUser.RealName
+	item.CreateTime = time.Now()
+	item.ModifyTime = time.Now()
+	item.ShowTime = time.Now()
+	item.TableName = "company_history_remark"
+
+	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 {
+		br.Msg = "编辑失败"
+		br.ErrMsg = "编辑失败,Err:" + err.Error()
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "编辑成功"
+}
+
+// RemarkList 备注列表
+// @Title 备注列表
+// @Description 备注列表
+// @Param   CompanyId   query   string  true       "客户id"
+// @Success 200 {object} company.RemarkResp
+// @router /rai_serve/remark/list [get]
+func (this *RaiServeCoAntroller) RemarkList() {
+	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
+	}
+
+	companyId := this.GetString("CompanyId")
+	var remarkList []*company.CompanyHistoryRemark
+	var err error
+
+	groupFicc := []string{
+		utils.ROLE_TYPE_CODE_FICC_SELLER, utils.ROLE_TYPE_CODE_FICC_TEAM, utils.ROLE_TYPE_CODE_FICC_GROUP,
+		utils.ROLE_TYPE_CODE_FICC_DEPARTMENT, utils.ROLE_TYPE_CODE_FICC_ADMIN,
+	}
+
+	if utils.InArrayByStr(groupFicc, sysUser.RoleTypeCode) {
+		br.Msg = "角色类型错误"
+		br.ErrMsg = "角色类型错误,该角色不能添加备注!"
+		return
+	}
+
+	remarkList, err = company.GetCompanyHistoryRemarkList(companyId, "2")
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+
+	resp := new(company.CompanyHistoryRemarkListResp)
+	for _, v := range remarkList {
+		item := new(company.CompanyHistoryRemarkResp)
+		item.CompanyId = v.CompanyId
+		item.Content = v.Content
+		item.SysAdminName = v.SysAdminName
+		item.CreateTime = v.ShowTime.Format(utils.FormatDateTime)
+		switch v.TableName {
+		case "company_service_record":
+			item.RemarkType = "沟通记录"
+		case "company_product_remark":
+			item.RemarkType = "备注"
+		case "company_no_renewed_note":
+			item.RemarkType = "未续约备注"
+		case "company_renewal_reason":
+			item.RemarkType = "未续约说明"
+		case "cygx_user_feedback":
+			item.RemarkType = "交流反馈(" + v.RealName + ")"
+		default:
+			item.RemarkType = "历史备注"
+		}
+		resp.List = append(resp.List, item)
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 57 - 0
models/company/company_history_remark.go

@@ -0,0 +1,57 @@
+package company
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CompanyHistoryRemark struct {
+	HistoryId    int       `orm:"column(history_id);pk" comment:"备注id"`
+	CompanyId    int       `comment:"客户ID"`
+	ProductId    int       `comment:"产品id"`
+	Content      string    `comment:"备注内容"`
+	SysAdminId   int       `comment:"创建人ID"`
+	SysAdminName string    `comment:"创建人姓名"`
+	CreateTime   time.Time `comment:"创建时间"`
+	ModifyTime   time.Time `comment:"更新时间"`
+	TableName    string    `comment:"表名"`
+	TableId      int       `comment:"表ID"`
+	UserId       int       `comment:"用户ID"`
+	Mobile       string    `comment:"手机号"`
+	Email        string    `comment:"邮箱"`
+	RealName     string    `comment:"用户实际名称"`
+	ShowTime     time.Time `comment:"对外展示的创建时间"`
+}
+
+// CompanyHistoryRemarkReq 新增历史备注请求
+type CompanyHistoryRemarkReq struct {
+	CompanyId int    `description:"客户id"`
+	Content   string `description:"备注内容"`
+}
+
+// 新增
+func AddCompanyHistoryRemark(remark *CompanyHistoryRemark) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Insert(remark)
+	return
+}
+
+type CompanyHistoryRemarkResp struct {
+	CompanyId    int    `comment:"客户ID"`
+	Content      string `comment:"备注内容"`
+	SysAdminName string `comment:"创建人姓名"`
+	RemarkType   string `comment:"备注类型"`
+	CreateTime   string `comment:"对外展示的创建时间"`
+}
+
+type CompanyHistoryRemarkListResp struct {
+	List []*CompanyHistoryRemarkResp
+}
+
+// GetCompanyHistoryRemarkList 获取备注列表
+func GetCompanyHistoryRemarkList(CompanyId, ProductId string) (items []*CompanyHistoryRemark, err error) {
+	o := orm.NewOrm()
+	sql := "SELECT * FROM company_history_remark WHERE company_id=? AND product_id=? ORDER BY show_time DESC "
+	_, err = o.Raw(sql, CompanyId, ProductId).QueryRows(&items)
+	return
+}

+ 0 - 1
models/company/history_remark.go

@@ -1 +0,0 @@
-package company

+ 1 - 0
models/db.go

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

+ 18 - 0
routers/commentsRouter.go

@@ -2329,6 +2329,24 @@ func init() {
             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: "AddRemark",
+            Router: `/rai_serve/remark/add`,
+            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: "RemarkList",
+            Router: `/rai_serve/remark/list`,
+            AllowHTTPMethods: []string{"get"},
+            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: "SearchTag",