在写这个系统技术系列文章之前,先说一下什么的广告电商系统?
广告电商系统的功能上,它也是一个网上购物商城,在购物商城的产品功能体系上,植入了看广告增功能模式
整个广告电商系统架构有多个模块和功能点,因为开发广告电商系统的内容很多,今天给大家分享的是广告电商系统之产品系统模块,这个模块涉及到整个商城系统里面的所有产品,该模块是广告电商系统重要组成板块。
广告电商系统之产品系统模块
包含的小功能点:产品管理,产品列表,产品搜索,产品收藏,产品详情,产品分享
1.产品管理
产品管理功能包含产品上架,下架,修改,删除的功能。产品参数上传包含封面图、子图上传,产品视频上传。
产品视频有2种方式,直接在广告电商系统里上传视频,并自动生成当前产品的视频专属链接,另外一种是直接在文库里贴出视频地址。当再广告电商系统前台展示的时候,产品详情页自动加载当前的视频介绍,同时为了优化视频声音对用户的干扰,在产品视频属性里可以设置系统是否默认开启播放声音还是默认显示声音。
2.产品列表
系统设置产品功能包含产品橱窗列表模式,有单行列表,也可以选择2格或者3格列表。产品有属性筛选设计,按照价格区间列表,按照价格升序排序,按照价格降序排序,按照品牌多选复选方式筛选。
3.产品搜索
按照产品关键词查找,产地查找
3.产品收藏
进入产品详情页可以把当前产品加入收藏,在会员中心有产品收藏列表,同时在产品收藏区也可以取消当前的产品收藏
4.产品详情
产品详情包含产品名称介绍,产品热度,产品视频播放,产品组图幻灯播放,产品详情参数介绍,产地,库存,下单量相关数据,产品评论内容列表,产品收藏功能,加入购物车功能,产品分享功能
5.产品分享
这里说一下产品分享功能,如果会员未登录,点分享那么系统弹出账户登陆框;如果会员已经登陆,那么分享的时候,系统会生成一张海报。海报内容包含产品图,二维码,会员昵称,并且当前二维码信息也包含这个会员的分享推广信息,当新用户扫码的时候,系统会默定当前这个新用户的上级会员,就是当前的分享会员。
<?php
namespace app\api\controller\activity;
use app\admin\model\store\StoreDescription;
use app\admin\model\store\StoreProductAttrValue;
use app\Request;
use think\facade\Route;
use app\models\user\{
User, WechatUser
};
use app\admin\model\system\SystemAttachment;
use app\models\routine\{
RoutineCode, RoutineTemplate
};
use app\models\store\{StoreBargain, StoreBargainUser, StoreBargainUserHelp, StoreOrder,
StoreProductAttr, StoreVisit};
use crmeb\services\{
GroupDataService, UtilService, WechatTemplateService
};
use crmeb\services\upload\Upload;
/**
* 产品类
* Class StoreBargainController
* @package app\api\controller\activity
*/
class StoreBargainController
{
/**
* 产品列表顶部图
* @return mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function config()
{
$lovely = sys_data('routine_lovely') ?? [];//banner图
$info = isset($lovely[2]) ? $lovely[2] : [];
return app('json')->successful($info);
}
/**
* 产品列表
* @param Request $request
* @return mixed
*/
public function lst(Request $request)
{
list($page, $limit) = UtilService::getMore([
['page', 0],
['limit', 0],
], $request, true);
$bargainList = StoreBargain::getList($page, $limit);
return app('json')->successful($bargainList);
}
/**
* 产品详情和当前登录人信息
* @param Request $request
* @param $id
* @return mixed
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function detail(Request $request, $id)
{
if (!$id) return app('json')->fail('参数错误');
if (!($bargain = StoreBargain::getBargainTerm($id))) return app('json')->fail('产品已结束');
StoreBargain::addBargainLook($id);
$bargain['time'] = time();
$user = $request->user();
$data['userInfo']['uid'] = $user['uid'];
$data['userInfo']['nickname'] = $user['nickname'];
$data['userInfo']['avatar'] = $user['avatar'];
$bargain['description'] = htmlspecialchars_decode(StoreDescription::getDescription($id, 2));
list($productAttr, $productValue) = StoreProductAttr::getProductAttrDetail($id, $user['uid'],
0, 2);
foreach ($productValue as $k => $v) {
$v['product_stock'] = StoreProductAttrValue::where('product_id', $bargain
['product_id'])->where('suk', $v['suk'])->where('type', 0)->value('stock');
$bargain['attr'] = $v;