parent
d6520a1fd0
commit
0aa1f234ef
|
|
@ -6,21 +6,127 @@ use addon\futures\model\Futures as FuturesModel;
|
|||
|
||||
class Futures extends BaseApi{
|
||||
/**
|
||||
* 列表
|
||||
* 售卖列表
|
||||
* @return false|string
|
||||
*/
|
||||
public function list()
|
||||
{
|
||||
return $this->response();
|
||||
$token = $this->checkToken();
|
||||
if ($token['code'] < 0) return $this->response($token);
|
||||
|
||||
$fenxiao = model('fenxiao')->getInfo([['member_id', '=', $this->member_id]]);
|
||||
// $is_read = FALSE;
|
||||
// if(empty($fenxiao) || $fenxiao['diamond'] < 0){
|
||||
// $is_read =
|
||||
// }//TODO 判断当前时间是否在秒杀开启时间,并区分有无钻石用户
|
||||
|
||||
$status = input('status', 'miaosha');
|
||||
|
||||
$condition = [
|
||||
['a.site_id','=',$this->site_id]
|
||||
];
|
||||
|
||||
switch($status){
|
||||
case 'miaosha':
|
||||
$condition[] = ['status', '=', '2'];
|
||||
break;
|
||||
case 'jianlou':
|
||||
$condition[] = ['status', '=', '7'];
|
||||
break;
|
||||
default:
|
||||
$condition[] = ['status', '=', '2'];
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// 获取内容
|
||||
$field = [
|
||||
'seller.username as seller_username',
|
||||
'seller.nickname as seller_nickname',
|
||||
'seller.headimg as seller_headimg',
|
||||
'g.goods_name',
|
||||
'g.goods_image',
|
||||
'a.id',
|
||||
'a.total',
|
||||
'a.unit_price',
|
||||
'a.price',
|
||||
'a.status',
|
||||
'a.release_time',
|
||||
'a.sell_time',
|
||||
'a.created_time',
|
||||
'a.take_time',
|
||||
];
|
||||
// 表关联
|
||||
$join = [
|
||||
['member seller', 'seller.member_id = a.seller_uid', 'left'],// 获取卖家信息
|
||||
['goods g', 'g.goods_id = a.goods_id', 'left'],// 获取商品信息
|
||||
];
|
||||
|
||||
$futuresModel = new FuturesModel;
|
||||
$page = input('page', 1);
|
||||
$page_size = input('page_size', PAGE_LIST_ROWS);
|
||||
$list = $futuresModel->getPageList($condition, $page, $page_size, 'a.created_time desc,a.id desc', $field, 'a', $join);
|
||||
return $this->response($list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表
|
||||
* 个人中心列表
|
||||
* @return false|string
|
||||
*/
|
||||
public function myList()
|
||||
{
|
||||
return $this->response();
|
||||
$token = $this->checkToken();
|
||||
if ($token['code'] < 0) return $this->response($token);
|
||||
|
||||
$status = input('status', 'all');
|
||||
|
||||
$condition = [
|
||||
['a.seller_uid', '=', $this->member_id],
|
||||
['a.site_id','=',$this->site_id]
|
||||
];
|
||||
|
||||
switch($status){
|
||||
case 'stock':
|
||||
$condition[] = ['a.status', '=', '1'];
|
||||
break;
|
||||
case 'release':
|
||||
$condition[] = ['a.status', 'in', [2, 6, 7]];
|
||||
break;
|
||||
case 'sold':
|
||||
$condition[] = ['a.status', '=', '3'];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// 获取内容
|
||||
$field = [
|
||||
'seller.username as seller_username',
|
||||
'seller.nickname as seller_nickname',
|
||||
'seller.headimg as seller_headimg',
|
||||
'g.goods_name',
|
||||
'g.goods_image',
|
||||
'a.id',
|
||||
'a.total',
|
||||
'a.unit_price',
|
||||
'a.price',
|
||||
'a.status',
|
||||
'a.release_time',
|
||||
'a.sell_time',
|
||||
'a.created_time',
|
||||
'a.take_time',
|
||||
];
|
||||
// 表关联
|
||||
$join = [
|
||||
['member seller', 'seller.member_id = a.seller_uid', 'left'],// 获取卖家信息
|
||||
['goods g', 'g.goods_id = a.goods_id', 'left'],// 获取商品信息
|
||||
];
|
||||
|
||||
$futuresModel = new FuturesModel;
|
||||
$page = input('page', 1);
|
||||
$page_size = input('page_size', PAGE_LIST_ROWS);
|
||||
$list = $futuresModel->getPageList($condition, $page, $page_size, 'a.created_time desc,a.id desc', $field, 'a', $join);
|
||||
return $this->response($list);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -29,10 +135,21 @@ class Futures extends BaseApi{
|
|||
*/
|
||||
public function release()
|
||||
{
|
||||
//TODO 身份验证,拆单
|
||||
$token = $this->checkToken();
|
||||
if ($token['code'] < 0) return $this->response($token);
|
||||
|
||||
$id = input('id', 0);
|
||||
$price = input('price', 0);
|
||||
|
||||
$date = model('futures')->getInfo([['id', '=', $id],['seller_uid' => $this->member_id]]);
|
||||
if(empty($date)){
|
||||
return $this->response($this->error('','发布失败'));
|
||||
}
|
||||
if($price <= $date['unit_price'] * (1 + 0 / 100) || $price >= $date['unit_price'] * (1 + 8 / 100)){//TODO 后台配置范围
|
||||
return $this->response($this->error('','发布失败'));
|
||||
}
|
||||
//TODO 拆单
|
||||
|
||||
$futuresModel = new FuturesModel;
|
||||
return $this->response($futuresModel->release($id, $price));
|
||||
}
|
||||
|
|
@ -42,11 +159,20 @@ class Futures extends BaseApi{
|
|||
* @return false|string
|
||||
*/
|
||||
public function stock(){
|
||||
//TODO 身份验证
|
||||
$token = $this->checkToken();
|
||||
if ($token['code'] < 0) return $this->response($token);
|
||||
|
||||
$id = input('id', 0);
|
||||
|
||||
$date = model('futures')->getInfo([['id', '=', $id],['seller_uid' => $this->member_id]]);
|
||||
if(empty($date)){
|
||||
return $this->response($this->error('','下架失败'));
|
||||
}
|
||||
|
||||
$futuresModel = new FuturesModel;
|
||||
return $this->response($futuresModel->stock($id));
|
||||
}
|
||||
|
||||
//TODO 提货
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace addon\futures\model;
|
||||
use app\model\system\Config as ConfigModel;
|
||||
use app\model\BaseModel;
|
||||
use think\facade\Cache;
|
||||
|
||||
|
|
@ -128,4 +129,28 @@ class Futures extends BaseModel{
|
|||
Cache::store('redis_concurrent')->set('addon_futures_'.$id,'1');
|
||||
return $this->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 写入基本设置
|
||||
* @param $data
|
||||
* @param $is_use
|
||||
* @param $site_id
|
||||
* @return array
|
||||
*/
|
||||
public function setBasicsConfig($data, $is_use, $site_id)
|
||||
{
|
||||
$config = new ConfigModel();
|
||||
return $config->setConfig($data, '秒杀基本配置', $is_use, [['site_id', '=', $site_id], ['app_module', '=', 'shop'], ['config_key', '=', 'MIAOSHA_BASICS_CONFIG']]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取基本设置
|
||||
* @param $site_id
|
||||
* @return array
|
||||
*/
|
||||
public function getBasicsConfig($site_id)
|
||||
{
|
||||
$config = new ConfigModel();
|
||||
return $config->getConfig([['site_id', '=', $site_id], ['app_module', '=', 'shop'], ['config_key', '=', 'MIAOSHA_BASICS_CONFIG']]);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
|
||||
namespace addon\futures\shop\controller;
|
||||
use addon\fenxiao\model\Config as ConfigModel;
|
||||
use app\shop\controller\BaseShop;
|
||||
|
||||
class Config extends BaseShop{
|
||||
|
||||
/**
|
||||
* 基础设置
|
||||
*/
|
||||
public function basics()
|
||||
{
|
||||
$model = new ConfigModel();
|
||||
|
||||
if (request()->isAjax()) {
|
||||
$res = $model->setFenxiaoBasicsConfig($this->request->param(), 1, $this->site_id);
|
||||
return $res;
|
||||
} else {
|
||||
$basics = $model->getFenxiaoBasicsConfig($this->site_id);
|
||||
$this->assign("info", $basics[ 'data' ][ 'value' ]);
|
||||
|
||||
$this->forthMenu();
|
||||
return $this->fetch('config/basics');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,190 @@
|
|||
{extend name="app/shop/view/base.html"/}
|
||||
{block name="resources"}
|
||||
<style>
|
||||
#container{ width: 650px; height: 500px; }
|
||||
#container > div {z-index: 500!important}
|
||||
.empty-address{ display: none; }
|
||||
.address-content {display: inline-block;vertical-align: top;}
|
||||
.form-wrap {margin-top: 0;}
|
||||
</style>
|
||||
{/block}
|
||||
{block name="main"}
|
||||
|
||||
<div class="layui-form-item time-view">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">秒杀日期:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="radio" name="time_type" value="0" title="每天" lay-filter="time_type" {if !isset($info.time_type) || $info.time_type == 0}checked{/if}/>
|
||||
<input type="radio" name="time_type" value="1" title="自定义" lay-filter="time_type" {if !isset($info.time_type) || $info.time_type == 1 }checked{/if}/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="time-view">
|
||||
<div class="layui-form-item time-type-view" lay-verify="time_week">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="checkbox" value="1" class='time-week' name="time_week[]" title="周一" lay-skin="primary" {if !empty($info.time_week) && in_array(1,$info.time_week)} checked {/if}>
|
||||
<input type="checkbox" value="2" class='time-week' name="time_week[]" title="周二" lay-skin="primary" {if !empty($info.time_week) && in_array(2,$info.time_week)} checked {/if}>
|
||||
<input type="checkbox" value="3" class='time-week' name="time_week[]" title="周三" lay-skin="primary" {if !empty($info.time_week) && in_array(3,$info.time_week)} checked {/if}>
|
||||
<input type="checkbox" value="4" class='time-week' name="time_week[]" title="周四" lay-skin="primary" {if !empty($info.time_week) && in_array(4,$info.time_week)} checked {/if}>
|
||||
<input type="checkbox" value="5" class='time-week' name="time_week[]" title="周五" lay-skin="primary" {if !empty($info.time_week) && in_array(5,$info.time_week)} checked {/if}>
|
||||
<input type="checkbox" value="6" class='time-week' name="time_week[]" title="周六" lay-skin="primary" {if !empty($info.time_week) && in_array(6,$info.time_week)} checked {/if}>
|
||||
<input type="checkbox" value="0" class='time-week' name="time_week[]" title="周日" lay-skin="primary" {if !empty($info.time_week) && in_array(0,$info.time_week)} checked {/if}>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item time-type-view-all" >
|
||||
<label class="layui-form-label">秒杀时间:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input" id="startTime" lay-verify="start_time" placeholder="秒杀开始时间" value="" readonly >
|
||||
<input type="hidden" class="layui-input" name="start_time" placeholder="秒杀开始时间" value="{$info.start_time}">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">~</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input" id="endTime" lay-verify="end_time" placeholder="自提结束时间" value="" readonly >
|
||||
<input type="hidden" class="layui-input" name="end_time" placeholder="秒杀结束时间" value="{$info.end_time}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
|
||||
<!-- <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>-->
|
||||
<a id="storeImage"></a>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script>
|
||||
var form, repeat_flag, map_class;
|
||||
var saveData = null;
|
||||
var totalUploadNum = 0;
|
||||
var completeUploadNum = 0;
|
||||
var upload;
|
||||
|
||||
layui.use(['form','laydate'], function() {
|
||||
var laydate = layui.laydate;
|
||||
form = layui.form;
|
||||
repeat_flag = false;//防重复标识
|
||||
|
||||
form.render();
|
||||
|
||||
//时间选择器
|
||||
laydate.render({
|
||||
elem: '#startTime'
|
||||
, type: 'time'
|
||||
,value: "{:date('H:i:s', strtotime(date('Y-m-d')) + $info.start_time)}"
|
||||
,done: function(value, date, endDate){
|
||||
var time = date.hours * 3600 + date.minutes * 60 + date.seconds;
|
||||
$("input[name=start_time]").val(time);
|
||||
}
|
||||
|
||||
});
|
||||
//时间选择器
|
||||
laydate.render({
|
||||
elem: '#endTime'
|
||||
, type: 'time'
|
||||
,value: "{:date('H:i:s', strtotime(date('Y-m-d')) + $info.end_time)}"
|
||||
,done: function(value, date, endDate){
|
||||
var time = date.hours * 3600 + date.minutes * 60 + date.seconds;
|
||||
$("input[name=end_time]").val(time);
|
||||
}
|
||||
});
|
||||
|
||||
form.verify({
|
||||
start_time: function(value, item){ //value:表单的值、item:表单的DOM对象
|
||||
var end_time = $("input[name=end_time]").val();
|
||||
var start_time = $("input[name=start_time]").val();
|
||||
if(parseInt(start_time) > parseInt(end_time)){
|
||||
return '营业开始时间不能大于自提结束时间';
|
||||
}
|
||||
|
||||
},
|
||||
end_time: function(value, item){ //value:表单的值、item:表单的DOM对象
|
||||
var end_time = $("input[name=end_time]").val();
|
||||
var start_time = $("input[name=start_time]").val();
|
||||
|
||||
if(parseInt(end_time) < parseInt(start_time)){
|
||||
return '营业结束时间不能小于自提开始时间';
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
timeTypeChange($("input[name=time_type]:checked").val());
|
||||
|
||||
form.on('radio(time_type)', function(data){
|
||||
timeTypeChange(data.value);
|
||||
});
|
||||
form.on('switch(pickup)', function(data){
|
||||
if(data.elem.checked){
|
||||
$('.time-view').removeClass('layui-hide')
|
||||
}else{
|
||||
$('.time-view').addClass('layui-hide')
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 验证码
|
||||
*/
|
||||
form.verify({
|
||||
required : function(value, item){
|
||||
var msg = $(item).attr("placeholder") != undefined ? $(item).attr("placeholder") : '';
|
||||
if(value == '') return msg;
|
||||
},
|
||||
time_week: function(){
|
||||
if ($('[name="is_pickup"]').is(':checked') && $('[name="time_type"]:checked').val() == 1 && !$('.time-week:checked').length)
|
||||
return '请选择可配送日期';
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 监听提交
|
||||
*/
|
||||
form.on('submit(save)', function(data){
|
||||
if(repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
dataType: 'JSON',
|
||||
url : ns.url("futures://shop/config/basics"),
|
||||
async : true,
|
||||
data : data.field,
|
||||
success : function(res) {
|
||||
repeat_flag = false;
|
||||
if (res.code == 0) {
|
||||
location.reload();
|
||||
// layer.confirm('编辑成功', {
|
||||
// title: '操作提示',
|
||||
// btn: ['返回列表', '继续操作'],
|
||||
// yes: function() {
|
||||
// location.href = ns.url("store://shop/store/lists")
|
||||
// },
|
||||
// btn2: function() {
|
||||
// location.reload();
|
||||
// }
|
||||
// });
|
||||
} else {
|
||||
layer.msg(res.message);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function back() {
|
||||
location.href = ns.url("store://shop/store/lists");
|
||||
}
|
||||
|
||||
function timeTypeChange(type){
|
||||
if(type == 1){
|
||||
$('.time-type-view').show();
|
||||
}else{
|
||||
$('.time-type-view').hide();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
Loading…
Reference in New Issue