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 查询订单完成情况
- }
- }
|