RefundLogService.php 5.9 KB
Newer Older
D
devil_gong 已提交
1 2 3 4
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
D
2.0  
Devil 已提交
5
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
D
devil_gong 已提交
6
// +----------------------------------------------------------------------
D
2.0  
Devil 已提交
7
// | Licensed ( https://opensource.org/licenses/mit-license.php )
D
devil_gong 已提交
8 9 10 11 12
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\service;

D
Devil 已提交
13
use think\facade\Db;
D
devil 已提交
14
use app\service\UserService;
D
devil_gong 已提交
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

/**
 * 退款日志服务层
 * @author   Devil
 * @blog     http://gong.gg/
 * @version  0.0.1
 * @datetime 2016-12-01T21:51:08+0800
 */
class RefundLogService
{
    /**
     * 退款日志添加
     * @author   Devil
     * @blog     http://gong.gg/
     * @version  1.0.0
     * @datetime 2019-05-07T00:57:36+0800
     * @param   [array]             $params         [输入参数]
     * @param   [int]               $user_id        [用户id]
D
devil 已提交
33
     * @param   [int]               $business_id    [业务订单id]
D
devil_gong 已提交
34
     * @param   [float]             $pay_price      [业务订单实际支付金额]
D
devil_gong 已提交
35 36 37 38 39 40
     * @param   [string]            $trade_no       [支付平台交易号]
     * @param   [string]            $buyer_user     [支付平台用户帐号]
     * @param   [float]             $refund_price   [退款金额]
     * @param   [string]            $msg            [描述]
     * @param   [string]            $payment        [支付方式标记]
     * @param   [string]            $payment_name   [支付方式名称]
D
devil_gong 已提交
41
     * @param   [int]               $refundment     [退款类型(0原路退回, 1退至钱包, 2手动处理)]
D
devil 已提交
42
     * @param   [int]               $business_type  [业务类型,字符串(如:订单、钱包充值、会员购买、等...)]
D
devil_gong 已提交
43 44 45 46 47 48 49
     * @param   [string]            $return_params  [支付平台返回参数]
     * @return  [boolean]                           [成功true, 失败false]
     */
    public static function RefundLogInsert($params = [])
    {
        $data = [
            'user_id'           => isset($params['user_id']) ? intval($params['user_id']) : 0,
D
devil 已提交
50
            'business_id'       => isset($params['business_id']) ? intval($params['business_id']) : 0,
D
devil_gong 已提交
51
            'pay_price'         => isset($params['pay_price']) ? PriceNumberFormat($params['pay_price']) : 0.00,
D
devil_gong 已提交
52 53 54 55 56 57
            'trade_no'          => isset($params['trade_no']) ? $params['trade_no'] : '',
            'buyer_user'        => isset($params['buyer_user']) ? $params['buyer_user'] : '',
            'refund_price'      => isset($params['refund_price']) ? PriceNumberFormat($params['refund_price']) : 0.00,
            'msg'               => isset($params['msg']) ? $params['msg'] : '',
            'payment'           => isset($params['payment']) ? $params['payment'] : '',
            'payment_name'      => isset($params['payment_name']) ? $params['payment_name'] : '',
D
devil_gong 已提交
58
            'refundment'        => isset($params['refundment']) ? intval($params['refundment']) : 0,
D
devil 已提交
59
            'business_type'     => isset($params['business_type']) ? trim($params['business_type']) : 0,
D
devil_gong 已提交
60
            'return_params'     => empty($params['return_params']) ? '' : json_encode($params['return_params'], JSON_UNESCAPED_UNICODE),
D
devil_gong 已提交
61 62 63 64 65 66
            'add_time'          => time(),
        ];
        return Db::name('RefundLog')->insertGetId($data) > 0;
    }

    /**
D
devil_gong 已提交
67
     * 获取退款日志类型
D
devil_gong 已提交
68 69 70 71 72 73
     * @author   Devil
     * @blog     http://gong.gg/
     * @version  1.0.0
     * @datetime 2018-12-23T02:22:03+0800
     * @param   [array]          $params [输入参数]
     */
D
devil_gong 已提交
74
    public static function RefundLogTypeList($params = [])
D
devil_gong 已提交
75
    {
D
Devil 已提交
76
        $data = Db::name('RefundLog')->field('payment as id, payment_name as name')->group('payment,payment_name')->select()->toArray();
D
devil_gong 已提交
77 78 79 80
        return DataReturn('处理成功', 0, $data);
    }
    
    /**
D
devil 已提交
81
     * 列表
D
devil_gong 已提交
82 83 84 85 86 87 88
     * @author   Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2018-09-29
     * @desc    description
     * @param   [array]          $params [输入参数]
     */
D
devil 已提交
89
    public static function RefundLogList($params = [])
D
devil_gong 已提交
90 91
    {
        $where = empty($params['where']) ? [] : $params['where'];
92 93
        $field = empty($params['field']) ? '*' : $params['field'];
        $order_by = empty($params['order_by']) ? 'id desc' : $params['order_by'];
D
devil_gong 已提交
94 95 96 97
        $m = isset($params['m']) ? intval($params['m']) : 0;
        $n = isset($params['n']) ? intval($params['n']) : 10;

        // 获取数据列表
D
Devil 已提交
98
        $data = Db::name('RefundLog')->where($where)->field($field)->limit($m, $n)->order($order_by)->select()->toArray();
D
devil_gong 已提交
99 100
        if(!empty($data))
        {
D
Devil 已提交
101
            $refundment_list = MyConst('common_order_aftersale_refundment_list');
D
devil_gong 已提交
102 103
            foreach($data as &$v)
            {
D
devil 已提交
104 105 106 107 108 109 110 111
                // 用户信息
                if(isset($v['user_id']))
                {
                    if(isset($params['is_public']) && $params['is_public'] == 0)
                    {
                        $v['user'] = UserService::GetUserViewInfo($v['user_id']);
                    }
                }
D
devil_gong 已提交
112

D
devil_gong 已提交
113
                // 退款方式
D
devil 已提交
114
                $v['refundment_text'] = $refundment_list[$v['refundment']]['name'];
D
devil_gong 已提交
115

D
devil_gong 已提交
116 117 118 119 120 121 122 123 124
                // 时间
                $v['add_time_time'] = date('Y-m-d H:i:s', $v['add_time']);
                $v['add_time_date'] = date('Y-m-d', $v['add_time']);
            }
        }
        return DataReturn('处理成功', 0, $data);
    }

    /**
D
devil 已提交
125
     * 总数
D
devil_gong 已提交
126 127 128 129 130 131 132
     * @author   Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2018-09-29
     * @desc    description
     * @param   [array]          $where [条件]
     */
D
devil 已提交
133
    public static function RefundLogTotal($where = [])
D
devil_gong 已提交
134
    {
D
devil 已提交
135
        return (int) Db::name('RefundLog')->where($where)->count();
D
devil_gong 已提交
136 137 138
    }
}
?>