predeposit.model.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675
  1. <?php
  2. /**
  3. * 预存款
  4. *
  5. */
  6. defined('InShopNC') or exit('Access Invalid!');
  7. require_once (BASE_ROOT_PATH . '/helper/account_helper.php');
  8. class predepositModel extends Model {
  9. /**
  10. * 生成充值编号
  11. * @return string
  12. */
  13. public function makeSn() {
  14. return mt_rand(10,99)
  15. . sprintf('%010d',time() - 946656000)
  16. . sprintf('%03d', (float) microtime() * 1000)
  17. . sprintf('%03d', (int) $_SESSION['member_id'] % 1000);
  18. }
  19. public function addRechargeCard($sn, array $session)
  20. {
  21. $memberId = (int) $session['member_id'];
  22. $memberName = $session['member_name'];
  23. if ($memberId < 1 || !$memberName) {
  24. throw new Exception("当前登录状态为未登录,不能使用充值卡");
  25. }
  26. $rechargecard_model = Model('rechargecard');
  27. $card = $rechargecard_model->getRechargeCardBySN($sn);
  28. if (empty($card) || $card['state'] != 0 || $card['member_id'] != 0) {
  29. throw new Exception("充值卡不存在或已被使用");
  30. }
  31. $card['member_id'] = $memberId;
  32. $card['member_name'] = $memberName;
  33. try {
  34. $trans = new trans_wapper($this,__METHOD__);
  35. $rechargecard_model->setRechargeCardUsedById($card['id'], $memberId, $memberName);
  36. $card['amount'] = $card['denomination'];
  37. $this->changeRcb('recharge', $card);
  38. $trans->commit();
  39. } catch (Exception $e) {
  40. $trans->rollback();
  41. throw $e;
  42. }
  43. }
  44. /**
  45. * 取得充值列表
  46. * @param unknown $condition
  47. * @param string $pagesize
  48. * @param string $fields
  49. * @param string $order
  50. */
  51. public function getPdRechargeList($condition = array(), $pagesize = '', $fields = '*', $order = '', $limit = '') {
  52. return $this->table('pd_recharge')->where($condition)->field($fields)->order($order)->limit($limit)->page($pagesize)->select();
  53. }
  54. /**
  55. * 添加充值记录
  56. * @param array $data
  57. */
  58. public function addPdRecharge($data) {
  59. return $this->table('pd_recharge')->insert($data);
  60. }
  61. /**
  62. * 编辑
  63. * @param unknown $data
  64. * @param unknown $condition
  65. */
  66. public function editPdRecharge($data,$condition = array()) {
  67. return $this->table('pd_recharge')->where($condition)->update($data);
  68. }
  69. /**
  70. * 取得单条充值信息
  71. * @param unknown $condition
  72. * @param string $fields
  73. */
  74. public function getPdRechargeInfo($condition = array(), $fields = '*') {
  75. return $this->table('pd_recharge')->where($condition)->field($fields)->find();
  76. }
  77. /**
  78. * 取充值信息总数
  79. * @param unknown $condition
  80. */
  81. public function getPdRechargeCount($condition = array()) {
  82. return $this->table('pd_recharge')->where($condition)->count();
  83. }
  84. /**
  85. * 取提现单信息总数
  86. * @param unknown $condition
  87. */
  88. public function getPdCashCount($condition = array()) {
  89. return $this->table('pd_cash')->where($condition)->count();
  90. }
  91. /**
  92. * 取日志总数
  93. * @param unknown $condition
  94. */
  95. public function getPdLogCount($condition = array()) {
  96. return $this->table('pd_log')->where($condition)->count();
  97. }
  98. /**
  99. * 取得预存款变更日志列表
  100. * @param unknown $condition
  101. * @param string $pagesize
  102. * @param string $fields
  103. * @param string $order
  104. */
  105. public function getPdLogList($condition = array(), $pagesize = '', $fields = '*', $order = '', $limit = '') {
  106. return $this->table('pd_log')->where($condition)->field($fields)->order($order)->limit($limit)->page($pagesize)->select();
  107. }
  108. /**
  109. * 变更充值卡余额
  110. *
  111. * @param string $type
  112. * @param array $data
  113. *
  114. * @return mixed
  115. * @throws Exception
  116. */
  117. public function changeRcb($type, $data = array())
  118. {
  119. $amount = (float) $data['amount'];
  120. if ($amount < .01) {
  121. throw new Exception('参数错误');
  122. }
  123. $available = $freeze = 0;
  124. $desc = null;
  125. switch ($type) {
  126. case 'order_pay':
  127. $available = -$amount;
  128. $desc = '下单,使用充值卡余额,订单号: ' . $data['order_sn'];
  129. break;
  130. case 'order_freeze':
  131. $available = -$amount;
  132. $freeze = $amount;
  133. $desc = '下单,冻结充值卡余额,订单号: ' . $data['order_sn'];
  134. break;
  135. case 'order_cancel':
  136. $available = $amount;
  137. $freeze = -$amount;
  138. $desc = '取消订单,解冻充值卡余额,订单号: ' . $data['order_sn'];
  139. break;
  140. case 'order_comb_pay':
  141. $freeze = -$amount;
  142. $desc = '下单,扣除被冻结的充值卡余额,订单号: ' . $data['order_sn'];
  143. break;
  144. case 'recharge':
  145. $available = $amount;
  146. $desc = '平台充值卡充值,充值卡号: ' . $data['sn'];
  147. break;
  148. case 'refund':
  149. $available = $amount;
  150. $desc = '确认退款,订单号: ' . $data['order_sn'];
  151. break;
  152. case 'vr_refund':
  153. $available = $amount;
  154. $desc = '虚拟兑码退款成功,订单号: ' . $data['order_sn'];
  155. break;
  156. default:
  157. throw new Exception('参数错误');
  158. }
  159. $update = array();
  160. if ($available) {
  161. $update['available_rc_balance'] = array('exp', "available_rc_balance + ({$available})");
  162. }
  163. if ($freeze) {
  164. $update['freeze_rc_balance'] = array('exp', "freeze_rc_balance + ({$freeze})");
  165. }
  166. if (!$update) {
  167. throw new Exception('参数错误');
  168. }
  169. // 更新会员
  170. $updateSuccess = Model('member')->editMember(array(
  171. 'member_id' => $data['member_id'],
  172. ), $update);
  173. if (!$updateSuccess) {
  174. throw new Exception('操作失败');
  175. }
  176. // 添加日志
  177. $log = array('member_id' => $data['member_id'],
  178. 'member_name' => $data['member_name'],
  179. 'type' => $type,
  180. 'add_time' => time(),
  181. 'available_amount' => $available,
  182. 'freeze_amount' => $freeze,
  183. 'description' => $desc);
  184. $insertSuccess = $this->table('rcb_log')->insert($log);
  185. if (!$insertSuccess) {
  186. throw new Exception('操作失败');
  187. }
  188. $msg = array('code' => 'recharge_card_balance_change',
  189. 'member_id' => $data['member_id'],
  190. 'param' => array(
  191. 'time' => date('Y-m-d H:i:s', time()),
  192. 'url' => urlShop('predeposit', 'rcb_log_list'),
  193. 'available_amount' => ncPriceFormat($available),
  194. 'freeze_amount' => ncPriceFormat($freeze),
  195. 'description' => $desc,
  196. ),
  197. );
  198. // 发送买家消息
  199. QueueClient::push('sendMemberMsg', $msg);
  200. return $insertSuccess;
  201. }
  202. /**
  203. * 变更预存款
  204. * @param unknown $change_type
  205. * @param unknown $data
  206. * @throws Exception
  207. * @return unknown
  208. */
  209. public function changePd($change_type,$data = array()) {
  210. $data_log = array();
  211. $data_pd = array();
  212. $data_msg = array();
  213. $data_log['lg_member_id'] = $data['member_id'];
  214. $data_log['lg_member_name'] = $data['member_name'];
  215. $data_log['lg_add_time'] = TIMESTAMP;
  216. $data_log['lg_type'] = $change_type;
  217. $data_msg['time'] = date('Y-m-d H:i:s');
  218. $data_msg['pd_url'] = urlShop('predeposit', 'pd_log_list');
  219. switch ($change_type){
  220. case 'order_pay':
  221. $data_log['lg_av_amount'] = -$data['amount'];
  222. $data_log['lg_desc'] = '下单,支付预存款,订单号: '.$data['order_sn'];
  223. $data_pd['available_predeposit'] = array('exp','available_predeposit-'.$data['amount']);
  224. $data_msg['av_amount'] = -$data['amount'];
  225. $data_msg['freeze_amount'] = 0;
  226. $data_msg['desc'] = $data_log['lg_desc'];
  227. break;
  228. case 'order_freeze':
  229. $data_log['lg_av_amount'] = -$data['amount'];
  230. $data_log['lg_freeze_amount'] = $data['amount'];
  231. $data_log['lg_desc'] = '下单,冻结预存款,订单号: '.$data['order_sn'];
  232. $data_pd['freeze_predeposit'] = array('exp','freeze_predeposit+'.$data['amount']);
  233. $data_pd['available_predeposit'] = array('exp','available_predeposit-'.$data['amount']);
  234. $data_msg['av_amount'] = -$data['amount'];
  235. $data_msg['freeze_amount'] = $data['amount'];
  236. $data_msg['desc'] = $data_log['lg_desc'];
  237. break;
  238. case 'order_cancel':
  239. $data_log['lg_av_amount'] = $data['amount'];
  240. $data_log['lg_freeze_amount'] = -$data['amount'];
  241. $data_log['lg_desc'] = '取消订单,解冻预存款,订单号: '.$data['order_sn'];
  242. $data_pd['freeze_predeposit'] = array('exp','freeze_predeposit-'.$data['amount']);
  243. $data_pd['available_predeposit'] = array('exp','available_predeposit+'.$data['amount']);
  244. $data_msg['av_amount'] = $data['amount'];
  245. $data_msg['freeze_amount'] = -$data['amount'];
  246. $data_msg['desc'] = $data_log['lg_desc'];
  247. break;
  248. case 'order_comb_pay':
  249. $data_log['lg_freeze_amount'] = -$data['amount'];
  250. $data_log['lg_desc'] = '下单,支付被冻结的预存款,订单号: '.$data['order_sn'];
  251. $data_pd['freeze_predeposit'] = array('exp','freeze_predeposit-'.$data['amount']);
  252. $data_msg['av_amount'] = 0;
  253. $data_msg['freeze_amount'] = $data['amount'];
  254. $data_msg['desc'] = $data_log['lg_desc'];
  255. break;
  256. case 'recharge':
  257. $data_log['lg_av_amount'] = $data['amount'];
  258. $data_log['lg_desc'] = '充值,充值单号: '.$data['pdr_sn'];
  259. $data_log['lg_admin_name'] = $data['admin_name'];
  260. $data_pd['available_predeposit'] = array('exp','available_predeposit+'.$data['amount']);
  261. $data_msg['av_amount'] = $data['amount'];
  262. $data_msg['freeze_amount'] = 0;
  263. $data_msg['desc'] = $data_log['lg_desc'];
  264. break;
  265. case 'refund':
  266. $data_log['lg_av_amount'] = $data['amount'];
  267. $data_log['lg_desc'] = '确认退款,订单号: '.$data['order_sn'];
  268. $data_pd['available_predeposit'] = array('exp','available_predeposit+'.$data['amount']);
  269. $data_msg['av_amount'] = $data['amount'];
  270. $data_msg['freeze_amount'] = 0;
  271. $data_msg['desc'] = $data_log['lg_desc'];
  272. break;
  273. case 'vr_refund':
  274. $data_log['lg_av_amount'] = $data['amount'];
  275. $data_log['lg_desc'] = '虚拟兑码退款成功,订单号: '.$data['order_sn'];
  276. $data_pd['available_predeposit'] = array('exp','available_predeposit+'.$data['amount']);
  277. $data_msg['av_amount'] = $data['amount'];
  278. $data_msg['freeze_amount'] = 0;
  279. $data_msg['desc'] = $data_log['lg_desc'];
  280. break;
  281. case 'cash_apply':
  282. $data_log['lg_av_amount'] = -$data['amount'];
  283. $data_log['lg_freeze_amount'] = $data['amount'];
  284. $data_log['lg_desc'] = '申请提现,冻结预存款,提现单号: '.$data['order_sn'];
  285. $data_pd['available_predeposit'] = array('exp','available_predeposit-'.$data['amount']);
  286. $data_pd['freeze_predeposit'] = array('exp','freeze_predeposit+'.$data['amount']);
  287. $data_msg['av_amount'] = -$data['amount'];
  288. $data_msg['freeze_amount'] = $data['amount'];
  289. $data_msg['desc'] = $data_log['lg_desc'];
  290. break;
  291. case 'cash_pay':
  292. $data_log['lg_freeze_amount'] = -$data['amount'];
  293. $data_log['lg_desc'] = '提现成功,提现单号: '.$data['order_sn'];
  294. $data_log['lg_admin_name'] = $data['admin_name'];
  295. $data_pd['freeze_predeposit'] = array('exp','freeze_predeposit-'.$data['amount']);
  296. $data_msg['av_amount'] = 0;
  297. $data_msg['freeze_amount'] = -$data['amount'];
  298. $data_msg['desc'] = $data_log['lg_desc'];
  299. break;
  300. case 'cash_del':
  301. $data_log['lg_av_amount'] = $data['amount'];
  302. $data_log['lg_freeze_amount'] = -$data['amount'];
  303. $data_log['lg_desc'] = '取消提现申请,解冻预存款,提现单号: '.$data['order_sn'];
  304. $data_log['lg_admin_name'] = $data['admin_name'];
  305. $data_pd['available_predeposit'] = array('exp','available_predeposit+'.$data['amount']);
  306. $data_pd['freeze_predeposit'] = array('exp','freeze_predeposit-'.$data['amount']);
  307. $data_msg['av_amount'] = $data['amount'];
  308. $data_msg['freeze_amount'] = -$data['amount'];
  309. $data_msg['desc'] = $data_log['lg_desc'];
  310. break;
  311. ////////////////////zmr>v20////////////////////////////////////
  312. case 'sys_add_money':
  313. $data_log['lg_av_amount'] = $data['amount'];
  314. $data_log['lg_desc'] = '管理员调节预存款【增加】,充值单号: '.$data['pdr_sn'];
  315. $data_log['lg_admin_name'] = $data['admin_name'];
  316. $data_pd['available_predeposit'] = array('exp','available_predeposit+'.$data['amount']);
  317. $data_msg['av_amount'] = $data['amount'];
  318. $data_msg['freeze_amount'] = 0;
  319. $data_msg['desc'] = $data_log['lg_desc'];
  320. break;
  321. case 'sys_del_money':
  322. $data_log['lg_av_amount'] = -$data['amount'];
  323. $data_log['lg_desc'] = '管理员调节预存款【减少】,充值单号: '.$data['pdr_sn'];
  324. $data_pd['available_predeposit'] = array('exp','available_predeposit-'.$data['amount']);
  325. $data_msg['av_amount'] = -$data['amount'];
  326. $data_msg['freeze_amount'] = 0;
  327. $data_msg['desc'] = $data_log['lg_desc'];
  328. break;
  329. case 'sys_freeze_money':
  330. $data_log['lg_av_amount'] = -$data['amount'];
  331. $data_log['lg_freeze_amount'] = $data['amount'];
  332. $data_log['lg_desc'] = '管理员调节预存款【冻结】,充值单号: '.$data['pdr_sn'];
  333. $data_pd['available_predeposit'] = array('exp','available_predeposit-'.$data['amount']);
  334. $data_pd['freeze_predeposit'] = array('exp','freeze_predeposit+'.$data['amount']);
  335. $data_msg['av_amount'] = -$data['amount'];
  336. $data_msg['freeze_amount'] = $data['amount'];
  337. $data_msg['desc'] = $data_log['lg_desc'];
  338. break;
  339. case 'sys_unfreeze_money':
  340. $data_log['lg_av_amount'] = $data['amount'];
  341. $data_log['lg_freeze_amount'] = -$data['amount'];
  342. $data_log['lg_desc'] = '管理员调节预存款【解冻】,充值单号: '.$data['pdr_sn'];
  343. $data_log['lg_admin_name'] = $data['admin_name'];
  344. $data_pd['available_predeposit'] = array('exp','available_predeposit+'.$data['amount']);
  345. $data_pd['freeze_predeposit'] = array('exp','freeze_predeposit-'.$data['amount']);
  346. $data_msg['av_amount'] = $data['amount'];
  347. $data_msg['freeze_amount'] = -$data['amount'];
  348. $data_msg['desc'] = $data_log['lg_desc'];
  349. break;
  350. //////////////////////////////////////////////////////
  351. default:
  352. throw new Exception('参数错误');
  353. break;
  354. }
  355. $update = Model('member')->editMember(array('member_id'=>$data['member_id']),$data_pd);
  356. if (!$update) {
  357. throw new Exception('操作失败');
  358. }
  359. $insert = $this->table('pd_log')->insert($data_log);
  360. if (!$insert) {
  361. throw new Exception('操作失败');
  362. }
  363. // 支付成功发送买家消息
  364. $param = array();
  365. $param['code'] = 'predeposit_change';
  366. $param['member_id'] = $data['member_id'];
  367. $data_msg['av_amount'] = ncPriceFormat($data_msg['av_amount']);
  368. $data_msg['freeze_amount'] = ncPriceFormat($data_msg['freeze_amount']);
  369. $param['param'] = $data_msg;
  370. QueueClient::push('sendMemberMsg', $param);
  371. return $insert;
  372. }
  373. /**
  374. * 变更预存款
  375. * @param unknown $change_type
  376. * @param unknown $data
  377. * @throws Exception
  378. * @return unknown
  379. */
  380. public function changeBonus($change_type,$data = array())
  381. {
  382. $data_log = array();
  383. $data_msg = array();
  384. $data_log['lg_member_id'] = $data['member_id'];
  385. $data_log['lg_member_name'] = $data['member_name'];
  386. $data_log['lg_add_time'] = time();
  387. $data_log['lg_type'] = $change_type;
  388. $data_msg['time'] = date('Y-m-d H:i:s');
  389. $data_msg['pd_url'] = urlShop('predeposit', 'pd_log_list');
  390. $add_log = true;
  391. switch ($change_type)
  392. {
  393. case 'order_pay':
  394. $data_log['lg_av_amount'] = -$data['amount'];
  395. $data_log['lg_desc'] = '下单,支付红包,订单号: '.$data['order_sn'];
  396. $data_msg['av_amount'] = -$data['amount'];
  397. $data_msg['freeze_amount'] = 0;
  398. $data_msg['desc'] = $data_log['lg_desc'];
  399. break;
  400. case 'order_freeze':
  401. $data_log['lg_av_amount'] = -$data['amount'];
  402. $data_log['lg_desc'] = '下单,支付红包,订单号: '.$data['order_sn'];
  403. $data_msg['av_amount'] = -$data['amount'];
  404. $data_msg['desc'] = $data_log['lg_desc'];
  405. break;
  406. case 'order_cancel':
  407. return true;
  408. case 'order_comb_pay':
  409. return true;
  410. case 'recharge':
  411. $data_log['lg_av_amount'] = $data['amount'];
  412. $data_log['lg_desc'] = '充值,充值单号: '.$data['pdr_sn'];
  413. $data_log['lg_admin_name'] = $data['admin_name'];
  414. $data_msg['av_amount'] = $data['amount'];
  415. $data_msg['freeze_amount'] = 0;
  416. $data_msg['desc'] = $data_log['lg_desc'];
  417. break;
  418. case 'refund':
  419. return true;
  420. case 'vr_refund':
  421. $data_log['lg_av_amount'] = $data['amount'];
  422. $data_log['lg_desc'] = '虚拟兑码退款成功,订单号: '.$data['order_sn'];
  423. $data_msg['av_amount'] = $data['amount'];
  424. $data_msg['freeze_amount'] = 0;
  425. $data_msg['desc'] = $data_log['lg_desc'];
  426. break;
  427. case 'cash_apply':
  428. $data_log['lg_av_amount'] = -$data['amount'];
  429. $data_log['lg_freeze_amount'] = $data['amount'];
  430. $data_log['lg_desc'] = '申请提现,冻结预存款,提现单号: '.$data['order_sn'];
  431. $data_msg['av_amount'] = -$data['amount'];
  432. $data_msg['freeze_amount'] = $data['amount'];
  433. $data_msg['desc'] = $data_log['lg_desc'];
  434. break;
  435. case 'cash_pay':
  436. $data_log['lg_freeze_amount'] = -$data['amount'];
  437. $data_log['lg_desc'] = '提现成功,提现单号: '.$data['order_sn'];
  438. $data_log['lg_admin_name'] = $data['admin_name'];
  439. $data_msg['av_amount'] = 0;
  440. $data_msg['freeze_amount'] = -$data['amount'];
  441. $data_msg['desc'] = $data_log['lg_desc'];
  442. break;
  443. case 'cash_del':
  444. $data_log['lg_av_amount'] = $data['amount'];
  445. $data_log['lg_freeze_amount'] = -$data['amount'];
  446. $data_log['lg_desc'] = '取消提现申请,解冻预存款,提现单号: '.$data['order_sn'];
  447. $data_log['lg_admin_name'] = $data['admin_name'];
  448. $data_msg['av_amount'] = $data['amount'];
  449. $data_msg['freeze_amount'] = -$data['amount'];
  450. $data_msg['desc'] = $data_log['lg_desc'];
  451. break;
  452. case 'bonus_refund':
  453. return true;
  454. case 'bonus_add_money':
  455. $make_type = empty($data['make_type']) ? 0 : $data['make_type'];
  456. $data_log['lg_av_amount'] = $data['amount'];
  457. $data_log['lg_desc'] = '领取红包,红包单号: '.$data['pdr_sn'] . " make_type={$make_type}";
  458. $data_log['lg_admin_name'] = $data['admin_name'];
  459. $data_msg['av_amount'] = $data['amount'];
  460. $data_msg['freeze_amount'] = 0;
  461. $data_msg['desc'] = $data_log['lg_desc'];
  462. break;
  463. case 'hand_out_bonus' :
  464. $make_type = empty($data['make_type']) ? 0 : $data['make_type'];
  465. $data_log['lg_av_amount'] = -$data['amount'];
  466. $data_log['lg_desc'] = '发送红包,红包单号: '.$data['pdr_sn'] . " make_type={$make_type}" ;
  467. $data_log['lg_admin_name'] = $data['admin_name'];
  468. $data_msg['av_amount'] = -$data['amount'];
  469. $data_msg['freeze_amount'] = 0;
  470. $data_msg['desc'] = $data_log['lg_desc'];
  471. break;
  472. case 'bonus_expire' :
  473. $data_log['lg_av_amount'] = -$data['amount'];
  474. $data_log['lg_desc'] = '红包过期,红包单号: '.$data['pdr_sn'] ;
  475. $data_log['lg_admin_name'] = $data['admin_name'];
  476. $data_msg['av_amount'] = -$data['amount'];
  477. $data_msg['freeze_amount'] = 0;
  478. $data_msg['desc'] = $data_log['lg_desc'];
  479. break;
  480. ////////////////////zmr>v20////////////////////////////////////
  481. case 'sys_add_money':
  482. $data_log['lg_av_amount'] = $data['amount'];
  483. $data_log['lg_desc'] = '管理员调节预存款【增加】,充值单号: '.$data['pdr_sn'];
  484. $data_log['lg_admin_name'] = $data['admin_name'];
  485. $data_msg['av_amount'] = $data['amount'];
  486. $data_msg['freeze_amount'] = 0;
  487. $data_msg['desc'] = $data_log['lg_desc'];
  488. break;
  489. case 'sys_del_money':
  490. $data_log['lg_av_amount'] = -$data['amount'];
  491. $data_log['lg_desc'] = '管理员调节预存款【减少】,充值单号: '.$data['pdr_sn'];
  492. $data_msg['av_amount'] = -$data['amount'];
  493. $data_msg['freeze_amount'] = 0;
  494. $data_msg['desc'] = $data_log['lg_desc'];
  495. break;
  496. case 'sys_freeze_money':
  497. $data_log['lg_av_amount'] = -$data['amount'];
  498. $data_log['lg_freeze_amount'] = $data['amount'];
  499. $data_log['lg_desc'] = '管理员调节预存款【冻结】,充值单号: '.$data['pdr_sn'];
  500. $data_msg['av_amount'] = -$data['amount'];
  501. $data_msg['freeze_amount'] = $data['amount'];
  502. $data_msg['desc'] = $data_log['lg_desc'];
  503. break;
  504. case 'sys_unfreeze_money':
  505. $data_log['lg_av_amount'] = $data['amount'];
  506. $data_log['lg_freeze_amount'] = -$data['amount'];
  507. $data_log['lg_desc'] = '管理员调节预存款【解冻】,充值单号: '.$data['pdr_sn'];
  508. $data_log['lg_admin_name'] = $data['admin_name'];
  509. $data_msg['av_amount'] = $data['amount'];
  510. $data_msg['freeze_amount'] = -$data['amount'];
  511. $data_msg['desc'] = $data_log['lg_desc'];
  512. break;
  513. //////////////////////////////////////////////////////
  514. default:
  515. throw new Exception('参数错误');
  516. break;
  517. }
  518. // $update = Model('member')->editMember(array('member_id'=>$data['member_id']),$data_pd);
  519. // if (!$update) {
  520. // throw new Exception('操作失败');
  521. // }
  522. if($add_log == false) {
  523. return 0;
  524. }
  525. $insert = $this->table('pd_log')->insert($data_log);
  526. if (!$insert) {
  527. throw new Exception('操作失败');
  528. }
  529. // 支付成功发送买家消息
  530. $param = array();
  531. $param['code'] = 'predeposit_change';
  532. $param['member_id'] = $data['member_id'];
  533. $data_msg['av_amount'] = ncPriceFormat($data_msg['av_amount']);
  534. $data_msg['freeze_amount'] = ncPriceFormat($data_msg['freeze_amount']);
  535. $param['param'] = $data_msg;
  536. QueueClient::push('sendMemberMsg', $param);
  537. return $insert;
  538. }
  539. /**
  540. * 删除充值记录
  541. * @param unknown $condition
  542. */
  543. public function delPdRecharge($condition) {
  544. return $this->table('pd_recharge')->where($condition)->delete();
  545. }
  546. /**
  547. * 取得提现列表
  548. * @param unknown $condition
  549. * @param string $pagesize
  550. * @param string $fields
  551. * @param string $order
  552. */
  553. public function getPdCashList($condition = array(), $pagesize = '', $fields = '*', $order = '', $limit = '') {
  554. return $this->table('pd_cash')->where($condition)->field($fields)->order($order)->limit($limit)->page($pagesize)->select();
  555. }
  556. /**
  557. * 添加提现记录
  558. * @param array $data
  559. */
  560. public function addPdCash($data) {
  561. return $this->table('pd_cash')->insert($data);
  562. }
  563. /**
  564. * 编辑提现记录
  565. * @param unknown $data
  566. * @param unknown $condition
  567. */
  568. public function editPdCash($data,$condition = array()) {
  569. return $this->table('pd_cash')->where($condition)->update($data);
  570. }
  571. /**
  572. * 取得单条提现信息
  573. * @param unknown $condition
  574. * @param string $fields
  575. */
  576. public function getPdCashInfo($condition = array(), $fields = '*') {
  577. return $this->table('pd_cash')->where($condition)->field($fields)->find();
  578. }
  579. /**
  580. * 删除提现记录
  581. * @param unknown $condition
  582. */
  583. public function delPdCash($condition) {
  584. return $this->table('pd_cash')->where($condition)->delete();
  585. }
  586. }