package cust import ( "context" "dashoo.cn/common_definition/comm_def" "dashoo.cn/opms_libary/myerrors" "github.com/gogf/gf/errors/gerror" "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 = "领取" ) //公海列表 func (c *CustomerHeader) PublicGetList(ctx context.Context, req *model.CustCustomerSearchReq, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return err } req.IsPublic = noCustomer g.Log().Info("publicGetlist", req) total, list, err := customerServer.GetList(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } rsp.Data = g.Map{"list": list, "total": total} return nil } //客户列表 func (c *CustomerHeader) GetList(ctx context.Context, req *model.CustCustomerSearchReq, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return err } total, list, err := customerServer.GetList(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } rsp.Data = g.Map{"list": list, "total": total} return nil } //创建客户 func (c *CustomerHeader) Create(ctx context.Context, req *model.Customer, rsp *comm_def.CommonMsg) error { g.Log().Info("客户名称", req.CustName) if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return err } id, err := customerServer.Create(req) var Ids []int64 Ids = append(Ids, gconv.Int64(id)) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } //创建客户 c.WriteCustLog(ctx, Creates, Ids, req) rsp.Data = g.Map{"lastId": id} return nil } //客户详情 func (c *CustomerHeader) GetEntityById(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error { if len(req.Ids) == 0 { return gerror.New("参数有误!") } customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return gerror.New("系统异常,请重新尝试") } list, err := customerServer.GetEntityById(req.Ids) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } rsp.Data = g.Map{"list": list} return nil } //转移客户 func (c *CustomerHeader) UpdateBytransfer(ctx context.Context, req *model.DistriCustomer, rsp *comm_def.CommonMsg) error { if len(req.Ids) == 0 || req.SalesId == 0 { return gerror.New("参数有误!") } customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return gerror.New("系统异常,请重新尝试") } err = customerServer.UpdateBytransfer(req) if err != nil { return gerror.New("转移失败") } var Ids []int64 Ids = append(Ids, gconv.Int64(req.Ids)) //转移客户 c.WriteCustLog(ctx, UpdateBytransfer, Ids, req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } return nil } //分配客户 func (c *CustomerHeader) DistriCustomer(ctx context.Context, req *model.DistriCustomer, rsp *comm_def.CommonMsg) error { if len(req.Ids) == 0 || req.SalesId == 0 { return gerror.New("参数有误!") } g.Log().Info("DistriCustomer", req.Ids) customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return gerror.New("系统异常,请重新尝试") } err = customerServer.DistriCustomer(req) if err != nil { return err } var behavior string if req.Receive == "" { behavior = DistriCustomer //c.WriteCustLog(ctx, DistriCustomer, req.Ids, req) } else { behavior = Receive } c.WriteCustLog(ctx, behavior, req.Ids, req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } return nil } //删除客户 func (c *CustomerHeader) DeleteById(ctx context.Context, req *model.DelCustomer, rsp *comm_def.CommonMsg) error { if req.Id == 0 { return gerror.New("参数有误!") } customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return gerror.New("系统异常,请重新尝试") } err = customerServer.DeleteById(req.Id) var Ids []int64 Ids = append(Ids, gconv.Int64(req.Id)) //删除客户 c.WriteCustLog(ctx, DeleteById, Ids, req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } return nil } //移入公海 func (c *CustomerHeader) MoveToPubic(ctx context.Context, req *model.MoveToPubicRep, rsp *comm_def.CommonMsg) error { if len(req.Ids) == 0 { return gerror.New("参数有误!") } customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return gerror.New("系统异常,请重新尝试") } err = customerServer.MoveToPubic(req.Ids) if req.Remark == "" { req.Remark = "" } c.WriteCustLog(ctx, MoveToPubic, req.Ids, req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } return nil } //客户动态 func (c *CustomerHeader) DynamicsList(ctx context.Context, req *model.CustomerDynameicsReq, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return err } total, list, err := customerServer.DynamicsList(req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } rsp.Data = g.Map{"list": list, "total": total} return nil } //合并客户 func (c *CustomerHeader) Mergecustomer(ctx context.Context, req *model.MergecustomerRep, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return err } if err := gvalid.CheckStruct(ctx, req, nil); err != nil { return err } err = customerServer.Mergecustomer(req) var Ids []int64 Ids = append(Ids, gconv.Int64(req.Id)) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } c.WriteCustLog(ctx, Mergecustomer, Ids, req) return nil } //修改客户 func (c *CustomerHeader) UpdateById(ctx context.Context, req *model.UpdateCustomer, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return gerror.New("系统异常,请重新尝试") } err = customerServer.UpdateById(req) var Ids []int64 Ids = append(Ids, gconv.Int64(req.Id)) c.WriteCustLog(ctx, UpdateById, Ids, req) _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err) if err != nil { g.Log().Error(err) return err } return nil } //客户摘要 func (c *CustomerHeader) CustAbstract(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error { if req.Id == 0 { return gerror.New("参数有误") } customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return gerror.New("系统异常,请重新尝试") } list, err := customerServer.CustAbstract(req.Id) g.Log().Info("CustAbstract", list) rsp.Data = g.Map{"list": list} return nil } //操作日志 func (c *CustomerHeader) WriteCustLog(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) } //导出 func (c *CustomerHeader) DeriveList(ctx context.Context, req *model.CustCustomerExport, rsp *comm_def.CommonMsg) error { customerServer, err := server.NewCustomerService(ctx) if err != nil { g.Log().Error(err) return gerror.New("系统异常,请重新尝试") } buffer, _ := customerServer.Derive(req) rsp.Data = g.Map{"list": buffer} return nil }