作者 SHW\戥岁。。

销量

... ... @@ -24,59 +24,61 @@ class Notify extends Api
public function orderNotify()
{
$paytype = $this->request->param('type');
$pay = Service::checkNotify($paytype);
$pay = Service::checkNotify($paytype);
if (!$pay) {
return '签名错误';
}
$data = $pay->verify();
if (!is_array($data)) $data = json_decode($data,true);
$model = new \app\api\model\Order();
$goodsmodel = new \app\api\model\OrderGoods();
$skumodel = new \app\api\model\GoodsSpec();
if (!is_array($data)) $data = json_decode($data, true);
$model = new \app\api\model\Order();
$goodsmodel = new \app\api\model\OrderGoods();
$skumodel = new \app\api\model\GoodsSpec();
$goods_model = new \app\api\model\Goods();
$buymodel = new \app\api\model\UserBuylist();
$buymodel = new \app\api\model\UserBuylist();
try {
$out_trade_no = $data['out_trade_no'];
$order = $model
->where('order_no',$out_trade_no)
->where('pay_status','10')
->where('order_status','10')
$order = $model
->where('order_no', $out_trade_no)
->where('pay_status', '10')
->where('order_status', '10')
->find();
if (!$order) $this->error('订单不存在');
$order->pay_status = '20';
$order->pay_status = '20';
$order->transaction_id = $data['transaction_id'];
$order->pay_time = time();
$order->pay_time = time();
$order->isUpdate()->save();
// 减少库存
$sales_actual = 0;
$goods_ids = [];
$list = $goodsmodel->where('order_id',$order['id'])->select();
foreach ($list as $key => $value){
$goods_ids[] = $value['goods_id'];
$sales_actual+=$value['total_num'];
if ($value['deduct_stock_type'] == 20){
$skumodel->where('goods_spec_id',$value['goods_spec_id'])->setDec('stock_num',$value['total_num']);
$goods_ids = [];
$list = $goodsmodel->where('order_id', $order['id'])->select();
foreach ($list as $key => $value) {
$goods_ids[] = $value['goods_id'];
$sales_actual += $value['total_num'];
if ($value['deduct_stock_type'] == 20) {
$skumodel->where('goods_spec_id', $value['goods_spec_id'])->setDec('stock_num', $value['total_num']);
//增加规格销量
$skumodel->where('goods_spec_id', $value['goods_spec_id'])->setInc('goods_sales', $value['total_num']);
}
}
// 增加销量
$goods_model->whereIn('goods_id',$goods_ids)->setInc('sales_actual',$sales_actual);
$goods_model->whereIn('goods_id', $goods_ids)->setInc('sales_actual', $sales_actual);
// 判断是否邀请成功
$user = \app\api\model\User::get($order['user_id']);
if ($user['invite_user_id'] > 0 && $user['invite_status'] != 1) {
$user->invite_status = '1';
$user->isUpdate()->save();
$coupon = Db::name('coupon')->where('id',1)->find();
if ($coupon['endtime'] > time()){
$coupon = Db::name('coupon')->where('id', 1)->find();
if ($coupon['endtime'] > time()) {
$data = [];
$time = time();
for ($i=1;$i<=$coupon['send_number'];$i++){
for ($i = 1; $i <= $coupon['send_number']; $i++) {
$data[] = [
'user_id' => $user->invite_user_id,
'coupon_id' => $coupon['id'],
'name' => $coupon['name'],
'price' => $coupon['price'],
'user_id' => $user->invite_user_id,
'coupon_id' => $coupon['id'],
'name' => $coupon['name'],
'price' => $coupon['price'],
'full_price' => $coupon['full_price'],
'endtime' => $time+$coupon['days']*86400,
'endtime' => $time + $coupon['days'] * 86400,
'createtime' => $time,
];
}
... ... @@ -85,24 +87,24 @@ class Notify extends Api
}
// 加入我常买
$data = [];
foreach ($list as $key => $value){
foreach ($list as $key => $value) {
$data[] = [
'user_id' => $order['user_id'],
'user_id' => $order['user_id'],
'goods_id' => $value['goods_id'],
'sku_id' => $value['goods_spec_id'],
'sku_id' => $value['goods_spec_id'],
];
}
$buymodel->isUpdate(false)->saveAll($data);
// 给后台发送新订单提醒
$client = new Client();
$domain = config('socketio.domain');
$client = new Client();
$domain = config('socketio.domain');
$http_port = config('socketio.http_port');
$client->request('POST', $domain.":{$http_port}/", [
$client->request('POST', $domain . ":{$http_port}/", [
'form_params' => [
'type' => 'publish',
'type' => 'publish',
'content' => '您有新的订单,请注意查收',
'to' => '',
]
'to' => '',
],
]);
} catch (Exception $e) {
}
... ... @@ -116,40 +118,40 @@ class Notify extends Api
public function refund()
{
$paytype = $this->request->param('type');
$pay = Service::checkNotify($paytype,'refund');
$pay = Service::checkNotify($paytype, 'refund');
if (!$pay) {
echo '签名错误';
return;
}
$data = $pay->verify();
$data = json_decode($data,true);
$model = new \app\api\model\Order();
$goodsmodel = new \app\api\model\OrderGoods();
$skumodel = new \app\api\model\GoodsSpec();
$data = $pay->verify();
$data = json_decode($data, true);
$model = new \app\api\model\Order();
$goodsmodel = new \app\api\model\OrderGoods();
$skumodel = new \app\api\model\GoodsSpec();
$goods_model = new \app\api\model\Goods();
try {
$out_trade_no = $data['out_refund_no'];
$order = $model
->where('refund_no',$out_trade_no)
->where('pay_status','20')
->where('order_status','10')
$order = $model
->where('refund_no', $out_trade_no)
->where('pay_status', '20')
->where('order_status', '10')
->find();
if (!$order) $this->error('订单不存在');
$order->refund_id = $data['refund_id'];
$order->refund_time = time();
$order->refund_id = $data['refund_id'];
$order->refund_time = time();
$order->order_status = '20';
$order->isUpdate()->save();
// 增加库存
$sales_actual = 0;
$list = $goodsmodel->where('order_id',$order['id'])->select();
foreach ($list as $key => $value){
$sales_actual+=$value['total_num'];
if ($value['deduct_stock_type'] == 20){
$skumodel->where('goods_spec_id',$value['goods_spec_id'])->setInc('stock_num',$value['total_num']);
$list = $goodsmodel->where('order_id', $order['id'])->select();
foreach ($list as $key => $value) {
$sales_actual += $value['total_num'];
if ($value['deduct_stock_type'] == 20) {
$skumodel->where('goods_spec_id', $value['goods_spec_id'])->setInc('stock_num', $value['total_num']);
}
}
// 减少销量
$goods_model->setDec('sales_actual',$sales_actual);
$goods_model->setDec('sales_actual', $sales_actual);
//你可以在此编写订单逻辑
} catch (Exception $e) {
}
... ...