This commit is contained in:
parent
9a771acc77
commit
8b5672a203
|
|
@ -0,0 +1,16 @@
|
|||
[app]
|
||||
app_debug = true;
|
||||
app_trace = false;
|
||||
|
||||
[database]
|
||||
hostname = like-mysql
|
||||
database = test_likeshop
|
||||
username = root
|
||||
password = roixxx2008fffot
|
||||
hostport = 3306
|
||||
|
||||
|
||||
|
||||
[project]
|
||||
env_name =
|
||||
file_domain = www.likeshopv2.localhost
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
/config/install.lock
|
||||
/public/uploads/*
|
||||
!/public/uploads/index.html
|
||||
/runtime/*
|
||||
!/runtime/index.html
|
||||
/.env
|
||||
/public/upgrade/*
|
||||
!/public/upgrade/version.json
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine on
|
||||
RewriteBase /
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
|
||||
</IfModule>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
sudo: false
|
||||
|
||||
language: php
|
||||
|
||||
branches:
|
||||
only:
|
||||
- stable
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.composer/cache
|
||||
|
||||
before_install:
|
||||
- composer self-update
|
||||
|
||||
install:
|
||||
- composer install --no-dev --no-interaction --ignore-platform-reqs
|
||||
- zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Core.zip .
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-image:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-migration:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-captcha:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-mongo:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-worker:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-helper:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-queue:^1.0"
|
||||
- composer require --update-no-dev --no-interaction "topthink/think-angular:^1.0"
|
||||
- composer require --dev --update-no-dev --no-interaction "topthink/think-testing:^1.0"
|
||||
- zip -r --exclude='*.git*' --exclude='*.zip' --exclude='*.travis.yml' ThinkPHP_Full.zip .
|
||||
|
||||
script:
|
||||
- php think unit
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
api_key:
|
||||
secure: TSF6bnl2JYN72UQOORAJYL+CqIryP2gHVKt6grfveQ7d9rleAEoxlq6PWxbvTI4jZ5nrPpUcBUpWIJHNgVcs+bzLFtyh5THaLqm39uCgBbrW7M8rI26L8sBh/6nsdtGgdeQrO/cLu31QoTzbwuz1WfAVoCdCkOSZeXyT/CclH99qV6RYyQYqaD2wpRjrhA5O4fSsEkiPVuk0GaOogFlrQHx+C+lHnf6pa1KxEoN1A0UxxVfGX6K4y5g4WQDO5zT4bLeubkWOXK0G51XSvACDOZVIyLdjApaOFTwamPcD3S1tfvuxRWWvsCD5ljFvb2kSmx5BIBNwN80MzuBmrGIC27XLGOxyMerwKxB6DskNUO9PflKHDPI61DRq0FTy1fv70SFMSiAtUv9aJRT41NQh9iJJ0vC8dl+xcxrWIjU1GG6+l/ZcRqVx9V1VuGQsLKndGhja7SQ+X1slHl76fRq223sMOql7MFCd0vvvxVQ2V39CcFKao/LB1aPH3VhODDEyxwx6aXoTznvC/QPepgWsHOWQzKj9ftsgDbsNiyFlXL4cu8DWUty6rQy8zT2b4O8b1xjcwSUCsy+auEjBamzQkMJFNlZAIUrukL/NbUhQU37TAbwsFyz7X0E/u/VMle/nBCNAzgkMwAUjiHM6FqrKKBRWFbPrSIixjfjkCnrMEPw=
|
||||
file:
|
||||
- ThinkPHP_Core.zip
|
||||
- ThinkPHP_Full.zip
|
||||
skip_cleanup: true
|
||||
on:
|
||||
tags: true
|
||||
|
|
@ -74,6 +74,8 @@ class ShopSetting extends AdminBase
|
|||
'service' => ConfigServer::get('policy', 'service'),
|
||||
'privacy' => ConfigServer::get('policy', 'privacy'),
|
||||
'after_sale' => ConfigServer::get('policy', 'after_sale'),
|
||||
'payment' => ConfigServer::get('policy', 'payment'),
|
||||
'reason' => ConfigServer::get('policy', 'reason'),
|
||||
|
||||
];
|
||||
$this->assign('config', $config);
|
||||
|
|
@ -87,6 +89,8 @@ class ShopSetting extends AdminBase
|
|||
ConfigServer::set('policy', 'service', $post['service']);
|
||||
ConfigServer::set('policy', 'privacy', $post['privacy']);
|
||||
ConfigServer::set('policy', 'after_sale', $post['after_sale']);
|
||||
ConfigServer::set('policy', 'payment', $post['payment']);
|
||||
ConfigServer::set('policy', 'reason', $post['reason']);
|
||||
$this->_success('修改成功');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,99 @@
|
|||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 宏驰云科技开发团队 版权所有 拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
// | Author: HcyShop-kiki
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\admin\logic\{
|
||||
StoreLogic
|
||||
};
|
||||
|
||||
class Store extends AdminBase
|
||||
{
|
||||
/**
|
||||
* 门店列表
|
||||
* @return mixed
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
if ($this->request->isAjax()) {
|
||||
$get = $this->request->get();
|
||||
$this->_success('', StoreLogic::lists($get));
|
||||
}
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加文章
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
if ($this->request->isAjax()) {
|
||||
$post = $this->request->post();
|
||||
$post['del'] = 0;
|
||||
$result = $this->validate($post, 'app\admin\validate\Store.add');
|
||||
if ($result === true) {
|
||||
StoreLogic::addStore($post);
|
||||
$this->_success('添加成功!');
|
||||
}
|
||||
$this->_error($result);
|
||||
|
||||
}
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑文章
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
if ($this->request->isAjax()) {
|
||||
|
||||
$post = $this->request->post();
|
||||
$post['del'] = 0;
|
||||
$result = $this->validate($post, 'app\admin\validate\Store.edit');
|
||||
|
||||
if ($result === true) {
|
||||
StoreLogic::editStore($post);
|
||||
$this->_success('编辑成功!');
|
||||
}
|
||||
$this->_error($result);
|
||||
|
||||
}
|
||||
$article = StoreLogic::getStore($id);
|
||||
$this->assign('article', $article);
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文章
|
||||
*/
|
||||
public function del($id)
|
||||
{
|
||||
if ($this->request->isAjax()) {
|
||||
$result = $this->validate(['id' => $id], 'app\admin\validate\Store.del');
|
||||
if ($result === true) {
|
||||
StoreLogic::delStore($id);
|
||||
$this->_success('删除成功');
|
||||
}
|
||||
$this->_error($result);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改状态
|
||||
*/
|
||||
public function switchStatus()
|
||||
{
|
||||
$post = $this->request->post();
|
||||
StoreLogic::switchStatus($post);
|
||||
$this->_success('修改成功');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 宏驰云科技开发团队 版权所有 拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
// | Author: HcyShop-kiki
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\admin\logic;
|
||||
|
||||
use app\admin\model\Store;
|
||||
use app\common\server\UrlServer;
|
||||
use think\Db;
|
||||
|
||||
class StoreLogic
|
||||
{
|
||||
|
||||
public static function lists($get)
|
||||
{
|
||||
$store = Db::name('store');
|
||||
|
||||
$where = [];
|
||||
$where[] = ['del', '=', '0'];
|
||||
|
||||
if (isset($get['title']) && $get['title']) {
|
||||
$where[] = ['title|address|image|business', 'like', '%' . $get['title'] . '%'];
|
||||
}
|
||||
$count = $store->where($where)->count();
|
||||
$list = $store->where($where)->page($get['page'], $get['limit'])->order('id desc')->select();
|
||||
foreach ($list as &$item) {
|
||||
$item['image'] = UrlServer::getFileUrl($item['image']);
|
||||
$item['create_time'] = date('Y-m-d H:i:s', $item['create_time']);
|
||||
if ($item['is_show'] == 1) {
|
||||
$item['is_show_text'] = '显示';
|
||||
} else {
|
||||
$item['is_show_text'] = '隐藏';
|
||||
}
|
||||
}
|
||||
return ['count' => $count, 'lists' => $list];
|
||||
}
|
||||
|
||||
|
||||
public static function addStore($post)
|
||||
{
|
||||
$store = new Store();
|
||||
|
||||
$data = [
|
||||
'title' => $post['title'],
|
||||
'address' => $post['address'],
|
||||
'image' => $post['image'],
|
||||
'business' => $post['business'],
|
||||
'is_show' => $post['is_show'],
|
||||
'traffic' => $post['traffic'],
|
||||
'create_time' => time(),
|
||||
'contact' => $post['contact'],
|
||||
];
|
||||
return $store->save($data);
|
||||
}
|
||||
|
||||
public static function editStore($post)
|
||||
{
|
||||
$store = new Store();
|
||||
$data = [
|
||||
'title' => $post['title'],
|
||||
'address' => $post['address'],
|
||||
'image' => $post['image'],
|
||||
'business' => $post['business'],
|
||||
'is_show' => $post['is_show'],
|
||||
'traffic' => $post['traffic'],
|
||||
'update_time' => time(),
|
||||
'contact' => $post['contact'],
|
||||
];
|
||||
return $store->save($data, ['id' => $post['id'], 'del' => 0]);
|
||||
}
|
||||
|
||||
public static function getStore($id)
|
||||
{
|
||||
$store = new Store();
|
||||
$detail = $store::get(['id' => $id, 'del' => 0]);
|
||||
$detail['abs_image'] = UrlServer::getFileUrl($detail['image']);
|
||||
return $detail;
|
||||
}
|
||||
|
||||
public static function delStore($id)
|
||||
{
|
||||
$store = new Store();
|
||||
|
||||
$data = [
|
||||
'del' => time(),
|
||||
'update_time' => 1
|
||||
];
|
||||
return $article->save($data, ['id' => $id, 'del' => 0]);
|
||||
}
|
||||
|
||||
public static function switchStatus($post)
|
||||
{
|
||||
$data = [
|
||||
'is_show' => $post['is_show'],
|
||||
'update_time' => time(),
|
||||
];
|
||||
return Db::name('store')->where(['del' => 0, 'id' => $post['id']])->update($data);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -50,6 +50,8 @@ class SupplierLogic{
|
|||
'cid' => $post['cid'],
|
||||
'remark' => $post['remark'],
|
||||
'honor' => $post['honor'],
|
||||
'is_notice' => $post['is_notice'],
|
||||
'position' => $post['position'],
|
||||
'create_time' => time(),
|
||||
];
|
||||
|
||||
|
|
@ -68,6 +70,8 @@ class SupplierLogic{
|
|||
'cid' => $post['cid'],
|
||||
'remark' => $post['remark'],
|
||||
'honor' => $post['honor'],
|
||||
'is_notice' => $post['is_notice'],
|
||||
'position' => $post['position'],
|
||||
'update_time' => time(),
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 宏驰云科技开发团队 版权所有 拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
// | Author: HcyShop-kiki
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\model;
|
||||
use think\Model;
|
||||
|
||||
class Store extends Model {
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 宏驰云科技开发团队 版权所有 拥有最终解释权
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
// | Author: HcyShop-kiki
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\admin\validate;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class Store extends Validate
|
||||
{
|
||||
|
||||
protected $rule = [
|
||||
'id' => 'require',
|
||||
'title' => 'require|unique:article,title^del',
|
||||
'address' => 'require',
|
||||
'image' => 'require',
|
||||
'business' => 'require',
|
||||
'traffic' => 'require',
|
||||
'contact' => 'require',
|
||||
];
|
||||
|
||||
protected $message = [
|
||||
'id.require' => 'id不可为空',
|
||||
'title.require' => '请输入门店名称',
|
||||
'title.unique' => '标题不能重复!',
|
||||
|
||||
'address.require' => '请输入门店地址',
|
||||
'image.require' => '请商城门店图片',
|
||||
'business.require' => '请输入门店营业时间',
|
||||
'traffic.require' => '请输入门店交通情况',
|
||||
'contact.require' => '请输入门店联系方式',
|
||||
];
|
||||
|
||||
protected function sceneAdd()
|
||||
{
|
||||
$this->remove('id');
|
||||
|
||||
}
|
||||
|
||||
protected function sceneEdit()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function sceneDel()
|
||||
{
|
||||
$this->only(['id']);
|
||||
}
|
||||
}
|
||||
|
|
@ -25,6 +25,8 @@
|
|||
<li class="layui-this">服务协议</li>
|
||||
<li>隐私政策</li>
|
||||
<li>售后保障</li>
|
||||
<li>选择理由</li>
|
||||
<li>支付方式</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">
|
||||
|
|
@ -47,6 +49,20 @@
|
|||
<textarea name="after_sale" id="after_sale" lay-verify="content" class="field-content">{$config.after_sale}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-tab-item">
|
||||
<label class="layui-form-label"style="white-space: nowrap;">内容:</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="payment" id="payment" lay-verify="content" class="field-content">{$config.payment}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-tab-item">
|
||||
<label class="layui-form-label"style="white-space: nowrap;">内容:</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="reason" id="reason" lay-verify="content" class="field-content">{$config.reason}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
|
|
@ -84,12 +100,16 @@
|
|||
var service = likeedit.build('service'); //建立编辑器
|
||||
var privacy = likeedit.build('privacy'); //建立编辑器
|
||||
var after_sale = likeedit.build('after_sale'); //建立编辑器
|
||||
var payment = likeedit.build('payment'); //建立编辑器
|
||||
var reason = likeedit.build('reason'); //建立编辑器
|
||||
form.verify({
|
||||
|
||||
content: function() {
|
||||
likeedit.sync(service)
|
||||
likeedit.sync(privacy)
|
||||
likeedit.sync(after_sale)
|
||||
likeedit.sync(payment)
|
||||
likeedit.sync(reason)
|
||||
}
|
||||
})
|
||||
form.verify({
|
||||
|
|
|
|||
|
|
@ -0,0 +1,133 @@
|
|||
{layout name="layout2" /}
|
||||
<style>
|
||||
.layui-form-label {
|
||||
color: #6a6f6c;
|
||||
}
|
||||
.goods-li {
|
||||
float: left;
|
||||
opacity: 1;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.goods-img {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
padding: 4px;
|
||||
}
|
||||
.goods-img-del-x {
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
top: -4px;
|
||||
right: -2px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
font-size: 16px;
|
||||
line-height: 16px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
background: hsla(0, 0%, 60%, .6);
|
||||
border-radius: 10px;
|
||||
}
|
||||
#image{
|
||||
left:110px;
|
||||
}
|
||||
#notice{ left:110px;}
|
||||
</style>
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-category" id="layuiadmin-form-category" style="padding: 20px 30px 0 0;">
|
||||
<input type="hidden" value="0" name="id">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><font color="red">*</font>门店名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" lay-verify="required" lay-verType="tips" placeholder="请输入标题" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">门店封面图</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="" style="height:80px;line-height:80px">
|
||||
<input name="image" type="hidden" value="">
|
||||
<div class="goods-img-add"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class=" layui-form-mid layui-word-aux" id="image">建议尺寸:500*500像素</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><font color="red">*</font>详细地址</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="address" lay-verify="required" lay-verType="tips" placeholder="请输入门店地址" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><font color="red">*</font>营业时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="business" lay-verify="required" lay-verType="tips" placeholder="请输入营业时间" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><font color="red">*</font>交通情况</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="traffic" lay-verify="required" lay-verType="tips" placeholder="请输入门店交通" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><font color="red">*</font>联系方式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="contact" lay-verify="required" lay-verType="tips" placeholder="请输入门店联系方式" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">门店状态</label>
|
||||
<div class="layui-input-inline" >
|
||||
<input type="radio" name="is_show" lay-filter="is_show" style="width: 500px" value=1 title="显示" checked >
|
||||
<input type="radio" name="is_show" lay-filter="is_show" style="width: 500px" value=0 title="隐藏">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-hide">
|
||||
<input type="button" lay-submit lay-filter="add-store-submit" id="add-store-submit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
layui.config({
|
||||
version:"{$front_version}",
|
||||
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
|
||||
}).extend({
|
||||
index: 'lib/index' //主入口模块
|
||||
}).use(['index', 'form','likeedit','like'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form
|
||||
,like = layui.like
|
||||
,likeedit = layui.likeedit;
|
||||
|
||||
//上传图片
|
||||
like.imageUpload('.goods-img-add', function (uri, element) {
|
||||
if(uri.length>1){
|
||||
layer.msg('最多最能选中1张图片');
|
||||
return;
|
||||
}
|
||||
var html = '<div class="goods-li">\n' +
|
||||
'<img class="goods-img" ' +
|
||||
'src="' + uri[0] + '">' +
|
||||
'<a class="goods-img-del-x">x</a>' +
|
||||
'</div>';
|
||||
element.prev().val(like.getUrlFileName(uri[0], '{$storageUrl}'));
|
||||
element.parent().append(html);
|
||||
element.css('display','none');
|
||||
}, true);
|
||||
//删除图片
|
||||
$(document).on('click', '.goods-img-del-x', function () {
|
||||
$(this).parent().siblings('input').val('');
|
||||
$(this).parent().prev().css('display','block');
|
||||
$(this).parent().remove();
|
||||
});
|
||||
//显示图片
|
||||
$(document).on('click', '.goods-img', function () {
|
||||
var image = $(this).attr('src');
|
||||
like.showImg(image,600);
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
|
@ -0,0 +1,156 @@
|
|||
{layout name="layout2" /}
|
||||
<style>
|
||||
.layui-form-label {
|
||||
color: #6a6f6c;
|
||||
}
|
||||
.goods-li {
|
||||
float: left;
|
||||
opacity: 1;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.goods-img {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
padding: 4px;
|
||||
}
|
||||
.goods-img-del-x {
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
top: -4px;
|
||||
right: -2px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
font-size: 16px;
|
||||
line-height: 16px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
background: hsla(0, 0%, 60%, .6);
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#image{
|
||||
left:110px;
|
||||
}
|
||||
#notice{ left:110px;}
|
||||
</style>
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-category" id="layuiadmin-form-category" style="padding: 20px 30px 0 0;">
|
||||
<input type="hidden" value="{$article.id}" name="id">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><font color="red">*</font>门店名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" value="{$article.title}" lay-verify="required" lay-verType="tips" placeholder="请输入门店名称" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">门店封面图</label>
|
||||
<div class="layui-input-inline">
|
||||
<div style="height:80px;line-height:80px">
|
||||
<input name="image" type="hidden" value="{$article.image}">
|
||||
|
||||
{if !empty($article.image)}
|
||||
<div class="goods-img-add" style="display: none" ></div>
|
||||
<div class="goods-li">
|
||||
<img class="goods-img" src="{$article.abs_image}">
|
||||
<a class="goods-img-del-x" style="display: none">x</a>
|
||||
</div>
|
||||
{else}
|
||||
<div class="goods-img-add" ></div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class=" layui-form-mid layui-word-aux" id="image">建议尺寸:500*500像素</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><font color="red">*</font>详细地址</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="address" value="{$article.address}" lay-verify="required" lay-verType="tips" placeholder="请输入门店地址" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><font color="red">*</font>营业时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="business" value="{$article.business}" lay-verify="required" lay-verType="tips" placeholder="请输入营业时间" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><font color="red">*</font>交通情况</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="traffic" value="{$article.traffic}" lay-verify="required" lay-verType="tips" placeholder="请输入门店交通" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><font color="red">*</font>联系方式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="contact" value="{$article.contact}" lay-verify="required" lay-verType="tips" placeholder="请输入门店联系方式" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">门店状态</label>
|
||||
<div class="layui-input-inline" >
|
||||
<input type="radio" name="is_show" lay-filter="is_show" style="width: 500px" value=1 title="显示" {if condition="$article.is_show eq 1" }checked{/if}>
|
||||
<input type="radio" name="is_show" lay-filter="is_show" style="width: 500px" value=0 title="隐藏"{if condition="$article.is_show eq 0" }checked{/if}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-hide">
|
||||
<input type="button" lay-submit lay-filter="edit-store-submit" id="edit-store-submit" value="确认">
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
layui.config({
|
||||
version:"{$front_version}",
|
||||
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
|
||||
}).extend({
|
||||
index: 'lib/index' //主入口模块
|
||||
}).use(['index', 'form','likeedit','like'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form
|
||||
,like = layui.like
|
||||
,likeedit = layui.likeedit;
|
||||
//上传图片
|
||||
like.imageUpload('.goods-img-add', function (uri, element) {
|
||||
if(uri.length>1){
|
||||
layer.msg('最多最能选中1张图片');
|
||||
return;
|
||||
}
|
||||
var html = '<div class="goods-li">\n' +
|
||||
'<img class="goods-img" ' +
|
||||
'src="' + uri[0] + '">' +
|
||||
'<a class="goods-img-del-x">x</a>' +
|
||||
'</div>';
|
||||
element.prev().val(like.getUrlFileName(uri[0], '{$storageUrl}'));
|
||||
element.parent().append(html);
|
||||
element.css('display','none');
|
||||
}, true);
|
||||
//删除图片
|
||||
$(document).on('click', '.goods-img-del-x', function () {
|
||||
$(this).parent().siblings('input').val('');
|
||||
$(this).parent().prev().css('display','block');
|
||||
$(this).parent().remove();
|
||||
});
|
||||
//显示图片
|
||||
$(document).on('click', '.goods-img', function () {
|
||||
var image = $(this).attr('src');
|
||||
like.showImg(image,600);
|
||||
});
|
||||
|
||||
// 删除按钮的显示与隐藏
|
||||
$(document).on('mouseover', '.goods-img', function () {
|
||||
$(this).next().show();
|
||||
});
|
||||
$(document).on('mouseout', '.goods-img', function () {
|
||||
$(this).next().hide();
|
||||
});
|
||||
$(document).on('mouseover', '.goods-img-del-x', function () {
|
||||
$(this).show();
|
||||
});
|
||||
$(document).on('mouseout', '.goods-img-del-x', function () {
|
||||
$(this).hide();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
@ -0,0 +1,333 @@
|
|||
{layout name="layout1" /}
|
||||
<style>
|
||||
.layui-table-cell {
|
||||
height: auto;
|
||||
}
|
||||
</style>
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
|
||||
<div class="layui-colla-item">
|
||||
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
|
||||
<div class="layui-colla-content layui-show">
|
||||
<p>*平台发布门店,可在商城首页栏目查看。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">关键词</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" id="title" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layui-btn-sm layuiadmin-btn-store {$view_theme_color}" lay-submit lay-filter="store-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-primary layuiadmin-btn-store }" lay-submit lay-filter="store-clear-search">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div style="padding-bottom: 10px;">
|
||||
<button class="layui-btn layui-btn-sm layuiadmin-btn-store {$view_theme_color}" data-type="add">新增门店</button>
|
||||
</div>
|
||||
|
||||
<table id="store-lists" lay-filter="store-lists"></table>
|
||||
<script type="text/html" id="image">
|
||||
<img src="{{d.image}}" style="height:auto;width: auto" class="image-show">
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="store-operation">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
|
||||
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="status_switch">
|
||||
{{# if(d.is_show == 1){ }}
|
||||
隐藏
|
||||
{{# } else { }}
|
||||
显示
|
||||
{{# } }}
|
||||
</a>
|
||||
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.config({
|
||||
version:"{$front_version}",
|
||||
base: '/static/plug/layui-admin/dist/layuiadmin/' //静态资源所在路径
|
||||
}).extend({
|
||||
index: 'lib/index' //主入口模块
|
||||
}).use(['index','table','like'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form
|
||||
,table = layui.table
|
||||
,like = layui.like;
|
||||
|
||||
//图片放大
|
||||
$(document).on('click', '.image-show', function () {
|
||||
var src = $(this).attr('src');
|
||||
like.showImg(src,600);
|
||||
});
|
||||
//监听搜索
|
||||
form.on('submit(store-search)', function(data){
|
||||
var field = data.field;
|
||||
//执行重载
|
||||
table.reload('store-lists', {
|
||||
where: field,
|
||||
page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
},
|
||||
|
||||
});
|
||||
});
|
||||
//监听重置
|
||||
form.on('submit(store-clear-search)', function(){
|
||||
$('#title').val('');
|
||||
$('#cid').val('');
|
||||
$('#is_notice').val('');
|
||||
form.render('select');
|
||||
//刷新列表
|
||||
table.reload('store-lists', {
|
||||
where: [],
|
||||
page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
//事件
|
||||
var active = {
|
||||
add: function(){
|
||||
layer.open({
|
||||
type: 2
|
||||
,title: '添加门店'
|
||||
,content: '{:url("store/add")}'
|
||||
,area: ['90%','90%']
|
||||
,btn: ['确定', '取消']
|
||||
,yes: function(index, layero){
|
||||
var iframeWindow = window['layui-layer-iframe'+ index]
|
||||
,submitID = 'add-store-submit'
|
||||
,submit = layero.find('iframe').contents().find('#'+ submitID);
|
||||
//监听提交
|
||||
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
|
||||
var field = data.field;
|
||||
like.ajax({
|
||||
url:'{:url("store/add")}',
|
||||
data:field,
|
||||
type:"post",
|
||||
success:function(res)
|
||||
{
|
||||
if(res.code == 1)
|
||||
{
|
||||
layui.layer.msg(res.msg, {
|
||||
offset: '15px'
|
||||
, icon: 1
|
||||
, time: 1000
|
||||
});
|
||||
layer.close(index); //关闭弹层
|
||||
table.reload('store-lists'); //数据刷新
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
submit.trigger('click');
|
||||
}
|
||||
});
|
||||
}
|
||||
,batchdel:function(){ //删除所选
|
||||
var checkStatus = table.checkStatus('store-lists')
|
||||
,checkData = checkStatus.data; //得到选中的数据
|
||||
//是否已选数据
|
||||
if(checkData.length === 0){
|
||||
return layer.msg('请选择数据');
|
||||
}else {
|
||||
//获取所选id
|
||||
ids = [];
|
||||
for (var i in checkData){
|
||||
ids.push(checkData[i]['id']);
|
||||
}
|
||||
|
||||
layer.confirm('确定删除所选门店信息?', function(index){
|
||||
like.ajax({
|
||||
url:'{:url("store/del")}',
|
||||
data:{id:ids},
|
||||
type:"post",
|
||||
success:function(res)
|
||||
{
|
||||
if(res.code == 1)
|
||||
{
|
||||
layui.layer.msg(res.msg, {
|
||||
offset: '15px'
|
||||
, icon: 1
|
||||
, time: 1000
|
||||
});
|
||||
layer.close(index); //关闭弹层
|
||||
table.reload('store-lists'); //数据刷新
|
||||
}
|
||||
}
|
||||
});
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
$('.layui-btn.layuiadmin-btn-store').on('click', function(){
|
||||
var type = $(this).data('type');
|
||||
active[type] ? active[type].call(this) : '';
|
||||
});
|
||||
|
||||
|
||||
table.render({
|
||||
elem: '#store-lists'
|
||||
,url: '{:url("store/lists")}'
|
||||
,cols: [[
|
||||
{type: 'checkbox',title: '当页全选'}
|
||||
,{field: 'title', title: '门店名称',width:150}
|
||||
,{field: 'image', title: '门店封面图',toolbar: '#image',width:150}
|
||||
,{field: 'address', title: '门店地址',width:150}
|
||||
,{field: 'traffic', title: '门店交通',width:150}
|
||||
,{field: 'contact', title: '门店联系方式',width:150}
|
||||
,{field: 'business', title:'门店营业时间', align: 'center',width:100}
|
||||
,{field: 'create_time', title: '创建时间',width:160}
|
||||
,{fixed: 'right', title: '操作', align: 'center', toolbar: '#store-operation',width:230}
|
||||
]]
|
||||
,page:true
|
||||
,text: {none: '暂无数据!'}
|
||||
,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
|
||||
return {
|
||||
"code":res.code,
|
||||
"msg":res.msg,
|
||||
"count": res.data.count, //解析数据长度
|
||||
"data": res.data.lists, //解析数据列表
|
||||
};
|
||||
}
|
||||
,done: function(res, curr, count){
|
||||
setTimeout(function () {
|
||||
// 解决操作栏因为内容过多换行问题
|
||||
$(".layui-table-fixed-l .layui-table-body").removeAttr("style");
|
||||
$(".layui-table-fixed-r .layui-table-body").removeAttr("style");
|
||||
$(".layui-table-main tr").each(function (index, val) {
|
||||
console.log($(val).height());
|
||||
$($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
|
||||
$($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
|
||||
});
|
||||
}, 100)
|
||||
}
|
||||
});
|
||||
|
||||
//监听工具条
|
||||
table.on('tool(store-lists)', function(obj){
|
||||
if(obj.event === 'del'){
|
||||
var id = obj.data.id;
|
||||
var title = obj.data.title;
|
||||
layer.confirm('确定要删除门店:'+'<span style="color: red">'+title+'</span>', function(index){
|
||||
like.ajax({
|
||||
url:'{:url("store/del")}',
|
||||
data:{'id':id},
|
||||
type:"post",
|
||||
success:function(res)
|
||||
{
|
||||
if(res.code == 1)
|
||||
{
|
||||
layui.layer.msg(res.msg, {
|
||||
offset: '15px'
|
||||
, icon: 1
|
||||
, time: 1000
|
||||
});
|
||||
layer.close(index);
|
||||
table.reload('store-lists');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
if(obj.event === 'edit'){
|
||||
var id = obj.data.id;
|
||||
layer.open({
|
||||
type: 2
|
||||
,title: '编辑门店'
|
||||
,content: '{:url("store/edit")}?id='+id
|
||||
,area: ['90%','90%']
|
||||
,btn: ['确定', '取消']
|
||||
,yes: function(index, layero){
|
||||
var iframeWindow = window['layui-layer-iframe'+ index]
|
||||
,submitID = 'edit-store-submit'
|
||||
,submit = layero.find('iframe').contents().find('#'+ submitID);
|
||||
|
||||
//监听提交
|
||||
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
|
||||
var field = data.field;
|
||||
like.ajax({
|
||||
url:'{:url("store/edit")}',
|
||||
data:field,
|
||||
type:"post",
|
||||
success:function(res)
|
||||
{
|
||||
if(res.code == 1)
|
||||
{
|
||||
layui.layer.msg(res.msg, {
|
||||
offset: '15px'
|
||||
, icon: 1
|
||||
, time: 1000
|
||||
});
|
||||
layer.close(index);
|
||||
table.reload('store-lists');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
submit.trigger('click');
|
||||
}
|
||||
})
|
||||
}else if(obj.event === 'status_switch'){
|
||||
var id = obj.data.id;
|
||||
var status = obj.data.is_show;
|
||||
var title = obj.data.title;
|
||||
var confirm_text = '';
|
||||
if (status == 1){
|
||||
confirm_text = '确定隐藏门店:';
|
||||
status = 0;
|
||||
} else {
|
||||
status = 1;
|
||||
confirm_text = '确定显示门店:';
|
||||
}
|
||||
|
||||
layer.confirm(confirm_text+'<span style="color: red">'+title+'</span>', function(index){
|
||||
like.ajax({
|
||||
url:'{:url("store/switchStatus")}',
|
||||
data:{id:id,is_show:status},
|
||||
type:"post",
|
||||
success:function(res)
|
||||
{
|
||||
if(res.code == 1)
|
||||
{
|
||||
layui.layer.msg(res.msg, {
|
||||
offset: '15px'
|
||||
, icon: 1
|
||||
, time: 1000
|
||||
});
|
||||
layer.close(index); //关闭弹层
|
||||
table.reload('store-lists');
|
||||
}
|
||||
}
|
||||
});
|
||||
layer.close(index);
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
|
@ -65,6 +65,22 @@
|
|||
<label class=" layui-form-mid layui-word-aux" id="image">建议尺寸:730*530像素</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">首页推荐</label>
|
||||
<div class="layui-input-inline" id="" >
|
||||
<input type="radio" name="is_notice" lay-filter="is_notice" style="width: 500px" value=1 title="是" checked >
|
||||
<input type="radio" name="is_notice" lay-filter="is_notice" style="width: 500px" value=0 title="否">
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class=" layui-form-mid layui-word-aux" id="notice">在商城首页的名家推荐显示</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" style="white-space: nowrap;">职位:</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
<input type="text" name="position" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" style="white-space: nowrap;">荣誉:</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
|
|
|
|||
|
|
@ -73,6 +73,22 @@
|
|||
<label class=" layui-form-mid layui-word-aux" id="image">建议尺寸:730*530像素</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">首页推荐</label>
|
||||
<div class="layui-input-inline" id="" >
|
||||
<input type="radio" name="is_notice" lay-filter="is_notice" style="width: 500px" value=1 title="是" {if condition="$info.is_notice eq 1" }checked{/if}>
|
||||
<input type="radio" name="is_notice" lay-filter="is_notice" style="width: 500px" value=0 title="否"{if condition="$info.is_notice eq 0" }checked{/if}>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class=" layui-form-mid layui-word-aux" id="notice">在商城首页的名家推荐显示</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" style="white-space: nowrap;">职位:</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
<input type="text" name="position" value="{$info.position}" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" style="white-space: nowrap;">荣誉:</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
|
|
|
|||
|
|
@ -9,17 +9,25 @@ namespace app\api\controller;
|
|||
use app\api\logic\GoodsLogic;
|
||||
class Goods extends ApiBase{
|
||||
|
||||
public $like_not_need_login = ['getgoodsdetail', 'getgoodslist','getbestlist','gethostlist','getsearchpage'];
|
||||
public $like_not_need_login = ['getgoodsdetail', 'getgoodslist','getbestlist','gethostlist','getsearchpage','tjgoodslist'];
|
||||
|
||||
/**
|
||||
* note 商品列表
|
||||
* create_time 2020/10/20 11:12
|
||||
*/
|
||||
public function getGoodsList(){
|
||||
$get = $this->request->get();
|
||||
$goods_list = GoodsLogic::getGoodsList($this->user_id, $get, $this->page_no, $this->page_size);
|
||||
$this->_success('获取成功',$goods_list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* note 商品列表筛选条件
|
||||
*/
|
||||
public function tjGoodsList(){
|
||||
$get = $this->request->get();
|
||||
$tjgoods_list = GoodsLogic::tjGoodsList();
|
||||
$this->_success('获取成功',$tjgoods_list);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,27 @@ namespace app\api\controller;
|
|||
use app\api\logic\PcLogic;
|
||||
|
||||
class Pc extends ApiBase{
|
||||
public $like_not_need_login = ['index','commonData','goodsList'];
|
||||
public $like_not_need_login = ['index','commonData','goodsList','supplierList','supplierclassList','temaigoods','baijianclass','cangpingoods','getsupplierDetail'];
|
||||
/**
|
||||
* Notes: 惠藏百件分类
|
||||
* @author: kiki
|
||||
*/
|
||||
public function baijianclass(){
|
||||
$lists = PcLogic::baijian_goods_category();
|
||||
return $this->_success('',$lists);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Notes: 惠藏藏品接口
|
||||
* @author: kiki
|
||||
*/
|
||||
public function cangpingoods(){
|
||||
$lists = PcLogic::cangpingoods();
|
||||
return $this->_success('',$lists);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Notes: pc端首页接口
|
||||
* @author: kiki
|
||||
|
|
@ -19,6 +39,48 @@ class Pc extends ApiBase{
|
|||
return $this->_success('',$lists);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes: 获取分类专家列表
|
||||
* @author: kiki
|
||||
*/
|
||||
public function supplierclassList(){
|
||||
$lists = PcLogic::supplierclssList();
|
||||
return $this->_success('',$lists);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes:获取专家列表
|
||||
* @author:kiki
|
||||
*/
|
||||
public function supplierList(){
|
||||
$cid = $this->request->get('category_id','');
|
||||
$list = PcLogic::supplierList($this->page_no,$this->page_size,$cid);
|
||||
return $this->_success('',$list);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes:获取专家详情
|
||||
* @author:kiki
|
||||
*/
|
||||
public function getsupplierDetail(){
|
||||
$id = $this->request->get('id');
|
||||
$supplier = PcLogic::getsupplierDetail($id);
|
||||
if($supplier){
|
||||
$this->_success('获取成功',$supplier);
|
||||
}
|
||||
$this->_error('专家不存在',[],0,0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes: 特卖商城接口
|
||||
* @author: kiki
|
||||
*/
|
||||
public function temaigoods(){
|
||||
$lists = PcLogic::temaigoods();
|
||||
return $this->_success('',$lists);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes:pc广告公告数据
|
||||
* @author: kiki
|
||||
|
|
|
|||
|
|
@ -12,57 +12,126 @@ use app\common\model\TeamActivity;
|
|||
use app\common\model\TeamFound;
|
||||
use app\common\model\TeamGoodsItem;
|
||||
use app\common\server\ConfigServer;
|
||||
use app\common\server\UrlServer;
|
||||
use think\Db;
|
||||
use think\facade\Hook;
|
||||
|
||||
class GoodsLogic{
|
||||
|
||||
//商品列表筛选条件
|
||||
public static function tjGoodsList(){
|
||||
//容量筛选表
|
||||
$capacity_list = Db::name('screen_capacity')
|
||||
->where(['del'=>0,'is_show'=>1])
|
||||
->order('sort desc')
|
||||
->field('id,name')
|
||||
->select();
|
||||
|
||||
//泥料筛选表
|
||||
$mud_list = Db::name('screen_mud')
|
||||
->where(['del'=>0,'is_show'=>1])
|
||||
->order('sort desc')
|
||||
->field('id,name')
|
||||
->select();
|
||||
|
||||
//价格筛选表
|
||||
$price_list = Db::name('screen_price')
|
||||
->where(['del'=>0,'is_show'=>1])
|
||||
->order('sort desc')
|
||||
->field('id,name')
|
||||
->select();
|
||||
|
||||
//尺寸筛选表
|
||||
$size_list = Db::name('screen_size')
|
||||
->where(['del'=>0,'is_show'=>1])
|
||||
->order('sort desc')
|
||||
->field('id,name')
|
||||
->select();
|
||||
|
||||
//壶型筛选表
|
||||
$category_list = Db::name('goods_brand')
|
||||
->where(['del'=>0,'is_show'=>1])
|
||||
->order('sort desc')
|
||||
->field('id,name,image')
|
||||
->select();
|
||||
foreach ($category_list as $key => $v1){
|
||||
$category_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||||
}
|
||||
$list = [
|
||||
'capacity_list' => $capacity_list,//容量筛选表
|
||||
'mud_list' => $mud_list,//泥料筛选表
|
||||
'price_list' => $price_list,//价格筛选表
|
||||
'size_list' => $size_list,//尺寸筛选表
|
||||
'category_list' => $category_list //壶型筛选表
|
||||
];
|
||||
return $list;
|
||||
}
|
||||
|
||||
//商品列表
|
||||
public static function getGoodsList($user_id,$get,$page,$size){
|
||||
$where = [];
|
||||
$order = [];
|
||||
$where[] = ['status','=',1];
|
||||
$where[] = ['del','=',0];
|
||||
$where[] = ['g.status','=',1];
|
||||
$where[] = ['g.del','=',0];
|
||||
|
||||
$goods = new Goods();
|
||||
//品牌筛选
|
||||
if(isset($get['brand_id']) && $get['brand_id']) {
|
||||
$where[] = ['brand_id', '=', $get['brand_id']];
|
||||
}
|
||||
//分类筛选
|
||||
//壶型筛选
|
||||
if(isset($get['category_id']) && $get['category_id']){
|
||||
$where[] = ['first_category_id|second_category_id|third_category_id','=',$get['category_id']];
|
||||
}
|
||||
|
||||
//价格
|
||||
if(isset($get['price']) && $get['price']) {
|
||||
$screen_price_info = Db::name('screen_price')->field('start_price,end_price')->where(['id'=>$get['price'],'del'=>0])->find();
|
||||
if($screen_price_info){
|
||||
$where[] = ['min_price','>=',strtotime($screen_price_info['start_price'])];
|
||||
$where[] = ['min_price','<=',strtotime($screen_price_info['end_price'])];
|
||||
}
|
||||
}
|
||||
|
||||
//容量
|
||||
if(isset($get['rongliang']) && $get['rongliang']) {
|
||||
$screen_capacity_info = Db::name('screen_capacity')->field('start_capacity,end_capacity')->where(['id'=>$get['rongliang'],'del'=>0])->find();
|
||||
if($screen_capacity_info){
|
||||
$where[] = ['rongliang_name','>=',strtotime($screen_capacity_info['start_capacity'])];
|
||||
$where[] = ['rongliang_name','<=',strtotime($screen_capacity_info['end_capacity'])];
|
||||
}
|
||||
}
|
||||
//泥料
|
||||
if(isset($get['mud_id']) && $get['mud_id']) {
|
||||
$where[] = ['mud_id', '=', $get['mud_id']];
|
||||
}
|
||||
|
||||
//尺寸
|
||||
if(isset($get['size_id']) && $get['size_id']) {
|
||||
$where[] = ['size_id', '=', $get['size_id']];
|
||||
}
|
||||
|
||||
//关键词搜索
|
||||
if(isset($get['keyword']) && $get['keyword']){
|
||||
$where[] = ['name','like','%'.$get['keyword'].'%'];
|
||||
$where[] = ['g.name','like','%'.$get['keyword'].'%'];
|
||||
if($user_id){//记录关键词
|
||||
self::recordKeyWord(trim($get['keyword']),$user_id);
|
||||
}
|
||||
}
|
||||
//销量排序
|
||||
if(isset($get['sales_sum']) && $get['sales_sum']){
|
||||
$order['sales_sum'] = $get['sales_sum'];
|
||||
}
|
||||
//价格排序
|
||||
if(isset($get['price']) && $get['price']){
|
||||
$order['min_price'] = $get['price'];
|
||||
}
|
||||
|
||||
$order['sort'] = 'desc';
|
||||
$order['id'] = 'desc';
|
||||
|
||||
$goods_count = $goods
|
||||
$order['g.sort'] = 'desc';
|
||||
$order['g.id'] = 'desc';
|
||||
$goods_count =Db::name('goods g')
|
||||
->where($where)
|
||||
->join('screen_mud sm', 'g.mud_id = sm.id')
|
||||
->join('supplier s', 'g.supplier_id = s.id')
|
||||
->count();
|
||||
|
||||
$goods_list = $goods
|
||||
$goods_list =Db::name('goods g')
|
||||
->where($where)
|
||||
->page($page,$size)
|
||||
->order($order)
|
||||
->field('id,name,image,min_price as price,market_price,sales_sum+virtual_sales_sum as sales_sum,sort')
|
||||
->select();
|
||||
|
||||
->field('g.id as goods_id,g.name as goods_name,g.code,g.image,min_price as price,rongliang_name,sm.name as mud_name,s.name as supplier_name,g.code')
|
||||
->join('screen_mud sm', 'g.mud_id = sm.id')
|
||||
->join('supplier s', 'g.supplier_id = s.id')
|
||||
->select();
|
||||
foreach ($goods_list as $key => $v1){
|
||||
$goods_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||||
}
|
||||
$more = is_more($goods_count,$page,$size); //是否有下一页
|
||||
|
||||
$data = [
|
||||
|
|
@ -87,69 +156,33 @@ class GoodsLogic{
|
|||
}
|
||||
//商品详情
|
||||
public static function getGoodsDetail($user_id,$id){
|
||||
|
||||
$goods = Goods::get(['id'=>$id,'status'=>1],['goods_image','goods_item']);
|
||||
|
||||
if($goods){
|
||||
//点击量
|
||||
$goods->click_count = $goods->click_count + 1;
|
||||
$goods->save();
|
||||
$goods->sales_sum += $goods->virtual_sales_sum;
|
||||
$goods->is_collect = 0;
|
||||
$goods->member_price = 0;
|
||||
$goods->append(['order_give_integral', 'commission_price']);
|
||||
|
||||
//检查商品是否整在参加活动,如果正在参加活动替换商品的价格为活动价
|
||||
$goods = self::checkActivity($goods);
|
||||
if($user_id) {
|
||||
//是否收藏
|
||||
$collect = Db::name('goods_collect')->where(['user_id'=>$user_id,'goods_id'=>$id])->find();
|
||||
$goods->is_collect= $collect ? 1 : 0;
|
||||
//专家信息
|
||||
$supplier = Db::name('supplier')
|
||||
->where(['del'=>0,'id'=>$goods->supplier_id])
|
||||
->order('create_time desc')
|
||||
->field('id,name,remark,avatar')
|
||||
->find();
|
||||
$supplier['avatar']=UrlServer::getFileUrl($supplier['avatar']);
|
||||
$goods->supplier_list=$supplier;
|
||||
|
||||
$goods->payment=ConfigServer::get('policy', 'payment');
|
||||
$goods->reason = ConfigServer::get('policy', 'reason');
|
||||
$goods->after_sale =ConfigServer::get('policy', 'after_sale');
|
||||
|
||||
//会员折扣
|
||||
$member_discount = Db::name('user_level l')
|
||||
->join('user u', 'u.level = l.id')
|
||||
->where(['u.id' => $user_id])
|
||||
->value('discount');
|
||||
$price_array = [];
|
||||
//处理会员折扣价格
|
||||
if ($goods->is_member > 0 && $member_discount > 0) {
|
||||
//会员价格
|
||||
foreach ($goods->goods_item as $item => $value){
|
||||
$goods->goods_item[$item]['member_price'] = 0;
|
||||
if($member_discount){
|
||||
$member_price = round($value['price'] * $member_discount / 10,2);
|
||||
$goods->goods_item[$item]['member_price'] = $member_price;
|
||||
$price_array[] = $member_price;
|
||||
}
|
||||
}
|
||||
$price_array && $goods->member_price = min($price_array);
|
||||
}
|
||||
//多规格,按最高的价格计算积分
|
||||
if($price_array && 2 === $goods->give_integral_type){
|
||||
$price = $price_array ? max($price_array) : $goods->max_price;
|
||||
$goods->order_give_integral = intval($price * $goods->give_integral / 100);
|
||||
}
|
||||
}
|
||||
//猜你喜欢
|
||||
$goods->Like();
|
||||
//商品规格
|
||||
$goods->GoodsSpec();
|
||||
$goods->append(['comment'])->hidden(['Spec','GoodsSpecValue'])
|
||||
->visible(['id','name','image','video','stock','remark','content','sales_sum',
|
||||
'click_count','price','market_price','is_collect','goods_spec','goods_image',
|
||||
'goods_item','activity','member_price']);
|
||||
->visible(['id','name','code','image','stock','content',
|
||||
'price','market_price','goods_spec','goods_image',
|
||||
'goods_item','supplier_list','payment','reason','after_sale']);
|
||||
|
||||
//判断是否开启了拼团
|
||||
if ($goods['is_team']) {
|
||||
$resTeam = self::getTeam($goods);
|
||||
// 如果活动没结束,则返回拼团数据, 否则把商品是否已开团状态改为,不是开团商品
|
||||
if ($resTeam !== 100 and is_array($resTeam)) {
|
||||
$goods['activity'] = $resTeam;
|
||||
} else {
|
||||
$goods['is_team'] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// 钩子-记录足迹(浏览商品)
|
||||
Hook::listen('footprint', [
|
||||
|
|
|
|||
|
|
@ -13,52 +13,45 @@ use app\common\server\UrlServer;
|
|||
use think\Db;
|
||||
|
||||
class PcLogic{
|
||||
|
||||
/**
|
||||
* Notes:惠藏百件分类
|
||||
* @return array
|
||||
* @author:kiki
|
||||
*/
|
||||
public static function baijian_goods_category(){
|
||||
$category_list = Db::name('goods_category')
|
||||
->where(['del'=>0,'is_recommend'=>1])
|
||||
->order('sort desc')
|
||||
->field('id,name')
|
||||
->select();
|
||||
return $category_list;
|
||||
}
|
||||
/**
|
||||
* Notes:pc端首页接口
|
||||
* @return array
|
||||
* @author:kiki
|
||||
*/
|
||||
public static function pcLists(){
|
||||
$goods = new Goods();
|
||||
|
||||
//热销榜单
|
||||
$host_list = $goods
|
||||
->where(['del'=>0,'status'=>1])
|
||||
->field('id,name,image,min_price as price,market_price,sales_sum+virtual_sales_sum as sales_sum')
|
||||
->order('sales_sum desc,click_count desc')
|
||||
->limit(10)
|
||||
->select();
|
||||
|
||||
//新品推荐
|
||||
$new_list = $goods
|
||||
->where(['del'=>0,'status'=>1,'is_new'=>1])
|
||||
->field('id,name,image,min_price as price,market_price,sales_sum+virtual_sales_sum as sales_sum')
|
||||
->order('id desc,sort desc')
|
||||
->limit(10)
|
||||
->select();
|
||||
|
||||
|
||||
//好物优选
|
||||
$best_list = $goods
|
||||
->where(['del'=>0,'status'=>1,'is_best'=>1])
|
||||
->field('id,name,image,min_price as price,market_price,sales_sum+virtual_sales_sum as sales_sum')
|
||||
->order('id desc,sort desc')
|
||||
//新品上架
|
||||
$new_list = Db::name('goods g')
|
||||
->where(['g.del'=>0,'g.status'=>1,'g.is_new'=>1])
|
||||
->field('g.id as goods_id,g.name as goods_name,g.code,g.image,min_price as price,rongliang_name,sm.name as mud_name,s.name as supplier_name')
|
||||
->join('screen_mud sm', 'g.mud_id = sm.id')
|
||||
->join('supplier s', 'g.supplier_id = s.id')
|
||||
->order('g.id desc,g.sort desc')
|
||||
->limit(10)
|
||||
->select();
|
||||
|
||||
$ad_list = Db::name('ad a')
|
||||
->join('ad_position ap', 'a.pid = ap.id')
|
||||
->where(['pid' =>[18,19,20,21],'a.status' => 1,'a.del' => 0,'ap.status' => 1,'ap.del' => 0])
|
||||
->where(['pid' =>[2],'a.status' => 1,'a.del' => 0,'ap.status' => 1,'ap.del' => 0])
|
||||
->order('a.id desc')
|
||||
->field('a.*')
|
||||
->select();
|
||||
|
||||
|
||||
$host_ad = []; //热销榜单广告
|
||||
$new_ad = []; //新品推荐广告
|
||||
$best_ad = []; //好物优选广告
|
||||
$category_ad = []; //分类广告
|
||||
|
||||
$index_ad = []; //首页轮播图广告
|
||||
foreach ($ad_list as $ad){
|
||||
$url = $ad['link'];
|
||||
$is_tab = 0;
|
||||
|
|
@ -77,9 +70,9 @@ class PcLogic{
|
|||
];
|
||||
break;
|
||||
}
|
||||
//首页热销榜单广告
|
||||
if(empty($host_ad) && 18 == $ad['pid']){
|
||||
$host_ad = [
|
||||
//首页轮播图广告
|
||||
if(empty($index_ad) && 2 == $ad['pid']){
|
||||
$index_ad = [
|
||||
'image' => UrlServer::getFileUrl($ad['image']),
|
||||
'link' => $url,
|
||||
'link_type' => $ad['link_type'],
|
||||
|
|
@ -87,85 +80,147 @@ class PcLogic{
|
|||
'is_tab' => $is_tab,
|
||||
];
|
||||
}
|
||||
//首页新品推荐广告
|
||||
if(empty($new_ad) && 19 == $ad['pid']){
|
||||
$new_ad = [
|
||||
'image' => UrlServer::getFileUrl($ad['image']),
|
||||
'link' => $url,
|
||||
'link_type' => $ad['link_type'],
|
||||
'params' => $params,
|
||||
'is_tab' => $is_tab,
|
||||
];
|
||||
}
|
||||
//首页好物优选广告
|
||||
if(empty($best_ad) && 20 == $ad['pid']){
|
||||
$best_ad = [
|
||||
'image' => UrlServer::getFileUrl($ad['image']),
|
||||
'link' => $url,
|
||||
'link_type' => $ad['link_type'],
|
||||
'params' => $params,
|
||||
'is_tab' => $is_tab,
|
||||
];
|
||||
}
|
||||
//首页分类广告
|
||||
if(21 == $ad['pid']){
|
||||
|
||||
$category_ad[$ad['category_id']] = [
|
||||
'image' => UrlServer::getFileUrl($ad['image']),
|
||||
'link' => $url,
|
||||
'link_type' => $ad['link_type'],
|
||||
'params' => $params,
|
||||
'is_tab' => $is_tab,
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//分类信息
|
||||
$goods_category = new \app\admin\model\GoodsCategory();
|
||||
$goods_category_list = $goods_category
|
||||
->where(['del'=>0, 'level'=>1,'is_recommend'=>1])
|
||||
->with(['sons'])
|
||||
->field('id,name')
|
||||
//紫砂资讯
|
||||
$article = Db::name('article')
|
||||
->where(['del'=>0,'is_notice'=>1,'is_show'=>1])
|
||||
->order('create_time desc')
|
||||
->field('id,title,synopsis,image,create_time')
|
||||
->limit(4)
|
||||
->select();
|
||||
foreach ($article as $key => $v1){
|
||||
$article[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||||
$article[$key]['create_time'] = date('Y-m-d', $v1['create_time']);
|
||||
}
|
||||
|
||||
$category_list = [];
|
||||
foreach ($goods_category_list as $key => $goods_category){
|
||||
$sons = [];
|
||||
$goods_list = $goods
|
||||
->where(['first_category_id'=>$goods_category['id'],'del'=>0,'status'=>1])
|
||||
->field('id,name,image,min_price as price,market_price,sales_sum+virtual_sales_sum as sales_sum')
|
||||
->limit(8)
|
||||
->select();
|
||||
foreach ($goods_category['sons'] as $son){
|
||||
$sons[] = [
|
||||
'id' => $son['id'],
|
||||
'name' => $son['name'],
|
||||
];
|
||||
}
|
||||
$ad = $category_ad[$goods_category['id']] ?? [];
|
||||
$category_list[] = [
|
||||
'id' => $goods_category['id'],
|
||||
'name' => $goods_category['name'],
|
||||
'ad' => $ad,
|
||||
'sons' => $sons,
|
||||
'goods_list'=> $goods_list,
|
||||
];
|
||||
//专家信息
|
||||
$supplier = Db::name('supplier')
|
||||
->where(['del'=>0,'is_notice'=>1])
|
||||
->order('create_time desc')
|
||||
->field('id,name,remark,avatar')
|
||||
->limit(6)
|
||||
->select();
|
||||
foreach ($supplier as $key => $v2){
|
||||
$supplier[$key]['avatar']=UrlServer::getFileUrl($v2['avatar']);
|
||||
}
|
||||
|
||||
//门店信息
|
||||
$store = Db::name('store')
|
||||
->where(['del'=>0,'is_show'=>1])
|
||||
->order('create_time desc')
|
||||
->field('id,title,address,image,business,traffic,contact')
|
||||
->limit(4)
|
||||
->select();
|
||||
foreach ($store as $key => $v2){
|
||||
$store[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||||
}
|
||||
|
||||
$list = [
|
||||
'host_ad' => $host_ad,
|
||||
'host_list' => $host_list,
|
||||
'new_ad' => $new_ad,
|
||||
'new_list' => $new_list,
|
||||
'best_ad' => $best_ad,
|
||||
'best_list' => $best_list,
|
||||
'category_list' => $category_list,
|
||||
'new_list' => $new_list,
|
||||
'index_ad' => $index_ad,
|
||||
'article' => $article,
|
||||
'supplier' => $supplier,
|
||||
'store' => $store
|
||||
];
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
|
||||
//专家信息
|
||||
public static function supplierclssList(){
|
||||
$supplier_category = new \app\admin\model\SupplierCategory();
|
||||
$supplier_category_list = $supplier_category
|
||||
->where(['del'=>0, 'is_show'=>1])
|
||||
->field('id,name')
|
||||
->select();
|
||||
$category_list = [];
|
||||
foreach ($supplier_category_list as $key => $supplier_category){
|
||||
$supplier_list = Db::name('supplier')
|
||||
->where(['cid'=>$supplier_category['id'],'del'=>0])
|
||||
->field('id,name')
|
||||
->select();
|
||||
if(!$supplier_list){
|
||||
continue;
|
||||
}
|
||||
$category_list[] = [
|
||||
'id' => $supplier_category['id'],
|
||||
'name' => $supplier_category['name'],
|
||||
'supplier_list'=> $supplier_list,
|
||||
];
|
||||
}
|
||||
return $category_list;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Notes:获取专家列表
|
||||
* @param $page int 页码
|
||||
* @param $size int 每页数量
|
||||
* @param $cid int 分类id
|
||||
* @return array
|
||||
* @author: kiki
|
||||
*/
|
||||
public static function supplierList($page,$size,$cid){
|
||||
|
||||
$where[] = ['del','=',0];
|
||||
//按商品分类搜索
|
||||
if($cid){
|
||||
$where[] = ['cid','=',$cid];
|
||||
}
|
||||
$count =Db::name('supplier')
|
||||
->field('id,name,remark,avatar')
|
||||
->where($where)
|
||||
->count();
|
||||
|
||||
$list =Db::name('supplier')
|
||||
->order('create_time desc')
|
||||
->field('id,name,remark,avatar')
|
||||
->where($where)
|
||||
->page($page, $size)
|
||||
->select();
|
||||
$more = is_more($count, $page, $size); //是否有下一页
|
||||
return [
|
||||
'list' => $list,
|
||||
'page' => $page,
|
||||
'size' => $size,
|
||||
'count' => $count,
|
||||
'more' => $more
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Notes:获取专家详情
|
||||
* @param $cid int 专家id
|
||||
* @return array
|
||||
* @author: kiki
|
||||
*/
|
||||
public static function getsupplierDetail($id){
|
||||
|
||||
$where[] = ['del','=',0];
|
||||
$where[] = ['id','=',$id];
|
||||
$info =Db::name('supplier')
|
||||
->order('create_time desc')
|
||||
->field('id,name,remark,avatar,honor,position')
|
||||
->where($where)
|
||||
->find();
|
||||
|
||||
$goods_list=Db::name('goods g')
|
||||
->where(['g.del'=>0,'g.status'=>1,'g.supplier_id'=>$info['id']])
|
||||
->field('g.id as goods_id,g.name as goods_name,g.code,g.image,min_price as price,rongliang_name,sm.name as mud_name,s.name as supplier_name')
|
||||
->join('screen_mud sm', 'g.mud_id = sm.id')
|
||||
->join('supplier s', 'g.supplier_id = s.id')
|
||||
->order('g.id desc,g.sort desc')
|
||||
->select();
|
||||
return [
|
||||
'info' => $info,
|
||||
'goods_list' => $goods_list,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Notes:pc端获取公共数据
|
||||
* @param $user_id int 用户id
|
||||
|
|
@ -173,31 +228,220 @@ class PcLogic{
|
|||
* @author: kiki
|
||||
*/
|
||||
public static function commonData($user_id){
|
||||
$article = Db::name('article')
|
||||
->where(['del'=>0,'is_notice'=>1,'is_show'=>1])
|
||||
->order('create_time desc')
|
||||
->field('id,title')
|
||||
->limit(3)
|
||||
->select();
|
||||
$cart_num = 0;
|
||||
$coupon_num = 0;
|
||||
$nickname = '';
|
||||
|
||||
if($user_id){
|
||||
$cart_num = Db::name('cart')->where(['user_id'=>$user_id])->sum('goods_num');
|
||||
$coupon_num = Db::name('coupon_list')->where(['user_id'=>$user_id,'del'=>0,'status'=>0])->count();
|
||||
$nickname = Db::name('user')->where(['id'=>$user_id])->value('nickname');
|
||||
}
|
||||
$help_category_list = DB::name('help_category')
|
||||
->where('is_show', 1)
|
||||
->where(['del' => 0])
|
||||
->field('id,name')
|
||||
->select();
|
||||
$h_category_list = [];
|
||||
foreach ($help_category_list as $key => $help_category){
|
||||
$help_list = Db::name('help')
|
||||
->where(['cid'=>$help_category['id'],'del'=>0])
|
||||
->field('id,title')
|
||||
->select();
|
||||
$h_category_list[] = [
|
||||
'id' => $help_category['id'],
|
||||
'name' => $help_category['name'],
|
||||
'help_list'=> $help_list,
|
||||
];
|
||||
}
|
||||
return [
|
||||
'logo' => UrlServer::getFileUrl(ConfigServer::get('website', 'pc_logo')),
|
||||
'name' => ConfigServer::get('website', 'name',''),
|
||||
'nickname' => $nickname,
|
||||
'kfphone' => ConfigServer::get('service','phone',''),
|
||||
'kf_qr_code' => UrlServer::getFileUrl(ConfigServer::get('service','image','')),
|
||||
'oa_qr_code' => UrlServer::getFileUrl(ConfigServer::get('oa', 'qr_code', '')),
|
||||
'h_category_list'=>$h_category_list,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes:惠藏藏品列表
|
||||
* @author: kiki
|
||||
*/
|
||||
public static function cangpingoods(){
|
||||
|
||||
$ad_list = Db::name('ad a')
|
||||
->join('ad_position ap', 'a.pid = ap.id')
|
||||
->where(['pid' =>[24],'a.status' => 1,'a.del' => 0,'ap.status' => 1,'ap.del' => 0])
|
||||
->order('a.id desc')
|
||||
->field('a.*')
|
||||
->select();
|
||||
|
||||
|
||||
$ad = []; //广告
|
||||
foreach ($ad_list as $ad){
|
||||
$url = $ad['link'];
|
||||
$is_tab = 0;
|
||||
$params = [];
|
||||
switch ($ad['link_type']) {
|
||||
case 1:
|
||||
$page = Ad::getLinkPage($ad['client'], $ad['link']);
|
||||
$url = $page['path'];
|
||||
$is_tab = $page['is_tab'] ?? 0;
|
||||
break;
|
||||
case 2:
|
||||
$goods_path = Ad::getGoodsPath($ad['client']);
|
||||
$url = $goods_path;
|
||||
$params = [
|
||||
'id' => $ad['link'],
|
||||
];
|
||||
break;
|
||||
}
|
||||
//广告
|
||||
if(empty($tiemai_tup_ad) && 24 == $ad['pid']){
|
||||
$tiemai_tup_ad = [
|
||||
'image' => UrlServer::getFileUrl($ad['image']),
|
||||
'link' => $url,
|
||||
'link_type' => $ad['link_type'],
|
||||
'params' => $params,
|
||||
'is_tab' => $is_tab,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$where[] = ['g.del','=',0];
|
||||
$where[] = ['g.status','=',1];
|
||||
//藏品捡宝
|
||||
$where1[] = ['is_jiantreasure','=',1];
|
||||
//镇店藏品
|
||||
$where2[] = ['is_zdtreasure','=',1];
|
||||
|
||||
$jiantreasure_list =Db::name('goods g')
|
||||
->field('g.id as goods_id,g.name as goods_name,g.image,remark')
|
||||
->where($where)
|
||||
->where($where1)
|
||||
->page(0,7)
|
||||
->select();
|
||||
foreach ($jiantreasure_list as $key => $v1){
|
||||
$jiantreasure_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||||
}
|
||||
|
||||
$zdtreasure_list =Db::name('goods g')
|
||||
->field('g.id as goods_id,g.name as goods_name,g.image,remark')
|
||||
->where($where)
|
||||
->where($where2)
|
||||
->page(0,7)
|
||||
->select();
|
||||
foreach ($zdtreasure_list as $key => $v1){
|
||||
$zdtreasure_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||||
}
|
||||
return [
|
||||
'ad' => $tiemai_tup_ad,//广告
|
||||
'jiantreasure_list' => $jiantreasure_list,//藏品捡宝
|
||||
'zdtreasure_list' => $zdtreasure_list,//镇店藏品
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes:特卖商品列表
|
||||
* @author: kiki
|
||||
*/
|
||||
public static function temaigoods(){
|
||||
|
||||
$ad_list = Db::name('ad a')
|
||||
->join('ad_position ap', 'a.pid = ap.id')
|
||||
->where(['pid' =>[16,21],'a.status' => 1,'a.del' => 0,'ap.status' => 1,'ap.del' => 0])
|
||||
->order('a.id desc')
|
||||
->field('a.*')
|
||||
->select();
|
||||
|
||||
$tiemai_tup_ad = []; //特卖大图广告
|
||||
$tiemai_bott_ad = []; //特卖小图广告
|
||||
foreach ($ad_list as $ad){
|
||||
$url = $ad['link'];
|
||||
$is_tab = 0;
|
||||
$params = [];
|
||||
switch ($ad['link_type']) {
|
||||
case 1:
|
||||
$page = Ad::getLinkPage($ad['client'], $ad['link']);
|
||||
$url = $page['path'];
|
||||
$is_tab = $page['is_tab'] ?? 0;
|
||||
break;
|
||||
case 2:
|
||||
$goods_path = Ad::getGoodsPath($ad['client']);
|
||||
$url = $goods_path;
|
||||
$params = [
|
||||
'id' => $ad['link'],
|
||||
];
|
||||
break;
|
||||
}
|
||||
//特卖大图广告
|
||||
if(empty($tiemai_tup_ad) && 21 == $ad['pid']){
|
||||
$tiemai_tup_ad = [
|
||||
'image' => UrlServer::getFileUrl($ad['image']),
|
||||
'link' => $url,
|
||||
'link_type' => $ad['link_type'],
|
||||
'params' => $params,
|
||||
'is_tab' => $is_tab,
|
||||
];
|
||||
}
|
||||
//特卖小图广告
|
||||
if(16 == $ad['pid']){
|
||||
$tiemai_bott_ad[] = [
|
||||
'image' => UrlServer::getFileUrl($ad['image']),
|
||||
'link' => $url,
|
||||
'link_type' => $ad['link_type'],
|
||||
'params' => $params,
|
||||
'is_tab' => $is_tab,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$where[] = ['g.del','=',0];
|
||||
$where[] = ['g.status','=',1];
|
||||
//新品上架
|
||||
$where1[] = ['is_new','=',1];
|
||||
//精品推荐
|
||||
$where2[] = ['is_best','=',1];
|
||||
//今日促销
|
||||
$where3[] = ['is_like','=',1];
|
||||
|
||||
$xinpin_list =Db::name('goods g')
|
||||
->field('g.id as goods_id,g.name as goods_name,g.code,g.image,min_price as price,rongliang_name,s.name as supplier_name')
|
||||
->join('supplier s', 'g.supplier_id = s.id')
|
||||
->where($where)
|
||||
->where($where1)
|
||||
->page(0,7)
|
||||
->select();
|
||||
foreach ($xinpin_list as $key => $v1){
|
||||
$xinpin_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||||
}
|
||||
|
||||
$jingpin_list =Db::name('goods g')
|
||||
->field('g.id as goods_id,g.name as goods_name,g.image,min_price as price')
|
||||
->where($where)
|
||||
->where($where2)
|
||||
->page(0,6)
|
||||
->select();
|
||||
foreach ($jingpin_list as $key => $v1){
|
||||
$jingpin_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||||
}
|
||||
|
||||
$cuxiao_list =Db::name('goods g')
|
||||
->field('g.id as goods_id,g.name as goods_name,g.image,min_price as price')
|
||||
->where($where)
|
||||
->where($where3)
|
||||
->page(0,6)
|
||||
->select();
|
||||
foreach ($cuxiao_list as $key => $v1){
|
||||
$cuxiao_list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||||
}
|
||||
|
||||
return [
|
||||
'article' => $article,
|
||||
'logo' => UrlServer::getFileUrl(ConfigServer::get('website', 'pc_logo')),
|
||||
'name' => ConfigServer::get('website', 'name',''),
|
||||
'cart_num' => $cart_num,
|
||||
'coupon_num' => $coupon_num,
|
||||
'nickname' => $nickname,
|
||||
'oa_qr_code' => UrlServer::getFileUrl(ConfigServer::get('oa', 'qr_code', '')),
|
||||
'mnp_qr_code' => UrlServer::getFileUrl(ConfigServer::get('mnp', 'qr_code', '')),
|
||||
'da_ad' => $tiemai_tup_ad,//大图
|
||||
'xiao_ad' => $tiemai_bott_ad,//4小图
|
||||
'xinpin_list' => $xinpin_list,//新品
|
||||
'jingpin_list' => $jingpin_list,//精品
|
||||
'cuxiao_list' => $cuxiao_list//促销
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -215,11 +459,11 @@ class PcLogic{
|
|||
*/
|
||||
public static function goodsList($page,$size,$name,$category_id,$type,$sort_type,$sort){
|
||||
|
||||
$where[] = ['del','=',0];
|
||||
$where[] = ['status','=',1];
|
||||
$where[] = ['g.del','=',0];
|
||||
$where[] = ['g.status','=',1];
|
||||
//按商品名称搜索
|
||||
if($name){
|
||||
$where[] = ['name','like','%'.$name.'%'];
|
||||
$where[] = ['g.name','like','%'.$name.'%'];
|
||||
|
||||
}
|
||||
//按商品分类搜索
|
||||
|
|
@ -230,11 +474,25 @@ class PcLogic{
|
|||
if(1 != $type){
|
||||
switch ($type){
|
||||
case 2:
|
||||
//新品上架
|
||||
$where[] = ['is_new','=',1];
|
||||
break;
|
||||
case 3:
|
||||
//精品推荐
|
||||
$where[] = ['is_best','=',1];
|
||||
break;
|
||||
case 4:
|
||||
//今日促销
|
||||
$where[] = ['is_like','=',1];
|
||||
break;
|
||||
case 5:
|
||||
//藏品捡宝
|
||||
$where[] = ['is_jiantreasure','=',1];
|
||||
break;
|
||||
case 6:
|
||||
//镇店藏品
|
||||
$where[] = ['is_zdtreasure','=',1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
//按排序条件显示
|
||||
|
|
@ -242,20 +500,24 @@ class PcLogic{
|
|||
if($sort_type && $sort){
|
||||
$order = [$sort_type=>$sort];
|
||||
}
|
||||
|
||||
$goods = new Goods();
|
||||
|
||||
$count = $goods
|
||||
$count =Db::name('goods g')
|
||||
->join('screen_mud sm', 'g.mud_id = sm.id')
|
||||
->join('supplier s', 'g.supplier_id = s.id')
|
||||
->where($where)
|
||||
->count();
|
||||
|
||||
$list = $goods
|
||||
->where($where)
|
||||
->field('id,name,image,min_price as price,market_price,sales_sum+virtual_sales_sum as sales_sum')
|
||||
->order($order)
|
||||
->page($page, $size)
|
||||
->select();
|
||||
|
||||
$list =Db::name('goods g')
|
||||
->field('g.id as goods_id,g.name as goods_name,g.code,g.image,min_price as price,rongliang_name,sm.name as mud_name,s.name as supplier_name')
|
||||
->join('screen_mud sm', 'g.mud_id = sm.id')
|
||||
->join('supplier s', 'g.supplier_id = s.id')
|
||||
->where($where)
|
||||
->order($order)
|
||||
->page($page, $size)
|
||||
->select();
|
||||
foreach ($list as $key => $v1){
|
||||
$list[$key]['image']=UrlServer::getFileUrl($v1['image']);
|
||||
}
|
||||
$more = is_more($count, $page, $size); //是否有下一页
|
||||
|
||||
return [
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<?php /*a:2:{s:92:"/Library/WebServer/Documents/dggxiangmu/dggzichahu/application/admin/view/supplier/edit.html";i:1640333906;s:86:"/Library/WebServer/Documents/dggxiangmu/dggzichahu/application/admin/view/layout2.html";i:1628618358;}*/ ?>
|
||||
<?php /*a:2:{s:92:"/Library/WebServer/Documents/dggxiangmu/dggzichahu/application/admin/view/supplier/edit.html";i:1641741931;s:86:"/Library/WebServer/Documents/dggxiangmu/dggzichahu/application/admin/view/layout2.html";i:1628618358;}*/ ?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
|
|
@ -89,6 +89,22 @@
|
|||
<label class=" layui-form-mid layui-word-aux" id="image">建议尺寸:730*530像素</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">首页推荐</label>
|
||||
<div class="layui-input-inline" id="" >
|
||||
<input type="radio" name="is_notice" lay-filter="is_notice" style="width: 500px" value=1 title="是" <?php if($info['is_notice'] == 1): ?>checked<?php endif; ?>>
|
||||
<input type="radio" name="is_notice" lay-filter="is_notice" style="width: 500px" value=0 title="否"<?php if($info['is_notice'] == 0): ?>checked<?php endif; ?>>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class=" layui-form-mid layui-word-aux" id="notice">在商城首页的名家推荐显示</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" style="white-space: nowrap;">职位:</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
<input type="text" name="position" value="<?php echo htmlentities($info['position']); ?>" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" style="white-space: nowrap;">荣誉:</label>
|
||||
<div class="layui-input-inline" style="width: 400px">
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<?php /*a:2:{s:98:"/Library/WebServer/Documents/dggxiangmu/dggzichahu/application/admin/view/shop_setting/policy.html";i:1628618358;s:86:"/Library/WebServer/Documents/dggxiangmu/dggzichahu/application/admin/view/layout1.html";i:1628618358;}*/ ?>
|
||||
<?php /*a:2:{s:98:"/Library/WebServer/Documents/dggxiangmu/dggzichahu/application/admin/view/shop_setting/policy.html";i:1641735877;s:86:"/Library/WebServer/Documents/dggxiangmu/dggzichahu/application/admin/view/layout1.html";i:1628618358;}*/ ?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
|
|
@ -43,6 +43,8 @@
|
|||
<li class="layui-this">服务协议</li>
|
||||
<li>隐私政策</li>
|
||||
<li>售后保障</li>
|
||||
<li>选择理由</li>
|
||||
<li>支付方式</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">
|
||||
|
|
@ -65,6 +67,20 @@
|
|||
<textarea name="after_sale" id="after_sale" lay-verify="content" class="field-content"><?php echo htmlentities($config['after_sale']); ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-tab-item">
|
||||
<label class="layui-form-label"style="white-space: nowrap;">内容:</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="payment" id="payment" lay-verify="content" class="field-content"><?php echo htmlentities($config['payment']); ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-tab-item">
|
||||
<label class="layui-form-label"style="white-space: nowrap;">内容:</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="reason" id="reason" lay-verify="content" class="field-content"><?php echo htmlentities($config['reason']); ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
|
|
@ -102,12 +118,16 @@
|
|||
var service = likeedit.build('service'); //建立编辑器
|
||||
var privacy = likeedit.build('privacy'); //建立编辑器
|
||||
var after_sale = likeedit.build('after_sale'); //建立编辑器
|
||||
var payment = likeedit.build('payment'); //建立编辑器
|
||||
var reason = likeedit.build('reason'); //建立编辑器
|
||||
form.verify({
|
||||
|
||||
content: function() {
|
||||
likeedit.sync(service)
|
||||
likeedit.sync(privacy)
|
||||
likeedit.sync(after_sale)
|
||||
likeedit.sync(payment)
|
||||
likeedit.sync(reason)
|
||||
}
|
||||
})
|
||||
form.verify({
|
||||
|
|
|
|||
Loading…
Reference in New Issue