Commit c47063eb by LiuJunYi

banner顺序,购买限制,销售量

parent a9ef5176
...@@ -15,27 +15,28 @@ class Banner extends AuthBase ...@@ -15,27 +15,28 @@ class Banner extends AuthBase
public function index() public function index()
{ {
$status = input('get.status'); $status = input('get.status');
$condition = []; $condition = [];
if ($status) { if ($status) {
$condition['status'] = $status; $condition['status'] = $status;
} }
$banner_model = model('banner'); $banner_model = model('banner');
$banner_list = $banner_model->where($condition)->order('created_at', 'desc')->paginate(10, false, ['query' => ['status' => $status]]); $banner_list = $banner_model->where($condition)->order('sort desc,created_at desc')->paginate(10, false, ['query' => ['status' => $status]]);
$this->assign('banner_list', $banner_list); $this->assign('banner_list', $banner_list);
return $this->fetch(); return $this->fetch();
} }
//新建banner //新建banner
public function create() public function create()
{ {
if (request()->isPost()) { if (request()->isPost()) {
$data = input('post.'); $data = input('post.');
$banner_model = model('banner'); $banner_model = model('banner');
$upload = new Upload(); $upload = new Upload();
$result = $upload->sava(input('file.image')); $result = $upload->sava(input('file.image'));
if (!$result['error']) { if (!$result['error']) {
$image = $result['result']['url']; $image = $result['result']['url'];
$data['image'] = $image; $data['image'] = $image;
} }
$res = $banner_model->data($data)->save(); $res = $banner_model->data($data)->save();
...@@ -49,6 +50,7 @@ class Banner extends AuthBase ...@@ -49,6 +50,7 @@ class Banner extends AuthBase
return $this->fetch('update'); return $this->fetch('update');
} }
} }
//更新banner //更新banner
public function update($id) public function update($id)
{ {
...@@ -57,11 +59,11 @@ class Banner extends AuthBase ...@@ -57,11 +59,11 @@ class Banner extends AuthBase
$data = input('post.'); $data = input('post.');
if (input('file.image')) { if (input('file.image')) {
$banner_info = ($banner_model->find('id')); $banner_info = ($banner_model->find('id'));
$old_image = $banner_info['image']; $old_image = $banner_info['image'];
$upload = new Upload(); $upload = new Upload();
$result = $upload->sava(input('file.image')); $result = $upload->sava(input('file.image'));
if (!$result['error']) { if (!$result['error']) {
$image = $result['result']['url']; $image = $result['result']['url'];
$data['image'] = $image; $data['image'] = $image;
} }
} }
...@@ -77,13 +79,14 @@ class Banner extends AuthBase ...@@ -77,13 +79,14 @@ class Banner extends AuthBase
return $this->fetch(); return $this->fetch();
} }
} }
//删除banner //删除banner
public function delete() public function delete()
{ {
$id = input('post.id'); $id = input('post.id');
$res = model('banner')->destroy($id); $res = model('banner')->destroy($id);
$banner_info = model('banner')->find($id); $banner_info = model('banner')->find($id);
$old_image = $banner_info['image']; $old_image = $banner_info['image'];
model('resource')->where('address', $old_image)->delete(); model('resource')->where('address', $old_image)->delete();
if ($res) { if ($res) {
$this->success('删除成功', '', '', 1); $this->success('删除成功', '', '', 1);
...@@ -91,4 +94,12 @@ class Banner extends AuthBase ...@@ -91,4 +94,12 @@ class Banner extends AuthBase
$this->error('删除失败', '', '', 1); $this->error('删除失败', '', '', 1);
} }
} }
public function changeSort($id, $sort = 0)
{
$info = \app\common\model\Banner::get($id);
$info->sort = $sort;
$info->save();
return ['code' => 0, 'msg' => '修改成功'];
}
} }
...@@ -7,18 +7,21 @@ ...@@ -7,18 +7,21 @@
<div class="row margin-bottom"> <div class="row margin-bottom">
<div class="col-md-12"> <div class="col-md-12">
<form class="form-inline pull-left" method="GET" id="order-search" action="<?php echo url('@admin/banner/index')?>"> <form class="form-inline pull-left" method="GET" id="order-search"
action="<?php echo url('@admin/banner/index')?>">
<div class="form-group"> <div class="form-group">
<select name="status" class="form-control" id="status"> <select name="status" class="form-control" id="status">
<option value="">显示状态</option> <option value="">显示状态</option>
<option value="1" {if condition="input('status')=='1'"}selected{/if}>显示</option> <option value="1" {if condition="input('status')=='1'" }selected{
<option value="2" {if condition="input('status')=='2'"}selected{/if}>不显示</option> /if}>显示</option>
<option value="2" {if condition="input('status')=='2'" }selected{
/if}>不显示</option>
</select> </select>
</div> </div>
<!--<button type="submit" class="btn btn-primary">搜索</button>--> <!--<button type="submit" class="btn btn-primary">搜索</button>-->
</form> </form>
<div class="pull-left margin-left"> <div class="pull-left margin-left">
<a href="{:url('admin/banner/create')}" class="btn btn-success">添加轮播图</a> <a href="{:url('admin/banner/create')}" class="btn btn-success">添加轮播图</a>
</div> </div>
</div> </div>
</div> </div>
...@@ -28,11 +31,11 @@ ...@@ -28,11 +31,11 @@
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
<!--<colgroup>--> <!--<colgroup>-->
<!--<col style="width: 2%;">--> <!--<col style="width: 2%;">-->
<!--<col style="width: 80%;">--> <!--<col style="width: 80%;">-->
<!--<col style="width: 5%;">--> <!--<col style="width: 5%;">-->
<!--<col style="width: 5%;">--> <!--<col style="width: 5%;">-->
<!--<col style="width: 10%;">--> <!--<col style="width: 10%;">-->
<!--</colgroup>--> <!--</colgroup>-->
<thead> <thead>
<tr> <tr>
...@@ -40,6 +43,7 @@ ...@@ -40,6 +43,7 @@
<th>图片</th> <th>图片</th>
<th>类型</th> <th>类型</th>
<th>地址</th> <th>地址</th>
<th>排序</th>
<th>是否显示</th> <th>是否显示</th>
<th>发布时间</th> <th>发布时间</th>
<th>操作</th> <th>操作</th>
...@@ -55,24 +59,28 @@ ...@@ -55,24 +59,28 @@
</a> </a>
</td> </td>
<td> <td>
{if condition="$vo.type==1"} {if condition="$vo.type==1"}
小程序页面路径 小程序页面路径
{else/} {else/}
网页链接地址 网页链接地址
{/if} {/if}
</td> </td>
<td>{$vo.url}</td> <td>{$vo.url}</td>
<td><input data-id="{$vo.id}" class="changeSort" type="text" name="sort" value="{$vo['sort']}">
</td>
<td> <td>
{if condition="$vo.status == 1"} {if condition="$vo.status == 1"}
显示 显示
{else/} {else/}
不显示 不显示
{/if} {/if}
</td> </td>
<td>{$vo.created_at}</td> <td>{$vo.created_at}</td>
<td> <td>
<a href="{:url('admin/banner/update',['id'=>$vo.id])}" class="btn btn-xs btn-primary"><i class="fa fa-pencil"></i></a> <a href="{:url('admin/banner/update',['id'=>$vo.id])}" class="btn btn-xs btn-primary"><i
<a href="javascript:" oid="{$vo.id}" class="btn btn-xs btn-danger btn-delete"><i class="fa fa-trash"></i></a> class="fa fa-pencil"></i></a>
<a href="javascript:" oid="{$vo.id}" class="btn btn-xs btn-danger btn-delete"><i
class="fa fa-trash"></i></a>
</td> </td>
</tr> </tr>
{/volist} {/volist}
...@@ -90,27 +98,40 @@ ...@@ -90,27 +98,40 @@
<script type="text/javascript"> <script type="text/javascript">
// 文档加载完毕之后,会进入该方法 // 文档加载完毕之后,会进入该方法
$("#status").change(function(){ $("#status").change(function () {
$("#order-search").submit(); $("#order-search").submit();
}); });
$(function(){ $(function () {
$(".btn-delete").click(function(){ $(".btn-delete").click(function () {
var _this = $(this); var _this = $(this);
var url = "{:url('admin/banner/delete')}"; var url = "{:url('admin/banner/delete')}";
var oid = _this.attr('oid'); var oid = _this.attr('oid');
showDialog("提示", "确定删除该轮播图吗?", function(){ showDialog("提示", "确定删除该轮播图吗?", function () {
// ajax post 方法 // ajax post 方法
$.post(url, {id:oid}, function (res) { $.post(url, {id: oid}, function (res) {
// var res = JSON.parse(res); // var res = JSON.parse(res);
if (res.code == 1) { if (res.code == 1) {
// javascript 的默认弹出提示方法 // javascript 的默认弹出提示方法
_this.remove(); _this.remove();
$("#tr_"+oid).fadeOut(); $("#tr_" + oid).fadeOut();
} else { } else {
alert(res.msg); alert(res.msg);
} }
}); });
}); });
}); });
//
$('.changeSort').change(function () {
let sort = $(this).val()
let id = $(this).attr('data-id')
$.post("{:url('changeSort')}",{id:id,sort:sort},function (res) {
if(res.code===0){
layer.msg(res.msg,function(){
location.reload()
})
}
})
})
}); });
</script> </script>
...@@ -20,9 +20,9 @@ class Banner extends Base ...@@ -20,9 +20,9 @@ class Banner extends Base
public function index() public function index()
{ {
$banner = BannerModel::where('status', 1) $banner = BannerModel::where('status', 1)
->order('id', 'desc') ->order('sort desc,id desc')
->select(); ->select();
if (!$banner) return ['code' => 1, 'msg' => '没有更多']; if (!$banner) return ['code' => 1, 'msg' => '没有更多'];
return ['code' => 0, 'msg' => 'success', 'data' => $banner]; return ['code' => 0, 'msg' => 'success', 'data' => $banner];
} }
} }
\ No newline at end of file
...@@ -61,6 +61,11 @@ class Order extends Base ...@@ -61,6 +61,11 @@ class Order extends Base
//活动过期 //活动过期
return ['code' => 1, 'msg' => '活动已截止报名']; return ['code' => 1, 'msg' => '活动已截止报名'];
} }
//检验VIP超过
if(UserModel::get($this->userinfo[0])['is_vip']){
if(input('sign_limits')+(new OrderModel)->getBuyVipLimits($this->userinfo[0],$project['id'])>$project['vip_limits'])
return ['code'=>1,'msg'=>'您已超过此活动的会员限购次数,如需额外购买,请联系客服处理!'];
}
//生成订单 //生成订单
try { try {
//开始事务 //开始事务
......
...@@ -424,13 +424,15 @@ class Project extends Base ...@@ -424,13 +424,15 @@ class Project extends Base
$project['is_vip'] = $user['is_vip']; $project['is_vip'] = $user['is_vip'];
if($project['type'] == 1){ if($project['type'] == 1){
//会员限购 //会员限购
$project['buy_vip_limits'] = \app\common\model\Order::where([ $project['buy_vip_limits'] = (new \app\common\model\Order)->getBuyVipLimits($this->userinfo[0],$project['id']);
'uid'=>$this->userinfo[0],
'pid'=>$project['id'],
'status'=>['in','1,2,3'],
'is_refund'=>['neq',3]
])->count('id');
} }
//获取销售量
$project['sales_count'] = \app\common\model\Order::where([
'pid'=>$project['id'],
'status'=>['in','1,2,3'],
'is_refund'=>['neq',3]
])->count('id');
$project['sales_count'] = (new \app\common\model\Order)->getSales($project['id']);
return ['code' => 0, 'msg' => 'success', 'data' => $project]; return ['code' => 0, 'msg' => 'success', 'data' => $project];
} }
......
...@@ -21,12 +21,15 @@ class Order extends BaseModel ...@@ -21,12 +21,15 @@ class Order extends BaseModel
protected $table = 'mr_user_orders'; protected $table = 'mr_user_orders';
// 订单退款信息 // 订单退款信息
public function linkrefund(){ public function linkrefund()
return $this->hasOne('refund','order_id','id')->field('id'); {
return $this->hasOne('refund', 'order_id', 'id')->field('id');
} }
// 订单退款信息 // 订单退款信息
public function linkcomment(){ public function linkcomment()
return $this->hasOne('comment','order_id','id')->field('id'); {
return $this->hasOne('comment', 'order_id', 'id')->field('id');
} }
...@@ -72,69 +75,96 @@ class Order extends BaseModel ...@@ -72,69 +75,96 @@ class Order extends BaseModel
{ {
//获取家庭组限制 //获取家庭组限制
$project = ProjectModel::lock(true)->find($pid); $project = ProjectModel::lock(true)->find($pid);
if ($project['sign_limits'] >= intval($project['sign_num'])+$sign_limits) { if ($project['sign_limits'] >= intval($project['sign_num']) + $sign_limits) {
return true; return true;
} }
return false; return false;
} }
//订单状态 //订单状态
public function getStatusTextAttr($value,$data) public function getStatusTextAttr($value, $data)
{ {
$str = ''; $str = '';
if($data['status'] == config('order_status.pay')){ if ($data['status'] == config('order_status.pay')) {
//进行中 //进行中
if($data['is_refund'] == config('refund_status.no')){ if ($data['is_refund'] == config('refund_status.no')) {
$str = '申请退款'; $str = '申请退款';
}elseif($data['is_refund'] == config('refund_status.to_examine')){ } elseif ($data['is_refund'] == config('refund_status.to_examine')) {
$str = '退款申请中'; $str = '退款申请中';
}elseif($data['is_refund'] == config('refund_status.no_pass')){ } elseif ($data['is_refund'] == config('refund_status.no_pass')) {
$str = '退款失败'; $str = '退款失败';
} }
}elseif($data['status'] == config('order_status.wait_comment')){ } elseif ($data['status'] == config('order_status.wait_comment')) {
//待评价 //待评价
if($data['is_comment'] == config('comment_status.no')){ if ($data['is_comment'] == config('comment_status.no')) {
$str = '待评价'; $str = '待评价';
}elseif($data['is_comment'] == config('comment_status.to_examine')){ } elseif ($data['is_comment'] == config('comment_status.to_examine')) {
$str = '评价审核中'; $str = '评价审核中';
}elseif($data['is_comment'] == config('comment_status.no_pass')){ } elseif ($data['is_comment'] == config('comment_status.no_pass')) {
$str = '评价失败'; $str = '评价失败';
} }
}elseif($data['status'] == config('order_status.complete')){ } elseif ($data['status'] == config('order_status.complete')) {
//待评价 //待评价
if($data['is_comment'] == config('comment_status.pass')){ if ($data['is_comment'] == config('comment_status.pass')) {
$str = '已完成'; $str = '已完成';
} }
if($data['is_refund'] == config('refund_status.pass')){ if ($data['is_refund'] == config('refund_status.pass')) {
$str = '已退款'; $str = '已退款';
} }
} }
return $str; return $str;
} }
public function getStatusAdminTextAttr($value,$data) public function getStatusAdminTextAttr($value, $data)
{ {
$str = ''; $str = '';
if($data['status'] == config('order_status.pay')){ if ($data['status'] == config('order_status.pay')) {
//进行中 //进行中
$str="进行中"; $str = "进行中";
}elseif($data['status'] == config('order_status.wait_comment')){ } elseif ($data['status'] == config('order_status.wait_comment')) {
//待评价 //待评价
$str = '待评价'; $str = '待评价';
}elseif($data['status'] == config('order_status.complete')){ } elseif ($data['status'] == config('order_status.complete')) {
//待评价 //待评价
if($data['is_comment'] == config('comment_status.pass')){ if ($data['is_comment'] == config('comment_status.pass')) {
$str = '已完成'; $str = '已完成';
} }
if($data['is_refund'] == config('refund_status.pass')){ if ($data['is_refund'] == config('refund_status.pass')) {
$str = '已退款'; $str = '已退款';
} }
}elseif($data['status'] == 0){ } elseif ($data['status'] == 0) {
$str = '未付款'; $str = '未付款';
} }
return $str; return $str;
} }
public function getBuyVipLimits($user_id, $project_id)
{
$list = $this->where([
'uid' => $user_id,
'pid' => $project_id,
'status' => ['in', '1,2,3'],
'is_refund' => ['neq', 3]
])->select();
$sum = 0;
foreach ($list as $v) {
$sum += $v['extras']['sign_limits'];
}
return $sum;
}
public function getSales($project_id)
{
$list = $this->where([
'pid' => $project_id,
'status' => ['in', '1,2,3'],
'is_refund' => ['neq', 3]
])->select();
$sum = 0;
foreach ($list as $v) {
$sum += $v['extras']['sign_limits'];
}
return $sum;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment