public int UpdateMember(dynamic requestData)
        {
            string       query = JsonConvert.SerializeObject(requestData);
            RegistMember model = JsonConvert.DeserializeObject <RegistMember>(query);

            EntityState statebefore = db.Entry(model).State;

            db.Entry(model).State = EntityState.Modified;

            return(db.SaveChanges());
        }
Example #2
0
        public string CreateVisitor(dynamic requestData)
        {
            RJson  r         = new RJson();
            string telephone = requestData.Phone;
            string openid    = requestData.OpenId;
            string jobType   = requestData.JobType;

            if (string.IsNullOrEmpty(telephone) || string.IsNullOrEmpty(openid) || string.IsNullOrEmpty(jobType))
            {
                r.message = "参数不能为空";
                return(JsonConvert.SerializeObject(r));
            }
            try
            {
                RegistMember member = new RegistMember();
                member.MemberTelePhone = telephone;
                member.MemberState     = 1;
                member.RegistDate      = DateTime.Now;
                member.TotalIntegral   = 0;
                member.LeaveIntegral   = 0;
                member.IsEnable        = 0;
                member.Remark          = requestData.Remark;

                db.RegistMember.Add(member);
                db.SaveChanges();

                #region 存入用户OpenId
                OpenIdAssociated openbase = new OpenIdAssociated();

                openbase.OpenId     = requestData.OpenId;
                openbase.UserId     = member.MemberId;
                openbase.UserType   = 2;
                openbase.Nickname   = requestData.Nickname;
                openbase.HeadImgUrl = requestData.HeadImgUrl;
                openbase.CreateDate = DateTime.Now;

                db.OpenIdAssociated.Add(openbase);
                db.SaveChanges();

                #endregion

                //当新增完会员之后 在会员简历表里同步新增一条数据
                var sql = string.Format(@"INSERT INTO MemberProfile (MemberId ,JobType) VALUES ({0},'{1}')
                                        ", member.MemberId, jobType);
                SqlHelper2.ExecuteNonQuery(CommandType.Text, sql);
                r.result_status = "succ";
                r.data          = member.MemberId.ToString();
            }
            catch (Exception ex)
            {
                r.message = ex.Message.ToString();
            }
            return(JsonConvert.SerializeObject(r));
        }
        public string CreateVisitor(dynamic requestData)
        {
            string telephone = requestData.Phone;
            string openid    = requestData.OpenId;

            if (string.IsNullOrEmpty(telephone) || string.IsNullOrEmpty(openid))
            {
                return("request error");
            }

            try
            {
                RegistMember member = new RegistMember();
                member.MemberTelePhone = telephone;
                member.MemberState     = 1;
                member.RegistDate      = DateTime.Now;
                member.TotalIntegral   = 0;
                member.LeaveIntegral   = 0;
                member.IsEnable        = 0;

                db.Member.Add(member);
                db.SaveChanges();

                #region 存入用户OpenId
                OpenIdAssociated openbase = new OpenIdAssociated();
                if (requestData.OpenId != null)
                {
                    openbase.OpenId     = requestData.OpenId;
                    openbase.UserId     = member.MemberId;
                    openbase.UserType   = 2;
                    openbase.Nickname   = requestData.Nickname;
                    openbase.HeadImgUrl = requestData.HeadImgUrl;
                    openbase.CreateDate = DateTime.Now;

                    db.OpenIdAssociated.Add(openbase);
                    db.SaveChanges();
                }
                #endregion

                #region 会员资料
                //当新增完会员之后 在会员简历表里同步新增一条数据
                var sql = string.Format("INSERT INTO MemberProfile VALUES ({0},'','','',NULL,NULL,NULL,'',NULL,'',NULL,'',NULL,'','','','','','',NULL,'','','','','','','',NULL,'','','','',NULL,'','','','','','','','','','')", member.MemberId);
                dataContext.ExecuteNonQuery(CommandType.Text, sql);

                #endregion

                return(member.MemberId.ToString());
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
Example #4
0
        public string CreateUserTemp()
        {
            int    recommandid  = 0;
            string sql          = "";
            int    ProvinceId   = 0;
            string ProvinceName = "";
            int    CityId       = 0;
            string CityName     = "";
            int    AreaId       = 0;
            string AreaName     = "";

            //从数据库表查询要创建的用户
            sql = string.Format(@"SELECT  Id,OpenId,NickName,HeadImageUrl,Name,Phone,AddressType,
                                    Province,City,Area,Address ,CONVERT(DATETIME,RegistDate,121) RegistDate
                                    from dbo.TempUsers 
                                    WHERE Status IS NULL or LEN(Status) =0 order by Id ");
            DataTable dt = SqlHelper.ExecuteDataTable(sql);

            foreach (DataRow dr in dt.Rows)
            {
                var a = Convert.ToDateTime(dr["RegistDate"].ToString());
                try
                {
                    sql = string.Format(@"SELECT a.MemberId  FROM dbo.RegistMember a JOIN dbo.OpenIdAssociated b ON a.MemberId=b.UserId 
                                                WHERE b.OpenId = '{0}' AND  b.UserType=2", dr["OpenId"].ToString());
                    DataTable dt6 = SqlHelper.ExecuteDataTable(sql);

                    //int openidcount = Convert.ToInt32(dataContext.ExecuteScalar(CommandType.Text, sql));
                    if (dt6.Rows.Count == 0)
                    {
                        if (string.IsNullOrEmpty(dr["AddressType"].ToString()))
                        {
                            //基本信息
                            RegistMember member = new RegistMember();
                            member.MemberTelePhone = dr["Phone"].ToString();
                            member.MemberState     = 1;
                            member.RegistDate      = DateTime.Now;
                            member.TotalIntegral   = 0;
                            member.LeaveIntegral   = 0;
                            member.IsEnable        = 0;
                            member.Remark          = "匠心寻百味抽奖";
                            member.RecommendId     = recommandid;
                            member.RegistDate      = Convert.ToDateTime(dr["RegistDate"].ToString());
                            db.Member.Add(member);
                            db.SaveChanges();

                            #region 存入用户OpenId
                            OpenIdAssociated openbase = new OpenIdAssociated();

                            openbase.OpenId     = dr["OpenId"].ToString();
                            openbase.UserId     = member.MemberId;
                            openbase.UserType   = 2;
                            openbase.Nickname   = dr["NickName"].ToString();
                            openbase.HeadImgUrl = dr["HeadImageUrl"].ToString();
                            openbase.CreateDate = DateTime.Now;

                            db.OpenIdAssociated.Add(openbase);
                            db.SaveChanges();

                            #endregion
                            // 当新增完会员之后 在会员简历表里同步新增一条数据

                            sql = string.Format(@"INSERT INTO MemberProfile (MemberId) VALUES ({0});
                                                UPDATE dbo.TempUsers SET Status = 'succ' WHERE OpenId = '{1}'", member.MemberId, dr["OpenId"].ToString());
                            SqlHelper.ExecuteNonQuery(CommandType.Text, sql);

                            Common.LogHelper.WriteLog(dr["OpenId"].ToString() + "-" + dr["Phone"].ToString() + ":用户创建成功");
                        }
                        else
                        {
                            //查询地址信息,主要是省市区id
                            sql = string.Format(@"SELECT a.ProvinceId,a.ProvinceName,b.CityId,b.CityName,c.AreaId,c.AreaName FROM dbo.Province a 
                                                    JOIN dbo.City b ON b.ProvinceId = a.ProvinceId JOIN dbo.Area c ON c.CityId = b.CityId
                                                    WHERE a.ProvinceName like '%{0}%' AND b.CityName like '%{1}%' AND c.AreaName like '%{2}%'",
                                                dr["Province"].ToString(), dr["City"].ToString(), dr["Area"].ToString());
                            DataTable dt2 = SqlHelper.ExecuteDataTable(sql);



                            if (dt2.Rows.Count > 0)  //地址正确 创建用户
                            {
                                ProvinceId   = Convert.ToInt32(dt2.Rows[0]["ProvinceId"]);
                                ProvinceName = dt2.Rows[0]["ProvinceName"].ToString();
                                CityId       = Convert.ToInt32(dt2.Rows[0]["CityId"]);
                                CityName     = dt2.Rows[0]["CityName"].ToString();
                                AreaId       = Convert.ToInt32(dt2.Rows[0]["AreaId"]);
                                AreaName     = dt2.Rows[0]["AreaName"].ToString();

                                //基本信息
                                RegistMember member = new RegistMember();
                                member.MemberTelePhone = dr["Phone"].ToString();
                                member.MemberState     = 1;
                                member.RegistDate      = DateTime.Now;
                                member.TotalIntegral   = 0;
                                member.LeaveIntegral   = 0;
                                member.IsEnable        = 0;
                                member.Remark          = "匠心寻百味抽奖";
                                member.RecommendId     = recommandid;
                                if (dr["AddressType"].ToString() == "酒店地址")
                                {
                                    member.ProvinceId   = ProvinceId;
                                    member.ProvinceName = ProvinceName;
                                    member.CityId       = CityId;
                                    member.CityName     = CityName;
                                    member.AreaId       = AreaId;
                                    member.AreaName     = AreaName;
                                    member.HotelAddress = dr["Address"].ToString();
                                }
                                db.Member.Add(member);
                                db.SaveChanges();

                                #region 存入用户OpenId
                                OpenIdAssociated openbase = new OpenIdAssociated();

                                openbase.OpenId     = dr["OpenId"].ToString();
                                openbase.UserId     = member.MemberId;
                                openbase.UserType   = 2;
                                openbase.Nickname   = dr["NickName"].ToString();
                                openbase.HeadImgUrl = dr["HeadImageUrl"].ToString();
                                openbase.CreateDate = DateTime.Now;

                                db.OpenIdAssociated.Add(openbase);
                                db.SaveChanges();

                                #endregion
                                // 当新增完会员之后 在会员简历表里同步新增一条数据
                                if (dr["AddressType"].ToString() == "家庭地址") //往MemberProfile 新增家庭信息
                                {
                                    sql = string.Format(@"INSERT INTO MemberProfile (MemberId,HomeProvinceId,HomeProvinceName,HomeCityId,
                                                HomeCityName,HomeAreaId,HomeAreaName,HomeAddress)
                                                VALUES ({0},{1},'{2}',{3},'{4}',{5},'{6}','{7}');
                                                UPDATE dbo.TempUsers SET Status = 'succ' WHERE OpenId = '{8}'                    
                                                    ", member.MemberId, ProvinceId, ProvinceName, CityId,
                                                        CityName, AreaId, AreaName, dr["Address"].ToString(), dr["OpenId"].ToString());
                                    SqlHelper.ExecuteNonQuery(CommandType.Text, sql);
                                }
                                else  //新增一条记录
                                {
                                    sql = string.Format(@"INSERT INTO MemberProfile (MemberId) VALUES ({0});
                                                      UPDATE dbo.TempUsers SET Status = 'succ' WHERE OpenId = '{1}'", member.MemberId, dr["OpenId"].ToString());
                                    SqlHelper.ExecuteNonQuery(CommandType.Text, sql);
                                }
                                Common.LogHelper.WriteLog(dr["OpenId"].ToString() + "-" + dr["Phone"].ToString() + ":用户创建成功");
                            }
                            else
                            {
                                sql = string.Format(@"UPDATE dbo.TempUsers SET Status = 'fail',Remark = '地址信息错误' WHERE Id = {0}", dr["Id"].ToString());
                                SqlHelper.ExecuteNonQuery(CommandType.Text, sql);
                                Common.LogHelper.WriteLog(dr["OpenId"].ToString() + "-" + dr["Phone"].ToString() + ":用户创建失败,地址信息错误");
                            }
                        }
                    }
                    else
                    {
                        sql = string.Format(@"UPDATE dbo.TempUsers SET Status = 'fail',Remark='{0}' WHERE Id = {1}", dt6.Rows[0]["MemberId"], dr["Id"].ToString());
                        SqlHelper.ExecuteNonQuery(CommandType.Text, sql);
                        Common.LogHelper.WriteLog(dr["OpenId"].ToString() + "已存在");
                    }
                }
                catch (Exception ex)
                {
                    Common.LogHelper.WriteLog(dr["OpenId"].ToString() + "-" + dr["Phone"].ToString() + "用户创建失败" + ex.Message);
                }
            }
            return("succ");
        }
Example #5
0
        /// <summary>
        /// 具体数据处理动作 将数据转为会员信息、订单信息
        /// </summary>
        /// <param name="requestData"></param>
        /// <returns></returns>
        private string HandleAction(ActivityData requestData)
        {
            string OpenId        = requestData.OpenId;
            string Phone         = requestData.Phone;
            string Name          = requestData.Name;
            string PositionType  = requestData.PositionType; //岗位类型 后厨主管
            string Position      = requestData.Position;     //  岗位
            string HotelOrMdName = requestData.HotelOrMdName;
            string Address       = requestData.Address;
            string NickName      = requestData.NickName;
            string HeadImageUrl  = requestData.HeadImageUrl;
            string PrizeName     = requestData.PrizeName;
            int    ProvinceId    = requestData.ProvinceId;
            string ProvinceName  = requestData.ProvinceName;
            int    CityId        = requestData.CityId;
            string CityName      = requestData.CityName;
            int    AreaId        = requestData.AreaId;
            string AreaName      = requestData.AreaName;
            string AddDate       = requestData.AddDate;

            int MemberId     = 0; //会员id
            int AssociatedId = 0; //


            int step = 0;

            try
            {
                #region 判断是否为老用户
                string    sql      = string.Format(@"SELECT a.MemberId,b.AssociatedId   FROM dbo.RegistMember a JOIN dbo.OpenIdAssociated b ON a.MemberId=b.UserId 
                                                WHERE b.OpenId = '{0}' AND  b.UserType=2", OpenId);
                DataTable dtMember = SqlHelper.ExecuteDataTable(sql);
                if (dtMember.Rows.Count > 0)
                {
                    MemberId     = Convert.ToInt32(dtMember.Rows[0]["MemberId"]);     //赋值老用户memberid
                    AssociatedId = Convert.ToInt32(dtMember.Rows[0]["AssociatedId"]); //赋值老用户微信表id
                }
                #endregion


                if (MemberId > 0)                           //更新
                {
                    if (string.IsNullOrEmpty(PositionType)) //留言登陆,之前已经有信息的跳过,直接返回
                    {
                        return("succ");
                    }
                    step = 1;
                    #region  step1更新基本信息
                    sql = string.Format(@"UPDATE dbo.RegistMember SET MemberName='{0}',MemberTelePhone='{1}',PositionType='{2}',Position='{3}',UpdateDate='{4}'
                                          WHERE MemberId = {5} ;", Name, Phone, PositionType, Position, AddDate, MemberId);
                    if (Position != "美食爱好者")
                    {
                        sql = sql + string.Format(@"UPDATE dbo.RegistMember SET ProvinceId={0},ProvinceName='{1}',CityId={2},CityName='{3}',
                                            AreaId={4},AreaName = '{5}' ,HotelAddress='{6}',HotelName='{7}'
                                         WHERE MemberId ={8}", ProvinceId, ProvinceName, CityId, CityName, AreaId, AreaName, Address, HotelOrMdName, MemberId);
                    }
                    SqlHelper.ExecuteNonQuery(CommandType.Text, sql);
                    #endregion

                    step = 2;
                    #region  step2更新MemberProfile会员属性表
                    //
                    if (Position == "美食爱好者") //往更新家庭信息
                    {
                        sql = string.Format(@"UPDATE dbo.MemberProfile 
                                            SET HomeProvinceId ={0},HomeProvinceName='{1}',HomeCityId={2},HomeCityName='{3}',
                                                HomeAreaId={4},HomeAreaName='{5}',HomeAddress='{6}' WHERE MemberId={7}  
                                                ", ProvinceId, ProvinceName, CityId, CityName, AreaId, AreaName, Address, MemberId);
                        SqlHelper.ExecuteNonQuery(CommandType.Text, sql);
                    }
                    #endregion
                }
                else  //新增
                {
                    step = 1;
                    #region  step1新增基本信息
                    RegistMember member = new RegistMember();
                    member.MemberId        = MemberId;
                    member.MemberName      = Name;
                    member.MemberTelePhone = Phone;
                    member.PositionType    = PositionType;
                    member.Position        = Position;
                    member.MemberState     = 1;
                    member.RegistDate      = Convert.ToDateTime(AddDate);
                    member.TotalIntegral   = 0;
                    member.LeaveIntegral   = 0;
                    member.IsEnable        = 0;
                    member.Remark          = "世界厨师日抽奖";
                    member.RecommendId     = 0;
                    if (Position != "美食爱好者")
                    {
                        member.ProvinceId   = ProvinceId;
                        member.ProvinceName = ProvinceName;
                        member.CityId       = CityId;
                        member.CityName     = CityName;
                        member.AreaId       = AreaId;
                        member.AreaName     = AreaName;
                        member.HotelName    = HotelOrMdName;
                        member.HotelAddress = Address;
                    }
                    db.Member.Add(member);   //新增
                    db.SaveChanges();
                    MemberId = member.MemberId;
                    #endregion

                    step = 2;
                    #region  step2新增MemberProfile会员属性表
                    if (Position == "美食爱好者") //往MemberProfile新增带家庭信息记录
                    {
                        sql = string.Format(@"INSERT INTO MemberProfile (MemberId,HomeProvinceId,HomeProvinceName,HomeCityId,
                                            HomeCityName,HomeAreaId,HomeAreaName,HomeAddress)
                                            VALUES ({0},{1},'{2}',{3},'{4}',{5},'{6}','{7}')    
                                                ", MemberId, ProvinceId, ProvinceName, CityId,
                                            CityName, AreaId, AreaName, Address);
                        SqlHelper.ExecuteNonQuery(CommandType.Text, sql);
                    }
                    else   //新增一条空记录
                    {
                        sql = string.Format(@"INSERT INTO MemberProfile (MemberId) VALUES ({0}) ", MemberId);
                        SqlHelper.ExecuteNonQuery(CommandType.Text, sql);
                    }
                    #endregion
                }
                Common.LogHelper.WriteLog(OpenId + "-step" + step.ToString() + "succ");

                step = 3;
                #region 存用户OpenId
                OpenIdAssociated openbase = new OpenIdAssociated();
                openbase.AssociatedId = AssociatedId;
                openbase.OpenId       = OpenId;
                openbase.UserId       = MemberId;
                openbase.UserType     = 2;
                openbase.Nickname     = NickName;
                openbase.HeadImgUrl   = HeadImageUrl;
                openbase.CreateDate   = DateTime.Now;
                db.OpenIdAssociated.AddOrUpdate(openbase);
                db.SaveChanges();
                Common.LogHelper.WriteLog(OpenId + "-step" + step.ToString() + "succ");
                #endregion

                step = 4;

                if (!string.IsNullOrEmpty(PrizeName))
                {
                    #region 将抽奖奖品转为积分或者订单
                    if (PrizeName == "电子菜谱")
                    {
                        return("succ");
                    }
                    else if (PrizeName == "20积分")   //积分奖品
                    {
                        string result = AddJifenFromActivity(MemberId, AddDate);
                        if (result == "succ")
                        {
                            Common.LogHelper.WriteLog(OpenId + "-step" + step.ToString() + "增加积分succ");
                            return("succ");
                        }
                        else
                        {
                            Common.LogHelper.WriteLog(OpenId + "-step" + step.ToString() + "增加积分fail");
                            return("fail" + "-step" + step.ToString() + "增加积分fail");
                        }
                    }
                    else  //实物奖品 转为订单
                    {
                        //抽奖奖品名称转为商城物品名称
                        if (PrizeName == "iWatch")
                        {
                            PrizeName = "Apple Watch Series4智能手表组";
                        }
                        else if (PrizeName == "剃须刀")
                        {
                            PrizeName = "飞利浦男士电动剃须刀组";
                        }
                        else if (PrizeName == "牛仔围裙")
                        {
                            PrizeName = "牛仔围裙件";
                        }
                        else if (PrizeName == "酸汤酱")
                        {
                            PrizeName = "味达美酸汤酱瓶";
                        }

                        Address = ProvinceName + CityName + AreaName + Address;
                        string result = AddOrderFromActivity(MemberId, PrizeName, Name, Address, Phone, AddDate);

                        if (result == "succ")
                        {
                            Common.LogHelper.WriteLog(OpenId + "-step" + step.ToString() + "增加实物订单" + PrizeName + "succ");
                            return("succ");
                        }
                        else
                        {
                            Common.LogHelper.WriteLog(OpenId + "-step" + step.ToString() + "增加实物订单fail,没有" + PrizeName);
                            return("fail" + "-step" + step.ToString() + "增加实物订单fail,没有" + PrizeName);
                        }
                    }
                    #endregion
                }
                else
                {
                    return("succ");
                }
            }
            catch (Exception ex)
            {
                Common.LogHelper.WriteLog(OpenId + "-step" + step.ToString() + "error:" + ex.ToString());
                return("error-" + ex.ToString());
            }
        }
        public string CreateMember(dynamic requestData)
        {
            RegistMember     member   = new RegistMember();
            OpenIdAssociated openbase = new OpenIdAssociated();

            LogHelper.WriteLog("进入方法");
            try
            {
                int code = -1;
                //获取用户填写的注册码

                code = Convert.ToInt32(requestData.RegistCode);

                //判断是否为游客
                if (code > 0)
                {
                    //判定为会员根据注册码查询出队员ID
                    var salmanSql = string.Format("Select SalemanId from RegistCode Where RegistCodeId = {0}", code);
                    var salemanId = dataContext.ExecuteScalar(CommandType.Text, salmanSql);

                    LogHelper.WriteLog("Code:" + code);
                    LogHelper.WriteLog("SalemanId:" + salemanId);

                    #region 坑爹的会员赋值部分……
                    member.ProvinceId      = requestData.ProvinceId;
                    member.ProvinceName    = requestData.ProvinceName;
                    member.CityId          = requestData.CityId;
                    member.CityName        = requestData.CityName;
                    member.AreaId          = requestData.AreaId;
                    member.AreaName        = requestData.AreaName;
                    member.ImgUrl          = "";
                    member.MemberName      = requestData.MemberName;
                    member.MemberTelePhone = requestData.TelePhone;
                    member.RecommendId     = Convert.ToInt32(salemanId);
                    member.Position        = requestData.Position;
                    member.PositionType    = requestData.PositionType;
                    member.HotelName       = requestData.HotelName;
                    member.MemberState     = 1;
                    member.HotelCode       = "";
                    member.HotelAddress    = "";
                    member.UpdateId        = 0;
                    member.RegistDate      = DateTime.Now;
                    member.UpdateDate      = DateTime.Now;
                    member.TotalIntegral   = 0;
                    member.LeaveIntegral   = 0;
                    member.MemberCode      = "";
                    member.MemberCodeTime  = null;
                    member.Remark          = requestData.Remark;
                    member.RoleId          = null;
                    member.MemberRecId     = requestData.MemberRecId;
                    member.IsEnable        = 0;
                    #endregion

                    if (string.IsNullOrEmpty(member.AreaName))
                    {
                        return("-1");
                    }

                    db.Member.Add(member);
                    db.SaveChanges();

                    string useCodeSql = string.Format("Update RegistCode Set MemberId = {0}, RegistCodeState = 2, UseDate = '{2}' where RegistCodeId = {1}; Insert into MemberRef Values({0}, {3},'{2}');", member.MemberId, code, DateTime.Now, salemanId);
                    dataContext.ExecuteNonQuery(CommandType.Text, useCodeSql);
                }
                else
                {
                    //判定为游客,直接赋值且RecommendId为0
                    #region 坑爹的会员赋值部分……
                    member.ProvinceId      = requestData.ProvinceId;
                    member.ProvinceName    = requestData.ProvinceName;
                    member.CityId          = requestData.CityId;
                    member.CityName        = requestData.CityName;
                    member.AreaId          = requestData.AreaId;
                    member.AreaName        = requestData.AreaName;
                    member.ImgUrl          = "";
                    member.MemberName      = requestData.MemberName;
                    member.MemberTelePhone = requestData.TelePhone;
                    member.RecommendId     = 0;
                    member.Position        = requestData.Position;
                    member.PositionType    = requestData.PositionType;
                    member.HotelName       = requestData.HotelName;
                    member.MemberState     = 1;
                    member.HotelCode       = "";
                    member.HotelAddress    = "";
                    member.UpdateId        = 0;
                    member.RegistDate      = DateTime.Now;
                    member.UpdateDate      = DateTime.Now;
                    member.TotalIntegral   = 0;
                    member.LeaveIntegral   = 0;
                    member.MemberCode      = "";
                    member.MemberCodeTime  = null;
                    member.Remark          = requestData.Remark;;
                    member.RoleId          = null;
                    member.MemberRecId     = requestData.MemberRecId;
                    member.IsEnable        = 0;
                    #endregion

                    db.Member.Add(member);
                    db.SaveChanges();
                }

                #region 存入用户OpenId
                if (requestData.OpenId != null)
                {
                    openbase.OpenId     = requestData.OpenId;
                    openbase.UserId     = member.MemberId;
                    openbase.UserType   = 2;
                    openbase.Nickname   = requestData.Nickname;
                    openbase.HeadImgUrl = requestData.HeadImgUrl;
                    openbase.CreateDate = DateTime.Now;

                    db.OpenIdAssociated.Add(openbase);
                    db.SaveChanges();
                }
                #endregion

                #region 会员资料
                //当新增完会员之后 在会员简历表里同步新增一条数据
                var sql = string.Format("INSERT INTO MemberProfile VALUES ({0},'','','',NULL,NULL,NULL,'',NULL,'',NULL,'',NULL,'','','','','','',NULL,'','','','','','','',NULL,'','','','',NULL,'','','','','','','','','','')", member.MemberId);
                dataContext.ExecuteNonQuery(CommandType.Text, sql);

                #endregion

                //如若有推荐用户注册,则推送模板消息
                if (member.MemberRecId > 0)
                {
                    string openIdsql = string.Format("Select OpenId from OpenIdAssociated where UserId = {0} and UserType = 2", member.MemberRecId);
                    var    q         = dataContext.ExecuteScalar(CommandType.Text, openIdsql);
                    SendWeChatMsg(member.MemberName, q.ToString());
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex.Source + "|" + ex.Message + "|" + ex.TargetSite);
                return(ex.Source + ex.Message + ex.TargetSite);
            }
            return(member.MemberId.ToString());
        }
Example #7
0
        /// <summary>
        /// 二维码扫描处理方法
        /// </summary>
        /// <param name="p">二维码所属包ID</param>
        /// <param name="sn">二维码的信息编码</param>
        /// <param name="userId">扫描人的用户ID</param>
        /// <param name="userType">扫描人的用户类型</param>
        /// <returns>二维码扫描结果</returns>
        public string ScanQrCode(string sn = "", int userId = 0, int userType = 0)
        {
            ScanQrCodeViewModel scanResult = new ScanQrCodeViewModel();

            scanResult.IsSuccess = false;
            scanResult.Msg       = "扫描二维码无效,请换一瓶";
            if (string.IsNullOrEmpty(sn))
            {
                scanResult.ReturnUrl = "二维码不存在";
            }
            var totalIntegral = 0;
            var rowNumber     = 0;

            //var memberInfo = _memberService.Find(userId);
            RegistMember memberInfo = (from o in db.RegistMember
                                       where o.MemberId == userId
                                       select o).FirstOrDefault();

            string isChance = "";   //标识,判断是否为活动概率规则

            if (!string.IsNullOrEmpty(sn))
            {
                var code = EncryptHelper.Confusion(sn);
                if (!string.IsNullOrEmpty(code) && code.Length == 18)
                {
                    //获取二维码
                    IntegralGoodsQrc qrc = (from o in db.IntegralGoodsQrc
                                            where o.Code == code
                                            select o).FirstOrDefault();

                    if (qrc.State == 1)
                    {
                        var wrapCode     = code.Substring(0, 2);
                        var categoryCode = code.Substring(2, 2);
                        var factoryCode  = code.Substring(4, 2);
                        var monthCode    = code.Substring(6, 2);
                        var productCode  = code.Substring(8);

                        //获取积分规则
                        DateTime date          = DateTime.Now;
                        var      integralModel = (from o in db.IntegralRule
                                                  join c in db.IntegralGoods on o.GoodsId equals c.GoodsId
                                                  where o.RuleState != 100 && c.GoodsState != 100 && c.GoodsNo == categoryCode &&
                                                  o.StartDate <date && o.EndDate> date
                                                  orderby o.RuleType descending
                                                  select o).FirstOrDefault();

                        if (memberInfo.IsEnable == 0 && (memberInfo.RecommendId > 0 || integralModel.RuleId == 83))
                        {
                            if (integralModel != null)
                            {
                                int count        = 0;
                                int scanIntegral = 0;

                                //使用二维码;添加商品积分记录;增加积分
                                var flag = Scan(integralModel.GoodsId, userId, qrc.QrcId, integralModel.Integral, (int)integralModel.RuleType, code, memberInfo.MemberCode, memberInfo.HotelName, out count, out scanIntegral, out isChance);

                                if (flag)
                                {
                                    //操作成功
                                    scanResult.IsSuccess = true;

                                    if (integralModel.ScanLimit > 0)
                                    {
                                        if (count >= integralModel.ScanLimit)
                                        {
                                            //int score = integralModel.Integral / 2;
                                            scanResult.Msg = string.Format("恭喜您!成功增加{0}积分", scanIntegral);
                                        }
                                        else
                                        {
                                            scanResult.Msg = string.Format("恭喜您!成功增加{0}积分", scanIntegral);
                                        }
                                    }
                                    else
                                    {
                                        scanResult.Msg = string.Format("恭喜您!成功增加{0}积分", scanIntegral);
                                    }
                                }
                                else
                                {
                                    //操作失败
                                    scanResult.Msg = "增加积分失败,请换一瓶。";
                                }
                            }
                            else
                            {
                                scanResult.Msg = "该产品不存在或者还没有对应的积分规则。";
                            }
                        }
                        else
                        {
                            scanResult.Msg = "产品积分扫码活动只针对已认证会员开展,未认证会员暂时无法扫描积分卡片。";
                        }
                    }
                    else
                    {
                        scanResult.Msg = string.Format("该二维码已被使用过。");
                    }
                }
            }

            scanResult.TotalIntegral = totalIntegral;
            scanResult.RowNumber     = rowNumber;
            return(scanResult.Msg + isChance.ToString());
        }