123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 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
- }
|