package service import ( "database/sql" "strings" . "app.yhyue.com/moapp/jybase/date" . "bp.jydev.jianyu360.cn/CRM/application/api/common" "bp.jydev.jianyu360.cn/CRM/application/api/internal/types" ) var VarNetwork = &Network{} type Network struct { } //人脉库-添加/修改人脉 func (n *Network) AddOrUpdate(in *types.AddOrUpdateReq) *types.Reply { reply := &types.Reply{} itype := 0 //firstparty:甲方 supplier:供应商 adiffb:同甲异业 middleman:中间人 agency:招标代理机构 switch in.Type { case "firstparty": itype = 1 case "supplier:供应商": itype = 2 case "adiffb": itype = 3 case "middleman": itype = 4 case "agency": itype = 5 } nowFormat := NowFormat(Date_Full_Layout) var saveIntroduce = func(tx *sql.Tx, cid int64) int64 { values := []interface{}{} if in.Introduce_owner_id != "" { for k, v := range strings.Split(in.Introduce_owner_id, ",") { values = append(values, in.PositionId, in.EntId, in.EntDeptId, in.EntUserId, cid, v, strings.Split(in.Introduce_owner_name, ",")[k], 1, nowFormat) } } if in.Introduce_project_id != "" { for k, v := range strings.Split(in.Introduce_project_id, ",") { values = append(values, in.PositionId, in.EntId, in.EntDeptId, in.EntUserId, cid, v, strings.Split(in.Introduce_project_name, ",")[k], 2, nowFormat) } } var r3 int64 if len(values) > 0 { _, r3 = CrmMysql.InsertBatchByTx(tx, "connection_introduce", []string{"position_id", "ent_id", "ent_dept_id", "ent_user_id", "connection_id", "relate_id", "relate_name", "itype", "create_time"}, values) } return r3 } if in.Id > 0 { if CrmMysql.ExecTx("更新人脉", func(tx *sql.Tx) bool { r1 := CrmMysql.UpdateOrDeleteBySqlByTx(tx, `update connection set company_name=?,company_id=?,contact_person=?,contact_phone=?,update_time=? where id=? and position_id=?`, in.Company_name, in.Company_id, in.Contact_person, in.Contact_phone, nowFormat, in.Id, in.PositionId) r2 := CrmMysql.UpdateOrDeleteBySqlByTx(tx, `delete from connection_introduce where connection_id=? and position_id=?`, in.Id, in.PositionId) return r1 > 0 && r2 >= 0 && saveIntroduce(tx, in.Id) >= 0 }) { reply.Data = map[string]interface{}{ "status": 1, } } else { reply.Data = map[string]interface{}{ "status": 0, } } } else { id := 0 if CrmMysql.ExecTx("新增人脉", func(tx *sql.Tx) bool { _, r1 := CrmMysql.InsertBatchByTx(tx, "connection", []string{"position_id", "ent_id", "ent_dept_id", "ent_user_id", "itype", "company_name", "company_id", "contact_person", "contact_phone", "status", "create_time", "update_time"}, []interface{}{in.PositionId, in.EntId, in.EntDeptId, in.EntUserId, itype, in.Company_name, in.Company_id, in.Contact_person, in.Contact_phone, 1, nowFormat, nowFormat}) return r1 > 0 && saveIntroduce(tx, r1) >= 0 }) { reply.Data = map[string]interface{}{ "status": 1, "id": id, } } else { reply.Data = map[string]interface{}{ "status": 0, } } } return reply } //人脉库-业主名称联想 func (n *Network) Associate(in *types.AssociateReq) *types.Reply { return nil } //人脉库-全部人脉项目 func (n *Network) Allproject(in *types.AllprojectReq) *types.Reply { return nil } //人脉库-列表 func (n *Network) List(in *types.NetWorkListReq) *types.Reply { return nil }