internal Wxmedia_updownlog GetMarkedAndNotdeallog(string weixin, int clientuptypemark) { string sql = "select top 1 * from wxmedia_updownlog where isfinish=0 and operweixin='" + weixin + "' and clientuptypemark=" + clientuptypemark + " order by id desc"; var cmd = sqlHelper.PrepareTextSqlCommand(sql); using (var reader = cmd.ExecuteReader()) { Wxmedia_updownlog m = null; if (reader.Read()) { m = new Wxmedia_updownlog { id = reader.GetValue <int>("id"), mediaid = reader.GetValue <string>("mediaid"), mediatype = reader.GetValue <string>("mediatype"), savepath = reader.GetValue <string>("savepath"), created_at = reader.GetValue <string>("created_at"), createtime = reader.GetValue <DateTime>("createtime"), opertype = reader.GetValue <string>("opertype"), operweixin = reader.GetValue <string>("operweixin"), clientuptypemark = reader.GetValue <int>("clientuptypemark"), comid = reader.GetValue <int>("comid"), relativepath = reader.GetValue <string>("relativepath"), txtcontent = reader.GetValue <string>("txtcontent"), isfinish = reader.GetValue <int>("isfinish"), materialid = reader.GetValue <int>("materialid"), remarks = reader.GetValue <string>("remarks") }; } return(m); } }
public int Edituploadlog(Wxmedia_updownlog udlog) { using (var helper = new SqlHelper()) { int r = new InternalWxmedia_updownlog(helper).Edituploadlog(udlog); return(r); } }
internal Wxmedia_updownlog GetWxmedia_updownlogbymaterialid(int materialid) { string sql = @"SELECT top 1 [id] ,[mediaid] ,[mediatype] ,[savepath] ,[created_at] ,[createtime] ,[opertype] ,[operweixin] ,[clientuptypemark] ,[comid] ,[relativepath] ,[txtcontent] ,[isfinish] ,[remarks] ,materialid FROM [wxmedia_updownlog] where materialid=@materialid and opertype='down' order by id desc"; var cmd = sqlHelper.PrepareTextSqlCommand(sql); cmd.AddParam("@materialid", materialid); using (var reader = cmd.ExecuteReader()) { Wxmedia_updownlog m = null; if (reader.Read()) { m = new Wxmedia_updownlog { id = reader.GetValue <int>("id"), mediaid = reader.GetValue <string>("mediaid"), mediatype = reader.GetValue <string>("mediatype"), savepath = reader.GetValue <string>("savepath"), created_at = reader.GetValue <string>("created_at"), createtime = reader.GetValue <DateTime>("createtime"), opertype = reader.GetValue <string>("opertype"), operweixin = reader.GetValue <string>("operweixin"), clientuptypemark = reader.GetValue <int>("clientuptypemark"), comid = reader.GetValue <int>("comid"), relativepath = reader.GetValue <string>("relativepath"), txtcontent = reader.GetValue <string>("txtcontent"), isfinish = reader.GetValue <int>("isfinish"), materialid = reader.GetValue <int>("materialid"), remarks = reader.GetValue <string>("remarks") }; } return(m); } }
internal Wxmedia_updownlog GetWxmedia_updownlog(string weixin, int clientuptypemark, int comid) { try { string sql = @"select top 1 * from wxmedia_updownlog where comid=@comid and operweixin= (select weixin from b2b_crm where com_id=@comid and phone=(select mobile from member_channel where com_id=@comid and id=(select issuecard from member_card where cardcode=(select idcard from b2b_crm where weixin=@weixin)))) and mediaid!='' and clientuptypemark=@clientuptypemark and opertype='down' order by id desc"; var cmd = sqlHelper.PrepareTextSqlCommand(sql); cmd.AddParam("@comid", comid); cmd.AddParam("@weixin", weixin); cmd.AddParam("@clientuptypemark", clientuptypemark); using (var reader = cmd.ExecuteReader()) { Wxmedia_updownlog m = null; if (reader.Read()) { m = new Wxmedia_updownlog { id = reader.GetValue <int>("id"), mediaid = reader.GetValue <string>("mediaid"), mediatype = reader.GetValue <string>("mediatype"), savepath = reader.GetValue <string>("savepath"), created_at = reader.GetValue <string>("created_at"), createtime = reader.GetValue <DateTime>("createtime"), opertype = reader.GetValue <string>("opertype"), operweixin = reader.GetValue <string>("operweixin"), clientuptypemark = reader.GetValue <int>("clientuptypemark"), comid = reader.GetValue <int>("comid"), relativepath = reader.GetValue <string>("relativepath"), txtcontent = reader.GetValue <string>("txtcontent"), isfinish = reader.GetValue <int>("isfinish"), materialid = reader.GetValue <int>("materialid"), remarks = reader.GetValue <string>("remarks") }; } return(m); } } catch { return(null); } }
internal int Edituploadlog(Wxmedia_updownlog m) { try { if (m.remarks == null) { m.remarks = ""; } if (m.materialid == null) { m.materialid = 0; } if (m.id > 0)//编辑操作 { string sql = @"UPDATE [wxmedia_updownlog] SET [mediaid] = @mediaid ,[mediatype] = @mediatype ,[savepath] = @savepath ,[created_at] = @created_at ,[createtime] = @createtime ,[opertype] = @opertype ,[operweixin] = @operweixin ,[clientuptypemark] = @clientuptypemark ,[comid] = @comid ,relativepath=@relativepath ,txtcontent=@txtcontent ,isfinish=@isfinish ,remarks=@remarks ,materialid=@materialid WHERE id=@id"; var cmd = sqlHelper.PrepareTextSqlCommand(sql); cmd.AddParam("@id", m.id); cmd.AddParam("@mediaid", m.mediaid); cmd.AddParam("@mediatype", m.mediatype); cmd.AddParam("@savepath", m.savepath); cmd.AddParam("@created_at", m.created_at); cmd.AddParam("@createtime", m.createtime); cmd.AddParam("@opertype", m.opertype); cmd.AddParam("@operweixin", m.operweixin); cmd.AddParam("@clientuptypemark", m.clientuptypemark); cmd.AddParam("@comid", m.comid); cmd.AddParam("@relativepath", m.relativepath); cmd.AddParam("@txtcontent", m.txtcontent); cmd.AddParam("@isfinish", m.isfinish); cmd.AddParam("@remarks", m.remarks); cmd.AddParam("@materialid", m.materialid); cmd.ExecuteNonQuery(); return(m.id); } else //添加操作 { string sql = @"INSERT INTO [wxmedia_updownlog] ([mediaid] ,[mediatype] ,[savepath] ,[created_at] ,[createtime] ,[opertype] ,[operweixin] ,[clientuptypemark] ,[comid] ,relativepath ,txtcontent ,isfinish ,remarks ,materialid ) VALUES (@mediaid ,@mediatype ,@savepath ,@created_at ,@createtime ,@opertype ,@operweixin ,@clientuptypemark ,@comid ,@relativepath ,@txtcontent ,@isfinish ,@remarks ,@materialid);select @@identity;"; var cmd = sqlHelper.PrepareTextSqlCommand(sql); cmd.AddParam("@mediaid", m.mediaid); cmd.AddParam("@mediatype", m.mediatype); cmd.AddParam("@savepath", m.savepath); cmd.AddParam("@created_at", m.created_at); cmd.AddParam("@createtime", m.createtime); cmd.AddParam("@opertype", m.opertype); cmd.AddParam("@operweixin", m.operweixin); cmd.AddParam("@clientuptypemark", m.clientuptypemark); cmd.AddParam("@comid", m.comid); cmd.AddParam("@relativepath", m.relativepath); cmd.AddParam("@txtcontent", m.txtcontent); cmd.AddParam("@isfinish", m.isfinish); cmd.AddParam("@remarks", m.remarks); cmd.AddParam("@materialid", m.materialid); object o = cmd.ExecuteScalar(); return(o == null ? 0 : int.Parse(o.ToString())); } } catch { return(0); } }
//给客户发送顾问的信息 public static void Sendweixinchient(string openid, int comid) { WeiXinBasic basic = new WeiXinBasicData().GetWxBasicByComId(comid); string company = ""; string channelname = ""; string name = ""; WxMessageLogData messagelogdata = new WxMessageLogData(); //var messageinfo = messagelogdata.GetWxMessageLogSendTime(comid, openid);//查询2小时内是否给渠道发送过消息 //if (messageinfo == 0) //{ //会员 MemberCardData carddata = new MemberCardData(); var userdata = new B2bCrmData(); var userinfo = userdata.GetB2bCrm(openid, comid); if (userinfo != null) { name = userinfo.Name; } var cardinfo = carddata.GetMemberCardByOpenId(openid); if (cardinfo != null) { //获取渠道 var channeldata = new MemberChannelData(); var channelinfo = channeldata.GetChannelDetail(int.Parse(cardinfo.IssueCard.ToString())); if (channelinfo != null) { channelname = channelinfo.Name; //渠道名称 if (channelinfo.Companyid == 0) //内部渠道 { B2bCompanyData comdata = new B2bCompanyData(); var cominfo = comdata.GetCompanyBasicById(comid); if (cominfo != null) { company = cominfo.Com_name; } } else { //外部合作单位,调取合作单位名称 var channelcompanydata = new MemberChannelcompanyData(); var channelcominfo = channelcompanydata.GetChannelCompany(channelinfo.Companyid.ToString()); if (channelcominfo != null) { company = channelcominfo.Companyname; } } } } if (channelname != "" && channelname != "默认渠道" && channelname != "微信注册" && channelname != "网站注册") { //微信客服 文本消息 string data = SendWxMsg(comid, openid, 1, "", name + "你好,我是您的服务顾问" + company + "的 " + channelname + " ,\n请直接在微信上给我语音或文字留言,我会在手机微信上看到留言并很快回复。您不信? 现在就试试…", "", basic.Weixinno); //微信模板消息 new Weixin_tmplmsgManage().WxTmplMsg_SubscribeActReward(comid, openid, name + "你好,我是您的服务顾问" + company + "的 " + channelname + " , \\n请直接在微信上给我语音或文字留言,我会在手机微信上看到留言并很快回复。您不信? 现在就试试…\\n", "向《我的服务顾问:" + channelname + "》微信咨询", DateTime.Now.ToString(), ""); WxMessageLog messagelog = new WxMessageLog(); messagelog.Comid = comid; messagelog.Weixin = openid; var messageedit = messagelogdata.EditWxMessageLog(messagelog);//插入日志 //顾问录入的 问候语音 int isreplymediasuc = 0;//发送语音消息状态:0失败;1成功 WXAccessToken m_accesstoken = WeiXinManage.GetAccessToken(basic.Comid, basic.AppId, basic.AppSecret); //根据用户微信得到其顾问微信,然后根据微信和标记得到最新的一条保存路径(注:已经上传过语音的即mediaid!="") Wxmedia_updownlog udlog = new Wxmedia_updownlogData().GetWxmedia_updownlog(openid, (int)Clientuptypemark.DownGreetVoice, basic.Comid); if (udlog == null) { isreplymediasuc = 0; } else { string media_id = new WxUploadDownManage().UploadMultimedia(m_accesstoken.ACCESS_TOKEN, "voice", udlog.savepath); if (media_id != "") { Wxmedia_updownlog uplog = new Wxmedia_updownlog { id = 0, mediaid = media_id, mediatype = "voice", savepath = udlog.savepath, created_at = ConvertDateTimeInt(DateTime.Now).ToString(), createtime = DateTime.Now, opertype = "up", operweixin = openid, clientuptypemark = (int)Clientuptypemark.DownGreetVoice,//上传多媒体信息 comid = basic.Comid, relativepath = udlog.relativepath, txtcontent = "", isfinish = 1 }; int uplogresult = new Wxmedia_updownlogData().Edituploadlog(uplog); if (uplogresult == 0) { isreplymediasuc = 0; } else { //resxml = "<xml><ToUserName><![CDATA[" + requestXML.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + requestXML.ToUserName + "]]></FromUserName><CreateTime>" + ConvertDateTimeInt(DateTime.Now) + "</CreateTime><MsgType><![CDATA[voice]]></MsgType><Voice><MediaId><![CDATA[" + media_id + "]]></MediaId></Voice></xml>"; isreplymediasuc = 1; SendWxMsg(comid, openid, 2, "", "", media_id, basic.Weixinno); } } else { isreplymediasuc = 0; } } ////如果发送语音失败,则发送客服消息 //if (isreplymediasuc == 0) //{ //} } //} }