| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 | <?php/** * Created by PhpStorm. * User: tandunzhao * Date: 2017/12/7 * Time: 下午8:00 */namespace App\Http\Controllers\Manage\Finance;use App\Http\Controllers\Manage\Finance\Transformers\LiquidationTransformer;use App\Modules\Channel\Services\ChannelService;use App\Modules\Finance\Services\LiquidatedStatService;use App\Modules\Finance\Services\LiquidationService;use App\Modules\Trade\Services\PayMerchantService;use Illuminate\Http\Request;class LiquidationController extends BaseController{    /**     * @apiDefine Finance 结算提现模块     */    /**     * @apiVersion 1.0.0     * @apiDescription 添加清算支付渠道金额     * @api {POST} Liquidated/add 添加清算支付渠道金额     * @apiGroup Finance     * @apiName Liquidated/add     * @apiParam   {String}  pay_merchant_source 支付渠道     * @apiParam   {Number}  amount 清算金额     * @apiParam   {String}  [remark] 备注说明.     * @apiSuccess   {Number}  amount 清算金额.     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":{}     *     }     */    function add_liquidated(Request $request) {        $pay_merchant_source = $request->has('pay_merchant_source') ? $request->input('pay_merchant_source') : '';        if(empty($pay_merchant_source)) {            return response()->error("PARAM_ERROR");        }        $amount = $request->has('amount') ? $request->input('amount') : '';        if(!is_numeric($amount) || (float)$amount <= 0) {            return response()->error("PARAM_ERROR");        }        $remark = $request->has('remark') ? $request->input('remark') : '';        $remark = "[支付渠道清算]{".$remark."}";        $liquidatedStat = LiquidatedStatService::getLiquidatedStatSingleBySource($pay_merchant_source);        if(empty($liquidatedStat)) {            return response()->error("PARAM_ERROR");        }        if($liquidatedStat['amount'] < $amount) {            return response()->error("LIQUIDATED_STAT_AMOUNT_WITHOUT");        }        //添加一条清算记录        LiquidationService::addLiquidation(0, $pay_merchant_source, -$amount, 0, $remark);        //更新支付通道清算金额        LiquidatedStatService::createOrUpdate($pay_merchant_source, -$amount);        return response()->success();    }    /**     * @apiVersion 1.0.0     * @apiDescription 获取清算明细表列表     * @api {GET} Liquidated/list 获取清算明细表列表     * @apiGroup Finance     * @apiName Liquidated/list     * @apiParam   {Number}  [distribution_channel_id] 渠道id.(可不传,获取所有渠道)     * @apiParam   {String}  [distribution_channel_name] 渠道名称.(可不传,获取所有渠道)     * @apiParam   {String}  [pay_merchant_source] 支付通道渠道(可不传,获取所有通道)     * @apiParam   {String}  [search_name] 搜索名称(可不传)     * @apiParam   {String}  [start_time] 开始时间(可不传)     * @apiParam   {String}  [end_time] 结束时间(可不传)     * @apiSuccess   {Number}  id 清算ID     * @apiSuccess   {Number}  channel_id 渠道ID     * @apiSuccess   {String}  channel_name 渠道名称     * @apiSuccess   {String}  pay_merchant_source 渠道支付通道     * @apiSuccess   {String}  pay_merchant_source_name 渠道支付通道     * @apiSuccess   {Number}  amount 清算金额.     * @apiSuccess   {Number}  payment_id 打款ID     * @apiSuccess   {String}  date 清算时间     * @apiSuccess   {String}  remark 清算备注     * @apiSuccess   {String}  phone 渠道联系     * @apiSuccess   {String}  created_time     * @apiSuccess   {String}  pay_merchant_id     * @apiSuccess   {String}  nickname     * @apiSuccess   {String}  person_in_charge_name 渠道负责人     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":     *              [     *                  {     *                      "id": 21,     *                      "channel_id": 11,     *                      "channel_name": "weixiao",     *                      "pay_merchant_source": "ALIPAY",     *                      "pay_merchant_source_name": "通联支付",     *                      "amount": "11.0000",     *                      "payment_id": 0,     *                      "date": "2017-12-07 00:00:00",     *                      "remark": "每日结算",     *                      "phone": "13732291699",     *                      "created_time": "2017-12-07 18:22:29",     *                      "pay_merchant_id": 0,     *                      "nickname": "是的方式",     *                      "person_in_charge_name": "大波哥"     *                  }     *              ]     *     }     */    function get_list(Request $request) {        $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';        $distribution_channel_name = $request->has('distribution_channel_name') ? $request->input('distribution_channel_name') : '';        $pay_merchant_source = $request->has('pay_merchant_source') ? $request->input('pay_merchant_source') : '';        $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Ymd',strtotime($request->input('start_time'))) : '';        $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Ymd',strtotime($request->input('end_time'))) : '';        $end_time = self::getMaxDay($end_time);        $search_name = $request->has('search_name') ? $request->input('search_name') : '';        $params = [            'channel_id'=>$distribution_channel_id,            'channel_name'=>$distribution_channel_name,            'pay_merchant_source'=>$pay_merchant_source,            'start_date'=>$start_time,            'end_date'=>$end_time,            'search_name'=>$search_name,        ];        $result = LiquidationService::getLiquidationList($params);        return response()->pagination(new LiquidationTransformer(), $result);    }    /**     * @apiVersion 1.0.0     * @apiDescription 获取清算明细表列表导出     * @api {GET} Liquidated/listExport 获取清算明细表列表导出     * @apiGroup Finance     * @apiName Liquidated/listExport     * @apiParam   {Number}  [distribution_channel_id] 渠道id.(可不传,获取所有渠道)     * @apiParam   {String}  [distribution_channel_name] 渠道名称.(可不传,获取所有渠道)     * @apiParam   {String}  [pay_merchant_source] 支付通道渠道(可不传,获取所有通道)     * @apiParam   {String}  [search_name] 搜索名称(可不传)     * @apiParam   {String}  [start_time] 开始时间(可不传)     * @apiParam   {String}  [end_time] 结束时间(可不传)     *     */    function get_list_export(Request $request) {        $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';        $distribution_channel_name = $request->has('distribution_channel_name') ? $request->input('distribution_channel_name') : '';        $pay_merchant_source = $request->has('pay_merchant_source') ? $request->input('pay_merchant_source') : '';        $start_time = $request->has('start_time') && !empty($request->input('start_time')) ? date('Ymd',strtotime($request->input('start_time'))) : '';        $end_time = $request->has('end_time') && !empty($request->input('end_time')) ? date('Ymd',strtotime($request->input('end_time'))) : '';        $end_time = self::getMaxDay($end_time);        $search_name = $request->has('search_name') ? $request->input('search_name') : '';        $params = [            'channel_id'=>$distribution_channel_id,            'channel_name'=>$distribution_channel_name,            'pay_merchant_source'=>$pay_merchant_source,            'start_date'=>$start_time,            'end_date'=>$end_time,            'search_name'=>$search_name,        ];        $result = LiquidationService::getLiquidationList($params, true);        header("Content-type:application/vnd.ms-excel");        header("Content-Disposition:attachment;filename=" . "清算明细" . date("YmdHis") . ".csv");        echo iconv("UTF-8","GBK","\"操作日期\",\"渠道ID\",\"渠道名称\",\"支付通道\",\"清算金额(元)\",\"备注\"\r\n");        if($result)        {            foreach($result as $item)            {                echo("\"" . iconv("UTF-8","GBK",date('Y-m-d H:i:s',strtotime($item->date))) .  "\",");                echo("\"" . $item->distribution_channel_id .  "\",");                echo("\"" . iconv("UTF-8","GBK",$item->distribution_channel_name) .  "\",");                echo("\"" . iconv("UTF-8","GBK",ChannelService::getSourceName(isset($item->pay_merchant_source) ? $item->pay_merchant_source : "")) .  "\",");                echo("\"" . ($item->amount) .  "\",");                echo("\"" . iconv("UTF-8","GBK",$item->remark) .  "\"\r\n");            }        }        exit();    }}
 |