/// <summary> /// 获取用户信息 /// </summary> /// <param name="dr">任务信息</param> /// <returns></returns> private SellerInfoEntity GetSellerinfo(DataRow dr) { //获取用户信息 string seller_id = dr["seller_id"].ToString(); //用户id MySqlHelper db = new MySqlHelper(); SellerInfoEntity sellerinfo = new SellerInfoEntity(); DataTable sellerDt = new DataTable(); if (dr["useplatform"].ToString() == "2") { sellerDt = dbsp.ExecuteDataTable("select id,userid,nick,shopname,lastvisit,sessionkey,shoptype from crm_sellerinfo where userid='" + seller_id + "';"); } else { sellerDt = db.ExecuteDataTable("select id,userid,nick,shopname,lastvisit,sessionkey,shoptype from crm_sellerinfo where userid='" + seller_id + "';"); } //sellerDt = db.ExecuteDataTable("select id,userid,nick,shopname,lastvisit,sessionkey,shoptype from crm_sellerinfo where userid='" + seller_id + "';"); //绑定卖家信息 if (sellerDt != null && sellerDt.Rows.Count > 0) { sellerinfo.strUserId = sellerDt.Rows[0]["userid"].ToString(); sellerinfo.strUserNick = sellerDt.Rows[0]["nick"].ToString(); sellerinfo.sellerType = sellerDt.Rows[0]["shopType"].ToString(); sellerinfo.top_session = sellerDt.Rows[0]["sessionkey"].ToString(); //sellerinfo.top_session = "61012099c061511621c594ZZ0865780c3e824303bc0ed0e2929003048"; } return(sellerinfo); }
public static Dictionary <string, Item> Search(SearEntity sear, SellerInfoEntity sellerinfo) { try { bool isnum_iid = true; string reqName = ""; StringBuilder strbNumIid = new StringBuilder(); Dictionary <string, Item> itemDic = new Dictionary <string, Item>(); string type = sear.type; string num_iid = sear.numIid; string status = sear.statuss; //查询是否出售中 string sellerCat = sear.sellerCats; //查询条件宝贝分类 string strMainWord = sear.title; //查询条件宝贝关键字 int useplatform = sear.useplatform; //平台识别码 string sellerId = sellerinfo.strUserId; GetType(type, ref isnum_iid, ref reqName); if (!string.IsNullOrWhiteSpace(num_iid)) { #region 宝贝id查询 return(SearchNumIid(num_iid, sellerinfo, reqName, useplatform)); #endregion } else { //根据条件查询 return(SearchAll(status, reqName, isnum_iid, strMainWord, sellerCat, sellerinfo, useplatform)); } } catch (Exception ex) { TxtLog.WriteLine("getItemListErrorLog", sellerinfo.strUserNick + ":" + sellerinfo.strUserId + "=== :出现异常:" + ex.ToString()); return(null); } }
public static Dictionary <string, Item> SearchNumIid(string num_iid, SellerInfoEntity sellerinfo, string reqName, int useplatform) { Dictionary <string, Item> itemDic = new Dictionary <string, Item>(); #region 非全店选择批量 if (string.IsNullOrWhiteSpace(num_iid)) { return(null); } string itemid = num_iid; //商品id Regex reg = new Regex(@"(\d+,){0,19}\d+"); //正则获取每次20个 foreach (Match m in reg.Matches(itemid)) { ItemsSellerListGetRequest itemGetRequest = new ItemsSellerListGetRequest { Fields = reqName, NumIids = m.Value }; ItemsSellerListGetResponse itemGetResponse = TopClient.Execute(itemGetRequest, sellerinfo.top_session, (TopClient.CrmPlatForm)useplatform); for (int j = 0; j < 3; j++) { itemGetResponse = TopClient.Execute(itemGetRequest, sellerinfo.top_session, (TopClient.CrmPlatForm)useplatform); bool isok = string.IsNullOrWhiteSpace(itemGetResponse.SubErrMsg) ? true : false; if (isok)//没有错就跳出 有错误暂停0.5s 继续执行 { break; } else { Thread.Sleep(500); } } if (itemGetResponse.IsError) { TxtLog.WriteLine("getItemListErrorLog", sellerinfo.strUserNick + ":" + sellerinfo.strUserId + "===" + m.Value + ":出现异常:" + itemGetResponse.Body); continue; } foreach (Item item in itemGetResponse.Items.Where(item => !itemDic.ContainsKey(item.NumIid.ToString()))) { itemDic.Add(item.NumIid.ToString(), item); } } #endregion return(itemDic); }
/// <summary> /// 获取需要执行的宝贝对象信息 /// </summary> /// <param name="sellerinfo">用户信息</param> /// <param name="dr">任务信息</param> /// <returns></returns> private Dictionary <string, Item> GetItem(SellerInfoEntity sellerinfo, DataRow dr) { //获取提交任务的条件判断哪些宝贝需要执行检测 string seller_id = dr["seller_id"].ToString(); //用户id string check_type = dr["check_type"].ToString(); //宝贝条件 0:出售中商品检测 1:仓库中商品检测' 3 全部 string total_count = dr["total_count"].ToString(); //提交宝贝总数 string num_iid = dr["num_iid"].ToString(); //宝贝id 为主要条件 //获取宝贝 SearEntity sear = null; if (string.IsNullOrWhiteSpace(num_iid)) { sear = new SearEntity(check_type, "", "", "违禁词", useplatform); } else { sear = new SearEntity(num_iid, "违禁词", useplatform); } // 是否出售中 ,类目id,标题,调用者 return(SearchItems.Search(sear, sellerinfo)); }
public bool SendMain(DataTable dt) { string activityId = dt.Rows[0]["id"].ToString(); useplatform = int.Parse(dt.Rows[0]["useplatform"].ToString()); MySqlHelper dbtool = new MySqlHelper(DataType.ToolsProducts); try { //string sqlActivity = string.Format("select * from crm_attributesprodetect where id='{0}'", activityId); //DataTable dt = dbtool.ExecuteDataTable(sqlActivity); Dictionary <string, Item> dicItem = new Dictionary <string, Item>();//存储宝贝信息的集合 if (dt != null && dt.Rows.Count > 0) { ShowSend("检测开始"); SellerInfoEntity sellerinfo = GetSellerinfo(dt.Rows[0]); dicItem = GetItem(sellerinfo, dt.Rows[0]); string tabelName = sellerinfo.strUserId.Substring(sellerinfo.strUserId.Length - 1); string cpsql = string.Format("delete from crm_prohibiteword_detail{0} where mainid1 ='{1}'", tabelName, activityId); dbtool.ExecuteNonQuery(cpsql); TaskDetection(dicItem, sellerinfo, activityId, dt.Rows[0]["activity_type"].ToString()); ShowSend("检测完成"); } return(true); } catch (Exception ex) { TxtLog.WriteLine("图片违禁词检测", "主程序异常" + ex.ToString()); return(false); } finally { rch.Delete(activityId); //结束任务 string sqlactivity = string.Format("UPDATE crm_attributesprodetect SET tools ='-1', check_state = 2 WHERE id = '{0}';", activityId); dbtool.ExecuteNonQuery(sqlactivity); }; }
public void TaskDetection(Dictionary <string, Item> dicItem, SellerInfoEntity sellerinfo, string activityId, string activityType) { try { if (dicItem == null) { TxtLog.WriteLine("getItemListErrorLog", sellerinfo.strUserNick + ":" + sellerinfo.strUserId + "=== :出现异常:获取宝贝为空" + sellerinfo.top_session); return; } string tableindex = sellerinfo.strUserId.Substring(sellerinfo.strUserId.Length - 1, 1); MySqlHelper dbtool = new MySqlHelper(DataType.ToolsProducts); string sql = "select proword from crm_prohibitedword where is_del='0'"; string sqluser = "******" + tableindex + " where is_del='0' and seller_id =" + sellerinfo.strUserId; DataTable dt = dbtool.ExecuteDataTable(sql); DataTable dtuser = dbtool.ExecuteDataTable(sqluser); string ItemImgsError = string.Empty; string titleword = string.Empty; //标题异常 string desc = string.Empty; //详情异常 string pictext = string.Empty; Mypic myp = new Mypic(); int itemcount = 0; foreach (var item in dicItem.Values) {//'任务类型 0,文字检测 1图片检测 3 全部检测' titleword = ""; desc = ""; ItemImgsError = ""; switch (activityType) { case "0": //文字检测 myp.DetectionTitelDesc(dtuser, dt, item, ref titleword, ref desc); break; case "1": //图片检测 myp.DetectionPIC(dtuser, dt, item, ref ItemImgsError, ref pictext); break; case "3": // 全部检测' myp.DetectionTitelDesc(dtuser, dt, item, ref titleword, ref desc); myp.DetectionPIC(dtuser, dt, item, ref ItemImgsError, ref pictext); break; default: break; } if (pictext != null && pictext.Contains("Open api daily request limit reached")) { LogApi.MonitorLog.Write(LogApi.LogType.Error, LogApi.Products.CRM, LogApi.VersionM.Standard, "图片检测欠费", sellerinfo.strUserId, sellerinfo.strUserNick, "", " 检测api欠费:活动id:" + activityId); return; } else if (pictext != null && pictext.Contains("Open api qps request limit reached")) { LogApi.MonitorLog.Write(LogApi.LogType.Error, LogApi.Products.CRM, LogApi.VersionM.Standard, "图片检测欠费", sellerinfo.strUserId, sellerinfo.strUserNick, "", " 检测api限流 活动id:" + activityId); return; } itemcount++; ShowSend("开始检测" + DateTime.Now.ToString() + "宝贝id" + item.NumIid + itemcount + "/" + dicItem.Count + "用户id" + sellerinfo.strUserId); //任务进度写进缓存 Sethc(activityId, itemcount + "/" + dicItem.Count); string errors = titleword + desc + ItemImgsError; string tabelName = sellerinfo.strUserId.Substring(sellerinfo.strUserId.Length - 1); if (!string.IsNullOrWhiteSpace(errors)) { if (!string.IsNullOrWhiteSpace(ItemImgsError)) { ItemImgsError = "[" + ItemImgsError.Substring(0, ItemImgsError.Length - 1) + "]"; } string psql = string.Format("INSERT INTO `crm_prohibiteword_detail{0}` (`id`, `mainid1`, `seller_id`, `num_id`, `title` , `pic_url`, `create_time`, `title_fail_reason`, `sellpoint_fail_reason`, `desc_fail_reason`, picture_fail_reason1,is_error) VALUES ('{1}', '{2}', '{3}', '{4}', '{5}' , '{6}', now(), '{7}', '', '{8}','{9}',{10} );", tabelName, Guid.NewGuid(), activityId, sellerinfo.strUserId, item.NumIid, item.Title.Replace("'", ""), item.PicUrl, titleword, desc, ItemImgsError, "1"); dbtool.ExecuteNonQuery(psql); } else { string psql = string.Format("INSERT INTO `crm_prohibiteword_detail{0}` (`id`, `mainid1`, `seller_id`, `num_id`, `title` , `pic_url`, `create_time`, `title_fail_reason`, `sellpoint_fail_reason`, `desc_fail_reason`, picture_fail_reason1,is_error) VALUES ('{1}', '{2}', '{3}', '{4}', '{5}' , '{6}', now(), '{7}', '', '{8}','{9}' ,{10});", tabelName, Guid.NewGuid(), activityId, sellerinfo.strUserId, item.NumIid, item.Title.Replace("'", ""), item.PicUrl, titleword, desc, ItemImgsError, "0"); dbtool.ExecuteNonQuery(psql); } } } catch (Exception ex) { TxtLog.WriteLine("图片违禁词检测", ex.ToString()); } }
public static Dictionary <string, Item> SearchAll(string status, string reqName, bool isnum_iid, string strMainWord, string sellerCat, SellerInfoEntity sellerinfo, int useplatform) { TxtLog.WriteLine("getItemListErrorLog", sellerinfo.strUserNick + ":" + sellerinfo.strUserId + "===" + status + " ::" + sellerinfo.top_session); Dictionary <string, Item> itemDic = new Dictionary <string, Item>(); StringBuilder strbNumIid = new StringBuilder(); long totalResults = 0; //宝贝总数 int pageNo = 0; //api查询页码 int pageNo2 = 0; //api查询页码 status = status == "3" ? null : status; if (string.IsNullOrWhiteSpace(status)) { #region 获取出售中的商品 do { pageNo++; ItemsOnsaleGetRequest req = new ItemsOnsaleGetRequest(); req.Fields = reqName; req.PageSize = 200L; req.PageNo = Convert.ToInt64(pageNo); req.OrderBy = "list_time:asc"; if (strMainWord.Length > 0) { req.Q = strMainWord; } if (sellerCat.Trim().Length > 0) { req.SellerCids = sellerCat; } ItemsOnsaleGetResponse response = TopClient.Execute <ItemsOnsaleGetResponse>(req, sellerinfo.top_session, (TopClient.CrmPlatForm)useplatform); if (response.IsError) { TxtLog.WriteLine("getItemListErrorLog", sellerinfo.strUserNick + ":" + sellerinfo.strUserId + "=== :出现异常:" + response.Body); } else { TxtLog.WriteLine("getItemListErrorLog", sellerinfo.strUserNick + ":" + sellerinfo.strUserId + "=== :出现异常:" + response.Body); totalResults = response.TotalResults; foreach (Item item in response.Items.Where(item => !itemDic.ContainsKey(item.NumIid.ToString()))) { if (isnum_iid) { strbNumIid.Append(item.NumIid.ToString() + ","); } else { itemDic.Add(item.NumIid.ToString(), item); } } } } while (totalResults > pageNo * 200); #endregion #region 获取仓库中的商品 do { pageNo2++; ItemsInventoryGetRequest req = new ItemsInventoryGetRequest { Fields = reqName, PageSize = 200, PageNo = pageNo2 }; if (strMainWord.Length > 0) { req.Q = strMainWord; } if (sellerCat.Trim().Length > 0) { req.SellerCids = sellerCat; } ItemsInventoryGetResponse response = TopClient.Execute(req, sellerinfo.top_session, (TopClient.CrmPlatForm)useplatform); if (response.IsError) { TxtLog.WriteLine("getItemListErrorLog", sellerinfo.strUserNick + ":" + sellerinfo.strUserId + "=== :出现异常:" + response.Body); } else { totalResults = response.TotalResults; foreach (Item item in response.Items.Where(item => !itemDic.ContainsKey(item.NumIid.ToString()))) { if (isnum_iid) { strbNumIid.Append(item.NumIid.ToString() + ","); } else { itemDic.Add(item.NumIid.ToString(), item); } } } } while (totalResults > pageNo2 * 200); #endregion } else { if (status == "0") { #region 获取出售中的商品 do { pageNo++; ItemsOnsaleGetRequest req = new ItemsOnsaleGetRequest(); req.Fields = reqName; req.PageSize = 200L; req.PageNo = Convert.ToInt64(pageNo); req.OrderBy = "list_time:asc"; if (strMainWord.Length > 0) { req.Q = strMainWord; } if (sellerCat.Trim().Length > 0) { req.SellerCids = sellerCat; } ItemsOnsaleGetResponse response = TopClient.Execute <ItemsOnsaleGetResponse>(req, sellerinfo.top_session, (TopClient.CrmPlatForm)useplatform); if (response.IsError) { TxtLog.WriteLine("getItemListErrorLog", sellerinfo.strUserNick + ":" + sellerinfo.strUserId + "=== :出现异常:" + response.Body); } else { totalResults = response.TotalResults; foreach (Item item in response.Items.Where(item => !itemDic.ContainsKey(item.NumIid.ToString()))) { if (isnum_iid) { strbNumIid.Append(item.NumIid.ToString() + ","); } else { itemDic.Add(item.NumIid.ToString(), item); } } } } while (totalResults > pageNo * 200); #endregion } else if (status == "1") { #region 获取仓库中的商品 do { pageNo++; ItemsInventoryGetRequest req = new ItemsInventoryGetRequest { Fields = reqName, PageSize = 200, PageNo = pageNo }; if (strMainWord.Length > 0) { req.Q = strMainWord; } if (sellerCat.Trim().Length > 0) { req.SellerCids = sellerCat; } ItemsInventoryGetResponse response = TopClient.Execute(req, sellerinfo.top_session, (TopClient.CrmPlatForm)useplatform); if (response.IsError) { TxtLog.WriteLine("getItemListErrorLog", sellerinfo.strUserNick + ":" + sellerinfo.strUserId + "=== :出现异常:" + response.Body); } else { totalResults = response.TotalResults; foreach (Item item in response.Items.Where(item => !itemDic.ContainsKey(item.NumIid.ToString()))) { if (isnum_iid) { strbNumIid.Append(item.NumIid.ToString() + ","); } else { itemDic.Add(item.NumIid.ToString(), item); } } } } while (totalResults > pageNo * 200); #endregion } } if (isnum_iid) { itemDic = SearchNumIid(strbNumIid.ToString(), sellerinfo, reqName, useplatform); } return(itemDic); }