Files
liche/market/controllers/api/sylive/Goods.php
T
2023-02-02 17:12:01 +08:00

239 lines
9.2 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require_once APPPATH . 'controllers/api/BaseController.php';
/**
* Notes:私域直播_商品管理
* Created on: 2022/10/21 17:15
* Created by: dengbw
*/
class Goods extends BaseController
{
public function __construct()
{
parent::__construct();
$this->load->model('market/Market_sylive_items_model', 'mdSyliveItems');
}
/**
* Notes:商品管理列表
* Created on: 2022/9/20 14:48
* Created by: dengbw
*/
public function page_get()
{
$activityId = intval($this->input_param('activityId'));
$page = $this->input_param('page');
$limit = $this->input_param('limit');
$title = $this->input_param('title');
$sort = $this->input_param('sort');
$order = $this->input_param('order');
$type = $this->input_param('type');
!$page && $page = 1;
!$limit && $limit = 10;
$sort_order = 'sort asc,itemId desc';
if ($sort && $order) {
if ($sort == 'typeName') {
$sort_order = 'type ' . $order;
} else {
$sort_order = $sort . ' ' . $order;
}
}
$where['status>='] = 0;
$title && $where['title LIKE "%' . trim($title) . '%"'] = null;
$activityId && $where['activityId'] = $activityId;
strlen($type) && $where['type'] = $type;
$count = $this->mdSyliveItems->count($where);
$list = [];
if ($count) {
$this->load->library('MyEncryption');
$res = $this->mdSyliveItems->select($where, $sort_order, $page, $limit);
foreach ($res as $v) {
$skey = $this->myencryption->base64url_encode("a_id={$activityId}&itemId={$v['itemId']}");
$banner = [];
$dateRange = $useRange = '';
$imgs = $v['imgs'] ? json_decode($v['imgs'], true) : [];
if ($imgs['banner']) {
foreach ($imgs['banner'] as $k2 => $v2) {
$banner[] = ['uid' => $k2 + 1, 'fileUrl' => $v2, 'url' => build_qiniu_image_url($v2), 'status' => 'done'];
}
}
$timeStart = $v['timeStart'] != '0000-00-00 00:00:00' ? $v['timeStart'] : '';
$v['timeStart'] != '0000-00-00 00:00:00' && $dateRange[] = $v['timeStart'];
$v['timeEnd'] != '0000-00-00 00:00:00' && $dateRange[] = $v['timeEnd'];
$v['useStart'] != '0000-00-00 00:00:00' && $useRange[] = $v['useStart'];
$v['useEnd'] != '0000-00-00 00:00:00' && $useRange[] = $v['useEnd'];
if ($activityId >= 6) {
$url = http_host_com('home') . "/h5/market/sylive2/item/detail?skey={$skey}";//活动连接
} else {
$url = http_host_com('home') . "/h5/market/sylive/item/detail?skey={$skey}";//活动连接
}
$list[] = ['itemId' => $v['itemId'], 'activityId' => $v['activityId'], 'title' => $v['title'], 'banner' => $banner
, 'dateRange' => $dateRange, 'useRange' => $useRange, 'descrip' => $v['descrip'], 'price' => $v['price'], 'stock' => $v['stock']
, 'timeStart' => $timeStart, 'sort' => $v['sort'], 'status' => intval($v['status']), 'createTime' => $v['createTime']
, 'ifAddress' => intval($v['ifAddress']), 'type' => intval($v['type']), 'typeName' => $this->mdSyliveItems->typeAry($v['type']), 'url' => $url];
}
}
$date = ['list' => $list, 'count' => $count];
$this->return_response_list($date);
}
/**
* Notes:获取商品
* Created on: 2022/11/11 13:51
* Created by: dengbw
*/
public function items_get()
{
$activityId = intval($this->input_param('activityId'));
$type = $this->input_param('type');
$where['status>='] = 0;
$where['activityId'] = $activityId;
strlen($type) && $where['type'] = $type;
$list = $this->mdSyliveItems->select($where, 'sort asc,itemId desc', 0, 0, 'itemId,title');
$this->return_response_list($list);
}
/**
* Notes:添加商品
* Created on: 2022/10/21 16:46
* Created by: dengbw
*/
public function index_post()
{
$activityId = intval($this->input_param('activityId'));
$title = $this->input_param('title');
$banner = $this->input_param('banner');
$descrip = $this->input_param('descrip');
$price = $this->input_param('price');
$stock = $this->input_param('stock');
$sort = $this->input_param('sort');
$ifAddress = intval($this->input_param('ifAddress'));
$dateRange = $this->input_param('dateRange');
$useRange = $this->input_param('useRange');
$type = intval($this->input_param('type'));
if (!$activityId) {
$this->return_json('参数错误');
}
if (!$title) {
$this->return_json('请输入商品标题');
}
$addDate = ['activityId' => $activityId, 'title' => $title, 'price' => $price, 'stock' => $stock, 'sort' => $sort
, 'ifAddress' => $ifAddress, 'descrip' => $descrip, 'type' => $type, 'createTime' => date('Y-m-d H:i:s')];
$addDate['timeStart'] = $dateRange[0] ? $dateRange[0] : '0000-00-00 00:00:00';
$addDate['timeEnd'] = $dateRange[1] ? $dateRange[1] : '0000-00-00 00:00:00';
$addDate['useStart'] = $useRange[0] ? $useRange[0] : '0000-00-00 00:00:00';
$addDate['useEnd'] = $useRange[1] ? $useRange[1] : '0000-00-00 00:00:00';
$imgs_banner = [];
if ($banner) {
foreach ($banner as $v) {
$imgs_banner[] = $v['fileUrl'];
}
}
$imgs['banner'] = $imgs_banner ? $imgs_banner : '';
$addDate['imgs'] = json_encode($imgs, JSON_UNESCAPED_UNICODE);
$id = $this->mdSyliveItems->add($addDate);
if (!$id) {
$this->return_json('添加商品失败');
}
$this->return_response();
}
/**
* Notes:修改商品
* Created on: 2022/10/21 14:48
* Created by: dengbw
*/
public function index_put()
{
$itemId = intval($this->input_param('itemId'));
$title = $this->input_param('title');
$banner = $this->input_param('banner');
$descrip = $this->input_param('descrip');
$price = $this->input_param('price');
$stock = $this->input_param('stock');
$sort = intval($this->input_param('sort'));
$ifAddress = intval($this->input_param('ifAddress'));
$dateRange = $this->input_param('dateRange');
$useRange = $this->input_param('useRange');
$type = intval($this->input_param('type'));
if (!$itemId) {
$this->return_json('参数错误');
}
if (!$title) {
$this->return_json('请输入商品标题');
}
$re = $this->mdSyliveItems->get(['itemId' => $itemId]);
if (!$re) {
$this->return_json('商品不存在');
}
$upDate = ['title' => $title, 'price' => $price, 'stock' => $stock, 'sort' => $sort
, 'ifAddress' => $ifAddress, 'descrip' => $descrip, 'type' => $type];
$upDate['timeStart'] = $dateRange[0] ? $dateRange[0] : '0000-00-00 00:00:00';
$upDate['timeEnd'] = $dateRange[1] ? $dateRange[1] : '0000-00-00 00:00:00';
$upDate['useStart'] = $useRange[0] ? $useRange[0] : '0000-00-00 00:00:00';
$upDate['useEnd'] = $useRange[1] ? $useRange[1] : '0000-00-00 00:00:00';
$imgs = $re['imgs'] ? json_decode($re['imgs'], true) : [];
$imgs_banner = [];
if ($banner) {
foreach ($banner as $v) {
$imgs_banner[] = $v['fileUrl'];
}
}
$imgs['banner'] = $imgs_banner ? $imgs_banner : '';
$imgs && $upDate['imgs'] = json_encode($imgs, JSON_UNESCAPED_UNICODE);
$this->mdSyliveItems->update($upDate, ['itemId' => $itemId]);
$this->return_response();
}
/**
* Notes:删除商品
* Created on: 2022/10/21 16:10
* Created by: dengbw
* @param null $id
*/
public function index_delete($id = null)
{
if (!$id) {
$this->return_json('参数错误');
}
$this->mdSyliveItems->update(['status' => -1], ['itemId' => $id]);
$this->return_response();
}
/**
* Notes:批量删除商品
* Created on: 2022/10/21 17:11
* Created by: dengbw
*/
public function batch_delete()
{
$ids = $this->inputs;
if (!$ids) {
$this->return_json('参数错误');
}
$str_ids = implode(',', $ids);
if ($str_ids) {
$this->mdSyliveItems->update(['status' => -1], ["itemId in($str_ids)" => null]);
}
$this->return_response();
}
/**
* Notes:修改状态
* Created on: 2022/9/8 16:10
* Created by: dengbw
*/
public function status_put()
{
$itemId = intval($this->input_param('itemId'));
$status = $this->input_param('status');
if (!$itemId) {
$this->return_json('参数错误');
}
$this->mdSyliveItems->update(['status' => $status], ['itemId' => $itemId]);
$this->return_response();
}
}