Settle.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  1. <?php
  2. /**
  3. * Settle.php UTF-8
  4. * 提现
  5. *
  6. * @date : 2018/5/18 16:27
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : wuyonghong <wyh@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace huo\controller\finance;
  13. use huo\controller\agent\AgentCache;
  14. use huo\controller\agent\AgentWallet;
  15. use huo\controller\common\Base;
  16. use huo\controller\member\MemCache;
  17. use huo\controller\queue\SettleQueue;
  18. use huo\controller\wap\Option;
  19. use huo\logic\finance\SettleLogic;
  20. use huo\model\finance\SettleHistoryModel;
  21. use huo\model\finance\SettleModel;
  22. use huo\model\member\MemoauthModel;
  23. use huolib\constant\CommonConst;
  24. use huolib\constant\MemConst;
  25. use huolib\constant\OauthConst;
  26. use huolib\constant\OptionConst;
  27. use huolib\constant\SettleConst;
  28. use huolib\status\CommonStatus;
  29. use huolib\status\OrderStatus;
  30. use huolib\status\SettleStatus;
  31. use huolib\tool\StrUtils;
  32. use huolib\tool\Time;
  33. use huolib\withdraw\driver\Alipay;
  34. use huolib\withdraw\driver\Wxpay;
  35. use huomp\controller\finance\SettleVerifiedOut;
  36. use huomp\logic\finance\SettleLogLogic;
  37. use huomp\logic\game\OaMchLogic;
  38. use huomp\model\member\UnusualMemModel;
  39. use huomp\model\weixin\MpConfModel;
  40. use huoMpMsg\controller\OaOut;
  41. use think\Log;
  42. class Settle extends Base {
  43. /**
  44. * 获取提现列表
  45. *
  46. * @param $agent_id
  47. * @param $param
  48. * @param string $page
  49. * @param string $order
  50. *
  51. * @return array
  52. */
  53. public function getSettleList($agent_id, $param, $page = '1,10', $order = '-create_time') {
  54. $_rdata = (new SettleLogic())->getSettleList($agent_id, $param, $page, $order);
  55. $_code = CommonStatus::NO_ERROR;
  56. return $this->retSucMsg($_code, $_rdata);
  57. }
  58. /**
  59. * 提现
  60. *
  61. * @param int $agent_id
  62. * @param float $amount
  63. * @param string $type
  64. *
  65. * @param array $oauth_data //第三方参数
  66. *
  67. * @return array
  68. */
  69. public function doSettle($agent_id, $amount, $type, $oauth_data = []) {
  70. if (!is_numeric($amount) || StrUtils::compareNumber($amount, 0) <= 0) {
  71. $_code = SettleStatus::AMOUNT_IS_ERROR;
  72. return $this->huoError($_code, SettleStatus::getMsg($_code));
  73. }
  74. /* 更新钱包 */
  75. $_rs = (new AgentWallet())->updateWallet(
  76. $agent_id, $amount, SettleConst::SETTLE_WALLET_DEDUCT, SettleConst::SETTLE_WALLET_LOCK
  77. );
  78. if (SettleStatus::NO_ERROR != $_rs) {
  79. return $this->huoError($_rs, SettleStatus::getMsg($_rs));
  80. }
  81. $_withdraw_cnt = (new SettleModel())->getCnt($agent_id);
  82. /* 添加提现记录 */
  83. $_rs_data = $this->buildSettleOrder($agent_id, $amount, $type, $oauth_data);
  84. if (SettleStatus::NO_ERROR != $_rs_data['code']) {
  85. return $this->huoReturn($_rs_data);
  86. }
  87. /* 判断用户状态 冻结用户不可自动打款*/
  88. $_ag_data = AgentCache::ins()->getInfoByAgentId($agent_id);
  89. if (!empty($_ag_data['mem_id'])) {
  90. $_mem_data = MemCache::ins()->getInfoById($_ag_data['mem_id']);
  91. if (MemConst::STATUS_FORBID == $_mem_data['status']) {
  92. $_um_model = new UnusualMemModel();
  93. $_data = [
  94. 'mem_id' => $_ag_data['mem_id'],
  95. 'agent_id' => $agent_id,
  96. 'type' => MemConst::UNUSUAL_MEN_TYPE_3
  97. ];
  98. $_um_data = $_um_model->getDataByAgentId($agent_id);
  99. if (empty($_um_data)) {
  100. $_um_model->addData($_data);
  101. } else {
  102. $_um_model->updateDataByAgentId($_data, $_data['agent_id']);
  103. }
  104. if (!empty($_rs_data['data']['s_id'])) {
  105. (new SettleModel())->updateData(['tag' => SettleConst::SETTLE_TAG_2], $_rs_data['data']['s_id']);
  106. }
  107. /* 已冻结用户 需要运营审核 */
  108. return $this->huoReturn($_rs_data);
  109. }
  110. }
  111. /* 判断重名数 大于等于限制值 不可自动提现打款 */
  112. if (!empty($oauth_data['real_name'])) {
  113. $_rs = (new SettleVerifiedOut())->isLimit($oauth_data['real_name']);
  114. $_um_model = new UnusualMemModel();
  115. if (true == $_rs) { //达到限制记录玩家
  116. $_data = [
  117. 'mem_id' => $_ag_data['mem_id'],
  118. 'agent_id' => $agent_id,
  119. 'type' => MemConst::UNUSUAL_MEN_TYPE_4
  120. ];
  121. $_um_data = $_um_model->getDataByAgentId($agent_id);
  122. if (empty($_um_data)) {
  123. $_um_model->addData($_data);
  124. } else {
  125. $_um_model->updateDataByAgentId($_data, $_data['agent_id']);
  126. }
  127. /* 达到限制数量的第一个用户标记为 重名用户 需要运营审核 */
  128. if (!empty($_rs_data['data']['s_id'])) {
  129. (new SettleModel())->updateData(['tag' => SettleConst::SETTLE_TAG_2], $_rs_data['data']['s_id']);
  130. }
  131. return $this->huoReturn($_rs_data);
  132. } else {
  133. $_um_model->deleteByAgentId($agent_id);
  134. }
  135. }
  136. $_max_amount = $this->getAutoMaxAmount($_withdraw_cnt);
  137. $_diff = StrUtils::compareNumber($amount, $_max_amount);
  138. $_can_settle = $_diff > 0 ? false : true;
  139. if (false == $_can_settle) {
  140. /* 已提现并且第一次提现大于最大自动提现金额 需要运营审核 */
  141. return $this->huoReturn($_rs_data);
  142. }
  143. $_s_id = $_rs_data['data']['s_id'];
  144. /* 运营审核通过 */
  145. $_rs = $this->setStatus($agent_id, $_s_id, SettleConst::SETTLE_STATUS_FIN_CHECK, '自动提现');
  146. if (CommonStatus::NO_ERROR != $_rs['code']) {
  147. return $this->huoReturn($_rs);
  148. }
  149. return $this->setStatus($agent_id, $_s_id, SettleConst::SETTLE_STATUS_OK, '自动提现');
  150. }
  151. /**
  152. * 获取最大提现金额
  153. *
  154. * @param int $withdraw_cnt 提现次数
  155. *
  156. * @return float
  157. */
  158. public function getAutoMaxAmount($withdraw_cnt = 0) {
  159. $_setting_name = OptionConst::SETTING_SETTLE_LIMIT;
  160. $_m = new Option();
  161. $_item = $_m->getOptionData($_setting_name, 1, true);
  162. if (!empty($_item['option_value'])) {
  163. $_option_value = json_decode($_item['option_value'], true);
  164. unset($_item);
  165. }
  166. if (empty($withdraw_cnt)) {
  167. return empty($_option_value['first_limit']) ? 0.5 : $_option_value['first_limit'];
  168. }
  169. return empty($_option_value['again_limit']) ? 0 : $_option_value['again_limit'];;
  170. }
  171. /**
  172. * 创建提现订单
  173. *
  174. * @param $agent_id
  175. * @param $amount
  176. * @param $type
  177. *
  178. * @param array $oauth_data //第三方参数
  179. *
  180. * @return array
  181. */
  182. public function buildSettleOrder($agent_id, $amount, $type, $oauth_data = []) {
  183. $_data['agent_id'] = $agent_id;
  184. $_data['amount'] = $amount;
  185. $_data['type'] = $type;
  186. $_data['bankname'] = '';
  187. $_data['branchname'] = '';
  188. $_data['cardholder'] = empty($oauth_data['real_name']) ? '' : $oauth_data['real_name'];
  189. $_data['banknum'] = empty($oauth_data['openid']) ? '' : $oauth_data['openid'];
  190. $_data['status'] = SettleConst::SETTLE_STATUS_OP_CHECK;
  191. $_rs = (new SettleModel())->createOrder($_data);
  192. if (false === $_rs) {
  193. $_code = OrderStatus::ORDER_CREATE_FAIL;
  194. return $this->huoError($_code, OrderStatus::getMsg($_code));
  195. }
  196. $_code = SettleStatus::NO_ERROR;
  197. $_rdata['s_id'] = $_rs;
  198. return $this->huoSuccess($_code, SettleStatus::getMsg($_code), $_rdata);
  199. }
  200. /**
  201. * 获取今日有效提现数量, 状态为 1待审核、2待财务审核、3已结算的为有效提现 状态为 4运营审核不通过、5财务审核不通过 为无效提现
  202. *
  203. * @param int $agent_id
  204. *
  205. * @param float $amount
  206. *
  207. * @return array
  208. */
  209. public function isAllowSettle($agent_id, $amount = 0.00) {
  210. /* 判断是否限制提下用户 */
  211. $_umdata = (new UnusualMemModel())->getDataByAgentId($agent_id);
  212. if (!empty($_umdata) && MemConst::UNUSUAL_MEN_TYPE_5 == $_umdata['type']) {
  213. $_code = SettleStatus::SETTLT_REACHED_NOT_ALLOW;
  214. return $this->huoError($_code, SettleStatus::getMsg($_code));
  215. }
  216. if (StrUtils::compareNumber($amount, 0.3) < 0) {
  217. $_code = SettleStatus::AMOUNT_IS_ERROR;
  218. return $this->huoError($_code, '提现金额必须不小于0.3元');
  219. }
  220. list($_start_time, $_end_time) = Time::today();
  221. $_map = [
  222. 'agent_id' => $agent_id,
  223. 'type' => SettleConst::SETTLE_TYPE_MP,
  224. 'create_time' => ['gt', $_start_time],
  225. 'status' => ['in', [SettleConst::SETTLE_STATUS_OP_CHECK, SettleConst::SETTLE_STATUS_FIN_CHECK,
  226. SettleConst::SETTLE_STATUS_OK]],
  227. ];
  228. $_count = (new SettleModel())->where($_map)->count('id');
  229. $_limit = $this->getSettleLimit();
  230. if (empty($_count) || $_count < $_limit) {
  231. $_code = CommonStatus::NO_ERROR;
  232. return $this->huoError($_code, SettleStatus::getMsg($_code), ['count' => $_count, 'limit' => $_limit]);
  233. }
  234. $_code = SettleStatus::SETTLT_REACHED_LIMIT;
  235. return $this->huoError($_code, SettleStatus::getMsg($_code), ['count' => $_count, 'limit' => $_limit]);
  236. }
  237. /**
  238. * 获取限制提现次数
  239. */
  240. public function getSettleLimit() {
  241. $_limit = 1;
  242. return $_limit;
  243. }
  244. /**
  245. * 设置状态
  246. *
  247. *
  248. * @param int $admin_id
  249. * @param int $s_id
  250. * @param int $status
  251. * @param string $content
  252. *
  253. * @return array
  254. */
  255. public function setStatus($admin_id, $s_id, $status, $content = '') {
  256. $_settle_model = new SettleModel();
  257. $_data = $_settle_model->getDetail($s_id);
  258. if (empty($_data) || !is_numeric($admin_id)) {
  259. $_code = SettleStatus::INVALID_PARAMS;
  260. return $this->huoError($_code, SettleStatus::getMsg($_code));
  261. }
  262. $_old_status = $_data['status'];
  263. $_check_time = $_data['check_time'];
  264. switch ($status) {
  265. case SettleConst::SETTLE_STATUS_FIN_CHECK:
  266. $_content = '运营审核通过,'.$content;
  267. $_data['status'] = SettleConst::SETTLE_STATUS_FIN_CHECK;
  268. $_data['check_time'] = time();
  269. break;
  270. case SettleConst::SETTLE_STATUS_OK:
  271. $_content = '提现成功,'.$content;
  272. $_data['status'] = SettleConst::SETTLE_STATUS_OK;
  273. $_data['settle_time'] = time();
  274. // $_data['pay_status'] = SettleConst::SETTLE_PAY_SUCCESS;
  275. break;
  276. case SettleConst::SETTLE_STATUS_OP_NO:
  277. $_content = '运营审核不通过,'.$content;
  278. $_data['status'] = SettleConst::SETTLE_STATUS_OP_NO;
  279. $_data['check_time'] = time();
  280. $_data['failreason'] = $_content;
  281. break;
  282. case SettleConst::SETTLE_STATUS_FIN_NO:
  283. $_content = '财务审核不通过,'.$content;
  284. $_data['status'] = SettleConst::SETTLE_STATUS_FIN_NO;
  285. $_data['settle_time'] = time();
  286. $_data['failreason'] = $_content;
  287. break;
  288. default:
  289. $_code = SettleStatus::INVALID_PARAMS;
  290. return $this->huoError($_code, SettleStatus::getMsg($_code));
  291. }
  292. $_rs = $_settle_model->updateData($_data, $s_id);
  293. if (false === $_rs) {
  294. $_code = SettleStatus::INNER_ERROR;
  295. return $this->huoError($_code, SettleStatus::getMsg($_code));
  296. }
  297. $_agent_wallet = new AgentWallet();
  298. switch ($status) {
  299. case SettleConst::SETTLE_STATUS_OK:
  300. /* 减少冻结金额 */
  301. $_rs = $_agent_wallet->updateWallet(
  302. $_data['agent_id'],
  303. $_data['amount'],
  304. SettleConst::SETTLE_WALLET_NO,
  305. SettleConst::SETTLE_WALLET_UNLOCK
  306. );
  307. if (SettleStatus::NO_ERROR == $_rs) {
  308. if (SettleConst::SETTLE_TYPE_MP == $_data['type']) {//小程序提现在线打款 2018-08-16
  309. /*在线打款*/
  310. /* 提现入队列 */
  311. $_data['status'] = SettleConst::SETTLE_STATUS_QUEUE;
  312. $_queue_data = $_data;
  313. $_queue_data['admin_id'] = $admin_id;
  314. $_rs = (new SettleQueue($_queue_data))->pushQueue();
  315. if (SettleStatus::NO_ERROR != $_rs['code']) { //打款失败
  316. $_agent_wallet->updateWallet(
  317. $_data['agent_id'], $_data['amount'], SettleConst::SETTLE_WALLET_NO,
  318. SettleConst::SETTLE_WALLET_LOCK
  319. ); //增加冻结金额
  320. /*更换回运营审核通过*/
  321. $_data['status'] = $_old_status;
  322. $_data['check_time'] = $_check_time;
  323. $_data['pay_status'] = SettleConst::SETTLE_PAY_PROCESSING;
  324. $_data['failreason'] = $_rs['msg'];
  325. $_settle_model->updateData($_data, $s_id);
  326. return $this->huoError(SettleStatus::SETTLT_PAY_ERROR, $_rs['msg']);
  327. }
  328. //
  329. $_content = '进入提现队列,'.$content;
  330. }
  331. } else {
  332. $_data['status'] = SettleConst::SETTLE_STATUS_FIN_CHECK;
  333. $_data['check_time'] = time();
  334. $_data['failreason'] = '';
  335. $_settle_model->updateData($_data, $s_id);
  336. (new OaOut())->sendAdminSettleMsg($_data['agent_id'], $_data['amount']);
  337. return $this->huoError($_rs, SettleStatus::getMsg($_rs));
  338. }
  339. break;
  340. case SettleConst::SETTLE_STATUS_OP_NO:
  341. case SettleConst::SETTLE_STATUS_FIN_NO:
  342. /* 返回到账户中 */
  343. $_rs = $_agent_wallet->updateWallet(
  344. $_data['agent_id'],
  345. $_data['amount'],
  346. SettleConst::SETTLE_WALLET_ADD,
  347. SettleConst::SETTLE_WALLET_UNLOCK
  348. );
  349. if (SettleStatus::NO_ERROR == $_rs) {
  350. (new OaOut())->sendAdminMoneyChangeMsg($_data['agent_id'], $_data['amount']);
  351. $_data['is_return'] = 2;
  352. } else {
  353. $_data['is_return'] = 1;
  354. }
  355. break;
  356. default:
  357. break;
  358. }
  359. $_settle_model->updateData($_data, $s_id);
  360. $_sh_data['s_id'] = $s_id;
  361. $_sh_data['u_id'] = $admin_id;
  362. $_sh_data['content'] = $_content;
  363. (new SettleHistoryModel())->addLog($_sh_data);
  364. $_code = SettleStatus::NO_ERROR;
  365. return $this->huoError($_code, SettleStatus::getMsg($_code));
  366. }
  367. /**
  368. * 放入队列处理
  369. *
  370. * @param array $s_data 提现数据
  371. *
  372. * @return array
  373. */
  374. public function withdrawQueue($s_data) {
  375. $_data = $s_data;
  376. $_rs = $this->withdrawPayment($_data);
  377. if (SettleConst::SETTLE_SUCCESS != $_rs['code']) {
  378. /* 打款失败 */
  379. /* 1.1 增加冻结金额 */
  380. Log::write(
  381. '打款失败增加冻结金额'.json_encode($_data), Log::ERROR
  382. );
  383. if (SettleConst::SETTLE_STATUS_QUEUE == $_data['status']) {
  384. (new AgentWallet())->updateWallet(
  385. $_data['agent_id'], $_data['amount'], SettleConst::SETTLE_WALLET_NO,
  386. SettleConst::SETTLE_WALLET_LOCK
  387. );
  388. }
  389. $_data['status'] = SettleConst::SETTLE_STATUS_FIN_CHECK; // 退回财务审核
  390. $_data['pay_status'] = SettleConst::SETTLE_PAY_FAILED; // 打款失败
  391. $_data['failreason'] = json_encode($_rs);
  392. $_content = '提现失败,'.$_data['failreason'];
  393. $_rs['code'] = SettleStatus::SETTLT_PAY_ERROR;
  394. } else {
  395. /* 打款成功 */
  396. $_content = '提现成功';
  397. $_data['status'] = SettleConst::SETTLE_STATUS_OK;
  398. $_data['settle_time'] = time();
  399. $_data['pay_status'] = SettleConst::SETTLE_PAY_SUCCESS;
  400. $_rs['code'] = SettleStatus::NO_ERROR;
  401. (new OaOut())->sendAdminSettleMsg($_data['agent_id'], $_data['amount']);
  402. }
  403. (new SettleModel())->updateData($_data, $_data['id']);
  404. (new SettleHistoryModel())->addData($s_data['id'], $s_data['admin_id'], $_content);
  405. $_rs['data'] = [];
  406. return $this->huoReturn($_rs);
  407. }
  408. /**
  409. * 提现打款
  410. *
  411. * @param $s_data
  412. *
  413. * @return array|int
  414. */
  415. public function withdrawPayment($s_data) {
  416. if (empty($s_data)) {
  417. return SettleStatus::INVALID_PARAMS;
  418. }
  419. switch ($s_data['type']) {
  420. case SettleConst::SETTLE_TYPE_BANK: //银行卡
  421. return SettleStatus::TYPE_EMPTY; // TODO: chenbingling 2018/7/6 银行在线打款未接入
  422. break;
  423. case SettleConst::SETTLE_TYPE_ALIPAY: //支付宝
  424. $_pay_class = new Alipay();
  425. $_pay_class->setPayeeAccount($s_data['banknum']);
  426. $_pay_class->setPayerShowName($this->getSettleRemark('show_name'));
  427. //$_pay_class->setRealAmount('0.1'); //TODO: chenbingling 2018/7/6 测试打款 使用 正式上线请勿使用
  428. break;
  429. case SettleConst::SETTLE_TYPE_WXPAY: //微信
  430. case SettleConst::SETTLE_TYPE_MP: //小程序提现
  431. /* 获取微信商户配置 */
  432. $_mem_auto = (new MemoauthModel())->getInfoByOpenId(OauthConst::OAUTH_WEIXIN, $s_data['banknum']);
  433. $_mp_id = (new MpConfModel())->getMpIdById($_mem_auto['conf_id']);
  434. $_config = (new OaMchLogic())->getDefaultMchConf($_mp_id);
  435. $_pay_class = new Wxpay($_config);
  436. $_pay_class->setOpenId($s_data['banknum']);
  437. //$_pay_class->setRealAmount('1'); //TODO: chenbingling 2018/7/6 测试打款 使用 正式上线请勿使用
  438. break;
  439. default:
  440. return SettleStatus::TYPE_EMPTY;
  441. }
  442. /* 获取后台提现配置 */
  443. $_vcfg = (new SettleVerifiedOut())->getVerifiedCfg();
  444. if (CommonConst::STATUS_YES == $_vcfg['is_verified']) { //提现需实名
  445. $_withdraw_cnt = (new SettleModel())->getCnt($s_data['agent_id']);
  446. if (CommonConst::STATUS_YES == $_vcfg['first_verified'] || $_withdraw_cnt > 1) {
  447. $_agent_data = AgentCache::ins()->getInfoByAgentId($s_data['agent_id']);
  448. $_mem_data = MemCache::ins()->getInfoById(get_val($_agent_data, 'mem_id', 0));
  449. $_pay_class->setCheckName('FORCE_CHECK'); //微信校验用户姓名选项 NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名
  450. $s_data['cardholder'] = $_mem_data['real_name'];
  451. }
  452. }
  453. $_pay_class->setPayeeRealName($s_data['cardholder']);
  454. $_pay_class->setOrderId($s_data['id']);
  455. $_pay_class->setRealAmount($s_data['amount']); //TODO: chenbingling 2018/7/6 正式打款请用这个
  456. $_pay_class->setRemark($this->getSettleRemark('remark', $s_data['amount']));
  457. $_rs = $_pay_class->withDraw();
  458. // $_rs=[];
  459. /*打款记录*/
  460. $_pay_data = [];
  461. $_pay_data['mem_id'] = get_val($s_data, 'mem_id', 0);
  462. $_pay_data['agent_id'] = get_val($s_data, 'agent_id', 0);
  463. $_pay_data['order_id'] = get_val($s_data, 'id', '');
  464. $_pay_data['amount'] = get_val($s_data, 'amount', 0.00);
  465. $_pay_data['type'] = get_val($s_data, 'type', '');
  466. $_pay_data['cardholder'] = get_val($s_data, 'cardholder', '');
  467. $_pay_data['banknum'] = get_val($s_data, 'banknum', '');
  468. $_pay_data['code'] = get_val($_rs, 'code', '');
  469. $_pay_data['msg'] = get_val($_rs, 'msg', '');
  470. $_pay_data['result'] = get_val($_rs, 'result', '');
  471. $_pay_data['query_result'] = get_val($_rs, 'query_result', '');
  472. (new SettleLogLogic())->addPayLog($_pay_data);
  473. return $_rs;
  474. }
  475. /**
  476. * 获取提现显示名称和备注
  477. *
  478. * @param $name
  479. * @param int $money
  480. *
  481. * @return mixed
  482. */
  483. protected function getSettleRemark($name = 'show_name', $money = 0) {
  484. $_setting_name = OptionConst::NAME_SETTLE_PAY_NOTE;
  485. $_option_value = [
  486. 'show_name' => SettleConst::SETTLE_SHOW_NAME,
  487. 'remark' => SettleConst::SETTLE_REMARK
  488. ];
  489. $_m = new Option();
  490. $_item = $_m->getOptionData($_setting_name, 1, true, json_encode($_option_value));
  491. if (!empty($_item['option_value'])) {
  492. $_item['option_value'] = json_decode($_item['option_value'], true);
  493. }
  494. $_data = [
  495. 'show_name' => $_item['option_value']['show_name'], //提现显示付款方姓名
  496. 'remark' => sprintf($_item['option_value']['remark'], $money) //提现显示备注
  497. ];
  498. if (empty($_data[$name])) {
  499. return '';
  500. }
  501. return $_data[$name];
  502. }
  503. }