WithdrawLogLogic.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace app\admin\logic;
  3. use app\admin\model\dao\MoneyLog;
  4. use app\admin\model\dao\ScoreLog;
  5. use app\admin\model\dao\ShopOrder;
  6. use app\admin\model\dao\User;
  7. use app\admin\model\dao\WithdrawLog;
  8. use think\facade\Cache;
  9. use think\facade\Db;
  10. class WithdrawLogLogic
  11. {
  12. public function returnServiceMoney($post)
  13. {
  14. $withdrawLog = WithdrawLog::getWithdrawLogById($post['id']);
  15. if (empty($withdrawLog)) {
  16. return "记录不存在";
  17. }
  18. if ($withdrawLog['status'] != 3) {
  19. return "该提现记录不可以退还服务费";
  20. }
  21. if ($withdrawLog['service_money'] < $post['service_money']) {
  22. return "提现金额不可以大于服务费";
  23. }
  24. $moneyLog = MoneyLog::getMoneyLogByFromId($post['id']);
  25. if ($moneyLog) {
  26. return "当前提现记录已退还服务费";
  27. }
  28. Db::startTrans();
  29. try {
  30. $afterMoney = $withdrawLog['service_money'] + $post['service_money'];
  31. $moneyLog = [
  32. 'uid' => $withdrawLog['uid'],
  33. 'type' => 14,
  34. 'money' => $post['service_money'],
  35. 'create_at' => date('Y-m-d H:i:s'),
  36. 'state' => 1,
  37. 'from_id' => '0',
  38. 'before_money' => $withdrawLog['service_money'],
  39. 'after_money' => $afterMoney,
  40. 'uid2' => 0,
  41. 'free_type' => '',
  42. 'remark' => $post['remark'],
  43. 'withdraw_log_id' => $withdrawLog['id'],
  44. ];
  45. $serviceMoney = $withdrawLog['service_money'] - $post['service_money'];
  46. WithdrawLog::updateServiceMoney($withdrawLog['id'], $serviceMoney);
  47. MoneyLog::AddMoneyLog($moneyLog);
  48. User::UpdateUserMoney($withdrawLog['uid'], $afterMoney);
  49. Db::commit();
  50. } catch (\Exception $exception) {
  51. Db::rollback();
  52. return "失败:" . $exception->getMessage();
  53. }
  54. return true;
  55. }
  56. public function getWithdrawLog($id)
  57. {
  58. $withdrawLog = WithdrawLog::getWithdrawLogById($id);
  59. return $withdrawLog;
  60. }
  61. public function isShowReturnServiceMoney($id)
  62. {
  63. $key = 'WITHDRAWLOGRETURNSERVICEMONEY_' . $id;
  64. if (Cache::has($key) && 1 == 2) {
  65. return Cache::get($key);
  66. }
  67. $moneyLog = MoneyLog::getMoneyLogByFromId($id);
  68. $isShow = $moneyLog ? 1 : 0;
  69. Cache::set($key, $isShow, 5 * 60);
  70. return $isShow;
  71. }
  72. }