package cust import ( "context" "dashoo.cn/common_definition/comm_def" "dashoo.cn/opms_libary/myerrors" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/os/gtime" "github.com/gogf/gf/util/gconv" "github.com/gogf/gf/util/gvalid" model "dashoo.cn/micro/app/model/cust" server "dashoo.cn/micro/app/service/cust" ) type CustomerHeader struct{} var isPublic, noPublic = "10", "20" // 公海,非公海 var noCustomer = true // 区分公海列表 和 客户列表 true 公海 const ( Creates = "创建客户" UpdateBytransfer = "转移客户" DistriCustomer = "分配客户" DeleteById = "删除客户" MoveToPubic = "移入公海" Mergecustomer = "合并客户" UpdateById = "修改客户" Receive = "领取" ) //Create 创建客户 func (c *CustomerHeader) Create(ctx context.Context, req *model.CustomerAddSeq, rsp *comm_def.CommonMsg) error { if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } id, err := customerServer.Create(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } var Ids []int64 Ids = append(Ids, gconv.Int64(id)) //创建客户 c.OperationLog(ctx, Creates, Ids, req) rsp.Data = g.Map{"lastId": id} return nil } //UpdateById 修改客户 func (c *CustomerHeader) UpdateById(ctx context.Context, req *model.UpdateCustomer, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } err = customerServer.UpdateById(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } var Ids []int64 Ids = append(Ids, gconv.Int64(req.Id)) c.OperationLog(ctx, UpdateById, Ids, req) return nil } //GetEntityById 客户详情 func (c *CustomerHeader) GetEntityById(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error { if len(req.Ids) == 0 { return myerrors.NewMsgError(nil, "参数有误") } customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } list, err := customerServer.GetEntityById(req.Ids) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } rsp.Data = g.Map{"list": list} return nil } //DeleteById 删除客户 func (c *CustomerHeader) DeleteById(ctx context.Context, req *model.DelCustomer, rsp *comm_def.CommonMsg) error { if len(req.Ids) == 0 { return myerrors.NewMsgError(nil, "参数有误") } customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } err = customerServer.DeleteByIds(req.Ids) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } //删除客户 c.OperationLog(ctx, DeleteById, req.Ids, req) return nil } //GetCustNameIsExist 判断客户名称是否存在 bool func (c *CustomerHeader) GetCustNameIsExist(ctx context.Context, req *model.CustName, rsp *comm_def.CommonMsg) error { if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } exist, err := customerServer.GetCustNameIsExist(req.CustName) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } rsp.Data = g.Map{"list": exist} return nil } //PublicGetList 公海列表 func (c *CustomerHeader) PublicGetList(ctx context.Context, req *model.CustCustomerSearchReq, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } req.IsPublic = noCustomer total, list, err := customerServer.GetList(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } rsp.Data = g.Map{"list": list, "total": total} return nil } //GetList 客户列表 func (c *CustomerHeader) GetList(ctx context.Context, req *model.CustCustomerSearchReq, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } total, list, err := customerServer.GetList(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } rsp.Data = g.Map{"list": list, "total": total} return nil } //TransCustomer 转移客户 func (c *CustomerHeader) TransCustomer(ctx context.Context, req *model.AssignCustomerReq, rsp *comm_def.CommonMsg) error { if len(req.Ids) == 0 || req.SalesId == 0 { return myerrors.NewMsgError(nil, "参数有误") } customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } err = customerServer.TransCustomer(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } var Ids []int64 Ids = append(Ids, gconv.Int64(req.Ids)) //转移客户 c.OperationLog(ctx, UpdateBytransfer, Ids, req) return nil } //AssignCustomer 分配客户 func (c *CustomerHeader) AssignCustomer(ctx context.Context, req *model.AssignCustomerReq, rsp *comm_def.CommonMsg) error { if len(req.Ids) == 0 || req.SalesId == 0 { return myerrors.NewMsgError(nil, "参数有误") } customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } err = customerServer.AssignCustomer(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } var behavior string if req.Receive == "" { behavior = DistriCustomer } else { behavior = Receive } c.OperationLog(ctx, behavior, req.Ids, req) return nil } //MoveToPubic 移入公海 func (c *CustomerHeader) MoveToPubic(ctx context.Context, req *model.MoveToPubicRep, rsp *comm_def.CommonMsg) error { if len(req.Ids) == 0 { return myerrors.NewMsgError(nil, "参数有误") } customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } err = customerServer.MoveToPubic(req.Ids) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } if req.Remark == "" { req.Remark = "" } c.OperationLog(ctx, MoveToPubic, req.Ids, req) return nil } //GetDynamicsList 客户动态 func (c *CustomerHeader) GetDynamicsList(ctx context.Context, req *model.CustomerDynameicsReq, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } total, list, err := customerServer.GetDynamicsList(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } rsp.Data = g.Map{"list": list, "total": total} return nil } //MergeCustomer 合并客户 func (c *CustomerHeader) MergeCustomer(ctx context.Context, req *model.MergecustomerRep, rsp *comm_def.CommonMsg) error { if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } err = customerServer.MergeCustomer(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } var Ids []int64 Ids = append(Ids, gconv.Int64(req.Id)) c.OperationLog(ctx, Mergecustomer, Ids, req) return nil } //CustAbstract 客户摘要 func (c *CustomerHeader) CustAbstract(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error { if req.Id == 0 { return myerrors.NewMsgError(nil, "参数有误") } customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } list, err := customerServer.CustAbstract(req.Id) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } rsp.Data = g.Map{"list": list} return nil } //OperationLog 操作日志 func (c *CustomerHeader) OperationLog(ctx context.Context, custType string, custId []int64, req interface{}) { CustomerService, _ := server.NewCustomerService(ctx) custDynameics := new(model.AddCustomerDynameicsReq) custDynameics.OpnDate = gtime.Now() custDynameics.OpnType = custType custDynameics.OpnContent = req CustomerService.OperationLog(ctx, custId, custDynameics) } //DeriveList 导出 func (c *CustomerHeader) DeriveList(ctx context.Context, req *model.CustCustomerExport, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { return err } //Export buffer, err := customerServer.Export(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { return err } rsp.Data = g.Map{"list": buffer} return nil }