/// <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 = "新增成功" }); }
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)); } }
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))); } }