| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 | <?php/** * Ptb.php UTF-8 * 平台币充值 * * @date    : 2018/5/16 21:12 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author  : wuyonghong <wyh@huosdk.com> * @version : HUOSDK 8.0 */namespace huo\controller\wallet;use huo\controller\common\Base;use huo\controller\common\CommonFunc;use huo\controller\member\MemCache;use huo\controller\member\MemWallet;use huo\logic\finance\PtbChargeLogic;use huo\logic\finance\PtbOrderLogic;use huo\model\finance\PtbChargeModel;use huolib\constant\WalletConst;use huolib\status\CommonStatus;use huolib\status\MemberStatus;use huolib\status\OrderStatus;use huolib\status\SettleStatus;use huolib\tool\StrUtils;class Ptb extends Base {    protected function retSucMsg($code, $data = []) {        $_msg = OrderStatus::getMsg($code);        return $this->huoSuccess($code, $_msg, $data);    }    protected function retErrMsg($code) {        $_err_msg = OrderStatus::getMsg($code);        return $this->huoError($code, $_err_msg);    }    /**     *     * @param        $mem_id     * @param array  $param     * @param string $page     * @param string $order     *     * @return array     */    public function getMemChargeList($mem_id, $param = [], $page = '1,10', $order = '-create_time') {        $_data = (new PtbChargeLogic())->getMemList($mem_id, $param, $page, $order);        return $this->retSucMsg(CommonStatus::NO_ERROR, $_data);    }    public function getMemConsumeList($mem_id, $param = [], $page = '1,10', $order = '-create_time') {        $_data = (new PtbOrderLogic())->getMemList($mem_id, $param, $page, $order);        return $this->retSucMsg(CommonStatus::NO_ERROR, $_data);    }    /**     * 预下单     *     * @param $mem_id     * @param $amount     *     * @param $type     * @param $payway     *     * @return array|bool|string     */    public function preorder($mem_id, $amount, $type, $payway) {        if (empty($mem_id)) {            $_code = MemberStatus::LOGIN_IS_OUT;            return $this->huoError($_code, MemberStatus::getMsg($_code));        }        if (empty($amount) || $amount < 1) {            $_code = OrderStatus::ORDER_AMOUNT_MINIMUM_IS_1;            return $this->huoError($_code, OrderStatus::getMsg($_code));        }        $_mc_class = MemCache::ins();        $_mem_data = $_mc_class->getInfoById($mem_id);        $_me_data = $_mc_class->getMeInfoById($mem_id);        if (empty($_mem_data) || empty($_me_data)) {            $_code = MemberStatus::UID_INVALID;            return $this->huoError($_code, MemberStatus::getMsg($_code));        }        $_wr_class = new WalletRequest();        $_order_id = StrUtils::genOrderId($_mem_data['agent_id'], $_mem_data['agent_id'], $mem_id, WalletConst::WALLET_ORDER_PREFIX_PC);        $_wr_class->setOrderId($_order_id);        $_wr_class->setRealAmount($amount);        $_wr_class->setType($type);        $_wr_class->setPayway($payway);        $_wr_class->setMemId($mem_id);        // TODO: wuyonghong 2018/4/27  折扣处理        $_wr_class->setAmount($amount);        $_ptb_cnt = floor($amount * CommonFunc::getPtbRmbRate());        $_wr_class->setPtbCnt($_ptb_cnt);        $_rs = (new MemWallet())->createPcOrder($_wr_class);        if (SettleStatus::NO_ERROR != $_rs) {            return $this->huoError($_rs, SettleStatus::getMsg($_rs));        }        $_rdata['order_id'] = $_order_id;        return $this->retSucMsg(OrderStatus::NO_ERROR, $_rdata);    }    /**     * @param $order_id     *     * @return bool     */    public function getStatus($order_id = '') {        if (empty($order_id)) {            return false;        }        $_o_model = new PtbChargeModel();        $_rs = $_o_model->getStatus($order_id);        if (false == $_rs) {            return false;        }        return $_rs;    }    /**     * @param string $app_id     *     * @return array     */    public function getPayWays($app_id) {        // TODO: wuyonghong 2018/4/28 从数据库读取        if (empty($app_id)) {            /* 获取支付方式 */            $_rdata[0]['payway'] = 'alipay';            $_rdata[0]['name'] = '支付宝';            $_rdata[0]['icon'] = '';            $_rdata[0]['url'] = STATICSITE.'/h5sdk/images/arwec.png';            $_rdata[1]['payway'] = 'wxpay';            $_rdata[1]['name'] = '微信';            $_rdata[1]['icon'] = STATICSITE.'/h5sdk/images/wergcder.png';            $_rdata[1]['url'] = '支付宝';        }        /* 获取支付方式 */        $_rdata[0]['payway'] = 'alipay';        $_rdata[0]['name'] = '支付宝';        $_rdata[0]['icon'] = STATICSITE.'/h5sdk/images/arwec.png';        $_rdata[0]['url'] = '支付宝';        $_rdata[1]['payway'] = 'wxpay';        $_rdata[1]['name'] = '微信';        $_rdata[1]['icon'] = STATICSITE.'/h5sdk/images/wergcder.png';        $_rdata[1]['url'] = '支付宝';        $_rdata[2]['payway'] = 'shengpay';        $_rdata[2]['name'] = '银行卡';        $_rdata[2]['icon'] = STATICSITE.'/h5sdk/images/upcash.png';        $_rdata[2]['url'] = '银行卡';        return $_rdata;    }    /**     * 查询微信订单     *     * @param $order_id     */    public function queryWxOrder($order_id) {        // TODO: wuyonghong 2018/5/7 查询订单完成情况    }}
 |