예제 #1
0
        /// <summary>
        /// 新增名片归属用户下的客户信息
        /// </summary>
        /// <param name="custuserid"></param>
        /// <param name="ownerusercardid"></param>
        /// <returns></returns>
        private RunterResult AddUserCustomer(string custuserid, int ownerusercardid, Common.Enums.EnterpriseUserCustomerSource source)
        {
            var from = db.Users.FirstOrDefault(s => s.Id == custuserid);
            //根据客户对应的userid获取企业客户信息
            var cust = db.EnterpriseCustomers.FirstOrDefault(s => s.UserID == custuserid);
            var to   = (from u in db.Users
                        from c in db.Cards
                        where u.Id == c.UserID && c.ID == ownerusercardid
                        select new { u.Id, u.UserName, c.EnterpriseID, c.Avatar, NickName = c.Name }).FirstOrDefault();

            if (to == null)
            {
                return(new RunterResult {
                    IsSuccess = false, Message = "名片不存在"
                });
            }
            if (from == null)
            {
                return(new RunterResult {
                    IsSuccess = false, Message = "用户不存在"
                });
            }
            else
            {
                if (!to.Id.Equals(custuserid))
                {
                    //如果不存在企业客户则新增
                    if (cust == null)
                    {
                        //保存企业客户信息
                        EnterpriseCustomer ecust = new EnterpriseCustomer();
                        ecust.UserID       = custuserid;
                        ecust.EnterpriseID = to.EnterpriseID.Value;
                        ecust.RealName     = from.NickName;
                        ecust.Mobile       = from.PhoneNumber;
                        ecust.Birthday     = null;
                        db.EnterpriseCustomers.Add(ecust);
                        int resultrow = db.SaveChanges();
                        if (resultrow > 0)
                        {
                            //保存企业名片用户下的客户信息
                            EnterpriseUserCustomer euscust = new EnterpriseUserCustomer();
                            euscust.CustomerID     = ecust.ID;
                            euscust.OwnerID        = to.Id;
                            euscust.State          = Common.Enums.EnterpriseUserCustomerState.NoFllow;
                            euscust.Source         = source;
                            euscust.CreateDateTime = DateTime.Now;
                            db.EnterpriseUserCustomer.Add(euscust);
                            db.SaveChanges();
                        }
                    }
                    else
                    {
                        //如果存在就检测归宿人客户是否存在
                        var us = db.EnterpriseUserCustomer.FirstOrDefault(s => s.OwnerID == to.Id && s.CustomerID == cust.ID);
                        if (us == null)
                        {
                            //保存企业名片用户下的客户信息
                            EnterpriseUserCustomer euscust = new EnterpriseUserCustomer();
                            euscust.CustomerID     = cust.ID;
                            euscust.OwnerID        = to.Id;
                            euscust.State          = Common.Enums.EnterpriseUserCustomerState.NoFllow;
                            euscust.Source         = source;
                            euscust.CreateDateTime = DateTime.Now;
                            db.EnterpriseUserCustomer.Add(euscust);
                            db.SaveChanges();
                        }
                    }
                }
            }
            return(new RunterResult {
                IsSuccess = true, Message = "新增成功"
            });
        }
예제 #2
0
        public ActionResult EditCustInfo(EnterpriseCustomer model)
        {
            try
            {
                var t = db.EnterpriseCustomers.FirstOrDefault(s => s.ID == model.ID);
                if (t == null)
                {
                    return(Json(Comm.ToJsonResult("Error", "客户不存在"), JsonRequestBehavior.AllowGet));
                }
                if (model.RealName != null)
                {
                    t.RealName = model.RealName;
                }
                if (model.Email != null)
                {
                    if (string.Empty != model.Email.Trim() && !Common.Reg.IsEmail(model.Email))
                    {
                        return(Json(Comm.ToJsonResult("Error", "邮箱格式不正确"), JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        t.Email = model.Email;
                    }
                }
                if (model.Mobile != null)
                {
                    if (string.Empty != model.Mobile.Trim() && !Common.Reg.IsMobile(model.Mobile))
                    {
                        return(Json(Comm.ToJsonResult("Error", "手机号格式不正确"), JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        t.Mobile = model.Mobile;
                    }
                }

                if (model.Position != null)
                {
                    t.Position = model.Position;
                }

                t.Gender = model.Gender;
                if (model.Birthday != null)
                {
                    t.Birthday = model.Birthday;
                }

                if (model.Company != null)
                {
                    t.Company = model.Company;
                }
                if (model.Province != null)
                {
                    t.Province = model.Province;
                }
                if (model.City != null)
                {
                    t.City = model.City;
                }
                if (model.District != null)
                {
                    t.District = model.District;
                }
                if (model.Address != null)
                {
                    t.Address = model.Address;
                }
                db.SaveChanges();
                return(Json(Comm.ToJsonResult("Success", "成功"), JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(Comm.ToJsonResult("Error500", ex.Message), JsonRequestBehavior.AllowGet));
            }
        }
예제 #3
0
 public ActionResult AddEnterPriseCustomer(AddEnterpriseCustomer model)
 {
     try
     {
         if (string.IsNullOrWhiteSpace(model.UnionID))
         {
             if (string.IsNullOrWhiteSpace(model.OpenID))
             {
                 return(Json(Comm.ToJsonResult("OpenIDNoFound", $"OpenID不能为空")));
             }
             //如果用户没关注公众号,获取不了UnionID,从EncryptedData从解密用户数据
             var session = Common.WeChat.Jscode2sessionResultList.GetSession(model.OpenID);
             var str     = Common.WeChat.Jscode2sessionResultList.AESDecrypt(model.EncryptedData, session, model.IV);
             try
             {
                 string debug = JsonConvert.SerializeObject(new
                 {
                     model.EncryptedData,
                     session,
                     model.IV,
                     AES = str
                 });
                 //Comm.WriteLog("WeiXin", debug, DebugLogLevel.Normal);
                 var jUser   = JsonConvert.DeserializeObject <JObject>(str);
                 var unionID = jUser["unionId"]?.Value <string>();
                 if (unionID == null)
                 {
                     return(Json(Comm.ToJsonResult("UnionIDNoFound", "获取不了UnionID")));
                 }
                 model.UnionID = unionID;
             }
             catch (Exception)
             {
                 //如果解密后发现昵称有乱码
                 //如"nickName\":\"涓€鐪兼湜宸?,\"gender\":1,
                 //把乱码部分全部去掉重新解析
                 try
                 {
                     var index   = str.IndexOf("\"unionId\"");
                     var newStr  = str.Remove(1, index - 1);
                     var jUser   = JsonConvert.DeserializeObject <JObject>(newStr);
                     var unionID = jUser["unionId"]?.Value <string>();
                     model.UnionID = unionID;
                 }
                 catch (Exception)
                 {
                     return(Json(Comm.ToJsonResult("AESDecryptFail", "解密失败", new { Info = model, Aes = str, Session = session })));
                 }
             }
         }
         UserInfoResult wmodel = new UserInfoResult();
         wmodel.EncryptedData = model.EncryptedData;
         wmodel.HeadImgUrl    = model.HeadImgUrl;
         wmodel.IsSubscribe   = model.IsSubscribe;
         wmodel.IV            = model.IV;
         wmodel.NickName      = model.NickName;
         wmodel.OpenID        = model.OpenID;
         wmodel.Type          = model.Type;
         wmodel.UnionID       = model.UnionID;
         var user = CreateByWeChat(wmodel);
         if (user != null)
         {
             var addmodel = new EnterpriseCustomer
             {
                 RealName     = model.NickName,
                 EnterpriseID = model.EnterpriseID,
                 UserID       = user.Id
             };
             db.EnterpriseCustomers.Add(addmodel);
             int reruenrow = db.SaveChanges();
             if (reruenrow > 0)
             {
                 var returndata = new
                 {
                     ID = addmodel.ID
                 };
                 return(Json(Comm.ToJsonResult("Success", "新增成功", returndata), JsonRequestBehavior.AllowGet));
             }
             else
             {
                 return(Json(Comm.ToJsonResult("Error", "新增客户失败")));
             }
         }
         else
         {
             return(Json(Comm.ToJsonResult("Error", "新增客户失败")));
         }
     }
     catch (Exception ex)
     {
         return(Json(Comm.ToJsonResult("Error", "新增客户失败", ex.Message)));
     }
 }