xiaoyu 2 年之前
父节点
当前提交
bd41b002e3
共有 3 个文件被更改,包括 247 次插入11 次删除
  1. 72 11
      admin/control/provider.php
  2. 1 0
      admin/templates/default/provider.index.php
  3. 174 0
      admin/templates/default/provider.remit.php

+ 72 - 11
admin/control/provider.php

@@ -625,12 +625,36 @@ class providerControl extends SystemControl
 
     public function provider_remitOp()
     {
-        $cond = [];
         $refill_company = $this->refill_companys(['co_type' => refill_companyModel::co_type_provider]);
-        $provider_items = $this->providers($cond);
+        if (chksubmit())
+        {
+            $remits = $_POST['remits'];
+            $strs = $_POST['strs'];
+            foreach ($strs as $key => $str)
+            {
+                $remit = $remits[$key];
+                if(empty($remit)) continue;
+                $item = explode('-', $str);
+                $co_id = $item[0];
+                $pid = $item[1];
+                $data[$co_id][$pid] = $remit;
+            }
+            $this->remit_commit($data, $refill_company);
+        }
+        else
+        {
+            $provider_items = $this->providers();
+            $result = $this->remit_data($provider_items, $refill_company);
+
+            Tpl::output('remit_data',$result);
+            Tpl::showpage('provider.remit');
+        }
+    }
 
+    private function remit_data($items, $refill_company): array
+    {
         $providers = $mid_pids = $mids = $datas = $result =[];
-        foreach ($provider_items as $item)
+        foreach ($items as $item)
         {
             $co_id = $item['co_id'];
             if(empty($co_id)) continue;
@@ -657,14 +681,9 @@ class providerControl extends SystemControl
         }
         foreach ($providers as $provider)
         {
-            $data[$provider['co_id']][] = $provider;
-        }
-        $config = rcache('remit', 'refill-');
-        if (empty($config)) {
-            $config = [];
-        } else {
-            $config = unserialize($config['cfg']);
+            $datas[$provider['co_id']][] = $provider;
         }
+        $remit_cfg = $this->remit_cfg();
         foreach ($datas as $co_id => $data)
         {
             $available_total = 0;
@@ -672,11 +691,53 @@ class providerControl extends SystemControl
             {
                 $available_total += $value['available_predeposit'];
             }
-            if($available_total > $config['remit_money']) continue;
+            if($available_total > $remit_cfg['remit_money']) continue;
             $result[] = [
                 'co_name' => $refill_company[$co_id]['co_name'],
                 'providers' => $data
             ];
         }
+        return $result;
+    }
+
+    private function remit_commit($items, $refill_company)
+    {
+        $admininfo = $this->getAdminInfo();
+        $provider_list = $this->providers();
+        foreach ($provider_list as $provider) {
+            $providers[$provider['provider_id']] = $provider;
+        }
+        $bz = '批量打款';
+        $remit_data = [];
+        foreach ($items as $co_id => $item)
+        {
+            $remit_total = 0;
+            foreach ($item as $pid => $money)
+            {
+                $amount_data = [
+                    'pointsnum' => $money,
+                    'operation' => $admininfo['name'],
+                    'bz' => $bz
+                ];
+                $this->credit_save_money($money, 'add', $providers[$pid]['account_id'], $bz);
+                $this->ct_provider_amount($amount_data, $providers[$pid]);
+                $remit_total += $money;
+            }
+            $remit_data[$co_id] = [
+                'refill_company' => $refill_company[$co_id],
+                'remit' => $remit_total
+            ];
+        }
+    }
+
+    private function remit_cfg()
+    {
+        $config = rcache('remit', 'refill-');
+        if (empty($config)) {
+            $config = [];
+        } else {
+            $config = unserialize($config['cfg']);
+        }
+        return $config;
     }
 }

+ 1 - 0
admin/templates/default/provider.index.php

@@ -17,6 +17,7 @@
             <ul class="tab-base">
                 <li><a href="JavaScript:void(0);" class="current"><span><?php echo $lang['nc_manage'] ?></span></a></li>
                 <li><a href="index.php?act=provider&op=provider_amount"><span>调款记录</span></a></li>
+                <li><a href="index.php?act=provider&op=provider_remit"><span>打款</span></a></li>
             </ul>
         </div>
     </div>

+ 174 - 0
admin/templates/default/provider.remit.php

@@ -0,0 +1,174 @@
+<?php defined('InShopNC') or exit('Access Invalid!'); ?>
+<style>
+</style>
+<div class="page">
+    <div class="fixed-bar">
+        <div class="item-title">
+            <h3>通道管理</h3>
+            <ul class="tab-base">
+                <li><a href="index.php?act=provider&op=index"><span><?php echo $lang['nc_manage'] ?></span></a></li>
+                <li><a href="index.php?act=provider&op=provider_amount"><span>调款记录</span></a></li>
+                <li><a href="JavaScript:void(0);" class="current"><span>打款</span></a></li>
+            </ul>
+        </div>
+    </div>
+    <div class="fixed-empty"></div>
+    <form id="price_form" enctype="multipart/form-data" method="post">
+        <input type="hidden" name="form_submit" value="ok" />
+        <table class="table tb-type2">
+            <tbody>
+                <tr>
+                    <td colspan="2" class="required"><label class="validation" for="password">打款:</label></td>
+                </tr>
+                <?php foreach ($output['remit_data'] as $data) { ?>
+                <tr class="noborder">
+                    <td>
+                        <table class="spec_table tb-type2 setTable" style="width: 780px">
+                            <tr>
+                                <th>公司名称:<?php echo $data['co_name'];?></th>
+                            </tr>
+                            <tr class="w500">
+                                <th class="w150 align-center">通道名称</th>
+                                <th class="w150 align-center">当前余额</th>
+                                <th class="w150 align-center">打款金额</th>
+                            </tr>
+                            <?php foreach ($data['providers'] as $v){?>
+
+                            <tbody class="tbody">
+                                <tr class="w500" style="height: 50px;">
+                                    <td class="w100 align-center">
+                                        <?php echo $v['store_name']; ?>
+                                    </td>
+                                    <td class="w100 align-center">
+                                        <?php echo $v['available_predeposit']; ?>
+                                    </td>
+                                    <td class="w100 align-center">
+                                        <input type="hidden" name="strs[]" value="<?php echo $v['co_id']?>-<?php echo $v['provider_id']?>">
+                                        <input type="text" name="remits[]" class="priceInput" value="">
+                                        <div id="money" style="color:red;"></div>
+                                    </td>
+                                </tr>
+                            </tbody>
+                            <?php }?>
+                        </table>
+                    </td>
+                </tr>
+                <?php } ?>
+            </tbody>
+            <tfoot>
+                <tr class="tfoot">
+                    <td colspan="15"><a href="JavaScript:void(0);" class="btn" id="submitBtn"><span><?php echo $lang['nc_submit']; ?></span></a></td>
+                </tr>
+            </tfoot>
+        </table>
+    </form>
+</div>
+<script type="text/javascript" src="<?php echo RESOURCE_SITE_URL; ?>/js/dialog/dialog.js" id="dialog_js" charset="utf-8"></script>
+<script type="text/javascript" src="<?php echo RESOURCE_SITE_URL; ?>/js/jquery-ui/jquery.ui.js"></script>
+<script type="text/javascript" src="<?php echo RESOURCE_SITE_URL; ?>/js/ajaxfileupload/ajaxfileupload.js"></script>
+<script type="text/javascript" src="<?php echo RESOURCE_SITE_URL; ?>/js/jquery.Jcrop/jquery.Jcrop.js"></script>
+<link href="<?php echo RESOURCE_SITE_URL; ?>/js/jquery.Jcrop/jquery.Jcrop.min.css" rel="stylesheet" type="text/css" id="cssfile2" />
+<script type="text/javascript">
+    $(function() {
+        $("#submitBtn").click(function() {
+            $("#price_form").submit();
+        });
+        $('.priceInput').blur(function (){
+            let money = $(this).val();
+            console.log(money)
+            let chineseStr = convertCurrency(money);
+            $(this).next().html(chineseStr)
+        })
+    });
+
+    function convertCurrency(money) {
+        //汉字的数字
+        var cnNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
+        //基本单位
+        var cnIntRadice = ['', '拾', '佰', '仟'];
+        //对应整数部分扩展单位
+        var cnIntUnits = ['', '万', '亿', '兆'];
+        //对应小数部分单位
+        var cnDecUnits = ['角', '分', '毫', '厘'];
+        //整数金额时后面跟的字符
+        var cnInteger = '整';
+        //整型完以后的单位
+        var cnIntLast = '元';
+        //最大处理的数字
+        var maxNum = 999999999999999.9999;
+        //金额整数部分
+        var integerNum;
+        //金额小数部分
+        var decimalNum;
+        //输出的中文金额字符串
+        var chineseStr = '';
+        //分离金额后用的数组,预定义
+        var parts;
+        // 传入的参数为空情况
+        if(money === '') {
+            return '';
+        }
+        money = parseFloat(money)
+        if(money >= maxNum){
+            return ''
+        }
+        // 传入的参数为0的情况
+        if(money === 0) {
+            chineseStr = cnNums[0] + cnIntLast + cnInteger;
+            return chineseStr
+        }
+        // 转为字符串
+        money = money.toString();
+        // indexOf 检测某字符在字符串中首次出现的位置 返回索引值(从0 开始) -1 代表无
+        if(money.indexOf('.') === -1){
+            integerNum = money;
+            decimalNum = ''
+        }else{
+            parts = money.split('.');
+            integerNum = parts[0];
+            decimalNum = parts[1].substr(0,4);
+        }
+        //转换整数部分
+        if(parseInt(integerNum,10) > 0){
+            let zeroCount  = 0;
+            let IntLen = integerNum.length
+            for(let i = 0; i < IntLen; i++){
+                let n = integerNum.substr(i,1);
+                let p = IntLen - i - 1;
+                let q = p / 4;
+                let m = p % 4;
+                if( n === '0'){
+                    zeroCount ++ ;
+                }else{
+                    if(zeroCount > 0){
+                        chineseStr += cnNums[0]
+                    }
+                    zeroCount = 0;
+                    chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
+                }
+                if(m === 0 && zeroCount < 4){
+                    chineseStr += cnIntUnits[q];
+                }
+            }
+            // 最后+ 元
+            chineseStr += cnIntLast;
+        }
+        // 转换小数部分
+        if(decimalNum !== ''){
+            let decLen = decimalNum.length;
+            for(let i = 0; i <decLen; i++){
+                let n = decimalNum.substr(i,1);
+                if(n !== '0'){
+                    chineseStr += cnNums[Number(n)] + cnDecUnits[i]
+                }
+            }
+        }
+        if(chineseStr === ''){
+            chineseStr += cnNums[0] + cnIntLast + cnInteger;
+        }else if(decimalNum === ''){
+            chineseStr += cnInteger;
+        }
+
+        return chineseStr
+    }
+</script>