GoodsController.php
5.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?php
namespace api\portal\controller;
use cmf\controller\RestBaseController;
use Think\Db;
/**
* @title 积分商城
* @description 积分商城相关接口
*/
class GoodsController extends RestBaseController
{
/**
* @title 积分商城
* @description 积分商城首页渲染
* @author panhaowen
* @url /portal/Goods/index
* @method POST
*/
public function index()
{
$data=Db::name('goods')->where('status',1)->field('id,goods_name,before_price,now_price,vip_price,content,image')->select()->each(function ($item) {
$item['image'] =cmf_get_image_preview_url($item['image']);
return $item;
})->toArray();
$this->success('商城首页信息',$data);
}
/**
* @title 订单详情
* @description 订单详情页面
* @author panhaowen
* @url /portal/Goods/goodsOrder
* @method POST
* @header name:XX-Token require:1 default: desc:token
* @param name:id type:int require:1 other: desc:商品id
*/
public function goodsOrder()
{
$param=$this->request->param();
$data=Db::name('goods')->where('id',$param['id'])->field('id,goods_name,before_price,now_price,vip_price,content,image')->find();
$status=Db::name('user')->where('id',$this->getUserId())->find()['user_status'];
if ($status==1){
$data['price']=$data['now_price'];
}else if ($status==2){
$data['price']=$data['vip_price'];
}
$data['image']=cmf_get_image_preview_url($data['image']);
$data['address']=Db::name('address')->where(['user_id'=>$this->getUserId(),'status'=>1])->field('id,address,province')->find();
$this->success('订单详情信息',$data);
}
/**
* @title 立即兑换
* @description 立即兑换接口
* @author panhaowen
* @url /portal/Goods/orderPost
* @method POST
* @header name:XX-Token require:1 default: desc:token
* @param name:goods_id type:int require:1 other: desc:商品id
* @param name:address_id type:int require:1 other: desc:收货地址id
* @param name:remark type:text require:0 other: desc:备注
* @param name:count type:int require:1 other: desc:商品数量
* @param name:price type:int require:1 other: desc:实付金额
*/
public function orderPost()
{
$param=$this->request->param();
$user_score=Db::name('user')->where('id',$this->getUserId())->find()['score'];
if ($user_score<$param['price']){
$this->error(['code'=>40001,'msg'=>'用户积分不足']);
}
if (Db::name('goods')->where('id',$param['goods_id'])->find()['stock']<$param['count']){
$this->error(['code'=>40002,'msg'=>'商品库存不足']);
}
$re=Db::name('goods_order')->insert([
'user_id'=>$this->getUserId(),
'goods_id'=>$param['goods_id'],
'real_price'=>$param['price'],
'count'=>$param['count'],
'remark'=>$param['remark'],
'order_sn'=>cmf_get_order_sn(),
'create_time'=>time(),
'address_id'=>$param['address_id']
]);
if ($re) {
Db::name('user')->where('id',$this->getUserId())->setDec('score',$param['price']);
Db::name('user_score_log')->insert(['user_id'=>$this->getUserId(),'score'=>-$param['price'],'action'=>'消费','now_score'=>$user_score-$param['price'],'create_time'=>time()]);
Db::name('goods')->where('id',$param['goods_id'])->setDec('stock',$param['count']);
$this->success('兑换成功');
}else{
$this->error('兑换失败');
}
}
/**
* @title 添加收货地址提交
* @description 添加收货地址提交接口
* @author panhaowen
* @url /portal/Goods/addressPost
* @method POST
* @header name:XX-Token require:1 default: desc:token
* @param name:address type:varchar require:1 other: desc:详细地址
* @param name:name type:varchar require:1 other: desc:收货人姓名
* @param name:mobile type:varchar require:1 other: desc:收货人电话
* @param name:status type:int require:1 other: desc:0:非默认地址,1:默认地址
* @param name:province type:varchar require:1 other: desc:省市区
*/
public function addressPost()
{
$param=$this->request->param();
$param['user_id']=$this->getUserId();
$param['province']=str_replace(',',"",$param['province']);
$param['create_time']=time();
if ($param['status']==1){
Db::name('address')->where('user_id',$param['user_id'])->update(['status'=>0]);
}
Db::name('address')->insert($param);
$this->success('收货地址添加成功');
}
/**
* @title 收货地址列表
* @description 收货地址列表接口
* @author panhaowen
* @url /portal/Goods/address
* @method POST
* @header name:XX-Token require:1 default: desc:token
*/
public function address()
{
$data=Db::name('address')->where('user_id',$this->getUserId())->select()->toArray();
$this->success('用户全部地址',$data);
}
/**
* @title 收货地址选择
* @description 收货地址选择接口
* @author panhaowen
* @url /portal/Goods/addressChoose
* @method POST
* @header name:XX-Token require:1 default: desc:token
* @param name:id type:int require:1 other: desc:收货地址id
*/
public function addressChoose()
{
$param=$this->request->param();
$data=Db::name('address')->where('id',$param['id'])->find();
$this->success('选择地址数据',$data);
}
}