|
|
@@ -4,7 +4,6 @@ import (
|
|
|
"context"
|
|
|
"strconv"
|
|
|
|
|
|
- "github.com/gogf/gf/database/gdb"
|
|
|
"github.com/gogf/gf/errors/gerror"
|
|
|
"github.com/gogf/gf/frame/g"
|
|
|
"github.com/gogf/gf/os/gtime"
|
|
|
@@ -32,100 +31,76 @@ func NewCustomerService(ctx context.Context) (svc *customerService, err error) {
|
|
|
}
|
|
|
|
|
|
//创建客户
|
|
|
-func (c *customerService) Create(req *model.AddCustCustomerReq) (err error) {
|
|
|
-
|
|
|
+func (c *customerService) Create(req *model.Customer) (insertId int64, err error) {
|
|
|
cusTomer := new(model.CustCustomer)
|
|
|
- conTact := new(model.CustCustomerContact)
|
|
|
- if err = gconv.Struct(req.Cust, cusTomer); err != nil {
|
|
|
+ custBelong := new(model.CustCustomerBelong)
|
|
|
+ if err = gconv.Struct(req, cusTomer); err != nil {
|
|
|
g.Log().Info("error", err)
|
|
|
return
|
|
|
}
|
|
|
- if err = gconv.Struct(req.Info, conTact); err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
g.Log().Info(err)
|
|
|
Model := c.Dao.M
|
|
|
- record, err := Model.As("c").LeftJoin("cust_customer_contact ct", "c.id=ct.cust_id").Fields("c.*").Where(
|
|
|
+ record, err := Model.Where(
|
|
|
g.Map{
|
|
|
- "ct.telephone": req.Info.TelePhone,
|
|
|
- "ct.cuct_name": req.Info.CuctName,
|
|
|
- "c.cust_name": req.Cust.CustName,
|
|
|
+ "cust_name": req.CustName,
|
|
|
},
|
|
|
).One()
|
|
|
g.Log().Info("recordE", record.IsEmpty())
|
|
|
if err != nil || !record.IsEmpty() {
|
|
|
err = gerror.New("该客户信息已存在,不可重复添加")
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- cusTomer.CustCode = strconv.Itoa(int(gtime.Timestamp()))
|
|
|
- cusTomer.IsPublic = "10"
|
|
|
-
|
|
|
- service.SetCreatedInfo(cusTomer, c.GetCxtUserId(), c.GetCxtUserName())
|
|
|
- var tx *gdb.TX
|
|
|
- tx, err = g.DB().Begin()
|
|
|
- if err != nil {
|
|
|
- err = gerror.New("事务开启失败")
|
|
|
return
|
|
|
}
|
|
|
- cus_res, err := Model.Insert(cusTomer)
|
|
|
+ service.SetCreatedInfo(cusTomer, c.GetCxtUserId(), c.GetCxtUserName())
|
|
|
+ cusTomer.CustCode = strconv.Itoa(int(gtime.Timestamp()))
|
|
|
+ cusTomer.IsPublic = "20"
|
|
|
+ cusTomer.DeptId = c.GetCxtUserDeptId() //部门id
|
|
|
+ cusTomer.DeptId = c.GetCxtUserDeptId() //部门名称
|
|
|
+ cusTomer.SalesId = c.GetCxtUserId() // 销售id
|
|
|
+ cusTomer.SalesName = c.GetCxtUserName() // 销售名称
|
|
|
+ res, err := Model.Insert(cusTomer)
|
|
|
if err != nil {
|
|
|
g.Log().Error(err)
|
|
|
err = gerror.New("cusTomer表插入失败")
|
|
|
- tx.Rollback()
|
|
|
- return
|
|
|
- }
|
|
|
- InsertId, _ := cus_res.LastInsertId()
|
|
|
- conTact.CustId = int(InsertId)
|
|
|
- service.SetCreatedInfo(conTact, c.GetCxtUserId(), c.GetCxtUserName())
|
|
|
- _, err = cust.CustCustomerContact.Insert(conTact)
|
|
|
- if err != nil {
|
|
|
- g.Log().Error(err)
|
|
|
- err = gerror.New("conTact表插入失败")
|
|
|
- tx.Rollback()
|
|
|
- return
|
|
|
}
|
|
|
- /**
|
|
|
- 预留逻辑判断当前登录角色是否是销售人员
|
|
|
- if 销售人员 {
|
|
|
- cusTomer.SalesId = 当前销售人员id
|
|
|
- cusTomer.SalesName = 当前销售人员姓名
|
|
|
-
|
|
|
- c.BelongDao.M.Insert()
|
|
|
-
|
|
|
+ insertId, _ = res.LastInsertId()
|
|
|
+ if c.CxtUser.Id == 1 { //
|
|
|
+ service.SetCreatedInfo(custBelong, c.GetCxtUserId(), c.GetCxtUserName())
|
|
|
+ custBelong.CustId = int(insertId)
|
|
|
+ custBelong.OpnType = "10"
|
|
|
+ custBelong.OpnDatetime = gtime.Now()
|
|
|
+ service.SetCreatedInfo(custBelong, c.GetCxtUserId(), c.GetCxtUserName())
|
|
|
+ _, err = c.BelongDao.Insert(custBelong)
|
|
|
+ if err != nil {
|
|
|
+ g.Log().Error(err)
|
|
|
+ err = gerror.New("创建失败")
|
|
|
+ return
|
|
|
}
|
|
|
-
|
|
|
- */
|
|
|
-
|
|
|
- tx.Commit()
|
|
|
+ }
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//客户列表列表
|
|
|
func (c *customerService) GetList(req *model.CustCustomerSearchReq) (total int, customerList []*model.CustList, err error) {
|
|
|
-
|
|
|
- Model := c.Dao.M.As("c").LeftJoin("cust_customer_contact ct", "c.id=ct.cust_id").Where("c.is_public =?", 20) //非公海客户
|
|
|
+ Model := c.Dao.M //非公海客户
|
|
|
+ Model.Where("is_public", 20)
|
|
|
//客户名称
|
|
|
if req.CustName != "" {
|
|
|
- Model = Model.Where("c.cust_name ", req.CustName)
|
|
|
- }
|
|
|
- //联系人
|
|
|
- if req.CuctName != "" {
|
|
|
- Model = Model.Where("ct.cuct_name", req.CuctName)
|
|
|
- }
|
|
|
- // 联系人姓名
|
|
|
- if req.CustStatus != "" {
|
|
|
- Model = Model.Where("ct.cuct_name", req.CuctName)
|
|
|
- }
|
|
|
- //所属销售
|
|
|
- if req.SalesName != "" {
|
|
|
- Model = Model.Where("c.sales_name ?", req.SalesName)
|
|
|
- }
|
|
|
- //联系人电话
|
|
|
- if req.Telephone != "" {
|
|
|
- Model = Model.Where("ct.telephone ?", req.Telephone)
|
|
|
- }
|
|
|
- total, err = Model.Fields("c.id").Count()
|
|
|
+ Model = Model.Where("cust_name ", req.CustName)
|
|
|
+ }
|
|
|
+ //客户编码
|
|
|
+ if req.CustCode != "" {
|
|
|
+ Model = Model.Where("cust_name ", req.CustCode)
|
|
|
+ }
|
|
|
+
|
|
|
+ //客户行业
|
|
|
+ //if req.SalesName != "" {
|
|
|
+ // Model = Model.Where("c.sales_name ?", req.SalesName)
|
|
|
+ //}
|
|
|
+ //客户级别
|
|
|
+ //if req.Telephone != "" {
|
|
|
+ // Model = Model.Where("ct.telephone ?", req.Telephone)
|
|
|
+ //}
|
|
|
+ total, err = Model.Fields().Count()
|
|
|
if err != nil {
|
|
|
g.Log().Error(err)
|
|
|
err = gerror.New("获取总行数失败")
|
|
|
@@ -134,12 +109,13 @@ func (c *customerService) GetList(req *model.CustCustomerSearchReq) (total int,
|
|
|
if req.PageNum == 0 {
|
|
|
req.PageNum = 1
|
|
|
}
|
|
|
- fields := "c.*,ct.cuct_name,ct.telephone"
|
|
|
- err = Model.Fields(fields).Page(req.PageNum, req.PageSize).Order("c.id asc").Scan(&customerList)
|
|
|
-
|
|
|
+ fields := "id,cust_code,cust_name,abbr_name,'' as indus_try,'' as level,cust_location,cust_status,follow_up_date,created_name,created_time"
|
|
|
+ err = Model.Fields(fields).Page(req.PageNum, req.PageSize).Order("id desc").Scan(&customerList)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+//
|
|
|
+
|
|
|
//分配客户
|
|
|
func (c *customerService) DistriCustomer(req *model.DistriCustomer) error {
|
|
|
/**
|