DecLevelLog.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace common\models;
  3. use common\helpers\Date;
  4. use common\helpers\Form;
  5. use Exception;
  6. use Yii;
  7. /**
  8. * This is the model class for table "{{%DEC_LEVEL_LOG}}".
  9. *
  10. * @property string $ID
  11. * @property string $USER_ID 会员ID
  12. * @property string $FROM_ID 变动前的级别
  13. * @property string $TO_ID 变动后的级别
  14. * @property string $ADMIN_ID admin id
  15. * @property int $PERIOD_NUM 变动的期数
  16. * @property int $CALC_MONTH 变动的结算月
  17. * @property string $REMARK 备注
  18. * @property int $STATUS 状态
  19. * @property int $CREATED_AT 创建时间
  20. */
  21. class DecLevelLog extends \common\components\ActiveRecord
  22. {
  23. /**
  24. * {@inheritdoc}
  25. */
  26. public static function tableName()
  27. {
  28. return '{{%DEC_LEVEL_LOG}}';
  29. }
  30. /**
  31. * {@inheritdoc}
  32. */
  33. public function rules()
  34. {
  35. return [
  36. [['USER_ID', 'FROM_ID', 'TO_ID', 'PERIOD_NUM', 'CALC_MONTH', 'CREATED_AT'], 'required'],
  37. [['PERIOD_NUM', 'CALC_MONTH', 'STATUS', 'CREATED_AT'], 'integer'],
  38. [['ID', 'USER_ID', 'FROM_ID', 'TO_ID', 'ADMIN_ID'], 'string', 'max' => 32],
  39. [['REMARK'], 'string', 'max' => 4000],
  40. [['ID'], 'unique'],
  41. ];
  42. }
  43. /**
  44. * {@inheritdoc}
  45. */
  46. public function attributeLabels()
  47. {
  48. return [
  49. 'ID' => 'ID',
  50. 'USER_ID' => '会员ID',
  51. 'FROM_ID' => '变动前的级别',
  52. 'TO_ID' => '变动后的级别',
  53. 'ADMIN_ID' => '管理员id',
  54. 'PERIOD_NUM' => '变动的期数',
  55. 'CALC_MONTH' => '变动的结算月',
  56. 'REMARK' => '备注',
  57. 'STATUS' => '状态',
  58. 'CREATED_AT' => '创建时间',
  59. ];
  60. }
  61. // 会员端升级报单操作,添加记录
  62. public function frontendChange($data) {
  63. $db = \Yii::$app->db;
  64. $transaction = $db->beginTransaction();
  65. try {
  66. // 恢复所传期数的和这个会员相关的其他调整
  67. $period = Period::instance();
  68. $periodNum = $nowPeriodNum = $period->getNowPeriodNum();
  69. DecLevelLog::updateAll(
  70. [
  71. 'STATUS' => 0
  72. ],
  73. 'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
  74. [
  75. ':USER_ID' => $data['userId'], ':PERIOD_NUM' => $periodNum
  76. ]
  77. );
  78. // 新增数据
  79. $model = new DecLevelLog();
  80. $model->USER_ID = $data['userId'];
  81. $model->FROM_ID = $data['fromId'];
  82. $model->TO_ID = $data['levelId'];
  83. $model->PERIOD_NUM = 0;
  84. $model->CALC_MONTH = 0;
  85. $model->REMARK = isset($data['remark']) ? $data['remark'] : '';
  86. $model->STATUS = 1;
  87. $model->ADMIN_ID = $data['actionId'];
  88. $model->CREATED_AT = Date::nowTime();
  89. $model->DEC_TYPE = 2;
  90. if (!$model->save()) {
  91. throw new Exception(Form::formatErrorsForApi($model->getErrors()));
  92. }
  93. //修改会员级别,如果是上期,则一起变化,如果不是,则只改变实时级别
  94. $nowTime = Date::nowTime();
  95. User::updateAll(
  96. [
  97. 'LAST_DEC_LV' => $data['levelId'],
  98. 'DEC_LV' => $data['levelId'],
  99. 'DEC_LV_UPDATED_AT'=>$nowTime,
  100. 'DEC_LV_UPDATED_PERIOD'=>$nowPeriodNum,
  101. 'LAST_DEC_LV_UPDATED_AT'=>$nowTime,
  102. 'LAST_DEC_LV_UPDATED_PERIOD'=>$nowPeriodNum,
  103. 'ZG_UPGRADE_PV'=>$data['lvPv']
  104. ],
  105. 'ID=:ID',
  106. [
  107. ':ID' => $data['userId']
  108. ]
  109. );
  110. $transaction->commit();
  111. } catch (Exception $e) {
  112. $transaction->rollBack();
  113. $this->addError('adminChange', $e->getMessage());
  114. return null;
  115. }
  116. return $model;
  117. }
  118. }