方维分享吧 关注:183贴子:597
  • 1回复贴,共1

方维分享系统之分享商品数据保正唯一性的实现

只看楼主收藏回复

方维默认的商品排重是根据会员uid 商品key2个字段决定的唯一性,而对于不同会员是可以分享相同的淘宝链接的,这样就出现了一个难题:如果采用外部发布接口去发布数据,往往接口发布都已采用了随机会员发布,如果有重复的数据,同样要发布到网站,使得网站的数据出现可能很多重复,目前方维的外部发布软件主要是火车头采集器了,虽然火车头有很多的排重功能,但是有时使用者页不可避免的犯错误造成待发布数据库存在大量的重复采集的数据,本人就在这些天的测试采集过程出现了这个令人头疼的问题,当时真是感觉超郁闷,方维本身就是图片资源占大量空间的站点,好在本人已有了图片远程化的功能,但是也不想再去发布这些重复的数据到站点上,经过思考再次硬下头皮去看方维的程序文件,要实现商品全站唯一性修改的地方是很简单的,但至少要对整个搜集商品信息过程的代码有所了解。
下面是修改的地方:
文件1:\core\class\sharegoods\taobao_sharegoods.class.php
代码修改:
if(isset($_FANWE['request']['weiyi'])&&$_FANWE['request']['weiyi']==1)$share_goods = FDB::resultFirst('SELECT share_id,goods_id FROM '.FDB::table('share_goods').' WHERE goods_key = "'.$key.'"');//修改,唯一性商品
else $share_goods = FDB::resultFirst('SELECT share_id,goods_id FROM '.FDB::table('share_goods').' WHERE uid = '.$_FANWE['uid']." AND goods_key = '$key'");//分享商品数组 取第一条当前用户淘宝键值的商品
if($share_goods)//存在说明已有返回商品id,状态=-1
{
$result['status'] = -1;//同用户唯一性
$result['share_id'] = $share_goods['share_id'];
$result['goods_id'] = $share_goods['goods_id'];
return $result;
}
当然如果为了提示下实际发布失败原因,可为$result['status']设置相应的值,同时还要修改下\services\module\share\collectgoods.php里面的if语句加些不同的返回值以判断各自的错误情况。
总结:由于我这个修改是通过一个get参数-----$_FANWE['request']['weiyi']做的判断是否全局唯一性数据,会员在网站上分享是是不存在这个参数的,所以仍是对自己分享的数据判断重复;而通过发表接口批量发布时,可以为提交的url加参数weiyi=1,这样就是只要站点已有的数据都不会再发布了,保证了数据的唯一性,减少了资源的大量重复占用。



1楼2012-07-23 12:57回复
    从哪里改到哪里???我改了,还是不好使!!是不是该错地方了!


    2楼2012-10-19 21:17
    回复