Exemplo n.º 1
0
        //
        /// <summary>
        /// 处理会员的上下线关系
        /// 会员状态        已经有上级关系    有新的附带上级关系
        /// 从未关注的Vip          1                  1             重建关系
        /// 从未关注的Vip          0                  1             重建关系
        /// 取消关注的Vip          0                  1             重建关系

        /// 从未关注的Vip          0                  0
        /// 从未关注的Vip          1                  0
        /// 取消关注的Vip          1                  0
        /// 取消关注的Vip          0                  0
        /// 取消关注的Vip          1                  1

        /// ShareVipID 没内容的 return
        public void SetShareVip(string vipid, string openId)
        {
            #region 验证
            if (string.IsNullOrEmpty(ShareVipID))//如果没有上级分享人员
            {
                return;
            }
            #endregion

            #region Vip实体
            VipBLL    vipBll     = new VipBLL(loggingSessionInfo);
            VipEntity vipInfotmp = null;
            if (string.IsNullOrEmpty(vipid))
            {
                return;
            }
            else
            {
                vipInfotmp = vipBll.GetByID(vipid);
            }
            if (vipInfotmp == null)
            {
                return;
            }
            #endregion

            #region UnitId
            string UnitId = "";
            //获取分享人的门店信息
            //员工 或者 客服

            string shareVipOpenid = "";
            if (SourceId == 1 || SourceId == 2)              //获取分享员工的默认门店
            {
                UnitId = vipBll.GetUnitByUserId(ShareVipID); //获取员工的默认门店
            }
            else
            {
                //获取分享会员的门店
                VipEntity shareVip = vipBll.GetByID(ShareVipID);
                if (shareVip != null)
                {
                    UnitId         = shareVip.CouponInfo;//会员的会籍店
                    shareVipOpenid = shareVip.WeiXinUserId;
                }
            }
            #endregion

            #region 判断用户类型

            #region 关注的
            if (vipInfotmp.Status >= 1)//关注过的
            {
                //当前没有上线,才给他建立一个上线
                if (string.IsNullOrEmpty(vipInfotmp.SetoffUserId) && string.IsNullOrEmpty(vipInfotmp.HigherVipID))
                {
                    //会员 或者 客服
                    if (SourceId == 1 || SourceId == 2)//获取分享员工的默认门店
                    {
                        vipInfotmp.SetoffUserId = ShareVipID;
                        vipInfotmp.HigherVipID  = "";
                        vipInfotmp.Col21        = System.DateTime.Now.ToString();
                    }
                    //会员
                    else
                    {
                        vipInfotmp.HigherVipID  = ShareVipID;
                        vipInfotmp.SetoffUserId = "";
                        vipInfotmp.Col21        = System.DateTime.Now.ToString();
                    }
                }
                else if (SourceId == 4 && string.IsNullOrEmpty(vipInfotmp.Col20))
                {
                    vipInfotmp.Col20 = ShareVipID;
                    vipInfotmp.Col21 = System.DateTime.Now.ToString();
                }
            }
            #endregion

            #region 取消关注的
            else if (vipInfotmp.Status == 0 && vipInfotmp.Col25 == "1")//取消关注的
            {
                if (string.IsNullOrEmpty(vipInfotmp.SetoffUserId) && string.IsNullOrEmpty(vipInfotmp.HigherVipID))
                {
                    if (SourceId == 1 || SourceId == 2)//获取分享员工的默认门店
                    {
                        vipInfotmp.SetoffUserId = ShareVipID;
                        vipInfotmp.HigherVipID  = null;
                        vipInfotmp.Col21        = System.DateTime.Now.ToString();
                    }
                    else
                    {
                        vipInfotmp.HigherVipID  = ShareVipID;
                        vipInfotmp.SetoffUserId = null;
                        vipInfotmp.Col21        = System.DateTime.Now.ToString();
                    }
                }
                else if (SourceId == 4 && string.IsNullOrEmpty(vipInfotmp.Col20))
                {
                    vipInfotmp.Col20 = ShareVipID;
                    vipInfotmp.Col21 = System.DateTime.Now.ToString();
                }
            }
            #endregion

            #region 未关注的
            else
            {                                       //未关注的(oauth认证获取的)
                //客服 员工
                if (SourceId == 1 || SourceId == 2) //获取分享员工的默认门店
                {
                    vipInfotmp.SetoffUserId = ShareVipID;
                    vipInfotmp.HigherVipID  = null;
                    vipInfotmp.Col21        = System.DateTime.Now.ToString();
                }
                else if (SourceId == 4)
                {
                    vipInfotmp.Col20 = ShareVipID;
                    vipInfotmp.Col21 = System.DateTime.Now.ToString();
                }
                //会员
                else
                {
                    vipInfotmp.HigherVipID  = ShareVipID;
                    vipInfotmp.SetoffUserId = null;
                    vipInfotmp.Col21        = System.DateTime.Now.ToString();
                }
            }
            #endregion

            #endregion

            if (string.IsNullOrEmpty(UnitId))
            {
                UnitService unitServer = new UnitService(loggingSessionInfo);
                UnitId = unitServer.GetUnitByUnitTypeForWX("总部", null).Id; //获取总部门店标识
            }
            vipInfotmp.CouponInfo = UnitId;
            vipInfotmp.Col24      = ObjectID;
            vipInfotmp.Col23      = SourceId.ToString();
            vipBll.Update(vipInfotmp, false);

            //分享记录
            T_LEventsSharePersonLogBLL t_LEventsSharePersonLogBLL = new T_LEventsSharePersonLogBLL(loggingSessionInfo);

            //先查看这个会员之前是否已经打开这个图文素材
            var t_LEventsSharePersonLogTemp = new T_LEventsSharePersonLogEntity();
            t_LEventsSharePersonLogTemp.BusTypeCode  = objectType;
            t_LEventsSharePersonLogTemp.ObjectId     = ObjectID; ////分享的链接代表的对象,活动或者商品
            t_LEventsSharePersonLogTemp.ShareVipType = SourceId; // 1员工,2客服,3会员  4超级分销商
            t_LEventsSharePersonLogTemp.ShareVipID   = ShareVipID;
            t_LEventsSharePersonLogTemp.BeShareVipID = vipid;    //被分享人
            var t_LEventsSharePersonLogOld = t_LEventsSharePersonLogBLL.QueryByEntity(t_LEventsSharePersonLogTemp, null);
            //如果已经有这样的记录,就不要再写了
            if (t_LEventsSharePersonLogOld != null && t_LEventsSharePersonLogOld.Length > 0)
            {
                return;
            }


            //第一次打开的时候才创建
            var t_LEventsSharePersonLog = new T_LEventsSharePersonLogEntity();
            t_LEventsSharePersonLog.SharePersonLogId = Guid.NewGuid();
            t_LEventsSharePersonLog.BusTypeCode      = objectType;
            t_LEventsSharePersonLog.ObjectId         = ObjectID; ////分享的链接代表的对象,活动或者商品
            t_LEventsSharePersonLog.ShareVipType     = SourceId; // 1员工,2客服,3会员
            t_LEventsSharePersonLog.ShareVipID       = ShareVipID;

            t_LEventsSharePersonLog.ShareOpenID   = shareVipOpenid; //如果是会员,取出来
            t_LEventsSharePersonLog.BeShareVipID  = vipid;          //新建的会员会员的vipid
            t_LEventsSharePersonLog.BeShareOpenID = openId;         //本分享人的id

            t_LEventsSharePersonLog.ShareURL       = goUrl;         //分享的链接
            t_LEventsSharePersonLog.CreateTime     = System.DateTime.Now;
            t_LEventsSharePersonLog.CreateBy       = "";
            t_LEventsSharePersonLog.LastUpdateBy   = "";
            t_LEventsSharePersonLog.LastUpdateTime = System.DateTime.Now;
            t_LEventsSharePersonLog.CustomerId     = loggingSessionInfo.ClientID;
            t_LEventsSharePersonLog.IsDelete       = 0;
            t_LEventsSharePersonLogBLL.Create(t_LEventsSharePersonLog);
        }