AccountLogService.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace app\common\service;
  3. use app\common\model\account\Logs as AccountLogs;
  4. use app\common\traits\ServiceTrait;
  5. use think\Log;
  6. class AccountLogService
  7. {
  8. use ServiceTrait;
  9. /** @var AccountLogs */
  10. public static $Model = AccountLogs::class;
  11. //日志类型 1充值 2消费 3收益 4退款 5提现 6冻结 7解冻 9后台操作
  12. const TYPE_RECHARGE = 1;
  13. const TYPE_CONSUME = 2;
  14. const TYPE_PROFIT = 3;
  15. const TYPE_REFUND = 4;
  16. const TYPE_WITHDRAW = 5;
  17. const TYPE_FREEZE = 6;
  18. const TYPE_UNFREEZE = 7;
  19. const TYPE_ADMIN_OPERATE = 9;
  20. const TYPE_MAP = [
  21. self::TYPE_RECHARGE => '充值',
  22. self::TYPE_CONSUME => '消费',
  23. self::TYPE_PROFIT => '收益',
  24. self::TYPE_REFUND => '退款',
  25. self::TYPE_WITHDRAW => '提现',
  26. self::TYPE_FREEZE => '冻结',
  27. self::TYPE_UNFREEZE => '解冻',
  28. self::TYPE_ADMIN_OPERATE => '后台操作',
  29. ];
  30. //账户类型
  31. const ACCOUNT_TYPE_AMOUNT = 'amount'; //余额
  32. const ACCOUNT_TYPE_FREEZE = 'freeze'; //冻结金额
  33. const ACCOUNT_TYPE_INTEGRAL = 'integral'; //积分
  34. const ACCOUNT_TYPE_CREDIT_SCORE = 'credit_score'; //信誉分
  35. const ACCOUNT_TYPE_MAP = [
  36. self::ACCOUNT_TYPE_AMOUNT => '余额',
  37. self::ACCOUNT_TYPE_FREEZE => '冻结金额',
  38. self::ACCOUNT_TYPE_INTEGRAL => '积分',
  39. self::ACCOUNT_TYPE_CREDIT_SCORE => '信誉分',
  40. ];
  41. //增减去类型
  42. const INC_EXP_NO = 0; //冻结
  43. const INC_EXP_INCREASE = 1; //增加
  44. const INC_EXP_EXPEND = 2; //支出
  45. //信誉分类型
  46. const CREDIT_TYPE_DEMAND_FINISHED = 1; //需求完成奖励
  47. const CREDIT_TYPE_DEMAND_FAILED = 2; //需求完成失败扣除
  48. const CREDIT_TYPE_DEMAND_REFUSE = 3; //拒绝接单扣除
  49. const CREDIT_TYPE_CONTRACT_REFUSE = 4; // 放弃签约扣除
  50. const CREDIT_TYPE_SYSTEM_RETURN = 5; //系统退回
  51. const CREDIT_TYPE_ADMIN_OPERATE = 6; //后台操作
  52. /**
  53. * @param $account_type
  54. * @param $user_id
  55. * @param $amount
  56. * @param $log
  57. * @param $type int 日志类型:1充值 2消费 3收益 4退款 5提现 6冻结 7解冻 9后台操作
  58. * @param $credit_type int 信誉分日志类型:1=任务完成奖励,2=任务失败扣除,3=拒绝接单扣除,4=放弃签约扣除,5=系统退回,9=后台操作
  59. * @param $inc_or_exp 1=收入 2支出
  60. * @param int $refer_id
  61. * @param int|float $total_amount
  62. * @param int|float $percent
  63. * @return mixed
  64. * @throws \Exception
  65. */
  66. public static function addLog($account_type, $user_id, $amount, $log, int $type, int $credit_type, $inc_or_exp, int $refer_id = 0, int $total_amount = 0, $percent = 0)
  67. {
  68. $data = [
  69. 'account_type' => $account_type,
  70. 'user_id' => $user_id,
  71. 'amount' => $amount,
  72. 'log' => $log,
  73. 'type' => $type,
  74. 'credit_type' => $credit_type,
  75. 'refer_id' => $refer_id,
  76. 'total_amount' => $total_amount,
  77. 'percent' => $percent,
  78. 'inc_or_exp' => $inc_or_exp,
  79. ];
  80. $res = self::create($data);
  81. if (!$res) {
  82. Log::info(__CLASS__ . ' 写入余额日志失败:' . json_encode($data, JSON_UNESCAPED_UNICODE));
  83. exception('写入余额日志失败');
  84. }
  85. return $res;
  86. }
  87. }