UserMove.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <?php
  2. namespace common\models;
  3. use backendApi\modules\v1\models\Admin;
  4. use common\helpers\NetPoint;
  5. use common\helpers\user\Info;
  6. use Yii;
  7. use common\libs\logging\operate\valueType\Config as ValueTypeConfig;
  8. /**
  9. * This is the model class for table "{{%USER_MOVE}}".
  10. *
  11. * @property string $ID
  12. * @property string $USER_ID 移动的会员ID
  13. * @property string $FROM_UID 移动前接点UID
  14. * @property string $TO_UID 移动后接点UID
  15. * @property int $LOCATION 移动到位置
  16. * @property string $TYPE 移网类型
  17. * @property int $IS_MOVING 是否正在移动
  18. * @property int $MOVE_PERCENT 移动百分比
  19. * @property int $AUDIT_STATUS 审核状态
  20. * @property int $PERIOD_NUM 移动时的期数
  21. * @property int $UPDATE_PERIOD_NUM 修改期数
  22. * @property int $AUDIT_PERIOD_NUM 修改期数
  23. * @property string $MOVE_ADMIN_ID 移网管理员
  24. * @property string $AUDIT_ADMIN_ID 审核管理员
  25. * @property string $NET_TABLE_NAME 移点备份表名
  26. * @property string $CREATE_REMARK 创建备注
  27. * @property string $AUDIT_REMARK 审核备注
  28. * @property int $CREATED_AT 创建时间
  29. * @property int $STARTED_AT 移网开始时间
  30. * @property int $ENDED_AT 移网结束时间
  31. * @property int $AUDITED_AT 审核时间
  32. */
  33. class UserMove extends \common\components\ActiveRecord
  34. {
  35. const TYPE_NETWORK = NetPoint::NET_TYPE_NETWORK;
  36. const TYPE_RELATION = NetPoint::NET_TYPE_RELATION;
  37. const TYPE_NAME = [
  38. // self::TYPE_NETWORK => [
  39. // 'id' => self::TYPE_NETWORK,
  40. // 'name' => 'Placement network',
  41. // 'label' => 'placementNetwork'
  42. // ], // 安置网络
  43. self::TYPE_RELATION => [
  44. 'id' => self::TYPE_RELATION,
  45. 'name' => 'Sponsor network',
  46. 'label' => 'sponsorNetwork'
  47. ], // 开拓网络
  48. ];
  49. const STATUS_APPLIED = 0; // 已申请
  50. const STATUS_AUDITED = 1; // 已审核
  51. const STATUS_FAILED = 2; // 审核失败
  52. const STATUS_REFUSED = 3; // 已拒绝
  53. const STATUS_NAME = [
  54. self::STATUS_APPLIED => 'To be reviewed', // 待审核
  55. self::STATUS_AUDITED => 'Approved', // 审核通过
  56. self::STATUS_FAILED => 'Failed', // 审核失败
  57. self::STATUS_REFUSED => 'Audit reject', // 拒绝
  58. ];
  59. const STATUS_NAME_LANGUAGE_PREFIX = 'userMoveAuditStatus:';
  60. /**
  61. * @inheritdoc
  62. */
  63. public static function tableName()
  64. {
  65. return '{{%USER_MOVE}}';
  66. }
  67. /**
  68. * @inheritdoc
  69. */
  70. public function rules()
  71. {
  72. return [
  73. [['USER_ID', 'FROM_UID', 'TO_UID', 'TYPE', 'PERIOD_NUM', 'MOVE_ADMIN_ID', 'CREATED_AT'], 'required'],
  74. [['LOCATION', 'IS_MOVING', 'MOVE_PERCENT', 'AUDIT_STATUS', 'PERIOD_NUM', 'UPDATE_PERIOD_NUM', 'AUDIT_PERIOD_NUM', 'CREATED_AT', 'STARTED_AT', 'ENDED_AT', 'AUDITED_AT'], 'integer'],
  75. [['ID', 'USER_ID', 'FROM_UID', 'TO_UID', 'MOVE_ADMIN_ID', 'AUDIT_ADMIN_ID', 'NET_TABLE_NAME'], 'string', 'max' => 32],
  76. [['TYPE'], 'string', 'max' => 48],
  77. [['CREATE_REMARK', 'AUDIT_REMARK'], 'string', 'max' => 4000],
  78. [['ID'], 'unique'],
  79. ];
  80. }
  81. /**
  82. * @inheritdoc
  83. */
  84. public function attributeLabels()
  85. {
  86. return [
  87. 'ID' => 'ID',
  88. 'USER_ID' => '移动的会员ID',
  89. 'FROM_UID' => '移动前接点UID',
  90. 'TO_UID' => '移动后接点UID',
  91. 'LOCATION' => '移动到位置',
  92. 'TYPE' => '移网类型',
  93. 'IS_MOVING' => '是否正在移动',
  94. 'MOVE_PERCENT' => '移动百分比',
  95. 'AUDIT_STATUS' => '审核状态',
  96. 'PERIOD_NUM' => '移动时的期数',
  97. 'UPDATE_PERIOD_NUM' => '修改期数',
  98. 'AUDIT_PERIOD_NUM' => '修改期数',
  99. 'MOVE_ADMIN_ID' => '移网管理员',
  100. 'AUDIT_ADMIN_ID' => '审核管理员',
  101. 'NET_TABLE_NAME' => '移点备份表名',
  102. 'CREATE_REMARK' => '创建备注',
  103. 'AUDIT_REMARK' => '审核备注',
  104. 'CREATED_AT' => '创建时间',
  105. 'STARTED_AT' => '移网开始时间',
  106. 'ENDED_AT' => '移网结束时间',
  107. 'AUDITED_AT' => '审核时间',
  108. ];
  109. }
  110. public static function getStatusName()
  111. {
  112. return array_map(fn($index): string => \Yii::t('ctx', self::STATUS_NAME_LANGUAGE_PREFIX . $index), array_keys(self::STATUS_NAME));
  113. }
  114. public static function getNetWork(): array
  115. {
  116. return array_map(function ($item) {
  117. $item['name'] = \Yii::t('ctx', $item['label']);
  118. return $item;
  119. }, self::TYPE_NAME);
  120. }
  121. /**
  122. * 操作日志记录条件
  123. * @return array
  124. */
  125. public function attrLabelsWithLogType(){
  126. return [
  127. 'USER_ID' => '移动的会员ID',
  128. 'FROM_UID' => [
  129. 'label' => '移动前上级',
  130. 'type' => function($data){
  131. $value = $data['value'];
  132. return Info::getUserNameByUserId($value);
  133. },
  134. ],
  135. 'TO_UID' => [
  136. 'label' => '移动后上级',
  137. 'type' => function($data){
  138. $value = $data['value'];
  139. return Info::getUserNameByUserId($value);
  140. },
  141. ],
  142. 'LOCATION' => '移动到位置',
  143. 'TYPE' => [
  144. 'label' => '移网类型',
  145. 'type' => function($data){
  146. $value = $data['value'];
  147. return $value==self::TYPE_NETWORK?'安置网络':'开拓网络';
  148. },
  149. ],
  150. 'AUDIT_STATUS' => [
  151. 'label' => '审核状态',
  152. 'type' => ValueTypeConfig::AUDIT_STATUS_TYPE,
  153. ],
  154. 'MOVE_ADMIN_ID' => [
  155. 'label' => '创建人',
  156. 'type' => function($data){
  157. $value = is_array($data) && isset($data['value']) ? $data['value'] : '';
  158. $result = Admin::findOneAsArray('ID=:ID', [':ID'=>$value], 'ADMIN_NAME');
  159. return !empty($result) ? $result['ADMIN_NAME'] : '';
  160. },
  161. ],
  162. 'AUDIT_ADMIN_ID' => [
  163. 'label' => '审核人',
  164. 'type' => function($data){
  165. $value = is_array($data) && isset($data['value']) ? $data['value'] : '';
  166. $result = Admin::findOneAsArray('ID=:ID', [':ID'=>$value], 'ADMIN_NAME');
  167. return !empty($result) ? $result['ADMIN_NAME'] : '';
  168. },
  169. ],
  170. 'CREATE_REMARK' => '备注',
  171. 'CREATED_AT' => [
  172. 'label' => '创建时间',
  173. 'type' => ValueTypeConfig::DATE_TIME_TYPE,
  174. ],
  175. 'AUDITED_AT' => [
  176. 'label' => '审核时间',
  177. 'type' => ValueTypeConfig::DATE_TIME_TYPE,
  178. ],
  179. ];
  180. }
  181. }