diff --git a/app/controller/AdminZoneManage.php b/app/controller/AdminZoneManage.php index 06fca33..ec6002c 100644 --- a/app/controller/AdminZoneManage.php +++ b/app/controller/AdminZoneManage.php @@ -101,6 +101,21 @@ class AdminZoneManage extends BaseController $zone_goods_id = $param['zone_goods_id'] ?? ''; $ZoneGoodsParam = new ZoneGoodsParam(); + + # 填写总概率不能超出 1 + $queryWhere = [['zone_goods_id','=',$zone_goods_id],['status','=',1]]; + # 编辑时不算当前id + if (empty($id) && is_numeric($id)) $queryWhere[] = ['id','<>',$id]; + $query = $ZoneGoodsParam->where($queryWhere) + ->field('SUM(probability) as sum_p') + ->find(); + if (!empty($query->sum_p)) { + $sumProbability = $query->sum_p + ($param['probability'] / 100); + if ($sumProbability > 1) { + throw new ValidateException('奖金总概率数不得超出100%,现已超出' . (($sumProbability - 1) * 100) . '%' ); + } + } + if ($id) { validate(ZoneValidate::class)->scene('goodsParamEdit')->check($param); $Save = $ZoneGoodsParam->find($id); diff --git a/app/logic/Zone.php b/app/logic/Zone.php index 543319d..2930c6c 100644 --- a/app/logic/Zone.php +++ b/app/logic/Zone.php @@ -42,6 +42,12 @@ class Zone */ public static function createOrder($user_id,$zone_goods_id) { + # 判断用户是否存在未刮的 + $inspect = self::inspectCompleteRecord($user_id); + if ($inspect['status']) { + return $inspect; + } + # 获取奖项个参数 $zoneParamArr = ZoneGoodsParam::getList(['zone_goods_id' => $zone_goods_id]); @@ -97,10 +103,12 @@ class Zone foreach ($data as $key => $goodsParam) { foreach ($goodsParam as $k => $item) { $data[$key][$k]['is_awards'] = 0; - $awardsAmountRes = ZoneGoodsParam::getAwardsAmount($item['id']); - if ($awardsAmountRes) { - $data[$key][$k]['is_awards'] = 1; - $awards_amount += $item['amount']; + if (isset($item['id'])) { + $awardsAmountRes = ZoneGoodsParam::getAwardsAmount($item['id']); + if ($awardsAmountRes) { + $data[$key][$k]['is_awards'] = 1; + $awards_amount += $item['amount']; + } } } } @@ -134,6 +142,26 @@ class Zone } } + + /** + * 检查用户是否存在未刮的 + * @param $user_id + * @return array|int[] + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + */ + public static function inspectCompleteRecord($user_id) + { + $query = ConsumptionRecords::where(['user_id' => $user_id,'status' => 0])->find(); + if ($query) { + $data = self::handleTextData(unserialize($query['text_data'])); + return ['status' => 1, 'data' => $data, 'c_r_id' => $query['id']]; + }; + + return ['status' => 0]; + } + /** * 处理刮奖信息数据 * @param $data diff --git a/route/app.php b/route/app.php index b430e6e..49a455e 100644 --- a/route/app.php +++ b/route/app.php @@ -22,7 +22,7 @@ Route::group('passport',function (){ Route::post('sendCode','passport/sendCode'); Route::post('adminLogin','passport/adminLogin'); Route::post('agentLogin','passport/agentLogin'); -})->allowCrossDomain(); +}); # 用户 Route::group('index',function () { @@ -31,7 +31,7 @@ Route::group('index',function () { Route::post('zoneList','index/zoneList'); Route::post('getNotice','index/getNotice'); Route::post('getNoticeInfo','index/getNoticeInfo')->middleware(CheckUser::class); -})->allowCrossDomain(); +}); Route::group('user',function (){ Route::rule('modifyPassword','user/modifyPassword'); @@ -40,7 +40,7 @@ Route::group('user',function (){ Route::rule('consumptionRecords','user/consumptionRecords'); Route::rule('awardsRecords','user/awardsRecords'); Route::rule('userInfo','user/userInfo'); -})->middleware(CheckUser::class)->allowCrossDomain(); +})->middleware(CheckUser::class); Route::group('zone',function(){ #Route::post('zoneList','zone/zoneList'); @@ -49,7 +49,7 @@ Route::group('zone',function(){ Route::post('endLottery','zone/endLottery'); Route::post('queryAwardsResult','zone/queryAwardsResult'); Route::post('beginInitInfo','zone/beginInitInfo'); -})->middleware(CheckUser::class)->allowCrossDomain(); +})->middleware(CheckUser::class); # 代理 Route::group('agentTeam',function(){ @@ -58,14 +58,14 @@ Route::group('agentTeam',function(){ Route::post('downScores','agentTeam/downScores'); Route::post('getAgentInviteCode','agentTeam/getAgentInviteCode'); Route::post('getAgentUserInfo','agentTeam/getAgentUserInfo'); -})->middleware(CheckAgent::class)->allowCrossDomain(); +})->middleware(CheckAgent::class); # 总后台 Route::group('adminStatistics',function() { Route::post('needStatistics','adminStatistics/needStatistics'); Route::post('userStatistics','adminStatistics/userStatistics'); Route::post('upAndDownStatistics','adminStatistics/upAndDownStatistics'); -})->middleware(CheckAdmin::class)->allowCrossDomain(); +})->middleware(CheckAdmin::class); Route::group('adminUserTeam',function() { Route::post('userList','adminUserTeam/userList'); @@ -73,7 +73,7 @@ Route::group('adminUserTeam',function() { Route::post('deleteUser','adminUserTeam/deleteUser'); Route::post('upScores','adminUserTeam/upScores'); Route::post('downScores','adminUserTeam/downScores'); -})->middleware(CheckAdmin::class)->allowCrossDomain(); +})->middleware(CheckAdmin::class); Route::group('adminAgentTeam',function() { Route::post('agentList','adminAgentTeam/agentList'); @@ -82,13 +82,13 @@ Route::group('adminAgentTeam',function() { Route::post('editAgent','adminAgentTeam/editAgent'); Route::post('deleteAgent','adminAgentTeam/deleteAgent'); Route::post('addAgent','adminAgentTeam/addAgent'); -})->middleware(CheckAdmin::class)->allowCrossDomain(); +})->middleware(CheckAdmin::class); Route::group('adminUser',function() { Route::post('userInfo','adminUser/userInfo'); Route::post('upScoresList','adminUser/upScoresList'); Route::post('downScoresList','adminUser/downScoresList'); -})->middleware(CheckAdmin::class)->allowCrossDomain(); +})->middleware(CheckAdmin::class); Route::group('adminZoneManage',function() { Route::post('zoneGoodsList','adminZoneManage/zoneGoodsList'); @@ -96,26 +96,26 @@ Route::group('adminZoneManage',function() { Route::post('goodsParamList','adminZoneManage/goodsParamList'); Route::post('goodsParamSave','adminZoneManage/goodsParamSave'); Route::post('goodsParamDel','adminZoneManage/goodsParamDel'); -})->middleware(CheckAdmin::class)->allowCrossDomain(); +})->middleware(CheckAdmin::class); Route::group('customerService',function() { Route::post('list','customerService/list'); Route::post('save','customerService/save'); Route::post('delete','customerService/delete'); -})->middleware(CheckAdmin::class)->allowCrossDomain(); +})->middleware(CheckAdmin::class); Route::group('notice',function() { Route::post('list','notice/list'); Route::post('save','notice/save'); Route::post('delete','notice/delete'); -})->middleware(CheckAdmin::class)->allowCrossDomain(); +})->middleware(CheckAdmin::class); Route::group('rotationChart',function() { Route::post('list','rotationChart/list'); Route::post('save','rotationChart/save'); Route::post('delete','rotationChart/delete'); Route::post('upload','rotationChart/upload'); -})->middleware(CheckAdmin::class)->allowCrossDomain(); +})->middleware(CheckAdmin::class); # 支付(待开发)