UserPerformance.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace common\models;
  3. use Yii;
  4. use common\libs\logging\operate\valueType\Config as ValueTypeConfig;
  5. /**
  6. * This is the model class for table "{{%USER_PERFORMANCE}}".
  7. *
  8. * @property string $ID
  9. * @property string $USER_ID
  10. * @property string $CASH
  11. * @property integer $UPDATED_AT
  12. * @property integer $CLEAR_BY_CLOSED_AT
  13. * @property User $user
  14. */
  15. class UserPerformance extends \common\components\ActiveRecord
  16. {
  17. const NEWS = 10;
  18. const USING = 20;
  19. const FINISHED = 30;
  20. const NULLIFY = 40;
  21. const EXPIRED = 50;
  22. public static function getEffective(): array
  23. {
  24. return [self::NEWS, self::USING];
  25. }
  26. public static function getInvalid(): array
  27. {
  28. return [self::FINISHED, self::NULLIFY, self::EXPIRED];
  29. }
  30. /**
  31. * {@inheritdoc}
  32. */
  33. public static function tableName()
  34. {
  35. return '{{%USER_PERFORMANCE}}';
  36. }
  37. /**
  38. * @inheritdoc
  39. */
  40. public function rules()
  41. {
  42. return [
  43. [['USER_ID'], 'required'],
  44. [['AMOUNTS', 'ORIGINAL'], 'number'],
  45. [['UPDATED_AT', 'STATUS_ID'], 'integer'],
  46. [['ID','USER_ID'], 'string', 'max' => 32],
  47. [['USER_ID'], 'unique'],
  48. ];
  49. }
  50. /**
  51. * @inheritdoc
  52. */
  53. public function attributeLabels()
  54. {
  55. return [
  56. 'ID' => 'ID',
  57. 'USER_ID' => '用户id',
  58. 'AMOUNTS' => '当前余额',
  59. 'ORIGINAL' => '原始金额',
  60. 'UPDATED_AT' => '修改时间',
  61. ];
  62. }
  63. /**
  64. * 获取一名会员的余额
  65. * @param $userId
  66. * @return array|null
  67. */
  68. public static function getAmountByUserId($userId)
  69. {
  70. $data = UserPerformance::find()->select('SUM(AMOUNTS) AS AMOUNTS')->where('USER_ID=:USER_ID AND STATUS_ID<(:STATUS_ID)', [':USER_ID' => $userId, ':STATUS_ID' => self::FINISHED])->asArray()->one();
  71. if(!$data){
  72. $data = [
  73. 'USER_ID' => $userId,
  74. 'AMOUNTS' => 0,
  75. ];
  76. }
  77. return $data;
  78. }
  79. }