| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 | <?php/** * Created by PhpStorm. * User: tandunzhao * Date: 2017/11/20 * Time: 上午11:36 */namespace App\Http\Controllers\Channel\Finance;use App\Http\Controllers\Channel\Finance\Transformers\CashAccountTransformer;use App\Modules\Channel\Services\ChannelService;use App\Modules\Channel\Services\ChannelUserService;use App\Modules\Finance\Services\BankService;use App\Modules\Finance\Services\CashAccountService;use Illuminate\Http\Request;use Cache;use Redis;use App\Libs\SMS;use Log;use App\Libs\AliSMS;class CashAccountsController extends BaseController{    /**     * @apiDefine Finance 结算提现模块     */    /**     * @apiVersion 1.0.0     * @apiDescription 获取银行账号     * @api {GET} getCashAccount 获取银行账号     * @apiGroup Finance     * @apiName getCashAccount     * @apiSuccess   {String}  account_name 姓名.     * @apiSuccess   {String}  identity_card 身份证号码.     * @apiSuccess   {String}  card_number 银行卡号码.     * @apiSuccess   {String}  account_bank 开户支行名称.     * @apiSuccess   {Number}  bank_id 银行ID.     * @apiSuccess   {String}  bank 交易银行.     * @apiSuccess   {String}  phone 电话号码.     * @apiSuccess   {String}  province 省份.     * @apiSuccess   {Number}  status 省份.状态; -1:禁止编辑; 0:默认可编辑     * @apiSuccess   {Number}  is_company 0:对私账户; 1:对公账户     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":     *              {     *                   "account_bank": "钱江支行",     *                   "account_name": "宋晓",     *                   "bank_id": 1,     *                   "bank": "杭州银行",     *                   "card_number": "6222520177654916",     *                   "identity_card": "33038119930901821X",     *                   "province": "北京市",     *                   "status": -1,     *                   "phone": "13688998899",     *                   "is_company": 0,     *                   "updated_time": "2017-11-20 14:54:50"     *               }     *     }     */    function get_cashAccount(Request $request) {        $distribution_channel_id = $this->getChannelId();        $distribution_channel_name = $this->getChannelName();        $distribution_channel_name = '';        $cashAccount = CashAccountService::getCashAccountSingle($distribution_channel_id);        return response()->item(new CashAccountTransformer(), $cashAccount);    }    /**     * @apiVersion 1.0.0     * @apiDescription 添加更新银行账号     * @api {POST} addCashAccount 添加银行账号     * @apiGroup Finance     * @apiName addCashAccount     * @apiParam   {Number}  [is_company] 0:对私账户; 1:对公账户     * @apiParam   {Number}  bank_id 银行ID.     * @apiParam   {String}  account_bank 开户支行名称.     * @apiParam   {String}  account_name 对私账户:开户人名称;  对公账户:持卡人名称     * @apiParam   {String}  card_number 银行卡号码.     * @apiParam   {String}  [phone] 电话号码.     * @apiParam   {String}  [identity_card] 对私账户:开户人身份证号码;   对公账户:持卡人身份证号码     * @apiParam   {String}  [province] 省份.     * @apiParam   {String}  [sms_code] 验证码,修改的时候必传.     *     * @apiSuccess   {String}  account_name 姓名.     * @apiSuccess   {String}  identity_card 身份证号码.     * @apiSuccess   {String}  card_number 银行卡号码.     * @apiSuccess   {String}  account_bank 开户支行名称.     * @apiSuccess   {Number}  bank_id 银行ID.     * @apiSuccess   {String}  bank 交易银行.     * @apiSuccess   {String}  phone 电话号码.     * @apiSuccess   {String}  province 省份.     * @apiSuccess   {Number}  status 省份.状态; -1:禁止编辑; 0:默认可编辑     * @apiSuccess   {Number}  is_company 0:对私账户; 1:对公账户     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":     *              {     *                   "account_bank": "钱江支行",     *                   "account_name": "宋晓",     *                   "bank_id": 1,     *                   "bank": "杭州银行",     *                   "card_number": "6222520177654916",     *                   "identity_card": "33038119930901821X",     *                   "province": "北京市",     *                   "status": -1,     *                   "phone": "13688998899",     *                   "is_company": 0,     *                   "updated_time": "2017-11-20 14:54:50"     *               }     *     }     */    function add_cashAccount(Request $request) {        $distribution_channel_id = $this->getChannelId();        $channel_id = $distribution_channel_id;        $distribution_channel_name = $this->getChannelName();        $distribution_channel_name = '';        if(empty($distribution_channel_id)) {            return response()->error("PARAM_EMPTY");        }        $account_name = $request->has('account_name') ? $request->input('account_name') : '';        if(empty($account_name)) {            return response()->error("PARAM_EMPTY");        }        $identity_card = $request->has('identity_card') ? $request->input('identity_card') : '';//        if(empty($identity_card)) {//            return response()->error("PARAM_EMPTY");//        }        $card_number = $request->has('card_number') ? $request->input('card_number') : '';        if(empty($card_number)) {            return response()->error("PARAM_EMPTY");        }        $account_bank = $request->has('account_bank') ? $request->input('account_bank') : '';//        if(empty($account_bank)) {//            return response()->error("PARAM_EMPTY");//        }        $bank_id = $request->has('bank_id') ? $request->input('bank_id') : '';        if(!is_numeric($bank_id)) {            return response()->error("PARAM_ERROR");        }        $bankModel = BankService::getBankSingle($bank_id);        if(empty($bankModel)) {            return response()->error("PARAM_ERROR");        }        $is_company = $request->has('is_company') ? $request->input('is_company') : '';        $bank = $request->has('bank') ? $request->input('bank') : '';        if(empty($bank)) {            $bank = $bankModel['name'];        }        $province = $request->has('province') ? $request->input('province') : '';        $phone = $request->has('phone') ? $request->input('phone') : '';        $cashAccount = CashAccountService::getCashAccountSingle($distribution_channel_id);        if(empty($cashAccount)) {            $cashAccount = CashAccountService::addCashAccount($distribution_channel_id, $account_name, $identity_card, $card_number, $account_bank, $bank_id, $bank, $province, $is_company, $phone);        } else {            $channel = ChannelService::getById($distribution_channel_id);            if(!$channel) {                return response()->error('PARAM_ERROR');            }            $channelUser = ChannelUserService::getById($channel->channel_user_id);            if(!$channelUser) {                return response()->error('PARAM_ERROR');            }            $phoneCodeNumber = $channelUser->phone;            $phoneCode = Redis::get('sms_'.$channel_id."_".$phoneCodeNumber);            if(!$phoneCode) {                $phoneCode = Cache::get('sms_'.$channel_id."_".$phoneCodeNumber);            }            $exist_sms_code = $phoneCode;            $sms_code = $request->has('sms_code') ? $request->input('sms_code') : '';            Log::info("======修改渠道提现信息验证码=====[".'sms_'.$channel_id."_".$phoneCodeNumber."_".$exist_sms_code."]======输入验证码 [ ".$sms_code ." =====".date("y-m-d H:i:s"."\n"));            if(empty($exist_sms_code) || empty($sms_code)) {                return response()->error('PHONE_CODE_ERROR');            }            if($sms_code != $exist_sms_code) {                return response()->error('VERIFY_CODE_ERROR');            }            $cashAccount = CashAccountService::updateCashAccount($distribution_channel_id, $account_name, $identity_card, $card_number, $account_bank, $bank_id, $bank, $province, $is_company, $phone);            Cache::forget('sms_'.$channel_id."_".$phoneCodeNumber);            Redis::del('sms_'.$channel_id."_".$phoneCodeNumber);//            if(CashAccountService::isEditCashAccount($distribution_channel_id)) {//                //-1 禁止修改//                return response()->error("FORBID_CHANGE");//            } else {//            }        }        return response()->item(new CashAccountTransformer(), $cashAccount);    }    /**     * @apiVersion 1.0.0     * @apiDescription 获取修改银行账号信息验证码     * @api {GET} getCashAccountSms 获取修改银行账号信息验证码     * @apiGroup Finance     * @apiName getCashAccountSms     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":[]     *     }     */    function getCashAccountSms(Request $request) {        $channel_id = $this->getChannelId();        $userId = $this->getChannelUserId();        if($userId) {            $user = ChannelUserService::getById($userId);            if($user) {                $phone = $user->phone;                if(Cache::get('sms_'.$channel_id."_".$phone)) {                    return response()->error('SMS_GET_TOO_OFTEN');                }                $code = rand(1000,9999);                $request->session()->put('sms_code', $code);                Cache::put('sms_'.$channel_id."_".$phone, $code, 10);                Log::info("======修改渠道提现信息验证码=====[".'sms_'.$channel_id."_".$phone."_".$code."]===========".date("y-m-d H:i:s"."\n"));                Redis::setex('sms_'.$channel_id."_".$phone, 10 * 60, $code);                $param = array('code'=>$code);                if(AliSMS::send($phone,'update_withdraw_cash',$param)){                    return response()->success();                }else{                    return response()->error('SMS_SEND_ERROR');                }            }        }        return response()->error('SMS_SEND_ERROR');    }}
 |