init: import production code mss.nahaichuan.com (exclude Runtime/Uploads/backups/logs)
这个提交包含在:
@@ -0,0 +1,782 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* 收银端-商品满赠
|
||||
* @author nianyi
|
||||
* @create_time 2020年05月22日
|
||||
*/
|
||||
|
||||
namespace Retail\Controller;
|
||||
|
||||
use Common\Model\ImageGalleryModel;
|
||||
use Common\Model\RetailGoodsModel;
|
||||
use Common\Model\SkuGoodsViewModel;
|
||||
use Common\Model\RetailGoodsGiftsModel;
|
||||
use Common\Model\RetailGoodsGiftsActivityModel;
|
||||
use Think\Controller;
|
||||
|
||||
//[1.8.53]
|
||||
class GoodsGiftsController extends BaseController
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$this->display();
|
||||
}
|
||||
|
||||
// 获取可选选择商品--赠品
|
||||
public function adminCanChooseBySku()
|
||||
{
|
||||
$user = session("ls_userinfo");
|
||||
$store_id = session("storeid");
|
||||
$merchant_id = $user['merchantid'];
|
||||
$content = I("post.");
|
||||
$page = $content['page'] ? $content['page'] : 1;
|
||||
$limit = $content['pageSize'] ? $content['pageSize'] : 10;
|
||||
$goods_number = $content['keyword'];
|
||||
|
||||
if (!empty($goods_number)) {
|
||||
$where['goods_name'] = array('like', "%" . $goods_number . "%");
|
||||
}
|
||||
|
||||
$where['merchant_id'] = $merchant_id;
|
||||
$where['store_id'] = $store_id;
|
||||
$where['status'] = 0;
|
||||
$where['serial_number_state'] = ['neq',1];
|
||||
|
||||
$fields = [
|
||||
'id as sale_goods_id',
|
||||
'goods_id',
|
||||
'goods_name',
|
||||
'sku_id',
|
||||
'sku_name',
|
||||
'goods_num',
|
||||
'cost_price',
|
||||
];
|
||||
|
||||
$RetailGoodsModel = new RetailGoodsModel();
|
||||
$RetailSkuGoods = new SkuGoodsViewModel();
|
||||
$RetailGoodsGiftsModel = new RetailGoodsGiftsModel();
|
||||
$ImageGalleryModel = new ImageGalleryModel();
|
||||
|
||||
$goodsList = D('SSaleMGoods')->getSelect($where, $page, $limit, $fields, "goods_num asc");
|
||||
if ($goodsList) {
|
||||
$count = D('SSaleMGoods')->getCount($where);
|
||||
foreach ($goodsList as $key => &$val) {
|
||||
$val['index'] = $key + 1;
|
||||
$val['goods_num'] = round($val['goods_num'], 3);
|
||||
$val['cost_price'] = round($val['cost_price'], 2);
|
||||
$val['sku_num'] = round($val['sku_num'], 3);
|
||||
if ($val['attribute_state'] == 2) {
|
||||
$val['specifications'] = $val['sku_name'];
|
||||
$val['goods_number'] = $val['sku_goods_number'];
|
||||
$val['goods_code'] = $val['sku_code'];
|
||||
}
|
||||
|
||||
// 零售价格处理
|
||||
$val['retail_price'] = $RetailGoodsGiftsModel->getRetailPriceBySku($val['goods_id'], $val['sku_id']);
|
||||
|
||||
// 商品图片处理
|
||||
$goods_img_id = $RetailGoodsModel->getFind(['id' => $val['goods_id']], 'goods_img_id');
|
||||
$val['goods_img_id'] = $goods_img_id['goods_img_id'];
|
||||
if ($goods_img_id) {
|
||||
$val['goods_img'] = $ImageGalleryModel->getImagePath($val['goods_img_id']);
|
||||
} else {
|
||||
$val['goods_img'] = '';
|
||||
}
|
||||
$val['choose_status'] = 0; // 前端需要
|
||||
}
|
||||
} else {
|
||||
$goodsList = array();
|
||||
$count = 0;
|
||||
}
|
||||
$res['status'] = 1;
|
||||
$res['msg'] = '';
|
||||
$res['total'] = $count;
|
||||
$res['data'] = $goodsList;
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
// 获取促销赠送主商品
|
||||
public function goodsGiftsActivityMain()
|
||||
{
|
||||
$param = array(
|
||||
'store_id' => $this->store_id,
|
||||
'identity' => I('session.identity'), //寄售类型
|
||||
'page' => I('post.page') ? I('post.page') : 1, //页
|
||||
'limit' => I('post.pageSize') ? I('post.pageSize') : 10, //每页数量
|
||||
'need_img' => true, //是否需要图片
|
||||
'need_goods_num' => true, //是否需要库存
|
||||
'need_count' => true, //是否需要总数量
|
||||
'attribute_state' => I('post.attribute_state'), //规格 1无规格 2规格
|
||||
'keyword' => I('post.keyword'), //搜索关键词
|
||||
'keyword_type' => I('post.keyword_type'), //关键词搜索类型 1货号 2条码 3名称
|
||||
'order_type' => I('post.order_type'), //排序规则
|
||||
'condition_name' => I('post.condition_name'), //排序规则关键词
|
||||
'pricing_method' => I('post.pricing_method'),
|
||||
'online_state' => I('post.online_state'),
|
||||
'recovery_type' => I('post.recovery_type'), //2回收站
|
||||
'advance_sale_status' => I('post.advance_sale_status'),
|
||||
// 按照商品类别搜索
|
||||
'person1' => I('post.person1'),
|
||||
'person2' => I('post.person2'),
|
||||
'person3' => I('post.person3'),
|
||||
);
|
||||
$SkuGoodsViewModel = new SkuGoodsViewModel();
|
||||
$ret = $SkuGoodsViewModel->getGoodsListActivity($param);
|
||||
$this->ajaxReturn($ret);
|
||||
}
|
||||
|
||||
// 获取商品规格
|
||||
//获取商品规格信息--活动用,精简信息
|
||||
public function getGoodsSkuAttrActivity()
|
||||
{
|
||||
$user = session('ls_userinfo');
|
||||
$id = I('post.id');
|
||||
if (empty($user) || empty($id)) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = "登录超时";
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
$RetailGoodsGiftsModel = new RetailGoodsGiftsModel();
|
||||
$skuList = M('retail_sku_goods')->field('id, sku_id_list, retail_price, goods_img, goods_id')->where(array('goods_id' => $id, 'state' => 0))->select();
|
||||
if (!empty($skuList)) {
|
||||
foreach ($skuList as &$value) {
|
||||
$id = explode(',', $value['sku_id_list']);
|
||||
foreach ($id as &$v) {
|
||||
$v = intval($v);
|
||||
$value['name'][] = M('retail_sku_list')->where(array('id' => $v))->getField('name');
|
||||
$value['retail_price'] = $RetailGoodsGiftsModel->getRetailPriceBySku($value['goods_id'], $v);
|
||||
}
|
||||
$value['id'] = $id;
|
||||
$value['sku_checked'] = false;
|
||||
unset($value['sku_id_list']);
|
||||
}
|
||||
}
|
||||
$data['list'] = $skuList;
|
||||
$this->ajaxReturn(array('data' => $data));
|
||||
}
|
||||
|
||||
/* ******************************** 后台收银员赠送START ******************************** */
|
||||
// 后台赠品列表
|
||||
public function getGoodsGiftBack()
|
||||
{
|
||||
$page = I('post.page') ? I('post.page') : 1;
|
||||
$pageSize = I('post.pageSize') ? I('post.pageSize') : 10;
|
||||
|
||||
$start_time = I('post.start_time'); // 开始时间
|
||||
$end_time = I('post.end_time'); // 结束时间
|
||||
|
||||
$status = I('post.status'); // 状态:0=关闭,1=开启
|
||||
|
||||
$search = I('post.search'); // 搜索条件
|
||||
|
||||
if ($status) {
|
||||
$where['rgg.status'] = $status;
|
||||
}
|
||||
if ($status === 0 || $status === '0') {
|
||||
$where['rgg.status'] = $status;
|
||||
}
|
||||
|
||||
if ($search) {
|
||||
$where['rg.goods_name|rg.goods_number|rg.goods_code'] = ['like', "%{$search}%"];
|
||||
}
|
||||
|
||||
if ($start_time && $end_time) {
|
||||
$where['rgg.created_at'] = ['between', [$start_time, $end_time]];
|
||||
}
|
||||
|
||||
$store_id = $this->store_id;
|
||||
$where['rgg.store_id'] = $store_id;
|
||||
$where['rgg.is_del'] = 1;
|
||||
$where['rg.status'] = ['in','0,1'];
|
||||
|
||||
$field = [
|
||||
'rg.goods_img_id',
|
||||
'rssg.goods_name',
|
||||
'rssg.specifications',
|
||||
'rssg.goods_num',
|
||||
'rssg.sku_num',
|
||||
'rssg.sku_name',
|
||||
'rgg.id as gifts_id',
|
||||
'rgg.remain_inventory',
|
||||
'rgg.status',
|
||||
'rgg.created_at',
|
||||
'rgg.sku_id',
|
||||
'rgg.goods_id',
|
||||
];
|
||||
|
||||
$RetailGoodsGiftsModel = new RetailGoodsGiftsModel();
|
||||
$ImageGalleryModel = new ImageGalleryModel();
|
||||
$result = $RetailGoodsGiftsModel->getGoodsGiftsList($where, $field, $page, $pageSize, 'id desc');
|
||||
if ($result['list']) {
|
||||
foreach ($result['list'] as &$value) {
|
||||
if ($value['sku_id']) {
|
||||
$value['retail_price'] = $RetailGoodsGiftsModel->getRetailPriceBySku($value['goods_id'], $value['sku_id']);
|
||||
}
|
||||
|
||||
$value['goods_img'] = $ImageGalleryModel->getImagePath($value['goods_img_id']);
|
||||
$value['checked'] = false;
|
||||
unset($value['goods_img_id']);
|
||||
}
|
||||
$res['status'] = 1;
|
||||
$res['msg'] = '数据获取成功!';
|
||||
$res['data'] = $result;
|
||||
} else {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '暂无更多商品信息!';
|
||||
}
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
// 后台选择赠品
|
||||
// [{"sale_goods_id":4496,"goods_id":1,"sku_id":1,"remain_inventory":100}]
|
||||
public function chooseGoodsJoinGifts()
|
||||
{
|
||||
$gifts_json = I('post.gifts_json'); // 选择的赠品
|
||||
if (empty($gifts_json)) {
|
||||
$result['status'] = 0;
|
||||
$result['msg'] = '缺少商品信息';
|
||||
$this->ajaxReturn($result);
|
||||
}
|
||||
try {
|
||||
$giftsList = json_decode($gifts_json, true);
|
||||
} catch (Exception $e) {
|
||||
echo $e->getMessage();
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!is_array($giftsList)) {
|
||||
$result['status'] = 0;
|
||||
$result['msg'] = '商品信息有误';
|
||||
$this->ajaxReturn($result);
|
||||
}
|
||||
|
||||
$store_id = $this->store_id;
|
||||
if (!$store_id) {
|
||||
$result['status'] = 0;
|
||||
$result['msg'] = '重要信息缺失!';
|
||||
$this->ajaxReturn($result);
|
||||
}
|
||||
// 赠品表记录
|
||||
$RetailGoodsGiftsModel = new RetailGoodsGiftsModel();
|
||||
$num = 0;
|
||||
foreach ($giftsList as &$value) {
|
||||
if ($value['remain_inventory'] < 0) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '请填写正确的赠品数量!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
if (empty($value['remain_inventory'])) {
|
||||
$value['remain_inventory'] = 0;
|
||||
}
|
||||
|
||||
// 检验赠品库存
|
||||
$saleGoodsNum = $this->getGoodsSaleNum($value['sale_goods_id']);
|
||||
if ($value['remain_inventory'] > $saleGoodsNum) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '商品库存不足!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
// 检验赠品是否已经存在
|
||||
$is_gifts = $RetailGoodsGiftsModel->getOrderFind(['sale_goods_id' => $value['sale_goods_id'], 'is_del' => 1, 'store_id' => $store_id]);
|
||||
if ($is_gifts) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '赠品已存在,请勿重复添加!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
$value['created_at'] = date('Y-m-d H:i:s', time());
|
||||
$value['store_id'] = $store_id;
|
||||
$gifts_id = $RetailGoodsGiftsModel->addOrder($value);
|
||||
if ($gifts_id) {
|
||||
//商品库存减少
|
||||
A('Api/Inventory')->Inventory(2, $value['remain_inventory'], $value['goods_id'], $value['sku_id']);
|
||||
$num++;
|
||||
}
|
||||
}
|
||||
|
||||
if ($num == count($giftsList)) {
|
||||
$result['status'] = 1;
|
||||
$result['msg'] = '赠品记录入库成功!';
|
||||
} else {
|
||||
$result['status'] = 0;
|
||||
$result['msg'] = '赠品记录入库失败!';
|
||||
}
|
||||
$this->ajaxReturn($result);
|
||||
}
|
||||
|
||||
// 更改赠品属性 状态:0=关闭,1=开启
|
||||
public function updateGiftsStatus()
|
||||
{
|
||||
$id = I('post.gifts_id');
|
||||
if (!$id) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '必要参数缺失!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
$where['id'] = $id;
|
||||
|
||||
$field = [
|
||||
'status',
|
||||
'remain_inventory'
|
||||
];
|
||||
$RetailGoodsGiftsModel = new RetailGoodsGiftsModel();
|
||||
$evaluate_info = $RetailGoodsGiftsModel->getOrderFind($where, $field);
|
||||
if (!$evaluate_info) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '赠品数据有误!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
if ($evaluate_info['status'] == 1) {
|
||||
$result = $RetailGoodsGiftsModel->updateOrder(['id' => $id], ['status' => 0, 'updated_at' => date('Y-m-d H:i:s', time())]);
|
||||
} else {
|
||||
// 判断库存
|
||||
if ($evaluate_info['remain_inventory'] < 1) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '赠品库存不足,无法开启!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
$result = $RetailGoodsGiftsModel->updateOrder(['id' => $id], ['status' => 1, 'updated_at' => date('Y-m-d H:i:s', time())]);
|
||||
}
|
||||
|
||||
if ($result) {
|
||||
$res['status'] = 1;
|
||||
$res['msg'] = '操作成功';
|
||||
} else {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '操作失败,请稍后!';
|
||||
}
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
// 更改赠品库存
|
||||
public function updateGiftsInventory()
|
||||
{
|
||||
$id = I('post.gifts_id');
|
||||
$type = I('post.type');
|
||||
$remain_inventory = I('post.remain_inventory');
|
||||
if (!$id) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '必要参数缺失!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
if (!$remain_inventory) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '必要参数缺失!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
$where['id'] = $id;
|
||||
$RetailGoodsGiftsModel = new RetailGoodsGiftsModel();
|
||||
$giftsInfo = $RetailGoodsGiftsModel->getOrderFind($where);
|
||||
if (!$giftsInfo) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '赠品数据有误!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
// 库存验证
|
||||
$saleGoodsNum = $this->getGoodsSaleNum($giftsInfo['sale_goods_id']);
|
||||
if ($remain_inventory > $saleGoodsNum) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '商品库存不足!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
if ($type == 1) {
|
||||
$fact = $giftsInfo['remain_inventory'] + $remain_inventory;
|
||||
} else {
|
||||
$fact = $giftsInfo['remain_inventory'] - $remain_inventory;
|
||||
}
|
||||
|
||||
$update = [
|
||||
'remain_inventory' => $fact,
|
||||
'updated_at' => date('Y-m-d H:i:s', time())
|
||||
];
|
||||
|
||||
$result = $RetailGoodsGiftsModel->updateOrder(['id' => $id], $update);
|
||||
|
||||
if ($result) {
|
||||
if ($remain_inventory > 0) {
|
||||
if ($type == 1) {
|
||||
//增品库存增加商品库存减少
|
||||
A('Api/Inventory')->Inventory(2, $remain_inventory, $giftsInfo['goods_id'], $giftsInfo['sku_id']);
|
||||
} else {
|
||||
// 增品库存减少商品库存增加
|
||||
A('Api/Inventory')->Inventory(1, $remain_inventory, $giftsInfo['goods_id'], $giftsInfo['sku_id']);
|
||||
}
|
||||
}
|
||||
$res['status'] = 1;
|
||||
$res['msg'] = '数据更新成功';
|
||||
} else {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '操作失败,请稍后!';
|
||||
}
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
// 后台删除赠品
|
||||
public function deleteGiftsRecord()
|
||||
{
|
||||
$id = I('post.gifts_id');
|
||||
if (!$id) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '必要参数缺失!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
$where['id'] = $id;
|
||||
$RetailGoodsGiftsModel = new RetailGoodsGiftsModel();
|
||||
$evaluate_info = $RetailGoodsGiftsModel->getOrderFind($where);
|
||||
if (!$evaluate_info) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '赠品数据有误!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
$result = $RetailGoodsGiftsModel->updateOrder(['id' => $id], ['is_del' => 0, 'deleted_at' => date('Y-m-d H:i:s', time())]);
|
||||
|
||||
if ($result) {
|
||||
if ($evaluate_info['remain_inventory'] > 0) {
|
||||
A('Api/Inventory')->Inventory(1, $evaluate_info['remain_inventory'], $evaluate_info['goods_id'], $evaluate_info['sku_id']);
|
||||
}
|
||||
$res['status'] = 1;
|
||||
$res['msg'] = '删除成功';
|
||||
} else {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '操作失败,请稍后!';
|
||||
}
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
|
||||
/* ******************************** 后台促销赠送START ******************************** */
|
||||
/**
|
||||
* 促销赠送活动列表
|
||||
* */
|
||||
public function getGoodsGiftActivityBack()
|
||||
{
|
||||
$page = I('post.page') ? I('post.page') : 1;
|
||||
$pageSize = I('post.pageSize') ? I('post.pageSize') : 10;
|
||||
|
||||
$goods_name = I('post.goods_name'); //
|
||||
|
||||
$start_time = I('post.start_time'); // 开始时间
|
||||
$end_time = I('post.end_time'); // 结束时间
|
||||
|
||||
$sales_start_time = I('post.sales_start_time'); // 促销开始时间
|
||||
$sales_end_time = I('post.sales_end_time'); // 促销结束时间
|
||||
|
||||
$status = I('post.status'); // 状态:0=关闭,1=开启
|
||||
|
||||
if ($status) {
|
||||
$where['rgga.status'] = $status;
|
||||
}
|
||||
|
||||
if ($goods_name) {
|
||||
$where['rgga.goods_name'] = ['like', "%{$goods_name}%"];
|
||||
}
|
||||
|
||||
if ($start_time && $end_time) {
|
||||
$start_time = strtotime($start_time);
|
||||
$end_time = strtotime($end_time);
|
||||
$where['rgga.created_at'] = ['between', [$start_time, $end_time]];
|
||||
}
|
||||
|
||||
if ($sales_start_time && $sales_end_time) {
|
||||
$sales_start_time = strtotime($sales_start_time);
|
||||
$sales_end_time = strtotime($sales_end_time);
|
||||
$map['_complex'] = array(
|
||||
array(
|
||||
'rgga.start_time' => array('elt', $sales_start_time),
|
||||
'rgga.end_time' => array('egt', $sales_end_time),
|
||||
),
|
||||
array(
|
||||
'_complex' => array(
|
||||
array(
|
||||
'_string' => "rgga.start_time >={$sales_start_time} AND rgga.start_time <={$sales_end_time}",
|
||||
),
|
||||
array(
|
||||
'_string' => "rgga.end_time >={$sales_start_time} AND rgga.end_time <={$sales_end_time}",
|
||||
),
|
||||
'_logic' => 'or'
|
||||
),
|
||||
),
|
||||
array(
|
||||
'rgga.start_time' => array('egt', $sales_start_time),
|
||||
'rgga.end_time' => array('elt', $sales_end_time),
|
||||
),
|
||||
'_logic' => 'or'
|
||||
);
|
||||
}
|
||||
|
||||
$store_id = $this->store_id;
|
||||
$where['rgga.store_id'] = $store_id;
|
||||
$where['rgga.is_del'] = 1;
|
||||
|
||||
$field = [
|
||||
'rgga.id as activity_id',
|
||||
'rgga.goods_json',
|
||||
'rgga.sku_info',
|
||||
'rgga.created_at',
|
||||
'rgga.start_time',
|
||||
'rgga.end_time',
|
||||
'rgga.status',
|
||||
];
|
||||
|
||||
$RetailGoodsGiftsActivityModel = new RetailGoodsGiftsActivityModel();
|
||||
$result = $RetailGoodsGiftsActivityModel->getGoodsGiftsActivityList($where, $field, $page, $pageSize, 'id desc');
|
||||
if ($result['list']) {
|
||||
foreach ($result['list'] as &$value) {
|
||||
$goodsList = json_decode($value['goods_json'], true);
|
||||
$value['goods_name'] = $goodsList[0]['goods_name'];
|
||||
|
||||
$skuList = json_decode($value['sku_info'], true);
|
||||
if ($skuList[0]['id']) {
|
||||
$sku = [];
|
||||
foreach ($skuList as &$v) {
|
||||
$sku[] = $v['name'][0];
|
||||
}
|
||||
$value['sku_name'] = implode(',', $sku);
|
||||
}
|
||||
|
||||
unset($value['goods_json']);
|
||||
unset($value['sku_info']);
|
||||
unset($goodsList);
|
||||
}
|
||||
$res['status'] = 1;
|
||||
$res['msg'] = '数据获取成功!';
|
||||
$res['data'] = $result;
|
||||
} else {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '暂无更多商品信息!';
|
||||
}
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
/**
|
||||
* 促销赠送活动发布
|
||||
* goods_json [{"goods_id":1,"sku_id":1}]
|
||||
* gifts_json [{"id":1,"gifts_num":1}]
|
||||
**/
|
||||
public function releaseGoodsGiftsActivity()
|
||||
{
|
||||
$data['goods_json'] = I('post.goods_json'); // 主商品信息
|
||||
$data['goods_gifts_json'] = I('post.gifts_json'); // 赠品信息
|
||||
$data['goods_num_min'] = I('post.goods_num_min'); // 赠品门槛
|
||||
$data['time_limit'] = I('post.time_limit'); // 时间限制 1=有限制
|
||||
$data['start_time'] = I('post.start_time') ? I('post.start_time') : null; // 开始时间
|
||||
$data['end_time'] = I('post.end_time') ? I('post.end_time') : null; // 结束时间
|
||||
|
||||
$data['online_promotion'] = I('post.online_promotion'); // 线上促销
|
||||
$data['online_buy_limit'] = I('post.online_buy_limit'); // 线上购买限制
|
||||
$data['offline_promotion'] = I('post.offline_promotion'); // 线下促销
|
||||
$data['offline_buy_limit'] = I('post.offline_buy_limit'); // 线上购买限制
|
||||
|
||||
$store_id = $this->store_id;
|
||||
$data['store_id'] = $store_id;
|
||||
|
||||
$goodsList = $this->goodsJsonVerify($data['goods_json']);
|
||||
$giftsList = $this->goodsJsonVerify($data['goods_gifts_json']);
|
||||
|
||||
// 商品数据处理
|
||||
$data['goods_id'] = $goodsList[0]['id'];
|
||||
|
||||
$sku = [];
|
||||
foreach ($goodsList[0]['specifications'] as &$value) {
|
||||
$sku[] = $value['id'][0];
|
||||
unset($value['goods_id']);
|
||||
unset($value['sku_checked']);
|
||||
}
|
||||
$data['sku_ids'] = implode(',', $sku);
|
||||
|
||||
if ($goodsList[0]['specifications'][0]['id']) {
|
||||
$data['sku_info'] = json_encode($goodsList[0]['specifications']);
|
||||
}
|
||||
|
||||
if ($data['time_limit'] == 1) {
|
||||
if (empty($data['start_time']) || empty($data['end_time'])) {
|
||||
$result['status'] = 0;
|
||||
$result['msg'] = '活动时间错误!';
|
||||
$this->ajaxReturn($result);
|
||||
}
|
||||
}
|
||||
|
||||
// 赠品数据判断
|
||||
foreach ($giftsList as &$value) {
|
||||
}
|
||||
|
||||
// 主商品是否已经参加活动
|
||||
$where['goods_id'] = $data['goods_id'];
|
||||
$where['is_del'] = 1;
|
||||
$where['store_id'] = $store_id;
|
||||
$RetailGoodsGiftsActivityModel = new RetailGoodsGiftsActivityModel();
|
||||
$activity_info = $RetailGoodsGiftsActivityModel->getOrderFind($where);
|
||||
if ($activity_info) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '该商品已有促销活动,请勿重新添加!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
$data['created_at'] = date('Y-m-d H:i:s', time());
|
||||
$activity_id = $RetailGoodsGiftsActivityModel->addOrder($data);
|
||||
|
||||
if ($activity_id) {
|
||||
$result['status'] = 1;
|
||||
$result['msg'] = '满赠促销活动添加成功!';
|
||||
} else {
|
||||
$result['status'] = 0;
|
||||
$result['msg'] = '满赠促销活动添加失败!';
|
||||
}
|
||||
$this->ajaxReturn($result);
|
||||
}
|
||||
|
||||
// 促销赠送活动详情
|
||||
public function goodsGiftsActivityDetails()
|
||||
{
|
||||
$id = I('post.activity_id');
|
||||
if (!$id) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '必要参数缺失!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
$where['id'] = $id;
|
||||
$field = [
|
||||
'id as activity_id',
|
||||
'goods_json',
|
||||
'sku_info',
|
||||
'goods_gifts_json',
|
||||
'created_at',
|
||||
'start_time',
|
||||
'end_time',
|
||||
'status',
|
||||
'goods_num_min',
|
||||
'online_promotion',
|
||||
'online_buy_limit',
|
||||
'offline_promotion',
|
||||
'offline_buy_limit',
|
||||
];
|
||||
|
||||
$RetailGoodsGiftsActivityModel = new RetailGoodsGiftsActivityModel();
|
||||
// $activity_info = $RetailGoodsGiftsActivityModel->goodsGiftsActivityDetails($where, $field);
|
||||
$activity_info = $RetailGoodsGiftsActivityModel->getFind($where, $field);
|
||||
if ($activity_info) {
|
||||
|
||||
if ($activity_info['goods_json']) {
|
||||
$activity_info['goods_info'] = json_decode($activity_info['goods_json'], true);
|
||||
unset($activity_info['goods_json']);
|
||||
unset($activity_info['goods_info'][0]['specifications']);
|
||||
}
|
||||
$activity_info['sku_info'] = json_decode($activity_info['sku_info'], true);
|
||||
$activity_info['goods_gifts_info'] = json_decode($activity_info['goods_gifts_json'], true);
|
||||
unset($activity_info['goods_gifts_json']);
|
||||
$res['status'] = 1;
|
||||
$res['msg'] = '操作成功';
|
||||
$res['data'] = $activity_info;
|
||||
} else {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '操作失败,请稍后!';
|
||||
}
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
// 促销活动状态修改
|
||||
public function updateGiftsActivityStatus()
|
||||
{
|
||||
$id = I('post.activity_id');
|
||||
if (!$id) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '必要参数缺失!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
$where['id'] = $id;
|
||||
$RetailGoodsGiftsActivityModel = new RetailGoodsGiftsActivityModel();
|
||||
$evaluate_info = $RetailGoodsGiftsActivityModel->getOrderFind($where);
|
||||
if (!$evaluate_info) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '赠品数据有误!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
if ($evaluate_info['status'] == 1) {
|
||||
$result = $RetailGoodsGiftsActivityModel->updateOrder(['id' => $id], ['status' => 0, 'updated_at' => date('Y-m-d H:i:s', time())]);
|
||||
} else {
|
||||
$result = $RetailGoodsGiftsActivityModel->updateOrder(['id' => $id], ['status' => 1, 'updated_at' => date('Y-m-d H:i:s', time())]);
|
||||
}
|
||||
|
||||
if ($result) {
|
||||
$res['status'] = 1;
|
||||
$res['msg'] = '操作成功';
|
||||
} else {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '操作失败,请稍后!';
|
||||
}
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
// 删除促销活动
|
||||
public function deleteGiftsActivityRecord()
|
||||
{
|
||||
$id = I('post.activity_id');
|
||||
if (!$id) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '必要参数缺失!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
$where['id'] = $id;
|
||||
$RetailGoodsGiftsActivityModel = new RetailGoodsGiftsActivityModel();
|
||||
$evaluate_info = $RetailGoodsGiftsActivityModel->getOrderFind($where);
|
||||
if (!$evaluate_info) {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '赠品数据有误!';
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
$result = $RetailGoodsGiftsActivityModel->updateOrder(['id' => $id], ['is_del' => 0, 'deleted_at' => date('Y-m-d H:i:s', time())]);
|
||||
|
||||
if ($result) {
|
||||
$res['status'] = 1;
|
||||
$res['msg'] = '删除成功';
|
||||
} else {
|
||||
$res['status'] = 0;
|
||||
$res['msg'] = '操作失败,请稍后!';
|
||||
}
|
||||
$this->ajaxReturn($res);
|
||||
}
|
||||
|
||||
/* ******************************** 后台促销赠送START ******************************** */
|
||||
// 商品数据验证
|
||||
private function goodsJsonVerify($data_json)
|
||||
{
|
||||
if (empty($data_json)) {
|
||||
$result['status'] = 0;
|
||||
$result['msg'] = '缺少商品信息';
|
||||
$this->ajaxReturn($result);
|
||||
}
|
||||
try {
|
||||
$dataList = json_decode($data_json, true);
|
||||
} catch (Exception $e) {
|
||||
echo $e->getMessage();
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!is_array($dataList)) {
|
||||
$result['status'] = 0;
|
||||
$result['msg'] = '商品信息有误';
|
||||
$this->ajaxReturn($result);
|
||||
}
|
||||
return $dataList;
|
||||
}
|
||||
|
||||
// 获取商品库存
|
||||
private function getGoodsSaleNum($sale_goods_id)
|
||||
{
|
||||
$goods_num = D('SSaleMGoods')->getFind(['id' => $sale_goods_id], 'goods_num');
|
||||
if ($goods_num) {
|
||||
return $goods_num['goods_num'];
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户