|
|
@@ -7,6 +7,7 @@ import (
|
|
|
"math"
|
|
|
"strconv"
|
|
|
|
|
|
+ "github.com/gogf/gf/database/gdb"
|
|
|
"github.com/gogf/gf/encoding/gjson"
|
|
|
|
|
|
"dashoo.cn/opms_libary/myerrors"
|
|
|
@@ -142,8 +143,8 @@ func (s *CustomerService) Create(req *model.CustomerAddSeq) (insertId int64, err
|
|
|
g.Log().Error(err)
|
|
|
return 0, err
|
|
|
}
|
|
|
- s.CreateBelong(int(insertId))
|
|
|
-
|
|
|
+ s.CreateBelong(gconv.Int(insertId))
|
|
|
+ return
|
|
|
} else {
|
|
|
cusTomer.IsPublic = isPublic
|
|
|
insertId, err = s.Dao.InsertAndGetId(cusTomer)
|
|
|
@@ -156,13 +157,12 @@ func (s *CustomerService) Create(req *model.CustomerAddSeq) (insertId int64, err
|
|
|
}
|
|
|
|
|
|
// CreateBelong 创建客户归属信息
|
|
|
-func (s *CustomerService) CreateBelong(custId int) (insertId int64, err error) {
|
|
|
+func (s *CustomerService) CreateBelong(custId int) (err error) {
|
|
|
belong := new(model.CustomerBelongAddSeq)
|
|
|
belong.CustId = custId
|
|
|
belong.SaleName = s.CxtUser.NickName
|
|
|
belong.OpnType = AllocaTion
|
|
|
belong.OpnPeople = s.CxtUser.NickName
|
|
|
- belong.OpnDatetime = gtime.Now()
|
|
|
err = s.BelongServer.Create(belong)
|
|
|
if err != nil {
|
|
|
g.Log().Error(err)
|
|
|
@@ -252,24 +252,39 @@ func (s *CustomerService) MoveToPubic(Ids []int64) (err error) {
|
|
|
err = myerrors.NewMsgError(nil, "没有要移除的数据")
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- _, err = s.Dao.Data(g.Map{
|
|
|
- "is_public": isPublic,
|
|
|
- "sales_id": 0,
|
|
|
- "sales_name": "",
|
|
|
- "dept_id": 0,
|
|
|
- "dept_name": "",
|
|
|
- "create_time": gtime.Now(),
|
|
|
- "updated_by": s.GetCxtUserId(),
|
|
|
- "updated_name": s.GetCxtUserName(),
|
|
|
- "updated_time": gtime.Now(),
|
|
|
- }).WhereIn(s.ContactDao.Columns.Id, Ids).Update()
|
|
|
-
|
|
|
- if err != nil {
|
|
|
- g.Log().Error(err)
|
|
|
- return
|
|
|
- }
|
|
|
- return nil
|
|
|
+ userName := s.GetCxtUserName()
|
|
|
+ currentTime := gtime.Now()
|
|
|
+ s.Dao.Transaction(context.TODO(), func(ctx context.Context, tx *gdb.TX) error {
|
|
|
+ //更新客户信息
|
|
|
+ _, err = s.Dao.Data(g.Map{
|
|
|
+ "is_public": isPublic,
|
|
|
+ "sales_id": 0,
|
|
|
+ "sales_name": "",
|
|
|
+ "dept_id": 0,
|
|
|
+ "dept_name": "",
|
|
|
+ "create_time": currentTime,
|
|
|
+ "updated_by": s.GetCxtUserId(),
|
|
|
+ "updated_name": userName,
|
|
|
+ "updated_time": currentTime,
|
|
|
+ }).WhereIn(s.ContactDao.Columns.Id, Ids).Update()
|
|
|
+ if err != nil {
|
|
|
+ g.Log().Error(err)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ //更新销售归属表结束时间
|
|
|
+ _, err = s.BelongDao.Data(
|
|
|
+ g.Map{
|
|
|
+ "updated_by": s.GetCxtUserId(),
|
|
|
+ "updated_name": userName,
|
|
|
+ "end_date": currentTime,
|
|
|
+ }).WhereIn(s.BelongDao.Columns.CustId, Ids).Update()
|
|
|
+ if err != nil {
|
|
|
+ g.Log().Error(err)
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ })
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
// AssignCustomer 分配客户
|
|
|
@@ -289,14 +304,15 @@ func (s *CustomerService) AssignCustomer(req *model.AssignCustomerReq) (err erro
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- s.ChangeCustBelong(req.Ids, req.SalesId, req.SalesName)
|
|
|
-
|
|
|
+ err = s.ChangeCustBelong(req.Ids, req.SalesId, req.SalesName)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
if req.Receive != "" {
|
|
|
req.Receive = Receive
|
|
|
} else {
|
|
|
req.Receive = AllocaTion
|
|
|
}
|
|
|
-
|
|
|
s.BatchCreatebelong(data, req)
|
|
|
return
|
|
|
}
|
|
|
@@ -312,9 +328,15 @@ func (s *CustomerService) GetEntityById(Ids []int64) (entityInfo []*model.CustLi
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// GetCustNameIsExist 获取客户名称
|
|
|
-func (s *CustomerService) GetCustNameIsExist(name string) (exist bool, err error) {
|
|
|
- count, err := s.Dao.Where(cust.CustCustomer.Columns.CustName, name).Count()
|
|
|
+// GetCustNameIsExist 判断客户名称是否存在
|
|
|
+func (s *CustomerService) GetCustNameIsExist(req *model.IsExistsCustName) (exist bool, err error) {
|
|
|
+ custDao := s.Dao.M
|
|
|
+ if req.Id > 0 {
|
|
|
+ custDao = custDao.Where("cust_name = ", req.CustName).WhereNot(" id ", req.Id)
|
|
|
+ } else {
|
|
|
+ custDao = custDao.Where("cust_name = ", req.CustName)
|
|
|
+ }
|
|
|
+ count, err := custDao.Count()
|
|
|
if err != nil {
|
|
|
g.Log().Error(err)
|
|
|
return
|
|
|
@@ -368,7 +390,12 @@ func (s *CustomerService) TransCustomer(req *model.AssignCustomerReq) (err error
|
|
|
if len(data) == 0 {
|
|
|
return myerrors.NewMsgError(nil, "数据不存在")
|
|
|
}
|
|
|
- s.ChangeCustBelong(req.Ids, req.SalesId, req.SalesName)
|
|
|
+ err = s.ChangeCustBelong(req.Ids, req.SalesId, req.SalesName)
|
|
|
+ if err != nil {
|
|
|
+ g.Log().Error(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ req.Receive = OperaTion
|
|
|
s.BatchCreatebelong(data, req)
|
|
|
return
|
|
|
}
|
|
|
@@ -491,10 +518,20 @@ func (s *CustomerService) MergeCustomer(req *model.MergeCustomerRep) (err error)
|
|
|
}
|
|
|
|
|
|
//插入一条合并成功的归属记录
|
|
|
+ //更新销售归属表销售结束时间
|
|
|
+ _, err = s.BelongDao.Data(
|
|
|
+ g.Map{
|
|
|
+ "updated_by": s.GetCxtUserId(),
|
|
|
+ "updated_name": s.GetCxtUserName(),
|
|
|
+ "end_date": gtime.Now(),
|
|
|
+ }).WhereIn(s.BelongDao.Columns.CustId, req.Id).Update()
|
|
|
+ if err != nil {
|
|
|
+ g.Log().Error(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
req.CustomerBelongAddSeq.CustId = int(req.Id)
|
|
|
req.CustomerBelongAddSeq.OpnType = Merge
|
|
|
req.CustomerBelongAddSeq.OpnPeople = s.GetCxtUserName()
|
|
|
- req.CustomerBelongAddSeq.OpnDatetime = gtime.Now()
|
|
|
req.CustomerBelongAddSeq.OrigSaleName = customer.SalesName
|
|
|
req.CustomerBelongAddSeq.SaleName = req.SalesName
|
|
|
s.BelongServer.Create(req.CustomerBelongAddSeq)
|
|
|
@@ -514,6 +551,17 @@ func (s *CustomerService) Createcontact(Ids []int64, req *model.CustCustomerCont
|
|
|
|
|
|
// BatchCreatebelong 批量插入客户归属记录表
|
|
|
func (s *CustomerService) BatchCreatebelong(rep []*model.CustCustomer, req *model.AssignCustomerReq, n ...interface{}) (err error) {
|
|
|
+ //更新销售归属表销售结束时间
|
|
|
+ _, err = s.BelongDao.Data(
|
|
|
+ g.Map{
|
|
|
+ "updated_by": s.GetCxtUserId(),
|
|
|
+ "updated_name": s.GetCxtUserName(),
|
|
|
+ "end_date": gtime.Now(),
|
|
|
+ }).WhereIn(s.BelongDao.Columns.CustId, req.Ids).Update()
|
|
|
+ if err != nil {
|
|
|
+ g.Log().Error(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
var belongData []*model.CustCustomerBelong
|
|
|
userName := s.GetCxtUserName()
|
|
|
for _, v := range rep {
|
|
|
@@ -525,6 +573,7 @@ func (s *CustomerService) BatchCreatebelong(rep []*model.CustCustomer, req *mode
|
|
|
belong.OpnType = req.Receive
|
|
|
belong.OpnPeople = userName
|
|
|
belong.CreatedName = userName
|
|
|
+ belong.StartDate = gtime.Now() //新增开始时间
|
|
|
belong.OpnDatetime = gtime.Now()
|
|
|
belong.Remark = req.Remark
|
|
|
belong.CreatedBy = s.GetCxtUserId()
|