Predeposit.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. <?php
  2. namespace app\common\model;
  3. use app\common\model\jarc\User;
  4. use think\facade\Db;
  5. /**
  6. * ============================================================================
  7. * DSMall多用户商城
  8. * ============================================================================
  9. * 版权所有 2014-2028 长沙德尚网络科技有限公司,并保留所有权利。
  10. * 网站地址: http://www.csdeshang.com
  11. * ----------------------------------------------------------------------------
  12. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
  13. * 不允许对程序代码以任何形式任何目的的再发布。
  14. * ============================================================================
  15. * 数据层模型
  16. */
  17. class Predeposit extends BaseModel
  18. {
  19. public $page_info;
  20. public $rcblog_type_text = [
  21. 'order_pay' => '下单使用',
  22. 'order_freeze' => '下单冻结',
  23. 'order_cancel' => '取消订单解冻',
  24. 'order_comb_pay' => '下单扣除被冻结',
  25. 'recharge' => '平台充值卡充值',
  26. 'refund' => '确认退款',
  27. 'vr_refund' => '虚拟兑码退款',
  28. ];
  29. public $lg_type_text = [
  30. 'order_pay' => '下单使用',
  31. 'order_freeze' => '下单冻结',
  32. 'order_cancel' => '取消订单解冻',
  33. 'order_comb_pay' => '下单扣除被冻结',
  34. 'recharge' => '平台充值卡充值',
  35. 'cash_apply' => '申请提现冻结预存款',
  36. 'cash_pay' => '提现成功',
  37. 'cash_del' => '取消提现申请',
  38. 'refund' => '确认退款',
  39. 'vr_refund' => '虚拟兑码退款',
  40. ];
  41. /**
  42. * 增加充值卡
  43. * @access public
  44. * @author csdeshang
  45. * @param type $sn
  46. * @param type $member_info
  47. * @return type
  48. * @throws \app\common\model\Exception
  49. */
  50. public function addRechargecard($sn, $member_info)
  51. {
  52. $member_id = $member_info['member_id'];
  53. $member_name = $member_info['member_name'];
  54. if ($member_id < 1 || !$member_name) {
  55. return ['message' => '当前登录状态为未登录,不能使用充值卡'];
  56. }
  57. $rechargecard_model = model('rechargecard');
  58. $card = $rechargecard_model->getRechargecardBySN($sn);
  59. if (empty($card) || $card['rc_state'] != 0 || $card['member_id'] != 0) {
  60. return ['message' => '充值卡不存在或已被使用'];
  61. }
  62. $card['member_id'] = $member_id;
  63. $card['member_name'] = $member_name;
  64. try {
  65. Db::startTrans();
  66. $rechargecard_model->setRechargecardUsedById($card['rc_id'], $member_id, $member_name);
  67. $card['amount'] = $card['rc_denomination'];
  68. $this->changeRcb('recharge', $card);
  69. Db::commit();
  70. } catch (Exception $e) {
  71. Db::rollback();
  72. throw $e;
  73. }
  74. }
  75. /**
  76. * 取得充值列表
  77. * @access public
  78. * @author csdeshang
  79. * @param type $condition 条件
  80. * @param type $pagesize 页面大小
  81. * @param type $fields 字段
  82. * @param type $order 排序
  83. * @return type
  84. */
  85. public function getPdRechargeList($condition = [], $pagesize = '', $fields = '*', $order = '')
  86. {
  87. if ($pagesize) {
  88. $result = Db::name('pdrecharge')->where($condition)->field($fields)->order($order)->paginate(['list_rows' => $pagesize, 'query' => request()->param()], false);
  89. $this->page_info = $result;
  90. return $result->items();
  91. } else {
  92. return Db::name('pdrecharge')->where($condition)->field($fields)->order($order)->select()->toArray();
  93. }
  94. }
  95. /**
  96. * 添加充值记录
  97. * @access public
  98. * @author csdeshang
  99. * @param type $data 参数内容
  100. * @return bool
  101. */
  102. public function addPdRecharge($data)
  103. {
  104. return Db::name('pdrecharge')->insertGetId($data);
  105. }
  106. /**
  107. * 编辑
  108. * @access public
  109. * @author csdeshang
  110. * @param type $data 数据
  111. * @param type $condition 条件
  112. * @return bool
  113. */
  114. public function editPdRecharge($data, $condition = [])
  115. {
  116. return Db::name('pdrecharge')->where($condition)->update($data);
  117. }
  118. /**
  119. * 取得单条充值信息
  120. * @access public
  121. * @author csdeshang
  122. * @param type $condition 条件
  123. * @param type $fields 字段
  124. * @return type
  125. */
  126. public function getPdRechargeInfo($condition = [], $fields = '*')
  127. {
  128. return Db::name('pdrecharge')->where($condition)->field($fields)->find();
  129. }
  130. /**
  131. * 取充值信息总数
  132. * @access public
  133. * @author csdeshang
  134. * @param array $condition 条件
  135. * @return int
  136. */
  137. public function getPdRechargeCount($condition = [])
  138. {
  139. return Db::name('pdrecharge')->where($condition)->count();
  140. }
  141. /**
  142. * 取提现单信息总数
  143. * @access public
  144. * @author csdeshang
  145. * @param type $condition 条件
  146. * @return int
  147. */
  148. public function getPdcashCount($condition = [])
  149. {
  150. return Db::name('pdcash')->where($condition)->count();
  151. }
  152. /**
  153. * 取日志总数
  154. * @access public
  155. * @author csdeshang
  156. * @param type $condition 条件
  157. * @return int
  158. */
  159. public function getPdLogCount($condition = [])
  160. {
  161. return Db::name('pdlog')->where($condition)->count();
  162. }
  163. /**
  164. * 取得预存款变更日志列表
  165. * @access public
  166. * @author csdeshang
  167. * @param type $condition 条件
  168. * @param type $pagesize 页面信息
  169. * @param type $fields 字段
  170. * @param type $order 排序
  171. * @param type $limit 限制
  172. * @return array
  173. */
  174. public function getPdLogList($condition = [], $pagesize = '', $fields = '*', $order = '', $limit = 0)
  175. {
  176. if ($pagesize) {
  177. $pdlog_list_paginate = Db::name('pdlog')->where($condition)->field($fields)->order($order)->paginate(['list_rows' => $pagesize, 'query' => request()->param()], false);
  178. $this->page_info = $pdlog_list_paginate;
  179. return $pdlog_list_paginate->items();
  180. } else {
  181. $pdlog_list_paginate = Db::name('pdlog')->where($condition)->field($fields)->order($order)->limit($limit)->select()->toArray();
  182. return $pdlog_list_paginate;
  183. }
  184. }
  185. /**
  186. * 变更充值卡余额
  187. * @access public
  188. * @author csdeshang
  189. * @param type $type 类型
  190. * @param type $data 数据
  191. * @return type
  192. */
  193. public function changeRcb($type, $data = [])
  194. {
  195. $amount = (float)$data['amount'];
  196. if ($amount < .01) {
  197. throw new \think\Exception('参数错误', 10006);
  198. }
  199. $available = $freeze = 0;
  200. $desc = null;
  201. switch ($type) {
  202. case 'order_pay':
  203. $available = -$amount;
  204. $desc = '下单,使用充值卡余额,订单号: ' . $data['order_sn'];
  205. break;
  206. case 'order_freeze':
  207. $available = -$amount;
  208. $freeze = $amount;
  209. $desc = '下单,冻结充值卡余额,订单号: ' . $data['order_sn'];
  210. break;
  211. case 'order_cancel':
  212. $available = $amount;
  213. $freeze = -$amount;
  214. $desc = '取消订单,解冻充值卡余额,订单号: ' . $data['order_sn'];
  215. break;
  216. case 'order_comb_pay':
  217. $freeze = -$amount;
  218. $desc = '下单,扣除被冻结的充值卡余额,订单号: ' . $data['order_sn'];
  219. break;
  220. case 'recharge':
  221. $available = $amount;
  222. $desc = '平台充值卡充值,充值卡号: ' . $data['rc_sn'];
  223. break;
  224. case 'refund':
  225. $available = $amount;
  226. $desc = '确认退款,订单号: ' . $data['order_sn'];
  227. break;
  228. case 'vr_refund':
  229. $available = $amount;
  230. $desc = '虚拟兑码退款成功,订单号: ' . $data['order_sn'];
  231. break;
  232. case 'bonus':
  233. $available = $amount;
  234. $desc = $data['rcblog_description'];
  235. break;
  236. default:
  237. throw new \think\Exception('参数错误', 10006);
  238. }
  239. $update = [];
  240. if ($available) {
  241. $update['available_rc_balance'] = Db::raw('available_rc_balance+' . $available);
  242. }
  243. if ($freeze) {
  244. $update['freeze_rc_balance'] = Db::raw('freeze_rc_balance+' . $freeze);
  245. }
  246. if (!$update) {
  247. throw new \think\Exception('参数错误', 10006);
  248. }
  249. // 更新会员
  250. $updateSuccess = model('member')->editMember([
  251. 'member_id' => $data['member_id'],
  252. ], $update, $data['member_id']);
  253. if (!$updateSuccess) {
  254. throw new \think\Exception('操作失败', 10006);
  255. }
  256. // 添加日志
  257. $rcblog = [
  258. 'member_id' => $data['member_id'],
  259. 'member_name' => $data['member_name'],
  260. 'rcblog_type' => $type,
  261. 'rcblog_addtime' => TIMESTAMP,
  262. 'available_amount' => $available,
  263. 'freeze_amount' => $freeze,
  264. 'rcblog_description' => $desc,
  265. ];
  266. $insertSuccess = Db::name('rcblog')->insertGetId($rcblog);
  267. if (!$insertSuccess) {
  268. throw new \think\Exception('操作失败', 10006);
  269. }
  270. $msg = [
  271. 'code' => 'recharge_card_balance_change',
  272. 'member_id' => $data['member_id'],
  273. 'param' => [
  274. 'time' => date('Y-m-d H:i:s', TIMESTAMP),
  275. 'url' => HOME_SITE_URL . '/Predeposit/rcb_log_list',
  276. 'available_amount' => ds_price_format($available),
  277. 'freeze_amount' => ds_price_format($freeze),
  278. 'description' => $desc,
  279. ],
  280. 'ali_param' => [
  281. 'time' => date('Y-m-d H:i:s', TIMESTAMP),
  282. 'available_amount' => ds_price_format($available),
  283. 'freeze_amount' => ds_price_format($freeze),
  284. 'description' => $desc,
  285. ],
  286. 'ten_param' => [
  287. date('Y-m-d H:i:s', TIMESTAMP),
  288. $desc,
  289. ds_price_format($available),
  290. ds_price_format($freeze),
  291. ],
  292. 'weixin_param' => [
  293. 'url' => config('ds_config.h5_site_url') . '/member/recharge_card_list',
  294. 'data' => [
  295. "keyword1" => [
  296. "value" => isset($this->rcblog_type_text[$type]) ? $this->rcblog_type_text[$type] : $type,
  297. "color" => "#333",
  298. ],
  299. "keyword2" => [
  300. "value" => $amount,
  301. "color" => "#333",
  302. ],
  303. "keyword3" => [
  304. "value" => date('Y-m-d H:i'),
  305. "color" => "#333",
  306. ],
  307. "keyword4" => [
  308. "value" => $available,
  309. "color" => "#333",
  310. ],
  311. ],
  312. ],
  313. ];
  314. // 发送买家消息
  315. \mall\queue\QueueClient::push('sendMemberMsg', $msg);
  316. return $insertSuccess;
  317. }
  318. /**
  319. * 变更预存款
  320. * @access public
  321. * @author csdeshang
  322. * @param type $change_type
  323. * @param type $data
  324. * @return type
  325. */
  326. public function changePd($change_type, $data = [])
  327. {
  328. $data_log = [];
  329. $data_pd = [];
  330. $data_msg = [];
  331. $data_log['lg_member_id'] = $data['member_id'];
  332. $data_log['lg_member_name'] = $data['member_name'];
  333. $data_log['lg_addtime'] = TIMESTAMP;
  334. $data_log['lg_type'] = $change_type;
  335. $data_msg['time'] = date('Y-m-d H:i:s');
  336. switch ($change_type) {
  337. case 'order_pay':
  338. $data_log['lg_av_amount'] = -$data['amount'];
  339. $data_log['lg_desc'] = '下单,支付预存款,订单号: ' . $data['order_sn'];
  340. $data_pd['available_predeposit'] = Db::raw('available_predeposit-' . $data['amount']);
  341. $data_msg['av_amount'] = -$data['amount'];
  342. $data_msg['freeze_amount'] = 0;
  343. $data_msg['desc'] = $data_log['lg_desc'];
  344. break;
  345. case 'order_freeze':
  346. $data_log['lg_av_amount'] = -$data['amount'];
  347. $data_log['lg_freeze_amount'] = $data['amount'];
  348. $data_log['lg_desc'] = '下单,冻结预存款,订单号: ' . $data['order_sn'];
  349. $data_pd['freeze_predeposit'] = Db::raw('freeze_predeposit+' . $data['amount']);
  350. $data_pd['available_predeposit'] = Db::raw('available_predeposit-' . $data['amount']);
  351. $data_msg['av_amount'] = -$data['amount'];
  352. $data_msg['freeze_amount'] = $data['amount'];
  353. $data_msg['desc'] = $data_log['lg_desc'];
  354. break;
  355. case 'order_cancel':
  356. $data_log['lg_av_amount'] = $data['amount'];
  357. $data_log['lg_freeze_amount'] = -$data['amount'];
  358. $data_log['lg_desc'] = '取消订单,解冻预存款,订单号: ' . $data['order_sn'];
  359. $data_pd['freeze_predeposit'] = Db::raw('freeze_predeposit-' . $data['amount']);
  360. $data_pd['available_predeposit'] = Db::raw('available_predeposit+' . $data['amount']);
  361. $data_msg['av_amount'] = $data['amount'];
  362. $data_msg['freeze_amount'] = -$data['amount'];
  363. $data_msg['desc'] = $data_log['lg_desc'];
  364. break;
  365. case 'order_comb_pay':
  366. $data_log['lg_freeze_amount'] = -$data['amount'];
  367. $data_log['lg_desc'] = '下单,支付被冻结的预存款,订单号: ' . $data['order_sn'];
  368. $data_pd['freeze_predeposit'] = Db::raw('freeze_predeposit-' . $data['amount']);
  369. $data_msg['av_amount'] = 0;
  370. $data_msg['freeze_amount'] = -$data['amount'];
  371. $data_msg['desc'] = $data_log['lg_desc'];
  372. break;
  373. case 'recharge':
  374. $data_log['lg_av_amount'] = $data['amount'];
  375. $data_log['lg_desc'] = '充值,充值单号: ' . $data['pdr_sn'];
  376. $data_log['lg_admin_name'] = isset($data['admin_name']) ? $data['admin_name'] : '会员' . $data['member_name'] . '在线充值';
  377. $data_pd['available_predeposit'] = Db::raw('available_predeposit+' . $data['amount']);
  378. $data_msg['av_amount'] = $data['amount'];
  379. $data_msg['freeze_amount'] = 0;
  380. $data_msg['desc'] = $data_log['lg_desc'];
  381. break;
  382. case 'refund':
  383. $data_log['lg_av_amount'] = $data['amount'];
  384. $data_log['lg_desc'] = '确认退款,订单号: ' . $data['order_sn'];
  385. $data_pd['available_predeposit'] = Db::raw('available_predeposit+' . $data['amount']);
  386. $data_msg['av_amount'] = $data['amount'];
  387. $data_msg['freeze_amount'] = 0;
  388. $data_msg['desc'] = $data_log['lg_desc'];
  389. break;
  390. case 'vr_refund':
  391. $data_log['lg_av_amount'] = $data['amount'];
  392. $data_log['lg_desc'] = '虚拟兑码退款成功,订单号: ' . $data['order_sn'];
  393. $data_pd['available_predeposit'] = Db::raw('available_predeposit+' . $data['amount']);
  394. $data_msg['av_amount'] = $data['amount'];
  395. $data_msg['freeze_amount'] = 0;
  396. $data_msg['desc'] = $data_log['lg_desc'];
  397. break;
  398. case 'cash_apply':
  399. $data_log['lg_av_amount'] = -$data['amount'];
  400. $data_log['lg_freeze_amount'] = $data['amount'];
  401. $data_log['lg_desc'] = '申请提现,冻结预存款,提现单号: ' . $data['order_sn'];
  402. $data_pd['available_predeposit'] = Db::raw('available_predeposit-' . $data['amount']);
  403. $data_pd['freeze_predeposit'] = Db::raw('freeze_predeposit+' . $data['amount']);
  404. $data_msg['av_amount'] = -$data['amount'];
  405. $data_msg['freeze_amount'] = $data['amount'];
  406. $data_msg['desc'] = $data_log['lg_desc'];
  407. break;
  408. case 'cash_pay':
  409. $data_log['lg_freeze_amount'] = -$data['amount'];
  410. $data_log['lg_desc'] = '提现成功,提现单号: ' . $data['order_sn'];
  411. $data_log['lg_admin_name'] = $data['admin_name'];
  412. $data_pd['freeze_predeposit'] = Db::raw('freeze_predeposit-' . $data['amount']);
  413. $data_msg['av_amount'] = 0;
  414. $data_msg['freeze_amount'] = -$data['amount'];
  415. $data_msg['desc'] = $data_log['lg_desc'];
  416. break;
  417. case 'cash_del':
  418. $data_log['lg_av_amount'] = $data['amount'];
  419. $data_log['lg_freeze_amount'] = -$data['amount'];
  420. $data_log['lg_desc'] = '取消提现申请,解冻预存款,提现单号: ' . $data['order_sn'];
  421. $data_log['lg_admin_name'] = $data['admin_name'];
  422. $data_pd['available_predeposit'] = Db::raw('available_predeposit+' . $data['amount']);
  423. $data_pd['freeze_predeposit'] = Db::raw('freeze_predeposit-' . $data['amount']);
  424. $data_msg['av_amount'] = $data['amount'];
  425. $data_msg['freeze_amount'] = -$data['amount'];
  426. $data_msg['desc'] = $data_log['lg_desc'];
  427. break;
  428. case 'sys_add_money':
  429. $data_log['lg_av_amount'] = $data['amount'];
  430. $data_log['lg_desc'] = '管理员调节预存款【增加】,充值单号: ' . $data['pdr_sn'] . ',备注:' . $data['lg_desc'];
  431. $data_log['lg_admin_name'] = $data['admin_name'];
  432. $data_pd['available_predeposit'] = Db::raw('available_predeposit+' . $data['amount']);
  433. $data_msg['av_amount'] = $data['amount'];
  434. $data_msg['freeze_amount'] = 0;
  435. $data_msg['desc'] = $data_log['lg_desc'];
  436. break;
  437. case 'sys_del_money':
  438. $data_log['lg_av_amount'] = -$data['amount'];
  439. $data_log['lg_desc'] = '管理员调节预存款【减少】,充值单号: ' . $data['pdr_sn'] . ',备注:' . $data['lg_desc'];
  440. $data_log['lg_admin_name'] = $data['admin_name'];
  441. $data_pd['available_predeposit'] = Db::raw('available_predeposit-' . $data['amount']);
  442. $data_msg['av_amount'] = -$data['amount'];
  443. $data_msg['freeze_amount'] = 0;
  444. $data_msg['desc'] = $data_log['lg_desc'];
  445. break;
  446. case 'sys_freeze_money':
  447. $data_log['lg_av_amount'] = -$data['amount'];
  448. $data_log['lg_freeze_amount'] = $data['amount'];
  449. $data_log['lg_desc'] = '管理员调节预存款【冻结】,充值单号: ' . $data['pdr_sn'] . ',备注:' . $data['lg_desc'];
  450. $data_log['lg_admin_name'] = $data['admin_name'];
  451. $data_pd['available_predeposit'] = Db::raw('available_predeposit-' . $data['amount']);
  452. $data_pd['freeze_predeposit'] = Db::raw('freeze_predeposit+' . $data['amount']);
  453. $data_msg['av_amount'] = -$data['amount'];
  454. $data_msg['freeze_amount'] = $data['amount'];
  455. $data_msg['desc'] = $data_log['lg_desc'];
  456. break;
  457. case 'sys_unfreeze_money':
  458. $data_log['lg_av_amount'] = $data['amount'];
  459. $data_log['lg_freeze_amount'] = -$data['amount'];
  460. $data_log['lg_desc'] = '管理员调节预存款【解冻】,充值单号: ' . $data['pdr_sn'] . ',备注:' . $data['lg_desc'];
  461. $data_log['lg_admin_name'] = $data['admin_name'];
  462. $data_pd['available_predeposit'] = Db::raw('available_predeposit+' . $data['amount']);
  463. $data_pd['freeze_predeposit'] = Db::raw('freeze_predeposit-' . $data['amount']);
  464. $data_msg['av_amount'] = $data['amount'];
  465. $data_msg['freeze_amount'] = -$data['amount'];
  466. $data_msg['desc'] = $data_log['lg_desc'];
  467. break;
  468. case 'order_inviter':
  469. $data_log['lg_av_amount'] = $data['amount'];
  470. $data_log['lg_desc'] = $data['lg_desc'];
  471. $data_pd['available_predeposit'] = Db::raw('available_predeposit+' . $data['amount']);
  472. $data_msg['av_amount'] = $data['amount'];
  473. $data_msg['freeze_amount'] = 0;
  474. $data_msg['desc'] = $data_log['lg_desc'];
  475. break;
  476. //end
  477. default:
  478. throw new \think\Exception('参数错误', 10006);
  479. break;
  480. }
  481. $update = model('member')->editMember(['member_id' => $data['member_id']], $data_pd, $data['member_id']);
  482. if (!$update) {
  483. throw new \think\Exception('操作失败', 10006);
  484. }
  485. $insert = Db::name('pdlog')->insertGetId($data_log);
  486. if (!$insert) {
  487. throw new \think\Exception('操作失败', 10006);
  488. }
  489. // 支付成功发送买家消息
  490. $message = [];
  491. $message['code'] = 'predeposit_change';
  492. $message['member_id'] = $data['member_id'];
  493. $data_msg['av_amount'] = ds_price_format($data_msg['av_amount']);
  494. $data_msg['freeze_amount'] = ds_price_format($data_msg['freeze_amount']);
  495. $message['ali_param'] = $data_msg;
  496. $message['ten_param'] = [$data_msg['time'], $data_msg['desc'], $data_msg['av_amount'], $data_msg['freeze_amount']];
  497. $data_msg['pd_url'] = HOME_SITE_URL . '/Predeposit/pd_log_list';
  498. $message['param'] = $data_msg;
  499. $message['weixin_param'] = [
  500. 'url' => config('ds_config.h5_site_url') . '/member/predeposit_list',
  501. 'data' => [
  502. "keyword1" => [
  503. "value" => isset($this->lg_type_text[$change_type]) ? $this->lg_type_text[$change_type] : $change_type,
  504. "color" => "#333",
  505. ],
  506. "keyword2" => [
  507. "value" => $data['amount'],
  508. "color" => "#333",
  509. ],
  510. "keyword3" => [
  511. "value" => date('Y-m-d H:i'),
  512. "color" => "#333",
  513. ],
  514. "keyword4" => [
  515. "value" => $data_msg['av_amount'],
  516. "color" => "#333",
  517. ],
  518. ],
  519. ];
  520. \mall\queue\QueueClient::push('sendMemberMsg', $message);
  521. return $insert;
  522. }
  523. /**
  524. * 变更积分
  525. * @param $change_type
  526. * @param array $data
  527. */
  528. public function changePoint($change_type, $data = [])
  529. {
  530. $userModel = new User();
  531. $point_ratio = config('app.point_ratio');
  532. $data_point = [];
  533. $comment = '';
  534. switch ($change_type) {
  535. case 'order_pay':
  536. $comment = '下单,积分支付,订单号: ' . $data['order_sn'];
  537. break;
  538. default:
  539. throw new \think\Exception('参数错误', 10006);
  540. break;
  541. }
  542. $scoreRes = $userModel->changeScore( - ($data['amount'] * $point_ratio), $comment, '', $data['union_id']);
  543. if ($scoreRes['code'] == 0) {
  544. throw new \think\Exception($scoreRes['msg'], 10006);
  545. }
  546. $update = true;
  547. if (!empty($data_point)) {
  548. $update = model('member')->editMember(['member_id' => $data['member_id']], $data_point, $data['member_id']);
  549. }
  550. if (!$update) {
  551. throw new \think\Exception('操作失败', 10006);
  552. }
  553. return $update;
  554. }
  555. /**
  556. * 删除充值记录
  557. * @access public
  558. * @author csdeshang
  559. * @param type $condition 条件
  560. * @return type
  561. */
  562. public function delPdRecharge($condition)
  563. {
  564. return Db::name('pdrecharge')->where($condition)->delete();
  565. }
  566. /**
  567. * 取得提现列表
  568. * @access public
  569. * @author csdeshang
  570. * @param type $condition 条件
  571. * @param type $pagesize 页面
  572. * @param type $fields 字段
  573. * @param type $order 排序
  574. * @param type $limit 限制
  575. * @return type
  576. */
  577. public function getPdcashList($condition = [], $pagesize = '', $fields = '*', $order = '', $limit = 0)
  578. {
  579. if ($pagesize) {
  580. $pdcash_list_paginate = Db::name('pdcash')->where($condition)->field($fields)->order($order)->paginate(['list_rows' => $pagesize, 'query' => request()->param()], false);
  581. $this->page_info = $pdcash_list_paginate;
  582. return $pdcash_list_paginate->items();
  583. } else {
  584. return Db::name('pdcash')->where($condition)->field($fields)->order($order)->limit($limit)->select()->toArray();
  585. }
  586. }
  587. /**
  588. * 添加提现记录
  589. * @access public
  590. * @author csdeshang
  591. * @param type $data 数据
  592. * @return bool
  593. */
  594. public function addPdcash($data)
  595. {
  596. return Db::name('pdcash')->insertGetId($data);
  597. }
  598. /**
  599. * 编辑提现记录
  600. * @access public
  601. * @author csdeshang
  602. * @param type $data 数据
  603. * @param type $condition 条件
  604. * @return bool
  605. */
  606. public function editPdcash($data, $condition = [])
  607. {
  608. return Db::name('pdcash')->where($condition)->update($data);
  609. }
  610. /**
  611. * 取得单条提现信息
  612. * @access public
  613. * @author csdeshang
  614. * @param type $condition 条件
  615. * @param type $fields 字段
  616. * @return type
  617. */
  618. public function getPdcashInfo($condition = [], $fields = '*')
  619. {
  620. return Db::name('pdcash')->where($condition)->field($fields)->find();
  621. }
  622. /**
  623. * 删除提现记录
  624. * @access public
  625. * @author csdeshang
  626. * @param type $condition 条件
  627. * @return type
  628. */
  629. public function delPdcash($condition)
  630. {
  631. return Db::name('pdcash')->where($condition)->delete();
  632. }
  633. }