商业数据构造物料发布&投放

最近在写数据构造完成物料的发布&投放,有一些坑所以想简单说下。

首先想说写了一段时间scf的数据构造,和之前请求http请求思路基本都是一样,或者说单元测试也都差不多。三步骤:构造数据->q请求接口->校验结果(因为不是做测试仅仅就是为了构造数据,所以没有校验结果这步骤)。tcp层的好处不想http请求那样需要传cookie什么的,因为http层要保证安全会有各种校验,所以可能很难达到预期的效果,构造合理身份很麻烦,相对tcp层就会好很多直接ip+端口的形式,用scf.conf配置文件来区分你想访问test和线上环境,整体会方便不少。

先说一下构造思路:起初我的思路是想发布物料用title来区分,因为我们的物料是有类别的所以根据类别来区分,比如说cateid=101,那么从controllers穿过来的时候,我就在物料title字段加上手机。但是整体物料基本都是一个样子,感觉很不好。所以我换个思路。想通过zzproduct服务暴露的通过类别字段(cateid)来查询线上,为什么会想到这个呢,首先看一下zzproduct的scf接口如图:

在看一下zzprodquerycondition的查询条件,如图:

然后我想把类别属性放到实例中,比如说手机类别cateid=101。传入后发现返回null,这个我没有看源码整体比较复杂,猜测应该是必须根据userid查询(ps:我觉得其实就是类似orm那种,拼接条件查询数据库)。既然必须需要userid那么取数据这块就要改一下,必须要有模板账户嘛。思路就是用自己的账号作为模板(因为自己的账号用于测试肯定有很多发布帖子嘛)。做数据构造尤其是这种需要做数据清洗的(听着很高大上,其实就是把标题,价格,描述这些属性改一下变成你自己的帖子)。这样第一部分取数据的问题解决了。代码如下:

第二部分就是发布商品,思路就是把取到的productDTO实例转成pubDTO实例中,然后构建tcp请求。

以上就完成了发布商品,但是发布完成后前端还是看不到,因为前端要展示的话,还需要建立投放。主要原因其实首先物料发布调用中台的服务,写入中台的数据库。主要调用服务如下:

按照该server的调用关系,这样商品的状态并没有在我们这边数据库,所以在发布是还要建立投放,主要存在我们的数据库中。

投放建立的调用adsearch服务的promotionserver接口,暴露接口如图:

如图需要promotionEntity实例,构建代码如图:

以上就完成商品发布&投放,左右又串了个流程共controllers:

以上就是整体的,运行结果如图:

猜你喜欢

转载自blog.csdn.net/gogoboi_jin/article/details/83418255