From 70e87a5c093d93bde4bb93069a65241a59aa04bf Mon Sep 17 00:00:00 2001 From: devil_gong Date: Wed, 27 Feb 2019 11:51:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=8A=B6=E6=80=81=E9=99=90?= =?UTF-8?q?=E5=88=B6=E8=B4=AD=E7=89=A9=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../usernotloginhidegoodsprice/Hook.php | 6 +-- application/service/BuyService.php | 42 +++++++++++++++---- application/service/GoodsService.php | 7 ++++ application/service/UserService.php | 32 ++++++++++++++ 4 files changed, 76 insertions(+), 11 deletions(-) diff --git a/application/plugins/usernotloginhidegoodsprice/Hook.php b/application/plugins/usernotloginhidegoodsprice/Hook.php index 5711fbe48..bf11c6529 100644 --- a/application/plugins/usernotloginhidegoodsprice/Hook.php +++ b/application/plugins/usernotloginhidegoodsprice/Hook.php @@ -59,9 +59,9 @@ class Hook extends Controller $user = UserService::LoginUserInfo(); if(!empty($user)) { - // 查询用户状态是否待审核状态 - $user = UserService::UserInfo('id', $user['id']); - if(isset($user['status']) && in_array($user['status'], [0,1])) + // 查询用户状态是否正常 + $ret = UserService::UserStatusCheck('id', $user['id']); + if($ret['code'] == 0) { return DataReturn('无需处理', 0); } diff --git a/application/service/BuyService.php b/application/service/BuyService.php index 5f08bbe05..99ff5744c 100755 --- a/application/service/BuyService.php +++ b/application/service/BuyService.php @@ -65,6 +65,13 @@ class BuyService return DataReturn($ret, -1); } + // 查询用户状态是否正常 + $ret = UserService::UserStatusCheck('id', $params['user']['id']); + if($ret['code'] != 0) + { + return $ret; + } + // 获取商品 $goods_id = intval($params['goods_id']); $goods = Db::name('Goods')->where(['id'=>$goods_id, 'is_shelves'=>1, 'is_delete_time'=>0])->find(); @@ -190,8 +197,8 @@ class BuyService if($goods_base['code'] == 0) { $v['inventory'] = $goods_base['data']['inventory']; - $v['price'] = $goods_base['data']['price']; - $v['original_price'] = $goods_base['data']['original_price']; + $v['price'] = (float) $goods_base['data']['price']; + $v['original_price'] = (float) $goods_base['data']['original_price']; $v['spec_weight'] = $goods_base['data']['weight']; $v['spec_coding'] = $goods_base['data']['coding']; $v['spec_barcode'] = $goods_base['data']['barcode']; @@ -203,7 +210,7 @@ class BuyService $v['goods_url'] = MyUrl('index/goods/index', ['id'=>$v['goods_id']]); $v['images_old'] = $v['images']; $v['images'] = ResourcesService::AttachmentPathViewHandle($v['images']); - $v['total_price'] = $v['stock']*$v['price']; + $v['total_price'] = $v['stock']* ((float) $v['price']); $v['buy_max_number'] = ($v['buy_max_number'] <= 0) ? $v['inventory']: $v['buy_max_number']; } } @@ -241,6 +248,13 @@ class BuyService return DataReturn($ret, -1); } + // 查询用户状态是否正常 + $ret = UserService::UserStatusCheck('id', $params['user']['id']); + if($ret['code'] != 0) + { + return $ret; + } + // 删除 $where = [ 'id' => explode(',', $params['id']), @@ -299,6 +313,13 @@ class BuyService return DataReturn($ret, -1); } + // 查询用户状态是否正常 + $ret = UserService::UserStatusCheck('id', $params['user']['id']); + if($ret['code'] != 0) + { + return $ret; + } + // 更新 $where = [ 'id' => intval($params['id']), @@ -385,8 +406,8 @@ class BuyService if($goods_base['code'] == 0) { $ret['data'][0]['inventory'] = $goods_base['data']['inventory']; - $ret['data'][0]['price'] = $goods_base['data']['price']; - $ret['data'][0]['original_price'] = $goods_base['data']['original_price']; + $ret['data'][0]['price'] = (float) $goods_base['data']['price']; + $ret['data'][0]['original_price'] = (float) $goods_base['data']['original_price']; $ret['data'][0]['spec_weight'] = $goods_base['data']['weight']; $ret['data'][0]['spec_coding'] = $goods_base['data']['coding']; $ret['data'][0]['spec_barcode'] = $goods_base['data']['barcode']; @@ -396,7 +417,7 @@ class BuyService // 数量/小计 $ret['data'][0]['stock'] = $params['stock']; - $ret['data'][0]['total_price'] = $params['stock']*$ret['data'][0]['price']; + $ret['data'][0]['total_price'] = $params['stock']* ((float) $ret['data'][0]['price']); return DataReturn('操作成功', 0, $ret['data']); } @@ -604,6 +625,13 @@ class BuyService return DataReturn($ret, -1); } + // 查询用户状态是否正常 + $ret = UserService::UserStatusCheck('id', $params['user']['id']); + if($ret['code'] != 0) + { + return $ret; + } + // 清单商品 $goods = self::BuyTypeGoodsList($params); if(!isset($goods['code']) || $goods['code'] != 0) @@ -654,8 +682,6 @@ class BuyService $order['confirm_time'] = time(); } - //print_r($goods['data']);die; - // 开始事务 Db::startTrans(); diff --git a/application/service/GoodsService.php b/application/service/GoodsService.php index 6639761a0..f89269570 100755 --- a/application/service/GoodsService.php +++ b/application/service/GoodsService.php @@ -472,6 +472,13 @@ class GoodsService return DataReturn($ret, -1); } + // 查询用户状态是否正常 + $ret = UserService::UserStatusCheck('id', $params['user']['id']); + if($ret['code'] != 0) + { + return $ret; + } + // 开始操作 $data = ['goods_id'=>intval($params['id']), 'user_id'=>$params['user']['id']]; $temp = Db::name('GoodsFavor')->where($data)->find(); diff --git a/application/service/UserService.php b/application/service/UserService.php index 3f955c864..7a19d0bfd 100755 --- a/application/service/UserService.php +++ b/application/service/UserService.php @@ -41,6 +41,38 @@ class UserService return empty($params['user_id']) ? null : self::UserLoginRecord($params['user_id'], true); } } + + /** + * 用户状态校验 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2019-02-27 + * @desc description + * @param [string] $field [条件字段] + * @param [string] $value [条件值] + */ + public static function UserStatusCheck($field, $value) + { + // 查询用户状态是否正常 + $user = self::UserInfo($field, $value); + if(empty($user)) + { + return DataReturn('用户不存在或已删除', -110); + } + if(!in_array($user['status'], [0,1])) + { + $common_user_status_list = lang('common_user_status_list'); + if(isset($common_user_status_list[$user['status']])) + { + return DataReturn($common_user_status_list[$user['status']]['tips'], -110); + } else { + return DataReturn('用户状态有误', -110); + } + } + return DataReturn('正常', 0); + } + /** * 用户列表 * @author Devil