2022-12-17汽配拍呀拍00
请注意,本文编写于 347 天前,最后修改于 345 天前,其中某些信息可能已经过时。

目录

前言
开始
建模
修改标题逻辑代码
效果
小结及后续

前言

为什么会需要标题矩阵?可以参照我之前一篇文章
汽配拍呀拍产品标题矩阵的使用帮助
通过针对每一个产品设置各种矩阵参数,然后通过参数的确是很方便生成不一样的产品标题
但是还有没有更简单更智能的方法?
做为汽配拍呀拍的开发者,在通过和用户的不断沟通交流后,做出了下面一个产品标题AI矩阵的实践。

开始

先来分解客户需求。
客户先拿过来一个图,说这是他标题矩阵的生成方法。

554dffd1e1b635a3ea2ce19d4ce949e.jpg
按拍呀拍通用的矩阵设置如下
7a91c37b0a7d092d49620a54df5f734.png

但是客户不想每一个产品都要做这种矩阵参数的配置。

于是我就开始利用拍呀拍强大的产品思维开始拆解了。
第一项内容“配件出|适用于”是明显的客户随便定制的
第二项是车型年款,这个可以从产品中的车型数据来
第三项,产品名称,可以通过产品分类来。
第四项,出厂日期,放在产品品牌那来看可不可以?

d0b30624e0242f7cd7e30b357be9c8b.png
经过不间断的交流和深入了解。开始有点底了。

建模

先进行配置建模如下:

json
{
    "适用于":{
        "src":1,
        "value":"适用于|配件出|废物利用|再生物资|再生资源",
        "exp":"|",
        "title":0,
        "br":0,
        "type":1
    },
    "年份":{
        "src":2,
        "value":"tag_name",
        "exp":"*",
        "title":0,
        "br":0,
        "type":3
    },
    "产品分类":{
        "src":2,
        "value":"class_name",
        "exp":"/",
        "title":0,
        "br":1,
        "type":2
    },
    "拆车件":{
        "src":1,
        "value":"原厂件,原车件,原装件,纯拆件",
        "exp":",",
        "title":1,
        "br":1,
        "type":2
    },
    "适配车型年款":{
        "src":2,
        "value":"tag_name",
        "exp":",",
        "title":1,
        "br":1,
        "type":2
    },
    "出厂日期":{
        "src":2,
        "value":"vehicle_name",
        "exp":"*",
        "title":1,
        "br":1,
        "type":1
    }
}

修改标题逻辑代码

/**
     * 智能生成标题
     * @param $product_id
     * @param $data
     * @param int $step
     * @return string
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     */
	public static function ai_title($product_id,$config) {
		if(!is_array($config))
		{
			$config=json_decode($config,1);
		}
		
		$title='';
		//src表示字段数据来源,exp表示字段数据隔符,value表示数据,title表示是否显示标题,br表示是否换行,type表示,获取一条还是全部内容随机。
		$product=['来源于数据库查询数据'];//此代码省略
		foreach($config as $k=>$v)
		{
			if($v['src']==1)
			{
				//固定值随机一个
				$tmp=explode($v['exp'],$v['value']);
				
			}elseif($v['src']==2)
			{
				//取产品值
				$tmp=explode($v['exp'],$product[$v['value']]);
			}
			if($v['title']==1)
			{
				//是否显示标题
				$title.=$k;
				if($v['br']==1)
				{
					$title.=':'.chr(13).chr(10);
				}
			}
			
			if($v['type']==1)
			{
				$title.=$tmp[array_rand($tmp)];;
			}elseif($v['type']==2){
				shuffle($tmp);
				$title.=implode(',',$tmp);
			}elseif($v['type']==3){
				//生成序列数
				preg_match_all('/(\d+)-(\d+)[^0-9]*$/',$tmp[0],$arr);
				for($i=$arr[1][0];$i<=$arr[2][0];$i++)
				{
					$title.=substr('0'.$i,-2).' ';
				}
				$title.='年款'.substr($tmp[0],0,strpos($tmp[0],$arr[0][0]));
			}
			if($v['br']==1)
			{
				$title.=chr(13).chr(10).chr(13).chr(10);
			}
		}
		return $title;
	}

效果

客户只需要上传产品,标题就可以自动智能随机生成不同的标题。

生成效果

适用于08 09 10 11 12 13 日产逍客脚踏板

拆车件:
原装件,原车件,成色完美,原厂件,纯拆件

适配车型年款:
日产逍客08-13款

出厂日期:
2013年日产逍客-自动两驱2.0

小结及后续

此次程序是根据客户需求进行改进的,汽配拍呀拍这个小程序在架构设计上支持他做这种变动,而且这种变动也让客户更好的受益
后续,将会将这个过于专业的json配置变得更简单化。

本文作者:天外来信

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!