BalanceLog.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace app\common\model\user;
  3. use app\common\model\BaseModel;
  4. use app\common\enum\user\balanceLog\Scene as SceneEnum;
  5. /**
  6. * 用户余额变动明细模型
  7. * Class BalanceLog
  8. * @package app\common\model\user
  9. */
  10. class BalanceLog extends BaseModel
  11. {
  12. protected $name = 'user_balance_log';
  13. protected $updateTime = false;
  14. /**
  15. * 获取当前模型属性
  16. * @return array
  17. */
  18. public static function getAttributes()
  19. {
  20. return [
  21. // 充值方式
  22. 'scene' => SceneEnum::data(),
  23. ];
  24. }
  25. /**
  26. * 关联会员记录表
  27. * @return \think\model\relation\BelongsTo
  28. */
  29. public function user()
  30. {
  31. $module = self::getCalledModule() ?: 'common';
  32. return $this->belongsTo("app\\{$module}\\model\\User");
  33. }
  34. /**
  35. * 余额变动场景
  36. * @param $value
  37. * @return array
  38. */
  39. public function getSceneAttr($value)
  40. {
  41. return ['text' => SceneEnum::data()[$value]['name'], 'value' => $value];
  42. }
  43. /**
  44. * 新增记录
  45. * @param $scene
  46. * @param $data
  47. * @param $describeParam
  48. */
  49. public static function add($scene, $data, $describeParam)
  50. {
  51. $model = new static;
  52. $model->save(array_merge([
  53. 'scene' => $scene,
  54. 'describe' => vsprintf(SceneEnum::data()[$scene]['describe'], $describeParam),
  55. 'wxapp_id' => $model::$wxapp_id
  56. ], $data));
  57. }
  58. }