jh-admin/addon/cardservice/storeapi/controller/Card.php

307 lines
15 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace addon\cardservice\storeapi\controller;
use addon\cardservice\model\CardGoods;
use addon\saas\model\Config;
use app\model\goods\Goods as GoodsModel;
use app\model\goods\GoodsService as GoodsServiceModel;
use app\model\store\Store as StoreModel;
use app\shopapi\controller\BaseApi;
/**
* 卡项商品
* Class Card
* @package addon\cardservice\shopapi\controller
*/
class Card extends BaseApi
{
public function __construct()
{
//执行父类构造函数
parent::__construct();
$token = $this->checkToken();
if ($token['code'] < 0) {
echo $this->response($token);
exit;
}
}
/**
* 添加商品
* @return mixed
*/
public function addGoods()
{
$category_id = input("category_id", 0);// 分类id
$category_json = json_encode($category_id);//分类字符串
$category_id = '';
$data = [
'goods_name' => input("goods_name", ""),// 商品名称,
'goods_attr_class' => input("goods_attr_class", ""),// 商品类型id,
'goods_attr_name' => input("goods_attr_name", ""),// 商品类型名称,
'is_limit' => input("is_limit", "0"),// 商品是否限购,
'limit_type' => input("limit_type", "1"),// 商品限购类型,
'site_id' => $this->site_id,
'category_id' => $category_id,
'category_json' => $category_json,
'goods_image' => input("goods_image", ""),// 商品主图路径
'goods_content' => input("goods_content", ""),// 商品详情
'goods_state' => input("goods_state", ""),// 商品状态1.正常0下架
'price' => input("price", 0),// 商品价格取第一个sku
'renew_price' => input("renew_price", 0), // 续费价格
'market_price' => input("market_price", 0),// 市场价格取第一个sku
'cost_price' => input("cost_price", 0),// 成本价取第一个sku
'sku_no' => input("sku_no", ""),// 商品sku编码
'weight' => input("weight", ""),// 重量
'volume' => input("volume", ""),// 体积
'goods_stock' => input("goods_stock", 0),// 商品库存(总和)
'goods_stock_alarm' => input("goods_stock_alarm", 0),// 库存预警
'goods_spec_format' => input("goods_spec_format", ""),// 商品规格格式
'goods_attr_format' => input("goods_attr_format", ""),// 商品参数格式
'introduction' => input("introduction", ""),// 促销语
'keywords' => input("keywords", ""),// 关键词
'unit' => input("unit", ""),// 单位
'sort' => input("sort", 0),// 排序,
'video_url' => input("video_url", ""),// 视频
'goods_sku_data' => input("goods_sku_data", ""),// SKU商品数据
'goods_service_ids' => input("goods_service_ids", ''),// 商品服务id集合
'label_id' => input("label_id", ''),// 商品分组id
'brand_id' => input("brand_id", 0),//品牌id
'virtual_sale' => input("virtual_sale", 0),// 虚拟销量
'max_buy' => input("max_buy", 0),// 限购
'min_buy' => input("min_buy", 0),// 起售
'recommend_way' => input('recommend_way', 0), // 推荐方式1新品2精品3推荐
'timer_on' => strtotime(input('timer_on', 0)),//定时上架
'timer_off' => strtotime(input('timer_off', 0)),//定时下架
'is_consume_discount' => input('is_consume_discount', 0),//是否参与会员折扣
'qr_id' => input('qr_id', 0),// 社群二维码id
'template_id' => input('template_id', 0), // 商品海报id
'sale_show' => input('sale_show', 0),//
'stock_show' => input('stock_show', 0),//
'market_price_show' => input('market_price_show', 0),//
'barrage_show' => input('barrage_show', 0),//
'form_id' => input('form_id', 0),
'sale_channel' => input('sale_channel', 'all'),
'sale_store' => input('sale_store', 'all'),
'card_type' => input('card_type', ''),
'validity_type' => input('validity_type', 0),
'discount_goods_type' => input('discount_goods_type', 'all'),
'discount' => input('discount', 0),
'common_num' => input('common_num', 0),
'relation_goods' => input('relation_goods', '[]'),
'is_unify_pirce' => input('is_unify_pirce', 1),
'is_cloud_zmxx' => input('is_cloud_zmxx', 0),
'discount_type' => input('discount_type', 1),
'cloud_card_type' => input('cloud_card_type', 'discount_week'),
'downPaymentPeriods' => input('downPaymentPeriods', 0),
'downPayment' => input('downPayment', 0),
'perPeriodPriceArray' => input('perPeriodPriceArray'),
'periods' => input('periods',0),
'card_template_id' => input('card_template_id', ''),
'change_type' => input('change_type', ''),
'least_period' => input('periods', ''),
'is_alipay_public' => input('is_alipay_public', 0),
'use_rule' => input('use_rule'),
'is_zmxx' => 0,
'alipay_cat_id' =>'',
];
$common_num= $data['periods']?:$data['common_num'];
if ($data['is_cloud_zmxx'] && $data['card_type'] != 'commoncard') return $this->response(error(-1, '芝麻先享仅支持通用卡'));
if ($data['is_cloud_zmxx'] && !$data['use_rule']) return $this->response(error(-1, '使用规则不能为空'));
if ($data['is_cloud_zmxx']) {
$data['is_zmxx'] = 1;
$num_price = $data['price'] / $common_num;//平均价格
$market_price = $data['market_price'] / $common_num;
$data['average_original_price'] = $market_price;
$data['average_discount_price'] = $num_price;
if ($data['discount_type'] == 1) {
if ($num_price < $data['downPayment']) return $this->response(error(-1, '前期优惠价格必须小于平均优惠价格'));
} else {
$downPaymentPeriods = str_replace('', ',', $data['downPaymentPeriods']);
$PaymentPeriods = explode(',', $downPaymentPeriods);
if (count($PaymentPeriods) >= $common_num) return $this->response(error(-1, '后期优惠次数不能大于总次数'));
$current = current($PaymentPeriods);
while ($next = next($PaymentPeriods)) {
if ($next > $current) {
return $this->response(error(-1, '后期优惠价格必须小于或者等与前一期价格'));
}
$current = $next;
}
}
}
if ($data['validity_type'] == 1) {
$data['validity_day'] = input("validity_day", 0);
} elseif ($data['validity_type'] == 2) {
$data['validity_time'] = strtotime(input("validity_time", ''));
}
$virtual_goods_model = new CardGoods();
$res = $virtual_goods_model->addGoods($data);
return $this->response($res);
}
/**
* 编辑商品
* @return mixed
*/
public function editGoods()
{
$virtual_goods_model = new CardGoods();
$category_id = input("category_id", 0);// 分类id
$category_json = json_encode($category_id);//分类字符串
$category_id = '';
$data = [
'goods_id' => input("goods_id", 0),// 商品id
'goods_name' => input("goods_name", ""),// 商品名称,
'goods_attr_class' => input("goods_attr_class", ""),// 商品类型id,
'goods_attr_name' => input("goods_attr_name", ""),// 商品类型名称,
'is_limit' => input("is_limit", "0"),// 商品是否限购,
'limit_type' => input("limit_type", "1"),// 商品限购类型,
'site_id' => $this->site_id,
'category_id' => $category_id,
'category_json' => $category_json,
'goods_image' => input("goods_image", ""),// 商品主图路径
'goods_content' => input("goods_content", ""),// 商品详情
'goods_state' => input("goods_state", ""),// 商品状态1.正常0下架
'price' => input("price", 0),// 商品价格取第一个sku
'renew_price' => input("renew_price", 0), // 续费价格
'market_price' => input("market_price", 0),// 市场价格取第一个sku
'cost_price' => input("cost_price", 0),// 成本价取第一个sku
'sku_no' => input("sku_no", ""),// 商品sku编码
'weight' => input("weight", ""),// 重量
'volume' => input("volume", ""),// 体积
'goods_stock' => input("goods_stock", 0),// 商品库存(总和)
'goods_stock_alarm' => input("goods_stock_alarm", 0),// 库存预警
'goods_spec_format' => input("goods_spec_format", ""),// 商品规格格式
'goods_attr_format' => input("goods_attr_format", ""),// 商品参数格式
'introduction' => input("introduction", ""),// 促销语
'keywords' => input("keywords", ""),// 关键词
'unit' => input("unit", ""),// 单位
'sort' => input("sort", 0),// 排序,
'video_url' => input("video_url", ""),// 视频
'goods_sku_data' => input("goods_sku_data", ""),// SKU商品数据
'goods_service_ids' => input("goods_service_ids", ''),// 商品服务id集合
'label_id' => input("label_id", ''),// 商品分组id
'brand_id' => input("brand_id", 0),//品牌id
'virtual_sale' => input("virtual_sale", 0),// 虚拟销量
'max_buy' => input("max_buy", 0),// 限购
'min_buy' => input("min_buy", 0),// 起售
'recommend_way' => input('recommend_way', 0), // 推荐方式1新品2精品3推荐
'timer_on' => strtotime(input('timer_on', 0)),//定时上架
'timer_off' => strtotime(input('timer_off', 0)),//定时下架
'spec_type_status' => input('spec_type_status', 0),
'is_consume_discount' => input('is_consume_discount', 0),//是否参与会员折扣
'qr_id' => input('qr_id', 0),// 社群二维码id
'template_id' => input('template_id', 0), // 商品海报id
'sale_show' => input('sale_show', 0),//
'stock_show' => input('stock_show', 0),//
'market_price_show' => input('market_price_show', 0),//
'barrage_show' => input('barrage_show', 0),//
'form_id' => input('form_id', 0),
'sale_channel' => input('sale_channel', 'all'),
'sale_store' => input('sale_store', 'all'),
'validity_type' => input('validity_type', 0),
'discount_goods_type' => input('discount_goods_type', 'all'),
'discount' => input('discount', 0),
'common_num' => input('common_num', 0),
'relation_goods' => input('relation_goods', '[]'),
'is_unify_pirce' => input('is_unify_pirce', 1),
'discount_type' => input('discount_type', ''),
'downPaymentPeriods' => input('downPaymentPeriods', 0),
'downPayment' => input('downPayment', 0),
'perPeriodPriceArray' => input('perPeriodPriceArray'),
'periods' => input('periods'),
'card_template_id' => input('card_template_id', ''),
'change_type' => input('change_type', ''),
'least_period' => input('periods', ''),
'is_alipay_public' => input('is_alipay_public', 0),
'use_rule' => input('use_rule'),
];
$num_price = $data['price'] / $data['common_num'];
if ($data['discount_type'] == 1) {
if ($num_price < $data['downPayment']) return $this->response(error(-1, '前期优惠价格必须小于平均优惠价格'));
} else if ($data['discount_type'] == 2) {
$downPaymentPeriods = str_replace('', ',', $data['downPaymentPeriods']);
$PaymentPeriods = explode(',', $downPaymentPeriods);
if (count($PaymentPeriods) >= $data['common_num']) return $this->response(error(-1, '后期优惠次数不能大于总次数'));
$current = current($PaymentPeriods);
while ($next = next($PaymentPeriods)) {
if ($next > $current) {
return $this->response(error(-1, '后期优惠价格必须小于或者等与前一期价格'));
}
$current = $next;
}
}
$market_price = $data['market_price'] / $data['common_num'];
$data['renew_price'] = $data['price'];
$data['average_original_price'] = $market_price;
$data['average_discount_price'] = $num_price;
if ($data['validity_type'] == 1) {
$data['validity_day'] = input("validity_day", 0);
} elseif ($data['validity_type'] == 2) {
$data['validity_time'] = strtotime(input("validity_time", ''));
}
$data['periods'] = $data['common_num'];//临时解决客商家端发布产品
$res = $virtual_goods_model->editGoods($data);
return $this->response($res);
}
public function getCardType()
{
$virtual_goods_model = new CardGoods();
return $this->response($this->success($virtual_goods_model->getCardType()));
}
public function getServiceList()
{
$goods_service_model = new GoodsServiceModel();
$service_list = $goods_service_model->getServiceList([['site_id', '=', $this->site_id]], 'id,service_name,icon');
return $this->response($service_list);
}
public function editGetGoodsInfo()
{
$virtual_goods_model = new CardGoods();
$goods_model = new GoodsModel();
$goods_id = input("goods_id", 0);
$goods_info = $virtual_goods_model->editGetGoodsInfo(['goods_id' => $goods_id, 'site_id' => $this->site_id]);
if (empty($goods_info['data'])) $this->error('未获取到商品信息');
$goods_sku_list = $goods_model->getGoodsSkuList([['goods_id', '=', $goods_id], ['site_id', '=', $this->site_id]], "sku_id,sku_name,sku_no,sku_spec_format,price,market_price,cost_price,stock,virtual_indate,sku_image,sku_images,goods_spec_format,spec_name,stock_alarm,is_default", '')['data'];
$goods_info['data']['goods_sku_data'] = $goods_sku_list;
$store_is_exit = addon_is_exit('store', $this->site_id);
if ($store_is_exit && $goods_info['data']['sale_store'] != 'all') {
$store_list = (new StoreModel())->getStoreList([['site_id', '=', $this->site_id], ['store_id', 'in', $goods_info['data']['sale_store']]], 'store_id,store_name,status,address,full_address,is_frozen');
$goods_info['data']['store_list'] = $store_list['data'];
}
return $this->response($goods_info);
}
/**
* 选择门店
* @return mixed
*/
public function storeList()
{
$store_list = (new StoreModel())->getStoreList([['site_id', '=', $this->site_id]], 'store_id,store_name,status,address,full_address,is_frozen');
return $this->response($store_list);
}
/***
* 获取默认商品信息
* @return false|string
*/
public function defGoodsTemplate()
{
$config = new Config();
$data = $config->getTemplate($this->agent_id)['data']['value'];
return $this->response($data);
}
}